From 17faea240012332d074b52b14bb662f28c27caaf Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 5 Oct 2017 01:03:51 -0500 Subject: [PATCH] Update badger and bundle settings --- .../astrid/reminders/ReminderPreferences.java | 39 ++++++++++++++ .../InjectingPreferenceActivity.java | 26 ++++++++-- .../tasks/preferences/BasicPreferences.java | 51 ------------------- app/src/main/res/values-bg-rBG/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values-v24/bools.xml | 4 ++ app/src/main/res/values/bools.xml | 1 + app/src/main/res/values/strings.xml | 3 +- app/src/main/res/xml/preferences.xml | 13 ----- .../main/res/xml/preferences_reminders.xml | 17 ++++++- 18 files changed, 84 insertions(+), 80 deletions(-) create mode 100644 app/src/main/res/values-v24/bools.xml diff --git a/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java b/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java index f8118e089..82f997de4 100644 --- a/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java +++ b/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java @@ -18,14 +18,20 @@ import android.preference.PreferenceManager; import android.provider.Settings; import android.support.annotation.NonNull; +import com.todoroo.astrid.api.Filter; + +import org.tasks.LocalBroadcastManager; import org.tasks.R; +import org.tasks.activities.FilterSelectionActivity; import org.tasks.activities.TimePickerActivity; import org.tasks.injection.ActivityComponent; import org.tasks.injection.InjectingPreferenceActivity; import org.tasks.preferences.ActivityPermissionRequestor; +import org.tasks.preferences.DefaultFilterProvider; import org.tasks.preferences.Device; import org.tasks.preferences.PermissionChecker; import org.tasks.preferences.PermissionRequestor; +import org.tasks.receivers.Badger; import org.tasks.scheduling.GeofenceSchedulingIntentService; import org.tasks.scheduling.NotificationSchedulerIntentService; import org.tasks.time.DateTime; @@ -44,10 +50,14 @@ public class ReminderPreferences extends InjectingPreferenceActivity { private static final int REQUEST_QUIET_START = 10001; private static final int REQUEST_QUIET_END = 10002; private static final int REQUEST_DEFAULT_REMIND = 10003; + private static final int REQUEST_BADGE_LIST = 10004; @Inject Device device; @Inject ActivityPermissionRequestor permissionRequestor; @Inject PermissionChecker permissionChecker; + @Inject Badger badger; + @Inject DefaultFilterProvider defaultFilterProvider; + @Inject LocalBroadcastManager localBroadcastManager; private CheckBoxPreference fieldMissedCalls; @@ -84,6 +94,28 @@ public class ReminderPreferences extends InjectingPreferenceActivity { return true; }); + findPreference(R.string.p_badges_enabled).setOnPreferenceChangeListener((preference, newValue) -> { + if (newValue != null) { + boolean enabled = (boolean) newValue; + badger.setEnabled(enabled); + if (enabled) { + showRestartDialog(); + } + return true; + } + return false; + }); + + Preference badgePreference = findPreference(getString(R.string.p_badge_list)); + Filter filter = defaultFilterProvider.getBadgeFilter(); + badgePreference.setSummary(filter.listingTitle); + badgePreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(ReminderPreferences.this, FilterSelectionActivity.class); + intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true); + startActivityForResult(intent, REQUEST_BADGE_LIST); + return true; + }); + requires(device.supportsLocationServices(), R.string.geolocation_reminders); requires(atLeastOreo(), R.string.notification_channel_settings); requires(atLeastMarshmallow(), R.string.battery_optimization_settings); @@ -179,6 +211,13 @@ public class ReminderPreferences extends InjectingPreferenceActivity { if (resultCode == RESULT_OK) { getDefaultRemindTimePreference().handleTimePickerActivityIntent(data); } + } else if (requestCode == REQUEST_BADGE_LIST) { + if (resultCode == RESULT_OK) { + Filter filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER); + defaultFilterProvider.setBadgeFilter(filter); + findPreference(getString(R.string.p_badge_list)).setSummary(filter.listingTitle); + localBroadcastManager.broadcastRefresh(); + } } else { super.onActivityResult(requestCode, resultCode, data); } diff --git a/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java b/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java index e115ce1e8..eeb67a0e0 100644 --- a/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java +++ b/app/src/main/java/org/tasks/injection/InjectingPreferenceActivity.java @@ -1,6 +1,7 @@ package org.tasks.injection; import android.content.ComponentName; +import android.content.Intent; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.preference.Preference; @@ -12,24 +13,31 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import com.jakewharton.processphoenix.ProcessPhoenix; +import com.todoroo.astrid.activity.TaskListActivity; +import com.todoroo.astrid.api.Filter; + import org.tasks.R; +import org.tasks.dialogs.DialogBuilder; import org.tasks.locale.Locale; import org.tasks.preferences.AppCompatPreferenceActivity; import org.tasks.themes.Theme; import org.tasks.ui.MenuColorizer; +import javax.inject.Inject; + import timber.log.Timber; public abstract class InjectingPreferenceActivity extends AppCompatPreferenceActivity implements InjectingActivity { private ActivityComponent activityComponent; - private Toolbar toolbar; - protected InjectingPreferenceActivity() { Locale.getInstance(this).applyOverrideConfiguration(this); } + @Inject DialogBuilder dialogBuilder; + @Override public void onCreate(Bundle savedInstanceState) { activityComponent = ((InjectingApplication) getApplication()) @@ -51,7 +59,7 @@ public abstract class InjectingPreferenceActivity extends AppCompatPreferenceAct toolbarContainer.addView(content); root.addView(toolbarContainer); - toolbar = toolbarContainer.findViewById(R.id.toolbar); + Toolbar toolbar = toolbarContainer.findViewById(R.id.toolbar); try { ComponentName componentName = new ComponentName(this, getClass()); ActivityInfo activityInfo = getPackageManager().getActivityInfo(componentName, 0); @@ -107,4 +115,16 @@ public abstract class InjectingPreferenceActivity extends AppCompatPreferenceAct //noinspection deprecation return super.findPreference(key); } + + protected void showRestartDialog() { + dialogBuilder.newDialog() + .setMessage(R.string.restart_required) + .setPositiveButton(R.string.restart_now, (dialogInterface, i) -> { + Intent nextIntent = new Intent(InjectingPreferenceActivity.this, TaskListActivity.class); + nextIntent.putExtra(TaskListActivity.OPEN_FILTER, (Filter) null); + ProcessPhoenix.triggerRebirth(InjectingPreferenceActivity.this, nextIntent); + }) + .setNegativeButton(R.string.restart_later, null) + .show(); + } } diff --git a/app/src/main/java/org/tasks/preferences/BasicPreferences.java b/app/src/main/java/org/tasks/preferences/BasicPreferences.java index 4c885c40d..68e59401a 100644 --- a/app/src/main/java/org/tasks/preferences/BasicPreferences.java +++ b/app/src/main/java/org/tasks/preferences/BasicPreferences.java @@ -8,17 +8,12 @@ import android.preference.Preference; import android.preference.TwoStatePreference; import com.google.common.base.Strings; -import com.jakewharton.processphoenix.ProcessPhoenix; -import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.reminders.ReminderPreferences; import org.tasks.BuildConfig; -import org.tasks.LocalBroadcastManager; import org.tasks.R; import org.tasks.activities.ColorPickerActivity; -import org.tasks.activities.FilterSelectionActivity; import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracking; import org.tasks.billing.PurchaseHelper; @@ -30,7 +25,6 @@ import org.tasks.injection.ActivityComponent; import org.tasks.injection.InjectingPreferenceActivity; import org.tasks.locale.Locale; import org.tasks.locale.LocalePickerDialog; -import org.tasks.receivers.Badger; import org.tasks.themes.ThemeAccent; import org.tasks.themes.ThemeBase; import org.tasks.themes.ThemeCache; @@ -63,7 +57,6 @@ public class BasicPreferences extends InjectingPreferenceActivity implements private static final int REQUEST_CODE_BACKUP_DIR = 10005; private static final int REQUEST_PICKER = 10006; public static final int REQUEST_PURCHASE = 10007; - private static final int REQUEST_BADGE_LIST = 10008; @Inject Tracker tracker; @Inject Preferences preferences; @@ -73,10 +66,7 @@ public class BasicPreferences extends InjectingPreferenceActivity implements @Inject DialogBuilder dialogBuilder; @Inject Locale locale; @Inject ThemeCache themeCache; - @Inject Badger badger; @Inject PurchaseHelper purchaseHelper; - @Inject DefaultFilterProvider defaultFilterProvider; - @Inject LocalBroadcastManager localBroadcastManager; private Bundle result; @@ -157,28 +147,6 @@ public class BasicPreferences extends InjectingPreferenceActivity implements return false; }); - Preference defaultList = findPreference(getString(R.string.p_badge_list)); - Filter filter = defaultFilterProvider.getBadgeFilter(); - defaultList.setSummary(filter.listingTitle); - defaultList.setOnPreferenceClickListener(preference -> { - Intent intent = new Intent(BasicPreferences.this, FilterSelectionActivity.class); - intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true); - startActivityForResult(intent, REQUEST_BADGE_LIST); - return true; - }); - - findPreference(R.string.p_badges_enabled).setOnPreferenceChangeListener((preference, newValue) -> { - if (newValue != null) { - boolean enabled = (boolean) newValue; - badger.setEnabled(enabled); - if (enabled) { - showRestartDialog(); - } - return true; - } - return false; - }); - findPreference(R.string.p_purchased_tasker).setOnPreferenceChangeListener((preference, newValue) -> { if (newValue != null && (boolean) newValue && !preferences.hasPurchase(R.string.p_purchased_tasker)) { purchaseHelper.purchase(BasicPreferences.this, getString(R.string.sku_tasker), getString(R.string.p_purchased_tasker), REQUEST_PURCHASE, BasicPreferences.this); @@ -291,13 +259,6 @@ public class BasicPreferences extends InjectingPreferenceActivity implements } } else if (requestCode == REQUEST_PURCHASE) { purchaseHelper.handleActivityResult(this, requestCode, resultCode, data); - } else if (requestCode == REQUEST_BADGE_LIST) { - if (resultCode == RESULT_OK) { - Filter filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER); - defaultFilterProvider.setBadgeFilter(filter); - findPreference(getString(R.string.p_badge_list)).setSummary(filter.listingTitle); - localBroadcastManager.broadcastRefresh(); - } } else { super.onActivityResult(requestCode, resultCode, data); } @@ -318,18 +279,6 @@ public class BasicPreferences extends InjectingPreferenceActivity implements } } - private void showRestartDialog() { - dialogBuilder.newDialog() - .setMessage(R.string.restart_required) - .setPositiveButton(R.string.restart_now, (dialogInterface, i) -> { - Intent nextIntent = new Intent(BasicPreferences.this, TaskListActivity.class); - nextIntent.putExtra(TaskListActivity.OPEN_FILTER, (Filter) null); - ProcessPhoenix.triggerRebirth(BasicPreferences.this, nextIntent); - }) - .setNegativeButton(R.string.restart_later, null) - .show(); - } - private void updateLocale() { Preference languagePreference = findPreference(getString(R.string.p_language)); String preference = preferences.getStringValue(R.string.p_language); diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 193cc2369..227529621 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -446,7 +446,6 @@ Оптимизациите на батерията могат да забавят уведомленията Обединяване на уведомленията Значки - Изисква се поддръжка от лаунчера Списък Повтаряй от Повтаряй %s diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 494261476..7359d8f60 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -440,7 +440,6 @@ Optimizaciones de batería pueden retrasar notificaciones Agrupar notificaciones Insignias - Se requiere soporte de launcher Lista cada minuto cada hora diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 8ac7b5641..83d10153a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -424,7 +424,6 @@ Gérer les optimisations de la batterie Optimisations de la batterie avec des notifications par délais Paquet de notifications - Support d\'un lanceur requis Liste Répétitions depuis Répétitions %s diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 6a41025aa..d02aba885 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -446,7 +446,6 @@ Az akkumulátor optimalizálási funkciók késleltethetik az értesítéseket Értesítések összevonása Szimbólumok - Launcher támogatás szükséges Lista percenként óránként diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 20b7c548a..d5f297c65 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -380,6 +380,5 @@ L\'ottimizzazione consumi può ritardare le notifiche Gruppo di notifiche Badge - Richiesto il supporto al lanciatore Lista \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 81966de5b..a3cbc917b 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -444,7 +444,6 @@ バッテリー最適化をすると通知が遅れることがあります バンドル通知 バッジ - ランチャーサポートが必要です リスト 繰り返し開始 %s を繰り返し diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index d780322f9..5e7a0c54c 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -448,7 +448,6 @@ 배터리 최적화 시 알림이 지연될 수 있습니다. 여러 알림 하나로 묶어서 보기 배지 - 런처 지원을 필요로 합니다. 목록 부터 반복 %s 반복 diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 7622113e4..181d70ff9 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -434,7 +434,6 @@ Batterij optimalisatie kan meldingen vertragen Notificaties samenvoegen Sets - Launcher ondersteuning vereist Lijst Herhalen van Herhalen %s diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index bee720b97..9ece92ebb 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -400,6 +400,5 @@ Оптимизация расхода может задерживать уведомления Перечень уведомлений Бейджи - Требуется поддержка оболочки Список \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index aaf5c0feb..f0202309c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -408,6 +408,5 @@ Pil optimizasyonlarını yönet Pil optimizasyonları bildirimleri geciktirebilir İşaretler - Başlatıcı desteği gerekiyor Liste \ No newline at end of file diff --git a/app/src/main/res/values-v24/bools.xml b/app/src/main/res/values-v24/bools.xml new file mode 100644 index 000000000..06bf5f5ae --- /dev/null +++ b/app/src/main/res/values-v24/bools.xml @@ -0,0 +1,4 @@ + + + true + \ No newline at end of file diff --git a/app/src/main/res/values/bools.xml b/app/src/main/res/values/bools.xml index de02aba1a..743b42804 100644 --- a/app/src/main/res/values/bools.xml +++ b/app/src/main/res/values/bools.xml @@ -3,4 +3,5 @@ false false false + false \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6a4d24a5c..8e9419e87 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -835,7 +835,6 @@ File %1$s contained %2$s.\n\n Battery optimizations may delay notifications Bundle notifications Badges - Launcher support required List Repeats from Repeats %s @@ -859,4 +858,6 @@ File %1$s contained %2$s.\n\n ,\u0020 Don\'t add to calendar Default calendar + Display a task count on Tasks launcher icon. Not all launchers support badges. + Combine multiple notifications into a single notification diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 55e15827d..47507f4ce 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -61,19 +61,6 @@ - - - - - - diff --git a/app/src/main/res/xml/preferences_reminders.xml b/app/src/main/res/xml/preferences_reminders.xml index bfc0e9b78..cf734edca 100644 --- a/app/src/main/res/xml/preferences_reminders.xml +++ b/app/src/main/res/xml/preferences_reminders.xml @@ -36,10 +36,11 @@ android:summary="@string/persistent_notifications_description" android:title="@string/persistent_notifications" /> + android:title="@string/bundle_notifications" + android:summary="@string/bundle_notifications_summary" /> + + + + +