Disable immersive mode on keyboard popup
Keyboard was hiding the text box in case the browser
was in immersive mode. This change will prevent that
from happening.
Change-Id: I9f21fd1043da43071cf752657196c5bc432641f1
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index c24cc48..2d7c0b3 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -108,6 +108,7 @@
protected TitleBar mTitleBar;
private NavigationBarBase mNavigationBar;
private boolean mBlockFocusAnimations;
+ private boolean mFullscreenModeLocked;
private EdgeSwipeController mEdgeSwipeController;
private EdgeSwipeSettings mEdgeSwipeSettings;
@@ -138,6 +139,7 @@
// install system ui visibility listeners
mDecorView = mActivity.getWindow().getDecorView();
mDecorView.setOnSystemUiVisibilityChangeListener(mSystemUiVisibilityChangeListener);
+ mFullscreenModeLocked = false;
}
private View.OnSystemUiVisibilityChangeListener mSystemUiVisibilityChangeListener =
@@ -844,7 +846,16 @@
}
}
+ public void forceDisableFullscreenMode(boolean disabled) {
+ mFullscreenModeLocked = false;
+ setFullscreen(!disabled);
+ mFullscreenModeLocked = disabled;
+ }
+
public void setFullscreen(boolean enabled) {
+ if (mFullscreenModeLocked)
+ return;
+
Window win = mActivity.getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN;
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 8f4db51..1bcf4a9 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -321,7 +321,12 @@
mCurrentState = new PageState(mContext,
view.isPrivateBrowsingEnabled(), url, favicon);
mLoadStartTime = SystemClock.uptimeMillis();
-
+ // Need re-enable FullScreenMode on Page navigation if needed
+ if (BrowserSettings.getInstance().useFullscreen()){
+ Controller controller = (Controller) mWebViewController;
+ BaseUi ui = (BaseUi) controller.getUi();
+ ui.forceDisableFullscreenMode(false);
+ }
// If we start a touch icon load and then load a new page, we don't
// want to cancel the current touch icon loader. But, we do want to
// create a new one when the touch icon url is known.
@@ -668,6 +673,15 @@
}
}
}
+
+ @Override
+ public void onKeyboardStateChange(boolean popup) {
+ if (BrowserSettings.getInstance().useFullscreen()) {
+ Controller controller = (Controller) mWebViewController;
+ BaseUi ui = (BaseUi) controller.getUi();
+ ui.forceDisableFullscreenMode(popup);
+ }
+ }
};
private void syncCurrentState(WebView view, String url) {