Commit acbc2641 authored by Evan Stade's avatar Evan Stade Committed by Commit Bot

Remove VrModeProvider code from SelectableList widget.

Bug: 1110930, 1016938
Change-Id: I60d7bccc8dda4ea46708b92f7816fc17892e57af
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2380646
Commit-Queue: Evan Stade <estade@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#803929}
parent 2f5d1202
......@@ -18,7 +18,6 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.recyclerview.widget.RecyclerView;
import org.chromium.chrome.browser.vr.VrModeProviderImpl;
import org.chromium.chrome.tab_ui.R;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
......@@ -58,7 +57,7 @@ class TabSelectionEditorLayout extends SelectableListLayout<Integer> {
initializeRecyclerView(adapter, recyclerView);
mToolbar =
(TabSelectionEditorToolbar) initializeToolbar(R.layout.tab_selection_editor_toolbar,
selectionDelegate, 0, 0, 0, null, false, true, new VrModeProviderImpl());
selectionDelegate, 0, 0, 0, null, false, true);
mParentView = parentView;
}
......
......@@ -27,7 +27,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.ui.favicon.LargeIconBridge;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
import org.chromium.chrome.browser.vr.VrModeProviderImpl;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.browser_ui.util.ConversionUtils;
import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate;
......@@ -209,7 +208,7 @@ public class BookmarkManager
mToolbar = (BookmarkActionBar) mSelectableListLayout.initializeToolbar(
R.layout.bookmark_action_bar, mSelectionDelegate, 0, R.id.normal_menu_group,
R.id.selection_mode_menu_group, null, true, isDialogUi, new VrModeProviderImpl());
R.id.selection_mode_menu_group, null, true, isDialogUi);
mToolbar.initializeSearchView(
this, R.string.bookmark_action_bar_search, R.id.search_menu_id);
......
......@@ -14,7 +14,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.settings.SettingsLauncher;
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.vr.VrModeProviderImpl;
import org.chromium.components.browser_ui.util.GlobalDiscardableReferencePool;
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.ui.modaldialog.ModalDialogManager;
......@@ -42,7 +41,7 @@ public class DownloadManagerCoordinatorFactoryHelper {
modalDialogManager, UserPrefs.get(profile),
TrackerFactory.getTrackerForProfile(profile), new FaviconProviderImpl(profile),
OfflineContentAggregatorFactory.get(), legacyProvider,
GlobalDiscardableReferencePool.getReferencePool(), new VrModeProviderImpl());
GlobalDiscardableReferencePool.getReferencePool());
}
private static void settingsLaunchHelper(Context context) {
......
......@@ -33,7 +33,6 @@ import org.chromium.components.offline_items_collection.OfflineContentProvider;
import org.chromium.components.prefs.PrefService;
import org.chromium.content_public.browser.UiThreadTaskTraits;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.vr.VrModeProvider;
import java.io.Closeable;
......@@ -64,7 +63,7 @@ class DownloadManagerCoordinatorImpl
ModalDialogManager modalDialogManager, PrefService prefService, Tracker tracker,
FaviconProvider faviconProvider, OfflineContentProvider provider,
LegacyDownloadProvider legacyProvider,
DiscardableReferencePool discardableReferencePool, VrModeProvider vrModeProvider) {
DiscardableReferencePool discardableReferencePool) {
mActivity = activity;
mSettingsLauncher = settingsLauncher;
mDeleteCoordinator = new DeleteUndoCoordinator(snackbarManager);
......@@ -75,7 +74,7 @@ class DownloadManagerCoordinatorImpl
createDateOrderedListObserver(), modalDialogManager, prefService, faviconProvider,
discardableReferencePool);
mToolbarCoordinator = new ToolbarCoordinator(mActivity, this, mListCoordinator,
mSelectionDelegate, config.isSeparateActivity, tracker, vrModeProvider);
mSelectionDelegate, config.isSeparateActivity, tracker);
initializeView();
if (config.startWithPrefetchedContent) {
......
......@@ -20,7 +20,6 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectableListT
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver;
import org.chromium.components.feature_engagement.Tracker;
import org.chromium.ui.vr.VrModeProvider;
import java.util.List;
......@@ -92,8 +91,8 @@ public class ToolbarCoordinator implements SelectionObserver<ListItem> {
public ToolbarCoordinator(Context context, ToolbarActionDelegate delegate,
ToolbarListActionDelegate listActionDelegate,
SelectionDelegate<ListItem> selectionDelegate, boolean hasCloseButton, Tracker tracker,
VrModeProvider vrModeProvider) {
SelectionDelegate<ListItem> selectionDelegate, boolean hasCloseButton,
Tracker tracker) {
mDelegate = delegate;
mListActionDelegate = listActionDelegate;
......@@ -103,7 +102,7 @@ public class ToolbarCoordinator implements SelectionObserver<ListItem> {
mShadow = mView.findViewById(R.id.shadow);
mToolbar.initialize(selectionDelegate, R.string.menu_downloads, R.id.normal_menu_group,
R.id.selection_mode_menu_group, hasCloseButton, vrModeProvider);
R.id.selection_mode_menu_group, hasCloseButton);
mToolbar.setOnMenuItemClickListener(this ::onMenuItemClick);
// TODO(crbug.com/881037): Pass the visible group to the toolbar during initialization.
......
......@@ -49,7 +49,6 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
import org.chromium.chrome.browser.vr.VrModeProviderImpl;
import org.chromium.components.browser_ui.util.ConversionUtils;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate;
......@@ -144,7 +143,7 @@ public class HistoryManager implements OnMenuItemClickListener, SignInStateObser
mToolbar = (HistoryManagerToolbar) mSelectableListLayout.initializeToolbar(
R.layout.history_toolbar, mSelectionDelegate, R.string.menu_history,
R.id.normal_menu_group, R.id.selection_mode_menu_group, this, true,
isSeparateActivity, new VrModeProviderImpl());
isSeparateActivity);
mToolbar.setManager(this);
mToolbar.initializeSearchView(this, R.string.history_manager_search, R.id.search_menu_id);
mToolbar.setInfoMenuItem(R.id.info_menu_id);
......
......@@ -74,7 +74,6 @@ import org.chromium.chrome.browser.share.clipboard.ClipboardImageFileProvider;
import org.chromium.chrome.browser.sharing.shared_clipboard.SharedClipboardShareActivity;
import org.chromium.chrome.browser.signin.SigninHelper;
import org.chromium.chrome.browser.sync.SyncController;
import org.chromium.chrome.browser.vr.VrModeProviderImpl;
import org.chromium.chrome.browser.webapps.WebApkVersionManager;
import org.chromium.chrome.browser.webapps.WebappRegistry;
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
......@@ -224,7 +223,7 @@ public class ProcessInitializationHandler {
List<String> mimeTypes) {
mDialog = new PhotoPickerDialog(windowAndroid,
windowAndroid.getContext().get().getContentResolver(), listener,
allowMultiple, mimeTypes, new VrModeProviderImpl());
allowMultiple, mimeTypes);
mDialog.getWindow().getAttributes().windowAnimations =
R.style.PickerDialogAnimation;
mDialog.show();
......@@ -255,8 +254,7 @@ public class ProcessInitializationHandler {
ChromeActivity activity = (ChromeActivity) context;
mDialog = new ContactsPickerDialog(activity.getWindowAndroid(),
new ChromePickerAdapter(), listener, allowMultiple, includeNames,
includeEmails, includeTel, includeAddresses, includeIcons, formattedOrigin,
new VrModeProviderImpl());
includeEmails, includeTel, includeAddresses, includeIcons, formattedOrigin);
mDialog.getWindow().getAttributes().windowAnimations =
R.style.PickerDialogAnimation;
mDialog.show();
......
......@@ -58,7 +58,6 @@ import org.chromium.chrome.browser.download.ui.StubbedProvider;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.vr.VrModeProviderImpl;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
import org.chromium.components.embedder_support.util.UrlConstants;
......@@ -176,8 +175,7 @@ public class DownloadActivityV2Test extends DummyUiActivityTestCase {
mDownloadCoordinator = new DownloadManagerCoordinatorImpl(getActivity(), config,
isPrefetchEnabledSupplier, settingsLauncher, mSnackbarManager, mModalDialogManager,
mPrefService, mTracker, faviconProvider, OfflineContentAggregatorFactory.get(),
/* LegacyDownloadProvider */ null, mDiscardableReferencePool,
new VrModeProviderImpl());
/* LegacyDownloadProvider */ null, mDiscardableReferencePool);
getActivity().setContentView(mDownloadCoordinator.getView());
mDownloadCoordinator.updateForUrl(UrlConstants.DOWNLOADS_URL);
......
......@@ -9,7 +9,6 @@ import androidx.appcompat.app.AlertDialog;
import org.chromium.ui.ContactsPickerListener;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.vr.VrModeProvider;
/**
* UI for the contacts picker that shows on the Android platform as a result of
......@@ -37,13 +36,12 @@ public class ContactsPickerDialog
public ContactsPickerDialog(WindowAndroid windowAndroid, PickerAdapter adapter,
ContactsPickerListener listener, boolean allowMultiple, boolean includeNames,
boolean includeEmails, boolean includeTel, boolean includeAddresses,
boolean includeIcons, String formattedOrigin, VrModeProvider vrModeProvider) {
boolean includeIcons, String formattedOrigin) {
super(windowAndroid.getContext().get(), R.style.Theme_Chromium_Fullscreen);
// Initialize the main content view.
mCategoryView = new PickerCategoryView(windowAndroid, adapter, allowMultiple, includeNames,
includeEmails, includeTel, includeAddresses, includeIcons, formattedOrigin, this,
vrModeProvider);
includeEmails, includeTel, includeAddresses, includeIcons, formattedOrigin, this);
mCategoryView.initialize(this, listener);
setView(mCategoryView);
}
......
......@@ -41,8 +41,6 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.test.util.DisableAnimationsTestRule;
import org.chromium.ui.test.util.DummyUiActivityTestCase;
import org.chromium.ui.test.util.RenderTestRule;
import org.chromium.ui.vr.VrModeObserver;
import org.chromium.ui.vr.VrModeProvider;
import java.nio.ByteBuffer;
import java.util.ArrayList;
......@@ -182,17 +180,7 @@ public class ContactsPickerDialogTest extends DummyUiActivityTestCase
},
ContactsPickerDialogTest.this, multiselect, includeNames,
includeEmails, includeTel, includeAddresses, includeIcons,
"example.com",
new VrModeProvider() {
@Override
public boolean isInVr() {
return false;
}
@Override
public void registerVrModeObserver(VrModeObserver observer) {}
@Override
public void unregisterVrModeObserver(VrModeObserver observer) {}
});
"example.com");
dialog.show();
return dialog;
}
......
......@@ -13,7 +13,6 @@ import androidx.core.widget.ImageViewCompat;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.ui.vr.VrModeProvider;
import org.chromium.ui.widget.ButtonCompat;
import java.util.List;
......@@ -78,10 +77,9 @@ public class ContactsPickerToolbar extends SelectableListToolbar<ContactDetails>
@Override
public void initialize(SelectionDelegate<ContactDetails> delegate, int titleResId,
int normalGroupResId, int selectedGroupResId, boolean updateStatusBarColor,
VrModeProvider vrModeProvider) {
super.initialize(delegate, titleResId, normalGroupResId, selectedGroupResId,
updateStatusBarColor, vrModeProvider);
int normalGroupResId, int selectedGroupResId, boolean updateStatusBarColor) {
super.initialize(
delegate, titleResId, normalGroupResId, selectedGroupResId, updateStatusBarColor);
showBackArrow();
}
......
......@@ -32,7 +32,6 @@ import org.chromium.ui.ContactsPickerListener;
import org.chromium.ui.UiUtils;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.vr.VrModeProvider;
import org.chromium.ui.widget.OptimizedFrameLayout;
import java.util.ArrayList;
......@@ -138,14 +137,12 @@ public class PickerCategoryView extends OptimizedFrameLayout
* @param formattedOrigin The origin receiving the contact details, formatted for display in the
* UI.
* @param delegate A delegate listening for events from the toolbar.
* @param vrModeProvider Provides accessors for VR mode state.
*/
@SuppressWarnings("unchecked") // mSelectableListLayout
public PickerCategoryView(WindowAndroid windowAndroid, PickerAdapter adapter,
boolean multiSelectionAllowed, boolean shouldIncludeNames, boolean shouldIncludeEmails,
boolean shouldIncludeTel, boolean shouldIncludeAddresses, boolean shouldIncludeIcons,
String formattedOrigin, ContactsPickerToolbar.ContactsToolbarDelegate delegate,
VrModeProvider vrModeProvider) {
String formattedOrigin, ContactsPickerToolbar.ContactsToolbarDelegate delegate) {
super(windowAndroid.getContext().get(), null);
mWindowAndroid = windowAndroid;
......@@ -180,7 +177,7 @@ public class PickerCategoryView extends OptimizedFrameLayout
: R.string.contacts_picker_select_contact;
mToolbar = (ContactsPickerToolbar) mSelectableListLayout.initializeToolbar(
R.layout.contacts_picker_toolbar, mSelectionDelegate, titleId, 0, 0, null, false,
false, vrModeProvider);
false);
mToolbar.setNavigationOnClickListener(this);
mToolbar.initializeSearchView(this, R.string.contacts_picker_search, 0);
mToolbar.setDelegate(delegate);
......
......@@ -17,7 +17,6 @@ import org.chromium.base.ApplicationStatus.ActivityStateListener;
import org.chromium.base.ContextUtils;
import org.chromium.ui.base.PhotoPickerListener;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.vr.VrModeProvider;
import java.util.List;
......@@ -85,19 +84,17 @@ public class PhotoPickerDialog
* @param multiSelectionAllowed Whether the photo picker should allow multiple items to be
* selected.
* @param mimeTypes A list of mime types to show in the dialog.
* @param vrModeProvider Used to query VR mode state.
*/
public PhotoPickerDialog(WindowAndroid windowAndroid, ContentResolver contentResolver,
PhotoPickerListener listener, boolean multiSelectionAllowed, List<String> mimeTypes,
VrModeProvider vrModeProvider) {
PhotoPickerListener listener, boolean multiSelectionAllowed, List<String> mimeTypes) {
super(windowAndroid.getContext().get(), R.style.Theme_Chromium_Fullscreen);
mWindowAndroid = windowAndroid;
mListenerWrapper = new PhotoPickerListenerWrapper(listener);
// Initialize the main content view.
mCategoryView = new PickerCategoryView(
windowAndroid, contentResolver, multiSelectionAllowed, this, vrModeProvider);
mCategoryView =
new PickerCategoryView(windowAndroid, contentResolver, multiSelectionAllowed, this);
mCategoryView.initialize(this, mListenerWrapper, mimeTypes);
setView(mCategoryView);
}
......
......@@ -44,8 +44,6 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.test.util.DisableAnimationsTestRule;
import org.chromium.ui.test.util.DummyUiActivityTestCase;
import org.chromium.ui.test.util.RenderTestRule;
import org.chromium.ui.vr.VrModeObserver;
import org.chromium.ui.vr.VrModeProvider;
import java.io.File;
import java.util.ArrayList;
......@@ -261,18 +259,9 @@ public class PhotoPickerDialogTest extends DummyUiActivityTestCase
TestThreadUtils.runOnUiThreadBlocking(new Callable<PhotoPickerDialog>() {
@Override
public PhotoPickerDialog call() {
final PhotoPickerDialog dialog = new PhotoPickerDialog(mWindowAndroid,
contentResolver, PhotoPickerDialogTest.this, multiselect, mimeTypes,
new VrModeProvider() {
@Override
public boolean isInVr() {
return false;
}
@Override
public void registerVrModeObserver(VrModeObserver observer) {}
@Override
public void unregisterVrModeObserver(VrModeObserver observer) {}
});
final PhotoPickerDialog dialog =
new PhotoPickerDialog(mWindowAndroid, contentResolver,
PhotoPickerDialogTest.this, multiselect, mimeTypes);
dialog.show();
return dialog;
}
......
......@@ -11,7 +11,6 @@ import android.widget.Button;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.ui.vr.VrModeProvider;
import java.util.List;
......@@ -64,10 +63,9 @@ public class PhotoPickerToolbar extends SelectableListToolbar<PickerBitmap> {
@Override
public void initialize(SelectionDelegate<PickerBitmap> delegate, int titleResId,
int normalGroupResId, int selectedGroupResId, boolean updateStatusBarColor,
VrModeProvider vrModeProvider) {
super.initialize(delegate, titleResId, normalGroupResId, selectedGroupResId,
updateStatusBarColor, vrModeProvider);
int normalGroupResId, int selectedGroupResId, boolean updateStatusBarColor) {
super.initialize(
delegate, titleResId, normalGroupResId, selectedGroupResId, updateStatusBarColor);
showBackArrow();
}
......
......@@ -39,7 +39,6 @@ import org.chromium.net.MimeTypeFilter;
import org.chromium.ui.base.PhotoPickerListener;
import org.chromium.ui.base.SelectFileDialog;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.vr.VrModeProvider;
import java.util.ArrayList;
import java.util.Collections;
......@@ -193,12 +192,10 @@ public class PickerCategoryView extends RelativeLayout
* @param windowAndroid The window of the hosting {@link Activity}.
* @param contentResolver The ContentResolver to use to retrieve image metadata from disk.
* @param multiSelectionAllowed Whether to allow the user to select more than one image.
* @param vrModeProvider The VR mode provider for querying VR mode state.
*/
@SuppressWarnings("unchecked") // mSelectableListLayout
public PickerCategoryView(WindowAndroid windowAndroid, ContentResolver contentResolver,
boolean multiSelectionAllowed, PhotoPickerToolbar.PhotoPickerToolbarDelegate delegate,
VrModeProvider vrModeProvider) {
boolean multiSelectionAllowed, PhotoPickerToolbar.PhotoPickerToolbarDelegate delegate) {
super(windowAndroid.getContext().get());
mWindowAndroid = windowAndroid;
Context context = mWindowAndroid.getContext().get();
......@@ -222,7 +219,7 @@ public class PickerCategoryView extends RelativeLayout
: R.string.photo_picker_select_image;
PhotoPickerToolbar toolbar = (PhotoPickerToolbar) mSelectableListLayout.initializeToolbar(
R.layout.photo_picker_toolbar, mSelectionDelegate, titleId, 0, 0, null, false,
false, vrModeProvider);
false);
toolbar.setNavigationOnClickListener(this);
toolbar.setDelegate(delegate);
Button doneButton = (Button) toolbar.findViewById(R.id.done);
......
......@@ -34,7 +34,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.HorizontalDisplayS
import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
import org.chromium.components.browser_ui.widget.displaystyle.UiConfig.DisplayStyle;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver;
import org.chromium.ui.vr.VrModeProvider;
import java.util.List;
......@@ -200,14 +199,13 @@ public class SelectableListLayout<E>
public SelectableListToolbar<E> initializeToolbar(int toolbarLayoutId,
SelectionDelegate<E> delegate, int titleResId, int normalGroupResId,
int selectedGroupResId, @Nullable OnMenuItemClickListener listener,
boolean showShadowOnSelection, boolean updateStatusBarColor,
VrModeProvider vrModeProvider) {
boolean showShadowOnSelection, boolean updateStatusBarColor) {
mToolbarStub.setLayoutResource(toolbarLayoutId);
@SuppressWarnings("unchecked")
SelectableListToolbar<E> toolbar = (SelectableListToolbar<E>) mToolbarStub.inflate();
mToolbar = toolbar;
mToolbar.initialize(delegate, titleResId, normalGroupResId, selectedGroupResId,
updateStatusBarColor, vrModeProvider);
mToolbar.initialize(
delegate, titleResId, normalGroupResId, selectedGroupResId, updateStatusBarColor);
if (listener != null) {
mToolbar.setOnMenuItemClickListener(listener);
......
......@@ -47,8 +47,6 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
import org.chromium.ui.KeyboardVisibilityDelegate;
import org.chromium.ui.UiUtils;
import org.chromium.ui.util.ColorUtils;
import org.chromium.ui.vr.VrModeObserver;
import org.chromium.ui.vr.VrModeProvider;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
......@@ -63,7 +61,7 @@ import java.util.List;
*/
public class SelectableListToolbar<E>
extends Toolbar implements SelectionObserver<E>, OnClickListener, OnEditorActionListener,
DisplayStyleObserver, VrModeObserver {
DisplayStyleObserver {
/**
* A delegate that handles searching the list of selectable items associated with this toolbar.
*/
......@@ -97,7 +95,6 @@ public class SelectableListToolbar<E>
protected boolean mIsSelectionEnabled;
protected SelectionDelegate<E> mSelectionDelegate;
protected VrModeProvider mVrModeProvider;
private boolean mIsSearching;
private boolean mHasSearchView;
......@@ -106,7 +103,6 @@ public class SelectableListToolbar<E>
private ImageButton mClearTextButton;
private SearchDelegate mSearchDelegate;
private boolean mSearchEnabled;
private boolean mIsVrEnabled;
private boolean mUpdateStatusBarColor;
protected NumberRollView mNumberRollView;
......@@ -159,7 +155,6 @@ public class SelectableListToolbar<E>
mIsDestroyed = true;
if (mSelectionDelegate != null) mSelectionDelegate.removeObserver(this);
if (mSearchEditText != null) hideKeyboard();
if (mVrModeProvider != null) mVrModeProvider.unregisterVrModeObserver(this);
}
/**
......@@ -175,10 +170,9 @@ public class SelectableListToolbar<E>
* @param updateStatusBarColor Whether the status bar color should be updated to match the
* toolbar color. If true, the status bar will only be updated if
* the current device fully supports theming and is on Android M+.
* @param vrModeProvider Used to modify behavior based on VR state.
*/
public void initialize(SelectionDelegate<E> delegate, int titleResId, int normalGroupResId,
int selectedGroupResId, boolean updateStatusBarColor, VrModeProvider vrModeProvider) {
int selectedGroupResId, boolean updateStatusBarColor) {
mTitleResId = titleResId;
mNormalGroupResId = normalGroupResId;
mSelectedGroupResId = selectedGroupResId;
......@@ -221,31 +215,11 @@ public class SelectableListToolbar<E>
mNavigationIconDrawable = UiUtils.getTintedDrawable(getContext(),
R.drawable.ic_arrow_back_white_24dp, R.color.default_icon_color_tint_list);
mVrModeProvider = vrModeProvider;
mVrModeProvider.registerVrModeObserver(this);
if (mVrModeProvider.isInVr()) onEnterVr();
mShowInfoIcon = true;
mShowInfoStringId = R.string.show_info;
mHideInfoStringId = R.string.hide_info;
}
@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();
updateInfoMenuItem(mShowInfoItem, mInfoShowing);
}
@Override
public void onExitVr() {
mIsVrEnabled = false;
if (mHasSearchView) updateSearchMenuItem();
updateInfoMenuItem(mShowInfoItem, mInfoShowing);
}
/**
* Inflates and initializes the search view.
* @param searchDelegate The delegate that will handle performing searches.
......@@ -574,8 +548,7 @@ public class SelectableListToolbar<E>
if (!mHasSearchView) return;
MenuItem searchMenuItem = getMenu().findItem(mSearchMenuItemId);
if (searchMenuItem != null) {
searchMenuItem.setVisible(
mSearchEnabled && !mIsSelectionEnabled && !mIsSearching && !mIsVrEnabled);
searchMenuItem.setVisible(mSearchEnabled && !mIsSelectionEnabled && !mIsSearching);
}
}
......@@ -600,7 +573,7 @@ public class SelectableListToolbar<E>
/**
* Update icon, title, and visibility of info menu item.
* @param showItem Whether or not info menu item should show.
* @param showItem Whether or not info menu item should show.
* @param infoShowing Whether or not info header is currently showing.
*/
public void updateInfoMenuItem(boolean showItem, boolean infoShowing) {
......@@ -618,16 +591,7 @@ public class SelectableListToolbar<E>
infoMenuItem.setIcon(iconDrawable);
}
if (mVrModeProvider.isInVr()) {
// There seems to be a bug with the support library, only on Android N, where the
// toast showing the title shows up every time the info menu item is clicked or
// scrolled on, even if its long press handler is overridden. VR on N doesn't
// support toasts, which render monocularly over top of VR content, so we need to
// disable it.
infoMenuItem.setTitle("");
} else {
infoMenuItem.setTitle(infoShowing ? mHideInfoStringId : mShowInfoStringId);
}
infoMenuItem.setTitle(infoShowing ? mHideInfoStringId : mShowInfoStringId);
infoMenuItem.setVisible(showItem);
}
}
......
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