diff options
author | Daniel Hillenbrand <codeworkx@cyanogenmod.org> | 2013-06-09 11:52:24 +0200 |
---|---|---|
committer | Daniel Hillenbrand <codeworkx@cyanogenmod.org> | 2013-06-09 11:52:24 +0200 |
commit | 7926cd6ab83e1d8d02c13b4d65edd73f9f5866cb (patch) | |
tree | ebfc410f0f505f1f354afbc4c0d3a5f1cbd89009 /DeviceSettings | |
parent | c77f464613519e4c21ed1da33f1f8670dc412567 (diff) | |
download | device_samsung_smdk4412-common-7926cd6ab83e1d8d02c13b4d65edd73f9f5866cb.zip device_samsung_smdk4412-common-7926cd6ab83e1d8d02c13b4d65edd73f9f5866cb.tar.gz device_samsung_smdk4412-common-7926cd6ab83e1d8d02c13b4d65edd73f9f5866cb.tar.bz2 |
smdk4412-common: move advanced settings from i9300
Change-Id: I17832eedbb503b7483b2e0fd99b942317a39cc78
Diffstat (limited to 'DeviceSettings')
43 files changed, 2451 insertions, 0 deletions
diff --git a/DeviceSettings/Android.mk b/DeviceSettings/Android.mk new file mode 100644 index 0000000..6605185 --- /dev/null +++ b/DeviceSettings/Android.mk @@ -0,0 +1,15 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13 + +LOCAL_SRC_FILES := $(call all-java-files-under, src) + +LOCAL_PACKAGE_NAME := DeviceSettings +LOCAL_CERTIFICATE := platform + +include $(BUILD_PACKAGE) + +include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/DeviceSettings/AndroidManifest.xml b/DeviceSettings/AndroidManifest.xml new file mode 100644 index 0000000..d373ded --- /dev/null +++ b/DeviceSettings/AndroidManifest.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.cyanogenmod.settings.device" + android:sharedUserId="android.uid.system" > + + <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> + <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> + + <application android:label="@string/app_name"> + <activity + android:name="com.cyanogenmod.settings.device.DeviceSettings" + android:icon="@drawable/ic_launcher_cmdevicesettings" + android:label="@string/app_name" > + <intent-filter> + <action android:name="com.cyanogenmod.action.LAUNCH_DEVICE_SETTINGS" /> + <action android:name="android.intent.action.MAIN" /> + </intent-filter> + </activity> + + <receiver android:name=".Startup"> + <intent-filter android:priority="100"> + <action android:name="android.intent.action.BOOT_COMPLETED" /> + </intent-filter> + </receiver> + + <activity android:name=".HapticFragmentActivity" /> + <activity android:name=".RadioFragmentActivity" /> + <activity android:name=".ScreenFragmentActivity" /> + + </application> +</manifest> diff --git a/DeviceSettings/res/drawable/ic_launcher_cmdevicesettings.png b/DeviceSettings/res/drawable/ic_launcher_cmdevicesettings.png Binary files differnew file mode 100755 index 0000000..66de9c3 --- /dev/null +++ b/DeviceSettings/res/drawable/ic_launcher_cmdevicesettings.png diff --git a/DeviceSettings/res/layout/preference_dialog_vibrator_tuning.xml b/DeviceSettings/res/layout/preference_dialog_vibrator_tuning.xml new file mode 100644 index 0000000..1cf116b --- /dev/null +++ b/DeviceSettings/res/layout/preference_dialog_vibrator_tuning.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 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. +--> +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center_horizontal" + android:paddingBottom="20dip"> + + <TextView android:id="@+id/vibrator_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/vibrator_tuning_title" + android:paddingTop="10dip" + android:paddingLeft="20dip" + android:paddingRight="20dip" /> + <TextView android:id="@+id/vibrator_value" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:paddingTop="10dip" + android:paddingLeft="20dip" + android:paddingRight="20dip" /> + <SeekBar android:id="@+id/vibrator_seekbar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/vibrator_text" + android:paddingTop="2dip" + android:paddingLeft="20dip" + android:paddingRight="20dip" /> + + <TextView + android:id="@+id/textWarn" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/vibrator_seekbar" + android:paddingTop="8dip" + android:gravity="center" + android:text="@string/vibrator_warning" + android:textSize="15dp" /> + + </RelativeLayout> +</ScrollView> diff --git a/DeviceSettings/res/layout/top.xml b/DeviceSettings/res/layout/top.xml new file mode 100755 index 0000000..744b568 --- /dev/null +++ b/DeviceSettings/res/layout/top.xml @@ -0,0 +1,5 @@ +<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/viewPager" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + diff --git a/DeviceSettings/res/values-de/arrays.xml b/DeviceSettings/res/values-de/arrays.xml new file mode 100644 index 0000000..04b2538 --- /dev/null +++ b/DeviceSettings/res/values-de/arrays.xml @@ -0,0 +1,48 @@ +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (Standard)</item> + <item>UI</item> + <item>Video</item> + <item>Video warm</item> + <item>Video kalt</item> + <item>Kamera</item> + <item>Navigation</item> + <item>Gallerie</item> + <item>VT</item> + </string-array> + + <string-array name="mdnie_mode_entries"> + <item>Dynamisch (Standard)</item> + <item>Standard</item> + <item>Natürlich</item> + <item>Film</item> + </string-array> + + <string-array name="mdnie_negative_entries"> + <item>Normal</item> + <item>Invertiert</item> + </string-array> + + <string-array name="led_fade_entries"> + <item>Blinken</item> + <item>Verblassen</item> + </string-array> + + <string-array name="touchkey_timeout_entries"> + <item>Niemals</item> + <item>1 Sekunde</item> + <item>2 Sekunden</item> + <item>3 Sekunden (Standard)</item> + <item>4 Sekunden</item> + <item>5 Sekunden</item> + <item>6 Sekunden</item> + </string-array> + + <string-array name="hspa_entries"> + <item>Nur UMTS</item> + <item>Nur HSDPA</item> + <item>HSDPA + HSUPA</item> + </string-array> + +</resources> diff --git a/DeviceSettings/res/values-de/strings.xml b/DeviceSettings/res/values-de/strings.xml new file mode 100644 index 0000000..65ce91e --- /dev/null +++ b/DeviceSettings/res/values-de/strings.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Erweiterte Einstellungen</string> + + <string name="defaults_button">Zurücksetzen</string> + + <string name="category_screen_title">Display</string> + <string name="screen_colors_title">Farben</string> + <string name="mdnie_scenario_title_head">Szenario</string> + <string name="mdnie_scenario_summary_head">Wähle das mDNIe Szenario</string> + <string name="mdnie_mode_title_head">Modus</string> + <string name="mdnie_mode_summary_head">Wähle den mDNIe Modus</string> + <string name="mdnie_negative_title_head">Negativ Modus</string> + <string name="mdnie_negative_summary_head">Invertiere Farben</string> + + <string name="led_subcat_title">Benachrichtigungslicht</string> + <string name="led_fade_title_head">Modus</string> + <string name="led_fade_summary_head">Wähle zwischen sanftem Verblassen und Blinken</string> + + <string name="touchkey_subcat_title">Touchkeys</string> + <string name="touchkey_light_title_head">Beleuchtung</string> + <string name="touchkey_light_summary_off">Aktiviere Beleuchtung</string> + <string name="touchkey_light_summary_on">Deaktiviere Beleuchtung</string> + <string name="touchkey_timeout_title_head">Zeitabschaltung der Beleuchtung</string> + <string name="touchkey_timeout_summary_head">Setze Zeit für automatische Abschaltung</string> + + <!-- Haptic Preference --> + <string name="category_haptic_title">Haptik</string> + + <!-- VibratorTuning --> + <string name="vibrator_title">Vibrator</string> + <string name="vibrator_tuning_title">Vibrationsstärke</string> + <string name="vibrator_tuning_summary_head">Stärke des Vibrationseffektes einstellen</string> + <string name="vibrator_warning">Vorsicht: Höhere Werte als %1$d werden nicht empfohlen</string> + + <string name="category_radio_title">Mobilfunk</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">Aktiviere HSDPA/HSUPA</string> + + <string name="category_dock_title">Dock</string> + <string name="dockaudio_subcat_title">Audio</string> + <string name="use_dock_audio_title_head">USB-Dock Audio</string> + <string name="use_dock_audio_summary_head">Passive Audio-Ausgabe des USB-Docks verwenden</string> +</resources> diff --git a/DeviceSettings/res/values-es/arrays.xml b/DeviceSettings/res/values-es/arrays.xml new file mode 100644 index 0000000..c7d02c5 --- /dev/null +++ b/DeviceSettings/res/values-es/arrays.xml @@ -0,0 +1,41 @@ +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="hspa_entries"> + <item>Sólo UMTS</item> + <item>Sólo HSDPA</item> + <item>HSDPA + HSUPA</item> + </string-array> + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (por defecto)</item> + <item>UI</item> + <item>Vídeo</item> + <item>Vídeo cálido</item> + <item>Vídeo frío</item> + <item>Camara</item> + <item>Navegación</item> + <item>Galería</item> + <item>VT</item> + </string-array> + <string-array name="mdnie_mode_entries"> + <item>Estándar (por defecto)</item> + <item>Dinámico</item> + <item>Natural</item> + <item>Película</item> + </string-array> + <string-array name="mdnie_negative_entries"> + <item>Normal</item> + <item>Invertido</item> + </string-array> + <string-array name="led_fade_entries"> + <item>Parpadeo</item> + <item>Fundido</item> + </string-array> + <string-array name="touchkey_timeout_entries"> + <item>Nunca</item> + <item>1 segundo</item> + <item>2 segundos</item> + <item>3 segundos (por defecto)</item> + <item>4 segundos</item> + <item>5 segundos</item> + <item>6 segundos</item> + </string-array> +</resources> diff --git a/DeviceSettings/res/values-es/strings.xml b/DeviceSettings/res/values-es/strings.xml new file mode 100644 index 0000000..f615d4b --- /dev/null +++ b/DeviceSettings/res/values-es/strings.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Ajustes avanzados</string> + <string name="category_dock_title">Base</string> + <string name="dockaudio_subcat_title">Sonido</string> + <string name="use_dock_audio_title_head">Usar sonido USB</string> + <string name="use_dock_audio_summary_head">Utilizar la salida de audio de la base</string> + <string name="category_haptic_title">Háptica</string> + <string name="vibrator_title">Vibración</string> + <string name="vibrator_tuning_title">Intensidad de vibración</string> + <string name="vibrator_tuning_summary_head">Establecer la intensidad de vibración</string> + <string name="vibrator_warning">No son recomendables valores mayores de %1$d</string> + <string name="category_radio_title">Radio</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">Habilitar HSDPA/HSUPA</string> + <string name="category_screen_title">Pantalla</string> + <string name="screen_colors_title">Colores</string> + <string name="mdnie_scenario_title_head">Escenario</string> + <string name="mdnie_scenario_summary_head">Establecer escenario mDNIe</string> + <string name="mdnie_mode_title_head">Modo</string> + <string name="mdnie_mode_summary_head">Establecer modo mDNIe</string> + <string name="mdnie_negative_title_head">Modo Negativo</string> + <string name="mdnie_negative_summary_head">Habilitar/deshabilitar colores invertidos</string> + <string name="led_subcat_title">Notificación LED</string> + <string name="led_fade_title_head">Fundido LED</string> + <string name="led_fade_summary_head">Habilitar fundido suave en vez de parpadeo intenso</string> + <string name="touchkey_subcat_title">Teclas táctiles</string> + <string name="touchkey_light_title_head">Retroiluminación</string> + <string name="touchkey_light_summary_off">Habilitar retroiluminación</string> + <string name="touchkey_light_summary_on">Deshabilitar retroiluminación</string> + <string name="touchkey_timeout_title_head">Tiempo de espera de retroiluminación</string> + <string name="touchkey_timeout_summary_head">Tiempo tras pulsar una tecla antes de apagar la retroiluminación</string> +</resources> diff --git a/DeviceSettings/res/values-fr/arrays.xml b/DeviceSettings/res/values-fr/arrays.xml new file mode 100644 index 0000000..11b706d --- /dev/null +++ b/DeviceSettings/res/values-fr/arrays.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 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. + --> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="hspa_entries"> + <item>UMTS seulement</item> + <item>HSDPA seulement</item> + <item>HSDPA + HSUPA</item> + </string-array> + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (Défaut)</item> + <item>UI</item> + <item>Vidéo</item> + <item>Vidéo chaude</item> + <item>Vidéo froide</item> + <item>Caméra</item> + <item>Navigation</item> + <item>Galerie</item> + <item>VT</item> + </string-array> + <string-array name="mdnie_mode_entries"> + <item>Dynamique (Défaut)</item> + <item>Standard</item> + <item>Naturel</item> + <item>Vidéo</item> + </string-array> + <string-array name="mdnie_negative_entries"> + <item>Normal</item> + <item>Inversé</item> + </string-array> + <string-array name="led_fade_entries"> + <item>Clignotante</item> + <item>Progressive</item> + </string-array> + <string-array name="touchkey_timeout_entries"> + <item>Désactivé</item> + <item>1 seconde</item> + <item>2 secondes</item> + <item>3 secondes (Défaut)</item> + <item>4 secondes</item> + <item>5 secondes</item> + <item>6 secondes</item> + </string-array> +</resources> diff --git a/DeviceSettings/res/values-fr/strings.xml b/DeviceSettings/res/values-fr/strings.xml new file mode 100644 index 0000000..5556d24 --- /dev/null +++ b/DeviceSettings/res/values-fr/strings.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012-2013 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. +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_name">Paramètres avancés</string> + <string name="category_dock_title">Station d\'accueil</string> + <string name="dockaudio_subcat_title">Audio</string> + <string name="use_dock_audio_title_head">Sortie audio</string> + <string name="use_dock_audio_summary_head">Utiliser la sortie audio de la station d\'accueil</string> + <string name="category_haptic_title">Haptique</string> + <string name="vibrator_title">Vibreur</string> + <string name="vibrator_tuning_title">Intensité du vibreur</string> + <string name="vibrator_tuning_summary_head">Définir l\'intensité du vibreur</string> + <string name="vibrator_warning">Les valeurs supérieurs à %1$d ne sont pas recommandées</string> + <string name="category_radio_title">Radio</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">Activer HSDPA/HSUPA</string> + <string name="category_screen_title">Écran</string> + <string name="screen_colors_title">Couleurs</string> + <string name="mdnie_scenario_title_head">Scénario</string> + <string name="mdnie_scenario_summary_head">Définir le scénario mDNIe</string> + <string name="mdnie_mode_title_head">Mode</string> + <string name="mdnie_mode_summary_head">Définir le mode mDNIe</string> + <string name="mdnie_negative_title_head">Mode négatif</string> + <string name="mdnie_negative_summary_head">Activer/désactiver les couleurs inversées</string> + <string name="led_subcat_title">LED de notification</string> + <string name="led_fade_title_head">LED progressive</string> + <string name="led_fade_summary_head">Préférer l\'éclairage progressif au clignotement</string> + <string name="touchkey_subcat_title">Touches tactiles</string> + <string name="touchkey_light_title_head">Rétroéclairage</string> + <string name="touchkey_light_summary_off">Activer le rétroéclairage des touches tactiles lorsque l\'écran est activé</string> + <string name="touchkey_light_summary_on">Désactiver le rétroéclairage des touches tactiles lorsque l\'écran est activé</string> + <string name="touchkey_timeout_title_head">Délai avant extinction</string> + <string name="touchkey_timeout_summary_head">Définir le délai avant l\'extinction des touches</string> +</resources> diff --git a/DeviceSettings/res/values-hu/arrays.xml b/DeviceSettings/res/values-hu/arrays.xml new file mode 100644 index 0000000..82074a2 --- /dev/null +++ b/DeviceSettings/res/values-hu/arrays.xml @@ -0,0 +1,48 @@ +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <string-array name="hspa_entries"> + <item>UMTS</item> + <item>HSDPA</item> + <item>HSDPA + HSUPA</item> + </string-array> + + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (Alapbeállítás)</item> + <item>Felhasználói felület</item> + <item>Videó</item> + <item>Videó (Meleg árnyalat)</item> + <item>Videó (Hideg árnyalat)</item> + <item>Kamera</item> + <item>Navigáció</item> + <item>Galéria</item> + <item>VT</item> + </string-array> + + <string-array name="mdnie_mode_entries"> + <item>Dinamikus (Alapbeállítás)</item> + <item>Hagyományos</item> + <item>Természetes</item> + <item>Film</item> + </string-array> + + <string-array name="mdnie_negative_entries"> + <item>Normál</item> + <item>Fordított</item> + </string-array> + + <string-array name="led_fade_entries"> + <item>Villogás</item> + <item>Elhalványulás</item> + </string-array> + + <string-array name="touchkey_timeout_entries"> + <item>Soha</item> + <item>1 másodperc</item> + <item>2 másodperc</item> + <item>3 másodperc (Alapbeállítás)</item> + <item>4 másodperc</item> + <item>5 másodperc</item> + <item>6 másodperc</item> + </string-array> + +</resources> diff --git a/DeviceSettings/res/values-hu/strings.xml b/DeviceSettings/res/values-hu/strings.xml new file mode 100644 index 0000000..f5f1411 --- /dev/null +++ b/DeviceSettings/res/values-hu/strings.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Advanced settings</string> + + <string name="category_dock_title">Dokkoló</string> + <string name="dockaudio_subcat_title">Dokkoló hangszórók</string> + <string name="use_dock_audio_title_head">Dokkoló hangszóróinak használata</string> + <string name="use_dock_audio_summary_head">Használja a dokkoló passzív hangkimenetét</string> + + <string name="category_radio_title">GSM Rádió</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">HSDPA/HSUPA engedélyezése</string> + + <string name="category_screen_title">Kijelző</string> + <string name="screen_colors_title">Színek</string> + <string name="mdnie_scenario_title_head">Megjelenítés</string> + <string name="mdnie_scenario_summary_head">mDNIe megjelenítési beállítások</string> + <string name="mdnie_mode_title_head">Üzemmód</string> + <string name="mdnie_mode_summary_head">mDNIe üzemmódok</string> + <string name="mdnie_negative_title_head">Negatív üzemmód</string> + <string name="mdnie_negative_summary_head">Fordított színek ki/be</string> + + <string name="led_subcat_title">LED értesítés</string> + <string name="led_fade_title_head">LED halványítás</string> + <string name="led_fade_summary_head">LED elhalványítása villogtatás helyett</string> + + <string name="touchkey_subcat_title">Érintőgombok</string> + <string name="touchkey_light_title_head">Háttérvilágítás</string> + <string name="touchkey_light_summary_off">Háttérvilágítás engedélyezése</string> + <string name="touchkey_light_summary_on">Háttérvilágítás tiltása</string> + <string name="touchkey_timeout_title_head">Háttérvilágítás időkorlátja</string> + <string name="touchkey_timeout_summary_head">Háttérvilágítás késleltetése</string> + +</resources> diff --git a/DeviceSettings/res/values-pl/arrays.xml b/DeviceSettings/res/values-pl/arrays.xml new file mode 100644 index 0000000..f9de456 --- /dev/null +++ b/DeviceSettings/res/values-pl/arrays.xml @@ -0,0 +1,48 @@ +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <string-array name="hspa_entries"> + <item>Tylko UMTS</item> + <item>Tylko HSDPA</item> + <item>HSDPA + HSUPA</item> + </string-array> + + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (domyślnie)</item> + <item>UI</item> + <item>Wideo</item> + <item>Ciepły film</item> + <item>Zimny film</item> + <item>Kamera</item> + <item>Nawigacja</item> + <item>Galeria</item> + <item>VT</item> + </string-array> + + <string-array name="mdnie_mode_entries"> + <item>Dynamicznie (domyślnie)</item> + <item>Standardowo</item> + <item>Naturalnie</item> + <item>Film</item> + </string-array> + + <string-array name="mdnie_negative_entries"> + <item>Normalnie</item> + <item>Odwrócony</item> + </string-array> + + <string-array name="led_fade_entries"> + <item>Miganie</item> + <item>Zanikanie</item> + </string-array> + + <string-array name="touchkey_timeout_entries"> + <item>Nigdy</item> + <item>1 sekunda</item> + <item>2 sekundy</item> + <item>3 sekundy (domyślnie)</item> + <item>4 sekundy</item> + <item>5 sekund</item> + <item>6 sekund</item> + </string-array> + +</resources> diff --git a/DeviceSettings/res/values-pl/strings.xml b/DeviceSettings/res/values-pl/strings.xml new file mode 100644 index 0000000..20da92d --- /dev/null +++ b/DeviceSettings/res/values-pl/strings.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Advanced settings</string> + + <string name="category_dock_title">Stacja dokująca</string> + <string name="dockaudio_subcat_title">Dźwięk w stacji dokującej</string> + <string name="use_dock_audio_title_head">Użyj stacji dokującej</string> + <string name="use_dock_audio_summary_head">Użyj pasywnego wyjścia audio w stacji dokującej</string> + + <string name="category_radio_title">Radio</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">Aktywuj HSDPA/HSUPA</string> + + <string name="category_screen_title">Ekran</string> + <string name="screen_colors_title">Kolory</string> + <string name="mdnie_scenario_title_head">Technologia mDNIe</string> + <string name="mdnie_scenario_summary_head">Ustaw scenariusz mDNIe</string> + <string name="mdnie_mode_title_head">Tryb</string> + <string name="mdnie_mode_summary_head">Ustaw tryb mDNIe</string> + <string name="mdnie_negative_title_head">Tryb negatywu</string> + <string name="mdnie_negative_summary_head">Włącz/wyłącz odwrócone kolory</string> + + <string name="led_subcat_title">Lampka LED</string> + <string name="led_fade_title_head">Zanikanie lampki LED</string> + <string name="led_fade_summary_head">Aktywuj delikatne zanikanie lampki LED zamiast migania.</string> + + <string name="touchkey_subcat_title">Przyciski dotykowe</string> + <string name="touchkey_light_title_head">Podświetlenie</string> + <string name="touchkey_light_summary_off">Włącz podświetlenie</string> + <string name="touchkey_light_summary_on">Wyłącz podświetlenie</string> + <string name="touchkey_timeout_title_head">Opóźnienie podświetlenia</string> + <string name="touchkey_timeout_summary_head">Ustaw opóźnienie dla podświetlenia</string> + +</resources> diff --git a/DeviceSettings/res/values-pt-rBR/arrays.xml b/DeviceSettings/res/values-pt-rBR/arrays.xml new file mode 100644 index 0000000..983e35a --- /dev/null +++ b/DeviceSettings/res/values-pt-rBR/arrays.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string-array name="hspa_entries"> + <item>Somente UMTS</item> + <item>Somente HSDPA</item> + <item>HSDPA + HSUPA</item> + </string-array> + + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (Padrão)</item> + <item>IU</item> + <item>Vídeo</item> + <item>Vídeo Quente</item> + <item>Vídeo Frio</item> + <item>Câmera</item> + <item>Navegação</item> + <item>Galeria</item> + <item>VT</item> + </string-array> + + <string-array name="mdnie_mode_entries"> + <item>Padrão</item> + <item>Dinâmico</item> + <item>Natural</item> + <item>Filme</item> + </string-array> + + <string-array name="mdnie_negative_entries"> + <item>Normal</item> + <item>Invertido</item> + </string-array> + + <string-array name="led_fade_entries"> + <item>Piscando</item> + <item>Desvanecimento</item> + </string-array> + + <string-array name="touchkey_timeout_entries"> + <item>Nunca</item> + <item>1 segundo</item> + <item>2 segundos</item> + <item>3 segundos (Padrão)</item> + <item>4 segundos</item> + <item>5 segundos</item> + <item>6 segundos</item> + </string-array> +</resources> diff --git a/DeviceSettings/res/values-pt-rBR/strings.xml b/DeviceSettings/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000..5813d7e --- /dev/null +++ b/DeviceSettings/res/values-pt-rBR/strings.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Configurações avançadas</string> + <string name="category_haptic_title">Resposta tátil</string> + <string name="vibrator_title">Vibração</string> + <string name="vibrator_tuning_title">Intensidade da vibração</string> + <string name="vibrator_tuning_summary_head">Ajusar a intensidade da resposta por vibração</string> + <string name="vibrator_warning">Valores maiores que %1$d não são recomendados</string> + <string name="category_radio_title">Rádio</string> + <string name="hspa_summary_head">Ativar HSDPA/HSUPA</string> + <string name="category_screen_title">Tela</string> + <string name="screen_colors_title">Cores</string> + <string name="mdnie_scenario_title_head">Cenário</string> + <string name="mdnie_scenario_summary_head">Define o Cenário mDNIe</string> + <string name="mdnie_mode_title_head">Modo</string> + <string name="mdnie_mode_summary_head">Define o Modo mDNIe</string> + <string name="mdnie_negative_title_head">Modo Negativo</string> + <string name="mdnie_negative_summary_head">Ativar/Desativar cores invertidas</string> + <string name="led_subcat_title">Notificação com LED</string> + <string name="led_fade_title_head">Desvanecimento LED</string> + <string name="led_fade_summary_head">Ativar desvanecimento suave do LED em vez de piscar.</string> + <string name="touchkey_subcat_title">Teclas sensíveis ao toque</string> + <string name="touchkey_light_title_head">Luz de fundo</string> + <string name="touchkey_light_summary_off">Ativar luz de fundo</string> + <string name="touchkey_light_summary_on">Desativar luz de fundo</string> + <string name="touchkey_timeout_title_head">Tempo limite da luz de fundo</string> + <string name="touchkey_timeout_summary_head">Define o tempo limite para a luz de fundo</string> + <string name="hspa_title_head">HSPA</string> + <string name="category_dock_title">Dock</string> + <string name="dockaudio_subcat_title">Áudio do dock</string> + <string name="use_dock_audio_title_head">Usar áudio USB do dock</string> + <string name="use_dock_audio_summary_head">Usar a saída de áudio passiva no dock</string> +</resources>
\ No newline at end of file diff --git a/DeviceSettings/res/values-ru/arrays.xml b/DeviceSettings/res/values-ru/arrays.xml new file mode 100644 index 0000000..a83b7b4 --- /dev/null +++ b/DeviceSettings/res/values-ru/arrays.xml @@ -0,0 +1,46 @@ +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <string-array name="hspa_entries"> + <item>Только UMTS</item> + <item>Только HSDPA</item> + <item>HSDPA + HSUPA</item> + </string-array> + + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (По умолч.)</item> + <item>Видео</item> + <item>Видео (тёпл.)</item> + <item>Видео (хол.)</item> + <item>Камера</item> + <item>Навигация</item> + <item>Галерея</item> + <item>VT</item> + </string-array> + + <string-array name="mdnie_mode_entries"> + <item>Динамический (По умолч.)</item> + <item>Стандартный</item> + <item>Натуральный</item> + <item>Кино</item> + </string-array> + + <string-array name="mdnie_negative_entries"> + <item>Нормально</item> + <item>Инверсия</item> + </string-array> + + <string-array name="led_fade_entries"> + <item>Мигание</item> + <item>Затухание</item> + </string-array> + + <string-array name="touchkey_timeout_entries"> + <item>Никогда</item> + <item>1 секунда</item> + <item>2 секунды</item> + <item>3 секунды (По умолч.)</item> + <item>4 секунды</item> + <item>5 секунд</item> + <item>6 секунд</item> + </string-array> +</resources> diff --git a/DeviceSettings/res/values-ru/strings.xml b/DeviceSettings/res/values-ru/strings.xml new file mode 100644 index 0000000..c7b287a --- /dev/null +++ b/DeviceSettings/res/values-ru/strings.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Advanced settings</string> + + <string name="category_screen_title">Экран</string> + <string name="screen_colors_title">Цвета</string> + <string name="mdnie_scenario_title_head">Сценарий</string> + <string name="mdnie_scenario_summary_head">Установка сценария mDNIe</string> + <string name="mdnie_mode_title_head">Режим</string> + <string name="mdnie_mode_summary_head">Установка режима mDNIe</string> + <string name="mdnie_negative_title_head">Негатив</string> + <string name="mdnie_negative_summary_head">Вкл./выкл. инверсии цветов</string> + + <string name="led_subcat_title">Индикатор событий</string> + <string name="led_fade_title_head">Режим</string> + <string name="led_fade_summary_head">Плавное затухание или резкое мигание</string> + + <string name="touchkey_subcat_title">Сенсорные клавиши</string> + <string name="touchkey_light_title_head">Подсветка</string> + <string name="touchkey_light_summary_off">Подсветка включена</string> + <string name="touchkey_light_summary_on">Подсветка выключена</string> + <string name="touchkey_timeout_title_head">Тайм-аут подсветки</string> + <string name="touchkey_timeout_summary_head">Установка тайм-аута подсветки</string> + + <!-- Haptic Preference --> + <string name="category_haptic_title">Отклик</string> + + <!-- VibratorTuning --> + <string name="vibrator_title">Вибрация</string> + <string name="vibrator_tuning_title">Интенсивность вибрации</string> + <string name="vibrator_tuning_summary_head">Установка интенсивности вибрации</string> + <string name="vibrator_warning">Не рекомендуется установка значения выше %1$d</string> + + <string name="category_radio_title">Модем</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">Включить HSDPA/HSUPA</string> + + <string name="category_dock_title">Док-станция</string> + <string name="dockaudio_subcat_title">Аудио</string> + <string name="use_dock_audio_title_head">USB аудио док-станция</string> + <string name="use_dock_audio_summary_head">Использовать пассивный режим аудио док-станции</string> +</resources> diff --git a/DeviceSettings/res/values-zh-rCN/arrays.xml b/DeviceSettings/res/values-zh-rCN/arrays.xml new file mode 100644 index 0000000..373d649 --- /dev/null +++ b/DeviceSettings/res/values-zh-rCN/arrays.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 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. + --> +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <string-array name="hspa_entries"> + <item>仅使用 UMTS</item> + <item>仅使用 HSDPA</item> + <item>使用 HSDPA + HSUPA</item> + </string-array> + + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (默认)</item> + <item>界面</item> + <item>影片</item> + <item>影片 (温)</item> + <item>影片 (冷)</item> + <item>相机</item> + <item>导航</item> + <item>图库</item> + <item>VT</item> + </string-array> + + <string-array name="mdnie_mode_entries"> + <item>动态 (默认)</item> + <item>标准</item> + <item>自然</item> + <item>电影</item> + </string-array> + + <string-array name="mdnie_negative_entries"> + <item>正常</item> + <item>反色</item> + </string-array> + + <string-array name="led_fade_entries"> + <item>闪烁</item> + <item>淡出</item> + </string-array> + + <string-array name="touchkey_timeout_entries"> + <item>从不</item> + <item>1 秒</item> + <item>2 秒</item> + <item>3 秒 (默认)</item> + <item>4 秒</item> + <item>5 秒</item> + <item>6 秒</item> + </string-array> + +</resources> diff --git a/DeviceSettings/res/values-zh-rCN/strings.xml b/DeviceSettings/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000..f4158b9 --- /dev/null +++ b/DeviceSettings/res/values-zh-rCN/strings.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 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. + --> +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_name">高级设置</string> + + <string name="category_radio_title">无线电</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">启用 HSDPA/HSUPA</string> + + <string name="category_screen_title">屏幕</string> + <string name="screen_colors_title">颜色</string> + <string name="mdnie_scenario_title_head">场景</string> + <string name="mdnie_scenario_summary_head">设置 mDNIe 场景</string> + <string name="mdnie_mode_title_head">模式</string> + <string name="mdnie_mode_summary_head">设置 mDNIe 模式</string> + <string name="mdnie_negative_title_head">负极模式</string> + <string name="mdnie_negative_summary_head">启用/禁用反色</string> + + <string name="led_subcat_title">LED 指示灯</string> + <string name="led_fade_title_head">LED 淡出</string> + <string name="led_fade_summary_head">启用后 LED 指示灯将会产生淡出效果而替代闪烁效果。</string> + + <string name="touchkey_subcat_title">触摸键</string> + <string name="touchkey_light_title_head">背光灯</string> + <string name="touchkey_light_summary_off">启用背光灯</string> + <string name="touchkey_light_summary_on">禁用背光灯</string> + <string name="touchkey_timeout_title_head">背光灯超时</string> + <string name="touchkey_timeout_summary_head">设置背光灯超时时间</string> + + <string name="category_dock_title">基座</string> + <string name="dockaudio_subcat_title">音频</string> + <string name="use_dock_audio_title_head">使用基座的 USB 音频</string> + <string name="use_dock_audio_summary_head">使用基座上的被动音频输出</string> +</resources> diff --git a/DeviceSettings/res/values/arrays.xml b/DeviceSettings/res/values/arrays.xml new file mode 100644 index 0000000..8e99c95 --- /dev/null +++ b/DeviceSettings/res/values/arrays.xml @@ -0,0 +1,93 @@ +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <string-array name="mdnie_scenario_entries"> + <item>CyanogenMod (Default)</item> + <item>UI</item> + <item>Video</item> + <item>Video Warm</item> + <item>Video Cold</item> + <item>Camera</item> + <item>Navigation</item> + <item>Gallery</item> + <item>VT</item> + </string-array> + + <string-array name="mdnie_scenario_entries_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + <item>4</item> + <item>5</item> + <item>6</item> + <item>7</item> + <item>8</item> + </string-array> + + <string-array name="mdnie_mode_entries"> + <item>Dynamic (Default)</item> + <item>Standard</item> + <item>Natural</item> + <item>Movie</item> + </string-array> + + <string-array name="mdnie_mode_entries_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + </string-array> + + <string-array name="mdnie_negative_entries"> + <item>Normal</item> + <item>Inverted</item> + </string-array> + + <string-array name="mdnie_negative_entries_values" translatable="false"> + <item>0</item> + <item>1</item> + </string-array> + + <string-array name="touchkey_timeout_entries"> + <item>Never</item> + <item>1 second</item> + <item>2 seconds</item> + <item>3 seconds (Default)</item> + <item>4 seconds</item> + <item>5 seconds</item> + <item>6 seconds</item> + </string-array> + + <string-array name="touchkey_timeout_entries_values" translatable="false"> + <item>0</item> + <item>1</item> + <item>2</item> + <item>3</item> + <item>4</item> + <item>5</item> + <item>6</item> + </string-array> + + <string-array name="led_fade_entries"> + <item>Blinking</item> + <item>Fading</item> + </string-array> + + <string-array name="led_fade_entries_values" translatable="false"> + <item>0</item> + <item>1</item> + </string-array> + + <string-array name="hspa_entries"> + <item>UMTS Only</item> + <item>HSDPA Only</item> + <item>HSDPA + HSUPA</item> + </string-array> + + <string-array name="hspa_entries_values" translatable="false"> + <item>21</item> + <item>22</item> + <item>23</item> + </string-array> + +</resources> diff --git a/DeviceSettings/res/values/config.xml b/DeviceSettings/res/values/config.xml new file mode 100644 index 0000000..5667f97 --- /dev/null +++ b/DeviceSettings/res/values/config.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 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. +--> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <!-- Vibrator Tuning --> + <bool name="has_vibrator_tuning">true</bool> + <string name="vibrator_sysfs_file">"/sys/vibrator/pwm_val"</string> + <string name="intensity_max_value">100</string> + <string name="intensity_warning_threshold">75</string> + <string name="intensity_default_value">50</string> + <string name="intensity_min_value">0</string> + +</resources> diff --git a/DeviceSettings/res/values/strings.xml b/DeviceSettings/res/values/strings.xml new file mode 100644 index 0000000..155e9c2 --- /dev/null +++ b/DeviceSettings/res/values/strings.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Advanced settings</string> + + <string name="defaults_button">Reset to default</string> + + <!-- Screen Preference --> + <string name="category_screen_title">Screen</string> + <string name="screen_colors_title">Colors</string> + + <!-- Content adaptive backlight control --> + <string name="cabc_title_head">CABC</string> + <string name="cabc_summary_head">Enable content adaptive backlight control</string> + + <!-- mDNIe --> + <string name="mdnie_scenario_title_head">Scenario</string> + <string name="mdnie_scenario_summary_head">Set the mDNIe Scenario</string> + <string name="mdnie_mode_title_head">Mode</string> + <string name="mdnie_mode_summary_head">Set the mDNIe Mode</string> + <string name="mdnie_negative_title_head">Negative Mode</string> + <string name="mdnie_negative_summary_head">Enable/Disable inverted colors</string> + + <!-- LED --> + <string name="led_subcat_title">Notification LED</string> + <string name="led_fade_title_head">LED Fading</string> + <string name="led_fade_summary_head">Enable LED smooth fading instead of sharp blinking.</string> + + <!-- Touchkey tuning --> + <string name="touchkey_subcat_title">Touchkeys</string> + <string name="touchkey_light_title_head">Backlight</string> + <string name="touchkey_light_summary_off">Enable backlight</string> + <string name="touchkey_light_summary_on">Disable backlight</string> + <string name="touchkey_timeout_title_head">Backlight timeout</string> + <string name="touchkey_timeout_summary_head">Set timeout for the backlight</string> + + <!-- Haptic Preference --> + <string name="category_haptic_title">Haptic</string> + + <!-- VibratorTuning --> + <string name="vibrator_title">Vibrator</string> + <string name="vibrator_tuning_title">Vibration strength</string> + <string name="vibrator_tuning_summary_head">Adjust the strength of the vibration feedback</string> + <string name="vibrator_warning">Values higher than %1$d are not recommended</string> + + <!-- Radio Preference --> + <string name="category_radio_title">Radio</string> + <string name="hspa_title_head">HSPA</string> + <string name="hspa_summary_head">Enable HSDPA/HSUPA</string> + + <!-- Dock Preference --> + <string name="category_dock_title">Dock</string> + <string name="dockaudio_subcat_title">Audio</string> + <string name="use_dock_audio_title_head">Use Dock USB Audio</string> + <string name="use_dock_audio_summary_head">Use the passive audio out on the dock</string> + +</resources> diff --git a/DeviceSettings/res/xml/dock_preferences.xml b/DeviceSettings/res/xml/dock_preferences.xml new file mode 100644 index 0000000..62c962c --- /dev/null +++ b/DeviceSettings/res/xml/dock_preferences.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 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. + --> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + <PreferenceCategory + android:title="@string/dockaudio_subcat_title"> + <!-- Use Dock Audio --> + <CheckBoxPreference + android:key="dock_audio" + android:title="@string/use_dock_audio_title_head" + android:summary="@string/use_dock_audio_summary_head" + /> + </PreferenceCategory> +</PreferenceScreen> diff --git a/DeviceSettings/res/xml/haptic_preferences.xml b/DeviceSettings/res/xml/haptic_preferences.xml new file mode 100644 index 0000000..31070ed --- /dev/null +++ b/DeviceSettings/res/xml/haptic_preferences.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + <PreferenceCategory + android:title="@string/vibrator_title"> + <com.cyanogenmod.settings.device.VibratorTuningPreference + android:key="vibrator_tuning" + android:title="@string/vibrator_tuning_title" + android:dialogTitle="@string/vibrator_tuning_title" /> + </PreferenceCategory> +</PreferenceScreen> diff --git a/DeviceSettings/res/xml/radio_preferences.xml b/DeviceSettings/res/xml/radio_preferences.xml new file mode 100644 index 0000000..c173db7 --- /dev/null +++ b/DeviceSettings/res/xml/radio_preferences.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- Hspa modes --> + <com.cyanogenmod.settings.device.Hspa + android:key="hspa" + android:title="@string/hspa_title_head" + android:summary="@string/hspa_summary_head" + android:entries="@array/hspa_entries" + android:entryValues="@array/hspa_entries_values" + android:defaultValue="23" /> + +</PreferenceScreen> diff --git a/DeviceSettings/res/xml/screen_preferences.xml b/DeviceSettings/res/xml/screen_preferences.xml new file mode 100644 index 0000000..57d1761 --- /dev/null +++ b/DeviceSettings/res/xml/screen_preferences.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- Screen --> + <PreferenceCategory + android:title="@string/screen_colors_title"> + <!-- CABC --> + <com.cyanogenmod.settings.device.CABC + android:key="cabc" + android:title="@string/cabc_title_head" + android:summary="@string/cabc_summary_head" + android:defaultValue="true" /> + + <!-- mDNIe Scenario modes --> + <com.cyanogenmod.settings.device.mDNIeScenario + android:key="mdnie_scenario" + android:title="@string/mdnie_scenario_title_head" + android:summary="@string/mdnie_scenario_summary_head" + android:entries="@array/mdnie_scenario_entries" + android:entryValues="@array/mdnie_scenario_entries_values" + android:defaultValue="0" /> + + <!-- mDNIe Mode --> + <com.cyanogenmod.settings.device.mDNIeMode + android:key="mdnie_mode" + android:title="@string/mdnie_mode_title_head" + android:summary="@string/mdnie_mode_summary_head" + android:entries="@array/mdnie_mode_entries" + android:entryValues="@array/mdnie_mode_entries_values" + android:defaultValue="0" /> + + <!-- mDNIe Negative mode --> + <com.cyanogenmod.settings.device.mDNIeNegative + android:key="mdnie_negative" + android:title="@string/mdnie_negative_title_head" + android:summary="@string/mdnie_negative_summary_head" + android:entries="@array/mdnie_negative_entries" + android:entryValues="@array/mdnie_negative_entries_values" + android:defaultValue="0" /> + </PreferenceCategory> + + <!-- LED --> + <PreferenceCategory + android:title="@string/led_subcat_title"> + <!-- LED fading mode --> + <com.cyanogenmod.settings.device.LedFade + android:key="led_fade" + android:title="@string/led_fade_title_head" + android:summary="@string/led_fade_summary_head" + android:entries="@array/led_fade_entries" + android:entryValues="@array/led_fade_entries_values" + android:defaultValue="1" /> + </PreferenceCategory> + + <!-- Touchkeys --> + <PreferenceCategory + android:title="@string/touchkey_subcat_title"> + <!-- Touchkey backlight --> + <CheckBoxPreference + android:key="touchkey_light" + android:title="@string/touchkey_light_title_head" + android:summaryOff="@string/touchkey_light_summary_off" + android:summaryOn="@string/touchkey_light_summary_on" + android:defaultValue="true" /> + <com.cyanogenmod.settings.device.TouchkeyTimeout + android:key="touchkey_timeout" + android:title="@string/touchkey_timeout_title_head" + android:summary="@string/touchkey_timeout_summary_head" + android:entries="@array/touchkey_timeout_entries" + android:entryValues="@array/touchkey_timeout_entries_values" + android:defaultValue="3" /> + </PreferenceCategory> + +</PreferenceScreen> diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/CABC.java b/DeviceSettings/src/com/cyanogenmod/settings/device/CABC.java new file mode 100644 index 0000000..af247d8 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/CABC.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2013 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.device; + +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; +import android.util.AttributeSet; + +public class CABC extends CheckBoxPreference implements OnPreferenceChangeListener { + + public CABC(Context context, AttributeSet attrs) { + super(context, attrs); + this.setOnPreferenceChangeListener(this); + } + + private static final String FILE = "/sys/class/lcd/panel/power_reduce"; + + public static boolean isSupported() { + return Utils.fileExists(FILE); + } + + /** + * Restore cabc setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + Utils.writeValue(FILE, sharedPrefs.getBoolean(DeviceSettings.KEY_CABC, true) ? "1" : "0"); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + Utils.writeValue(FILE, (Boolean)newValue ? "1" : "0"); + return true; + } + +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java b/DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java new file mode 100644 index 0000000..486fe79 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java @@ -0,0 +1,169 @@ +/* + * Copyright (C) 2012 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.device; + +import android.app.ActionBar; +import android.app.ActionBar.Tab; +import android.app.Activity; +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.content.Context; +import android.os.Bundle; +import android.support.v4.app.FragmentActivity; +import android.support.v13.app.FragmentPagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.MenuItem; + +import com.cyanogenmod.settings.device.R; + +import java.util.ArrayList; + +public class DeviceSettings extends FragmentActivity { + + public static final String SHARED_PREFERENCES_BASENAME = "com.cyanogenmod.settings.device"; + public static final String ACTION_UPDATE_PREFERENCES = "com.cyanogenmod.settings.device.UPDATE"; + public static final String KEY_CABC = "cabc"; + public static final String KEY_MDNIE_SCENARIO = "mdnie_scenario"; + public static final String KEY_MDNIE_MODE = "mdnie_mode"; + public static final String KEY_MDNIE_NEGATIVE = "mdnie_negative"; + public static final String KEY_LED_FADE = "led_fade"; + public static final String KEY_TOUCHKEY_LIGHT = "touchkey_light"; + public static final String KEY_TOUCHKEY_TIMEOUT = "touchkey_timeout"; + public static final String KEY_HSPA = "hspa"; + public static final String KEY_VIBRATOR_INTENSITY = "vibrator_intensity"; + public static final String KEY_USE_DOCK_AUDIO = "dock_audio"; + + ViewPager mViewPager; + TabsAdapter mTabsAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mViewPager = new ViewPager(this); + mViewPager.setId(R.id.viewPager); + setContentView(mViewPager); + + final ActionBar bar = getActionBar(); + bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); + bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE); + bar.setTitle(R.string.app_name); + bar.setDisplayHomeAsUpEnabled(true); + + mTabsAdapter = new TabsAdapter(this, mViewPager); + mTabsAdapter.addTab(bar.newTab().setText(R.string.category_radio_title), + RadioFragmentActivity.class, null); + mTabsAdapter.addTab(bar.newTab().setText(R.string.category_screen_title), + ScreenFragmentActivity.class, null); + mTabsAdapter.addTab(bar.newTab().setText(R.string.category_haptic_title), + HapticFragmentActivity.class, null); + mTabsAdapter.addTab(bar.newTab().setText(R.string.category_dock_title), + DockFragmentActivity.class, null); + + if (savedInstanceState != null) { + bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0)); + } + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt("tab", getActionBar().getSelectedNavigationIndex()); + } + + public static class TabsAdapter extends FragmentPagerAdapter + implements ActionBar.TabListener, ViewPager.OnPageChangeListener { + private final Context mContext; + private final ActionBar mActionBar; + private final ViewPager mViewPager; + private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>(); + + static final class TabInfo { + private final Class<?> clss; + private final Bundle args; + + TabInfo(Class<?> _class, Bundle _args) { + clss = _class; + args = _args; + } + } + + public TabsAdapter(Activity activity, ViewPager pager) { + super(activity.getFragmentManager()); + mContext = activity; + mActionBar = activity.getActionBar(); + mViewPager = pager; + mViewPager.setAdapter(this); + mViewPager.setOnPageChangeListener(this); + } + + public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) { + TabInfo info = new TabInfo(clss, args); + tab.setTag(info); + tab.setTabListener(this); + mTabs.add(info); + mActionBar.addTab(tab); + notifyDataSetChanged(); + } + + @Override + public int getCount() { + return mTabs.size(); + } + + @Override + public Fragment getItem(int position) { + TabInfo info = mTabs.get(position); + return Fragment.instantiate(mContext, info.clss.getName(), info.args); + } + + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + } + + public void onPageSelected(int position) { + mActionBar.setSelectedNavigationItem(position); + } + + public void onPageScrollStateChanged(int state) { + } + + public void onTabSelected(Tab tab, FragmentTransaction ft) { + Object tag = tab.getTag(); + for (int i=0; i<mTabs.size(); i++) { + if (mTabs.get(i) == tag) { + mViewPager.setCurrentItem(i); + } + } + } + + public void onTabUnselected(Tab tab, FragmentTransaction ft) { + } + + public void onTabReselected(Tab tab, FragmentTransaction ft) { + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + DeviceSettings.this.onBackPressed(); + default: + return super.onOptionsItemSelected(item); + } + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java b/DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java new file mode 100644 index 0000000..0e555e4 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/DockFragmentActivity.java @@ -0,0 +1,72 @@ +/* +* Copyright (C) 2012 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.device; + +import android.app.ActivityManagerNative; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.os.UserHandle; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +import android.preference.PreferenceScreen; +import android.util.Log; + +import com.cyanogenmod.settings.device.R; + +public class DockFragmentActivity extends PreferenceFragment { + + private static final String PREF_ENABLED = "1"; + private static final String TAG = "DeviceSettings_Dock"; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.dock_preferences); + PreferenceScreen prefSet = getPreferenceScreen(); + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + + String boxValue; + String key = preference.getKey(); + + Log.w(TAG, "key: " + key); + + if (key.compareTo(DeviceSettings.KEY_USE_DOCK_AUDIO) == 0) { + boxValue = (((CheckBoxPreference)preference).isChecked() ? "1" : "0"); + Intent i = new Intent("com.cyanogenmod.settings.SamsungDock"); + i.putExtra("data", boxValue); + ActivityManagerNative.broadcastStickyIntent(i, null, UserHandle.USER_ALL); + } + return true; + } + + public static void restore(Context context) { + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean dockAudio = sharedPrefs.getBoolean(DeviceSettings.KEY_USE_DOCK_AUDIO, false); + Intent i = new Intent("com.cyanogenmod.settings.SamsungDock"); + i.putExtra("data", (dockAudio? "1" : "0")); + ActivityManagerNative.broadcastStickyIntent(i, null, UserHandle.USER_ALL); + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/HapticFragmentActivity.java b/DeviceSettings/src/com/cyanogenmod/settings/device/HapticFragmentActivity.java new file mode 100644 index 0000000..f55b59e --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/HapticFragmentActivity.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2012 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.device; + +import android.content.Context; +import android.content.res.Resources; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +import android.preference.PreferenceScreen; +import android.util.Log; + +import com.cyanogenmod.settings.device.R; + +public class HapticFragmentActivity extends PreferenceFragment { + + private static final String TAG = "DeviceSettings_Haptic"; + public static final String KEY_VIBRATOR_TUNING = "vibrator_tuning"; + + private static boolean sVibratorTuning; + private VibratorTuningPreference mVibratorTuning; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Resources res = getResources(); + sVibratorTuning = res.getBoolean(R.bool.has_vibrator_tuning); + + addPreferencesFromResource(R.xml.haptic_preferences); + + if (sVibratorTuning) { + String vibratorFilePath = res.getString(R.string.vibrator_sysfs_file); + mVibratorTuning = (VibratorTuningPreference) findPreference(KEY_VIBRATOR_TUNING); + mVibratorTuning.setEnabled(VibratorTuningPreference.isSupported(vibratorFilePath)); + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + String boxValue; + String key = preference.getKey(); + Log.w(TAG, "key: " + key); + return true; + } + + public static boolean isSupported(String FILE) { + return Utils.fileExists(FILE); + } + + public static void restore(Context context) { + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/Hspa.java b/DeviceSettings/src/com/cyanogenmod/settings/device/Hspa.java new file mode 100644 index 0000000..f19eff7 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/Hspa.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2012 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.device; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.util.AttributeSet; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +public class Hspa extends ListPreference implements OnPreferenceChangeListener { + + private static final String FILE = "/system/app/SamsungServiceMode.apk"; + private Context mCtx; + + public Hspa(Context context, AttributeSet attrs) { + super(context, attrs); + this.setOnPreferenceChangeListener(this); + mCtx = context; + } + + public static boolean isSupported() { + return Utils.fileExists(FILE); + } + + /** + * Restore hspa setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + sendIntent(context, sharedPrefs.getString(DeviceSettings.KEY_HSPA, "23")); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + sendIntent(mCtx, (String) newValue); + return true; + } + + private static void sendIntent(Context context, String value) { + Intent i = new Intent("com.cyanogenmod.SamsungServiceMode.EXECUTE"); + i.putExtra("sub_type", 20); // HSPA Setting + i.putExtra("data", value); + context.sendBroadcast(i); + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/LedFade.java b/DeviceSettings/src/com/cyanogenmod/settings/device/LedFade.java new file mode 100644 index 0000000..6d11947 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/LedFade.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2012 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.device; + +import java.io.IOException; +import android.content.Context; +import android.util.AttributeSet; +import android.content.SharedPreferences; +import android.preference.Preference; +import android.preference.ListPreference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +public class LedFade extends ListPreference implements OnPreferenceChangeListener { + + public LedFade(Context context, AttributeSet attrs) { + super(context, attrs); + this.setOnPreferenceChangeListener(this); + } + + private static final String FILE = "/sys/class/sec/led/led_fade"; + + public static boolean isSupported() { + return Utils.fileExists(FILE); + } + + /** + * Restore led fading mode setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + Utils.writeValue(FILE, sharedPrefs.getString(DeviceSettings.KEY_LED_FADE, "1")); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + Utils.writeValue(FILE, (String) newValue); + return true; + } + +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/RadioFragmentActivity.java b/DeviceSettings/src/com/cyanogenmod/settings/device/RadioFragmentActivity.java new file mode 100644 index 0000000..d094ef2 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/RadioFragmentActivity.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2012 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.device; + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +import android.preference.PreferenceScreen; +import android.util.Log; + +import com.cyanogenmod.settings.device.R; + +public class RadioFragmentActivity extends PreferenceFragment { + + private static final String PREF_ENABLED = "1"; + private static final String TAG = "DeviceSettings_Radio"; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.radio_preferences); + + PreferenceScreen prefSet = getPreferenceScreen(); + + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + + String boxValue; + String key = preference.getKey(); + + Log.w(TAG, "key: " + key); + + return true; + } + + public static boolean isSupported(String FILE) { + return Utils.fileExists(FILE); + } + + public static void restore(Context context) { + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java b/DeviceSettings/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java new file mode 100644 index 0000000..5a1576d --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2012 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.device; + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +import android.preference.PreferenceScreen; +import android.util.Log; + +import com.cyanogenmod.settings.device.R; + +public class ScreenFragmentActivity extends PreferenceFragment { + + private static final String PREF_ENABLED = "1"; + private static final String TAG = "DeviceSettings_Screen"; + private CABC mCABC; + private mDNIeScenario mmDNIeScenario; + private mDNIeMode mmDNIeMode; + private mDNIeNegative mmDNIeNegative; + private LedFade mLedFade; + + private static final String FILE_TOUCHKEY_BRIGHTNESS = "/sys/class/sec/sec_touchkey/brightness"; + private static final String FILE_TOUCHKEY_DISABLE = "/sys/class/sec/sec_touchkey/force_disable"; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.screen_preferences); + PreferenceScreen prefSet = getPreferenceScreen(); + + mCABC = (CABC) findPreference(DeviceSettings.KEY_CABC); + mCABC.setEnabled(CABC.isSupported()); + + mmDNIeScenario = (mDNIeScenario) findPreference(DeviceSettings.KEY_MDNIE_SCENARIO); + mmDNIeScenario.setEnabled(mDNIeScenario.isSupported()); + + mmDNIeMode = (mDNIeMode) findPreference(DeviceSettings.KEY_MDNIE_MODE); + mmDNIeMode.setEnabled(mDNIeMode.isSupported()); + + mmDNIeNegative = (mDNIeNegative) findPreference(DeviceSettings.KEY_MDNIE_NEGATIVE); + mmDNIeNegative.setEnabled(mDNIeNegative.isSupported()); + + mLedFade = (LedFade) findPreference(DeviceSettings.KEY_LED_FADE); + mLedFade.setEnabled(LedFade.isSupported()); + + if (((CheckBoxPreference)prefSet.findPreference(DeviceSettings.KEY_TOUCHKEY_LIGHT)).isChecked()) { + prefSet.findPreference(DeviceSettings.KEY_TOUCHKEY_TIMEOUT).setEnabled(true); + } else { + prefSet.findPreference(DeviceSettings.KEY_TOUCHKEY_TIMEOUT).setEnabled(false); + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + + String key = preference.getKey(); + Log.w(TAG, "key: " + key); + + if (key.compareTo(DeviceSettings.KEY_TOUCHKEY_LIGHT) == 0) { + if (((CheckBoxPreference)preference).isChecked()) { + Utils.writeValue(FILE_TOUCHKEY_DISABLE, "0"); + Utils.writeValue(FILE_TOUCHKEY_BRIGHTNESS, "1"); + preferenceScreen.findPreference(DeviceSettings.KEY_TOUCHKEY_TIMEOUT).setEnabled(true); + } else { + Utils.writeValue(FILE_TOUCHKEY_DISABLE, "1"); + Utils.writeValue(FILE_TOUCHKEY_BRIGHTNESS, "2"); + preferenceScreen.findPreference(DeviceSettings.KEY_TOUCHKEY_TIMEOUT).setEnabled(false); + } + } + return true; + } + + public static boolean isSupported(String FILE) { + return Utils.fileExists(FILE); + } + + public static void restore(Context context) { + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean light = sharedPrefs.getBoolean(DeviceSettings.KEY_TOUCHKEY_LIGHT, true); + + Utils.writeValue(FILE_TOUCHKEY_DISABLE, light ? "0" : "1"); + Utils.writeValue(FILE_TOUCHKEY_BRIGHTNESS, light ? "1" : "2"); + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java b/DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java new file mode 100644 index 0000000..950220e --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/Startup.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2012 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.device; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class Startup extends BroadcastReceiver { + + @Override + public void onReceive(final Context context, final Intent bootintent) { + DockFragmentActivity.restore(context); + HapticFragmentActivity.restore(context); + Hspa.restore(context); + RadioFragmentActivity.restore(context); + ScreenFragmentActivity.restore(context); + CABC.restore(context); + mDNIeScenario.restore(context); + mDNIeMode.restore(context); + mDNIeNegative.restore(context); + LedFade.restore(context); + TouchkeyTimeout.restore(context); + VibratorTuningPreference.restore(context); + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/TouchkeyTimeout.java b/DeviceSettings/src/com/cyanogenmod/settings/device/TouchkeyTimeout.java new file mode 100644 index 0000000..6ea9bfb --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/TouchkeyTimeout.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2012 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.device; + +import java.io.IOException; +import android.content.Context; +import android.util.AttributeSet; +import android.content.SharedPreferences; +import android.preference.Preference; +import android.preference.ListPreference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +public class TouchkeyTimeout extends ListPreference implements OnPreferenceChangeListener { + + public TouchkeyTimeout(Context context, AttributeSet attrs) { + super(context, attrs); + this.setOnPreferenceChangeListener(this); + } + + private static final String FILE_TOUCHKEY_TIMEOUT = "/sys/class/sec/sec_touchkey/timeout"; + + public static boolean isSupported() { + return Utils.fileExists(FILE_TOUCHKEY_TIMEOUT); + } + + /** + * Restore touchscreen sensitivity setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + Utils.writeValue(FILE_TOUCHKEY_TIMEOUT, sharedPrefs.getString(DeviceSettings.KEY_TOUCHKEY_TIMEOUT, "3")); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + Utils.writeValue(FILE_TOUCHKEY_TIMEOUT, (String) newValue); + return true; + } + +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/Utils.java b/DeviceSettings/src/com/cyanogenmod/settings/device/Utils.java new file mode 100644 index 0000000..4ca2e9e --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/Utils.java @@ -0,0 +1,163 @@ +/* + * Copyright (C) 2012 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.device; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.io.SyncFailedException; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Context; + +public class Utils { + + private static final String TAG = "DeviceSettings_Utils"; + private static final String TAG_READ = "DeviceSettings_Utils_Read"; + private static final String TAG_WRITE = "DeviceSettings_Utils_Write"; + + // Read value from sysfs interface + public static String readOneLine(String sFile) { + BufferedReader brBuffer; + String sLine = null; + + try { + brBuffer = new BufferedReader(new FileReader(sFile), 512); + try { + sLine = brBuffer.readLine(); + } finally { + Log.w(TAG_READ, "file " + sFile + ": " + sLine); + brBuffer.close(); + } + } catch (Exception e) { + Log.e(TAG_READ, "IO Exception when reading /sys/ file", e); + } + return sLine; + } + + /** + * Write a string value to the specified file. + * + * @param filename The filename + * @param value The value + */ + public static void writeValue(String filename, String value) { + FileOutputStream fos = null; + try { + fos = new FileOutputStream(new File(filename), false); + fos.write(value.getBytes()); + fos.flush(); + // fos.getFD().sync(); + } catch (FileNotFoundException ex) { + Log.w(TAG, "file " + filename + " not found: " + ex); + } catch (SyncFailedException ex) { + Log.w(TAG, "file " + filename + " sync failed: " + ex); + } catch (IOException ex) { + Log.w(TAG, "IOException trying to sync " + filename + ": " + ex); + } catch (RuntimeException ex) { + Log.w(TAG, "exception while syncing file: ", ex); + } finally { + if (fos != null) { + try { + Log.w(TAG_WRITE, "file " + filename + ": " + value); + fos.close(); + } catch (IOException ex) { + Log.w(TAG, "IOException while closing synced file: ", ex); + } catch (RuntimeException ex) { + Log.w(TAG, "exception while closing file: ", ex); + } + } + } + + } + + /** + * Write a string value to the specified file. + * + * @param filename The filename + * @param value The value + */ + public static void writeValue(String filename, Boolean value) { + FileOutputStream fos = null; + String sEnvia; + try { + fos = new FileOutputStream(new File(filename), false); + if (value) + sEnvia = "1"; + else + sEnvia = "0"; + fos.write(sEnvia.getBytes()); + fos.flush(); + // fos.getFD().sync(); + } catch (FileNotFoundException ex) { + Log.w(TAG, "file " + filename + " not found: " + ex); + } catch (SyncFailedException ex) { + Log.w(TAG, "file " + filename + " sync failed: " + ex); + } catch (IOException ex) { + Log.w(TAG, "IOException trying to sync " + filename + ": " + ex); + } catch (RuntimeException ex) { + Log.w(TAG, "exception while syncing file: ", ex); + } finally { + if (fos != null) { + try { + Log.w(TAG_WRITE, "file " + filename + ": " + value); + fos.close(); + } catch (IOException ex) { + Log.w(TAG, "IOException while closing synced file: ", ex); + } catch (RuntimeException ex) { + Log.w(TAG, "exception while closing file: ", ex); + } + } + } + } + + /** + * Write the "color value" to the specified file. The value is scaled from + * an integer to an unsigned integer by multiplying by 2. + * @param filename The filename + * @param value The value of max value Integer.MAX + */ + public static void writeColor(String filename, int value) { + writeValue(filename, String.valueOf((long) value * 2)); + } + + /** + * Check if the specified file exists. + * @param filename The filename + * @return Whether the file exists or not + */ + public static boolean fileExists(String filename) { + return new File(filename).exists(); + } + + public static void showDialog(Context ctx, String title, String message) { + final AlertDialog alertDialog = new AlertDialog.Builder(ctx).create(); + alertDialog.setTitle(title); + alertDialog.setMessage(message); + alertDialog.setButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + alertDialog.dismiss(); + } + }); + alertDialog.show(); + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/VibratorTuningPreference.java b/DeviceSettings/src/com/cyanogenmod/settings/device/VibratorTuningPreference.java new file mode 100644 index 0000000..b9e7bb5 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/VibratorTuningPreference.java @@ -0,0 +1,219 @@ +/* + * Copyright (C) 2013 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.device; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +import android.graphics.Color; +import android.graphics.LightingColorFilter; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.os.Bundle; +import android.os.Vibrator; +import android.preference.DialogPreference; +import android.preference.PreferenceManager; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.widget.SeekBar; +import android.widget.TextView; +import android.widget.Button; + +import java.lang.Math; +import java.text.DecimalFormat; + +/** + * Special preference type that allows configuration of vibrator intensity settings on Sony + * Devices + */ +public class VibratorTuningPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener { + private static final String TAG = "DeviceSettings_Vibrator"; + + private static String FILE_PATH = null; + private static int MAX_VALUE; + private static int WARNING_THRESHOLD; + private static int DEFAULT_VALUE; + private static int MIN_VALUE; + + private SeekBar mSeekBar; + private TextView mValue; + private TextView mWarning; + + private String mOriginalValue; + private int mOriginalPercent; + + private Drawable mProgressDrawable; + private Drawable mProgressThumb; + private LightingColorFilter mRedFilter; + + public VibratorTuningPreference(Context context, AttributeSet attrs) { + super(context, attrs); + + FILE_PATH = context.getResources().getString(R.string.vibrator_sysfs_file); + MAX_VALUE = Integer.valueOf(context.getResources().getString(R.string.intensity_max_value)); + WARNING_THRESHOLD = Integer.valueOf(context.getResources().getString(R.string.intensity_warning_threshold)); + DEFAULT_VALUE = Integer.valueOf(context.getResources().getString(R.string.intensity_default_value)); + MIN_VALUE = Integer.valueOf(context.getResources().getString(R.string.intensity_min_value)); + + setDialogLayoutResource(R.layout.preference_dialog_vibrator_tuning); + } + + @Override + protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { + builder.setNeutralButton(R.string.defaults_button, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + } + + @Override + protected void onBindDialogView(View view) { + super.onBindDialogView(view); + + mSeekBar = (SeekBar) view.findViewById(R.id.vibrator_seekbar); + mValue = (TextView) view.findViewById(R.id.vibrator_value); + mWarning = (TextView) view.findViewById(R.id.textWarn); + + String strWarnMsg = getContext().getResources().getString(R.string.vibrator_warning, strengthToPercent(WARNING_THRESHOLD)); + mWarning.setText(strWarnMsg); + + Drawable progressDrawable = mSeekBar.getProgressDrawable(); + if (progressDrawable instanceof LayerDrawable) { + LayerDrawable ld = (LayerDrawable) progressDrawable; + mProgressDrawable = ld.findDrawableByLayerId(android.R.id.progress); + } + mProgressThumb = mSeekBar.getThumb(); + mRedFilter = new LightingColorFilter(Color.BLACK, + getContext().getResources().getColor(android.R.color.holo_red_light)); + + mOriginalValue = Utils.readOneLine(FILE_PATH); + mOriginalPercent = strengthToPercent(Integer.parseInt(mOriginalValue)); + + mSeekBar.setOnSeekBarChangeListener(this); + mSeekBar.setProgress(Integer.valueOf(mOriginalPercent)); + } + + @Override + protected void showDialog(Bundle state) { + super.showDialog(state); + + // can't use onPrepareDialogBuilder for this as we want the dialog + // to be kept open on click + AlertDialog d = (AlertDialog) getDialog(); + Button defaultsButton = d.getButton(DialogInterface.BUTTON_NEUTRAL); + defaultsButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mSeekBar.setProgress(strengthToPercent(DEFAULT_VALUE)); + } + }); + } + + @Override + protected void onDialogClosed(boolean positiveResult) { + super.onDialogClosed(positiveResult); + + if (positiveResult) { + Editor editor = getEditor(); + + int strength = percentToStrength(mSeekBar.getProgress()); + editor.putString(FILE_PATH, String.valueOf(strength)); + editor.commit(); + } else { + Utils.writeValue(FILE_PATH, String.valueOf(mOriginalPercent)); + } + } + + public static void restore(Context context) { + FILE_PATH = context.getResources().getString(R.string.vibrator_sysfs_file); + + if (!isSupported(FILE_PATH)) { + return; + } + + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final String value = prefs.getString(FILE_PATH, null); + + if (value != null) { + Log.d(TAG, "Restoring vibration setting: " + value); + Utils.writeValue(FILE_PATH, value); + } + } + + public static boolean isSupported(String filePath) { + return Utils.fileExists(filePath); + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + boolean shouldWarn = progress >= strengthToPercent(WARNING_THRESHOLD); + if (mProgressDrawable != null) { + mProgressDrawable.setColorFilter(shouldWarn ? mRedFilter : null); + } + if (mProgressThumb != null) { + mProgressThumb.setColorFilter(shouldWarn ? mRedFilter : null); + } + Utils.writeValue(FILE_PATH, String.valueOf(percentToStrength(progress))); + mValue.setText(String.format("%d%%", progress)); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + // Do nothing + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Vibrator vib = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE); + vib.vibrate(200); + } + + /** + * Convert vibrator strength to percent + */ + public static int strengthToPercent(int strength) { + double maxValue = MAX_VALUE; + double minValue = MIN_VALUE; + + double percent = (strength - minValue) * (100 / (maxValue - minValue)); + + if (percent > 100) + percent = 100; + else if (percent < 0) + percent = 0; + + return (int) percent; + } + + /** + * Convert percent to vibrator strength + */ + public static int percentToStrength(int percent) { + int strength = Math.round((((MAX_VALUE - MIN_VALUE) * percent) / 100) + MIN_VALUE); + + if (strength > MAX_VALUE) + strength = MAX_VALUE; + else if (strength < MIN_VALUE) + strength = MIN_VALUE; + + return strength; + } +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeMode.java b/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeMode.java new file mode 100644 index 0000000..7969637 --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeMode.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2012 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.device; + +import android.content.Context; + +import android.content.SharedPreferences; +import android.util.AttributeSet; +import android.preference.Preference; +import android.preference.ListPreference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +public class mDNIeMode extends ListPreference implements OnPreferenceChangeListener { + + public mDNIeMode(Context context, AttributeSet attrs) { + super(context, attrs); + this.setOnPreferenceChangeListener(this); + } + + private static final String FILE = "/sys/class/mdnie/mdnie/mode"; + + public static boolean isSupported() { + return Utils.fileExists(FILE); + } + + /** + * Restore mdnie user mode setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + Utils.writeValue(FILE, sharedPrefs.getString(DeviceSettings.KEY_MDNIE_MODE, "0")); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + Utils.writeValue(FILE, (String) newValue); + return true; + } + +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeNegative.java b/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeNegative.java new file mode 100644 index 0000000..c2ccc7b --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeNegative.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2012 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.device; + +import java.io.IOException; +import android.content.Context; +import android.util.AttributeSet; +import android.content.SharedPreferences; +import android.preference.Preference; +import android.preference.ListPreference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +public class mDNIeNegative extends ListPreference implements OnPreferenceChangeListener { + + public mDNIeNegative(Context context, AttributeSet attrs) { + super(context, attrs); + this.setOnPreferenceChangeListener(this); + } + + private static final String FILE = "/sys/class/mdnie/mdnie/negative"; + + public static boolean isSupported() { + return Utils.fileExists(FILE); + } + + /** + * Restore mdnie user mode setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + Utils.writeValue(FILE, sharedPrefs.getString(DeviceSettings.KEY_MDNIE_NEGATIVE, "0")); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + Utils.writeValue(FILE, (String) newValue); + return true; + } + +} diff --git a/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeScenario.java b/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeScenario.java new file mode 100644 index 0000000..a9c935a --- /dev/null +++ b/DeviceSettings/src/com/cyanogenmod/settings/device/mDNIeScenario.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2012 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.device; + +import android.content.Context; + +import android.content.SharedPreferences; +import android.util.AttributeSet; +import android.preference.Preference; +import android.preference.ListPreference; +import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.PreferenceManager; + +public class mDNIeScenario extends ListPreference implements OnPreferenceChangeListener { + + public mDNIeScenario(Context context, AttributeSet attrs) { + super(context,attrs); + this.setOnPreferenceChangeListener(this); + } + + private static final String FILE = "/sys/class/mdnie/mdnie/scenario"; + + public static boolean isSupported() { + return Utils.fileExists(FILE); + } + + /** + * Restore mdnie "camera" setting from SharedPreferences. (Write to kernel.) + * @param context The context to read the SharedPreferences from + */ + public static void restore(Context context) { + if (!isSupported()) { + return; + } + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + Utils.writeValue(FILE, sharedPrefs.getString(DeviceSettings.KEY_MDNIE_SCENARIO, "0")); + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + Utils.writeValue(FILE, (String) newValue); + return true; + } + +} |