| 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 fbadb25bc70471b8b5dda92911d99d2116fce09d..9a8a96a66da4fd97eb38e30ad7b6dcee2645e991 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
|
| @@ -40,8 +40,8 @@ class TranslateCompactInfoBar extends InfoBar
|
| // showing language menu after dismissing overflow menu.
|
| private TranslateMenuHelper mOverflowMenuHelper;
|
| private TranslateMenuHelper mLanguageMenuHelper;
|
| -
|
| private TintedImageButton mMenuButton;
|
| + private boolean mUserInteracted;
|
|
|
| /** The controller for translate UI snackbars. */
|
| class TranslateSnackbarController implements SnackbarController {
|
| @@ -98,6 +98,7 @@ class TranslateCompactInfoBar extends InfoBar
|
| if (mInitialStep == TRANSLATING_INFOBAR) {
|
| mTabLayout.getTabAt(TARGET_TAB_INDEX).select();
|
| mTabLayout.showProgressBarOnTab(TARGET_TAB_INDEX);
|
| + mUserInteracted = true;
|
| }
|
|
|
| mTabLayout.addOnTabSelectedListener(this);
|
| @@ -106,6 +107,7 @@ class TranslateCompactInfoBar extends InfoBar
|
| mMenuButton.setOnClickListener(new OnClickListener() {
|
| @Override
|
| public void onClick(View v) {
|
| + mUserInteracted = true;
|
| initMenuHelper(TranslateMenu.MENU_OVERFLOW);
|
| mOverflowMenuHelper.show(TranslateMenu.MENU_OVERFLOW);
|
| }
|
| @@ -134,11 +136,12 @@ class TranslateCompactInfoBar extends InfoBar
|
| }
|
| }
|
|
|
| - private void startTranslating(int tabPostion) {
|
| - if (TARGET_TAB_INDEX == tabPostion) {
|
| + private void startTranslating(int tabPosition) {
|
| + if (TARGET_TAB_INDEX == tabPosition) {
|
| // Already on the target tab.
|
| mTabLayout.showProgressBarOnTab(TARGET_TAB_INDEX);
|
| onButtonClicked(ActionType.TRANSLATE);
|
| + mUserInteracted = true;
|
| } else {
|
| mTabLayout.getTabAt(TARGET_TAB_INDEX).select();
|
| }
|
| @@ -165,12 +168,27 @@ class TranslateCompactInfoBar extends InfoBar
|
| mNativeTranslateInfoBarPtr = nativePtr;
|
| }
|
|
|
| + @CalledByNative
|
| + private void setAutoAlwaysTranslate() {
|
| + createAndShowSnackbar(getContext().getString(R.string.translate_snackbar_always_translate,
|
| + mOptions.sourceLanguageName(), mOptions.targetLanguageName()),
|
| + Snackbar.UMA_TRANSLATE_ALWAYS, TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE);
|
| + }
|
| +
|
| @Override
|
| protected void onNativeDestroyed() {
|
| mNativeTranslateInfoBarPtr = 0;
|
| super.onNativeDestroyed();
|
| }
|
|
|
| + @Override
|
| + public void onCloseButtonClicked() {
|
| + if (!mUserInteracted) {
|
| + onButtonClicked(ActionType.CANCEL);
|
| + }
|
| + super.onCloseButtonClicked();
|
| + }
|
| +
|
| @Override
|
| public void onTabSelected(TabLayout.Tab tab) {
|
| switch (tab.getPosition()) {
|
|
|