From 020ffc921d433c6d77928b8ba872524d70783fe5 Mon Sep 17 00:00:00 2001 From: Phillip Hsu Date: Tue, 20 Sep 2016 23:29:33 -0700 Subject: [PATCH] Apply theme to grid selector time picker --- .../philliphsu/clock2/aospdatetimepicker/Utils.java | 2 +- .../clock2/editalarm/NumberGridTimePickerDialog.java | 10 ++++++++++ app/src/main/res/values/aosp_datetimepicker_styles.xml | 2 +- app/src/main/res/values/styles.xml | 4 ++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/philliphsu/clock2/aospdatetimepicker/Utils.java b/app/src/main/java/com/philliphsu/clock2/aospdatetimepicker/Utils.java index 00211b7..b5c6784 100644 --- a/app/src/main/java/com/philliphsu/clock2/aospdatetimepicker/Utils.java +++ b/app/src/main/java/com/philliphsu/clock2/aospdatetimepicker/Utils.java @@ -280,7 +280,7 @@ public class Utils { * @return true if dark mode, false if light. */ public static boolean isDarkTheme(Context context, boolean current) { - return resolveBoolean(context, R.attr.theme_dark, current); + return resolveBoolean(context, R.attr.themeDark, current); } /** diff --git a/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java b/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java index fe10a16..7777e4d 100644 --- a/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java +++ b/app/src/main/java/com/philliphsu/clock2/editalarm/NumberGridTimePickerDialog.java @@ -70,6 +70,7 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements private static final String KEY_IN_KB_MODE = "in_kb_mode"; private static final String KEY_TYPED_TIMES = "typed_times"; private static final String KEY_DARK_THEME = "dark_theme"; + private static final String KEY_THEME_SET_AT_RUNTIME = "theme_set_at_runtime"; public static final int HOUR_INDEX = 0; public static final int MINUTE_INDEX = 1; @@ -112,6 +113,7 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements private int mInitialMinute; private boolean mIs24HourMode; private boolean mThemeDark; + private boolean mThemeSetAtRuntime; // For hardware IME input. private char mPlaceholderText; @@ -243,6 +245,7 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements mIs24HourMode = is24HourMode; mInKbMode = false; mThemeDark = false; + mThemeSetAtRuntime = false; } /** @@ -250,6 +253,7 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements */ public void setThemeDark(boolean dark) { mThemeDark = dark; + mThemeSetAtRuntime = true; } public boolean isThemeDark() { @@ -278,6 +282,7 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements mIs24HourMode = savedInstanceState.getBoolean(KEY_IS_24_HOUR_VIEW); mInKbMode = savedInstanceState.getBoolean(KEY_IN_KB_MODE); mThemeDark = savedInstanceState.getBoolean(KEY_DARK_THEME); + mThemeSetAtRuntime = savedInstanceState.getBoolean(KEY_THEME_SET_AT_RUNTIME); } } @@ -292,6 +297,10 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements View view = super.onCreateView(inflater, container, savedInstanceState); + if (!mThemeSetAtRuntime) { + mThemeDark = Utils.isDarkTheme(getActivity(), mThemeDark); + } + Resources res = getResources(); mHourPickerDescription = res.getString(R.string.hour_picker_description); mSelectHours = res.getString(R.string.select_hours); @@ -575,6 +584,7 @@ public class NumberGridTimePickerDialog extends BaseTimePickerDialog implements outState.putIntegerArrayList(KEY_TYPED_TIMES, mTypedTimes); } outState.putBoolean(KEY_DARK_THEME, mThemeDark); + outState.putBoolean(KEY_THEME_SET_AT_RUNTIME, mThemeSetAtRuntime); } } diff --git a/app/src/main/res/values/aosp_datetimepicker_styles.xml b/app/src/main/res/values/aosp_datetimepicker_styles.xml index 1be2578..97f725b 100644 --- a/app/src/main/res/values/aosp_datetimepicker_styles.xml +++ b/app/src/main/res/values/aosp_datetimepicker_styles.xml @@ -15,7 +15,7 @@ --> - false + false