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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user