summaryrefslogtreecommitdiffstats
path: root/CrespoParts
diff options
context:
space:
mode:
authorRobert Burns <burnsra@gmail.com>2012-01-09 17:45:34 +0100
committerKalimochoAz <calimochoazucarado@gmail.com>2012-01-09 17:45:40 +0100
commit8bd8d9965bc415c858159b8a8f3f9a5ea5bc075f (patch)
tree1d8bf64210535a8eca67b9a41a0fe669dddab7ed /CrespoParts
parent7659938515fa237a4b65c0e1adc992e5c54a485c (diff)
downloaddevice_samsung_crespo-8bd8d9965bc415c858159b8a8f3f9a5ea5bc075f.zip
device_samsung_crespo-8bd8d9965bc415c858159b8a8f3f9a5ea5bc075f.tar.gz
device_samsung_crespo-8bd8d9965bc415c858159b8a8f3f9a5ea5bc075f.tar.bz2
Readded CrespoParts with more options
Change-Id: I7a388e5ebc33ba2fb7b5f009c843fae12693c9dd
Diffstat (limited to 'CrespoParts')
-rw-r--r--CrespoParts/Android.mk15
-rw-r--r--CrespoParts/AndroidManifest.xml32
-rw-r--r--CrespoParts/res/drawable/color_tuning_preview.xml9
-rwxr-xr-xCrespoParts/res/drawable/ic_launcher_cmdevicesettings.pngbin0 -> 8207 bytes
-rw-r--r--CrespoParts/res/layout/preference_dialog_color_tuning.xml92
-rw-r--r--CrespoParts/res/layout/preference_dialog_gamma_tuning.xml92
-rwxr-xr-xCrespoParts/res/layout/top.xml5
-rw-r--r--CrespoParts/res/values-da/strings.xml49
-rw-r--r--CrespoParts/res/values-es/arrays.xml22
-rw-r--r--CrespoParts/res/values-es/strings.xml49
-rw-r--r--CrespoParts/res/values-fr/strings.xml50
-rw-r--r--CrespoParts/res/values-it/arrays.xml28
-rw-r--r--CrespoParts/res/values-it/strings.xml54
-rw-r--r--CrespoParts/res/values-ja/arrays.xml54
-rw-r--r--CrespoParts/res/values-ja/strings.xml55
-rw-r--r--CrespoParts/res/values-ko/strings.xml49
-rw-r--r--CrespoParts/res/values-nl/strings.xml49
-rw-r--r--CrespoParts/res/values-pt-rPT/arrays.xml27
-rw-r--r--CrespoParts/res/values-pt-rPT/strings.xml52
-rw-r--r--CrespoParts/res/values-ru/arrays.xml28
-rw-r--r--CrespoParts/res/values-ru/strings.xml54
-rw-r--r--CrespoParts/res/values-tr/strings.xml50
-rw-r--r--CrespoParts/res/values-zh-rCN/arrays.xml34
-rw-r--r--CrespoParts/res/values-zh-rCN/strings.xml54
-rw-r--r--CrespoParts/res/values-zh-rTW/arrays.xml34
-rw-r--r--CrespoParts/res/values-zh-rTW/strings.xml54
-rw-r--r--CrespoParts/res/values/arrays.xml54
-rw-r--r--CrespoParts/res/values/strings.xml62
-rwxr-xr-xCrespoParts/res/xml/display_preferences.xml15
-rw-r--r--CrespoParts/res/xml/general_preferences.xml32
-rw-r--r--CrespoParts/res/xml/main.xml58
-rwxr-xr-xCrespoParts/res/xml/sound_preferences.xml68
-rwxr-xr-xCrespoParts/res/xml/touch_preferences.xml21
-rw-r--r--CrespoParts/res/xml/wm8994_settings.xml72
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java206
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java164
-rwxr-xr-xCrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java50
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java211
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java96
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/Hspa.java57
-rwxr-xr-xCrespoParts/src/com/cyanogenmod/settings/device/SoundFragmentActivity.java98
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/Startup.java20
-rwxr-xr-xCrespoParts/src/com/cyanogenmod/settings/device/TouchFragmentActivity.java53
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBacklightTimeout.java36
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBlinkTimeout.java36
-rw-r--r--CrespoParts/src/com/cyanogenmod/settings/device/Utils.java149
46 files changed, 2649 insertions, 0 deletions
diff --git a/CrespoParts/Android.mk b/CrespoParts/Android.mk
new file mode 100644
index 0000000..ef015ef
--- /dev/null
+++ b/CrespoParts/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 := CrespoParts
+LOCAL_CERTIFICATE := platform
+
+include $(BUILD_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/CrespoParts/AndroidManifest.xml b/CrespoParts/AndroidManifest.xml
new file mode 100644
index 0000000..b736787
--- /dev/null
+++ b/CrespoParts/AndroidManifest.xml
@@ -0,0 +1,32 @@
+<?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" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </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=".GeneralFragmentActivity" />
+ <activity android:name=".DisplayFragmentActivity" />
+ <activity android:name=".SoundFragmentActivity" />
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/CrespoParts/res/drawable/color_tuning_preview.xml b/CrespoParts/res/drawable/color_tuning_preview.xml
new file mode 100644
index 0000000..2d83c10
--- /dev/null
+++ b/CrespoParts/res/drawable/color_tuning_preview.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <gradient
+ android:angle="0"
+ android:startColor="#000000"
+ android:endColor="#FFFFFF" />
+</shape> \ No newline at end of file
diff --git a/CrespoParts/res/drawable/ic_launcher_cmdevicesettings.png b/CrespoParts/res/drawable/ic_launcher_cmdevicesettings.png
new file mode 100755
index 0000000..66de9c3
--- /dev/null
+++ b/CrespoParts/res/drawable/ic_launcher_cmdevicesettings.png
Binary files differ
diff --git a/CrespoParts/res/layout/preference_dialog_color_tuning.xml b/CrespoParts/res/layout/preference_dialog_color_tuning.xml
new file mode 100644
index 0000000..6154982
--- /dev/null
+++ b/CrespoParts/res/layout/preference_dialog_color_tuning.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<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/color_red_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/color_red_title"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <TextView android:id="@+id/color_red_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/color_red_seekbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/color_red_text"
+ android:paddingTop="2dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ <TextView android:id="@+id/color_green_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/color_red_seekbar"
+ android:text="@string/color_green_title"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <TextView android:id="@+id/color_green_value"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/color_red_seekbar"
+ android:layout_alignParentRight="true"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <SeekBar android:id="@+id/color_green_seekbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/color_green_text"
+ android:paddingTop="2dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ <TextView android:id="@+id/color_blue_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/color_green_seekbar"
+ android:text="@string/color_blue_title"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <TextView android:id="@+id/color_blue_value"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/color_green_seekbar"
+ android:layout_alignParentRight="true"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <SeekBar android:id="@+id/color_blue_seekbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/color_blue_text"
+ android:paddingTop="2dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ <ImageView android:src="@drawable/color_tuning_preview"
+ android:layout_width="match_parent"
+ android:layout_height="40dip"
+ android:layout_below="@id/color_blue_seekbar"
+ android:paddingTop="20dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ </RelativeLayout>
+</ScrollView> \ No newline at end of file
diff --git a/CrespoParts/res/layout/preference_dialog_gamma_tuning.xml b/CrespoParts/res/layout/preference_dialog_gamma_tuning.xml
new file mode 100644
index 0000000..3ece54b
--- /dev/null
+++ b/CrespoParts/res/layout/preference_dialog_gamma_tuning.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<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/gamma_red_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/color_red_title"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <TextView android:id="@+id/gamma_red_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/gamma_red_seekbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/gamma_red_text"
+ android:paddingTop="2dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ <TextView android:id="@+id/gamma_green_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/gamma_red_seekbar"
+ android:text="@string/color_green_title"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <TextView android:id="@+id/gamma_green_value"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/gamma_red_seekbar"
+ android:layout_alignParentRight="true"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <SeekBar android:id="@+id/gamma_green_seekbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/gamma_green_text"
+ android:paddingTop="2dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ <TextView android:id="@+id/gamma_blue_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/gamma_green_seekbar"
+ android:text="@string/color_blue_title"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <TextView android:id="@+id/gamma_blue_value"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/gamma_green_seekbar"
+ android:layout_alignParentRight="true"
+ android:paddingTop="10dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+ <SeekBar android:id="@+id/gamma_blue_seekbar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/gamma_blue_text"
+ android:paddingTop="2dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ <ImageView android:src="@drawable/color_tuning_preview"
+ android:layout_width="match_parent"
+ android:layout_height="40dip"
+ android:layout_below="@id/gamma_blue_seekbar"
+ android:paddingTop="20dip"
+ android:paddingLeft="20dip"
+ android:paddingRight="20dip" />
+
+ </RelativeLayout>
+</ScrollView> \ No newline at end of file
diff --git a/CrespoParts/res/layout/top.xml b/CrespoParts/res/layout/top.xml
new file mode 100755
index 0000000..744b568
--- /dev/null
+++ b/CrespoParts/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/CrespoParts/res/values-da/strings.xml b/CrespoParts/res/values-da/strings.xml
new file mode 100644
index 0000000..116377b
--- /dev/null
+++ b/CrespoParts/res/values-da/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Nexus S Indstillinger</string>
+
+ <string name="category_screen_title">WM8994 Indstillinger ( voodoo )</string>
+ <string name="color_tuning_title_head">Farve Justering</string>
+ <string name="color_tuning_summary_head">Juster skærm farve</string>
+ <string name="color_red_title">Rød</string>
+ <string name="color_green_title">Grøn</string>
+ <string name="color_blue_title">Blå</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Lyd</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Intern Højtaler Indstillinger</string>
+ <string name="category_wm8994_signal_processing">Signal Bearbejdning</string>
+ <string name="category_wm8994_headphone_amp">Høretelefons Forstærker</string>
+ <string name="category_wm8994_codec_optimization">Codec Optimering</string>
+ <string name="category_wm8994_dac_config">Digital/Analog Konverterings Indstillinger</string>
+ <string name="category_wm8994_analog_path">Analog Linie Konfiguration</string>
+ <string name="category_wm8994_mic_settings">Microfon Indstillinger</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Lyd Instillinger</string>
+ <string name="wm8994_settings_title_subhead">Lyd Indstillinger</string>
+ <string name="wm8994_settings_summary_head">Avanceret kontrol af WM8994 lyd bearbejdnings hardware</string>
+ <string name="pref_wm8994_control_enable_title">Aktiver WM8994 Kontrol</string>
+ <string name="pref_wm8994_control_enable_summary">Aktiver avanceret kontrol af WM8994 bearbejdnings hardware</string>
+ <string name="pref_wm8994_speaker_tuning_title">Juster højtaler til musik</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Rekonfigurer hardware EQ for mere bas og balanceret lyd</string>
+ <string name="pref_wm8994_mono_downmix_title">Mono downmix</string>
+ <string name="pref_wm8994_mono_downmix_summary">Downmix stereo lyd til mono (for stereo outputs, så som høretelefoner)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Stereo ekspansion</string>
+ <string name="pref_wm8994_stereo_expansion_summary">"Udvid" stereo lyd via digital signal bearbejdning</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC direkte</string>
+ <string name="pref_wm8994_dac_direct_summary">Tilgå digital/analog konverter direkte, udenom channel mixer. Giver renere lyd (sænker signal-to-noise forholdet)</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-fi afspilning</string>
+ <string name="pref_wm8994_dac_osr128_summary">Digital-til-analog konverter 128x oversampling -- renere lyd når der afspilles musik</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-fi optagelse</string>
+ <string name="pref_wm8994_adc_osr128_summary">Analog-to-digital konverter 128x oversampling -- øger kvaliteten af optagelser</string>
+ <string name="pref_wm8994_fll_tuning_title">Tuned lyd frekvens</string>
+ <string name="pref_wm8994_fll_tuning_summary">Brug tuned WM8994 lyd frekvens kilde -- øger kvaliteten af lyd</string>
+
+ <string name="category_touchkey_title">Touch Knapper</string>
+ <string name="backlight_timeout_title_head">Baggrundslys Timeout</string>
+ <string name="backlight_timeout_summary_head">Indstil forsinkelsen for hvornår touch knappernes lys skal slukkes</string>
+ <string name="blink_timeout_title_head">Blink Timeout</string>
+ <string name="blink_timeout_summary_head">Indstil forsinkelsen for hvornår touch knappernes blink lys automatisk skal slukkes efter en notifikation</string>
+
+</resources>
diff --git a/CrespoParts/res/values-es/arrays.xml b/CrespoParts/res/values-es/arrays.xml
new file mode 100644
index 0000000..8f0d39d
--- /dev/null
+++ b/CrespoParts/res/values-es/arrays.xml
@@ -0,0 +1,22 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2 segundos</item>
+ <item>Por defecto (5 segundos)</item>
+ <item>10 segundos</item>
+ <item>15 segundos</item>
+ <item>20 segundos</item>
+ <item>30 segundos</item>
+ <item>Nunca</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries">
+ <item>1 minuto</item>
+ <item>2 minutos</item>
+ <item>Por defecto (5 minutos)</item>
+ <item>10 minutos</item>
+ <item>15 minutos</item>
+ <item>30 minutos</item>
+ <item>Nunca</item>
+ </string-array>
+
+</resources>
diff --git a/CrespoParts/res/values-es/strings.xml b/CrespoParts/res/values-es/strings.xml
new file mode 100644
index 0000000..0ba86fd
--- /dev/null
+++ b/CrespoParts/res/values-es/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Parámetros Nexus S</string>
+
+ <string name="category_screen_title">Parámetros WM8994 ( voodoo )</string>
+ <string name="color_tuning_title_head">Modificar Color</string>
+ <string name="color_tuning_summary_head">Calibrar color pantalla</string>
+ <string name="color_red_title">Rojo</string>
+ <string name="color_green_title">Verde</string>
+ <string name="color_blue_title">Azul</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Sonido</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Configurar altavoz interno</string>
+ <string name="category_wm8994_signal_processing">Procesado de señal</string>
+ <string name="category_wm8994_headphone_amp">Configurar manoslibres</string>
+ <string name="category_wm8994_codec_optimization">Optimización codec</string>
+ <string name="category_wm8994_dac_config">Parámetros Digital/Analogico</string>
+ <string name="category_wm8994_analog_path">Parámetros camino analógico</string>
+ <string name="category_wm8994_mic_settings">Parámetros del micro</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Parámetros del sonido</string>
+ <string name="wm8994_settings_title_subhead">Parámetros del sonido</string>
+ <string name="wm8994_settings_summary_head">Control avanzado del procesador de sonido del WM8994</string>
+ <string name="pref_wm8994_control_enable_title">Habilitar control WM8994</string>
+ <string name="pref_wm8994_control_enable_summary">Habilitar el control de procesador de sonido del WM8994</string>
+ <string name="pref_wm8994_speaker_tuning_title">Ajustar altavoz para música</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Reconfigurar el EQ para tener más bajos y sonido balanceado</string>
+ <string name="pref_wm8994_mono_downmix_title">Mezclador a mono</string>
+ <string name="pref_wm8994_mono_downmix_summary">Degrada estereo para salir en mono (para salidas estereo, como los cascos)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Expansión estereo</string>
+ <string name="pref_wm8994_stereo_expansion_summary">"Expande" sonido estereo via procesado digital de señal</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC directo</string>
+ <string name="pref_wm8994_dac_direct_summary">Acceso directo al convertidor digital/analogico, inhibiendo el mezclador de canales. Produce mayor señal limpia</string>
+ <string name="pref_wm8994_dac_osr128_title">Reproducción Hi-fi</string>
+ <string name="pref_wm8994_dac_osr128_summary">Convertidor Digital-a-analogico 128x sobre muestreada -- sonido más claro al reproducir música</string>
+ <string name="pref_wm8994_adc_osr128_title">Grabación Hi-fi</string>
+ <string name="pref_wm8994_adc_osr128_summary">Convertidor Digital-a-analogico 128x sobre muestreada -- sonido más claro al grabar</string>
+ <string name="pref_wm8994_fll_tuning_title">Reloj audio mejorado</string>
+ <string name="pref_wm8994_fll_tuning_summary">Usar el reloj del sonido del WM8994 -- mejora la calidad del sonido</string>
+
+ <string name="category_touchkey_title">Teclas</string>
+ <string name="backlight_timeout_title_head">Tiempo de luz teclado</string>
+ <string name="backlight_timeout_summary_head">Adjusta el tiempo al que se desactiva la luz de las teclas con la pantalla encendida</string>
+ <string name="blink_timeout_title_head">Tiempo de parpadeo</string>
+ <string name="blink_timeout_summary_head">Adjusta el tiempo al que deja de parpadear el teclado después de que llegue una notificación</string>
+
+</resources>
diff --git a/CrespoParts/res/values-fr/strings.xml b/CrespoParts/res/values-fr/strings.xml
new file mode 100644
index 0000000..cd8df9d
--- /dev/null
+++ b/CrespoParts/res/values-fr/strings.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Paramètres Nexus S</string>
+
+ <string name="category_screen_title">Paramètres WM8994 ( voodoo )</string>
+ <string name="color_tuning_title_head">Réglages Couleurs</string>
+ <string name="color_tuning_summary_head">Calibrage des couleurs de l\'écran</string>
+ <string name="color_red_title">Rouge</string>
+ <string name="color_green_title">Vert</string>
+ <string name="color_blue_title">Bleu</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Son</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Configuration Haut-Parleur Interne</string>
+ <string name="category_wm8994_signal_processing">Traitement du Signal</string>
+ <string name="category_wm8994_headphone_amp">Amplificateur Ecouteurs</string>
+ <string name="category_wm8994_codec_optimization">Optimisation du Codec</string>
+ <string name="category_wm8994_dac_config">Configuration du Convertisseur Analogique Numérique</string>
+ <string name="category_wm8994_analog_path">Configuration du Chemin Analogique</string>
+ <string name="category_wm8994_mic_settings">Configuration du Micro</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Paramètres du Son</string>
+ <string name="wm8994_settings_title_subhead">Paamètres du Son</string>
+ <string name="wm8994_settings_summary_head">Contrôle Avancé du Matériel de Traitement du Son WM8994</string>
+ <string name="pref_wm8994_control_enable_title">Activer le Contrôle WM8994</string>
+ <string name="pref_wm8994_control_enable_summary">Activer les Contrôles Avancés du Matériel de Traitement du Son WM8994</string>
+ <string name="pref_wm8994_speaker_tuning_title">Régler le Haut-Parleur pour la Musique</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Reconfigurer le matériel EQ pour un son plus grave et équilibré</string>
+ <string name="pref_wm8994_mono_downmix_title">Mélangeur Mono</string>
+ <string name="pref_wm8994_mono_downmix_summary">Mixer le signal stéréo en mono (vers une sortie stéréo, comme des écouteurs)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Expansion Stéréo</string>
+ <string name="pref_wm8994_stereo_expansion_summary">"Expand" le signal stéréo via le processeur de traitement du signal numérique</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC direct</string>
+ <string name="pref_wm8994_dac_direct_summary">Accéder au convertisseur numérique analogique directement, en court-circuitant le mélangeur de canaux. Produit un son plus propre (signal sur bruit meilleur)</string>
+ <string name="pref_wm8994_dac_osr128_title">Reproduction HiFi</string>
+ <string name="pref_wm8994_dac_osr128_summary">Suréchantillonnage 128x du convertisseur analogique numérique -- son plus propre pour la reproduction de musique</string>
+ <string name="pref_wm8994_adc_osr128_title">Enregistrement HiFi</string>
+ <string name="pref_wm8994_adc_osr128_summary">Suréchantillonnage 128x du convertisseur analogique numérique -- améliore la qualité des enregistrements</string>
+ <string name="pref_wm8994_fll_tuning_title">Horloge audio précise</string>
+ <string name="pref_wm8994_fll_tuning_summary">Utiliser une source horloge audio précise -- améliore la qualité du son</string>
+
+ <string name="category_touchkey_title">Touches tactiles</string>
+ <string name="backlight_timeout_title_head">Délai rétroéclairage</string>
+ <string name="backlight_timeout_summary_head">Régler le délai avant l\'extinction du rétroéclairage des touches tactiles</string>
+ <string name="blink_timeout_title_head">Délai clignotement</string>
+ <string name="blink_timeout_summary_head">Régler le délai avant l\'arrêt du clignotement du rétroéclairage des touches tactiles après une notification</string>
+
+</resources>
+
diff --git a/CrespoParts/res/values-it/arrays.xml b/CrespoParts/res/values-it/arrays.xml
new file mode 100644
index 0000000..f377f3e
--- /dev/null
+++ b/CrespoParts/res/values-it/arrays.xml
@@ -0,0 +1,28 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2 secondi</item>
+ <item>Default (5 secondi)</item>
+ <item>10 secondi</item>
+ <item>15 secondi</item>
+ <item>20 secondi</item>
+ <item>30 secondi</item>
+ <item>Mai</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries">
+ <item>1 minuto</item>
+ <item>2 minuti</item>
+ <item>Default (5 minuti)</item>
+ <item>10 minuti</item>
+ <item>15 minuti</item>
+ <item>30 minuti</item>
+ <item>Mai</item>
+ </string-array>
+
+ <string-array name="hspa_entries">
+ <item>Solo UMTS</item>
+ <item>Solo HSDPA</item>
+ <item>HSDPA + HSUPA</item>
+ </string-array>
+
+</resources>
diff --git a/CrespoParts/res/values-it/strings.xml b/CrespoParts/res/values-it/strings.xml
new file mode 100644
index 0000000..1e856a9
--- /dev/null
+++ b/CrespoParts/res/values-it/strings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Impostazioni Nexus S</string>
+
+ <string name="category_screen_title">Impostazioni WM8994 ( voodoo )</string>
+ <string name="color_tuning_title_head">Regolazione Moltiplicatori Colore</string>
+ <string name="color_tuning_summary_head">Calibrazione moltiplicatori colori</string>
+ <string name="gamma_tuning_title_head">Regolazione Colore Gamma</string>
+ <string name="gamma_tuning_summary_head">Calibrazione correzione colore gamma</string>
+ <string name="color_red_title">Rosso</string>
+ <string name="color_green_title">Verde</string>
+ <string name="color_blue_title">Blu</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Audio</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Configurazione Speaker Interno</string>
+ <string name="category_wm8994_signal_processing">Elaborazione Segnale</string>
+ <string name="category_wm8994_headphone_amp">Amplificatore Cuffie</string>
+ <string name="category_wm8994_codec_optimization">Ottimizzazione Codec</string>
+ <string name="category_wm8994_dac_config">Impostazioni del Convertitore Digitale/Analogico</string>
+ <string name="category_wm8994_analog_path">Configurazione del Percorso Analogico</string>
+ <string name="category_wm8994_mic_settings">Impostazioni Microfono</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Impostazioni Audio</string>
+ <string name="wm8994_settings_title_subhead">Impostazioni Audio</string>
+ <string name="wm8994_settings_summary_head">Controllo avanzato del processore audio hardware WM8994</string>
+ <string name="pref_wm8994_control_enable_title">Abilita il Controllo di WM8994</string>
+ <string name="pref_wm8994_control_enable_summary">Abilita i controlli avanzati per il processore audio hardware WM8994</string>
+ <string name="pref_wm8994_speaker_tuning_title">Regola l\'altoparlante per la musica</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Riconfigura l\'equalizzatore hardware per ottenere maggiori bassi ed un suono bilanciato</string>
+ <string name="pref_wm8994_mono_downmix_title">Mono downmix</string>
+ <string name="pref_wm8994_mono_downmix_summary">Downmix stereo sound to mono (per le uscite stereo, come le cuffie)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Espansione stereo</string>
+ <string name="pref_wm8994_stereo_expansion_summary">"Espandi" suono stereo attraverso l\'elaborazione digitale del segnale</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC diretto</string>
+ <string name="pref_wm8994_dac_direct_summary">Accedi al convertitore digitale/analogico direttamente, aggirando il canale del mixer. Produce audio più pulito (rapporto segnale-rumore minore)</string>
+ <string name="pref_wm8994_dac_osr128_title">Riproduzione hi-fi</string>
+ <string name="pref_wm8994_dac_osr128_summary">Convertitore digitale-analogico con sovracampionamento a 128x -- suoni più puliti quando riproduci musica</string>
+ <string name="pref_wm8994_adc_osr128_title">Registrazione hi-fi</string>
+ <string name="pref_wm8994_adc_osr128_summary">Convertitore analogico-digitale con sovracampionamento a 128x -- incrementa la qualità delle registrazioni</string>
+ <string name="pref_wm8994_fll_tuning_title">Regola il clock audio</string>
+ <string name="pref_wm8994_fll_tuning_summary">Usa il clock regolato della sorgente audio WM8994 -- migliora la qualità del suono</string>
+
+ <string name="category_touchkey_title">Softkey</string>
+ <string name="backlight_timeout_title_head">Backlight Timeout</string>
+ <string name="backlight_timeout_summary_head">Aggiusta il ritardo prima dello spegnimento automatico delle Softkey</string>
+ <string name="blink_timeout_title_head">Blink Timeout</string>
+ <string name="blink_timeout_summary_head">Aggiusta il ritardo prima dello spegnimento automatico delle Softkey dopo una notifica</string>
+
+ <string name="category_radio_title">Radio</string>
+ <string name="hspa_title_head">HSPA</string>
+ <string name="hspa_summary_head">Abilita HSDPA/HSUPA</string>
+</resources>
diff --git a/CrespoParts/res/values-ja/arrays.xml b/CrespoParts/res/values-ja/arrays.xml
new file mode 100644
index 0000000..7b6f3e3
--- /dev/null
+++ b/CrespoParts/res/values-ja/arrays.xml
@@ -0,0 +1,54 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2 秒</item>
+ <item>デフォルト (5 秒)</item>
+ <item>10 秒</item>
+ <item>15 秒</item>
+ <item>20 秒</item>
+ <item>30 秒</item>
+ <item>させない</item>
+ </string-array>
+
+ <string-array name="backlight_timeout_entries_values" translatable="false">
+ <item>2</item>
+ <item>5</item>
+ <item>10</item>
+ <item>15</item>
+ <item>20</item>
+ <item>30</item>
+ <item>0</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries">
+ <item>1 分</item>
+ <item>2 分</item>
+ <item>デフォルト (5 分)</item>
+ <item>10 分</item>
+ <item>15 分</item>
+ <item>30 分</item>
+ <item>させない</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries_values" translatable="false">
+ <item>1</item>
+ <item>2</item>
+ <item>5</item>
+ <item>10</item>
+ <item>15</item>
+ <item>30</item>
+ <item>0</item>
+ </string-array>
+
+ <string-array name="hspa_entries">
+ <item>UMTS のみ</item>
+ <item>HSDPA のみ</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/CrespoParts/res/values-ja/strings.xml b/CrespoParts/res/values-ja/strings.xml
new file mode 100644
index 0000000..9123ca9
--- /dev/null
+++ b/CrespoParts/res/values-ja/strings.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Nexus S 設定</string>
+
+ <string name="category_screen_title">WM8994 設定 ( voodoo )</string>
+ <string name="color_tuning_title_head">色の調整</string>
+ <string name="color_tuning_summary_head">画面色の調整</string>
+ <string name="gamma_tuning_title_head">ガンマの調整</string>
+ <string name="gamma_tuning_summary_head">ガンマ補正の調整</string>
+ <string name="color_red_title">赤</string>
+ <string name="color_green_title">緑</string>
+ <string name="color_blue_title">青</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">サウンド</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">スピーカー設定</string>
+ <string name="category_wm8994_signal_processing">信号処理</string>
+ <string name="category_wm8994_headphone_amp">ヘッドフォンアンプ</string>
+ <string name="category_wm8994_codec_optimization">Codec最適化</string>
+ <string name="category_wm8994_dac_config">デジタル/アナログコンバータ設定</string>
+ <string name="category_wm8994_analog_path">アナログパス設定</string>
+ <string name="category_wm8994_mic_settings">マイク設定</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">サウンド設定</string>
+ <string name="wm8994_settings_title_subhead">サウンド設定</string>
+ <string name="wm8994_settings_summary_head">WM8994サウンドプロセッサの高度な制御</string>
+ <string name="pref_wm8994_control_enable_title">WM8994サウンドプロセッサの制御を有効にする</string>
+ <string name="pref_wm8994_control_enable_summary">WM8994サウンドプロセッサの高度な制御を有効にする</string>
+ <string name="pref_wm8994_speaker_tuning_title">音楽再生用のスピーカー調整</string>
+ <string name="pref_wm8994_speaker_tuning_summary">より豊かな低音とバランスの取れた音質にするためハードウェアEQを再設定する</string>
+ <string name="pref_wm8994_mono_downmix_title">モノダウンミックス</string>
+ <string name="pref_wm8994_mono_downmix_summary">ステレオサウンドをモノラルサウンドへダウンミックスする(ヘッドホンなどのステレオ出力用)</string>
+ <string name="pref_wm8994_stereo_expansion_title">ステレオ拡張モード</string>
+ <string name="pref_wm8994_stereo_expansion_summary">DSPを使用することによりステレオサウンドを拡張する</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC ダイレクト</string>
+ <string name="pref_wm8994_dac_direct_summary">チャンネルのミキサーをバイパスし、直接デジタル/アナログコンバーターにアクセスする。よりクリアな音質を生成(S/N比)</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-fi再生</string>
+ <string name="pref_wm8994_dac_osr128_summary">デジタル - アナログ コンバーター 128x オーバーサンプリング -- よりクリアな音で音楽を再生する</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-fi録音</string>
+ <string name="pref_wm8994_adc_osr128_summary">アナログ - デジタル コンバーター 128x オーバーサンプリング -- 録音品質を向上させる</string>
+ <string name="pref_wm8994_fll_tuning_title">チューニング済みのaudio clock</string>
+ <string name="pref_wm8994_fll_tuning_summary">チューニング済みのWM8994オーディオクロックソースを使用 -- 音質を向上させる</string>
+
+ <string name="category_touchkey_title">タッチキー</string>
+ <string name="backlight_timeout_title_head">バックライトのタイムアウト</string>
+ <string name="backlight_timeout_summary_head">タッチキーのバックライトが自動的にオフになるまでの遅延を調整する</string>
+ <string name="blink_timeout_title_head">点滅のタイムアウト</string>
+ <string name="blink_timeout_summary_head">タッチキーの点滅のバックライトが通知した後、自動的に消えるまでの遅延時間を調整する</string>
+
+ <string name="category_radio_title">ラジオ</string>
+ <string name="hspa_title_head">HSPA</string>
+ <string name="hspa_summary_head">HSDPA/HSUPAを有効にする</string>
+
+</resources>
diff --git a/CrespoParts/res/values-ko/strings.xml b/CrespoParts/res/values-ko/strings.xml
new file mode 100644
index 0000000..cba12cc
--- /dev/null
+++ b/CrespoParts/res/values-ko/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">넥서스 S 설정</string>
+
+ <string name="category_screen_title">WM8994 설정 ( 부두 )</string>
+ <string name="color_tuning_title_head">색상 조율</string>
+ <string name="color_tuning_summary_head">화면 색상 보정</string>
+ <string name="color_red_title">빨강</string>
+ <string name="color_green_title">녹색</string>
+ <string name="color_blue_title">파랑</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">소리</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">내장 스피커 구성</string>
+ <string name="category_wm8994_signal_processing">신호 처리</string>
+ <string name="category_wm8994_headphone_amp">헤드폰 증폭기</string>
+ <string name="category_wm8994_codec_optimization">코덱 최적화</string>
+ <string name="category_wm8994_dac_config">디지털/아날로그 변환기 설정</string>
+ <string name="category_wm8994_analog_path">아날로그 경로 구성</string>
+ <string name="category_wm8994_mic_settings">마이크로폰 설정</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">소리 설정</string>
+ <string name="wm8994_settings_title_subhead">소리 설정</string>
+ <string name="wm8994_settings_summary_head">WM8994 소리 프로세서 하드웨어 고급 제어</string>
+ <string name="pref_wm8994_control_enable_title">WM8994 제어 허가</string>
+ <string name="pref_wm8994_control_enable_summary">WM8994 소리 프로세서 하드웨어 고급 제어 허가</string>
+ <string name="pref_wm8994_speaker_tuning_title">음악을 위한 스피커 조정</string>
+ <string name="pref_wm8994_speaker_tuning_summary">더 낮고 균형 잡힌 소리를 위해 하드웨어 이퀄라이저 변경</string>
+ <string name="pref_wm8994_mono_downmix_title">모노 다운믹스</string>
+ <string name="pref_wm8994_mono_downmix_summary">스테레오 소리를 모노로 다운믹스 (헤드폰 같은 장치에서 스테레오로 출력하기 위함)</string>
+ <string name="pref_wm8994_stereo_expansion_title">스테레오 확장</string>
+ <string name="pref_wm8994_stereo_expansion_summary">디지털 신호 처리를 통해 스테레오 소리 "확장"</string>
+ <string name="pref_wm8994_dac_direct_title">디지털/아날로그 변환기 방향</string>
+ <string name="pref_wm8994_dac_direct_summary">채널 혼합을 거치지 않고 직접 디지털/아날로그 변환기 연결. 깔끔한 음향을 만듦 (신호대잡음비)</string>
+ <string name="pref_wm8994_dac_osr128_title">고감도 재생</string>
+ <string name="pref_wm8994_dac_osr128_summary">디지털/아날로그 변환기 128x 과 샘플링 -- 깔끔한 소리로 음악 재생</string>
+ <string name="pref_wm8994_adc_osr128_title">고감도 녹음</string>
+ <string name="pref_wm8994_adc_osr128_summary">아날로그/디지털 변환기 128x 과 샘플링 -- 녹음 품질 증가</string>
+ <string name="pref_wm8994_fll_tuning_title">조율된 음향 회로</string>
+ <string name="pref_wm8994_fll_tuning_summary">조율된 WM8994 음향 회로 소스 사용 -- 소리 품질 향상</string>
+
+ <string name="category_touchkey_title">터치키</string>
+ <string name="backlight_timeout_title_head">조명 지속시간</string>
+ <string name="backlight_timeout_summary_head">터치키 조명이 자동으로 꺼지기 전 지속시간 조정</string>
+ <string name="blink_timeout_title_head">깜빡임 지속시간</string>
+ <string name="blink_timeout_summary_head">알림 뒤 깜빡임 조명이 자동으로 꺼지기 전 지속시간 조정</string>
+
+</resources>
diff --git a/CrespoParts/res/values-nl/strings.xml b/CrespoParts/res/values-nl/strings.xml
new file mode 100644
index 0000000..14cc02c
--- /dev/null
+++ b/CrespoParts/res/values-nl/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Nexus S-instellingen</string>
+
+ <string name="category_screen_title">WM8994-instellingen ( voodoo )</string>
+ <string name="color_tuning_title_head">Kleuraanpassing</string>
+ <string name="color_tuning_summary_head">Kalibreer schermkleur</string>
+ <string name="color_red_title">Rood</string>
+ <string name="color_green_title">Groen</string>
+ <string name="color_blue_title">Blauw</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Geluid</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Interne luidspreker aanpassen</string>
+ <string name="category_wm8994_signal_processing">Signal Processing</string>
+ <string name="category_wm8994_headphone_amp">Koptelefoon Amplifier</string>
+ <string name="category_wm8994_codec_optimization">Codec Optimalisatie</string>
+ <string name="category_wm8994_dac_config">Digitaal/Analoog Converter-instellingen</string>
+ <string name="category_wm8994_analog_path">Analog Path aanpassen</string>
+ <string name="category_wm8994_mic_settings">Microfoon-instellingen</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Geluidsinstellingen</string>
+ <string name="wm8994_settings_title_subhead">Geluidsinstellingen</string>
+ <string name="wm8994_settings_summary_head">Geavanceerde controle van de WM8994-geluidsprocessor hardware</string>
+ <string name="pref_wm8994_control_enable_title">Schakel WM8994-control in</string>
+ <string name="pref_wm8994_control_enable_summary">Schakel geavanceerde controle van de WM8994-geluidsprocessor hardware in</string>
+ <string name="pref_wm8994_speaker_tuning_title">Tune speaker for music</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Reconfigures the hardware EQ voor een betere bass en gebalanceerd geluid</string>
+ <string name="pref_wm8994_mono_downmix_title">Mono downmix</string>
+ <string name="pref_wm8994_mono_downmix_summary">Downmix stereo sound to mono (for stereo outputs, such as headphones)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Stereo-uitbreiding</string>
+ <string name="pref_wm8994_stereo_expansion_summary">"Expand" stereo sound via digital signal processing</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC direct</string>
+ <string name="pref_wm8994_dac_direct_summary">Stuur de digitaal/analoog-converter rechtstreeks aan, bypassing the channel mixer. Zorgt voor helderder geluid (lower signal-to-noise ratio)</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-fi playback</string>
+ <string name="pref_wm8994_dac_osr128_summary">Digitaal-to-analoog-converter 128x oversampling -- cleaner sound when playing music</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-fi recording</string>
+ <string name="pref_wm8994_adc_osr128_summary">Analoog-to-digitaal-converter 128x oversampling -- increases quality of recordings</string>
+ <string name="pref_wm8994_fll_tuning_title">Tuned audio clock</string>
+ <string name="pref_wm8994_fll_tuning_summary">Use tuned WM8994 audio clock source -- verbetert de geluidskwaliteit</string>
+
+ <string name="category_touchkey_title">Touch Keys</string>
+ <string name="backlight_timeout_title_head">Backlight Timeout</string>
+ <string name="backlight_timeout_summary_head">Pas de vertraging aan voor het touch key-backlight uitgaat</string>
+ <string name="blink_timeout_title_head">Blink Timeout</string>
+ <string name="blink_timeout_summary_head">Pas de vertraging aan voor het knipperend touch key-backlight uitgaat na een notificatie</string>
+
+</resources>
diff --git a/CrespoParts/res/values-pt-rPT/arrays.xml b/CrespoParts/res/values-pt-rPT/arrays.xml
new file mode 100644
index 0000000..790c219
--- /dev/null
+++ b/CrespoParts/res/values-pt-rPT/arrays.xml
@@ -0,0 +1,27 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2 segundo</item>
+ <item>Pré-definido (5 segundos)</item>
+ <item>10 segundos</item>
+ <item>15 segundos</item>
+ <item>20 segundos</item>
+ <item>30 segundos</item>
+ <item>Nunca</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries">
+ <item>1 minuto</item>
+ <item>2 minuto</item>
+ <item>Pré-definido (5 minutos)</item>
+ <item>10 minutos</item>
+ <item>15 minutos</item>
+ <item>30 minutos</item>
+ <item>Nunca</item>
+ </string-array>
+
+ <string-array name="hspa_entries">
+ <item>Apenas UMTS</item>
+ <item>Apenas HSDPA</item>
+ <item>HSDPA + HSUPA</item>
+ </string-array>
+</resources>
diff --git a/CrespoParts/res/values-pt-rPT/strings.xml b/CrespoParts/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..3b32960
--- /dev/null
+++ b/CrespoParts/res/values-pt-rPT/strings.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Definições Nexus S</string>
+
+ <string name="category_screen_title">Definições WM8994 ( voodoo )</string>
+ <string name="color_tuning_title_head">Ajuste de Cor</string>
+ <string name="color_tuning_summary_head">Calibrar cor do ecrã</string>
+ <string name="color_red_title">Vermelho</string>
+ <string name="color_green_title">Verde</string>
+ <string name="color_blue_title">Azul</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Som</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Configuração do Altifalante Interno</string>
+ <string name="category_wm8994_signal_processing">Processamento de Sinal</string>
+ <string name="category_wm8994_headphone_amp">Amplificador de auscutador</string>
+ <string name="category_wm8994_codec_optimization">Optimização de Codec</string>
+ <string name="category_wm8994_dac_config">Definições de conversão Digital/Analógico</string>
+ <string name="category_wm8994_analog_path">Definições de roteamento Analógico</string>
+ <string name="category_wm8994_mic_settings">Definições de Microfone</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Definições de Som</string>
+ <string name="wm8994_settings_title_subhead">Definições de Som</string>
+ <string name="wm8994_settings_summary_head">Controlo avançado do processador de som WM8994</string>
+ <string name="pref_wm8994_control_enable_title">Activar controlo WM8994</string>
+ <string name="pref_wm8994_control_enable_summary">Activar controlo avançado para o processador de som WM8994</string>
+ <string name="pref_wm8994_speaker_tuning_title">Ajustar altifalante para música</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Reconfigurar equalizador de hardware para obter mais Bass/Boost</string>
+ <string name="pref_wm8994_mono_downmix_title">Downmix Mono</string>
+ <string name="pref_wm8994_mono_downmix_summary">Transforma estéreo sound em mono (para outputs estéreo, tais como headphones)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Expansão estéreo</string>
+ <string name="pref_wm8994_stereo_expansion_summary">"Expande" som estéreo através de processamento digital</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC directamente</string>
+ <string name="pref_wm8994_dac_direct_summary">Acede ao conversor digital/analógco directamente, evitando o misturador de canal. Produz áudio mais limpo (rácio de signal-noise mais baixo)</string>
+ <string name="pref_wm8994_dac_osr128_title">Som Hi-fi</string>
+ <string name="pref_wm8994_dac_osr128_summary">Conversor Digital-para-analógico com 128x de oversampling -- som mais limpo ao tocar música</string>
+ <string name="pref_wm8994_adc_osr128_title">Gravação Hi-fi</string>
+ <string name="pref_wm8994_adc_osr128_summary">Conversor Analógico-para-digital com 128x de oversampling -- aumenta a qualidade das gravações</string>
+ <string name="pref_wm8994_fll_tuning_title">Ligar ao relógio de áudio</string>
+ <string name="pref_wm8994_fll_tuning_summary">Usar o processador WM8994 como relógio para áudio -- aumenta a qualidade do som</string>
+
+ <string name="category_touchkey_title">Botões Capacitivos</string>
+ <string name="backlight_timeout_title_head">Temporizador Luz de Fundo</string>
+ <string name="backlight_timeout_summary_head">Ajusta o tempo que as teclas capacitivas demoram a desligar a sua luz de fundo</string>
+ <string name="blink_timeout_title_head">Temporizador de Intermitência</string>
+ <string name="blink_timeout_summary_head">Ajusta o tempo que as teclas demoram a desligar a retroiluminação intermitente após notificação.</string>
+
+ <string name="category_radio_title">Radio</string>
+ <string name="hspa_title_head">HSPA</string>
+ <string name="hspa_summary_head">Activar HSDPA/HSUPA</string>
+</resources>
diff --git a/CrespoParts/res/values-ru/arrays.xml b/CrespoParts/res/values-ru/arrays.xml
new file mode 100644
index 0000000..aa58f8b
--- /dev/null
+++ b/CrespoParts/res/values-ru/arrays.xml
@@ -0,0 +1,28 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2 секунды</item>
+ <item>По умолчанию (5 секунд)</item>
+ <item>10 секунд</item>
+ <item>15 секунд</item>
+ <item>20 секунд</item>
+ <item>30 секунд</item>
+ <item>Никогда</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries">
+ <item>1 минута</item>
+ <item>2 минуты</item>
+ <item>По умолчанию (5 минут)</item>
+ <item>10 минут</item>
+ <item>15 минут</item>
+ <item>30 минут</item>
+ <item>Никогда</item>
+ </string-array>
+
+ <string-array name="hspa_entries">
+ <item>Только UMTS</item>
+ <item>Только HSDPA</item>
+ <item>HSDPA + HSUPA</item>
+ </string-array>
+
+</resources>
diff --git a/CrespoParts/res/values-ru/strings.xml b/CrespoParts/res/values-ru/strings.xml
new file mode 100644
index 0000000..5b1adf2
--- /dev/null
+++ b/CrespoParts/res/values-ru/strings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Настройки Nexus S</string>
+
+ <string name="category_screen_title">Настройки WM8994 ( voodoo )</string>
+ <string name="color_tuning_title_head">Настройка умножителей цвета</string>
+ <string name="color_tuning_summary_head">Калибровка умножителей цветов экрана</string>
+ <string name="gamma_tuning_title_head">Настройка цветовой гаммы</string>
+ <string name="gamma_tuning_summary_head">Калибровка гамма-коррекции цвета</string>
+ <string name="color_red_title">Красный</string>
+ <string name="color_green_title">Зелёный</string>
+ <string name="color_blue_title">Синий</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Звук</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Настройка внутренних динамиков</string>
+ <string name="category_wm8994_signal_processing">Обработка сигналов</string>
+ <string name="category_wm8994_headphone_amp">Усиление наушников</string>
+ <string name="category_wm8994_codec_optimization">Оптимизация кодека</string>
+ <string name="category_wm8994_dac_config">Настройка цифрового/аналогового конвертера</string>
+ <string name="category_wm8994_analog_path">Настройки аналогового пути</string>
+ <string name="category_wm8994_mic_settings">Настройки микрофона</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Настройки звука</string>
+ <string name="wm8994_settings_title_subhead">Настройки звука</string>
+ <string name="wm8994_settings_summary_head">Расширенное управление звуковым процессором WM8994</string>
+ <string name="pref_wm8994_control_enable_title">Включить управление WM8994</string>
+ <string name="pref_wm8994_control_enable_summary">Включить расширенное управление звуковым процессором WM8994</string>
+ <string name="pref_wm8994_speaker_tuning_title">Настройка динамиков для воспроизведения музыки</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Перенастройка аппаратного эквалайзера для получения более низчких частот и сбалансированного звука</string>
+ <string name="pref_wm8994_mono_downmix_title">Конвертация в моно</string>
+ <string name="pref_wm8994_mono_downmix_summary">Конвертировать стереозвук в моно (для стереовыводы, например для наушников)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Расширение стерео</string>
+ <string name="pref_wm8994_stereo_expansion_summary">Расширить стереозвук через обработку цифровых сигналов</string>
+ <string name="pref_wm8994_dac_direct_title">Прямой D/AC</string>
+ <string name="pref_wm8994_dac_direct_summary">Доступ к цифровому/аналоговому преобразователю напрямую, минуя канальный микшер. Способствует чистому звуку (более низкое соотношение сигнал-шум)</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-fi воспроизведение</string>
+ <string name="pref_wm8994_dac_osr128_summary">128-передискретизация цифрово-аналогового преобразователя - чистый звук при воспроизведении музыки</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-fi запись</string>
+ <string name="pref_wm8994_adc_osr128_summary">128-передискретизация аналого-цифрового преобразователя - повышает качество записи</string>
+ <string name="pref_wm8994_fll_tuning_title">Настройка аудио-частот</string>
+ <string name="pref_wm8994_fll_tuning_summary">Использовать настроенные аудио-частоты WM8994 - улучшает качество звука</string>
+
+ <string name="category_touchkey_title">Сенсорные кнопки</string>
+ <string name="backlight_timeout_title_head">Таймаут подсветки</string>
+ <string name="backlight_timeout_summary_head">Как долго работает подсветка сенсорных кнопок</string>
+ <string name="blink_timeout_title_head">Таймаут мигания</string>
+ <string name="blink_timeout_summary_head">Как долго будут мигать сенсорные кнопки после уведомления</string>
+
+ <string name="category_radio_title">Радиомодуль</string>
+ <string name="hspa_title_head">HSPA</string>
+ <string name="hspa_summary_head">Включить HSDPA/HSUPA</string>
+</resources>
diff --git a/CrespoParts/res/values-tr/strings.xml b/CrespoParts/res/values-tr/strings.xml
new file mode 100644
index 0000000..469f5fd
--- /dev/null
+++ b/CrespoParts/res/values-tr/strings.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">Nexus S ayarları</string>
+
+ <string name="category_screen_title">WM8994 ayarları ( voodoo )</string>
+ <string name="color_tuning_title_head">Renk ayarı</string>
+ <string name="color_tuning_summary_head">Ekran rengi kalibrasyonu</string>
+ <string name="color_red_title">Kırmızı</string>
+ <string name="color_green_title">Yeşil</string>
+ <string name="color_blue_title">Mavi</string>
+
+ <!-- WM8994 Kontrol Ayarları -->
+ <string name="general_sound_title">Ses</string>
+ <!-- Kategoriler -->
+ <string name="category_wm8994_internal_speaker">Dahili hoparlör konfigürasyonu</string>
+ <string name="category_wm8994_signal_processing">Sinyal işleme</string>
+ <string name="category_wm8994_headphone_amp">Kulaklık amplifikatörü</string>
+ <string name="category_wm8994_codec_optimization">Codec optimizasyonu</string>
+ <string name="category_wm8994_dac_config">Dijital / Analog Dönüştürücü ayarları</string>
+ <string name="category_wm8994_analog_path">Analog yol konfigürasyonu</string>
+ <string name="category_wm8994_mic_settings">Mikrofon ayarları</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Ses ayarları</string>
+ <string name="wm8994_settings_title_subhead">Ses ayarları</string>
+ <string name="wm8994_settings_summary_head">WM8994 Ses işlemcisi donanımı gelişmiş kontrolü</string>
+ <string name="pref_wm8994_control_enable_title">WM8994 Kontrolünü etkinleştir</string>
+ <string name="pref_wm8994_control_enable_summary">WM8994 ses işlemcisi donanımı için gelişmiş denetimlerini etkinleştirme</string>
+ <string name="pref_wm8994_speaker_tuning_title">Müzik için hoparlör ayarı</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Daha fazla bas ve dengeli bir ses elde etmek için EQ donanımını yeniden yapılandırır</string>
+ <string name="pref_wm8994_mono_downmix_title">Mono indirgeme</string>
+ <string name="pref_wm8994_mono_downmix_summary">Stereo sesi monoya indirgeme (stereo çıkış, kulaklık gibi)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Stereo geliştirme</string>
+ <string name="pref_wm8994_stereo_expansion_summary">Dijital sinyal işleme üzerinden stereo ses "Gelistirme"</string>
+ <string name="pref_wm8994_dac_direct_title">D / AC direkt</string>
+ <string name="pref_wm8994_dac_direct_summary">Kanal mikser atlayarak, doğrudan, analog / dijital dönüştürücü erişim. Temiz ses (düşük sinyal-gürültü oranı) üretir.</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-fi oynatma</string>
+ <string name="pref_wm8994_dac_osr128_summary">Dijital-analog çevirici 128x örnekleme - Müzik çalarken daha temiz ses</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-fi kaydı</string>
+ <string name="pref_wm8994_adc_osr128_summary">Analog-dijital dönüştürücü 128x örnekleme -- kayıtların kalitesini artırır</string>
+ <string name="pref_wm8994_fll_tuning_title">Ayarlı ses saati</string>
+ <string name="pref_wm8994_fll_tuning_summary">WM8994 ses saati kaynağı ayarlı kullan - ses kalitesini artırır</string>
+
+ <string name="category_touchkey_title">Dokunmatik tuşlar</string>
+ <string name="backlight_timeout_title_head">Arka ışık zaman aşımı</string>
+ <string name="backlight_timeout_summary_head">Dokunmatik tuşa ışığı otomatik kapanmadan önceki gecikmeyi ayarlayın</string>
+ <string name="blink_timeout_title_head">Yanıp sönme zaman aşımı</string>
+ <string name="blink_timeout_summary_head">Bir bildirim sonrası dokunmatik tuşun yanıp söner arka ışığın otomatik kapanmadan önceki gecikmeyi ayarlayın.</string>
+
+</resources>
diff --git a/CrespoParts/res/values-zh-rCN/arrays.xml b/CrespoParts/res/values-zh-rCN/arrays.xml
new file mode 100644
index 0000000..ff3e52a
--- /dev/null
+++ b/CrespoParts/res/values-zh-rCN/arrays.xml
@@ -0,0 +1,34 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2秒</item>
+ <item>默认(5秒)</item>
+ <item>10秒</item>
+ <item>15秒</item>
+ <item>20秒</item>
+ <item>30秒</item>
+ <item>永不</item>
+ </string-array>
+
+ <!-- skipping untranslatable /resources:0/string-array:name=backlight_timeout_entries_values -->
+
+ <string-array name="blink_timeout_entries">
+ <item>1分钟</item>
+ <item>2分钟</item>
+ <item>默认(5分钟)</item>
+ <item>10分钟</item>
+ <item>15分钟</item>
+ <item>30分钟</item>
+ <item>永不</item>
+ </string-array>
+
+ <!-- skipping untranslatable /resources:0/string-array:name=blink_timeout_entries_values -->
+
+ <string-array name="hspa_entries">
+ <item>仅 UMTS</item>
+ <item>仅 HSDPA</item>
+ <item>HSDPA+HSUPA</item>
+ </string-array>
+
+ <!-- skipping untranslatable /resources:0/string-array:name=hspa_entries_values -->
+
+</resources>
diff --git a/CrespoParts/res/values-zh-rCN/strings.xml b/CrespoParts/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..78b1a56
--- /dev/null
+++ b/CrespoParts/res/values-zh-rCN/strings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Nexus S 设置</string>
+
+ <string name="category_screen_title">WM8994 设置(Voodoo)</string>
+ <string name="color_tuning_title_head">颜色增值</string>
+ <string name="color_tuning_summary_head">调整屏幕颜色增值</string>
+ <string name="gamma_tuning_title_head">伽玛颜色校正</string>
+ <string name="gamma_tuning_summary_head">调整伽玛颜色校正</string>
+ <string name="color_red_title">红</string>
+ <string name="color_green_title">绿</string>
+ <string name="color_blue_title">蓝</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">音效</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">內置喇叭设置</string>
+ <string name="category_wm8994_signal_processing">信号处理</string>
+ <string name="category_wm8994_headphone_amp">耳机扩音</string>
+ <string name="category_wm8994_codec_optimization">信号编解码器优化</string>
+ <string name="category_wm8994_dac_config">数模转换器设置</string>
+ <string name="category_wm8994_analog_path">模拟路径设置</string>
+ <string name="category_wm8994_mic_settings">麦克风设置</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">音效设置</string>
+ <string name="wm8994_settings_title_subhead">音效设置</string>
+ <string name="wm8994_settings_summary_head">WM8994 音效处理器硬件高级控制</string>
+ <string name="pref_wm8994_control_enable_title">开启 WM8994 控制</string>
+ <string name="pref_wm8994_control_enable_summary">开启 WM8994 音效处理器硬件的高级控制</string>
+ <string name="pref_wm8994_speaker_tuning_title">为音乐调整喇叭</string>
+ <string name="pref_wm8994_speaker_tuning_summary">重新设置硬件均衡器来获取更加低音及均衡的音效</string>
+ <string name="pref_wm8994_mono_downmix_title">单声道混合</string>
+ <string name="pref_wm8994_mono_downmix_summary">将立体声道混合成单声道(用于立体声道输出,例如耳机)</string>
+ <string name="pref_wm8994_stereo_expansion_title">立体声道扩展</string>
+ <string name="pref_wm8994_stereo_expansion_summary">通过信号处理来”扩展“立体声道</string>
+ <string name="pref_wm8994_dac_direct_title">直接数模转换</string>
+ <string name="pref_wm8994_dac_direct_summary">绕过频道混音器,直接访问数模转换器,来产生更清晰的音频(较低的信噪比)</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-Fi 播放</string>
+ <string name="pref_wm8994_dac_osr128_summary">数模转换器128倍过密采样,使播放音乐时的音质更加清晰</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-Fi 录音</string>
+ <string name="pref_wm8994_adc_osr128_summary">数模转换器128倍过密采样,提高录音品质</string>
+ <string name="pref_wm8994_fll_tuning_title">调整音频时钟</string>
+ <string name="pref_wm8994_fll_tuning_summary">使用调整过的 WM8994 音频时钟源,改善音效品质</string>
+
+ <string name="category_touchkey_title">触控键</string>
+ <string name="backlight_timeout_title_head">背光延时</string>
+ <string name="backlight_timeout_summary_head">调整触控键背光自动关闭前的延迟时间</string>
+ <string name="blink_timeout_title_head">闪烁延时</string>
+ <string name="blink_timeout_summary_head">调整触控键闪烁通知自动关闭前的延迟时间</string>
+
+ <string name="category_radio_title">无线电</string>
+ <string name="hspa_title_head">HSPA</string>
+ <string name="hspa_summary_head">启用 HSDPA/HSUPA</string>
+</resources>
diff --git a/CrespoParts/res/values-zh-rTW/arrays.xml b/CrespoParts/res/values-zh-rTW/arrays.xml
new file mode 100644
index 0000000..e4b3886
--- /dev/null
+++ b/CrespoParts/res/values-zh-rTW/arrays.xml
@@ -0,0 +1,34 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2秒</item>
+ <item>預設(5秒)</item>
+ <item>10秒</item>
+ <item>15秒</item>
+ <item>20秒</item>
+ <item>30秒</item>
+ <item>永不</item>
+ </string-array>
+
+ <!-- skipping untranslatable /resources:0/string-array:name=backlight_timeout_entries_values -->
+
+ <string-array name="blink_timeout_entries">
+ <item>1分鐘</item>
+ <item>2分鐘</item>
+ <item>預設(5分鐘)</item>
+ <item>10分鐘</item>
+ <item>15分鐘</item>
+ <item>30分鐘</item>
+ <item>永不</item>
+ </string-array>
+
+ <!-- skipping untranslatable /resources:0/string-array:name=blink_timeout_entries_values -->
+
+ <string-array name="hspa_entries">
+ <item>僅 UMTS</item>
+ <item>僅 HSDPA</item>
+ <item>HSDPA+HSUPA</item>
+ </string-array>
+
+ <!-- skipping untranslatable /resources:0/string-array:name=hspa_entries_values -->
+
+</resources>
diff --git a/CrespoParts/res/values-zh-rTW/strings.xml b/CrespoParts/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..0f475de
--- /dev/null
+++ b/CrespoParts/res/values-zh-rTW/strings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Nexus S 設定</string>
+
+ <string name="category_screen_title">WM8994 設定(Voodoo)</string>
+ <string name="color_tuning_title_head">色彩增值</string>
+ <string name="color_tuning_summary_head">調整螢幕色彩增值</string>
+ <string name="gamma_tuning_title_head">伽馬色彩校正</string>
+ <string name="gamma_tuning_summary_head">調整伽馬色彩校正</string>
+ <string name="color_red_title">紅</string>
+ <string name="color_green_title">綠</string>
+ <string name="color_blue_title">藍</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">音效</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">內置喇叭設定</string>
+ <string name="category_wm8994_signal_processing">訊號處理</string>
+ <string name="category_wm8994_headphone_amp">耳機擴音</string>
+ <string name="category_wm8994_codec_optimization">編碼優化</string>
+ <string name="category_wm8994_dac_config">數碼/類比轉換器設定</string>
+ <string name="category_wm8994_analog_path">類比路徑設定</string>
+ <string name="category_wm8994_mic_settings">麥克風設定</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">音效設定</string>
+ <string name="wm8994_settings_title_subhead">音效設定</string>
+ <string name="wm8994_settings_summary_head">WM8994 音效處理器硬體進階控制</string>
+ <string name="pref_wm8994_control_enable_title">啟用 WM8994 控制</string>
+ <string name="pref_wm8994_control_enable_summary">啟用 WM8994 音效處理器硬體的進階控制</string>
+ <string name="pref_wm8994_speaker_tuning_title">為音樂調整喇叭</string>
+ <string name="pref_wm8994_speaker_tuning_summary">重新設置硬體等化器以穫取更加低音及均衡的音效</string>
+ <string name="pref_wm8994_mono_downmix_title">單聲道混合</string>
+ <string name="pref_wm8994_mono_downmix_summary">將雙聲道混合成單聲道(用於雙聲道輸出,例如耳機)</string>
+ <string name="pref_wm8994_stereo_expansion_title">雙聲道擴展</string>
+ <string name="pref_wm8994_stereo_expansion_summary">透過數碼訊號處理,將雙聲道音效“擴展”</string>
+ <string name="pref_wm8994_dac_direct_title">直接轉換數碼/類比</string>
+ <string name="pref_wm8994_dac_direct_summary">繞過頻道混音器,直接存取數碼/類比轉換器,以產生更清晰音訊(較低的訊噪比)</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-Fi 播放</string>
+ <string name="pref_wm8994_dac_osr128_summary">數碼至類比的128倍過採樣轉換,使播放音樂時的音質更清晰</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-Fi 錄音</string>
+ <string name="pref_wm8994_adc_osr128_summary">類比至數碼的128倍過採樣轉換,提升錄音品質</string>
+ <string name="pref_wm8994_fll_tuning_title">調整音訊時脈</string>
+ <string name="pref_wm8994_fll_tuning_summary">使用調整了 WM8994 音訊時脈的原始碼,提升音效品質</string>
+
+ <string name="category_touchkey_title">觸控鍵</string>
+ <string name="backlight_timeout_title_head">背光逾時</string>
+ <string name="backlight_timeout_summary_head">調整觸控鍵背光自動關閉前的延遲時間</string>
+ <string name="blink_timeout_title_head">閃爍逾時</string>
+ <string name="blink_timeout_summary_head">調整觸控鍵閃爍通知自動關閉前的延遲時間</string>
+
+ <string name="category_radio_title">行動網路</string>
+ <string name="hspa_title_head">HSPA</string>
+ <string name="hspa_summary_head">啟用 HSDPA/HSUPA</string>
+</resources>
diff --git a/CrespoParts/res/values/arrays.xml b/CrespoParts/res/values/arrays.xml
new file mode 100644
index 0000000..874c983
--- /dev/null
+++ b/CrespoParts/res/values/arrays.xml
@@ -0,0 +1,54 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="backlight_timeout_entries">
+ <item>2 seconds</item>
+ <item>Default (5 seconds)</item>
+ <item>10 seconds</item>
+ <item>15 seconds</item>
+ <item>20 seconds</item>
+ <item>30 seconds</item>
+ <item>Never</item>
+ </string-array>
+
+ <string-array name="backlight_timeout_entries_values" translatable="false">
+ <item>2</item>
+ <item>5</item>
+ <item>10</item>
+ <item>15</item>
+ <item>20</item>
+ <item>30</item>
+ <item>0</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries">
+ <item>1 minute</item>
+ <item>2 minutes</item>
+ <item>Default (5 minutes)</item>
+ <item>10 minutes</item>
+ <item>15 minutes</item>
+ <item>30 minutes</item>
+ <item>Never</item>
+ </string-array>
+
+ <string-array name="blink_timeout_entries_values" translatable="false">
+ <item>1</item>
+ <item>2</item>
+ <item>5</item>
+ <item>10</item>
+ <item>15</item>
+ <item>30</item>
+ <item>0</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/CrespoParts/res/values/strings.xml b/CrespoParts/res/values/strings.xml
new file mode 100644
index 0000000..4355907
--- /dev/null
+++ b/CrespoParts/res/values/strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Nexus S Settings</string>
+
+ <!-- Page Headers -->
+ <string name="general_title">GENERAL</string>
+ <string name="display_title">DISPLAY</string>
+ <string name="sound_title">SOUND</string>
+
+ <string name="category_battery_title">Battery</string>
+ <string name="cpu_deepidle_title_head">Deep Idle</string>
+ <string name="cpu_deepidle_summary_head">Enables deep idle, intended to provide better battery life. (Experimental at this time!)</string>
+ <string name="category_screen_title">WM8994 Settings ( voodoo )</string>
+ <string name="color_tuning_title_head">Color Multipliers Tuning</string>
+ <string name="color_tuning_summary_head">Calibrate multipliers screen color</string>
+ <string name="gamma_tuning_title_head">Color Gamma Tuning</string>
+ <string name="gamma_tuning_summary_head">Calibrate gamma color correction</string>
+ <string name="color_red_title">Red</string>
+ <string name="color_green_title">Green</string>
+ <string name="color_blue_title">Blue</string>
+
+ <!-- WM8994 Control Settings -->
+ <string name="general_sound_title">Sound</string>
+ <!-- Categories -->
+ <string name="category_wm8994_internal_speaker">Internal Speaker Configuration</string>
+ <string name="category_wm8994_signal_processing">Signal Processing</string>
+ <string name="category_wm8994_headphone_amp">Headphone Amplifier</string>
+ <string name="category_wm8994_codec_optimization">Codec Optimization</string>
+ <string name="category_wm8994_dac_config">Digital/Analog Converter Settings</string>
+ <string name="category_wm8994_analog_path">Analog Path Configuration</string>
+ <string name="category_wm8994_mic_settings">Microphone Settings</string>
+ <!-- Titles/Summaries -->
+ <string name="wm8994_settings_title_head">Sound Settings</string>
+ <string name="wm8994_settings_title_subhead">Sound Settings</string>
+ <string name="wm8994_settings_summary_head">Advanced control of the WM8994 sound processor hardware</string>
+ <string name="pref_wm8994_control_enable_title">Enable WM8994 Control</string>
+ <string name="pref_wm8994_control_enable_summary">Enable advanced controls for the WM8994 sound processor hardware</string>
+ <string name="pref_wm8994_speaker_tuning_title">Tune speaker for music</string>
+ <string name="pref_wm8994_speaker_tuning_summary">Reconfigures the hardware EQ to get more bass and balanced sound</string>
+ <string name="pref_wm8994_mono_downmix_title">Mono downmix</string>
+ <string name="pref_wm8994_mono_downmix_summary">Downmix stereo sound to mono (for stereo outputs, such as headphones)</string>
+ <string name="pref_wm8994_stereo_expansion_title">Stereo expansion</string>
+ <string name="pref_wm8994_stereo_expansion_summary">"Expand" stereo sound via digital signal processing</string>
+ <string name="pref_wm8994_dac_direct_title">D/AC direct</string>
+ <string name="pref_wm8994_dac_direct_summary">Access digital/analog converter directly, bypassing the channel mixer. Produces cleaner audio (lower signal-to-noise ratio)</string>
+ <string name="pref_wm8994_dac_osr128_title">Hi-fi playback</string>
+ <string name="pref_wm8994_dac_osr128_summary">Digital-to-analog converter 128x oversampling -- cleaner sound when playing music</string>
+ <string name="pref_wm8994_adc_osr128_title">Hi-fi recording</string>
+ <string name="pref_wm8994_adc_osr128_summary">Analog-to-digital converter 128x oversampling -- increases quality of recordings</string>
+ <string name="pref_wm8994_fll_tuning_title">Tuned audio clock</string>
+ <string name="pref_wm8994_fll_tuning_summary">Use tuned WM8994 audio clock source -- improves quality of sound</string>
+
+ <string name="category_touchkey_title">Touch Keys</string>
+ <string name="backlight_timeout_title_head">Backlight Timeout</string>
+ <string name="backlight_timeout_summary_head">Adjust the delay before the touch key backlight automatically turns off</string>
+ <string name="blink_timeout_title_head">Blink Timeout</string>
+ <string name="blink_timeout_summary_head">Adjust the delay before the touch key blink backlight automatically turns off after a notification</string>
+
+ <string name="category_radio_title">Radio</string>
+ <string name="hspa_title_head">HSPA</string>
+ <string name="hspa_summary_head">Enable HSDPA/HSUPA</string>
+</resources>
diff --git a/CrespoParts/res/xml/display_preferences.xml b/CrespoParts/res/xml/display_preferences.xml
new file mode 100755
index 0000000..9772b20
--- /dev/null
+++ b/CrespoParts/res/xml/display_preferences.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/app_name">
+
+ <!-- Color tuning -->
+ <com.cyanogenmod.settings.device.ColorTuningPreference
+ android:key="color_tuning"
+ android:title="@string/color_tuning_title_head"
+ android:summary="@string/color_tuning_summary_head" />
+ <com.cyanogenmod.settings.device.GammaTuningPreference
+ android:key="gamma_tuning"
+ android:title="@string/gamma_tuning_title_head"
+ android:summary="@string/gamma_tuning_summary_head" />
+
+</PreferenceScreen>
diff --git a/CrespoParts/res/xml/general_preferences.xml b/CrespoParts/res/xml/general_preferences.xml
new file mode 100644
index 0000000..44c0b9c
--- /dev/null
+++ b/CrespoParts/res/xml/general_preferences.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- General settings -->
+ <PreferenceCategory android:key="category_battery"
+ android:title="@string/category_battery_title">
+
+ <CheckBoxPreference android:key="deepidle"
+ android:title="@string/cpu_deepidle_title_head"
+ android:summary="@string/cpu_deepidle_summary_head" />
+ </PreferenceCategory>
+
+ <!-- Touch key backlight timeout -->
+ <PreferenceCategory android:key="category_touchkey"
+ android:title="@string/category_touchkey_title">
+ <ListPreference
+ android:key="backlight_timeout"
+ android:title="@string/backlight_timeout_title_head"
+ android:summary="@string/backlight_timeout_summary_head"
+ android:entries="@array/backlight_timeout_entries"
+ android:entryValues="@array/backlight_timeout_entries_values"
+ android:defaultValue="5" />
+ <ListPreference
+ android:key="blink_timeout"
+ android:title="@string/blink_timeout_title_head"
+ android:summary="@string/blink_timeout_summary_head"
+ android:entries="@array/blink_timeout_entries"
+ android:entryValues="@array/blink_timeout_entries_values"
+ android:defaultValue="5" />
+ </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/CrespoParts/res/xml/main.xml b/CrespoParts/res/xml/main.xml
new file mode 100644
index 0000000..224cffd
--- /dev/null
+++ b/CrespoParts/res/xml/main.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <PreferenceCategory
+ android:title="@string/category_screen_title">
+ <!-- Color tuning -->
+ <com.cyanogenmod.settings.device.ColorTuningPreference
+ android:key="color_tuning"
+ android:title="@string/color_tuning_title_head"
+ android:summary="@string/color_tuning_summary_head" />
+ <com.cyanogenmod.settings.device.GammaTuningPreference
+ android:key="gamma_tuning"
+ android:title="@string/gamma_tuning_title_head"
+ android:summary="@string/gamma_tuning_summary_head" />
+ </PreferenceCategory>
+
+ <!-- WM8994 Control [TESTING] -->
+ <PreferenceScreen android:key="wm8994_settings"
+ android:title="@string/wm8994_settings_title_head"
+ android:summary="@string/wm8994_settings_summary_head">
+ <intent android:action="android.intent.action.MAIN"
+ android:targetPackage="com.cyanogenmod.settings.device"
+ android:targetClass="com.cyanogenmod.settings.device.WM8994ControlActivity" />
+ </PreferenceScreen>
+
+ <PreferenceCategory
+ android:title="@string/category_touchkey_title">
+ <!-- Touch key backlight timeout -->
+ <ListPreference
+ android:key="backlight_timeout"
+ android:title="@string/backlight_timeout_title_head"
+ android:summary="@string/backlight_timeout_summary_head"
+ android:entries="@array/backlight_timeout_entries"
+ android:entryValues="@array/backlight_timeout_entries_values"
+ android:defaultValue="5" />
+ <ListPreference
+ android:key="blink_timeout"
+ android:title="@string/blink_timeout_title_head"
+ android:summary="@string/blink_timeout_summary_head"
+ android:entries="@array/blink_timeout_entries"
+ android:entryValues="@array/blink_timeout_entries_values"
+ android:defaultValue="5" />
+ </PreferenceCategory>
+
+ <PreferenceCategory
+ android:key="category_radio"
+ android:title="@string/category_radio_title">
+ <!-- UMTS/HSDPA/HSUPA settings -->
+ <ListPreference
+ 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" />
+ </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/CrespoParts/res/xml/sound_preferences.xml b/CrespoParts/res/xml/sound_preferences.xml
new file mode 100755
index 0000000..f1007c6
--- /dev/null
+++ b/CrespoParts/res/xml/sound_preferences.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/app_name">
+
+ <CheckBoxPreference android:key="pref_wm8994_control_enable"
+ android:title="@string/pref_wm8994_control_enable_title"
+ android:summary="@string/pref_wm8994_control_enable_summary" />
+
+ <!-- Internal speaker options -->
+ <PreferenceCategory android:key="wm8994_internal_speaker_category"
+ android:title="@string/category_wm8994_internal_speaker">
+
+ <CheckBoxPreference android:key="pref_wm8994_speaker_tuning"
+ android:title="@string/pref_wm8994_speaker_tuning_title"
+ android:summary="@string/pref_wm8994_speaker_tuning_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+ <!-- Signal Processing -->
+ <PreferenceCategory android:key="wm8994_signal_processing_category"
+ android:title="@string/category_wm8994_signal_processing">
+
+ <CheckBoxPreference android:key="pref_wm8994_mono_downmix"
+ android:title="@string/pref_wm8994_mono_downmix_title"
+ android:summary="@string/pref_wm8994_mono_downmix_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ <CheckBoxPreference android:key="pref_wm8994_stereo_expansion"
+ android:title="@string/pref_wm8994_stereo_expansion_title"
+ android:summary="@string/pref_wm8994_stereo_expansion_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+ <!-- D/AC, A/DC -->
+ <PreferenceCategory android:key="wm8994_dac_config_category"
+ android:title="@string/category_wm8994_dac_config">
+
+ <CheckBoxPreference android:key="pref_wm8994_dac_direct"
+ android:title="@string/pref_wm8994_dac_direct_title"
+ android:summary="@string/pref_wm8994_dac_direct_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ <CheckBoxPreference android:key="pref_wm8994_dac_osr128"
+ android:title="@string/pref_wm8994_dac_osr128_title"
+ android:summary="@string/pref_wm8994_dac_osr128_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ <CheckBoxPreference android:key="pref_wm8994_adc_osr128"
+ android:title="@string/pref_wm8994_adc_osr128_title"
+ android:summary="@string/pref_wm8994_adc_osr128_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+ <!-- Codec settings -->
+ <PreferenceCategory android:key="wm8994_codec_optimization_category"
+ android:title="@string/category_wm8994_codec_optimization">
+
+ <CheckBoxPreference android:key="pref_wm8994_fll_tuning"
+ android:title="@string/pref_wm8994_fll_tuning_title"
+ android:summary="@string/pref_wm8994_fll_tuning_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/CrespoParts/res/xml/touch_preferences.xml b/CrespoParts/res/xml/touch_preferences.xml
new file mode 100755
index 0000000..21f2e16
--- /dev/null
+++ b/CrespoParts/res/xml/touch_preferences.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/app_name">
+
+ <!-- Touch key backlight timeout -->
+ <ListPreference
+ android:key="backlight_timeout"
+ android:title="@string/backlight_timeout_title_head"
+ android:summary="@string/backlight_timeout_summary_head"
+ android:entries="@array/backlight_timeout_entries"
+ android:entryValues="@array/backlight_timeout_entries_values"
+ android:defaultValue="5" />
+ <ListPreference
+ android:key="blink_timeout"
+ android:title="@string/blink_timeout_title_head"
+ android:summary="@string/blink_timeout_summary_head"
+ android:entries="@array/blink_timeout_entries"
+ android:entryValues="@array/blink_timeout_entries_values"
+ android:defaultValue="5" />
+
+</PreferenceScreen>
diff --git a/CrespoParts/res/xml/wm8994_settings.xml b/CrespoParts/res/xml/wm8994_settings.xml
new file mode 100644
index 0000000..984fd61
--- /dev/null
+++ b/CrespoParts/res/xml/wm8994_settings.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <!-- General settings -->
+ <PreferenceCategory android:key="general_category"
+ android:title="@string/general_sound_title">
+
+ <CheckBoxPreference android:key="pref_wm8994_control_enable"
+ android:title="@string/pref_wm8994_control_enable_title"
+ android:summary="@string/pref_wm8994_control_enable_summary" />
+ </PreferenceCategory>
+
+ <!-- Internal speaker options -->
+ <PreferenceCategory android:key="wm8994_internal_speaker_category"
+ android:title="@string/category_wm8994_internal_speaker">
+
+ <CheckBoxPreference android:key="pref_wm8994_speaker_tuning"
+ android:title="@string/pref_wm8994_speaker_tuning_title"
+ android:summary="@string/pref_wm8994_speaker_tuning_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+ <!-- Signal Processing -->
+ <PreferenceCategory android:key="wm8994_signal_processing_category"
+ android:title="@string/category_wm8994_signal_processing">
+
+ <CheckBoxPreference android:key="pref_wm8994_mono_downmix"
+ android:title="@string/pref_wm8994_mono_downmix_title"
+ android:summary="@string/pref_wm8994_mono_downmix_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ <CheckBoxPreference android:key="pref_wm8994_stereo_expansion"
+ android:title="@string/pref_wm8994_stereo_expansion_title"
+ android:summary="@string/pref_wm8994_stereo_expansion_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+ <!-- D/AC, A/DC -->
+ <PreferenceCategory android:key="wm8994_dac_config_category"
+ android:title="@string/category_wm8994_dac_config">
+
+ <CheckBoxPreference android:key="pref_wm8994_dac_direct"
+ android:title="@string/pref_wm8994_dac_direct_title"
+ android:summary="@string/pref_wm8994_dac_direct_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ <CheckBoxPreference android:key="pref_wm8994_dac_osr128"
+ android:title="@string/pref_wm8994_dac_osr128_title"
+ android:summary="@string/pref_wm8994_dac_osr128_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ <CheckBoxPreference android:key="pref_wm8994_adc_osr128"
+ android:title="@string/pref_wm8994_adc_osr128_title"
+ android:summary="@string/pref_wm8994_adc_osr128_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+ <!-- Codec settings -->
+ <PreferenceCategory android:key="wm8994_codec_optimization_category"
+ android:title="@string/category_wm8994_codec_optimization">
+
+ <CheckBoxPreference android:key="pref_wm8994_fll_tuning"
+ android:title="@string/pref_wm8994_fll_tuning_title"
+ android:summary="@string/pref_wm8994_fll_tuning_summary"
+ android:dependency="pref_wm8994_control_enable" />
+
+ </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java b/CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java
new file mode 100644
index 0000000..26d766e
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2011 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.content.SharedPreferences.Editor;
+import android.preference.DialogPreference;
+import android.preference.PreferenceManager;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+/**
+ * Special preference type that allows configuration of both the ring volume and
+ * notification volume.
+ */
+public class ColorTuningPreference extends DialogPreference {
+
+ private static final String TAG = "COLOR...";
+
+ enum Colors {
+ RED, GREEN, BLUE
+ };
+
+ private static final int[] SEEKBAR_ID = new int[] {
+ R.id.color_red_seekbar, R.id.color_green_seekbar, R.id.color_blue_seekbar
+ };
+
+ private static final int[] VALUE_DISPLAY_ID = new int[] {
+ R.id.color_red_value, R.id.color_green_value, R.id.color_blue_value
+ };
+
+ private static final String[] FILE_PATH = new String[] {
+ "/sys/class/misc/voodoo_color/red_multiplier",
+ "/sys/class/misc/voodoo_color/green_multiplier",
+ "/sys/class/misc/voodoo_color/blue_multiplier"
+ };
+
+ private ColorSeekBar mSeekBars[] = new ColorSeekBar[3];
+
+ // Align MAX_VALUE with Voodoo Control settings
+ private static final int MAX_VALUE = Integer.MAX_VALUE - 2;
+
+ // Track instances to know when to restore original color
+ // (when the orientation changes, a new dialog is created before the old one
+ // is destroyed)
+ private static int sInstances = 0;
+
+ public ColorTuningPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ setDialogLayoutResource(R.layout.preference_dialog_color_tuning);
+ }
+
+ @Override
+ protected void onBindDialogView(View view) {
+ super.onBindDialogView(view);
+
+ sInstances++;
+
+ for (int i = 0; i < SEEKBAR_ID.length; i++) {
+ SeekBar seekBar = (SeekBar) view.findViewById(SEEKBAR_ID[i]);
+ TextView valueDisplay = (TextView) view.findViewById(VALUE_DISPLAY_ID[i]);
+ mSeekBars[i] = new ColorSeekBar(seekBar, valueDisplay, FILE_PATH[i]);
+ }
+ }
+
+ @Override
+ protected void onDialogClosed(boolean positiveResult) {
+ super.onDialogClosed(positiveResult);
+
+ sInstances--;
+
+ if (positiveResult) {
+ for (ColorSeekBar csb : mSeekBars) {
+ csb.save();
+ }
+ } else if (sInstances == 0) {
+ for (ColorSeekBar csb : mSeekBars) {
+ csb.reset();
+ }
+ }
+ }
+
+ /**
+ * Restore screen color tuning 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);
+ for (String filePath : FILE_PATH) {
+ int iValue;
+ String sDefaultValue = Utils.readOneLine(filePath);
+ try {
+ iValue = sharedPrefs.getInt(filePath, Integer.parseInt(sDefaultValue));
+ } catch (NumberFormatException e) {
+ iValue = MAX_VALUE;
+ }
+ Utils.writeColor(filePath, iValue);
+ }
+ }
+
+ /**
+ * Check whether the running kernel supports color tuning or not.
+ *
+ * @return Whether color tuning is supported or not
+ */
+ public static boolean isSupported() {
+ boolean supported = true;
+ for (String filePath : FILE_PATH) {
+ if (!Utils.fileExists(filePath)) {
+ supported = false;
+ }
+ }
+
+ return supported;
+ }
+
+ class ColorSeekBar implements SeekBar.OnSeekBarChangeListener {
+
+ private String mFilePath;
+
+ private int mOriginal;
+
+ private SeekBar mSeekBar;
+
+ private TextView mValueDisplay;
+
+ public ColorSeekBar(SeekBar seekBar, TextView valueDisplay, String filePath) {
+ int iValue;
+
+ mSeekBar = seekBar;
+ mValueDisplay = valueDisplay;
+ mFilePath = filePath;
+
+ SharedPreferences sharedPreferences = getSharedPreferences();
+
+ // Read original value
+ if (Utils.fileExists(mFilePath)) {
+ String sDefaultValue = Utils.readOneLine(mFilePath);
+ iValue = (int) (Long.valueOf(sDefaultValue) / 2);
+ } else {
+ iValue = sharedPreferences.getInt(mFilePath, MAX_VALUE);
+ }
+ mOriginal = iValue;
+
+ mSeekBar.setMax(MAX_VALUE);
+ reset();
+ mSeekBar.setOnSeekBarChangeListener(this);
+ }
+
+ public void reset() {
+ mSeekBar.setProgress(mOriginal);
+ updateValue(mOriginal);
+ }
+
+ public void save() {
+ Editor editor = getEditor();
+ editor.putInt(mFilePath, mSeekBar.getProgress());
+ editor.commit();
+ }
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ Utils.writeColor(mFilePath, progress);
+ updateValue(progress);
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+ // Do nothing
+ }
+
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ // Do nothing
+ }
+
+ private void updateValue(int progress) {
+ mValueDisplay.setText(String.format("%.10f", (double) progress / MAX_VALUE));
+ }
+
+ }
+
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java b/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java
new file mode 100644
index 0000000..9fde229
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2011 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.ActionBar.TabListener;
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.support.v13.app.FragmentPagerAdapter;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.view.ViewPager;
+
+import com.cyanogenmod.settings.device.R;
+
+import java.util.ArrayList;
+
+public class DeviceSettings extends Activity {
+
+ 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_COLOR_TUNING = "color_tuning";
+ public static final String KEY_GAMMA_TUNING = "gamma_tuning";
+ public static final String KEY_BACKLIGHT_TIMEOUT = "backlight_timeout";
+ public static final String KEY_BLINK_TIMEOUT = "blink_timeout";
+ public static final String KEY_DEEPIDLE = "deepidle";
+ public static final String KEY_CATEGORY_RADIO = "category_radio";
+ public static final String KEY_HSPA = "hspa";
+
+ 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);
+
+ mTabsAdapter = new TabsAdapter(this, mViewPager);
+ mTabsAdapter.addTab(bar.newTab().setText(R.string.general_title),
+ GeneralFragmentActivity.class, null);
+ mTabsAdapter.addTab(bar.newTab().setText(R.string.display_title),
+ DisplayFragmentActivity.class, null);
+ mTabsAdapter.addTab(bar.newTab().setText(R.string.sound_title),
+ SoundFragmentActivity.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);
+ }
+
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+ mActionBar.setSelectedNavigationItem(position);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+ }
+
+ @Override
+ 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);
+ }
+ }
+ }
+
+ @Override
+ public void onTabUnselected(Tab tab, FragmentTransaction ft) {
+ }
+
+ @Override
+ public void onTabReselected(Tab tab, FragmentTransaction ft) {
+ }
+ }
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java b/CrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java
new file mode 100755
index 0000000..f4b1c78
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2011 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.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 DisplayFragmentActivity extends PreferenceFragment {
+
+ private ColorTuningPreference mColorTuning;
+ private GammaTuningPreference mGammaTuning;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addPreferencesFromResource(R.xml.display_preferences);
+
+ mColorTuning = (ColorTuningPreference) findPreference(DeviceSettings.KEY_COLOR_TUNING);
+ mColorTuning.setEnabled(ColorTuningPreference.isSupported());
+
+ mGammaTuning = (GammaTuningPreference) findPreference(DeviceSettings.KEY_GAMMA_TUNING);
+ mGammaTuning.setEnabled(ColorTuningPreference.isSupported());
+ }
+
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java b/CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java
new file mode 100644
index 0000000..aa092ae
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2011 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.content.SharedPreferences.Editor;
+import android.preference.DialogPreference;
+import android.preference.PreferenceManager;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+/**
+ * Special preference type that allows configuration of both the ring volume and
+ * notification volume.
+ */
+public class GammaTuningPreference extends DialogPreference {
+
+ private static final String TAG = "GAMMA...";
+
+ enum Colors {
+ RED, GREEN, BLUE
+ };
+
+ private static final int[] SEEKBAR_ID = new int[] {
+ R.id.gamma_red_seekbar, R.id.gamma_green_seekbar, R.id.gamma_blue_seekbar
+ };
+
+ private static final int[] VALUE_DISPLAY_ID = new int[] {
+ R.id.gamma_red_value, R.id.gamma_green_value, R.id.gamma_blue_value
+ };
+
+ private static final String[] FILE_PATH = new String[] {
+ "/sys/class/misc/voodoo_color/red_v1_offset",
+ "/sys/class/misc/voodoo_color/green_v1_offset",
+ "/sys/class/misc/voodoo_color/blue_v1_offset"
+ };
+
+ private GammaSeekBar mSeekBars[] = new GammaSeekBar[3];
+
+ private static final int MAX_VALUE = 80;
+
+ private static final int OFFSET_VALUE = 60;
+
+ // Track instances to know when to restore original color
+ // (when the orientation changes, a new dialog is created before the old one
+ // is destroyed)
+ private static int sInstances = 0;
+
+ public GammaTuningPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ setDialogLayoutResource(R.layout.preference_dialog_gamma_tuning);
+ }
+
+ @Override
+ protected void onBindDialogView(View view) {
+ super.onBindDialogView(view);
+
+ sInstances++;
+
+ for (int i = 0; i < SEEKBAR_ID.length; i++) {
+ SeekBar seekBar = (SeekBar) view.findViewById(SEEKBAR_ID[i]);
+ TextView valueDisplay = (TextView) view.findViewById(VALUE_DISPLAY_ID[i]);
+ mSeekBars[i] = new GammaSeekBar(seekBar, valueDisplay, FILE_PATH[i]);
+ }
+ }
+
+ @Override
+ protected void onDialogClosed(boolean positiveResult) {
+ super.onDialogClosed(positiveResult);
+
+ sInstances--;
+
+ if (positiveResult) {
+ for (GammaSeekBar csb : mSeekBars) {
+ csb.save();
+ }
+ } else if (sInstances == 0) {
+ for (GammaSeekBar csb : mSeekBars) {
+ csb.reset();
+ }
+ }
+ }
+
+ /**
+ * Restore screen color tuning 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);
+ for (String filePath : FILE_PATH) {
+ String sDefaultValue = Utils.readOneLine(filePath);
+ int iValue = sharedPrefs.getInt(filePath, Integer.valueOf(sDefaultValue));
+ Utils.writeValue(filePath, String.valueOf((long) iValue));
+ }
+ }
+
+ /**
+ * Check whether the running kernel supports color tuning or not.
+ *
+ * @return Whether color tuning is supported or not
+ */
+ public static boolean isSupported() {
+ boolean supported = true;
+ for (String filePath : FILE_PATH) {
+ if (!Utils.fileExists(filePath)) {
+ supported = false;
+ }
+ }
+
+ return supported;
+ }
+
+ class GammaSeekBar implements SeekBar.OnSeekBarChangeListener {
+
+ private String mFilePath;
+
+ private int mOriginal;
+
+ private SeekBar mSeekBar;
+
+ private TextView mValueDisplay;
+
+ public GammaSeekBar(SeekBar seekBar, TextView valueDisplay, String filePath) {
+ int iValue;
+
+ mSeekBar = seekBar;
+ mValueDisplay = valueDisplay;
+ mFilePath = filePath;
+
+ SharedPreferences sharedPreferences = getSharedPreferences();
+
+ // Read original value
+ if (Utils.fileExists(mFilePath)) {
+ String sDefaultValue = Utils.readOneLine(mFilePath);
+ iValue = Integer.valueOf(sDefaultValue);
+ } else {
+ iValue = MAX_VALUE - OFFSET_VALUE;
+ }
+ mOriginal = iValue;
+
+ mSeekBar.setMax(MAX_VALUE);
+ reset();
+ mSeekBar.setOnSeekBarChangeListener(this);
+ }
+
+ public void reset() {
+ int iValue;
+
+ iValue = mOriginal + OFFSET_VALUE;
+ mSeekBar.setProgress(iValue);
+ updateValue(mOriginal);
+ }
+
+ public void save() {
+ int iValue;
+
+ iValue = mSeekBar.getProgress() - OFFSET_VALUE;
+ Editor editor = getEditor();
+ editor.putInt(mFilePath, iValue);
+ editor.commit();
+ }
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ int iValue;
+
+ iValue = progress - OFFSET_VALUE;
+ Utils.writeValue(mFilePath, String.valueOf((long) iValue));
+ updateValue(iValue);
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+ // Do nothing
+ }
+
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ // Do nothing
+ }
+
+ private void updateValue(int progress) {
+ mValueDisplay.setText(String.format("%d", (int) progress));
+ }
+
+ }
+
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java b/CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java
new file mode 100644
index 0000000..1f08425
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/GeneralFragmentActivity.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2011 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 GeneralFragmentActivity extends PreferenceFragment {
+
+ private static final String DEEPIDLE_FILE = "/sys/class/misc/deepidle/enabled";
+ private static final String PREF_ENABLED = "1";
+ private static final String TAG = "CrespoParts_General";
+
+ private CheckBoxPreference mDeepIdle;
+ private ListPreference mBacklightTimeout;
+ private ListPreference mBlinkTimeout;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addPreferencesFromResource(R.xml.general_preferences);
+
+ PreferenceScreen prefSet = getPreferenceScreen();
+ mDeepIdle = (CheckBoxPreference) findPreference(DeviceSettings.KEY_DEEPIDLE);
+
+ if (isSupported(DEEPIDLE_FILE)) {
+ mDeepIdle.setChecked(PREF_ENABLED.equals(Utils.readOneLine(DEEPIDLE_FILE)));
+ } else {
+ mDeepIdle.setEnabled(false);
+ }
+
+ mBacklightTimeout = (ListPreference) findPreference(DeviceSettings.KEY_BACKLIGHT_TIMEOUT);
+ mBacklightTimeout.setEnabled(TouchKeyBacklightTimeout.isSupported());
+ mBacklightTimeout.setOnPreferenceChangeListener(new TouchKeyBacklightTimeout());
+
+ mBlinkTimeout = (ListPreference) findPreference(DeviceSettings.KEY_BLINK_TIMEOUT);
+ mBlinkTimeout.setEnabled(TouchKeyBlinkTimeout.isSupported());
+ mBlinkTimeout.setOnPreferenceChangeListener(new TouchKeyBlinkTimeout());
+
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+
+ String boxValue;
+ String key = preference.getKey();
+
+ Log.w(TAG, "key: " + key);
+
+ if (key.equals(DeviceSettings.KEY_DEEPIDLE)) {
+ final CheckBoxPreference chkPref = (CheckBoxPreference) preference;
+ boxValue = chkPref.isChecked() ? "1" : "0";
+ Utils.writeValue(DEEPIDLE_FILE, boxValue);
+ }
+
+ return true;
+ }
+
+ public static boolean isSupported(String FILE) {
+ return Utils.fileExists(FILE);
+ }
+
+ public static void restore(Context context) {
+ SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+ if (isSupported(DEEPIDLE_FILE)) {
+ String sDefaultValue = Utils.readOneLine(DEEPIDLE_FILE);
+ Utils.writeValue(DEEPIDLE_FILE, sharedPrefs.getBoolean(DeviceSettings.KEY_DEEPIDLE, PREF_ENABLED.equals(sDefaultValue)));
+ }
+ }
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/Hspa.java b/CrespoParts/src/com/cyanogenmod/settings/device/Hspa.java
new file mode 100644
index 0000000..2e68da2
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/Hspa.java
@@ -0,0 +1,57 @@
+package com.cyanogenmod.settings.device;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.SystemProperties;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceChangeListener;
+import android.preference.PreferenceManager;
+
+public class Hspa implements OnPreferenceChangeListener {
+
+ private static final String APK_FILE = "/system/app/SamsungServiceMode.apk";
+ private static final String HSPA_PROP = "ro.crespoparts.rild.hspa";
+ private static final String HSPA_PROP_ENABLED = "1";
+
+ private Context mCtx;
+
+ public Hspa(Context context) {
+ mCtx = context;
+ }
+
+ public static boolean isSupported() {
+ String mHspa = SystemProperties.get(HSPA_PROP,"0");
+ if (mHspa.equals(HSPA_PROP_ENABLED)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * 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"));
+ }
+
+ @Override
+ 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/CrespoParts/src/com/cyanogenmod/settings/device/SoundFragmentActivity.java b/CrespoParts/src/com/cyanogenmod/settings/device/SoundFragmentActivity.java
new file mode 100755
index 0000000..77b76e6
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/SoundFragmentActivity.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2011 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.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 SoundFragmentActivity extends PreferenceFragment {
+
+ public static final String aOptionControl[][] = {
+ {"/sys/class/misc/voodoo_sound_control/enable","pref_wm8994_control_enable"},
+ {"/sys/class/misc/voodoo_sound/speaker_tuning","pref_wm8994_speaker_tuning"},
+ {"/sys/class/misc/voodoo_sound/mono_downmix","pref_wm8994_mono_downmix"},
+ {"/sys/class/misc/voodoo_sound/stereo_expansion","pref_wm8994_stereo_expansion"},
+ {"/sys/class/misc/voodoo_sound/dac_direct","pref_wm8994_dac_direct"},
+ {"/sys/class/misc/voodoo_sound/dac_osr128","pref_wm8994_dac_osr128"},
+ {"/sys/class/misc/voodoo_sound/adc_osr128","pref_wm8994_adc_osr128"},
+ {"/sys/class/misc/voodoo_sound/fll_tuning","pref_wm8994_fll_tuning"}
+ };
+ private static final Integer iTotalOptions = aOptionControl.length;
+ private CheckBoxPreference cbpStatus[] = new CheckBoxPreference[iTotalOptions];
+
+ // Misc
+ private static final String PREF_ENABLED = "1";
+ private static final String TAG = "CrespoParts_WM8994ControlSound";
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addPreferencesFromResource(R.xml.sound_preferences);
+
+ PreferenceScreen prefSet = getPreferenceScreen();
+
+ Integer iPosition;
+ for(iPosition=0;iPosition<iTotalOptions;iPosition++) {
+ if (isSupported(aOptionControl[iPosition][0])) {
+ cbpStatus[iPosition] = (CheckBoxPreference) prefSet.findPreference(aOptionControl[iPosition][1]);
+ cbpStatus[iPosition].setChecked(PREF_ENABLED.equals(Utils.readOneLine(aOptionControl[iPosition][0])));
+ }
+ }
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+
+ Integer iPosition;
+ String boxValue;
+ for(iPosition=0;iPosition<iTotalOptions;iPosition++) {
+ if (preference == cbpStatus[iPosition]) {
+ Log.d(TAG,"Procesando Salida: " + aOptionControl[iPosition][1] + " .. " + aOptionControl[iPosition][0]);
+ boxValue = cbpStatus[iPosition].isChecked() ? "1" : "0";
+ Utils.writeValue(aOptionControl[iPosition][0], boxValue);
+ }
+ }
+
+ return true;
+ }
+
+ public static boolean isSupported(String FILE) {
+ return Utils.fileExists(FILE);
+ }
+
+ public static void restore(Context context) {
+
+ Integer iPosition;
+ for(iPosition=0;iPosition<iTotalOptions;iPosition++) {
+ if (isSupported(aOptionControl[iPosition][0])) {
+ SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+ Utils.writeValue(aOptionControl[iPosition][0], sharedPrefs.getBoolean(aOptionControl[iPosition][1], PREF_ENABLED.equals(Utils.readOneLine(aOptionControl[iPosition][0]))));
+ }
+ }
+ }
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/Startup.java b/CrespoParts/src/com/cyanogenmod/settings/device/Startup.java
new file mode 100644
index 0000000..0ed5911
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/Startup.java
@@ -0,0 +1,20 @@
+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) {
+ GeneralFragmentActivity.restore(context);
+ ColorTuningPreference.restore(context);
+ GammaTuningPreference.restore(context);
+ TouchKeyBacklightTimeout.restore(context);
+ SoundFragmentActivity.restore(context);
+ if (Hspa.isSupported()) {
+ Hspa.restore(context);
+ }
+ }
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/TouchFragmentActivity.java b/CrespoParts/src/com/cyanogenmod/settings/device/TouchFragmentActivity.java
new file mode 100755
index 0000000..928e2de
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/TouchFragmentActivity.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2011 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 TouchFragmentActivity extends PreferenceFragment {
+
+ private ListPreference mBacklightTimeout;
+ private ListPreference mBlinkTimeout;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ addPreferencesFromResource(R.xml.touch_preferences);
+
+ mBacklightTimeout = (ListPreference) findPreference(DeviceSettings.KEY_BACKLIGHT_TIMEOUT);
+ mBacklightTimeout.setEnabled(TouchKeyBacklightTimeout.isSupported());
+ mBacklightTimeout.setOnPreferenceChangeListener(new TouchKeyBacklightTimeout());
+
+ mBlinkTimeout = (ListPreference) findPreference(DeviceSettings.KEY_BLINK_TIMEOUT);
+ mBlinkTimeout.setEnabled(TouchKeyBacklightTimeout.isSupported());
+ mBlinkTimeout.setOnPreferenceChangeListener(new TouchKeyBlinkTimeout());
+ }
+
+}
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBacklightTimeout.java b/CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBacklightTimeout.java
new file mode 100644
index 0000000..e1f06c7
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBacklightTimeout.java
@@ -0,0 +1,36 @@
+package com.cyanogenmod.settings.device;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceChangeListener;
+import android.preference.PreferenceManager;
+
+public class TouchKeyBacklightTimeout implements OnPreferenceChangeListener {
+
+ private static final String FILE = "/sys/class/misc/notification/bl_timeout";
+
+ public static boolean isSupported() {
+ return Utils.fileExists(FILE);
+ }
+
+ /**
+ * Restore backlight timeout 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_BACKLIGHT_TIMEOUT, "5"));
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ Utils.writeValue(FILE, (String) newValue);
+ return true;
+ }
+
+} \ No newline at end of file
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBlinkTimeout.java b/CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBlinkTimeout.java
new file mode 100644
index 0000000..ae75af9
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/TouchKeyBlinkTimeout.java
@@ -0,0 +1,36 @@
+package com.cyanogenmod.settings.device;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceChangeListener;
+import android.preference.PreferenceManager;
+
+public class TouchKeyBlinkTimeout implements OnPreferenceChangeListener {
+
+ private static final String FILE = "/sys/class/misc/notification/blinktimeout";
+
+ public static boolean isSupported() {
+ return Utils.fileExists(FILE);
+ }
+
+ /**
+ * Restore backlight timeout 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_BLINK_TIMEOUT, "5"));
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ Utils.writeValue(FILE, (String) newValue);
+ return true;
+ }
+
+} \ No newline at end of file
diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/Utils.java b/CrespoParts/src/com/cyanogenmod/settings/device/Utils.java
new file mode 100644
index 0000000..6b9c0d3
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/settings/device/Utils.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2011 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;
+
+public class Utils {
+ private static final String TAG = "CrespoParts_Utils";
+ private static final String TAG_READ = "CrespoParts_Utils_Read";
+ private static final String TAG_WRITE = "CrespoParts_Utils_Write";
+
+ /**
+ * 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();
+ }
+
+ // 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;
+ }
+}