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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java

Issue 2904173002: Do peeking animation when target language truncated (Translate infobar) (Closed)
Patch Set: fix Created 3 years, 6 months 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 | chrome/android/java/src/org/chromium/chrome/browser/infobar/translate/TranslateTabLayout.java » ('j') | 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/infobar/TranslateCompactInfoBar.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
index 1649dc037aea066839cc0ee02dc41d22a380cb54..5128efe960e0e5cc73ae0f678e089c913e9aa0d8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
@@ -104,6 +104,7 @@ public class TranslateCompactInfoBar extends InfoBar
private TintedImageButton mMenuButton;
private boolean mMenuExpanded;
+ private boolean mIsFirstLayout = true;
/** The controller for translate UI snackbars. */
class TranslateSnackbarController implements SnackbarController {
@@ -187,12 +188,27 @@ public class TranslateCompactInfoBar extends InfoBar
mTabLayout.addOnTabSelectedListener(this);
- // Dismiss all menus when there is layout changed. (which will cause menu misplacement.)
+ // Dismiss all menus and end peeking animation when there is layout changed.
mTabLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom,
int oldLeft, int oldTop, int oldRight, int oldBottom) {
- dismissMenus();
+ if (left != oldLeft || top != oldTop || right != oldRight || bottom != oldBottom) {
+ // Dismiss all menus to prevent menu misplacement.
+ dismissMenus();
+
+ if (mIsFirstLayout) {
+ // If this pages is auto-translated (mInitialStep == TRANSLATING_INFOBAR),
+ // peeking animation will scroll to end without scrolling back to start.
+ mTabLayout.startPeekingAnimationIfNeeded(
+ mInitialStep == TRANSLATING_INFOBAR);
+ mIsFirstLayout = false;
+ return;
+ }
+
+ // End peeking animation because the scroll distance might be changed.
+ mTabLayout.endPeekingAnimationIfPlaying();
+ }
}
});
@@ -200,6 +216,7 @@ public class TranslateCompactInfoBar extends InfoBar
mMenuButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
+ mTabLayout.endPeekingAnimationIfPlaying();
recordInfobarAction(INFOBAR_OPTIONS);
initMenuHelper(TranslateMenu.MENU_OVERFLOW);
mOverflowMenuHelper.show(TranslateMenu.MENU_OVERFLOW);
@@ -294,6 +311,7 @@ public class TranslateCompactInfoBar extends InfoBar
@Override
public void onCloseButtonClicked() {
+ mTabLayout.endPeekingAnimationIfPlaying();
closeInfobar(true);
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/infobar/translate/TranslateTabLayout.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698