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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java

Issue 1397233002: [Offline pages] Detecting missing offline copy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Passing only ID and paths for verification Created 5 years, 2 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: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
index 5a66045246a828ae40c1df0fe5e2add350ff975d..3676d4761588d6b91decda1881b6bf6081d47e40 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
@@ -13,6 +13,7 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.browser.BookmarksBridge;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.components.bookmarks.BookmarkId;
+import org.chromium.components.bookmarks.BookmarkType;
import org.chromium.content_public.browser.WebContents;
import java.util.ArrayList;
@@ -64,13 +65,19 @@ public final class OfflinePageBridge {
}
/**
- * Interface that provides listeners to be notified of changes to the offline page model.
+ * Base observer class listeners to be notified of changes to the offline page model.
*/
- public interface OfflinePageModelObserver {
+ public abstract static class OfflinePageModelObserver {
/**
* Called when the native side of offline pages is loaded and now in usable state.
*/
- void offlinePageModelLoaded();
+ public void offlinePageModelLoaded() {}
+
+ /**
+ * Called when an offline page is deleted.
+ * @param bookmarkId A bookmark ID of the deleted offline page.
+ */
+ public void offlinePageDeleted(BookmarkId bookmarkId) {}
}
private static int getFreeSpacePercentage() {
@@ -235,6 +242,13 @@ public final class OfflinePageBridge {
return result;
}
+ /**
+ * Starts a check of offline page metadata, e.g. are all offline copies present.
+ */
+ public void checkOfflinePageMetadata() {
+ nativeCheckMetadataConsistency(mNativeOfflinePageBridge);
+ }
+
@CalledByNative
private void offlinePageModelLoaded() {
mIsNativeOfflinePageModelLoaded = true;
@@ -244,6 +258,14 @@ public final class OfflinePageBridge {
}
@CalledByNative
+ private void offlinePageDeleted(long bookmarkId) {
+ BookmarkId id = new BookmarkId(bookmarkId, BookmarkType.NORMAL);
+ for (OfflinePageModelObserver observer : mObservers) {
+ observer.offlinePageDeleted(id);
+ }
+ }
+
+ @CalledByNative
private static void createOfflinePageAndAddToList(List<OfflinePageItem> offlinePagesList,
String url, long bookmarkId, String offlineUrl, long fileSize, int accessCount) {
offlinePagesList.add(createOfflinePageItem(url, bookmarkId, offlineUrl, fileSize,
@@ -273,4 +295,5 @@ public final class OfflinePageBridge {
long nativeOfflinePageBridge, DeletePageCallback callback, long[] bookmarkIds);
private native void nativeGetPagesToCleanUp(
long nativeOfflinePageBridge, List<OfflinePageItem> offlinePages);
+ private native void nativeCheckMetadataConsistency(long nativeOfflinePageBridge);
}

Powered by Google App Engine
This is Rietveld 408576698