summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/deskclock/data/Timer.java2
-rw-r--r--src/com/android/deskclock/data/TimerDAO.java21
2 files changed, 14 insertions, 9 deletions
diff --git a/src/com/android/deskclock/data/Timer.java b/src/com/android/deskclock/data/Timer.java
index 6753a2b48..862e8e082 100644
--- a/src/com/android/deskclock/data/Timer.java
+++ b/src/com/android/deskclock/data/Timer.java
@@ -63,7 +63,7 @@ public final class Timer {
}
}
- throw new IllegalArgumentException("unable to locate state: " + value);
+ return null;
}
}
diff --git a/src/com/android/deskclock/data/TimerDAO.java b/src/com/android/deskclock/data/TimerDAO.java
index e4396752c..cf2d37d2b 100644
--- a/src/com/android/deskclock/data/TimerDAO.java
+++ b/src/com/android/deskclock/data/TimerDAO.java
@@ -83,14 +83,19 @@ final class TimerDAO {
final int id = Integer.parseInt(timerId);
final int stateValue = prefs.getInt(STATE + id, RESET.getValue());
final State state = State.fromValue(stateValue);
- final long length = prefs.getLong(LENGTH + id, Long.MIN_VALUE);
- final long totalLength = prefs.getLong(TOTAL_LENGTH + id, Long.MIN_VALUE);
- final long lastStartTime = prefs.getLong(LAST_START_TIME + id, Long.MIN_VALUE);
- final long remainingTime = prefs.getLong(REMAINING_TIME + id, totalLength);
- final String label = prefs.getString(LABEL + id, null);
- final boolean deleteAfterUse = prefs.getBoolean(DELETE_AFTER_USE + id, false);
- timers.add(new Timer(id, state, length, totalLength, lastStartTime, remainingTime,
- label, deleteAfterUse));
+
+ // Timer state may be null when migrating timers from prior releases which defined a
+ // "deleted" state. Such a state is no longer required.
+ if (state != null) {
+ final long length = prefs.getLong(LENGTH + id, Long.MIN_VALUE);
+ final long totalLength = prefs.getLong(TOTAL_LENGTH + id, Long.MIN_VALUE);
+ final long lastStartTime = prefs.getLong(LAST_START_TIME + id, Long.MIN_VALUE);
+ final long remainingTime = prefs.getLong(REMAINING_TIME + id, totalLength);
+ final String label = prefs.getString(LABEL + id, null);
+ final boolean deleteAfterUse = prefs.getBoolean(DELETE_AFTER_USE + id, false);
+ timers.add(new Timer(id, state, length, totalLength, lastStartTime, remainingTime,
+ label, deleteAfterUse));
+ }
}
return timers;