Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(418)

Unified Diff: components/invalidation/impl/android/java/src/org/chromium/components/invalidation/PendingInvalidation.java

Issue 2798613002: [Sync] Store only latest versions of invalidations in DelayedInvalidationsController (Closed)
Patch Set: Address comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/invalidation/impl/android/java/src/org/chromium/components/invalidation/PendingInvalidation.java
diff --git a/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/PendingInvalidation.java b/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/PendingInvalidation.java
index deee2e3b9768c0f2ebfe3ce5feefb8bd470f91fc..1ec8c8334cadbe732b06de6828521dcc8476b0ac 100644
--- a/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/PendingInvalidation.java
+++ b/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/PendingInvalidation.java
@@ -93,6 +93,26 @@ public class PendingInvalidation {
*/
@Nullable
public static Bundle decodeToBundle(String encoded) {
+ Invalidation invalidation = decodeToInvalidation(encoded);
+ if (invalidation == null) return null;
+ return createBundle(invalidation.objectId, invalidation.objectSource,
+ invalidation.version != null ? invalidation.version : 0L, invalidation.payload);
+ }
+
+ /**
+ * Decode the invalidation encoded as a String into a PendingInvalidation.
+ * Return value is {@code null} if the string could not be parsed or is an invalidation for all.
+ */
+ @Nullable
+ public static PendingInvalidation decodeToPendingInvalidation(String encoded) {
+ Invalidation invalidation = decodeToInvalidation(encoded);
+ if (invalidation == null) return null;
+ return new PendingInvalidation(invalidation.objectId, invalidation.objectSource,
+ invalidation.version, invalidation.payload);
+ }
+
+ @Nullable
+ private static Invalidation decodeToInvalidation(String encoded) {
assert encoded != null;
byte[] decoded = Base64.decode(encoded, Base64.DEFAULT);
Invalidation invalidation;
@@ -104,8 +124,7 @@ public class PendingInvalidation {
}
assert invalidation != null;
if (invalidation.objectSource == null || invalidation.objectSource == 0) return null;
- return createBundle(invalidation.objectId, invalidation.objectSource,
- invalidation.version != null ? invalidation.version : 0L, invalidation.payload);
+ return invalidation;
}
public String toDebugString() {

Powered by Google App Engine
This is Rietveld 408576698