From 0ec60c69a090e11355af84c6d99adc3e7e2dcee0 Mon Sep 17 00:00:00 2001 From: Steve Kondik Date: Fri, 15 Apr 2016 02:38:42 -0700 Subject: livedisplay: Don't explode if no modes are available * Don't create the mode observer or try to publish tiles if none of the adaptive modes are supported. Change-Id: Iee6fe8131b0614e10f35b5a03d65fb44c71c0da9 --- sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'sdk') diff --git a/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java b/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java index 0a569d3..9e499ce 100644 --- a/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java +++ b/sdk/src/java/cyanogenmod/hardware/LiveDisplayConfig.java @@ -39,6 +39,8 @@ import cyanogenmod.os.Concierge.ParcelInfo; public class LiveDisplayConfig implements Parcelable { private final BitSet mCapabilities; + private final BitSet mAllModes = new BitSet(); + private final int mDefaultDayTemperature; private final int mDefaultNightTemperature; private final int mDefaultMode; @@ -54,6 +56,7 @@ public class LiveDisplayConfig implements Parcelable { boolean defaultCABC, boolean defaultColorEnhancement) { super(); mCapabilities = (BitSet) capabilities.clone(); + mAllModes.set(MODE_FIRST, MODE_LAST); mDefaultMode = defaultMode; mDefaultDayTemperature = defaultDayTemperature; mDefaultNightTemperature = defaultNightTemperature; @@ -91,6 +94,7 @@ public class LiveDisplayConfig implements Parcelable { // set temps mCapabilities = BitSet.valueOf(new long[] { capabilities }); + mAllModes.set(MODE_FIRST, MODE_LAST); mDefaultMode = defaultMode; mDefaultDayTemperature = defaultDayTemperature; mDefaultNightTemperature = defaultNightTemperature; @@ -163,6 +167,15 @@ public class LiveDisplayConfig implements Parcelable { } /** + * Checks if LiveDisplay has support for adaptive modes. + * + * @return true if adaptive modes are available + */ + public boolean hasModeSupport() { + return isAvailable() && mCapabilities.intersects(mAllModes); + } + + /** * Gets the default color temperature to use in the daytime. This is typically * set to 6500K, however this may not be entirely accurate. Use this value for * resetting controls to the default. -- cgit v1.1