| 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);
|
| }
|
|
|