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