Commit d41e88bd authored by Matthew Jones's avatar Matthew Jones Committed by Commit Bot

Prevent VR from peeking bottom sheet

This patch removes some old Chrome Home code that caused the bottom
sheet to peek when exiting VR. Instead, the BottomSheetController now
listens to VR events and suppresses the sheet if necessary.

Bug: 840481
Change-Id: Iad8e20cd9876c2487150eac69693bac60266dee5
Reviewed-on: https://chromium-review.googlesource.com/c/1265834
Commit-Queue: Matthew Jones <mdjones@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597368}
parent 87ad4a2f
......@@ -55,7 +55,6 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver;
import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.chrome.browser.vr.keyboard.VrInputMethodManagerWrapper;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
import org.chromium.chrome.browser.widget.newtab.NewTabButton;
import org.chromium.content_public.browser.ImeAdapter;
import org.chromium.content_public.browser.LoadUrlParams;
......@@ -372,10 +371,6 @@ public class VrShell extends GvrLayout
launchNTP();
tab = mActivity.getActivityTab();
}
if (mActivity.getBottomSheet() != null) {
// Make sure the bottom sheet (Chrome Home) is hidden.
mActivity.getBottomSheet().setSheetState(BottomSheet.SheetState.PEEK, false);
}
// Start with content rendering paused if the renderer-drawn controls are visible, as this
// would cause the in-content omnibox to be shown to users.
......
......@@ -89,7 +89,7 @@ public class BottomSheet extends FrameLayout
/** The different reasons that the sheet's state can change. */
@IntDef({StateChangeReason.NONE, StateChangeReason.SWIPE, StateChangeReason.BACK_PRESS,
StateChangeReason.TAP_SCRIM, StateChangeReason.NAVIGATION,
StateChangeReason.COMPOSITED_UI})
StateChangeReason.COMPOSITED_UI, StateChangeReason.VR})
@Retention(RetentionPolicy.SOURCE)
public @interface StateChangeReason {
int NONE = 0;
......@@ -98,6 +98,7 @@ public class BottomSheet extends FrameLayout
int TAP_SCRIM = 3;
int NAVIGATION = 4;
int COMPOSITED_UI = 5;
int VR = 6;
}
/** The different priorities that the sheet's content can have. */
......
......@@ -19,6 +19,8 @@ import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabObserver;
import org.chromium.chrome.browser.vr.VrModeObserver;
import org.chromium.chrome.browser.vr.VrModuleProvider;
import org.chromium.chrome.browser.widget.ScrimView;
import org.chromium.chrome.browser.widget.ScrimView.ScrimObserver;
import org.chromium.chrome.browser.widget.ScrimView.ScrimParams;
......@@ -120,6 +122,18 @@ public class BottomSheetController implements ApplicationStatus.ActivityStateLis
}
};
VrModuleProvider.registerVrModeObserver(new VrModeObserver() {
@Override
public void onEnterVr() {
suppressSheet(StateChangeReason.VR);
}
@Override
public void onExitVr() {
unsuppressSheet();
}
});
mTabProvider.addObserverAndTrigger(new HintlessActivityTabObserver() {
@Override
public void onActivityTabChanged(Tab tab) {
......@@ -217,7 +231,7 @@ public class BottomSheetController implements ApplicationStatus.ActivityStateLis
*/
private void unsuppressSheet() {
if (!mIsSuppressed || mTabProvider.getActivityTab() == null || !mWasShownForCurrentTab
|| isOtherUIObscuring()) {
|| isOtherUIObscuring() || VrModuleProvider.getDelegate().isInVr()) {
return;
}
mIsSuppressed = false;
......
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