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 be593535cf38a490673f125a9a6364b2bc2e5052..d8c720999d6614d4569b563f406632ca2e665162 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 |
@@ -460,11 +460,16 @@ class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelected |
private void handleTranslateOptionPostSnackbar(int actionId) { |
switch (actionId) { |
case ACTION_OVERFLOW_ALWAYS_TRANSLATE: |
+ toggleAlwaysTranslate(); |
+ // Start translating if always translate is selected and if page is not already |
+ // translated to the target language. |
+ if (mOptions.alwaysTranslateLanguageState() |
+ && mTabLayout.getSelectedTabPosition() == SOURCE_TAB_INDEX) { |
+ startTranslating(mTabLayout.getSelectedTabPosition()); |
+ } |
+ return; |
case ACTION_AUTO_ALWAYS_TRANSLATE: |
- mOptions.toggleAlwaysTranslateLanguageState( |
- !mOptions.alwaysTranslateLanguageState()); |
- nativeApplyBoolTranslateOption(mNativeTranslateInfoBarPtr, |
- TranslateOption.ALWAYS_TRANSLATE, mOptions.alwaysTranslateLanguageState()); |
+ toggleAlwaysTranslate(); |
return; |
case ACTION_OVERFLOW_NEVER_LANGUAGE: |
case ACTION_AUTO_NEVER_LANGUAGE: |
@@ -482,6 +487,12 @@ class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelected |
} |
} |
+ private void toggleAlwaysTranslate() { |
+ mOptions.toggleAlwaysTranslateLanguageState(!mOptions.alwaysTranslateLanguageState()); |
+ nativeApplyBoolTranslateOption(mNativeTranslateInfoBarPtr, TranslateOption.ALWAYS_TRANSLATE, |
+ mOptions.alwaysTranslateLanguageState()); |
+ } |
+ |
private static void recordInfobarAction(int action) { |
RecordHistogram.recordEnumeratedHistogram( |
INFOBAR_HISTOGRAM, action, INFOBAR_HISTOGRAM_BOUNDARY); |