Update notification preferences

* move intents to preference xml
* hide battery optimization setting if already disabled
* rename battery optimization and notification channel settings
* rearrange entries
pull/935/head
Alex Baker 6 years ago
parent 2822837a04
commit f9a8f0eba0

@ -1,17 +1,18 @@
package org.tasks.preferences.fragments
import android.annotation.TargetApi
import android.app.Activity.RESULT_OK
import android.content.Context.POWER_SERVICE
import android.content.Intent
import android.media.RingtoneManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.PowerManager
import android.provider.Settings
import android.speech.tts.TextToSpeech
import androidx.preference.Preference
import androidx.preference.SwitchPreferenceCompat
import com.todoroo.andlib.utility.AndroidUtilities
import com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.voice.VoiceOutputAssistant
import org.tasks.LocalBroadcastManager
@ -60,11 +61,6 @@ class Notifications : InjectingPreferenceFragment() {
initializeTimePreference(getQuietStartPreference()!!, REQUEST_QUIET_START)
initializeTimePreference(getQuietEndPreference()!!, REQUEST_QUIET_END)
findPreference(R.string.notification_channel_settings)
.setOnPreferenceClickListener(::openNotificationChannelSettings)
findPreference(R.string.battery_optimization_settings)
.setOnPreferenceClickListener(::openBatteryOptimizationSettings)
findPreference(R.string.p_badges_enabled)
.setOnPreferenceChangeListener { _: Preference?, newValue: Any? ->
if (newValue != null) {
@ -129,8 +125,9 @@ class Notifications : InjectingPreferenceFragment() {
rescheduleNotifications(false)
}
requires(AndroidUtilities.atLeastOreo(), R.string.notification_channel_settings)
requires(AndroidUtilities.atLeastMarshmallow(), R.string.battery_optimization_settings)
checkBatteryOptimizations()
requires(AndroidUtilities.atLeastOreo(), R.string.more_settings)
requires(
AndroidUtilities.preOreo(),
R.string.p_rmd_ringtone,
@ -139,6 +136,20 @@ class Notifications : InjectingPreferenceFragment() {
)
}
override fun onResume() {
super.onResume()
checkBatteryOptimizations()
}
private fun checkBatteryOptimizations() {
if (atLeastMarshmallow()) {
val powerManager = context!!.getSystemService(POWER_SERVICE) as PowerManager
findPreference(R.string.disable_battery_optimizations).isVisible =
!powerManager.isIgnoringBatteryOptimizations(getString(R.string.app_package))
}
}
override fun onDestroy() {
super.onDestroy()
@ -247,22 +258,6 @@ class Notifications : InjectingPreferenceFragment() {
)
}
@TargetApi(Build.VERSION_CODES.O)
private fun openNotificationChannelSettings(@Suppress("UNUSED_PARAMETER") ignored: Preference): Boolean {
val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
intent.putExtra(Settings.EXTRA_APP_PACKAGE, activity!!.packageName)
startActivity(intent)
return true
}
@TargetApi(Build.VERSION_CODES.M)
private fun openBatteryOptimizationSettings(@Suppress("UNUSED_PARAMETER") ignored: Preference): Boolean {
val intent = Intent()
intent.action = Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
startActivity(intent)
return true
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_CODE_ALERT_RINGTONE) {
if (resultCode == RESULT_OK && data != null) {

@ -22,6 +22,5 @@
<string name="quiet_hours_summary">Geen herinneringe gedurende stil ure nie</string>
<string name="show_hidden">Wys onsigbare</string>
<string name="show_completed">Wys voltooide</string>
<string name="battery_optimization_settings">Spesifiseer battery optimalisasies</string>
<string name="notification_disable_battery_optimizations_description">Batteryoptimalisering kan kennisgewings vertraag</string>
</resources>

@ -422,8 +422,6 @@
<string name="user">Потребител</string>
<string name="password">Парола</string>
<string name="calendar_settings">Настройки на календара</string>
<string name="notification_channel_settings">Управление на уведомления</string>
<string name="battery_optimization_settings">Управление на оптимизациите на батерията</string>
<string name="notification_disable_battery_optimizations_description">Оптимизациите на батерията могат да забавят уведомленията</string>
<string name="bundle_notifications">Обединяване на уведомленията</string>
<string name="badges">Значки</string>

@ -410,8 +410,6 @@
<string name="user">Benutzer</string>
<string name="password">Passwort</string>
<string name="calendar_settings">Kalendereinstellungen</string>
<string name="notification_channel_settings">Benachrichtigungen verwalten</string>
<string name="battery_optimization_settings">Energiesparmodus verwalten</string>
<string name="notification_disable_battery_optimizations_description">Energiesparmodus kann Benachrichtigungen verzögern</string>
<string name="bundle_notifications">Benachrichtigungen zusammenfassen</string>
<string name="badges">Button</string>

@ -421,8 +421,6 @@
<string name="user">Usuario</string>
<string name="password">Contraseña</string>
<string name="calendar_settings">Configuración de calendario</string>
<string name="notification_channel_settings">Gestionar notificaciones</string>
<string name="battery_optimization_settings">Optimizaciones en gestión de batería</string>
<string name="notification_disable_battery_optimizations_description">Optimizaciones de batería pueden retrasar notificaciones</string>
<string name="bundle_notifications">Agrupar notificaciones</string>
<string name="badges">Insignias</string>

@ -275,7 +275,6 @@
<string name="password">Parool</string>
<string name="url">URL</string>
<string name="calendar_settings">Kalendri seaded</string>
<string name="notification_channel_settings">Halda teavitusi</string>
<string name="bundle_notifications">Koonda teavitused</string>
<string name="list">Nimekiri</string>
<string name="dont_sync">Ära sünkrooni</string>

@ -428,8 +428,6 @@
<string name="password">Pasahitza</string>
<string name="url">URL-a</string>
<string name="calendar_settings">Egutegiaren ezarpenak</string>
<string name="notification_channel_settings">Kudeatu jakinarazpenak</string>
<string name="battery_optimization_settings">Kudeatu bateriaren optimizazioak</string>
<string name="notification_disable_battery_optimizations_description">Bateriaren optimizazioek jakinarazpenak atzeratu ditzakete</string>
<string name="bundle_notifications">Taldekatu jakinarazpenak</string>
<string name="badges">Dominak</string>

@ -247,8 +247,6 @@
<string name="restart_now">اکنون ریست کن</string>
<string name="restart_later">بعدا</string>
<string name="settings_localization">محلی‌سازی</string>
<string name="notification_channel_settings">مدیریت اعلانات</string>
<string name="battery_optimization_settings">مدیریت بهینه سازی باتری</string>
<string name="notification_disable_battery_optimizations_description">مدیریت بهینه سازی باتری ممکن است اعلانات را به تاخیر بیاندازد</string>
<string name="repeats_single">تکرارها %s</string>
<string name="repeats_minutely">هر دقیقه</string>

@ -393,8 +393,6 @@
<string name="date_and_time">Päivä ja aika</string>
<string name="start_of_week">Viikon alku</string>
<string name="use_locale_default">Käytä paikallista oletusta</string>
<string name="notification_channel_settings">Hallinnoi ilmoituksia</string>
<string name="battery_optimization_settings">Hallinnoi akun optimointia</string>
<string name="notification_disable_battery_optimizations_description">Akun optimointi voi viivästyttää ilmoituksia</string>
<string name="bundle_notifications">Niputa ilmoitukset</string>
<string name="badges">Merkit</string>

@ -401,8 +401,6 @@
<string name="password">Mot de passe</string>
<string name="url">Adresse URL</string>
<string name="calendar_settings">Paramètres du calendrier</string>
<string name="notification_channel_settings">Gérer les notifications</string>
<string name="battery_optimization_settings">Gérer les optimisations de la batterie</string>
<string name="notification_disable_battery_optimizations_description">L\'optimisation de la batterie peut retarder les notifications</string>
<string name="bundle_notifications">Paquet de notifications</string>
<string name="list">Liste</string>

@ -422,8 +422,6 @@
<string name="password">Jelszó</string>
<string name="url">Link</string>
<string name="calendar_settings">Naptár beállítások</string>
<string name="notification_channel_settings">Értesítések kezelése</string>
<string name="battery_optimization_settings">Akkumulátor optimalizálások kezelése</string>
<string name="notification_disable_battery_optimizations_description">Az akkumulátor optimalizálási funkciók késleltethetik az értesítéseket</string>
<string name="bundle_notifications">Értesítések összevonása</string>
<string name="badges">Szimbólumok</string>

@ -334,8 +334,6 @@
<string name="url">URL</string>
<string name="error_adding_account">Galat: %s</string>
<string name="calendar_settings">Pengaturan kalender</string>
<string name="notification_channel_settings">Kelola notifikasi</string>
<string name="battery_optimization_settings">Kelola pengoptimalan baterai</string>
<string name="notification_disable_battery_optimizations_description">Pengoptimalan baterai mungkin akan menunda notifikasi</string>
<string name="badges">Lencana</string>
<string name="list">Daftar</string>

@ -418,8 +418,6 @@
<string name="user">Utente</string>
<string name="calendar_settings">Impostazioni calendario
</string>
<string name="notification_channel_settings">Gestione notifiche</string>
<string name="battery_optimization_settings">Ottimizza consumo batteria</string>
<string name="notification_disable_battery_optimizations_description">L\'ottimizzazione consumi può ritardare le notifiche</string>
<string name="bundle_notifications">Gruppo di notifiche</string>
<string name="badges">Badge</string>

@ -458,8 +458,6 @@
<string name="password">סיסמא</string>
<string name="url">כתובת URL</string>
<string name="calendar_settings">הגדרות יומן</string>
<string name="notification_channel_settings">נהל התראות</string>
<string name="battery_optimization_settings">נהל חיסכון בסוללה</string>
<string name="notification_disable_battery_optimizations_description">חיסכון בסוללה עלול לעכב התראות</string>
<string name="bundle_notifications">חבילת התראות</string>
<string name="badges">תגים</string>

@ -419,8 +419,6 @@
<string name="user">ユーザー</string>
<string name="password">パスワード</string>
<string name="calendar_settings">カレンダー設定</string>
<string name="notification_channel_settings">通知を管理</string>
<string name="battery_optimization_settings">バッテリー最適化を管理</string>
<string name="notification_disable_battery_optimizations_description">バッテリー最適化をすると通知が遅れることがあります</string>
<string name="bundle_notifications">バンドル通知</string>
<string name="badges">バッジ</string>

@ -422,8 +422,6 @@
<string name="user">사용자</string>
<string name="password">비밀번호</string>
<string name="calendar_settings">달력 설정</string>
<string name="notification_channel_settings">알림 관리</string>
<string name="battery_optimization_settings">배터리 최적화 관리</string>
<string name="notification_disable_battery_optimizations_description">배터리 최적화 시 알림이 지연될 수 있습니다</string>
<string name="bundle_notifications">여러 알림 하나로 묶어서 보기</string>
<string name="badges">배지</string>

@ -417,8 +417,6 @@
<string name="user">Vartotojas</string>
<string name="password">Slaptažodis</string>
<string name="calendar_settings">Kalendoriaus nustatymai</string>
<string name="notification_channel_settings">Valdyti pranešimus</string>
<string name="battery_optimization_settings">Valdyti baterijos optimizacijas</string>
<string name="notification_disable_battery_optimizations_description">Baterijos optimizacijos gali uždelsti pranešimus</string>
<string name="bundle_notifications">Supakuoti pranešimai</string>
<string name="badges">Ženklinimas</string>

@ -146,8 +146,6 @@
<string name="restart_later">Senere</string>
<string name="settings_localization">Lokalisering</string>
<string name="led_notification">LED-varsel</string>
<string name="notification_channel_settings">Tilpass varsler</string>
<string name="battery_optimization_settings">Tilpass batterioptimaliseringer</string>
<string name="notification_disable_battery_optimizations_description">Batterioptimalisering kan føre til forsinkede varsler</string>
<string name="bundle_notifications">Samle varsler</string>
<string name="repeats_single">Gjentas %s</string>

@ -411,8 +411,6 @@
<string name="user">Gebruiker</string>
<string name="password">Wachtwoord</string>
<string name="calendar_settings">Kalender instellingen</string>
<string name="notification_channel_settings">Beheer notificaties</string>
<string name="battery_optimization_settings">Beheer batterij optimalisatie</string>
<string name="notification_disable_battery_optimizations_description">Batterij optimalisatie kan meldingen vertragen</string>
<string name="bundle_notifications">Notificaties samenvoegen</string>
<string name="badges">Sets</string>

@ -433,8 +433,6 @@
<string name="user">Użytkownik</string>
<string name="password">Hasło</string>
<string name="calendar_settings">Ustawienia kalendarza</string>
<string name="notification_channel_settings">Zarządzaj powiadamieniami</string>
<string name="battery_optimization_settings">Zarządzaj zużyciem energii</string>
<string name="notification_disable_battery_optimizations_description">Optymalizacja zużycia energii może opóźniać powiadomienia</string>
<string name="bundle_notifications">Zarządzaj powiadomieniami</string>
<string name="badges">Plakietki</string>

@ -419,8 +419,6 @@
<string name="user">Usuário</string>
<string name="password">Senha</string>
<string name="calendar_settings">Configurações do calendário</string>
<string name="notification_channel_settings">Gerenciar notificações</string>
<string name="battery_optimization_settings">Gerenciar otimizações da bateria</string>
<string name="notification_disable_battery_optimizations_description">Otimizações da bateria podem atrasar as notificações</string>
<string name="bundle_notifications">Agrupar notificações</string>
<string name="badges">Emblemas</string>

@ -378,8 +378,6 @@
<string name="date_and_time">Data e hora</string>
<string name="start_of_week">Início da semana</string>
<string name="use_locale_default">Usar o idioma padrão</string>
<string name="notification_channel_settings">Gerir notificações</string>
<string name="battery_optimization_settings">Gerir optimizações de bateria</string>
<string name="notification_disable_battery_optimizations_description">Optimizações da bateria podem atrasar as notificações</string>
<string name="bundle_notifications">Agrupar notificações</string>
<string name="list">Lista</string>

@ -440,8 +440,6 @@
<string name="user">Пользователь</string>
<string name="password">Пароль</string>
<string name="calendar_settings">Настройки календаря</string>
<string name="notification_channel_settings">Управление уведомлениями</string>
<string name="battery_optimization_settings">Управление расходом батареи</string>
<string name="notification_disable_battery_optimizations_description">Оптимизация расхода может задерживать уведомления</string>
<string name="bundle_notifications">Группировать уведомления</string>
<string name="badges">Ярлыки</string>

@ -418,8 +418,6 @@
<string name="user">Užívateľ</string>
<string name="password">Heslo</string>
<string name="calendar_settings">Nastavenia kalendára</string>
<string name="notification_channel_settings">Spravovať upozornenia</string>
<string name="battery_optimization_settings">Zníženie spotreby energie</string>
<string name="notification_disable_battery_optimizations_description">Zníženie spotreby môže spôsobiť oneskorenie upozornení</string>
<string name="bundle_notifications">Skupinové oznámenia</string>
<string name="badges">Odznaky</string>

@ -422,8 +422,6 @@
<string name="password">Lösenord</string>
<string name="url">URL</string>
<string name="calendar_settings">Kalenderinställningar</string>
<string name="notification_channel_settings">Hantera notiser</string>
<string name="battery_optimization_settings">Hantera batterioptimering</string>
<string name="notification_disable_battery_optimizations_description">Batterioptimering kan försena notiser</string>
<string name="bundle_notifications">Gruppera notiser</string>
<string name="badges">Märken</string>

@ -60,7 +60,6 @@
<string name="url_invalid_scheme">Kailangan magsimula na may http(s)://</string>
<string name="add_account">Magdagdag ng account</string>
<string name="user">Gumagamit</string>
<string name="battery_optimization_settings">Mamahala ng baterya mga optimization</string>
<string name="notification_disable_battery_optimizations_description">Mga baterya optimization ay maaaring antalahin ang mga notification</string>
<string name="dont_sync">Huwag i-sync</string>
<string name="background_sync_unmetered_only">Sa metered connections laang</string>

@ -424,8 +424,6 @@
<string name="user">Kullanıcı</string>
<string name="password">Parola</string>
<string name="calendar_settings">Takvim ayarları</string>
<string name="notification_channel_settings">Bildirimleri yönet</string>
<string name="battery_optimization_settings">Pil optimizasyonlarını yönet</string>
<string name="notification_disable_battery_optimizations_description">Pil optimizasyonları bildirimleri geciktirebilir</string>
<string name="bundle_notifications">Bildirimleri sepetle</string>
<string name="badges">Rozetler</string>

@ -422,8 +422,6 @@
<string name="user">Користувач</string>
<string name="password">Пароль</string>
<string name="calendar_settings">Налаштування календаря</string>
<string name="notification_channel_settings">Управління сповіщеннями</string>
<string name="battery_optimization_settings">Управління оптимізацією розряда акумулятора</string>
<string name="notification_disable_battery_optimizations_description">Оптимізація розряду акумулятора може призвезти до затримки сповіщень</string>
<string name="bundle_notifications">Колекція сповіщень</string>
<string name="badges">Бейджі</string>

@ -404,8 +404,6 @@
<string name="password">密码</string>
<string name="url">网址</string>
<string name="calendar_settings">日历设置</string>
<string name="notification_channel_settings">管理通知</string>
<string name="battery_optimization_settings">电池优化管理</string>
<string name="notification_disable_battery_optimizations_description">电池优化可能会延迟通知</string>
<string name="bundle_notifications">合并通知</string>
<string name="badges">角标</string>

@ -210,7 +210,6 @@
<string name="restart_now">馬上重新啟動</string>
<string name="restart_later">稍後</string>
<string name="no_calendars_found">找不到日曆</string>
<string name="notification_channel_settings">管理通知</string>
<string name="repeats_single">重複 %s</string>
<string name="repeats_minutely">每分鐘</string>
<string name="repeats_hourly">每小時</string>

@ -446,8 +446,6 @@ File %1$s contained %2$s.\n\n
<string name="url">URL</string>
<string name="error_adding_account">Error: %s</string>
<string name="calendar_settings">Calendar settings</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>
<string name="bundle_notifications">Bundle notifications</string>
<string name="badges">Badges</string>
@ -578,4 +576,9 @@ File %1$s contained %2$s.\n\n
<string name="accounts">Accounts</string>
<string name="wearable_notifications">Wearable notifications</string>
<string name="wearable_notifications_summary">Display notifications on your wearable</string>
<string name="troubleshooting">Troubleshooting</string>
<string name="notification_troubleshooting_summary">Tap here if you are having trouble with notifications</string>
<string name="disable_battery_optimizations">Disable battery optimizations</string>
<string name="more_settings">More settings</string>
<string name="more_notification_settings_summary">Ringtone, vibrations, and more</string>
</resources>

@ -1,31 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/p_rmd_enabled"
android:title="@string/enabled" />
<Preference
android:dependency="@string/p_rmd_enabled"
android:key="@string/notification_channel_settings"
android:title="@string/notification_channel_settings"
app:icon="@drawable/ic_open_in_new_24px" />
android:icon="@drawable/ic_open_in_new_24px"
android:summary="@string/notification_troubleshooting_summary"
android:title="@string/troubleshooting">
<intent
android:action="android.intent.action.VIEW"
android:data="https://tasks.org/notifications" />
</Preference>
<Preference
android:dependency="@string/p_rmd_enabled"
android:key="@string/battery_optimization_settings"
android:key="@string/disable_battery_optimizations"
android:summary="@string/notification_disable_battery_optimizations_description"
android:title="@string/battery_optimization_settings"
app:icon="@drawable/ic_open_in_new_24px" />
android:title="@string/disable_battery_optimizations"
app:isPreferenceVisible="false"
app:icon="@drawable/ic_open_in_new_24px">
<intent android:action="android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS" />
</Preference>
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/p_rmd_enabled"
android:title="@string/enabled"
app:allowDividerAbove="true" />
<org.tasks.ui.TimePreference
android:defaultValue="@integer/default_remind_time"
android:dependency="@string/p_rmd_enabled"
android:key="@string/p_rmd_time"
android:title="@string/rmd_EPr_rmd_time_title"
app:allowDividerAbove="true"
app:time_summary="@string/rmd_EPr_rmd_time_desc" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:dependency="@string/p_rmd_enabled"
android:key="@string/p_rmd_persistent"
android:summary="@string/persistent_notifications_description"
android:title="@string/persistent_notifications" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:dependency="@string/p_rmd_enabled"
android:key="@string/p_wearable_notifications"
android:summary="@string/wearable_notifications_summary"
android:title="@string/wearable_notifications" />
<SwitchPreferenceCompat
android:defaultValue="@bool/default_bundle_notifications"
android:dependency="@string/p_rmd_enabled"
@ -33,12 +59,6 @@
android:summary="@string/bundle_notifications_summary"
android:title="@string/bundle_notifications" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="@string/p_voiceRemindersEnabled"
android:summary="@string/EPr_voiceRemindersEnabled_desc_enabled"
android:title="@string/EPr_voiceRemindersEnabled_title" />
<Preference
android:defaultValue="content://settings/system/notification_sound"
android:dependency="@string/p_rmd_enabled"
@ -59,18 +79,26 @@
android:title="@string/led_notification" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:defaultValue="false"
android:dependency="@string/p_rmd_enabled"
android:key="@string/p_rmd_persistent"
android:summary="@string/persistent_notifications_description"
android:title="@string/persistent_notifications"
app:allowDividerAbove="true" />
android:key="@string/p_voiceRemindersEnabled"
android:summary="@string/EPr_voiceRemindersEnabled_desc_enabled"
android:title="@string/EPr_voiceRemindersEnabled_title" />
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/p_wearable_notifications"
android:summary="@string/wearable_notifications_summary"
android:title="@string/wearable_notifications" />
<Preference
android:dependency="@string/p_rmd_enabled"
android:title="@string/more_settings"
android:summary="@string/more_notification_settings_summary"
app:icon="@drawable/ic_open_in_new_24px">
<intent android:action="android.settings.APP_NOTIFICATION_SETTINGS">
<!--suppress AndroidElementNotAllowed -->
<extra
android:name="android.provider.extra.APP_PACKAGE"
android:value="@string/app_package" />
</intent>
</Preference>
<PreferenceCategory android:title="@string/badges">

Loading…
Cancel
Save