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..0389b7f0fbc1b7b468f98c37dd2d8af3314c876d 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); |
@@ -134,11 +135,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 +167,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()) { |
@@ -193,6 +210,7 @@ class TranslateCompactInfoBar extends InfoBar |
@Override |
public void onOverflowMenuItemClicked(int itemId) { |
+ mUserInteracted = true; |
switch (itemId) { |
case TranslateMenu.ID_OVERFLOW_MORE_LANGUAGE: |
initMenuHelper(TranslateMenu.MENU_TARGET_LANGUAGE); |