Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java |
index 29cb18fcc650fafd93f2b9bed62fcd7ea80a5f94..dfdf7b62ad9eaa18d310af98679a9c01a2b7b3eb 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java |
@@ -46,6 +46,19 @@ public class WebappDataStorage { |
static final String KEY_VERSION = "version"; |
static final String KEY_WEBAPK_PACKAGE_NAME = "webapk_package_name"; |
+ // The last time that Chrome checked for Web Manifest updates for a WebAPK. |
+ static final String KEY_LAST_CHECK_WEB_MANIFEST_UPDATE_TIME = |
+ "last_check_web_manifest_update_time"; |
+ |
+ // The last time that the WebAPK update request completed (successfully or |
+ // unsuccessfully). |
+ static final String KEY_LAST_WEBAPK_UPDATE_REQUEST_COMPLETE_TIME = |
+ "last_webapk_update_request_complete_time"; |
+ |
+ // Whether the last WebAPK update request succeeded. |
+ static final String KEY_DID_LAST_WEBAPK_UPDATE_REQUEST_SUCCEED = |
+ "did_last_webapk_update_request_succeed"; |
+ |
// Unset/invalid constants for last used times and URLs. 0 is used as the null last |
// used time as WebappRegistry assumes that this is always a valid timestamp. |
static final long LAST_USED_UNSET = 0; |
@@ -166,7 +179,7 @@ public class WebappDataStorage { |
} |
/** |
- * Deletes the URL and scope, and sets last used time to 0 in SharedPreferences. |
+ * Deletes the URL and scope, and sets all timestamps to 0 in SharedPreferences. |
* This does not remove the stored splash screen image (if any) for the app. |
* @param context The context to read the SharedPreferences file. |
* @param webappId The ID of the web app for which history is being cleared. |
@@ -181,6 +194,9 @@ public class WebappDataStorage { |
editor.putLong(KEY_LAST_USED, LAST_USED_UNSET); |
editor.remove(KEY_URL); |
editor.remove(KEY_SCOPE); |
+ editor.remove(KEY_LAST_CHECK_WEB_MANIFEST_UPDATE_TIME); |
+ editor.remove(KEY_LAST_WEBAPK_UPDATE_REQUEST_COMPLETE_TIME); |
+ editor.remove(KEY_DID_LAST_WEBAPK_UPDATE_REQUEST_SUCCEED); |
editor.apply(); |
} |
@@ -401,6 +417,56 @@ public class WebappDataStorage { |
} |
/** |
+ * Updates the time of the last check for whether the WebAPK's Web Manifest was updated. |
+ */ |
+ void updateTimeOfLastCheckForUpdatedWebManifest() { |
+ mPreferences.edit() |
+ .putLong(KEY_LAST_CHECK_WEB_MANIFEST_UPDATE_TIME, sClock.currentTimeMillis()) |
+ .apply(); |
+ } |
+ |
+ /** |
+ * Returns the time of the last check for whether the WebAPK's Web Manifest was updated. |
+ */ |
+ long getLastCheckForWebManifestUpdateTime() { |
+ return mPreferences.getLong(KEY_LAST_CHECK_WEB_MANIFEST_UPDATE_TIME, LAST_USED_INVALID); |
+ } |
+ |
+ /** |
+ * Updates the time that the last WebAPK update request completed (successfully or |
+ * unsuccessfully). |
+ */ |
+ void updateTimeOfLastWebApkUpdateRequestCompletion() { |
+ mPreferences.edit() |
+ .putLong(KEY_LAST_WEBAPK_UPDATE_REQUEST_COMPLETE_TIME, sClock.currentTimeMillis()) |
+ .apply(); |
+ } |
+ |
+ /** |
+ * Returns the time that the last WebAPK update request completed (successfully or |
+ * unsuccessfully). |
+ */ |
+ long getLastWebApkUpdateRequestCompletionTime() { |
+ return mPreferences.getLong( |
+ KEY_LAST_WEBAPK_UPDATE_REQUEST_COMPLETE_TIME, LAST_USED_INVALID); |
+ } |
+ |
+ /** |
+ * Updates the result of whether the last update request to WebAPK Server succeeded. |
+ */ |
+ void updateDidLastWebApkUpdateRequestSucceed(boolean sucess) { |
+ mPreferences.edit() |
+ .putBoolean(KEY_DID_LAST_WEBAPK_UPDATE_REQUEST_SUCCEED, sucess) |
+ .apply(); |
+ } |
+ |
+ /** |
+ * Returns whether the last update request to WebAPK Server succeeded. |
+ */ |
+ boolean getDidLastWebApkUpdateRequestSucceed() { |
+ return mPreferences.getBoolean(KEY_DID_LAST_WEBAPK_UPDATE_REQUEST_SUCCEED, false); |
+ } |
+ /** |
* Returns true if this web app has been launched from home screen recently (within |
* WEBAPP_LAST_OPEN_MAX_TIME milliseconds). |
*/ |