Index: chrome/android/java/src/org/chromium/chrome/browser/history/BrowsingHistoryBridge.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/BrowsingHistoryBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/history/BrowsingHistoryBridge.java |
index c9f0e1dc4627f0099d18e916bba704cdef378d61..e2cd12474bd6c29a6e92644635867f526ef0ec40 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/BrowsingHistoryBridge.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/BrowsingHistoryBridge.java |
@@ -11,50 +11,22 @@ import java.util.ArrayList; |
import java.util.List; |
/** The JNI bridge for Android to fetch and manipulate browsing history. */ |
-public class BrowsingHistoryBridge { |
- |
- /** |
- * Observer to be notified of browsing history events. |
- */ |
- public interface BrowsingHistoryObserver { |
- /** |
- * Called after {@link BrowsingHistoryBridge#queryHistory(String, long)} is complete. |
- * @param items The items that matched the #queryHistory() parameters. |
- * @param hasMorePotentialMatches Whether there are more items that match the query text. |
- * This will be false once the entire local history database |
- * has been searched. |
- */ |
- public void onQueryHistoryComplete(List<HistoryItem> items, |
- boolean hasMorePotentialMatches); |
- |
- /** |
- * Called when history has been deleted through something other than a call to |
- * BrowsingHistoryBridge#removeItems(). For example, if two instances of the history page |
- * are open and the user removes items in one instance, the other instance will be notified |
- * via this method. |
- */ |
- public void onHistoryDeleted(); |
- |
- /** |
- * Called after querying history to indicate whether other forms of browsing history were |
- * found. |
- * @param hasOtherForms Whether other forms of browsing history were found. |
- * @param hasSyncedResults Whether synced results were found. |
- */ |
- public void hasOtherFormsOfBrowsingData(boolean hasOtherForms, boolean hasSyncedResults); |
- } |
- |
- private final BrowsingHistoryObserver mObserver; |
- |
+public class BrowsingHistoryBridge implements HistoryProvider { |
+ private BrowsingHistoryObserver mObserver; |
private long mNativeHistoryBridge; |
private boolean mRemovingItems; |
private boolean mHasPendingRemoveRequest; |
- public BrowsingHistoryBridge(BrowsingHistoryObserver observer) { |
+ public BrowsingHistoryBridge() { |
mNativeHistoryBridge = nativeInit(Profile.getLastUsedProfile()); |
+ } |
+ |
+ @Override |
+ public void setObserver(BrowsingHistoryObserver observer) { |
mObserver = observer; |
} |
+ @Override |
public void destroy() { |
if (mNativeHistoryBridge != 0) { |
nativeDestroy(mNativeHistoryBridge); |
@@ -62,29 +34,17 @@ public class BrowsingHistoryBridge { |
} |
} |
- /** |
- * Query browsing history. Only one query may be in-flight at any time. See |
- * BrowsingHistoryService::QueryHistory. |
- * @param query The query search text. May be empty. |
- * @param endQueryTime The end of the time range to search. A value of 0 indicates that there |
- * is no limit on the end time. See the native QueryOptions. |
- */ |
+ @Override |
public void queryHistory(String query, long endQueryTime) { |
nativeQueryHistory(mNativeHistoryBridge, new ArrayList<HistoryItem>(), query, endQueryTime); |
} |
- /** |
- * Adds the HistoryItem to the list of items being removed. The removal will not be committed |
- * until {@link #removeItems()} is called. |
- * @param item The item to mark for removal. |
- */ |
+ @Override |
public void markItemForRemoval(HistoryItem item) { |
nativeMarkItemForRemoval(mNativeHistoryBridge, item.getUrl(), item.getTimestamps()); |
} |
- /** |
- * Removes all items that have been marked for removal through #markItemForRemoval(). |
- */ |
+ @Override |
public void removeItems() { |
// Only one remove request may be in-flight at any given time. If items are currently being |
// removed, queue the new request and return early. |
@@ -105,7 +65,7 @@ public class BrowsingHistoryBridge { |
@CalledByNative |
public void onQueryHistoryComplete(List<HistoryItem> items, boolean hasMorePotentialMatches) { |
- mObserver.onQueryHistoryComplete(items, hasMorePotentialMatches); |
+ if (mObserver != null) mObserver.onQueryHistoryComplete(items, hasMorePotentialMatches); |
} |
@CalledByNative |
@@ -123,12 +83,14 @@ public class BrowsingHistoryBridge { |
@CalledByNative |
public void onHistoryDeleted() { |
- mObserver.onHistoryDeleted(); |
+ if (mObserver != null) mObserver.onHistoryDeleted(); |
} |
@CalledByNative |
public void hasOtherFormsOfBrowsingData(boolean hasOtherForms, boolean hasSyncedResults) { |
- mObserver.hasOtherFormsOfBrowsingData(hasOtherForms, hasSyncedResults); |
+ if (mObserver != null) { |
+ mObserver.hasOtherFormsOfBrowsingData(hasOtherForms, hasSyncedResults); |
+ } |
} |
private native long nativeInit(Profile profile); |