From c30bcacbca7cf69efb841633da573a628ac437be Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Tue, 8 Dec 2015 03:13:18 -0800 Subject: [PATCH] cmsdk: Add preference for automatic notification colors Change-Id: I4bdb430917dac69f397995ea1c2abcacfb62136e --- src/java/cyanogenmod/providers/CMSettings.java | 15 +++++++++++++++ src/java/cyanogenmod/util/ColorUtils.java | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/java/cyanogenmod/providers/CMSettings.java b/src/java/cyanogenmod/providers/CMSettings.java index 19a2140..d318f6e 100644 --- a/src/java/cyanogenmod/providers/CMSettings.java +++ b/src/java/cyanogenmod/providers/CMSettings.java @@ -1713,6 +1713,19 @@ public final class CMSettings { } }; + /** + * Whether we automatically generate notification LED colors or just + * use the boring default. + * + * @hide + */ + public static final String NOTIFICATION_LIGHT_COLOR_AUTO = + "notification_light_color_auto"; + + /** @hide */ + public static final Validator NOTIFICATION_LIGHT_COLOR_AUTO_VALIDATOR = + sBooleanValidator; + /** * I can haz more bukkits * @hide @@ -1958,6 +1971,8 @@ public final class CMSettings { NOTIFICATION_LIGHT_PULSE_CUSTOM_ENABLE_VALIDATOR); VALIDATORS.put(NOTIFICATION_LIGHT_PULSE_CUSTOM_VALUES, NOTIFICATION_LIGHT_PULSE_CUSTOM_VALUES_VALIDATOR); + VALIDATORS.put(NOTIFICATION_LIGHT_COLOR_AUTO, + NOTIFICATION_LIGHT_COLOR_AUTO_VALIDATOR); VALIDATORS.put(__MAGICAL_TEST_PASSING_ENABLER, __MAGICAL_TEST_PASSING_ENABLER_VALIDATOR); }; diff --git a/src/java/cyanogenmod/util/ColorUtils.java b/src/java/cyanogenmod/util/ColorUtils.java index 0580dd1..1819057 100644 --- a/src/java/cyanogenmod/util/ColorUtils.java +++ b/src/java/cyanogenmod/util/ColorUtils.java @@ -180,7 +180,9 @@ public class ColorUtils { if (bitmap != null) { Palette p = Palette.generate(bitmap); color = findPerceptuallyNearestSolidColor(p.getVibrantColor(0)) & 0xFFFFFF; - bitmap.recycle(); + if (!(drawable instanceof BitmapDrawable)) { + bitmap.recycle(); + } } return color;