diff --git a/src/com/android/settings/dashboard/conditional/ConditionManager.java b/src/com/android/settings/dashboard/conditional/ConditionManager.java index c67fb320afb..f65908fd6c1 100644 --- a/src/com/android/settings/dashboard/conditional/ConditionManager.java +++ b/src/com/android/settings/dashboard/conditional/ConditionManager.java @@ -96,8 +96,12 @@ public class ConditionManager implements LifecycleObserver, OnResume, OnPause { Condition condition = createCondition(Class.forName(clz)); PersistableBundle bundle = PersistableBundle.restoreFromXml(parser); if (DEBUG) Log.d(TAG, "Reading " + clz + " -- " + bundle); - condition.restoreState(bundle); - conditions.add(condition); + if (condition != null) { + condition.restoreState(bundle); + conditions.add(condition); + } else { + Log.e(TAG, "failed to add condition: " + clz); + } while (parser.getDepth() > depth) { parser.next(); } @@ -155,7 +159,10 @@ public class ConditionManager implements LifecycleObserver, OnResume, OnPause { private void addIfMissing(Class clz, ArrayList conditions) { if (getCondition(clz, conditions) == null) { if (DEBUG) Log.d(TAG, "Adding missing " + clz.getName()); - conditions.add(createCondition(clz)); + Condition condition = createCondition(clz); + if (condition != null) { + conditions.add(condition); + } } } @@ -177,7 +184,8 @@ public class ConditionManager implements LifecycleObserver, OnResume, OnPause { } else if (NightDisplayCondition.class == clz) { return new NightDisplayCondition(this); } - throw new RuntimeException("Unexpected Condition " + clz); + Log.e(TAG, "unknown condition class: " + clz.getSimpleName()); + return null; } Context getContext() {