Index: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
index 02a2a257de0364cf88d6ae94c5d7589e2efcf38d..f2f936ca62617c79ab84fbc9d1b12ac3e7e9e9a8 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
@@ -11,6 +11,7 @@ import android.util.Log; |
import android.view.Gravity; |
import android.view.View; |
import android.view.ViewGroup; |
+import android.widget.ViewSwitcher; |
import org.chromium.base.ObserverList; |
import org.chromium.base.metrics.RecordHistogram; |
@@ -49,6 +50,8 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate { |
private Set<BookmarkId> mSelectedBookmarks = new HashSet<>(); |
private EnhancedBookmarkStateChangeListener mUrlChangeListener; |
private EnhancedBookmarkContentView mContentView; |
+ private EnhancedBookmarkSearchView mSearchView; |
+ private ViewSwitcher mViewSwitcher; |
private DrawerLayout mDrawer; |
private EnhancedBookmarkDrawerListView mDrawerListView; |
private final Stack<UIState> mStateStack = new Stack<>(); |
@@ -105,8 +108,10 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate { |
mDrawerListView = (EnhancedBookmarkDrawerListView) mMainView.findViewById( |
R.id.eb_drawer_list); |
mContentView = (EnhancedBookmarkContentView) mMainView.findViewById(R.id.eb_content_view); |
+ mViewSwitcher = (ViewSwitcher) mMainView.findViewById(R.id.eb_view_switcher); |
mUndoController = new EnhancedBookmarkUndoController(activity, mEnhancedBookmarksModel, |
((SnackbarManageable) activity).getSnackbarManager()); |
+ mSearchView = (EnhancedBookmarkSearchView) getView().findViewById(R.id.eb_search_view); |
mEnhancedBookmarksModel.addObserver(mBookmarkModelObserver); |
initializeIfBookmarkModelLoaded(); |
@@ -207,6 +212,7 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate { |
*/ |
private void initializeIfBookmarkModelLoaded() { |
if (mEnhancedBookmarksModel.isBookmarkModelLoaded()) { |
+ mSearchView.onEnhancedBookmarkDelegateInitialized(this); |
mDrawerListView.onEnhancedBookmarkDelegateInitialized(this); |
mContentView.onEnhancedBookmarkDelegateInitialized(this); |
if (mStateStack.isEmpty()) { |
@@ -292,11 +298,13 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate { |
@Override |
public void openFolder(BookmarkId folder) { |
+ closeSearchUI(); |
setState(UIState.createFolderState(folder, mEnhancedBookmarksModel)); |
} |
@Override |
public void openAllBookmarks() { |
+ closeSearchUI(); |
setState(UIState.createAllBookmarksState(mEnhancedBookmarksModel)); |
} |
@@ -396,6 +404,18 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate { |
} |
@Override |
+ public void openSearchUI() { |
+ // Give search view focus, because it needs to handle back key event. |
+ mViewSwitcher.showNext(); |
+ } |
+ |
+ @Override |
+ public void closeSearchUI() { |
+ if (mSearchView.getVisibility() != View.VISIBLE) return; |
+ mViewSwitcher.showPrevious(); |
+ } |
+ |
+ @Override |
public void finishActivityOnPhone() { |
Activity activity = mActivity; |
if (activity instanceof EnhancedBookmarkActivity) { |