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
This commit is contained in:
Steve Kondik
2016-04-15 02:38:42 -07:00
parent 712426f249
commit 0ec60c69a0
3 changed files with 21 additions and 5 deletions

View File

@@ -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;
@@ -162,6 +166,15 @@ public class LiveDisplayConfig implements Parcelable {
return !mCapabilities.isEmpty();
}
/**
* 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