summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/settings/notificationlight/ColorPickerView.java4
-rw-r--r--src/com/android/settings/notificationlight/LightSettingsDialog.java23
2 files changed, 21 insertions, 6 deletions
diff --git a/src/com/android/settings/notificationlight/ColorPickerView.java b/src/com/android/settings/notificationlight/ColorPickerView.java
index b896614..19becf2 100644
--- a/src/com/android/settings/notificationlight/ColorPickerView.java
+++ b/src/com/android/settings/notificationlight/ColorPickerView.java
@@ -794,6 +794,10 @@ public class ColorPickerView extends View {
}
+ public boolean isAlphaSliderVisible() {
+ return mShowAlphaPanel;
+ }
+
public void setSliderTrackerColor(int color) {
mSliderTrackerColor = color;
mHueTrackerPaint.setColor(mSliderTrackerColor);
diff --git a/src/com/android/settings/notificationlight/LightSettingsDialog.java b/src/com/android/settings/notificationlight/LightSettingsDialog.java
index f089211..48d6fdd 100644
--- a/src/com/android/settings/notificationlight/LightSettingsDialog.java
+++ b/src/com/android/settings/notificationlight/LightSettingsDialog.java
@@ -17,9 +17,6 @@
package com.android.settings.notificationlight;
-import java.util.ArrayList;
-import java.util.IllegalFormatException;
-
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
@@ -28,6 +25,8 @@ import android.graphics.PixelFormat;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
+import android.text.InputFilter;
+import android.text.InputFilter.LengthFilter;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
@@ -45,10 +44,13 @@ import android.widget.TextView;
import com.android.settings.R;
import com.android.settings.notificationlight.ColorPickerView.OnColorChangedListener;
+import java.util.ArrayList;
+import java.util.IllegalFormatException;
+import java.util.Locale;
+
public class LightSettingsDialog extends AlertDialog implements
ColorPickerView.OnColorChangedListener, TextWatcher, OnFocusChangeListener {
- private final static String HEX_CODE_BASE = "#FF";
private final static String STATE_KEY_COLOR = "LightSettingsDialog:color";
private ColorPickerView mColorPicker;
@@ -165,14 +167,20 @@ public class LightSettingsDialog extends AlertDialog implements
@Override
public void onColorChanged(int color) {
+ final boolean hasAlpha = mColorPicker.isAlphaSliderVisible();
+ final String format = hasAlpha ? "%08x" : "%06x";
+ final int mask = hasAlpha ? 0xFFFFFFFF : 0x00FFFFFF;
+
mNewColor.setColor(color);
- mHexColorInput.setText(Integer.toHexString(color));
+ mHexColorInput.setText(String.format(Locale.US, format, color & mask));
+
if (mListener != null) {
mListener.onColorChanged(color);
}
}
public void setAlphaSliderVisible(boolean visible) {
+ mHexColorInput.setFilters(new InputFilter[] { new InputFilter.LengthFilter(visible ? 8 : 6) } );
mColorPicker.setAlphaSliderVisible(visible);
}
@@ -285,7 +293,10 @@ public class LightSettingsDialog extends AlertDialog implements
String hexColor = mHexColorInput.getText().toString();
if (!hexColor.isEmpty()) {
try {
- int color = Color.parseColor(HEX_CODE_BASE + hexColor);
+ int color = Color.parseColor('#' + hexColor);
+ if (!mColorPicker.isAlphaSliderVisible()) {
+ color |= 0xFF000000; // set opaque
+ }
mColorPicker.setColor(color);
mNewColor.setColor(color);
if (mListener != null) {