Index: chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fda2878df480146559ea5fe7e917cbbf0b79e844 |
--- /dev/null |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java |
@@ -0,0 +1,170 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser.enhancedbookmarks; |
+ |
+import android.support.annotation.Nullable; |
+import android.support.v4.widget.DrawerLayout; |
+import android.view.View; |
+ |
+import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel; |
+import org.chromium.chrome.browser.enhanced_bookmarks.LaunchLocation; |
+import org.chromium.components.bookmarks.BookmarkId; |
+ |
+import java.util.List; |
+ |
+/** |
+ * Interface used among EnhancedBookmark UI components to broadcast UI change notifications and get |
+ * bookmark data model. |
+ */ |
+interface EnhancedBookmarkDelegate { |
+ |
+ /** |
+ * Delegate used to open urls for main fragment on tablet. |
+ */ |
+ interface EnhancedBookmarkStateChangeListener { |
+ /** |
+ * Let the tab containing bookmark manager load the url and later handle UI updates. |
+ * @param url The url to open in tab. |
+ */ |
+ public void onBookmarkUIStateChange(String url); |
+ } |
+ |
+ static final int STATE_LOADING = 0; |
+ static final int STATE_ALL_BOOKMARKS = 1; |
+ static final int STATE_FOLDER = 2; |
+ static final int STATE_FILTER = 3; |
+ |
+ /** |
+ * Corresponds to "All Items" list item in the side drawer. Shows all bookmarks. |
+ */ |
+ void openAllBookmarks(); |
+ |
+ /** |
+ * Corresponds to any folder named list item in the side drawer. Shows bookmarks under the |
+ * folder. |
+ * @param folder Parent folder that contains bookmarks to show as its children. |
+ */ |
+ void openFolder(BookmarkId folder); |
+ |
+ /** |
+ * Corresponds to any filter list item in the side drawer. Shows bookmarks under the |
+ * filter. |
+ * @param filter Filter string to search |
+ */ |
+ void openFilter(String filter); |
+ |
+ /** |
+ * Clear all selected items. After this call, {@link #isSelectionEnabled()} will return false. |
+ */ |
+ void clearSelection(); |
+ |
+ /** |
+ * Toggle the selection state of a bookmark. If the given bookmark is not |
+ * editable, it will take no effect. |
+ * @return True if the bookmark is selected after toggling. False otherwise. |
+ */ |
+ boolean toggleSelectionForBookmark(BookmarkId bookmark); |
+ |
+ /** |
+ * @return True if the bookmark is selected. False otherwise. |
+ */ |
+ boolean isBookmarkSelected(BookmarkId bookmark); |
+ |
+ /** |
+ * @return Whether selection is happening. |
+ */ |
+ boolean isSelectionEnabled(); |
+ |
+ /** |
+ * @return The list of bookmarks that are currently selected by the user. |
+ */ |
+ List<BookmarkId> getSelectedBookmarks(); |
+ |
+ /** |
+ * Sets list mode. If the mode is toggles, |
+ * {@link EnhancedBookmarkUIObserver#onListModeChange(boolean)} will be called. |
+ */ |
+ void setListModeEnabled(boolean isListModeEnabled); |
+ |
+ /** |
+ * @return True is list mode is enabled. False otherwise. |
+ */ |
+ boolean isListModeEnabled(); |
+ |
+ /** |
+ * Notifies the current mode set event to the given observer. For example, if the current mode |
+ * is MODE_ALL_BOOKMARKS, it calls onAllBookmarksModeSet. |
+ */ |
+ void notifyStateChange(EnhancedBookmarkUIObserver observer); |
+ |
+ /** |
+ * @return Whether there is a drawer. |
+ */ |
+ boolean doesDrawerExist(); |
+ |
+ /** |
+ * Close drawer if it's visible. |
+ */ |
+ void closeDrawer(); |
+ |
+ /** |
+ * @return The current drawer layout instance, if it exists. |
+ */ |
+ DrawerLayout getDrawerLayout(); |
+ |
+ /** |
+ * Closes the EnhancedBookmark UI (if on phone) and opens the given bookmark. |
+ * @param bookmark bookmark to open. |
+ * @param launchLocation The UI location where user tried to open bookmark. It is one of |
+ * {@link LaunchLocation} values |
+ */ |
+ void openBookmark(BookmarkId bookmark, int launchLocation); |
+ |
+ /** |
+ * Starts detail activity with shared element animation. On Lollipop and later devices, shows a |
+ * shared image animation. On earlier devices, opens the activity using the standard Activity |
+ * transition. |
+ * @param bookmarkId The bookmark that the detail activity shows. |
+ * @param view The view to share for activity transition animation. If null, no transition is |
+ * displayed. |
+ */ |
+ void startDetailActivity(BookmarkId bookmarkId, @Nullable View view); |
+ |
+ /** |
+ * Shows the search UI. |
+ */ |
+ void openSearchUI(); |
+ |
+ /** |
+ * Dismisses the search UI. |
+ */ |
+ void closeSearchUI(); |
+ |
+ /** |
+ * Closes the EnhancedBookmark Activity on Phone. Does nothing on tablet. |
+ */ |
+ void finishActivityOnPhone(); |
+ |
+ /** |
+ * Add an observer to enhanced bookmark UI changes. |
+ */ |
+ void addUIObserver(EnhancedBookmarkUIObserver observer); |
+ |
+ /** |
+ * Remove an observer of enhanced bookmark UI changes. |
+ */ |
+ void removeUIObserver(EnhancedBookmarkUIObserver observer); |
+ |
+ /** |
+ * @return Enhanced bookmark data model associated with this UI. |
+ */ |
+ EnhancedBookmarksModel getModel(); |
+ |
+ /** |
+ * @return Current UIState of Enhanced Bookmark main UI. If no mode is stored, |
+ * {@link EnhancedBookmarkDelegate#STATE_LOADING} is returned. |
+ */ |
+ int getCurrentState(); |
+} |