Add shortcut to battery optimization settings

pull/574/head
Alex Baker 7 years ago
parent 321246b577
commit bec96f8ce6

@ -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;
}

@ -785,4 +785,6 @@ File %1$s contained %2$s.\n\n
<string name="use_locale_default">Use locale default</string>
<string name="use_native_datetime_pickers">Use native date and time pickers</string>
<string name="notification_channel_settings">Manage notifications</string>
<string name="battery_optimization_settings">Manage battery optimizations</string>
<string name="notification_disable_battery_optimizations_description">Battery optimizations may delay notifications</string>
</resources>

@ -16,6 +16,11 @@
android:dependency="@string/p_rmd_enabled"
android:key="@string/notification_channel_settings"
android:title="@string/notification_channel_settings" />
<Preference
android:dependency="@string/p_rmd_enabled"
android:key="@string/battery_optimization_settings"
android:title="@string/battery_optimization_settings"
android:summary="@string/notification_disable_battery_optimizations_description" />
<RingtonePreference
android:defaultValue="content://settings/system/notification_sound"
android:dependency="@string/p_rmd_enabled"

Loading…
Cancel
Save