ConditionManager: don't crash when trying to add unexpected condition
* Instead, just don't add the unexpected condition Test: none Change-Id: Id768d54e90fac6cbbfdca514e769cb3b331fbc46
This commit is contained in:
committed by
Anas Karbila
parent
ff960ed859
commit
f7791d75bf
@@ -91,8 +91,12 @@ public class ConditionManager {
|
|||||||
Condition condition = createCondition(Class.forName(clz));
|
Condition condition = createCondition(Class.forName(clz));
|
||||||
PersistableBundle bundle = PersistableBundle.restoreFromXml(parser);
|
PersistableBundle bundle = PersistableBundle.restoreFromXml(parser);
|
||||||
if (DEBUG) Log.d(TAG, "Reading " + clz + " -- " + bundle);
|
if (DEBUG) Log.d(TAG, "Reading " + clz + " -- " + bundle);
|
||||||
condition.restoreState(bundle);
|
if (condition != null) {
|
||||||
conditions.add(condition);
|
condition.restoreState(bundle);
|
||||||
|
conditions.add(condition);
|
||||||
|
} else {
|
||||||
|
Log.e(TAG, "failed to add condition: " + clz);
|
||||||
|
}
|
||||||
while (parser.getDepth() > depth) {
|
while (parser.getDepth() > depth) {
|
||||||
parser.next();
|
parser.next();
|
||||||
}
|
}
|
||||||
@@ -150,7 +154,10 @@ public class ConditionManager {
|
|||||||
private void addIfMissing(Class<? extends Condition> clz, ArrayList<Condition> conditions) {
|
private void addIfMissing(Class<? extends Condition> clz, ArrayList<Condition> conditions) {
|
||||||
if (getCondition(clz, conditions) == null) {
|
if (getCondition(clz, conditions) == null) {
|
||||||
if (DEBUG) Log.d(TAG, "Adding missing " + clz.getName());
|
if (DEBUG) Log.d(TAG, "Adding missing " + clz.getName());
|
||||||
conditions.add(createCondition(clz));
|
Condition condition = createCondition(clz);
|
||||||
|
if (condition != null) {
|
||||||
|
conditions.add(condition);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +179,8 @@ public class ConditionManager {
|
|||||||
} else if (NightDisplayCondition.class == clz) {
|
} else if (NightDisplayCondition.class == clz) {
|
||||||
return new NightDisplayCondition(this);
|
return new NightDisplayCondition(this);
|
||||||
}
|
}
|
||||||
throw new RuntimeException("Unexpected Condition " + clz);
|
Log.e(TAG, "unknown condition class: " + clz.getSimpleName());
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Context getContext() {
|
Context getContext() {
|
||||||
|
Reference in New Issue
Block a user