From bec96f8ce66fe35f8e6c0032f82ae21abb59bde6 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 1 Sep 2017 14:48:41 -0500 Subject: [PATCH] Add shortcut to battery optimization settings --- .../astrid/reminders/ReminderPreferences.java | 17 ++++++++++++++--- app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/preferences_reminders.xml | 5 +++++ 3 files changed, 21 insertions(+), 3 deletions(-) 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 e69a943cb..b6bad7870 100644 --- a/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java +++ b/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java @@ -35,6 +35,7 @@ import org.tasks.ui.TimePreference; import javax.inject.Inject; +import static com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastOreo; import static com.todoroo.andlib.utility.AndroidUtilities.preOreo; import static org.tasks.PermissionUtil.verifyPermissions; @@ -79,17 +80,27 @@ public class ReminderPreferences extends InjectingPreferenceActivity { initializeTimePreference(getQuietEndPreference(), REQUEST_QUIET_END); findPreference(R.string.notification_channel_settings).setOnPreferenceClickListener(this::openNotificationChannelSettings); + findPreference(R.string.battery_optimization_settings).setOnPreferenceClickListener(this::openBatteryOptimizationSettings); requires(device.supportsLocationServices(), R.string.geolocation_reminders); requires(atLeastOreo(), R.string.notification_channel_settings); + requires(atLeastMarshmallow(), R.string.battery_optimization_settings); requires(preOreo(), R.string.p_rmd_ringtone, R.string.p_rmd_vibrate, R.string.p_led_notification); } @TargetApi(Build.VERSION_CODES.O) private boolean openNotificationChannelSettings(Preference ignored) { - Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS); - intent.putExtra(Settings.EXTRA_APP_PACKAGE, ReminderPreferences.this.getPackageName()); - startActivity(intent); + Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS); + intent.putExtra(Settings.EXTRA_APP_PACKAGE, ReminderPreferences.this.getPackageName()); + startActivity(intent); + return true; + } + + @TargetApi(Build.VERSION_CODES.M) + private boolean openBatteryOptimizationSettings(Preference ignored) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); + startActivity(intent); return true; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b39509908..aefa890c5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -785,4 +785,6 @@ File %1$s contained %2$s.\n\n Use locale default Use native date and time pickers Manage notifications + Manage battery optimizations + Battery optimizations may delay notifications diff --git a/app/src/main/res/xml/preferences_reminders.xml b/app/src/main/res/xml/preferences_reminders.xml index 32e502c50..7978cd584 100644 --- a/app/src/main/res/xml/preferences_reminders.xml +++ b/app/src/main/res/xml/preferences_reminders.xml @@ -16,6 +16,11 @@ android:dependency="@string/p_rmd_enabled" android:key="@string/notification_channel_settings" android:title="@string/notification_channel_settings" /> +