diff --git a/app/src/main/java/com/philliphsu/clock2/alarms/ExpandedAlarmViewHolder.java b/app/src/main/java/com/philliphsu/clock2/alarms/ExpandedAlarmViewHolder.java index 236caa9..f350f79 100644 --- a/app/src/main/java/com/philliphsu/clock2/alarms/ExpandedAlarmViewHolder.java +++ b/app/src/main/java/com/philliphsu/clock2/alarms/ExpandedAlarmViewHolder.java @@ -2,9 +2,11 @@ package com.philliphsu.clock2.alarms; import android.app.Activity; import android.content.Intent; +import android.content.res.ColorStateList; import android.media.RingtoneManager; import android.net.Uri; import android.support.v7.app.AppCompatActivity; +import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.Button; @@ -16,6 +18,7 @@ import com.philliphsu.clock2.Alarm; import com.philliphsu.clock2.DaysOfWeek; import com.philliphsu.clock2.OnListItemInteractionListener; import com.philliphsu.clock2.R; +import com.philliphsu.clock2.aospdatetimepicker.Utils; import com.philliphsu.clock2.util.AlarmController; import butterknife.Bind; @@ -34,6 +37,8 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder { @Bind({R.id.day0, R.id.day1, R.id.day2, R.id.day3, R.id.day4, R.id.day5, R.id.day6}) ToggleButton[] mDays; + private final ColorStateList mDayToggleColors; + public ExpandedAlarmViewHolder(ViewGroup parent, final OnListItemInteractionListener listener, AlarmController controller) { super(parent, R.layout.item_expanded_alarm, listener, controller); @@ -51,6 +56,24 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder { listener.onListItemUpdate(getAlarm(), getAdapterPosition()); } }); + + // https://code.google.com/p/android/issues/detail?id=177282 + // https://stackoverflow.com/questions/15673449/is-it-confirmed-that-i-cannot-use-themed-color-attribute-in-color-state-list-res + // Programmatically create the ColorStateList for our day toggles using themed color + // attributes, "since prior to M you can't create a themed ColorStateList from XML but you + // can from code." (quote from google) + // The first array level is analogous to an XML node defining an item with a state list. + // The second level lists all the states considered by the item from the first level. + // An empty list of states represents the default stateless item. + int[][] states = { + /*item 1*/{/*states*/android.R.attr.state_checked}, + /*item 2*/{/*states*/} + }; + int[] colors = { + /*item 1*/Utils.getTextColorFromThemeAttr(getContext(), R.attr.colorAccent), + /*item 2*/Utils.getTextColorFromThemeAttr(getContext(), android.R.attr.textColorHint) + }; + mDayToggleColors = new ColorStateList(states, colors); } @Override @@ -118,11 +141,13 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder { @OnCheckedChanged({ R.id.day0, R.id.day1, R.id.day2, R.id.day3, R.id.day4, R.id.day5, R.id.day6 }) void onDayToggled() { // TODO + Log.d("yooo", "Hello!"); } /////////////////////////////////////////////////////////////////////////////////////////// private void bindDays(Alarm alarm) { for (int i = 0; i < mDays.length; i++) { + mDays[i].setTextColor(mDayToggleColors); int weekDay = DaysOfWeek.getInstance(getContext()).weekDayAt(i); String label = DaysOfWeek.getLabel(weekDay); mDays[i].setTextOn(label); diff --git a/app/src/main/res/color/toggle_alarm_days.xml b/app/src/main/res/color/toggle_alarm_days.xml index cc9565b..3c62783 100644 --- a/app/src/main/res/color/toggle_alarm_days.xml +++ b/app/src/main/res/color/toggle_alarm_days.xml @@ -1,6 +1,4 @@ - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/alarm_time_layout.xml b/app/src/main/res/layout/alarm_time_layout.xml index 36c5f34..987d856 100644 --- a/app/src/main/res/layout/alarm_time_layout.xml +++ b/app/src/main/res/layout/alarm_time_layout.xml @@ -11,6 +11,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TextAppearance.AppCompat" + android:text="12:00" android:textSize="@dimen/text_size_display_3" android:fontFamily="sans-serif-light"/> diff --git a/app/src/main/res/layout/item_collapsed_alarm.xml b/app/src/main/res/layout/item_collapsed_alarm.xml index 1c59777..bdfb6ea 100644 --- a/app/src/main/res/layout/item_collapsed_alarm.xml +++ b/app/src/main/res/layout/item_collapsed_alarm.xml @@ -23,11 +23,8 @@ @@ -35,8 +32,7 @@ android:id="@+id/countdown" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textAppearance="?textAppearanceListItem" - android:text="in %dh %dm" + android:textSize="@dimen/text_size_subhead" android:layout_marginStart="@dimen/item_margin_between_elements" android:layout_below="@id/time_layout" android:layout_toEndOf="@id/label"/> diff --git a/app/src/main/res/layout/item_expanded_alarm.xml b/app/src/main/res/layout/item_expanded_alarm.xml index 8f9e993..c4b4fe8 100644 --- a/app/src/main/res/layout/item_expanded_alarm.xml +++ b/app/src/main/res/layout/item_expanded_alarm.xml @@ -17,12 +17,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - app:cardElevation="2dp" + app:cardElevation="@dimen/expanded_alarm_elevation" app:cardCornerRadius="0dp" android:foreground="?selectableItemBackground" android:clickable="true" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp"> + android:layout_marginTop="@dimen/cardview_margin" + android:layout_marginBottom="@dimen/cardview_margin"> + style="@style/AlarmDayToggle"/> + style="@style/AlarmDayToggle"/> + style="@style/AlarmDayToggle"/> + style="@style/AlarmDayToggle"/> + style="@style/AlarmDayToggle"/> + style="@style/AlarmDayToggle"/> + style="@style/AlarmDayToggle"/> @@ -136,7 +88,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:layout_marginBottom="8dp"> + android:layout_marginBottom="@dimen/item_margin_between_elements">