summaryrefslogtreecommitdiffstats
path: root/AriesParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java
diff options
context:
space:
mode:
Diffstat (limited to 'AriesParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java')
-rw-r--r--AriesParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java74
1 files changed, 68 insertions, 6 deletions
diff --git a/AriesParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java b/AriesParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java
index 7ac4b31..70af316 100644
--- a/AriesParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java
+++ b/AriesParts/src/com/cyanogenmod/settings/device/ColorTuningPreference.java
@@ -34,16 +34,37 @@ public class ColorTuningPreference extends DialogPreference {
R.id.color_blue_value
};
+ private static final int[] V0_SEEKBAR_ID = new int[] {
+ R.id.color_red_v0_seekbar,
+ R.id.color_green_v0_seekbar,
+ R.id.color_blue_v0_seekbar,
+ };
+
+ private static final int[] V0_VALUE_DISPLAY_ID = new int[] {
+ R.id.color_red_v0_value,
+ R.id.color_green_v0_value,
+ R.id.color_blue_v0_value
+ };
+
private static final String[] FILE_PATH = new String[] {
"/sys/devices/virtual/misc/color_tuning/red_multiplier",
"/sys/devices/virtual/misc/color_tuning/green_multiplier",
"/sys/devices/virtual/misc/color_tuning/blue_multiplier"
};
- private ColorSeekBar mSeekBars[] = new ColorSeekBar[3];
+ private static final String[] V0_FILE_PATH = new String[] {
+ "/sys/devices/virtual/misc/color_tuning/v0_red_gamma_hack",
+ "/sys/devices/virtual/misc/color_tuning/v0_green_gamma_hack",
+ "/sys/devices/virtual/misc/color_tuning/v0_blue_gamma_hack"
+ };
+
+ private ColorSeekBar mSeekBars[] = new ColorSeekBar[6];
private static final int MAX_VALUE = Integer.MAX_VALUE;
+ private static final int V0_MAX_VALUE = 20;
+ private static final int V0_DEFAULT_VALUE = 0;
+
// 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;
@@ -65,6 +86,12 @@ public class ColorTuningPreference extends DialogPreference {
TextView valueDisplay = (TextView) view.findViewById(VALUE_DISPLAY_ID[i]);
mSeekBars[i] = new ColorSeekBar(seekBar, valueDisplay, FILE_PATH[i]);
}
+
+ for (int i = 0; i < V0_SEEKBAR_ID.length; i++) {
+ SeekBar seekBar = (SeekBar) view.findViewById(V0_SEEKBAR_ID[i]);
+ TextView valueDisplay = (TextView) view.findViewById(V0_VALUE_DISPLAY_ID[i]);
+ mSeekBars[SEEKBAR_ID.length + i] = new V0ColorSeekBar(seekBar, valueDisplay, V0_FILE_PATH[i]);
+ }
}
@Override
@@ -98,6 +125,10 @@ public class ColorTuningPreference extends DialogPreference {
int value = sharedPrefs.getInt(filePath, MAX_VALUE);
Utils.writeColor(filePath, value);
}
+ for (String filePath : V0_FILE_PATH) {
+ int value = sharedPrefs.getInt(filePath, V0_DEFAULT_VALUE);
+ Utils.writeColor(filePath, value);
+ }
}
/**
@@ -111,16 +142,21 @@ public class ColorTuningPreference extends DialogPreference {
supported = false;
}
}
+ for (String filePath : V0_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;
+ protected String mFilePath;
+ protected int mOriginal;
+ protected SeekBar mSeekBar;
+ protected TextView mValueDisplay;
public ColorSeekBar(SeekBar seekBar, TextView valueDisplay, String filePath) {
mSeekBar = seekBar;
@@ -136,6 +172,10 @@ public class ColorTuningPreference extends DialogPreference {
seekBar.setOnSeekBarChangeListener(this);
}
+ // For inheriting class
+ protected ColorSeekBar() {
+ }
+
public void reset() {
mSeekBar.setProgress(mOriginal);
updateValue(mOriginal);
@@ -164,10 +204,32 @@ public class ColorTuningPreference extends DialogPreference {
// Do nothing
}
- private void updateValue(int progress) {
+ protected void updateValue(int progress) {
mValueDisplay.setText(String.format("%.3f", (double) progress / MAX_VALUE));
}
}
+ class V0ColorSeekBar extends ColorSeekBar {
+
+ public V0ColorSeekBar(SeekBar seekBar, TextView valueDisplay, String filePath) {
+ mSeekBar = seekBar;
+ mValueDisplay = valueDisplay;
+ mFilePath = filePath;
+
+ // Read original value
+ SharedPreferences sharedPreferences = getSharedPreferences();
+ mOriginal = sharedPreferences.getInt(mFilePath, V0_DEFAULT_VALUE);
+
+ seekBar.setMax(V0_MAX_VALUE);
+ reset();
+ seekBar.setOnSeekBarChangeListener(this);
+ }
+
+ @Override
+ protected void updateValue(int progress) {
+ mValueDisplay.setText(String.valueOf(progress));
+ }
+
+ }
}