| Index: chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
|
| index c535e1bdb2b83de3b6a3aa2aa162cdc80149bc09..d1fdb2c6371ce156dc31a7a99f30cfe9e927c9c6 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
|
| @@ -49,6 +49,7 @@ public class ChromeFullscreenManager
|
| private final Window mWindow;
|
| private final BrowserStateBrowserControlsVisibilityDelegate mBrowserVisibilityDelegate;
|
| private final boolean mIsBottomControls;
|
| + private final boolean mExitFullscreenOnStop;
|
|
|
| private ControlContainer mControlContainer;
|
| private int mTopControlContainerHeight;
|
| @@ -70,7 +71,7 @@ public class ChromeFullscreenManager
|
| private boolean mBrowserControlsPermanentlyHidden;
|
| private boolean mBrowserControlsAndroidViewHidden;
|
|
|
| - private final ArrayList<FullscreenListener> mListeners = new ArrayList<FullscreenListener>();
|
| + private final ArrayList<FullscreenListener> mListeners = new ArrayList<>();
|
|
|
| /**
|
| * A listener that gets notified of changes to the fullscreen state.
|
| @@ -123,11 +124,24 @@ public class ChromeFullscreenManager
|
| * @param isBottomControls Whether or not the browser controls are at the bottom of the screen.
|
| */
|
| public ChromeFullscreenManager(Activity activity, boolean isBottomControls) {
|
| + this(activity, isBottomControls, true);
|
| + }
|
| +
|
| + /**
|
| + * Creates an instance of the fullscreen mode manager.
|
| + * @param activity The activity that supports fullscreen.
|
| + * @param isBottomControls Whether or not the browser controls are at the bottom of the screen.
|
| + * @param exitFullscreenOnStop Whether fullscreen mode should exit on stop - should be
|
| + * true for Activities that are not always fullscreen.
|
| + */
|
| + public ChromeFullscreenManager(
|
| + Activity activity, boolean isBottomControls, boolean exitFullscreenOnStop) {
|
| super(activity.getWindow());
|
|
|
| mActivity = activity;
|
| mWindow = activity.getWindow();
|
| mIsBottomControls = isBottomControls;
|
| + mExitFullscreenOnStop = exitFullscreenOnStop;
|
| mBrowserVisibilityDelegate = new BrowserStateBrowserControlsVisibilityDelegate(
|
| new Runnable() {
|
| @Override
|
| @@ -228,7 +242,7 @@ public class ChromeFullscreenManager
|
|
|
| @Override
|
| public void onActivityStateChange(Activity activity, int newState) {
|
| - if (newState == ActivityState.STOPPED) {
|
| + if (newState == ActivityState.STOPPED && mExitFullscreenOnStop) {
|
| // Exit fullscreen in onStop to ensure the system UI flags are set correctly when
|
| // showing again (on JB MR2+ builds, the omnibox would be covered by the
|
| // notification bar when this was done in onStart()).
|
|
|