From 3d64724d41846f13d8212b3a20dcaa2987a51c4d Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 12 Mar 2015 12:23:33 -0500 Subject: [PATCH] Set theme in WidgetConfigActivity --- .../todoroo/astrid/activity/EditPreferences.java | 10 ---------- .../astrid/widget/WidgetConfigActivity.java | 9 ++++++--- .../astrid/widget/WidgetUpdateService.java | 9 +++++---- .../java/org/tasks/preferences/Preferences.java | 4 ---- .../org/tasks/widget/ScrollableViewsFactory.java | 11 +++++------ .../widget/ScrollableWidgetUpdateService.java | 6 ++---- src/main/java/org/tasks/widget/WidgetHelper.java | 16 ++-------------- src/main/res/layout/widget_config_activity.xml | 10 ++++++++++ src/main/res/values-bg-rBG/strings.xml | 1 - src/main/res/values-cs/strings.xml | 1 - src/main/res/values-de/strings.xml | 1 - src/main/res/values-el/strings.xml | 1 - src/main/res/values-es/strings.xml | 1 - src/main/res/values-fr/strings.xml | 1 - src/main/res/values-ja/strings.xml | 1 - src/main/res/values-nl/strings.xml | 1 - src/main/res/values-pl/strings.xml | 1 - src/main/res/values-pt-rBR/strings.xml | 1 - src/main/res/values-pt/strings.xml | 1 - src/main/res/values-ru/strings.xml | 1 - src/main/res/values-sl-rSI/strings.xml | 1 - src/main/res/values-zh-rTW/strings.xml | 1 - src/main/res/values/keys.xml | 1 - src/main/res/values/strings.xml | 1 - src/main/res/xml/preferences.xml | 5 ----- 25 files changed, 30 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/todoroo/astrid/activity/EditPreferences.java b/src/main/java/com/todoroo/astrid/activity/EditPreferences.java index cca79e1da..512e74a49 100644 --- a/src/main/java/com/todoroo/astrid/activity/EditPreferences.java +++ b/src/main/java/com/todoroo/astrid/activity/EditPreferences.java @@ -35,7 +35,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.preferences.Preferences; -import org.tasks.widget.WidgetHelper; import java.util.ArrayList; import java.util.HashMap; @@ -346,15 +345,6 @@ public class EditPreferences extends TodorooPreferenceActivity { findPreference(getString(R.string.p_fontSize)).setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED)); - findPreference(getString(R.string.p_use_dark_theme_widget)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - WidgetHelper.triggerUpdate(EditPreferences.this); - updatePreferences(preference, newValue); - return true; - } - }); - findPreference(getString(R.string.p_debug_logging)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java index f04895ef3..565c067c9 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java @@ -41,6 +41,7 @@ public class WidgetConfigActivity extends InjectingListActivity { public static final String PREF_CUSTOM_EXTRAS = "widget-extras-"; public static final String PREF_TAG_ID = "widget-tag-id-"; public static final String PREF_DUE_DATE = "widget-due-date-"; + public static final String PREF_DARK_THEME = "widget-dark-theme-"; int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; @@ -100,8 +101,9 @@ public class WidgetConfigActivity extends InjectingListActivity { @Override public void onClick(View v) { // Save configuration options - CheckBox checkBox = (CheckBox) findViewById(R.id.showDueDate); - saveConfiguration(adapter.getSelection(), checkBox.isChecked()); + CheckBox showDueDate = (CheckBox) findViewById(R.id.showDueDate); + CheckBox darkTheme = (CheckBox) findViewById(R.id.darkTheme); + saveConfiguration(adapter.getSelection(), showDueDate.isChecked(), darkTheme.isChecked()); updateWidget(); @@ -134,7 +136,7 @@ public class WidgetConfigActivity extends InjectingListActivity { adapter.unregisterRecevier(); } - private void saveConfiguration(FilterListItem filterListItem, boolean showDueDate){ + private void saveConfiguration(FilterListItem filterListItem, boolean showDueDate, boolean darkTheme){ DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); @@ -155,6 +157,7 @@ public class WidgetConfigActivity extends InjectingListActivity { preferences.setString(WidgetConfigActivity.PREF_SQL + mAppWidgetId, sql); preferences.setString(WidgetConfigActivity.PREF_VALUES + mAppWidgetId, contentValuesString); preferences.setBoolean(WidgetConfigActivity.PREF_DUE_DATE + mAppWidgetId, showDueDate); + preferences.setBoolean(WidgetConfigActivity.PREF_DARK_THEME + mAppWidgetId, darkTheme); if(filterListItem instanceof FilterWithCustomIntent) { String flattenedName = ((FilterWithCustomIntent)filterListItem).customTaskList.flattenToString(); diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java index a15e84faa..2108db026 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java @@ -91,7 +91,8 @@ public class WidgetUpdateService extends InjectingService { } private RemoteViews buildUpdate(Context context, int widgetId) { - RemoteViews views = getThemedRemoteViews(context); + boolean darkTheme = preferences.getBoolean(WidgetConfigActivity.PREF_DARK_THEME + widgetId, false); + RemoteViews views = getThemedRemoteViews(context, darkTheme); int numberOfTasks = NUM_VISIBLE_TASKS; @@ -122,7 +123,7 @@ public class WidgetUpdateService extends InjectingService { cursor.moveToPosition(i); Task task = new Task(cursor); String textContent = task.getTitle(); - int textColor = r.getColor(preferences.isDarkWidgetTheme() + int textColor = r.getColor(darkTheme ? R.color.widget_text_color_dark : R.color.widget_text_color_light); if(task.isCompleted()) { @@ -182,7 +183,7 @@ public class WidgetUpdateService extends InjectingService { * but I didn't see a better solution. Alternatively, we could disallow theming widgets on * Android 2.1. */ - private RemoteViews getThemedRemoteViews(Context context) { + private RemoteViews getThemedRemoteViews(Context context, boolean darkTheme) { String packageName = context.getPackageName(); Resources r = context.getResources(); int layout; @@ -191,7 +192,7 @@ public class WidgetUpdateService extends InjectingService { int titleColor; int buttonDrawable; - if (preferences.isDarkWidgetTheme()) { + if (darkTheme) { layout = R.layout.widget_initialized_dark; titleColor = r.getColor(R.color.widget_text_color_dark); buttonDrawable = R.drawable.ic_action_add_light; diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java index 7ce9f45fb..b7f346fb1 100644 --- a/src/main/java/org/tasks/preferences/Preferences.java +++ b/src/main/java/org/tasks/preferences/Preferences.java @@ -221,10 +221,6 @@ public class Preferences { } } - public boolean isDarkWidgetTheme() { - return getBoolean(R.string.p_use_dark_theme_widget, false); - } - public void setupLogger() { setupLogger(getBoolean(R.string.p_debug_logging, false)); } diff --git a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java index cde5be34b..2d153e00b 100644 --- a/src/main/java/org/tasks/widget/ScrollableViewsFactory.java +++ b/src/main/java/org/tasks/widget/ScrollableViewsFactory.java @@ -39,13 +39,13 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac private final Database database; private final TaskService taskService; - private SubtasksHelper subtasksHelper; + private final SubtasksHelper subtasksHelper; private final Preferences preferences; private final Context context; private final Filter filter; private final int widgetId; - private boolean dark; - private boolean showDueDates; + private final boolean dark; + private final boolean showDueDates; private final DueDateFormatter dueDateFormatter; private TodorooCursor cursor; @@ -56,7 +56,6 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac Context context, Filter filter, int widgetId, - boolean dark, Database database, TaskService taskService) { this.subtasksHelper = subtasksHelper; @@ -64,16 +63,16 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac this.context = context; this.filter = filter; this.widgetId = widgetId; - this.dark = dark; this.database = database; this.taskService = taskService; dueDateFormatter = new DueDateFormatter(context); + dark = preferences.getBoolean(WidgetConfigActivity.PREF_DARK_THEME + widgetId, false); + showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_DUE_DATE + widgetId, false); } @Override public void onCreate() { - showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_DUE_DATE + widgetId, false); database.openForReading(); cursor = getCursor(); } diff --git a/src/main/java/org/tasks/widget/ScrollableWidgetUpdateService.java b/src/main/java/org/tasks/widget/ScrollableWidgetUpdateService.java index 14131e788..5dc426e3f 100644 --- a/src/main/java/org/tasks/widget/ScrollableWidgetUpdateService.java +++ b/src/main/java/org/tasks/widget/ScrollableWidgetUpdateService.java @@ -16,7 +16,6 @@ import javax.inject.Inject; public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService { - public static final String IS_DARK_THEME = "org.tasks.widget.IS_DARK_THEME"; public static final String FILTER = "org.tasks.widget.FILTER"; @Inject Database database; @@ -45,8 +44,7 @@ public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService { Bundle bundle = extras.getBundle(FILTER); Filter filter = (Filter) bundle.get(FILTER); int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID); - boolean isDarkTheme = extras.getBoolean(IS_DARK_THEME); - return new ScrollableViewsFactory(subtasksHelper, preferences, this, filter, widgetId, isDarkTheme, - database, taskService); + return new ScrollableViewsFactory(subtasksHelper, preferences, this, filter, + widgetId, database, taskService); } } diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index c735dbdf0..cd2f60732 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -43,18 +43,6 @@ public class WidgetHelper { public static int flags = FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK; - public static void triggerUpdate(Context context) { - AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); - if (appWidgetManager == null) { - return; - } - ComponentName thisWidget = new ComponentName(context, TasksWidget.class); - Intent intent = new Intent(context, TasksWidget.class); - intent.setAction("android.appwidget.action.APPWIDGET_UPDATE"); - intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetManager.getAppWidgetIds(thisWidget)); - context.sendBroadcast(intent); - } - private final TagDataDao tagDataDao; private final Preferences preferences; @@ -76,10 +64,10 @@ public class WidgetHelper { Bundle filterBundle = new Bundle(com.todoroo.astrid.api.Filter.class.getClassLoader()); filterBundle.putParcelable(ScrollableWidgetUpdateService.FILTER, filter); rvIntent.putExtra(ScrollableWidgetUpdateService.FILTER, filterBundle); - rvIntent.putExtra(ScrollableWidgetUpdateService.IS_DARK_THEME, preferences.isDarkWidgetTheme()); rvIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id); rvIntent.setData(Uri.parse(rvIntent.toUri(Intent.URI_INTENT_SCHEME))); - RemoteViews remoteViews = new RemoteViews(context.getPackageName(), preferences.isDarkWidgetTheme() ? R.layout.scrollable_widget_dark : R.layout.scrollable_widget_light); + boolean darkTheme = preferences.getBoolean(WidgetConfigActivity.PREF_DARK_THEME + id, false); + RemoteViews remoteViews = new RemoteViews(context.getPackageName(), darkTheme ? R.layout.scrollable_widget_dark : R.layout.scrollable_widget_light); remoteViews.setTextViewText(R.id.widget_title, filter.title); remoteViews.setRemoteAdapter(R.id.list_view, rvIntent); remoteViews.setEmptyView(R.id.list_view, R.id.empty_view); diff --git a/src/main/res/layout/widget_config_activity.xml b/src/main/res/layout/widget_config_activity.xml index 9bdae5e37..6ad354a73 100644 --- a/src/main/res/layout/widget_config_activity.xml +++ b/src/main/res/layout/widget_config_activity.xml @@ -17,6 +17,16 @@ android:paddingTop="10dp" android:paddingBottom="10dp" /> + + Tasks ще изпълнява мелодия по време на напомняния за задача Задачи Тъмна тема - Тъмна тема на виджета Изтрий задача Поддръжка Добавена задача diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml index 438c0e244..e0f8e4ae6 100644 --- a/src/main/res/values-cs/strings.xml +++ b/src/main/res/values-cs/strings.xml @@ -468,7 +468,6 @@ Hlasové upomínky Úkoly Tmavé téma - Tmavé téma widgetu Smazat úkol Podpora Přidán úkol diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 9ba04339f..fe7d72b37 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -477,7 +477,6 @@ Tasks wird Aufgabennamen bei der Erinnerung aussprechen Tasks wird bei der Erinnerung einen Klingelton abspielen Dunkles Theme - Dunkles Widget Theme Aufgabe löschen Unterstützung Hinzugefügte Aufgabe diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml index 125ac0377..d701313f1 100644 --- a/src/main/res/values-el/strings.xml +++ b/src/main/res/values-el/strings.xml @@ -476,7 +476,6 @@ Η εφαρμογή θα ηχεί ένα ringtone κατά την διάρκεια των υπενθυμίσεων Εργασίες Σκοτεινό θέμα - Widget σκοτεινού θέματος Διαγραφή καθήκοντος Υποστήριξη Η εργασία προστέθηκε diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index 4eb5546f8..46b616cc4 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -481,7 +481,6 @@ Tasks reproducirá un tono durante los recordatorios Tareas Estilo oscuro - Estilo de componentes oscuros Eliminar tarea Soporte Tarea agregada diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index a32252c82..fb842abf3 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -479,7 +479,6 @@ Tasks sonnera pendant les rappels Tâches Thème foncé - Thème de widget foncé Supprimer la tâche ? Assistance Tâche ajoutée diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 5d5e1930b..7f5e3e71c 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -485,7 +485,6 @@ Tasks はタスクリマインダーで通知音を鳴らします タスク ダークテーマ - ダークウィジットテーマ タスクを削除 サポート 追加されたタスク diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml index f38288078..00bd3899b 100644 --- a/src/main/res/values-nl/strings.xml +++ b/src/main/res/values-nl/strings.xml @@ -481,7 +481,6 @@ Er wordt een geluid weergegeven bij herinneringen Taken Donker thema - Donker widget thema Verwijder taak Ondersteuning Toegevoegde taak diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 2ca84b0f3..2b0c6f544 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -485,7 +485,6 @@ i odzyskanie zadań z kopi zapasowej (Settings->Sync and backup->Backup-&g Tasks będzie uruchamiał dzwonek podczas przypomnienia zadania Zadania Ciemny motyw - Ciemny motyw widgetu Usuń zadanie Wsparcie Dodane zadanie diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index 6d0f1f9a1..ce2361038 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -479,7 +479,6 @@ Tasks irá tocar um som durante o lembrete Tarefas Tema escuro - Tema escura para widget Excluir tarefa Suporte Tarefa adicionada diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml index 5f5729f51..e74d37172 100644 --- a/src/main/res/values-pt/strings.xml +++ b/src/main/res/values-pt/strings.xml @@ -485,7 +485,6 @@ das tarefas através de um backup em Definições->Sincronização e backup-& O Tasks irá reproduzir um toque durante os lembretes Tarefas Tema escuro - Widget escuro Eliminar tarefa Suporte Tarefa adicionada diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 15709af83..b52408569 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -486,7 +486,6 @@ Оповещение звуком во время напоминания Задачи Тёмная тема - Темная тема виджета Удалить задачу Поддержка Добавленная задача diff --git a/src/main/res/values-sl-rSI/strings.xml b/src/main/res/values-sl-rSI/strings.xml index dd420f7e4..b85898d5a 100644 --- a/src/main/res/values-sl-rSI/strings.xml +++ b/src/main/res/values-sl-rSI/strings.xml @@ -483,7 +483,6 @@ Aplikacija Opravki bo med opominjanjem glede opravkov zvonila. Opravki Temni videz - Temni videz gradnika Zbriši opravek 1 opravek diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml index 2b2aac52d..5cccf85a4 100644 --- a/src/main/res/values-zh-rTW/strings.xml +++ b/src/main/res/values-zh-rTW/strings.xml @@ -456,7 +456,6 @@ Tasks在工作提醒時會以語音說出工作名稱 Tasks在工作提醒時將會播放鈴聲 暗色主題 - 暗色小工具主題 刪除工作 支持 diff --git a/src/main/res/values/keys.xml b/src/main/res/values/keys.xml index 66533ee3f..c07d8363c 100644 --- a/src/main/res/values/keys.xml +++ b/src/main/res/values/keys.xml @@ -251,7 +251,6 @@ TEA_ctrl_timer_pref TEA_ctrl_share_pref use_dark_theme - use_dark_theme_widget debug_logging diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 052ad999c..ef18cbb9b 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -1,7 +1,6 @@ Dark theme - Dark widget theme Delete task Support Added task diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index 95bf74d2b..c25d3d8d0 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -16,11 +16,6 @@ android:key="@string/p_use_dark_theme" android:defaultValue="false" /> - -