Merge "Add variants of ONRESUME event" into ub-launcher3-qt-r1-dev
diff --git a/src/com/android/customization/model/clock/ClockManager.java b/src/com/android/customization/model/clock/ClockManager.java
index 3744317..180d3a0 100644
--- a/src/com/android/customization/model/clock/ClockManager.java
+++ b/src/com/android/customization/model/clock/ClockManager.java
@@ -20,6 +20,9 @@
 
 import com.android.customization.module.ThemesUserEventLogger;
 
+import org.json.JSONException;
+import org.json.JSONObject;
+
 /**
  * {@link CustomizationManager} for clock faces that implements apply by writing to secure settings.
  */
@@ -27,6 +30,8 @@
 
     // TODO: use constant from Settings.Secure
     static final String CLOCK_FACE_SETTING = "lock_screen_custom_clock_face";
+    private static final String CLOCK_FIELD = "clock";
+    private static final String TIMESTAMP_FIELD = "_applied_timestamp";
     private final ContentResolver mContentResolver;
     private final ThemesUserEventLogger mEventLogger;
 
@@ -39,7 +44,15 @@
 
     @Override
     protected void handleApply(Clockface option, Callback callback) {
-        boolean stored = Secure.putString(mContentResolver, CLOCK_FACE_SETTING, option.getId());
+        boolean stored;
+        try {
+            final JSONObject json = new JSONObject();
+            json.put(CLOCK_FIELD, option.getId());
+            json.put(TIMESTAMP_FIELD, System.currentTimeMillis());
+            stored = Secure.putString(mContentResolver, CLOCK_FACE_SETTING, json.toString());
+        } catch (JSONException ex) {
+            stored = false;
+        }
         if (stored) {
             mEventLogger.logClockApplied(option);
             callback.onSuccess();
@@ -50,6 +63,12 @@
 
     @Override
     protected String lookUpCurrentClock() {
-        return Secure.getString(mContentResolver, CLOCK_FACE_SETTING);
+        final String value = Secure.getString(mContentResolver, CLOCK_FACE_SETTING);
+        try {
+            final JSONObject json = new JSONObject(value);
+            return json.getString(CLOCK_FIELD);
+        } catch (JSONException ex) {
+            return value;
+        }
     }
 }