ConditionManager: don't crash when trying to add unexpected condition

* Instead, just don't add the unexpected condition

Test: none

Change-Id: Id768d54e90fac6cbbfdca514e769cb3b331fbc46
diff --git a/src/com/android/settings/dashboard/conditional/ConditionManager.java b/src/com/android/settings/dashboard/conditional/ConditionManager.java
index 691821a..aeeec28 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionManager.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionManager.java
@@ -91,8 +91,12 @@
                     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();
                     }
@@ -150,7 +154,10 @@
     private void addIfMissing(Class<? extends Condition> clz, ArrayList<Condition> 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);
+            }
         }
     }
 
@@ -172,7 +179,8 @@
         } 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() {