diff options
author | KalimochoAz <calimochoazucarado@gmail.com> | 2012-04-24 22:59:22 +0200 |
---|---|---|
committer | KalimochoAz <calimochoazucarado@gmail.com> | 2012-04-24 23:03:38 +0200 |
commit | 267dacb77535619880b7bdfbd1a1d0d4361faca5 (patch) | |
tree | 71e3b8ffd4eb1065d5044ef9b6741d97fe0ec175 /CrespoParts | |
parent | d6e350b33372a7cc2b1fae81281caf1338b2af94 (diff) | |
download | device_samsung_crespo-267dacb77535619880b7bdfbd1a1d0d4361faca5.zip device_samsung_crespo-267dacb77535619880b7bdfbd1a1d0d4361faca5.tar.gz device_samsung_crespo-267dacb77535619880b7bdfbd1a1d0d4361faca5.tar.bz2 |
Create preset screen
Change-Id: I0813c95872dc149f40962d7d9f6f35dc45b0b1aa
Diffstat (limited to 'CrespoParts')
11 files changed, 382 insertions, 1 deletions
diff --git a/CrespoParts/res/drawable/blue_tuning_preview.xml b/CrespoParts/res/drawable/blue_tuning_preview.xml new file mode 100755 index 0000000..98ea313 --- /dev/null +++ b/CrespoParts/res/drawable/blue_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="#0000FF" /> +</shape>
\ No newline at end of file diff --git a/CrespoParts/res/drawable/green_tuning_preview.xml b/CrespoParts/res/drawable/green_tuning_preview.xml new file mode 100755 index 0000000..4f09471 --- /dev/null +++ b/CrespoParts/res/drawable/green_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="#00FF00" /> +</shape>
\ No newline at end of file diff --git a/CrespoParts/res/drawable/red_tuning_preview.xml b/CrespoParts/res/drawable/red_tuning_preview.xml new file mode 100755 index 0000000..a55ea12 --- /dev/null +++ b/CrespoParts/res/drawable/red_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="#FF0000" /> +</shape>
\ No newline at end of file diff --git a/CrespoParts/res/layout/preference_colorgamma_presets.xml b/CrespoParts/res/layout/preference_colorgamma_presets.xml new file mode 100755 index 0000000..bd50287 --- /dev/null +++ b/CrespoParts/res/layout/preference_colorgamma_presets.xml @@ -0,0 +1,120 @@ +<?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"> + + <ImageView + android:id="@+id/imageView0" + android:layout_width="match_parent" + android:layout_height="200dp" + android:paddingLeft="20dip" + android:paddingRight="20dip" + android:paddingTop="5dip" + android:src="@drawable/color_tuning_preview" /> + + <ImageView + android:id="@+id/imageView1" + android:layout_width="match_parent" + android:layout_height="50dp" + android:paddingLeft="20dip" + android:paddingRight="20dip" + android:paddingTop="5dip" + android:src="@drawable/red_tuning_preview" /> + + <ImageView + android:id="@+id/imageView2" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_below="@+id/imageView1" + android:paddingLeft="20dip" + android:paddingRight="20dip" + android:paddingTop="5dip" + android:src="@drawable/green_tuning_preview" /> + + <ImageView + android:id="@+id/imageView3" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_below="@+id/imageView2" + android:paddingLeft="20dip" + android:paddingRight="20dip" + android:paddingTop="5dip" + android:src="@drawable/blue_tuning_preview" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/imageView0" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" > + + <Button + android:id="@+id/btnPreset1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/preset1_default_title" android:textSize="10dp" android:width="100dp"/> + + <Button + android:id="@+id/btnPreset2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/preset2_default_title" android:textSize="10dp" android:width="100dp"/> + + <Button + android:id="@+id/btnPreset3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/preset3_default_title" android:textSize="10dp" android:width="100dp"/> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <Button + android:id="@+id/btnPreset4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/preset4_default_title" android:textSize="10dp" android:width="100dp"/> + + <Button + android:id="@+id/btnPreset5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/preset5_default_title" android:textSize="10dp" android:width="100dp"/> + + <Button + android:id="@+id/btnPreset6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/preset6_default_title" android:textSize="10dp" android:width="100dp"/> + </LinearLayout> + + <LinearLayout + android:layout_width="320dp" + android:layout_height="wrap_content" + android:layout_weight="1" > + + <TextView + android:id="@+id/textView1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/credits_presets" android:textSize="12dp"/> + + </LinearLayout> + </LinearLayout> + + </RelativeLayout> + +</ScrollView> diff --git a/CrespoParts/res/values/strings.xml b/CrespoParts/res/values/strings.xml index 2622884..661fb8d 100644 --- a/CrespoParts/res/values/strings.xml +++ b/CrespoParts/res/values/strings.xml @@ -9,12 +9,14 @@ <string name="category_cpu_title">CPU</string> <string name="cpu_deepidle_title_head">Deep Idle</string> - <string name="cpu_deepidle_summary_head">Enables deep idle, intended to provide better battery life. (NO STABLE AT ALL. you can have reboots!)</string> + <string name="cpu_deepidle_summary_head">Enables deep idle.</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_hack_presets_title_head">Color hack presets</string> + <string name="color_hack_presets_summary_head">Presets for gamma and multipliers tested by some users</string> <string name="color_red_title">Red</string> <string name="color_green_title">Green</string> <string name="color_blue_title">Blue</string> @@ -25,6 +27,14 @@ <string name="color_CM_title">CM Sett.</string> <string name="color_dark_title">Dark Sett.</string> + <string name="preset1_default_title">Default.</string> + <string name="preset2_default_title">Natural</string> + <string name="preset3_default_title">Dark Blue</string> + <string name="preset4_default_title">Warm</string> + <string name="preset5_default_title">Dark Cold</string> + <string name="preset6_default_title">Cross Proc.</string> + <string name="credits_presets">Credits: ale.landra91 cpaixao provolinoo</string> + <string name="category_touchkey_title">Touch Keys</string> <string name="touchkey_notification_title_head">Backlight Notifications</string> <string name="touchkey_notification_summary_head">The touch key backlights will turn on when there is a notification.</string> diff --git a/CrespoParts/res/xml/display_preferences.xml b/CrespoParts/res/xml/display_preferences.xml index 9772b20..45795d1 100755 --- a/CrespoParts/res/xml/display_preferences.xml +++ b/CrespoParts/res/xml/display_preferences.xml @@ -11,5 +11,9 @@ android:key="gamma_tuning" android:title="@string/gamma_tuning_title_head" android:summary="@string/gamma_tuning_summary_head" /> + <com.cyanogenmod.settings.device.ColorHackPresets + android:key="color_presets" + android:title="@string/color_hack_presets_title_head" + android:summary="@string/color_hack_presets_summary_head" /> </PreferenceScreen> diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/ColorHackPresets.java b/CrespoParts/src/com/cyanogenmod/settings/device/ColorHackPresets.java new file mode 100644 index 0000000..f110d4f --- /dev/null +++ b/CrespoParts/src/com/cyanogenmod/settings/device/ColorHackPresets.java @@ -0,0 +1,212 @@ +/* + * Copyright (C) 2011 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cyanogenmod.settings.device; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +import android.preference.DialogPreference; +import android.preference.PreferenceManager; +import android.util.AttributeSet; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.TextView; +import android.widget.Button; +import android.util.Log; + +/** + * Special preference type that allows configuration of both the ring volume and + * notification volume. + */ +public class ColorHackPresets extends DialogPreference implements OnClickListener { + + private static final String TAG = "PRESETS..."; + + private static final String[] FILE_PATH_GAMMA = new String[] { + "/sys/class/misc/samoled_color/red_v1_offset", + "/sys/class/misc/samoled_color/green_v1_offset", + "/sys/class/misc/samoled_color/blue_v1_offset" + }; + + private static final String[] FILE_PATH_MULTI = new String[] { + "/sys/class/misc/samoled_color/red_multiplier", + "/sys/class/misc/samoled_color/green_multiplier", + "/sys/class/misc/samoled_color/blue_multiplier" + }; + + // 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; + + // Align MAX_VALUE with Voodoo Control settings + private static final int MAX_VALUE = Integer.MAX_VALUE - 2; + + public ColorHackPresets(Context context, AttributeSet attrs) { + super(context, attrs); + + setDialogLayoutResource(R.layout.preference_colorgamma_presets); + } + + @Override + protected void onBindDialogView(View view) { + super.onBindDialogView(view); + + sInstances++; + + SetupButtonClickListeners(view); + } + + private void SetupButtonClickListeners(View view) { + Button[] mPresets = new Button[6]; + + mPresets[0] = (Button)view.findViewById(R.id.btnPreset1); + mPresets[1] = (Button)view.findViewById(R.id.btnPreset2); + mPresets[2] = (Button)view.findViewById(R.id.btnPreset3); + mPresets[3] = (Button)view.findViewById(R.id.btnPreset4); + mPresets[4] = (Button)view.findViewById(R.id.btnPreset5); + mPresets[5] = (Button)view.findViewById(R.id.btnPreset6); + for (int i = 0; i < 6; i++) { + mPresets[i].setOnClickListener(this); + } + } + + @Override + protected void onDialogClosed(boolean positiveResult) { + super.onDialogClosed(positiveResult); + + sInstances--; + + } + + /** + * 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; + } + + } + + /** + * 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_GAMMA) { + if (!Utils.fileExists(filePath)) { + supported = false; + } + } + + return supported; + } + + public void onClick(View v) { + switch(v.getId()){ + case R.id.btnPreset1: + Preset1(); + break; + case R.id.btnPreset2: + Preset2(); + break; + case R.id.btnPreset3: + Preset3(); + break; + case R.id.btnPreset4: + Preset4(); + break; + case R.id.btnPreset5: + Preset5(); + break; + case R.id.btnPreset6: + Preset6(); + break; + } + } + + private void WriteMultiplier(Double fValue , int iPos) { + int iValue = (int) ((double) MAX_VALUE * fValue); + Utils.writeColor(FILE_PATH_MULTI[iPos], iValue); + Log.i(TAG,"KalimAz: Multiplier: " + iPos+ " Value " + iValue ); + } + + private void WriteGamma(int iValue , int iPos) { + Utils.writeValue(FILE_PATH_GAMMA[iPos], String.valueOf((long) iValue)); + Log.i(TAG,"KalimAz: Gamma: " + iPos+ " Value " + iValue ); + } + + private void Preset1() { + WriteMultiplier(1.0, 0); + WriteMultiplier(1.0, 1); + WriteMultiplier(1.0, 2); + WriteGamma(0, 0); + WriteGamma(0, 1); + WriteGamma(0, 2); + } + + private void Preset2() { + WriteMultiplier(0.8575, 0); + WriteMultiplier(0.8575, 1); + WriteMultiplier(0.8575, 2); + WriteGamma(-50, 0); + WriteGamma(-50, 1); + WriteGamma(-40, 2); + } + + private void Preset3() { + WriteMultiplier(0.658602179, 0); + WriteMultiplier(0.7311828147, 1); + WriteMultiplier(1.0, 2); + WriteGamma(-41, 0); + WriteGamma(-46, 1); + WriteGamma(-31, 2); + } + + private void Preset4() { + WriteMultiplier(0.7231, 0); + WriteMultiplier(0.7016, 1); + WriteMultiplier(0.6532, 2); + WriteGamma(-35, 0); + WriteGamma(-55, 1); + WriteGamma(-48, 2); + } + + private void Preset5() { + WriteMultiplier(0.6666, 0); + WriteMultiplier(0.6666, 1); + WriteMultiplier(0.8333, 2); + WriteGamma(-44, 0); + WriteGamma(-44, 1); + WriteGamma(-22, 2); + } + + private void Preset6() { + WriteMultiplier(1.0, 0); + WriteMultiplier(0.7688, 1); + WriteMultiplier(0.2473, 2); + WriteGamma(-57, 0); + WriteGamma(-39, 1); + WriteGamma(45, 2); + } + +} diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java b/CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java index 378fb38..0ca7ae2 100644 --- a/CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java +++ b/CrespoParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java @@ -123,6 +123,7 @@ public class ColorTuningPreference extends DialogPreference implements OnClickLi } SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + for (String filePath : FILE_PATH) { String sDefaultValue = Utils.readOneLine(filePath); Log.d(TAG,"INIT: " + sDefaultValue); diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java b/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java index de26a53..d84a78b 100644 --- a/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java +++ b/CrespoParts/src/com/cyanogenmod/settings/device/DeviceSettings.java @@ -43,6 +43,7 @@ public class DeviceSettings extends Activity { public static final String ACTION_UPDATE_PREFERENCES = "com.cyanogenmod.settings.device.UPDATE"; public static final String KEY_COLOR_TUNING = "color_tuning"; public static final String KEY_GAMMA_TUNING = "gamma_tuning"; + public static final String KEY_COLOR_PRESET = "color_presets"; public static final String KEY_DEEPIDLE = "deepidle"; public static final String KEY_DEEPIDLE_STATS = "deepidle_stats"; public static final String KEY_NOTIFICATION = "touchkey_notification"; diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java b/CrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java index b2ae578..d719b73 100755 --- a/CrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java +++ b/CrespoParts/src/com/cyanogenmod/settings/device/DisplayFragmentActivity.java @@ -33,6 +33,7 @@ public class DisplayFragmentActivity extends PreferenceFragment { private ColorTuningPreference mColorTuning; private GammaTuningPreference mGammaTuning; + private ColorHackPresets mColorPreset; @Override public void onCreate(Bundle savedInstanceState) { @@ -45,6 +46,9 @@ public class DisplayFragmentActivity extends PreferenceFragment { mGammaTuning = (GammaTuningPreference) findPreference(DeviceSettings.KEY_GAMMA_TUNING); mGammaTuning.setEnabled(GammaTuningPreference.isSupported()); + + mColorPreset = (ColorHackPresets) findPreference(DeviceSettings.KEY_COLOR_PRESET); + mColorPreset.setEnabled(ColorHackPresets.isSupported()); } } diff --git a/CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java b/CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java index 5bedb73..73a66ad 100644 --- a/CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java +++ b/CrespoParts/src/com/cyanogenmod/settings/device/GammaTuningPreference.java @@ -27,6 +27,7 @@ import android.view.View.OnClickListener; import android.widget.SeekBar; import android.widget.TextView; import android.widget.Button; +import android.util.Log; /** * Special preference type that allows configuration of both the ring volume and @@ -122,6 +123,7 @@ public class GammaTuningPreference extends DialogPreference implements OnClickLi } SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + Boolean bFirstTime = sharedPrefs.getBoolean("FirstTimeGamma", true); for (String filePath : FILE_PATH) { String sDefaultValue = Utils.readOneLine(filePath); |