Commit 3f6f0f0b authored by tedchoc's avatar tedchoc Committed by Commit bot

Hide top controls when in VR mode.

BUG=643449

Review-Url: https://codereview.chromium.org/2365973003
Cr-Commit-Position: refs/heads/master@{#422946}
parent 72b177c5
......@@ -81,6 +81,8 @@ import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoS
import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.snackbar.undo.UndoBarController;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabDelegateFactory;
import org.chromium.chrome.browser.tab.TopControlsVisibilityDelegate;
import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver;
import org.chromium.chrome.browser.tabmodel.TabModel;
......@@ -103,6 +105,7 @@ import org.chromium.content.common.ContentSwitches;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.widget.Toast;
import java.lang.annotation.Retention;
......@@ -234,6 +237,43 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
}
}
private class TabbedModeTopControlsVisibilityDelegate extends TopControlsVisibilityDelegate {
public TabbedModeTopControlsVisibilityDelegate(Tab tab) {
super(tab);
}
@Override
public boolean isShowingTopControlsEnabled() {
if (mVrShellDelegate.isInVR()) return false;
return super.isShowingTopControlsEnabled();
}
@Override
public boolean isHidingTopControlsEnabled() {
if (mVrShellDelegate.isInVR()) return true;
return super.isHidingTopControlsEnabled();
}
}
private class TabbedModeTabDelegateFactory extends TabDelegateFactory {
@Override
public TopControlsVisibilityDelegate createTopControlsVisibilityDelegate(Tab tab) {
return new TabbedModeTopControlsVisibilityDelegate(tab);
}
}
private class TabbedModeTabCreator extends ChromeTabCreator {
public TabbedModeTabCreator(ChromeActivity activity, WindowAndroid nativeWindow,
boolean incognito) {
super(activity, nativeWindow, incognito);
}
@Override
public TabDelegateFactory createDefaultTabDelegateFactory() {
return new TabbedModeTabDelegateFactory();
}
}
@Override
public void initializeCompositor() {
try {
......@@ -993,8 +1033,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
return;
}
setTabCreators(
new ChromeTabCreator(this, getWindowAndroid(), false),
new ChromeTabCreator(this, getWindowAndroid(), true));
new TabbedModeTabCreator(this, getWindowAndroid(), false),
new TabbedModeTabCreator(this, getWindowAndroid(), true));
mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(mTabModelSelectorImpl) {
private boolean mIsFirstPageLoadStart = true;
......@@ -1563,9 +1603,6 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
mControlContainer.setVisibility(visibility);
getCompositorViewHolder().getSurfaceView().setVisibility(visibility);
getCompositorViewHolder().setVisibility(visibility);
// Enter HTML5 fullscreen to ensure the texture fills the entire composited surface.
getFullscreenManager().setPersistentFullscreenMode(visibility == View.GONE);
}
/**
......
......@@ -106,6 +106,7 @@ public class VrShellDelegate {
if (inWebVR) mVrShell.setWebVrModeEnabled(true);
mVrShell.setVrModeEnabled(true);
mInVr = true;
tab.updateFullscreenEnabledState();
return true;
}
......@@ -163,6 +164,8 @@ public class VrShellDelegate {
clearVrModeWindowFlags();
destroyVrShell();
mInVr = false;
Tab tab = mActivity.getActivityTab();
if (tab != null) tab.updateFullscreenEnabledState();
}
private boolean createVrShell() {
......
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