Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentlyClosedBridge.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentlyClosedBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentlyClosedBridge.java |
| index a760b2ef9883647ba7d067f82d4f7f4945305cfe..32423e9f043d98c94f5da864911e70b7a57111a2 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentlyClosedBridge.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentlyClosedBridge.java |
| @@ -14,37 +14,9 @@ import java.util.List; |
| /** |
| * This class allows Java code to get and clear the list of recently closed tabs. |
| */ |
| -public class RecentlyClosedBridge { |
| - private long mNativeRecentlyClosedTabsBridge; |
| - |
| - /** |
| - * Callback interface for getting notified when the list of recently closed tabs is updated. |
| - */ |
| - interface RecentlyClosedCallback { |
| - /** |
| - * This method will be called every time the list of recently closed tabs is updated. |
| - * |
| - * It's a good place to call {@link RecentlyClosedBridge#getRecentlyClosedTabs} to get the |
| - * updated list of tabs. |
| - */ |
| - @CalledByNative("RecentlyClosedCallback") |
| - void onUpdated(); |
| - } |
| - |
| - /** |
| - * Represents a recently closed tab. |
| - */ |
| - static class RecentlyClosedTab { |
| - public final int id; |
| - public final String title; |
| - public final String url; |
| - |
| - private RecentlyClosedTab(int id, String title, String url) { |
| - this.id = id; |
| - this.title = title; |
| - this.url = url; |
| - } |
| - } |
| +public class RecentlyClosedBridge implements RecentlyClosedTabManager { |
| + private long mNativeBridge; |
| + private RecentlyClosedCallback mCallback; |
|
Bernhard Bauer
2017/01/04 11:54:16
Maybe mark this as @Nullable?
Michael van Ouwerkerk
2017/01/05 11:02:14
Done.
|
| @CalledByNative |
| private static void pushTab( |
| @@ -58,34 +30,37 @@ public class RecentlyClosedBridge { |
| * @param profile The Profile whose recently closed tabs will be queried. |
| */ |
| public RecentlyClosedBridge(Profile profile) { |
| - mNativeRecentlyClosedTabsBridge = nativeInit(profile); |
| + mNativeBridge = nativeInit(profile); |
| } |
| /** |
| * Cleans up the C++ side of this class. This instance must not be used after calling destroy(). |
| */ |
| public void destroy() { |
| - assert mNativeRecentlyClosedTabsBridge != 0; |
| - nativeDestroy(mNativeRecentlyClosedTabsBridge); |
| - mNativeRecentlyClosedTabsBridge = 0; |
| + assert mNativeBridge != 0; |
| + nativeDestroy(mNativeBridge); |
| + mNativeBridge = 0; |
| + mCallback = null; |
| } |
| /** |
| * Sets the callback to be called whenever the list of recently closed tabs changes. |
| - * @param callback The RecentlyClosedCallback to be notified, or null. |
| + * @param callback The {@link RecentlyClosedTabManager.RecentlyClosedCallback} to be notified, |
| + * or null. |
| */ |
| - void setRecentlyClosedCallback(RecentlyClosedCallback callback) { |
| - nativeSetRecentlyClosedCallback(mNativeRecentlyClosedTabsBridge, callback); |
| + @Override |
| + public void setRecentlyClosedCallback(RecentlyClosedCallback callback) { |
| + mCallback = callback; |
| } |
| /** |
| * @param maxTabCount The maximum number of recently closed tabs to return. |
| * @return The list of recently closed tabs, with up to maxTabCount elements. |
| */ |
| - List<RecentlyClosedTab> getRecentlyClosedTabs(int maxTabCount) { |
| + @Override |
| + public List<RecentlyClosedTab> getRecentlyClosedTabs(int maxTabCount) { |
| List<RecentlyClosedTab> tabs = new ArrayList<RecentlyClosedTab>(); |
| - boolean received = nativeGetRecentlyClosedTabs(mNativeRecentlyClosedTabsBridge, tabs, |
| - maxTabCount); |
| + boolean received = nativeGetRecentlyClosedTabs(mNativeBridge, tabs, maxTabCount); |
| return received ? tabs : null; |
| } |
| @@ -99,31 +74,39 @@ public class RecentlyClosedBridge { |
| * the current tab or a new tab. |
| * @return Whether the tab was successfully opened. |
| */ |
| - boolean openRecentlyClosedTab(Tab tab, RecentlyClosedTab recentTab, |
| - int windowOpenDisposition) { |
| - return nativeOpenRecentlyClosedTab(mNativeRecentlyClosedTabsBridge, tab, recentTab.id, |
| - windowOpenDisposition); |
| + @Override |
| + public boolean openRecentlyClosedTab( |
| + Tab tab, RecentlyClosedTab recentTab, int windowOpenDisposition) { |
| + return nativeOpenRecentlyClosedTab(mNativeBridge, tab, recentTab.id, windowOpenDisposition); |
| } |
| /** |
| * Opens the most recently closed tab in a new tab by reading data from the native tab restore |
| * service. |
| */ |
| + @Override |
| public void openRecentlyClosedTab() { |
| - nativeOpenMostRecentlyClosedTab(mNativeRecentlyClosedTabsBridge); |
| + nativeOpenMostRecentlyClosedTab(mNativeBridge); |
| } |
| /** |
| * Clears all recently closed tabs. |
| */ |
| - void clearRecentlyClosedTabs() { |
| - nativeClearRecentlyClosedTabs(mNativeRecentlyClosedTabsBridge); |
| + @Override |
| + public void clearRecentlyClosedTabs() { |
| + nativeClearRecentlyClosedTabs(mNativeBridge); |
| + } |
| + |
| + /** |
| + * This method will be called every time the list of recently closed tabs is updated. |
| + */ |
| + @CalledByNative |
| + private void onUpdated() { |
| + if (mCallback != null) mCallback.onUpdated(); |
| } |
| private native long nativeInit(Profile profile); |
| private native void nativeDestroy(long nativeRecentlyClosedTabsBridge); |
| - private native void nativeSetRecentlyClosedCallback( |
| - long nativeRecentlyClosedTabsBridge, RecentlyClosedCallback callback); |
| private native boolean nativeGetRecentlyClosedTabs( |
| long nativeRecentlyClosedTabsBridge, List<RecentlyClosedTab> tabs, int maxTabCount); |
| private native boolean nativeOpenRecentlyClosedTab(long nativeRecentlyClosedTabsBridge, |