diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java index a279cacb9..60a32c787 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java @@ -91,7 +91,7 @@ public class WidgetUpdateService extends InjectingService { } private RemoteViews buildUpdate(Context context, int widgetId) { - boolean darkTheme = preferences.getBoolean(WidgetConfigActivity.PREF_DARK_THEME + widgetId, false); + boolean darkTheme = preferences.useDarkWidgetTheme(widgetId); /** * The reason we use a bunch of different but almost identical layouts is that there is a bug with * Android 2.1 (level 7) that doesn't allow setting backgrounds on remote views. I know it's lame, diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java index b7f346fb1..a0c80bde3 100644 --- a/src/main/java/org/tasks/preferences/Preferences.java +++ b/src/main/java/org/tasks/preferences/Preferences.java @@ -9,6 +9,7 @@ import android.preference.PreferenceManager; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.utility.AstridDefaultPreferenceSpec; +import com.todoroo.astrid.widget.WidgetConfigActivity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,6 +51,11 @@ public class Preferences { publicPrefs = context.getSharedPreferences(AstridApiConstants.PUBLIC_PREFS, Context.MODE_WORLD_READABLE); } + public boolean useDarkWidgetTheme(int widgetId) { + boolean legacySetting = getBoolean(R.string.p_use_dark_theme_widget, false); + return getBoolean(WidgetConfigActivity.PREF_DARK_THEME + widgetId, legacySetting); + } + public void setIfUnset(SharedPreferences prefs, Editor editor, Resources r, int keyResource, int value) { String key = r.getString(keyResource); if (!prefs.contains(key)) { diff --git a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java index a822eea97..ca83bbbc6 100644 --- a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java +++ b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java @@ -69,7 +69,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac this.taskService = taskService; dueDateFormatter = new DueDateFormatter(context); - dark = preferences.getBoolean(WidgetConfigActivity.PREF_DARK_THEME + widgetId, false); + dark = preferences.useDarkWidgetTheme(widgetId); showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, false); hideCheckboxes = preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + widgetId, false); } diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index 79c3c6b4a..6ccb66e0e 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -67,7 +67,7 @@ public class WidgetHelper { rvIntent.putExtra(ScrollableWidgetUpdateService.FILTER, filterBundle); rvIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id); rvIntent.setData(Uri.parse(rvIntent.toUri(Intent.URI_INTENT_SCHEME))); - boolean darkTheme = preferences.getBoolean(WidgetConfigActivity.PREF_DARK_THEME + id, false); + boolean darkTheme = preferences.useDarkWidgetTheme(id); RemoteViews remoteViews = new RemoteViews(context.getPackageName(), darkTheme ? R.layout.scrollable_widget_dark : R.layout.scrollable_widget_light); if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + id, false)) { remoteViews.setViewVisibility(R.id.widget_header, View.GONE); diff --git a/src/main/res/values/keys.xml b/src/main/res/values/keys.xml index c07d8363c..66533ee3f 100644 --- a/src/main/res/values/keys.xml +++ b/src/main/res/values/keys.xml @@ -251,6 +251,7 @@ TEA_ctrl_timer_pref TEA_ctrl_share_pref use_dark_theme + use_dark_theme_widget debug_logging