Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3310)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java

Issue 2512573003: [Android] Fix toolbar jumping in after returning to Chrome. (Closed)
Patch Set: rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 c4e168e39e9c2be1454733158fa36fe95557942d..56a69288f8feb6c1a2b2c5f7a981ff1db139b231 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
@@ -19,6 +19,7 @@ import org.chromium.base.ApplicationStatus;
import org.chromium.base.ApplicationStatus.ActivityStateListener;
import org.chromium.base.BaseChromiumApplication;
import org.chromium.base.BaseChromiumApplication.WindowFocusChangedListener;
+import org.chromium.base.ThreadUtils;
import org.chromium.base.TraceEvent;
import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.FullscreenHtmlApiDelegate;
@@ -40,6 +41,11 @@ import java.util.ArrayList;
public class ChromeFullscreenManager
extends FullscreenManager implements ActivityStateListener, WindowFocusChangedListener {
+ // The amount of time to delay the control show request after returning to a once visible
+ // activity. This delay is meant to allow Android to run its Activity focusing animation and
+ // have the controls scroll back in smoothly once that has finished.
+ private static final long ACTIVITY_RETURN_SHOW_REQUEST_DELAY_MS = 100;
+
private final Activity mActivity;
private final Window mWindow;
private final BrowserStateBrowserControlsVisibilityDelegate mBrowserVisibilityDelegate;
@@ -189,9 +195,12 @@ public class ChromeFullscreenManager
@Override
public void setTab(Tab tab) {
+ Tab previousTab = getTab();
super.setTab(tab);
mBrowserVisibilityDelegate.setTab(getTab());
- if (tab != null) mBrowserVisibilityDelegate.showControlsTransient();
+ if (tab != null && previousTab != getTab()) {
+ mBrowserVisibilityDelegate.showControlsTransient();
+ }
}
@Override
@@ -202,7 +211,12 @@ public class ChromeFullscreenManager
// notification bar when this was done in onStart()).
setPersistentFullscreenMode(false);
} else if (newState == ActivityState.STARTED) {
- mBrowserVisibilityDelegate.showControlsTransient();
+ ThreadUtils.postOnUiThreadDelayed(new Runnable() {
+ @Override
+ public void run() {
+ mBrowserVisibilityDelegate.showControlsTransient();
+ }
+ }, ACTIVITY_RETURN_SHOW_REQUEST_DELAY_MS);
} else if (newState == ActivityState.DESTROYED) {
ApplicationStatus.unregisterActivityStateListener(this);
((BaseChromiumApplication) mWindow.getContext().getApplicationContext())
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698