Commit fd67247e authored by Yash Malik's avatar Yash Malik Committed by Commit Bot

VR: Disable searching in SelectableListToolbar while in VR

Bug: 818266
Change-Id: Ib7a2d04fa8182f623ea07eedf0a6f4aef8516d8d
Reviewed-on: https://chromium-review.googlesource.com/955343
Commit-Queue: Yash Malik <ymalik@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542135}
parent 33aebdce
...@@ -36,6 +36,7 @@ import org.chromium.chrome.R; ...@@ -36,6 +36,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.toolbar.ActionModeController; import org.chromium.chrome.browser.toolbar.ActionModeController;
import org.chromium.chrome.browser.toolbar.ToolbarActionModeCallback; import org.chromium.chrome.browser.toolbar.ToolbarActionModeCallback;
import org.chromium.chrome.browser.util.FeatureUtilities; import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.chrome.browser.vr_shell.VrShellDelegate;
import org.chromium.chrome.browser.widget.NumberRollView; import org.chromium.chrome.browser.widget.NumberRollView;
import org.chromium.chrome.browser.widget.TintedDrawable; import org.chromium.chrome.browser.widget.TintedDrawable;
import org.chromium.chrome.browser.widget.TintedImageButton; import org.chromium.chrome.browser.widget.TintedImageButton;
...@@ -56,9 +57,9 @@ import javax.annotation.Nullable; ...@@ -56,9 +57,9 @@ import javax.annotation.Nullable;
* *
* @param <E> The type of the selectable items this toolbar interacts with. * @param <E> The type of the selectable items this toolbar interacts with.
*/ */
public class SelectableListToolbar<E> extends Toolbar implements SelectionObserver<E>, public class SelectableListToolbar<E>
OnClickListener, OnEditorActionListener, DisplayStyleObserver { extends Toolbar implements SelectionObserver<E>, OnClickListener, OnEditorActionListener,
DisplayStyleObserver, VrShellDelegate.VrModeObserver {
/** /**
* A delegate that handles searching the list of selectable items associated with this toolbar. * A delegate that handles searching the list of selectable items associated with this toolbar.
*/ */
...@@ -116,6 +117,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv ...@@ -116,6 +117,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv
private SearchDelegate mSearchDelegate; private SearchDelegate mSearchDelegate;
private boolean mIsLightTheme = true; private boolean mIsLightTheme = true;
private boolean mSelectableListHasItems; private boolean mSelectableListHasItems;
private boolean mIsVrEnabled = false;
protected NumberRollView mNumberRollView; protected NumberRollView mNumberRollView;
private DrawerLayout mDrawerLayout; private DrawerLayout mDrawerLayout;
...@@ -158,6 +160,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv ...@@ -158,6 +160,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv
if (mSelectionDelegate != null) mSelectionDelegate.removeObserver(this); if (mSelectionDelegate != null) mSelectionDelegate.removeObserver(this);
mObservers.clear(); mObservers.clear();
UiUtils.hideKeyboard(mSearchEditText); UiUtils.hideKeyboard(mSearchEditText);
VrShellDelegate.unregisterVrModeObserver(this);
} }
/** /**
...@@ -222,6 +225,20 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv ...@@ -222,6 +225,20 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv
} }
} }
@Override
public void onEnterVr() {
// TODO(https://crbug.com/817177): Editing text is not supported in VR, so we disable
// searching.
mIsVrEnabled = true;
if (mHasSearchView) updateSearchMenuItem();
}
@Override
public void onExitVr() {
mIsVrEnabled = false;
if (mHasSearchView) updateSearchMenuItem();
}
/** /**
* Inflates and initializes the search view. * Inflates and initializes the search view.
* @param searchDelegate The delegate that will handle performing searches. * @param searchDelegate The delegate that will handle performing searches.
...@@ -274,6 +291,9 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv ...@@ -274,6 +291,9 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv
getResources().getDimensionPixelSize(R.dimen.clear_text_button_end_padding), getResources().getDimensionPixelSize(R.dimen.clear_text_button_end_padding),
mClearTextButton.getPaddingBottom()); mClearTextButton.getPaddingBottom());
} }
VrShellDelegate.registerVrModeObserver(this);
if (VrShellDelegate.isInVr()) onEnterVr();
} }
@Override @Override
...@@ -450,9 +470,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv ...@@ -450,9 +470,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv
protected void onDataChanged(int numItems) { protected void onDataChanged(int numItems) {
if (mHasSearchView) { if (mHasSearchView) {
mSelectableListHasItems = numItems != 0; mSelectableListHasItems = numItems != 0;
getMenu() updateSearchMenuItem();
.findItem(mSearchMenuItemId)
.setVisible(!mIsSelectionEnabled && !mIsSearching && mSelectableListHasItems);
} }
} }
...@@ -577,7 +595,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv ...@@ -577,7 +595,7 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv
getMenu().setGroupVisible(mSelectedGroupResId, false); getMenu().setGroupVisible(mSelectedGroupResId, false);
if (mHasSearchView) { if (mHasSearchView) {
mSearchView.setVisibility(View.GONE); mSearchView.setVisibility(View.GONE);
getMenu().findItem(mSearchMenuItemId).setVisible(mSelectableListHasItems); updateSearchMenuItem();
} }
setNavigationButton(NAVIGATION_BUTTON_MENU); setNavigationButton(NAVIGATION_BUTTON_MENU);
...@@ -626,6 +644,15 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv ...@@ -626,6 +644,15 @@ public class SelectableListToolbar<E> extends Toolbar implements SelectionObserv
updateDisplayStyleIfNecessary(); updateDisplayStyleIfNecessary();
} }
private void updateSearchMenuItem() {
if (!mHasSearchView) return;
MenuItem searchMenuItem = getMenu().findItem(mSearchMenuItemId);
if (searchMenuItem != null) {
searchMenuItem.setVisible(mSelectableListHasItems && !mIsSelectionEnabled
&& !mIsSearching && !mIsVrEnabled);
}
}
protected void switchToNumberRollView(List<E> selectedItems, boolean wasSelectionEnabled) { protected void switchToNumberRollView(List<E> selectedItems, boolean wasSelectionEnabled) {
setTitle(null); setTitle(null);
mNumberRollView.setVisibility(View.VISIBLE); mNumberRollView.setVisibility(View.VISIBLE);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment