summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2011-11-20 21:58:36 -0800
committerKoushik Dutta <koushd@gmail.com>2011-11-20 21:58:36 -0800
commit4aefda8d63e0cc887366adf3cc1347af84dfb729 (patch)
treeb2c88ec0192b222f12e2d9b78ddf625142d116f5
parent16754dd56552e914576971ddc53ef852ca84244c (diff)
downloaddevice_samsung_crespo-4aefda8d63e0cc887366adf3cc1347af84dfb729.tar.gz
device_samsung_crespo-4aefda8d63e0cc887366adf3cc1347af84dfb729.tar.bz2
device_samsung_crespo-4aefda8d63e0cc887366adf3cc1347af84dfb729.zip
squash changes
-rwxr-xr-xBoardConfig.mk4
-rwxr-xr-xBoardConfigCommon.mk4
-rw-r--r--CrespoParts/Android.mk13
-rw-r--r--CrespoParts/AndroidManifest.xml24
-rw-r--r--CrespoParts/res/drawable/color_tuning_preview.xml9
-rw-r--r--CrespoParts/res/layout/preference_dialog_color_tuning.xml92
-rw-r--r--CrespoParts/res/layout/preference_dialog_gamma_tuning.xml92
-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-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-tr/strings.xml50
-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.xml54
-rw-r--r--CrespoParts/res/xml/main.xml58
-rw-r--r--CrespoParts/res/xml/wm8994_settings.xml72
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/ColorTuningPreference.java173
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/CrespoParts.java59
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/GammaTuningPreference.java186
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java57
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/Startup.java19
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/TouchKeyBacklightTimeout.java36
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/TouchKeyBlinkTimeout.java36
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/Utils.java94
-rw-r--r--CrespoParts/src/com/cyanogenmod/CrespoParts/WM8994ControlActivity.java107
-rw-r--r--bcm4329.kobin272296 -> 272744 bytes
-rw-r--r--board-info.txt4
-rw-r--r--device_base.mk11
-rwxr-xr-xinit.herring.rc5
-rwxr-xr-xkernelbin2129464 -> 2152236 bytes
-rwxr-xr-xlibcamera/SecCamera.cpp2
-rwxr-xr-xliblight/lights.c59
-rw-r--r--overlay/packages/apps/CMParts/res/values/config.xml10
-rw-r--r--overlay/packages/apps/Camera/res/values/config.xml25
-rw-r--r--overlay/packages/apps/Torch/res/values/config.xml24
-rw-r--r--scsi_wait_scan.kobin25264 -> 25244 bytes
-rw-r--r--system.prop3
45 files changed, 1964 insertions, 16 deletions
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 0293377..685d0c6 100755
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -25,8 +25,8 @@ BOARD_USES_LIBSECRIL_STUB := true
BOARD_NO_PAGE_FLIPPING := true
BOARD_NO_32BPP := true
-#Kernel Panic Fix
-ARCH_ARM_HAVE_ARMV7A_BUG := true
+# Enable NFC
+BOARD_HAVE_NFC := true
# Use the non-open-source parts, if they're present
-include vendor/samsung/crespo/BoardConfigVendor.mk
diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk
index f398a85..f980588 100755
--- a/BoardConfigCommon.mk
+++ b/BoardConfigCommon.mk
@@ -62,6 +62,10 @@ BOARD_SYSTEMIMAGE_PARTITION_SIZE := 536870912
BOARD_USERDATAIMAGE_PARTITION_SIZE := 1073741824
BOARD_FLASH_BLOCK_SIZE := 4096
+# FPU compilation flags
+TARGET_GLOBAL_CFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
+TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
+
# Connectivity - Wi-Fi
WPA_SUPPLICANT_VERSION := VER_0_6_X
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
diff --git a/CrespoParts/Android.mk b/CrespoParts/Android.mk
new file mode 100644
index 0000000..0ea4504
--- /dev/null
+++ b/CrespoParts/Android.mk
@@ -0,0 +1,13 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+
+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..681dc51
--- /dev/null
+++ b/CrespoParts/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.cyanogenmod.CrespoParts" 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=".CrespoParts"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="com.cyanogenmod.action.LAUNCH_DEVICE_SETTINGS" />
+ </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=".WM8994ControlActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
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/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/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-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-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-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..7c3d2eb
--- /dev/null
+++ b/CrespoParts/res/values/strings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Nexus S Settings</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/main.xml b/CrespoParts/res/xml/main.xml
new file mode 100644
index 0000000..7d785d4
--- /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.CrespoParts.ColorTuningPreference
+ android:key="color_tuning"
+ android:title="@string/color_tuning_title_head"
+ android:summary="@string/color_tuning_summary_head" />
+ <com.cyanogenmod.CrespoParts.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.CrespoParts"
+ android:targetClass="com.cyanogenmod.CrespoParts.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/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/CrespoParts/ColorTuningPreference.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/ColorTuningPreference.java
new file mode 100644
index 0000000..4eb5f88
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/ColorTuningPreference.java
@@ -0,0 +1,173 @@
+package com.cyanogenmod.CrespoParts;
+
+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 {
+
+ 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];
+
+ private static final int MAX_VALUE = Integer.MAX_VALUE;
+
+ // 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 value = sharedPrefs.getInt(filePath, MAX_VALUE);
+ Utils.writeColor(filePath, value);
+ }
+ }
+
+ /**
+ * 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) {
+ mSeekBar = seekBar;
+ mValueDisplay = valueDisplay;
+ mFilePath = filePath;
+
+ // Read original value
+ SharedPreferences sharedPreferences = getSharedPreferences();
+ mOriginal = sharedPreferences.getInt(mFilePath, MAX_VALUE);
+
+ seekBar.setMax(MAX_VALUE);
+ reset();
+ seekBar.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/CrespoParts/CrespoParts.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/CrespoParts.java
new file mode 100644
index 0000000..c8ce364
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/CrespoParts.java
@@ -0,0 +1,59 @@
+package com.cyanogenmod.CrespoParts;
+
+import android.os.Bundle;
+import android.preference.ListPreference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceCategory;
+import android.preference.PreferenceScreen;
+
+public class CrespoParts extends PreferenceActivity {
+
+ 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_CATEGORY_RADIO = "category_radio";
+ public static final String KEY_HSPA = "hspa";
+
+ private ColorTuningPreference mColorTuning;
+ private GammaTuningPreference mGammaTuning;
+ private ListPreference mBacklightTimeout;
+ private ListPreference mBlinkTimeout;
+ private ListPreference mHspa;
+ private PreferenceCategory mHsapCategory;
+ private PreferenceScreen mPreferenceScreen;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.main);
+
+ mColorTuning = (ColorTuningPreference) findPreference(KEY_COLOR_TUNING);
+ mColorTuning.setEnabled(ColorTuningPreference.isSupported());
+
+ mGammaTuning = (GammaTuningPreference) findPreference(KEY_GAMMA_TUNING);
+ mGammaTuning.setEnabled(ColorTuningPreference.isSupported());
+
+ mBacklightTimeout = (ListPreference) findPreference(KEY_BACKLIGHT_TIMEOUT);
+ mBacklightTimeout.setEnabled(TouchKeyBacklightTimeout.isSupported());
+ mBacklightTimeout.setOnPreferenceChangeListener(new TouchKeyBacklightTimeout());
+
+ mBlinkTimeout = (ListPreference) findPreference(KEY_BLINK_TIMEOUT);
+ mBlinkTimeout.setEnabled(TouchKeyBacklightTimeout.isSupported());
+ mBlinkTimeout.setOnPreferenceChangeListener(new TouchKeyBlinkTimeout());
+
+ mHspa = (ListPreference) findPreference(KEY_HSPA);
+
+ if (Hspa.isSupported()) {
+ mHspa.setEnabled(true);
+ mHspa.setOnPreferenceChangeListener(new Hspa(this));
+ } else {
+ mHsapCategory = (PreferenceCategory) findPreference(KEY_CATEGORY_RADIO);
+ mPreferenceScreen = getPreferenceScreen();
+
+ mHspa.setEnabled(false);
+ mHsapCategory.removePreference(mHspa);
+ mPreferenceScreen.removePreference(mHsapCategory);
+ }
+ }
+}
diff --git a/CrespoParts/src/com/cyanogenmod/CrespoParts/GammaTuningPreference.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/GammaTuningPreference.java
new file mode 100644
index 0000000..28edb8f
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/GammaTuningPreference.java
@@ -0,0 +1,186 @@
+package com.cyanogenmod.CrespoParts;
+
+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;
+
+ // 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) {
+ mSeekBar = seekBar;
+ mValueDisplay = valueDisplay;
+ mFilePath = filePath;
+
+ // Read original value
+ SharedPreferences sharedPreferences = getSharedPreferences();
+ mOriginal = sharedPreferences.getInt(mFilePath, MAX_VALUE);
+
+ seekBar.setMax(MAX_VALUE);
+
+ reset();
+ seekBar.setOnSeekBarChangeListener(this);
+ }
+
+ public void reset() {
+ int iValue;
+
+ iValue = mOriginal+60;
+ mSeekBar.setProgress(iValue);
+ updateValue(mOriginal);
+ }
+
+ public void save() {
+ int iValue;
+
+ iValue = mSeekBar.getProgress()-60;
+ Editor editor = getEditor();
+ editor.putInt(mFilePath, iValue);
+ editor.commit();
+ }
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress,
+ boolean fromUser) {
+ int iValue;
+
+ iValue = progress-60;
+ 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/CrespoParts/Hspa.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java
new file mode 100644
index 0000000..5f85302
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/Hspa.java
@@ -0,0 +1,57 @@
+package com.cyanogenmod.CrespoParts;
+
+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(CrespoParts.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/CrespoParts/Startup.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/Startup.java
new file mode 100644
index 0000000..5cb715a
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/Startup.java
@@ -0,0 +1,19 @@
+package com.cyanogenmod.CrespoParts;
+
+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) {
+ ColorTuningPreference.restore(context);
+ GammaTuningPreference.restore(context);
+ TouchKeyBacklightTimeout.restore(context);
+ WM8994ControlActivity.restore(context);
+ if (Hspa.isSupported()) {
+ Hspa.restore(context);
+ }
+ }
+}
diff --git a/CrespoParts/src/com/cyanogenmod/CrespoParts/TouchKeyBacklightTimeout.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/TouchKeyBacklightTimeout.java
new file mode 100644
index 0000000..c07f042
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/TouchKeyBacklightTimeout.java
@@ -0,0 +1,36 @@
+package com.cyanogenmod.CrespoParts;
+
+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(CrespoParts.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/CrespoParts/TouchKeyBlinkTimeout.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/TouchKeyBlinkTimeout.java
new file mode 100644
index 0000000..3fdcf4d
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/TouchKeyBlinkTimeout.java
@@ -0,0 +1,36 @@
+package com.cyanogenmod.CrespoParts;
+
+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(CrespoParts.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/CrespoParts/Utils.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/Utils.java
new file mode 100644
index 0000000..eb7dc57
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/Utils.java
@@ -0,0 +1,94 @@
+package com.cyanogenmod.CrespoParts;
+
+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 android.util.Log;
+
+public class Utils {
+ private static final String TAG = "CrespoParts_Utils";
+
+ /**
+ * Write a string value to the specified file.
+ * @param filename The filename
+ * @param value The value
+ */
+ public static void writeValue(String filename, String value) {
+ try {
+ FileOutputStream fos = new FileOutputStream(new File(filename));
+ fos.write(value.getBytes());
+ fos.flush();
+ fos.getFD().sync();
+ fos.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Write a string value to the specified file.
+ * @param filename The filename
+ * @param value The value
+ */
+ public static void writeValue(String filename, Boolean value) {
+ try {
+ String sEnvia;
+ FileOutputStream fos = new FileOutputStream(new File(filename));
+ if(value)
+ sEnvia = "1";
+ else
+ sEnvia = "0";
+ fos.write(sEnvia.getBytes());
+ fos.flush();
+ fos.getFD().sync();
+ fos.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 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 {
+ brBuffer.close();
+ }
+ } catch (Exception e) {
+ Log.e(TAG, "IO Exception when reading /sys/ file", e);
+ }
+ return sLine;
+ }
+}
diff --git a/CrespoParts/src/com/cyanogenmod/CrespoParts/WM8994ControlActivity.java b/CrespoParts/src/com/cyanogenmod/CrespoParts/WM8994ControlActivity.java
new file mode 100644
index 0000000..cde224c
--- /dev/null
+++ b/CrespoParts/src/com/cyanogenmod/CrespoParts/WM8994ControlActivity.java
@@ -0,0 +1,107 @@
+/*
+ * 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.CrespoParts;
+
+import com.cyanogenmod.CrespoParts.R;
+
+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.PreferenceManager;
+import android.preference.PreferenceScreen;
+import android.util.Log;
+
+// WM8994 sound control stuff
+public class WM8994ControlActivity extends PreferenceActivity /*implements
+ Preference.OnPreferenceChangeListener */{
+
+ 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
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setTitle(R.string.wm8994_settings_title_subhead);
+ addPreferencesFromResource(R.xml.wm8994_settings);
+
+ PreferenceScreen prefSet = getPreferenceScreen();
+
+ // Set status value for all options created
+ 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])));
+ }
+ }
+ }
+
+ // Preference change action for check boxes
+ @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);
+ }
+
+ /**
+ * Restore Voodoo Sound options setting from SharedPreferences. (Write to kernel.)
+ * @param context The context to read the SharedPreferences from
+ */
+ public static void restore(Context context) {
+
+ // Restore all
+ 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], true));
+ }
+ }
+ }
+}
diff --git a/bcm4329.ko b/bcm4329.ko
index 90cc6a0..81ac86a 100644
--- a/bcm4329.ko
+++ b/bcm4329.ko
Binary files differ
diff --git a/board-info.txt b/board-info.txt
index 5824ec3..9ce401c 100644
--- a/board-info.txt
+++ b/board-info.txt
@@ -1,3 +1,3 @@
require board=herring
-require version-bootloader=I9020XXJK1|I9020XXKA3
-require version-baseband=I9020XXJK8|I9020XXKB1|I9020XXKD1|I9020XXKF1|I9020UCKB2|I9020UCKD1|I9020UCKF1|I9020KRKB3|M200KRKC1
+require version-bootloader=I9020XXJK1|I9020XXKA3|I9020XXKI1
+require version-baseband=I9020XXJK8|I9020XXKB1|I9020XXKD1|I9020XXKF1|I9020XXKI1|I9020UCKB2|I9020UCKD1|I9020UCKF1|I9020KRKB3|M200KRKC1
diff --git a/device_base.mk b/device_base.mk
index 350b01d..6d0d911 100644
--- a/device_base.mk
+++ b/device_base.mk
@@ -39,7 +39,7 @@
# These is the hardware-specific overlay, which points to the location
# of hardware-specific resource overrides, typically the frameworks and
# application settings that are stored in resourced.
-DEVICE_PACKAGE_OVERLAYS := device/samsung/crespo/overlay
+DEVICE_PACKAGE_OVERLAYS += device/samsung/crespo/overlay
# These are the hardware-specific configuration files
PRODUCT_COPY_FILES := \
@@ -90,6 +90,11 @@ PRODUCT_PACKAGES += \
overlay.s5pc110 \
sensors.herring
+# Samsung Specific tools
+PRODUCT_PACKAGES += \
+ SamsungServiceMode \
+ CrespoParts
+
# Libs
PRODUCT_PACKAGES += \
libcamera \
@@ -131,7 +136,7 @@ PRODUCT_PROPERTY_OVERRIDES := \
PRODUCT_PROPERTY_OVERRIDES += \
wifi.interface=eth0 \
wifi.supplicant_scan_interval=15 \
- dalvik.vm.heapsize=32m
+ dalvik.vm.heapsize=48m
# we have enough storage space to hold precise GC data
PRODUCT_TAGS += dalvik.gc.type-precise
@@ -140,7 +145,7 @@ PRODUCT_TAGS += dalvik.gc.type-precise
# the the build-time selection of resources). The product definitions including
# this file must pay attention to the fact that the first entry in the final
# PRODUCT_LOCALES expansion must not be a density.
-PRODUCT_LOCALES := hdpi
+PRODUCT_LOCALES += hdpi
ifeq ($(TARGET_PREBUILT_WIFI_MODULE),)
diff --git a/init.herring.rc b/init.herring.rc
index 588d078..34a26db 100755
--- a/init.herring.rc
+++ b/init.herring.rc
@@ -16,11 +16,6 @@ on boot
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
-# Dimmer, and others enabled permissions
- chmod 700 /sys/class/misc/backlightdimmer/enabled
- chmod 700 /sys/class/misc/screendimmer/enabled
- chmod 700 /sys/class/misc/touchwake/enabled
-
# phone
setprop ro.telephony.call_ring.multiple 0
diff --git a/kernel b/kernel
index 5065246..68606e6 100755
--- a/kernel
+++ b/kernel
Binary files differ
diff --git a/libcamera/SecCamera.cpp b/libcamera/SecCamera.cpp
index 4d0705a..5b51d31 100755
--- a/libcamera/SecCamera.cpp
+++ b/libcamera/SecCamera.cpp
@@ -670,7 +670,7 @@ int SecCamera::initCamera(int index)
}
}
- LOGE("initCamera: m_cam_fd(%d), m_jpeg_fd(%d)", m_cam_fd, m_jpeg_fd);
+ LOGD("initCamera: m_cam_fd(%d), m_jpeg_fd(%d)", m_cam_fd, m_jpeg_fd);
ret = fimc_v4l2_querycap(m_cam_fd);
CHECK(ret);
diff --git a/liblight/lights.c b/liblight/lights.c
index ee6416a..28b7599 100755
--- a/liblight/lights.c
+++ b/liblight/lights.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2011 <kang@insecure.ws>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +15,7 @@
* limitations under the License.
*/
+// #define LOG_NDEBUG 0
#define LOG_TAG "lights"
#include <cutils/log.h>
#include <stdint.h>
@@ -29,13 +31,12 @@ static pthread_once_t g_init = PTHREAD_ONCE_INIT;
static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER;
char const *const LCD_FILE = "/sys/class/backlight/s5p_bl/brightness";
+char const *const LED_FILE = "/sys/class/misc/notification/led";
static int write_int(char const *path, int value)
{
int fd;
- static int already_warned;
-
- already_warned = 0;
+ static int already_warned = 0;
LOGV("write_int: path %s, value %d", path, value);
fd = open(path, O_RDWR);
@@ -55,6 +56,32 @@ static int write_int(char const *path, int value)
}
}
+static int read_int(char const *path)
+{
+ int fd;
+ static int already_warned = 0;
+
+ LOGV("read_int: path %s", path);
+ fd = open(path, O_RDWR);
+
+ if (fd >= 0) {
+ char cValor;
+ int amt = read(fd, &cValor, 1);
+ close(fd);
+ if (amt == -1 )
+ return -errno;
+ else
+ return atoi(&cValor);
+ return amt == -1 ? -errno : 0;
+ } else {
+ if (already_warned == 0) {
+ LOGE("read_int failed to open %s\n", path);
+ already_warned = 1;
+ }
+ return -errno;
+ }
+}
+
static int rgb_to_brightness(struct light_state_t const *state)
{
int color = state->color & 0x00ffffff;
@@ -63,6 +90,30 @@ static int rgb_to_brightness(struct light_state_t const *state)
+ (150*((color>>8) & 0x00ff)) + (29*(color & 0x00ff))) >> 8;
}
+static int set_light_notifications(struct light_device_t* dev,
+ struct light_state_t const* state)
+{
+ int brightness = rgb_to_brightness(state);
+ int v = 0;
+ int ret = 0;
+ int iAct;
+
+ pthread_mutex_lock(&g_lock);
+ if (brightness+state->color == 0 || brightness > 100) {
+ if (state->color & 0x00ffffff)
+ v = 1;
+ } else
+ v = 0;
+ iAct = read_int(LED_FILE);
+ LOGI("color %u fm %u status %u is lit %u brightness iAct: %d", state->color, state->flashMode, v, (state->color & 0x00ffffff), brightness, iAct);
+ if ( iAct == 2 && v == 1 )
+ v = 2;
+ ret = write_int(LED_FILE, v);
+ pthread_mutex_unlock(&g_lock);
+
+ return ret;
+}
+
static int set_light_backlight(struct light_device_t *dev,
struct light_state_t const *state)
{
@@ -95,6 +146,8 @@ static int open_lights(const struct hw_module_t *module, char const *name,
if (0 == strcmp(LIGHT_ID_BACKLIGHT, name))
set_light = set_light_backlight;
+ else if (0 == strcmp(LIGHT_ID_NOTIFICATIONS, name))
+ set_light = set_light_notifications;
else
return -EINVAL;
diff --git a/overlay/packages/apps/CMParts/res/values/config.xml b/overlay/packages/apps/CMParts/res/values/config.xml
new file mode 100644
index 0000000..4efc9ac
--- /dev/null
+++ b/overlay/packages/apps/CMParts/res/values/config.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Whether or not to display the trackball settings -->
+ <bool name="has_trackball">false</bool>
+
+ <!-- Notification LED has single color only -->
+ <bool name="has_single_notification_led">true</bool>
+
+ <bool name="has_led_flash">true</bool>
+</resources>
diff --git a/overlay/packages/apps/Camera/res/values/config.xml b/overlay/packages/apps/Camera/res/values/config.xml
new file mode 100644
index 0000000..4ae35ee
--- /dev/null
+++ b/overlay/packages/apps/Camera/res/values/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Autofocus parameters -->
+ <string name="touchFocusParameter">touch-focus</string>
+</resources>
diff --git a/overlay/packages/apps/Torch/res/values/config.xml b/overlay/packages/apps/Torch/res/values/config.xml
new file mode 100644
index 0000000..219163c
--- /dev/null
+++ b/overlay/packages/apps/Torch/res/values/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <bool name="useCameraInterface">true</bool>
+</resources>
diff --git a/scsi_wait_scan.ko b/scsi_wait_scan.ko
index e2483da..e68d272 100644
--- a/scsi_wait_scan.ko
+++ b/scsi_wait_scan.ko
Binary files differ
diff --git a/system.prop b/system.prop
index a3e7507..e31d565 100644
--- a/system.prop
+++ b/system.prop
@@ -8,3 +8,6 @@ ro.sf.lcd_density=240
# Define to manage ril to manage modem answere when going from 2G to 3G
ro.ril.ntmodeglobal=true
+
+# Define whether device has hspa
+ro.crespoparts.rild.hspa=1