From 2c64eacd1e9e119f7c8f37fd0fd25c287f3985f2 Mon Sep 17 00:00:00 2001 From: Altaf-Mahdi Date: Sun, 24 Apr 2016 23:01:57 +0100 Subject: msm8996-common: doze improvements * restructure the app * add a tilt sensor from hammerhead-caf with an option to enable/disable * add a one time dialog on first start to help users understand how the app works * remove proximity wake up option and add an option to enable the sensors as soon as the screen turns off * adjust and add new doze configs * squashed translations Change-Id: Ia9d9a807d6c4f1a80a2ba8780e7486560f9a1d87 Signed-off-by: Davide Garberi --- doze/Android.mk | 3 - doze/AndroidManifest.xml | 6 +- doze/res/values-af/strings.xml | 19 ++ doze/res/values-am/strings.xml | 19 ++ doze/res/values-ar/strings.xml | 19 ++ doze/res/values-as-rIN/strings.xml | 19 ++ doze/res/values-ast-rES/strings.xml | 19 ++ doze/res/values-az-rAZ/strings.xml | 19 ++ doze/res/values-be/strings.xml | 19 ++ doze/res/values-bg/strings.xml | 34 ++++ doze/res/values-bn-rBD/strings.xml | 19 ++ doze/res/values-br-rFR/strings.xml | 19 ++ doze/res/values-ca/strings.xml | 34 ++++ doze/res/values-cs/strings.xml | 34 ++++ doze/res/values-csb-rPL/strings.xml | 19 ++ doze/res/values-cy/strings.xml | 19 ++ doze/res/values-da/strings.xml | 34 ++++ doze/res/values-de/strings.xml | 33 ++++ doze/res/values-el/strings.xml | 31 ++++ doze/res/values-en-rAU/strings.xml | 19 ++ doze/res/values-en-rGB/strings.xml | 19 ++ doze/res/values-en-rIN/strings.xml | 19 ++ doze/res/values-en-rPT/strings.xml | 19 ++ doze/res/values-eo/strings.xml | 19 ++ doze/res/values-es-rMX/strings.xml | 19 ++ doze/res/values-es-rUS/strings.xml | 19 ++ doze/res/values-es/strings.xml | 19 ++ doze/res/values-et-rEE/strings.xml | 19 ++ doze/res/values-eu-rES/strings.xml | 34 ++++ doze/res/values-fa/strings.xml | 19 ++ doze/res/values-fi/strings.xml | 34 ++++ doze/res/values-fil-rPH/strings.xml | 19 ++ doze/res/values-fr-rCA/strings.xml | 19 ++ doze/res/values-fr/strings.xml | 19 ++ doze/res/values-frp-rIT/strings.xml | 19 ++ doze/res/values-fy-rNL/strings.xml | 19 ++ doze/res/values-gd-rGB/strings.xml | 19 ++ doze/res/values-gl-rES/strings.xml | 19 ++ doze/res/values-gu-rIN/strings.xml | 19 ++ doze/res/values-hi/strings.xml | 19 ++ doze/res/values-hr/strings.xml | 34 ++++ doze/res/values-hu/strings.xml | 19 ++ doze/res/values-hy-rAM/strings.xml | 19 ++ doze/res/values-in/strings.xml | 19 ++ doze/res/values-is-rIS/strings.xml | 19 ++ doze/res/values-it/strings.xml | 34 ++++ doze/res/values-iw/strings.xml | 24 +++ doze/res/values-ja/strings.xml | 19 ++ doze/res/values-ka-rGE/strings.xml | 19 ++ doze/res/values-kk-rKZ/strings.xml | 19 ++ doze/res/values-km-rKH/strings.xml | 19 ++ doze/res/values-kn-rIN/strings.xml | 19 ++ doze/res/values-ko/strings.xml | 19 ++ doze/res/values-ku/strings.xml | 19 ++ doze/res/values-ky-rKG/strings.xml | 19 ++ doze/res/values-lb/strings.xml | 19 ++ doze/res/values-lo-rLA/strings.xml | 19 ++ doze/res/values-lt/strings.xml | 19 ++ doze/res/values-lv/strings.xml | 19 ++ doze/res/values-mk-rMK/strings.xml | 19 ++ doze/res/values-ml-rIN/strings.xml | 19 ++ doze/res/values-mn-rMN/strings.xml | 19 ++ doze/res/values-mr-rIN/strings.xml | 19 ++ doze/res/values-ms-rMY/strings.xml | 19 ++ doze/res/values-my-rMM/strings.xml | 19 ++ doze/res/values-nb/strings.xml | 34 ++++ doze/res/values-ne-rNP/strings.xml | 19 ++ doze/res/values-nl/strings.xml | 31 ++++ doze/res/values-oc-rFR/strings.xml | 19 ++ doze/res/values-or-rIN/strings.xml | 19 ++ doze/res/values-pa-rIN/strings.xml | 19 ++ doze/res/values-pl/strings.xml | 19 ++ doze/res/values-pt-rBR/strings.xml | 34 ++++ doze/res/values-pt-rPT/strings.xml | 33 ++++ doze/res/values-rm/strings.xml | 19 ++ doze/res/values-ro/strings.xml | 19 ++ doze/res/values-ru/strings.xml | 34 ++++ doze/res/values-si-rLK/strings.xml | 19 ++ doze/res/values-sk/strings.xml | 19 ++ doze/res/values-sl/strings.xml | 34 ++++ doze/res/values-sq-rAL/strings.xml | 19 ++ doze/res/values-sr/strings.xml | 34 ++++ doze/res/values-sv/strings.xml | 19 ++ doze/res/values-sw/strings.xml | 19 ++ doze/res/values-ta-rIN/strings.xml | 19 ++ doze/res/values-te-rIN/strings.xml | 19 ++ doze/res/values-th/strings.xml | 19 ++ doze/res/values-tr/strings.xml | 19 ++ doze/res/values-ug/strings.xml | 19 ++ doze/res/values-uk/strings.xml | 19 ++ doze/res/values-ur-rPK/strings.xml | 19 ++ doze/res/values-uz-rUZ/strings.xml | 19 ++ doze/res/values-vi/strings.xml | 19 ++ doze/res/values-zh-rCN/strings.xml | 34 ++++ doze/res/values-zh-rHK/strings.xml | 19 ++ doze/res/values-zh-rTW/strings.xml | 19 ++ doze/res/values-zu/strings.xml | 19 ++ doze/res/values/strings.xml | 25 +-- doze/res/xml/doze_settings.xml | 72 ++++++++ doze/res/xml/gesture_panel.xml | 53 ------ .../settings/doze/BootCompletedReceiver.java | 6 +- .../com/cyanogenmod/settings/doze/DozeService.java | 97 ++++++++++ .../cyanogenmod/settings/doze/DozeSettings.java | 166 +++++++++++------ .../cyanogenmod/settings/doze/ProximitySensor.java | 91 ++++++++++ .../com/cyanogenmod/settings/doze/TiltSensor.java | 87 +++++++++ doze/src/com/cyanogenmod/settings/doze/Utils.java | 104 +++++++++++ .../cyanogenmod/settings/doze/ZukDozeService.java | 199 --------------------- 107 files changed, 2653 insertions(+), 328 deletions(-) create mode 100644 doze/res/values-af/strings.xml create mode 100644 doze/res/values-am/strings.xml create mode 100644 doze/res/values-ar/strings.xml create mode 100644 doze/res/values-as-rIN/strings.xml create mode 100644 doze/res/values-ast-rES/strings.xml create mode 100644 doze/res/values-az-rAZ/strings.xml create mode 100644 doze/res/values-be/strings.xml create mode 100644 doze/res/values-bg/strings.xml create mode 100644 doze/res/values-bn-rBD/strings.xml create mode 100644 doze/res/values-br-rFR/strings.xml create mode 100644 doze/res/values-ca/strings.xml create mode 100644 doze/res/values-cs/strings.xml create mode 100644 doze/res/values-csb-rPL/strings.xml create mode 100644 doze/res/values-cy/strings.xml create mode 100644 doze/res/values-da/strings.xml create mode 100644 doze/res/values-de/strings.xml create mode 100644 doze/res/values-el/strings.xml create mode 100644 doze/res/values-en-rAU/strings.xml create mode 100644 doze/res/values-en-rGB/strings.xml create mode 100644 doze/res/values-en-rIN/strings.xml create mode 100644 doze/res/values-en-rPT/strings.xml create mode 100644 doze/res/values-eo/strings.xml create mode 100644 doze/res/values-es-rMX/strings.xml create mode 100644 doze/res/values-es-rUS/strings.xml create mode 100644 doze/res/values-es/strings.xml create mode 100644 doze/res/values-et-rEE/strings.xml create mode 100644 doze/res/values-eu-rES/strings.xml create mode 100644 doze/res/values-fa/strings.xml create mode 100644 doze/res/values-fi/strings.xml create mode 100644 doze/res/values-fil-rPH/strings.xml create mode 100644 doze/res/values-fr-rCA/strings.xml create mode 100644 doze/res/values-fr/strings.xml create mode 100644 doze/res/values-frp-rIT/strings.xml create mode 100644 doze/res/values-fy-rNL/strings.xml create mode 100644 doze/res/values-gd-rGB/strings.xml create mode 100644 doze/res/values-gl-rES/strings.xml create mode 100644 doze/res/values-gu-rIN/strings.xml create mode 100644 doze/res/values-hi/strings.xml create mode 100644 doze/res/values-hr/strings.xml create mode 100644 doze/res/values-hu/strings.xml create mode 100644 doze/res/values-hy-rAM/strings.xml create mode 100644 doze/res/values-in/strings.xml create mode 100644 doze/res/values-is-rIS/strings.xml create mode 100644 doze/res/values-it/strings.xml create mode 100644 doze/res/values-iw/strings.xml create mode 100644 doze/res/values-ja/strings.xml create mode 100644 doze/res/values-ka-rGE/strings.xml create mode 100644 doze/res/values-kk-rKZ/strings.xml create mode 100644 doze/res/values-km-rKH/strings.xml create mode 100644 doze/res/values-kn-rIN/strings.xml create mode 100644 doze/res/values-ko/strings.xml create mode 100644 doze/res/values-ku/strings.xml create mode 100644 doze/res/values-ky-rKG/strings.xml create mode 100644 doze/res/values-lb/strings.xml create mode 100644 doze/res/values-lo-rLA/strings.xml create mode 100644 doze/res/values-lt/strings.xml create mode 100644 doze/res/values-lv/strings.xml create mode 100644 doze/res/values-mk-rMK/strings.xml create mode 100644 doze/res/values-ml-rIN/strings.xml create mode 100644 doze/res/values-mn-rMN/strings.xml create mode 100644 doze/res/values-mr-rIN/strings.xml create mode 100644 doze/res/values-ms-rMY/strings.xml create mode 100644 doze/res/values-my-rMM/strings.xml create mode 100644 doze/res/values-nb/strings.xml create mode 100644 doze/res/values-ne-rNP/strings.xml create mode 100644 doze/res/values-nl/strings.xml create mode 100644 doze/res/values-oc-rFR/strings.xml create mode 100644 doze/res/values-or-rIN/strings.xml create mode 100644 doze/res/values-pa-rIN/strings.xml create mode 100644 doze/res/values-pl/strings.xml create mode 100644 doze/res/values-pt-rBR/strings.xml create mode 100644 doze/res/values-pt-rPT/strings.xml create mode 100644 doze/res/values-rm/strings.xml create mode 100644 doze/res/values-ro/strings.xml create mode 100644 doze/res/values-ru/strings.xml create mode 100644 doze/res/values-si-rLK/strings.xml create mode 100644 doze/res/values-sk/strings.xml create mode 100644 doze/res/values-sl/strings.xml create mode 100644 doze/res/values-sq-rAL/strings.xml create mode 100644 doze/res/values-sr/strings.xml create mode 100644 doze/res/values-sv/strings.xml create mode 100644 doze/res/values-sw/strings.xml create mode 100644 doze/res/values-ta-rIN/strings.xml create mode 100644 doze/res/values-te-rIN/strings.xml create mode 100644 doze/res/values-th/strings.xml create mode 100644 doze/res/values-tr/strings.xml create mode 100644 doze/res/values-ug/strings.xml create mode 100644 doze/res/values-uk/strings.xml create mode 100644 doze/res/values-ur-rPK/strings.xml create mode 100644 doze/res/values-uz-rUZ/strings.xml create mode 100644 doze/res/values-vi/strings.xml create mode 100644 doze/res/values-zh-rCN/strings.xml create mode 100644 doze/res/values-zh-rHK/strings.xml create mode 100644 doze/res/values-zh-rTW/strings.xml create mode 100644 doze/res/values-zu/strings.xml create mode 100644 doze/res/xml/doze_settings.xml delete mode 100644 doze/res/xml/gesture_panel.xml create mode 100644 doze/src/com/cyanogenmod/settings/doze/DozeService.java create mode 100644 doze/src/com/cyanogenmod/settings/doze/ProximitySensor.java create mode 100644 doze/src/com/cyanogenmod/settings/doze/TiltSensor.java create mode 100644 doze/src/com/cyanogenmod/settings/doze/Utils.java delete mode 100644 doze/src/com/cyanogenmod/settings/doze/ZukDozeService.java (limited to 'doze') diff --git a/doze/Android.mk b/doze/Android.mk index d9d71fc..de136ea 100644 --- a/doze/Android.mk +++ b/doze/Android.mk @@ -9,9 +9,6 @@ LOCAL_PACKAGE_NAME := ZukDoze LOCAL_CERTIFICATE := platform LOCAL_PRIVILEGED_MODULE := true -LOCAL_STATIC_JAVA_LIBRARIES := \ - org.cyanogenmod.platform.internal - LOCAL_PROGUARD_FLAG_FILES := proguard.flags include $(BUILD_PACKAGE) diff --git a/doze/AndroidManifest.xml b/doze/AndroidManifest.xml index ec01c25..54783eb 100644 --- a/doze/AndroidManifest.xml +++ b/doze/AndroidManifest.xml @@ -5,9 +5,7 @@ android:versionName="1.0" android:sharedUserId="android.uid.system"> - - - diff --git a/doze/res/values-af/strings.xml b/doze/res/values-af/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-af/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-am/strings.xml b/doze/res/values-am/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-am/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ar/strings.xml b/doze/res/values-ar/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ar/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-as-rIN/strings.xml b/doze/res/values-as-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-as-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ast-rES/strings.xml b/doze/res/values-ast-rES/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ast-rES/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-az-rAZ/strings.xml b/doze/res/values-az-rAZ/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-az-rAZ/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-be/strings.xml b/doze/res/values-be/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-be/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-bg/strings.xml b/doze/res/values-bg/strings.xml new file mode 100644 index 0000000..d51d0b3 --- /dev/null +++ b/doze/res/values-bg/strings.xml @@ -0,0 +1,34 @@ + + + + + Атмосферен екран + Събуждане на екрана при получаване на известие + Винаги разрешено + Останете на линия за събития, веднага след като екранът се изключи + + Сензор за наклон + Отговор + Светлинна индикация, когато устройството е вдигнато + + Сензор за близост + Махане с ръка + Светлинна индикация при махане с ръка + Джоб + Светлинна индикация при изваждане от джоб + + ОK + Помощ + Тези функции използват сензорни събития да показват известия, когато устройството е в състояние на покой. Избраният сензор се активира само когато устройството получава уведомление, което помага за намаляване на използването на батерията. Има и опция за активиране на избрания сензор, така че екранът се изключва, което ще доведе до увеличаване на използването на батерията. + diff --git a/doze/res/values-bn-rBD/strings.xml b/doze/res/values-bn-rBD/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-bn-rBD/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-br-rFR/strings.xml b/doze/res/values-br-rFR/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-br-rFR/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ca/strings.xml b/doze/res/values-ca/strings.xml new file mode 100644 index 0000000..a948814 --- /dev/null +++ b/doze/res/values-ca/strings.xml @@ -0,0 +1,34 @@ + + + + + Pantalla ambient + Encen la pantalla quan rebis notificacions + Sempre habilitat + Estigues atent als esdeveniments del sensor tan aviat com s\'apagui la pantalla + + Sensor d\'inclinació + Contesta + Mostra les notificacions quan es reculli el dispositiu + + Sensor de proximitat + Passa la mà + Mostra notificacions quan es passi la mà + Butxaca + Mostra notificacions quan te\'l treguis de la butxaca + + D\'ACORD + Ajuda + Aquestes característiques utilitzen esdeveniments dels sensors per llançar una notificació latent. El sensor escollit només serà habilitat quan el dispositiu rebi una notificació, això ajuda a reduir l\'ús de la bateria. També hi ha una opció per habilitar el sensor escollit tan aviat com s\'apagui la pantalla, això causarà un major ús de la bateria. + diff --git a/doze/res/values-cs/strings.xml b/doze/res/values-cs/strings.xml new file mode 100644 index 0000000..4738828 --- /dev/null +++ b/doze/res/values-cs/strings.xml @@ -0,0 +1,34 @@ + + + + + Ambientní displej + Probudit obrazovku při upozornění + Vždy povolit + Naslouchat událostem senzoru ihned po vypnutí obrazovky + + Senzor náklonu + Sebrání + Pulzovat oznámení při zvednutí zařízení + + Senzor přiblížení + Mávání rukou + Upozornit pulsováním při zamáváním rukou + Kapsa + Upozornit pulsováním při vyjmutí z kapsy + + OK + Uživatelská příručka + Tyto funkce používají události senzorů ke spuštění pulzování oznámení. Vybraný senzor je zapnut pouze v případě přijetí upozornění, což vede k úspoře baterie. Je zde i možnost zapnout daný senzor ihned po vypnutí obrazovky, ale dochází k většímu vybíjení. + diff --git a/doze/res/values-csb-rPL/strings.xml b/doze/res/values-csb-rPL/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-csb-rPL/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-cy/strings.xml b/doze/res/values-cy/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-cy/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-da/strings.xml b/doze/res/values-da/strings.xml new file mode 100644 index 0000000..fffc2be --- /dev/null +++ b/doze/res/values-da/strings.xml @@ -0,0 +1,34 @@ + + + + + Inaktivitetsvisning + Tænder skærmen, når du modtager notifikationer + Aktiver altid + Lyt efter sensoraktiviteter så snart skærmen slukkes + + Tilt-sensor + Samle op + Blink med notifikationerne når enheden tages op + + Berøringssensor + Vink med hånden + Vibrér, hvis der er notifikationer, når du vinker over skærmen + Lomme + Vibrér, hvis der er notifikationer, når telefonen tages op ad lommen + + OK + Hjælp + Disse funktioner bruger sensoraktiviteter til at starte en doze-notifikation. Den valgte sensor er kun aktiveret, når enheden modtager en notifikation, dette hjælper med at reducere batteriforbruget. Der er også en mulighed for at aktivere den valgte sensor, så snart skærmen slukkes, dette vil medføre højere batteribrug. + diff --git a/doze/res/values-de/strings.xml b/doze/res/values-de/strings.xml new file mode 100644 index 0000000..033da28 --- /dev/null +++ b/doze/res/values-de/strings.xml @@ -0,0 +1,33 @@ + + + + + Inaktivitätsdisplay + Bildschirm einschalten, wenn Sie Benachrichtigungen erhalten + Immer aktiviert + Auf den Sensor reagieren, sobald der Bildschirm ausgeschaltet wird + + Neigungssensor + Aufnehmen + Benachrichtigungen kurz einblenden, wenn das Gerät aufgenommen wird + + Näherungssensor + Winken + Beim Winken Benachrichtigungen kurzzeitig einblenden + Tasche + Benachrichtigungen kurz einblenden, wenn das Gerät aus der Tasche genommen wird + + OK + Hilfe + diff --git a/doze/res/values-el/strings.xml b/doze/res/values-el/strings.xml new file mode 100644 index 0000000..dff5c14 --- /dev/null +++ b/doze/res/values-el/strings.xml @@ -0,0 +1,31 @@ + + + + + Οθόνη ambient + Ενεργοποίηση της οθόνης όταν λαμβάνετε ειδοποιήσεις + + Αισθητήρας κλίσης + Σήκωμα συσκευής + Παλμός ειδοποιήσεων κατά το σήκωμα της συσκευής + + Αισθητήρας εγγύτητας + Αιώρηση χεριού + Παλμός ειδοποιήσεων κατά την αιώρηση του χεριού + Τσέπη + Παλμός ειδοποιήσεων κατά την έξοδο από την τσέπη + + OK + Βοήθεια + diff --git a/doze/res/values-en-rAU/strings.xml b/doze/res/values-en-rAU/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-en-rAU/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-en-rGB/strings.xml b/doze/res/values-en-rGB/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-en-rGB/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-en-rIN/strings.xml b/doze/res/values-en-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-en-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-en-rPT/strings.xml b/doze/res/values-en-rPT/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-en-rPT/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-eo/strings.xml b/doze/res/values-eo/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-eo/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-es-rMX/strings.xml b/doze/res/values-es-rMX/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-es-rMX/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-es-rUS/strings.xml b/doze/res/values-es-rUS/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-es-rUS/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-es/strings.xml b/doze/res/values-es/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-es/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-et-rEE/strings.xml b/doze/res/values-et-rEE/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-et-rEE/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-eu-rES/strings.xml b/doze/res/values-eu-rES/strings.xml new file mode 100644 index 0000000..5a2ad35 --- /dev/null +++ b/doze/res/values-eu-rES/strings.xml @@ -0,0 +1,34 @@ + + + + + Ambient display + Piztu pantaila jakinarazpenak jasotzean + Gaitu beti + Sentsoreen gertakizunei entzun pantaila itzali eta berehala + + Inklinazio sentsorea + Hartu + Led jakinarazpenak gailua hartzean + + Hurbiltasun sentsorea + Agurtu eskuarekin + Jakinarazpen argia eskuarekin agurtzean + Poltsikoratu + Jakinarazpen argia poltsikotik ateratzean + + Ados + Laguntza + Ezaugarri hauek sentsoreen gertakizunak erabiltzen dituzte jakinarazpen argi bat pizteko. Sentsorea jakinarazpen bat jasotzean gaituko da, honi esker bateria erabilera murrizten da. Badago ere pantaila itzali eta berehala sentsorea pizteko aukera, honek bateria gehiago erabiliko du. + diff --git a/doze/res/values-fa/strings.xml b/doze/res/values-fa/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-fa/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-fi/strings.xml b/doze/res/values-fi/strings.xml new file mode 100644 index 0000000..6806978 --- /dev/null +++ b/doze/res/values-fi/strings.xml @@ -0,0 +1,34 @@ + + + + + Ambient-näyttö + Herätä näyttö kun saat ilmoituksia + Käytä aina + Havaitse sensorin tapahtumia kun näyttö sammuu + + Kallistussensori + Nosto + Väläytä ilmoituksia kun laite nostetaan + + Läheisyysanturi + Käden heilautus + Näytä ilmoitukset heilautettaessa kättä + Tasku + Näytä ilmoitukset kun laite otetaan taskusta + + OK + Apua + Ominaisuudet käyttää sensorin tapahtumia näyttääkseen ilmoituksia. Valittu sensori on vain käytössä kun laite saa ilmoituksen, tämä auttaa vähentämään akun kulutusta. Voit myös ottaa sensorit käyttöön kun näyttö on suljettu, mutta tämä kasvattaa akun kulutusta. + diff --git a/doze/res/values-fil-rPH/strings.xml b/doze/res/values-fil-rPH/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-fil-rPH/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-fr-rCA/strings.xml b/doze/res/values-fr-rCA/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-fr-rCA/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-fr/strings.xml b/doze/res/values-fr/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-fr/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-frp-rIT/strings.xml b/doze/res/values-frp-rIT/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-frp-rIT/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-fy-rNL/strings.xml b/doze/res/values-fy-rNL/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-fy-rNL/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-gd-rGB/strings.xml b/doze/res/values-gd-rGB/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-gd-rGB/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-gl-rES/strings.xml b/doze/res/values-gl-rES/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-gl-rES/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-gu-rIN/strings.xml b/doze/res/values-gu-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-gu-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-hi/strings.xml b/doze/res/values-hi/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-hi/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-hr/strings.xml b/doze/res/values-hr/strings.xml new file mode 100644 index 0000000..1742320 --- /dev/null +++ b/doze/res/values-hr/strings.xml @@ -0,0 +1,34 @@ + + + + + Ambijentni zaslon + Probudi zaslon kada primite obavijesti + Uvijek omogući + Praćenje senzora čim se zaslon isključi + + Senzor nagiba + Podizanje + Prikazuj obavijesti kada je uređaj podignut + + Senzor blizine + Zamah rukom + Prikaz obavijesti na zamah rukom + Džep + Prikaz obavijesti kada izvadite uređaj iz džepa + + OK + Pomoć + Te značajke koriste događaje senzora za pokretanje pulsiranja obavijesti. Odabrani senzor je omogućen jedino kada uređaj primi obavijest, to pomaže smanjenju potrošnje baterije. Tu je i opcija omogućenja odabranog senzora čim se zaslon isključi, to će uzrokovati veću potrošnju baterije. + diff --git a/doze/res/values-hu/strings.xml b/doze/res/values-hu/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-hu/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-hy-rAM/strings.xml b/doze/res/values-hy-rAM/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-hy-rAM/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-in/strings.xml b/doze/res/values-in/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-in/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-is-rIS/strings.xml b/doze/res/values-is-rIS/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-is-rIS/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-it/strings.xml b/doze/res/values-it/strings.xml new file mode 100644 index 0000000..15530e7 --- /dev/null +++ b/doze/res/values-it/strings.xml @@ -0,0 +1,34 @@ + + + + + Display Ambient + Accendi lo schermo quando ricevi una notifica + Sempre attivo + Attiva i sensori per gli eventi appena lo schermo si spegne + + Sensore inclinazione + Solleva + Mostra le notifiche quando il dispositivo viene sollevato + + Sensore prossimità + Movimento della mano + Mostra le notifiche al passaggio della mano + Tasca + Mostra le notifiche quando il telefono viene rimosso dalla tasca + + OK + Guida + Queste funzioni utilizzano i sensori per mostrare le notifiche. Il sensore selezionato verrà attivato solo quando il dispositivo riceve una notifica, questo consentirà di ridurre l\'utilizzo della batteria. È anche possibile attivare il sensore selezionato appena lo schermo si spegne, ma ciò comporterà ad un utilizzo maggiore della batteria. + diff --git a/doze/res/values-iw/strings.xml b/doze/res/values-iw/strings.xml new file mode 100644 index 0000000..b696fe1 --- /dev/null +++ b/doze/res/values-iw/strings.xml @@ -0,0 +1,24 @@ + + + + + תצוגת התראות עמומה + + + כיס + הצג התראות בהוצאה מהכיס + + אישור + עזרה + diff --git a/doze/res/values-ja/strings.xml b/doze/res/values-ja/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ja/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ka-rGE/strings.xml b/doze/res/values-ka-rGE/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ka-rGE/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-kk-rKZ/strings.xml b/doze/res/values-kk-rKZ/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-kk-rKZ/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-km-rKH/strings.xml b/doze/res/values-km-rKH/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-km-rKH/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-kn-rIN/strings.xml b/doze/res/values-kn-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-kn-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ko/strings.xml b/doze/res/values-ko/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ko/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ku/strings.xml b/doze/res/values-ku/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ku/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ky-rKG/strings.xml b/doze/res/values-ky-rKG/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ky-rKG/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-lb/strings.xml b/doze/res/values-lb/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-lb/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-lo-rLA/strings.xml b/doze/res/values-lo-rLA/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-lo-rLA/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-lt/strings.xml b/doze/res/values-lt/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-lt/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-lv/strings.xml b/doze/res/values-lv/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-lv/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-mk-rMK/strings.xml b/doze/res/values-mk-rMK/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-mk-rMK/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ml-rIN/strings.xml b/doze/res/values-ml-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ml-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-mn-rMN/strings.xml b/doze/res/values-mn-rMN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-mn-rMN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-mr-rIN/strings.xml b/doze/res/values-mr-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-mr-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ms-rMY/strings.xml b/doze/res/values-ms-rMY/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ms-rMY/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-my-rMM/strings.xml b/doze/res/values-my-rMM/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-my-rMM/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-nb/strings.xml b/doze/res/values-nb/strings.xml new file mode 100644 index 0000000..fb4db6e --- /dev/null +++ b/doze/res/values-nb/strings.xml @@ -0,0 +1,34 @@ + + + + + Ambient visning + Våkne skjermen når du får varsler + Alltid aktivere + Lete etter sensor aktivitet etter at skjermen slår seg av + + Tilt sensor + Opp-plukking + Pulseringsnotifikasjon når telefonen er plukket opp + + Avstandsmåler + Håndvink + Pulseringsnotifikasjon ved håndvink + Lomme + Pulseringsnotifikasjon når telefonen er tatt opp av lommen + + OK + Hjelp + Disse funksjonene bruker sensor aktiviteter for å åpne en doze pulseringsnotifikasjon. Den valgte sensoren er bare slått på når du har fått et varsel, for å spare batteriet. Du kan også slå på så sensoren slår seg på når skjermen slår seg av, som vill tappe mer strøm. + diff --git a/doze/res/values-ne-rNP/strings.xml b/doze/res/values-ne-rNP/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ne-rNP/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-nl/strings.xml b/doze/res/values-nl/strings.xml new file mode 100644 index 0000000..415461b --- /dev/null +++ b/doze/res/values-nl/strings.xml @@ -0,0 +1,31 @@ + + + + + Omgevingsdisplay + Scherm aan bij het ontvangen van meldingen + Altijd inschakelen + + Oppakken + Meldingen laten knipperen bij oppakken + + Nabijheidssensor + Handgebaar + Meldingen laten knipperen bij handgebaar + Broekzak + Meldingen laten knipperen bij verwijderen uit broekzak + + OK + Help + diff --git a/doze/res/values-oc-rFR/strings.xml b/doze/res/values-oc-rFR/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-oc-rFR/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-or-rIN/strings.xml b/doze/res/values-or-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-or-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-pa-rIN/strings.xml b/doze/res/values-pa-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-pa-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-pl/strings.xml b/doze/res/values-pl/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-pl/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-pt-rBR/strings.xml b/doze/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000..957fec1 --- /dev/null +++ b/doze/res/values-pt-rBR/strings.xml @@ -0,0 +1,34 @@ + + + + + Tela ambiente + Ligar a tela ao receber notificações + Sempre habilitado + Monitorar o sensor assim que a tela for desligada + + Sensor de inclinação + Pegar + Pulsar notificações ao pegar o dispositivo + + Sensor de proximidade + Acenar com a mão + Pulsar notificações ao acenar com a mão + Bolso + Pulsar notificações ao retirar do bolso + + OK + Ajuda + Esses recursos monitoram o sensor para que o dispositivo possa despertar do estado de repouso e pulsar notificações. O sensor escolhido só é habilitado quando o dispositivo recebe uma notificação, isso ajuda a reduzir o uso de bateria. Há também uma opção para ativar o sensor escolhido assim que a tela desliga, isso causará o maior uso da bateria. + diff --git a/doze/res/values-pt-rPT/strings.xml b/doze/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000..33b5879 --- /dev/null +++ b/doze/res/values-pt-rPT/strings.xml @@ -0,0 +1,33 @@ + + + + + Visualização de ambiente + Ligar o ecrã quando receber notificações + Permitir sempre + + Sensor de inclinação + Pegar + Mostrar as notificações ao pegar no dispositivo + + Sensor de proximidade + Passar a mão + Mostrar notificações ao passar a mão + Bolso + Mostrar notificações ao retirar do bolso + + OK + Ajuda + Estes recursos utilizam eventos de sensores para mostrarem notificações enquanto o dispositivo está em repouso. O sensor escolhido só é ativado quando o dispositivo recebe uma notificação, o que ajuda a reduzir a utilização da bateria. Há também uma opção para ativar o sensor escolhido assim que o ecrã se desliga, o que resultará numa maior utilização da bateria. + diff --git a/doze/res/values-rm/strings.xml b/doze/res/values-rm/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-rm/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ro/strings.xml b/doze/res/values-ro/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ro/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ru/strings.xml b/doze/res/values-ru/strings.xml new file mode 100644 index 0000000..dce20e4 --- /dev/null +++ b/doze/res/values-ru/strings.xml @@ -0,0 +1,34 @@ + + + + + Индикация событий + Включать экран при получении уведомлений + Всегда включено + Прослушивать события сенсора сразу после отключения экрана + + Датчик наклона + Поднять + Отображать уведомления при поднятии устройства + + Датчик приближения + Взмах + Проведите ладонью над экраном для просмотра уведомлений + Карман + Отображать уведомления при извлечении устройства из кармана + + OK + Информация + Эти функции используют события датчиков для отображения уведомлений. Датчик проверяется только при поступлении нового уведомления, что помогает сэкономить заряд батареи. Можно активировать включение датчика сразу при отключении экрана устройства, однако это может ускорить разряд батареи. + diff --git a/doze/res/values-si-rLK/strings.xml b/doze/res/values-si-rLK/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-si-rLK/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-sk/strings.xml b/doze/res/values-sk/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-sk/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-sl/strings.xml b/doze/res/values-sl/strings.xml new file mode 100644 index 0000000..690ae7c --- /dev/null +++ b/doze/res/values-sl/strings.xml @@ -0,0 +1,34 @@ + + + + + Okoliški zaslon + Zbudi zaslon ob prejemu obvestila + Vedno omogoči + Poslušaj za dogodke tipal, takoj ko se zaslon izklopi + + Tipalo nagiba + Dvig + Utripaj obvestila ob dvigu naprave + + Tipalo bližine + Mahanje z roko + Utripaj obvestila ob mahanju z roko + Žep + Utripaj obvestila ob odstranitvi iz žepa + + V redu + Pomoč + Te značilnosti uporabljajo dogodke tipal za sprožitev utripanja obvestil ob spanju. Izbrano tipalo se omogoči samo, ko naprava prejme obvestilo. To pomaga zmanjšati porabo energije. Obstaja tudi možnost omogočanja izbranega tipala, takoj ko se zaslon izklopi, vendar bo to povzročilo večjo porabo energije. + diff --git a/doze/res/values-sq-rAL/strings.xml b/doze/res/values-sq-rAL/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-sq-rAL/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-sr/strings.xml b/doze/res/values-sr/strings.xml new file mode 100644 index 0000000..5ab93dc --- /dev/null +++ b/doze/res/values-sr/strings.xml @@ -0,0 +1,34 @@ + + + + + Амбијент приказ + Пробуди екран кад добијеш обавештење + Увек омогући + Праћење сензора чим се екран искључи + + Тилт сензор + Купљење + Пулсно обавештење када је уређај покупљен + + Сензор близине + Покрет руком + Пулсно обавештење при покрету руком + Џеп + Пулсно обавештење при уклањању из џепа + + У реду + Помоћ + Ова функција користи активирање сензора да покрене пулсно обавештење. Изабрани сензор је омогућен једино када уређај прима обавештење, то помаже смањењу потрожње батерије. Ту је и опција омогућења изабраног сензора чим се екран искључи, то ће узроковати већој потрожњи батерије. + diff --git a/doze/res/values-sv/strings.xml b/doze/res/values-sv/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-sv/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-sw/strings.xml b/doze/res/values-sw/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-sw/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ta-rIN/strings.xml b/doze/res/values-ta-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ta-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-te-rIN/strings.xml b/doze/res/values-te-rIN/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-te-rIN/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-th/strings.xml b/doze/res/values-th/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-th/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-tr/strings.xml b/doze/res/values-tr/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-tr/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ug/strings.xml b/doze/res/values-ug/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ug/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-uk/strings.xml b/doze/res/values-uk/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-uk/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-ur-rPK/strings.xml b/doze/res/values-ur-rPK/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-ur-rPK/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-uz-rUZ/strings.xml b/doze/res/values-uz-rUZ/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-uz-rUZ/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-vi/strings.xml b/doze/res/values-vi/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-vi/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-zh-rCN/strings.xml b/doze/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000..6d8f437 --- /dev/null +++ b/doze/res/values-zh-rCN/strings.xml @@ -0,0 +1,34 @@ + + + + + 环境显示 + 当接收到通知时唤醒屏幕 + 始终启用 + 当屏幕关闭后立即监听传感器事件 + + 倾斜传感器 + 拿起 + 当拿起设备时闪烁通知灯 + + 距离传感器 + 挥手 + 挥手时闪烁通知呼吸灯 + 口袋 + 从口袋中拿出时闪烁通知呼吸灯 + + 确定 + 帮助 + 这些功能使用传感器启用打盹通知指示灯,选择的传感器将仅在设备收到通知时开启,这将有助于优化电池用量。还有一个选项是当屏幕关闭后立即启用传感器,这会导致更多的电池用量。 + diff --git a/doze/res/values-zh-rHK/strings.xml b/doze/res/values-zh-rHK/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-zh-rHK/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-zh-rTW/strings.xml b/doze/res/values-zh-rTW/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-zh-rTW/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values-zu/strings.xml b/doze/res/values-zu/strings.xml new file mode 100644 index 0000000..c023c08 --- /dev/null +++ b/doze/res/values-zu/strings.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/doze/res/values/strings.xml b/doze/res/values/strings.xml index 79b3747..9643190 100644 --- a/doze/res/values/strings.xml +++ b/doze/res/values/strings.xml @@ -13,23 +13,26 @@ --> - - Doze - Ambient display + Wake screen when you receive notifications + + Always enable + Listen for sensor events as soon as the screen turns off - Ambient display - Wake screen when you receive notifications + + Tilt sensor + Pick up + Pulse notifications when device is picked up + + Proximity sensor Hand wave Pulse notifications on hand wave - Pocket Pulse notifications on removal from pocket - Proximity wake - - Proximity wake - Wake device on hand wave - + + OK + Help + These features use sensor events to launch a doze notification pulse. The chosen sensor is only enabled when the device receives a notification, this helps to reduce battery usage. There is also an option to enable the chosen sensor as soon as the screen turns off, this will cause higher battery usage. diff --git a/doze/res/xml/doze_settings.xml b/doze/res/xml/doze_settings.xml new file mode 100644 index 0000000..09e27b5 --- /dev/null +++ b/doze/res/xml/doze_settings.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doze/res/xml/gesture_panel.xml b/doze/res/xml/gesture_panel.xml deleted file mode 100644 index 40a017c..0000000 --- a/doze/res/xml/gesture_panel.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doze/src/com/cyanogenmod/settings/doze/BootCompletedReceiver.java b/doze/src/com/cyanogenmod/settings/doze/BootCompletedReceiver.java index af656fe..e1b2b50 100644 --- a/doze/src/com/cyanogenmod/settings/doze/BootCompletedReceiver.java +++ b/doze/src/com/cyanogenmod/settings/doze/BootCompletedReceiver.java @@ -28,8 +28,10 @@ public class BootCompletedReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { - if (DEBUG) Log.d(TAG, "Starting service"); - context.startService(new Intent(context, ZukDozeService.class)); + if (Utils.isDozeEnabled(context) && Utils.sensorsEnabled(context)) { + if (DEBUG) Log.d(TAG, "Starting service"); + Utils.startService(context); + } } } diff --git a/doze/src/com/cyanogenmod/settings/doze/DozeService.java b/doze/src/com/cyanogenmod/settings/doze/DozeService.java new file mode 100644 index 0000000..354d97f --- /dev/null +++ b/doze/src/com/cyanogenmod/settings/doze/DozeService.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2015 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cyanogenmod.settings.doze; + +import android.app.Service; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.IBinder; +import android.util.Log; + +public class DozeService extends Service { + private static final String TAG = "DozeService"; + private static final boolean DEBUG = false; + + private ProximitySensor mProximitySensor; + private TiltSensor mTiltSensor; + + @Override + public void onCreate() { + if (DEBUG) Log.d(TAG, "Creating service"); + mProximitySensor = new ProximitySensor(this); + mTiltSensor = new TiltSensor(this); + + IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_ON); + screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF); + registerReceiver(mScreenStateReceiver, screenStateFilter); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (DEBUG) Log.d(TAG, "Starting service"); + return START_STICKY; + } + + @Override + public void onDestroy() { + if (DEBUG) Log.d(TAG, "Destroying service"); + super.onDestroy(); + this.unregisterReceiver(mScreenStateReceiver); + mProximitySensor.disable(); + mTiltSensor.disable(); + } + + @Override + public IBinder onBind(Intent intent) { + return null; + } + + private void onDisplayOn() { + if (DEBUG) Log.d(TAG, "Display on"); + if (Utils.pickUpEnabled(this)) { + mTiltSensor.disable(); + } + if (Utils.handwaveGestureEnabled(this) || + Utils.pocketGestureEnabled(this)) { + mProximitySensor.disable(); + } + } + + private void onDisplayOff() { + if (DEBUG) Log.d(TAG, "Display off"); + if (Utils.pickUpEnabled(this) && Utils.tiltAlwaysEnabled(this)) { + mTiltSensor.enable(); + } + if (Utils.proximityAlwaysEnabled(this) && (Utils.handwaveGestureEnabled(this) || + Utils.pocketGestureEnabled(this))) { + mProximitySensor.enable(); + } + } + + private BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { + onDisplayOn(); + } else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { + onDisplayOff(); + } + } + }; +} diff --git a/doze/src/com/cyanogenmod/settings/doze/DozeSettings.java b/doze/src/com/cyanogenmod/settings/doze/DozeSettings.java index d0697db..d2c408a 100644 --- a/doze/src/com/cyanogenmod/settings/doze/DozeSettings.java +++ b/doze/src/com/cyanogenmod/settings/doze/DozeSettings.java @@ -17,61 +17,84 @@ package com.cyanogenmod.settings.doze; import android.app.ActionBar; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; import android.os.Bundle; import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceActivity; +import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.provider.Settings; import android.view.Menu; import android.view.MenuItem; -import org.cyanogenmod.internal.util.ScreenType; +public class DozeSettings extends PreferenceActivity implements OnPreferenceChangeListener { -public class DozeSettings extends PreferenceActivity { - - private static final String KEY_AMBIENT_DISPLAY_ENABLE = "ambient_display_enable"; - private static final String KEY_HAND_WAVE = "gesture_hand_wave"; - private static final String KEY_GESTURE_POCKET = "gesture_pocket"; - private static final String KEY_PROXIMITY_WAKE = "proximity_wake_enable"; + private Context mContext; + private SharedPreferences mPreferences; private SwitchPreference mAmbientDisplayPreference; + private SwitchPreference mPickUpPreference; + private SwitchPreference mTiltAlwaysPreference; private SwitchPreference mHandwavePreference; private SwitchPreference mPocketPreference; - private SwitchPreference mProximityWakePreference; + private SwitchPreference mProximityAlwaysPreference; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - addPreferencesFromResource(R.xml.gesture_panel); - boolean dozeEnabled = isDozeEnabled(); + addPreferencesFromResource(R.xml.doze_settings); + mContext = getApplicationContext(); + boolean dozeEnabled = Utils.isDozeEnabled(mContext); + + // get shared preference + mPreferences = mContext.getSharedPreferences("doze_settings", Activity.MODE_PRIVATE); + if (savedInstanceState == null && !mPreferences.getBoolean("first_help_shown", false)) { + showHelp(); + } + mAmbientDisplayPreference = - (SwitchPreference) findPreference(KEY_AMBIENT_DISPLAY_ENABLE); + (SwitchPreference) findPreference(Utils.AMBIENT_DISPLAY_KEY); // Read from DOZE_ENABLED secure setting mAmbientDisplayPreference.setChecked(dozeEnabled); - mAmbientDisplayPreference.setOnPreferenceChangeListener(mAmbientDisplayPrefListener); + mAmbientDisplayPreference.setOnPreferenceChangeListener(this); + + mTiltAlwaysPreference = + (SwitchPreference) findPreference(Utils.TILT_ALWAYS_KEY); + mTiltAlwaysPreference.setOnPreferenceChangeListener(this); + + mPickUpPreference = + (SwitchPreference) findPreference(Utils.PICK_UP_KEY); + mPickUpPreference.setOnPreferenceChangeListener(this); + mHandwavePreference = - (SwitchPreference) findPreference(KEY_HAND_WAVE); - mHandwavePreference.setEnabled(dozeEnabled); - mHandwavePreference.setOnPreferenceChangeListener(mProximityListener); + (SwitchPreference) findPreference(Utils.GESTURE_HAND_WAVE_KEY); + mHandwavePreference.setOnPreferenceChangeListener(this); + mPocketPreference = - (SwitchPreference) findPreference(KEY_GESTURE_POCKET); - mPocketPreference.setEnabled(dozeEnabled); - mProximityWakePreference = - (SwitchPreference) findPreference(KEY_PROXIMITY_WAKE); - mProximityWakePreference.setOnPreferenceChangeListener(mProximityListener); + (SwitchPreference) findPreference(Utils.GESTURE_POCKET_KEY); + mPocketPreference.setOnPreferenceChangeListener(this); + + mProximityAlwaysPreference = + (SwitchPreference) findPreference(Utils.PROXIMITY_ALWAYS_KEY); + mProximityAlwaysPreference.setOnPreferenceChangeListener(this); final ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); + + updateAlwaysEnabledPreference(); } @Override protected void onResume() { super.onResume(); - - // If running on a phone, remove padding around the listview - if (!ScreenType.isTablet(this)) { - getListView().setPadding(0, 0, 0, 0); - } + updateAlwaysEnabledPreference(); } @Override @@ -83,42 +106,73 @@ public class DozeSettings extends PreferenceActivity { return false; } - private boolean enableDoze(boolean enable) { - return Settings.Secure.putInt(getContentResolver(), - Settings.Secure.DOZE_ENABLED, enable ? 1 : 0); - } - - private boolean isDozeEnabled() { - return Settings.Secure.getInt(getContentResolver(), - Settings.Secure.DOZE_ENABLED, 1) != 0; + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + final String key = preference.getKey(); + final boolean value = (Boolean) newValue; + if (Utils.AMBIENT_DISPLAY_KEY.equals(key)) { + mAmbientDisplayPreference.setChecked(value); + Utils.enableDoze(value, mContext); + return true; + } else if (Utils.PICK_UP_KEY.equals(key)) { + mPickUpPreference.setChecked(value); + updateAlwaysEnabledPreference(); + Utils.startService(mContext); + return true; + } else if (Utils.TILT_ALWAYS_KEY.equals(key)) { + mTiltAlwaysPreference.setChecked(value); + return true; + } else if (Utils.GESTURE_HAND_WAVE_KEY.equals(key)) { + mHandwavePreference.setChecked(value); + updateAlwaysEnabledPreference(); + Utils.startService(mContext); + return true; + } else if (Utils.GESTURE_POCKET_KEY.equals(key)) { + mPocketPreference.setChecked(value); + updateAlwaysEnabledPreference(); + Utils.startService(mContext); + return true; + } else if (Utils.PROXIMITY_ALWAYS_KEY.equals(key)) { + mProximityAlwaysPreference.setChecked(value); + return true; + } + return false; } - private Preference.OnPreferenceChangeListener mAmbientDisplayPrefListener = - new Preference.OnPreferenceChangeListener() { + public static class HelpDialogFragment extends DialogFragment { @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - boolean enable = (boolean) newValue; - boolean ret = enableDoze(enable); - if (ret) { - mHandwavePreference.setEnabled(enable); - mPocketPreference.setEnabled(enable); - } - return ret; + public Dialog onCreateDialog(Bundle savedInstanceState) { + return new AlertDialog.Builder(getActivity()) + .setTitle(R.string.doze_settings_help_title) + .setMessage(R.string.doze_settings_help_text) + .setNegativeButton(R.string.dlg_ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.cancel(); + } + }) + .create(); } - }; - private Preference.OnPreferenceChangeListener mProximityListener = - new Preference.OnPreferenceChangeListener() { @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - if ((boolean) newValue) { - if (preference.getKey().equals(KEY_HAND_WAVE)) { - mProximityWakePreference.setChecked(false); - } else if (preference.getKey().equals(KEY_PROXIMITY_WAKE)) { - mHandwavePreference.setChecked(false); - } - } - return true; + public void onCancel(DialogInterface dialog) { + getActivity().getSharedPreferences("doze_settings", Activity.MODE_PRIVATE) + .edit() + .putBoolean("first_help_shown", true) + .commit(); } - }; + } + + private void showHelp() { + HelpDialogFragment fragment = new HelpDialogFragment(); + fragment.show(getFragmentManager(), "help_dialog"); + } + + private void updateAlwaysEnabledPreference() { + boolean tiltEnabled = Utils.pickUpEnabled(mContext); + boolean proximityEnabled = Utils.handwaveGestureEnabled(mContext) + || Utils.pocketGestureEnabled(mContext); + mTiltAlwaysPreference.setEnabled(tiltEnabled); + mProximityAlwaysPreference.setEnabled(proximityEnabled); + } } diff --git a/doze/src/com/cyanogenmod/settings/doze/ProximitySensor.java b/doze/src/com/cyanogenmod/settings/doze/ProximitySensor.java new file mode 100644 index 0000000..0f62b11 --- /dev/null +++ b/doze/src/com/cyanogenmod/settings/doze/ProximitySensor.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2015 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cyanogenmod.settings.doze; + +import android.content.Context; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.util.Log; + +public class ProximitySensor implements SensorEventListener { + + private static final boolean DEBUG = false; + private static final String TAG = "ProximitySensor"; + + private static final int POCKET_DELTA_NS = 1000 * 1000 * 1000; + + private SensorManager mSensorManager; + private Sensor mSensor; + private Context mContext; + + private boolean mSawNear = false; + private long mInPocketTime = 0; + + public ProximitySensor(Context context) { + mContext = context; + mSensorManager = (SensorManager) + mContext.getSystemService(Context.SENSOR_SERVICE); + mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); + } + + @Override + public void onSensorChanged(SensorEvent event) { + boolean isNear = event.values[0] < mSensor.getMaximumRange(); + if (mSawNear && !isNear) { + if (shouldPulse(event.timestamp)) { + Utils.launchDozePulse(mContext); + } + } else { + mInPocketTime = event.timestamp; + } + mSawNear = isNear; + } + + private boolean shouldPulse(long timestamp) { + long delta = timestamp - mInPocketTime; + + if (Utils.handwaveGestureEnabled(mContext) + && Utils.pocketGestureEnabled(mContext)) { + return true; + } else if (Utils.handwaveGestureEnabled(mContext) + && !Utils.pocketGestureEnabled(mContext)) { + return delta < POCKET_DELTA_NS; + } else if (!Utils.handwaveGestureEnabled(mContext) + && Utils.pocketGestureEnabled(mContext)) { + return delta >= POCKET_DELTA_NS; + } + return false; + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) { + /* Empty */ + } + + protected void enable() { + if (DEBUG) Log.d(TAG, "Enabling"); + mSensorManager.registerListener(this, mSensor, + SensorManager.SENSOR_DELAY_NORMAL); + } + + protected void disable() { + if (DEBUG) Log.d(TAG, "Disabling"); + mSensorManager.unregisterListener(this, mSensor); + } +} diff --git a/doze/src/com/cyanogenmod/settings/doze/TiltSensor.java b/doze/src/com/cyanogenmod/settings/doze/TiltSensor.java new file mode 100644 index 0000000..443a10d --- /dev/null +++ b/doze/src/com/cyanogenmod/settings/doze/TiltSensor.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2015 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cyanogenmod.settings.doze; + +import android.content.Context; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.os.PowerManager; +import android.os.PowerManager.WakeLock; +import android.os.SystemClock; +import android.util.Log; + +public class TiltSensor implements SensorEventListener { + + private static final boolean DEBUG = false; + private static final String TAG = "TiltSensor"; + + private static final int SENSOR_WAKELOCK_DURATION = 200; + private static final int BATCH_LATENCY_IN_MS = 100; + private static final int MIN_PULSE_INTERVAL_MS = 2500; + + private PowerManager mPowerManager; + private SensorManager mSensorManager; + private Sensor mSensor; + private WakeLock mSensorWakeLock; + private Context mContext; + + private long mEntryTimestamp; + + public TiltSensor(Context context) { + mContext = context; + mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); + mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); + mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_TILT_DETECTOR); + mSensorWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, + "SensorWakeLock"); + } + + @Override + public void onSensorChanged(SensorEvent event) { + if (DEBUG) Log.d(TAG, "Got sensor event: " + event.values[0]); + + long delta = SystemClock.elapsedRealtime() - mEntryTimestamp; + if (delta < MIN_PULSE_INTERVAL_MS) { + return; + } else { + mEntryTimestamp = SystemClock.elapsedRealtime(); + } + + if (event.values[0] == 1) { + Utils.launchDozePulse(mContext); + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) { + /* Empty */ + } + + protected void enable() { + if (DEBUG) Log.d(TAG, "Enabling"); + mSensorManager.registerListener(this, mSensor, + SensorManager.SENSOR_DELAY_NORMAL, BATCH_LATENCY_IN_MS * 1000); + mEntryTimestamp = SystemClock.elapsedRealtime(); + } + + protected void disable() { + if (DEBUG) Log.d(TAG, "Disabling"); + mSensorManager.unregisterListener(this, mSensor); + } +} diff --git a/doze/src/com/cyanogenmod/settings/doze/Utils.java b/doze/src/com/cyanogenmod/settings/doze/Utils.java new file mode 100644 index 0000000..bdc696b --- /dev/null +++ b/doze/src/com/cyanogenmod/settings/doze/Utils.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2015 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cyanogenmod.settings.doze; + +import android.app.ActivityManager; +import android.app.ActivityManager.RunningServiceInfo; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.UserHandle; +import android.preference.PreferenceManager; +import android.provider.Settings; +import android.util.Log; + +public final class Utils { + + private static final String TAG = "DozeUtils"; + private static final boolean DEBUG = false; + + private static final String DOZE_INTENT = "com.android.systemui.doze.pulse"; + + protected static final String AMBIENT_DISPLAY_KEY = "ambient_display"; + protected static final String PICK_UP_KEY = "pick_up"; + protected static final String TILT_ALWAYS_KEY = "tilt_always"; + protected static final String GESTURE_HAND_WAVE_KEY = "gesture_hand_wave"; + protected static final String GESTURE_POCKET_KEY = "gesture_pocket"; + protected static final String PROXIMITY_ALWAYS_KEY = "proximity_always"; + + protected static void startService(Context context) { + if (DEBUG) Log.d(TAG, "Starting service"); + context.startService(new Intent(context, DozeService.class)); + } + + protected static void stopService(Context context) { + if (DEBUG) Log.d(TAG, "Stopping service"); + context.stopService(new Intent(context, DozeService.class)); + } + + protected static boolean isDozeEnabled(Context context) { + return Settings.Secure.getInt(context.getContentResolver(), + Settings.Secure.DOZE_ENABLED, 1) != 0; + } + + protected static boolean enableDoze(boolean enable, Context context) { + boolean dozeEnabled = Settings.Secure.putInt(context.getContentResolver(), + Settings.Secure.DOZE_ENABLED, enable ? 1 : 0); + if (enable) { + startService(context); + } else { + stopService(context); + } + return dozeEnabled; + } + + protected static void launchDozePulse(Context context) { + if (DEBUG) Log.d(TAG, "Launch doze pulse"); + context.sendBroadcastAsUser(new Intent(DOZE_INTENT), + new UserHandle(UserHandle.USER_CURRENT)); + } + + protected static boolean pickUpEnabled(Context context) { + return PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(PICK_UP_KEY, false); + } + + protected static boolean tiltAlwaysEnabled(Context context) { + return PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(TILT_ALWAYS_KEY, false); + } + + protected static boolean handwaveGestureEnabled(Context context) { + return PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(GESTURE_HAND_WAVE_KEY, false); + } + + protected static boolean pocketGestureEnabled(Context context) { + return PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(GESTURE_POCKET_KEY, false); + } + + protected static boolean proximityAlwaysEnabled(Context context) { + return PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(PROXIMITY_ALWAYS_KEY, false); + } + + protected static boolean sensorsEnabled(Context context) { + return pickUpEnabled(context) || handwaveGestureEnabled(context) + || pocketGestureEnabled(context); + } +} diff --git a/doze/src/com/cyanogenmod/settings/doze/ZukDozeService.java b/doze/src/com/cyanogenmod/settings/doze/ZukDozeService.java deleted file mode 100644 index 4163972..0000000 --- a/doze/src/com/cyanogenmod/settings/doze/ZukDozeService.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (c) 2015 The CyanogenMod Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.cyanogenmod.settings.doze; - -import android.app.Service; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.SharedPreferences; -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.hardware.SensorManager; -import android.os.IBinder; -import android.os.PowerManager; -import android.preference.PreferenceManager; -import android.provider.Settings; -import android.util.Log; - -import java.lang.System; -import java.util.ArrayList; -import java.util.concurrent.TimeUnit; -import java.util.List; - -public class ZukDozeService extends Service { - private static final String TAG = "ZukDozeService"; - private static final boolean DEBUG = false; - - private static final String DOZE_INTENT = "com.android.systemui.doze.pulse"; - - private static final String GESTURE_HAND_WAVE_KEY = "gesture_hand_wave"; - private static final String GESTURE_POCKET_KEY = "gesture_pocket"; - private static final String PROXIMITY_WAKE_KEY = "proximity_wake_enable"; - - private static final int POCKET_DELTA_NS = 1000 * 1000 * 1000; - - private Context mContext; - private OneplusProximitySensor mSensor; - private PowerManager mPowerManager; - - private boolean mHandwaveGestureEnabled = false; - private boolean mPocketGestureEnabled = false; - private boolean mProximityWakeEnabled = false; - - class OneplusProximitySensor implements SensorEventListener { - private SensorManager mSensorManager; - private Sensor mSensor; - - private boolean mSawNear = false; - private long mInPocketTime = 0; - - public OneplusProximitySensor(Context context) { - mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE); - mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); - } - - @Override - public void onSensorChanged(SensorEvent event) { - boolean isNear = event.values[0] < mSensor.getMaximumRange(); - if (mSawNear && !isNear) { - if (shouldPulse(event.timestamp)) { - launchDozePulse(); - } - } else { - mInPocketTime = event.timestamp; - } - mSawNear = isNear; - } - - @Override - public void onAccuracyChanged(Sensor sensor, int accuracy) { - /* Empty */ - } - - private boolean shouldPulse(long timestamp) { - long delta = timestamp - mInPocketTime; - - if (mHandwaveGestureEnabled && mPocketGestureEnabled) { - return true; - } else if (mProximityWakeEnabled && (delta < POCKET_DELTA_NS)) { - mPowerManager.wakeUp(TimeUnit.NANOSECONDS.toMillis(System.nanoTime())); - return false; - } else if (mHandwaveGestureEnabled && !mPocketGestureEnabled) { - return delta < POCKET_DELTA_NS; - } else if (!mHandwaveGestureEnabled && mPocketGestureEnabled) { - return delta >= POCKET_DELTA_NS; - } - return false; - } - - public void testAndEnable() { - if ((isDozeEnabled() && (mHandwaveGestureEnabled || mPocketGestureEnabled)) || - mProximityWakeEnabled) { - mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL); - } - } - - public void disable() { - mSensorManager.unregisterListener(this, mSensor); - } - } - - @Override - public void onCreate() { - if (DEBUG) Log.d(TAG, "ZukDozeService Started"); - mContext = this; - mPowerManager = (PowerManager)getSystemService(Context.POWER_SERVICE); - mSensor = new OneplusProximitySensor(mContext); - SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(mContext); - loadPreferences(sharedPrefs); - sharedPrefs.registerOnSharedPreferenceChangeListener(mPrefListener); - if (!isInteractive()) { - mSensor.testAndEnable(); - } - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - if (DEBUG) Log.d(TAG, "Starting service"); - IntentFilter screenStateFilter = new IntentFilter(Intent.ACTION_SCREEN_ON); - screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF); - mContext.registerReceiver(mScreenStateReceiver, screenStateFilter); - return START_STICKY; - } - - @Override - public IBinder onBind(Intent intent) { - return null; - } - - private void launchDozePulse() { - mContext.sendBroadcast(new Intent(DOZE_INTENT)); - } - - private boolean isInteractive() { - return mPowerManager.isInteractive(); - } - - private boolean isDozeEnabled() { - return Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.DOZE_ENABLED, 1) != 0; - } - - private void onDisplayOn() { - if (DEBUG) Log.d(TAG, "Display on"); - mSensor.disable(); - } - - private void onDisplayOff() { - if (DEBUG) Log.d(TAG, "Display off"); - mSensor.testAndEnable(); - } - - private void loadPreferences(SharedPreferences sharedPreferences) { - mHandwaveGestureEnabled = sharedPreferences.getBoolean(GESTURE_HAND_WAVE_KEY, false); - mPocketGestureEnabled = sharedPreferences.getBoolean(GESTURE_POCKET_KEY, false); - mProximityWakeEnabled = sharedPreferences.getBoolean(PROXIMITY_WAKE_KEY, false); - } - - private BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { - onDisplayOff(); - } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { - onDisplayOn(); - } - } - }; - - private SharedPreferences.OnSharedPreferenceChangeListener mPrefListener = - new SharedPreferences.OnSharedPreferenceChangeListener() { - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (GESTURE_HAND_WAVE_KEY.equals(key)) { - mHandwaveGestureEnabled = sharedPreferences.getBoolean(GESTURE_HAND_WAVE_KEY, false); - } else if (GESTURE_POCKET_KEY.equals(key)) { - mPocketGestureEnabled = sharedPreferences.getBoolean(GESTURE_POCKET_KEY, false); - } else if (PROXIMITY_WAKE_KEY.equals(key)) { - mProximityWakeEnabled = sharedPreferences.getBoolean(PROXIMITY_WAKE_KEY, false); - } - } - }; -} -- cgit v1.2.3