Chromium Code Reviews| 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 4d7592fe35818963c08b398af79e2b83bc077c37..7f107ecef23fbf9a0a1df886388f619b2e666a65 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 |
| @@ -16,6 +16,7 @@ import org.chromium.chrome.browser.infobar.translate.TranslateMenu; |
| import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper; |
| import org.chromium.chrome.browser.infobar.translate.TranslateTabLayout; |
| import org.chromium.chrome.browser.snackbar.Snackbar; |
| +import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; |
| import org.chromium.chrome.browser.widget.TintedImageButton; |
| import org.chromium.ui.widget.Toast; |
| @@ -42,6 +43,40 @@ class TranslateCompactInfoBar extends InfoBar |
| private TintedImageButton mMenuButton; |
| + enum TranslateSnackbarType { NONE, ALWAYS_TRANSLATE, NEVER_TRANSLATE, NEVER_TRANSLATE_SITE } |
| + ; |
|
gone
2017/05/04 17:20:52
1) git cl format? This ; on its own line is weird
ramyasharma
2017/05/05 02:55:13
Yes, git cl format put that ";" on the next line :
|
| + |
| + class TranslateSnackbarController implements SnackbarController { |
|
gone
2017/05/04 17:20:52
javadoc
ramyasharma
2017/05/05 02:55:13
done.
|
| + private TranslateSnackbarType mSnackbarType; |
|
gone
2017/05/04 17:20:52
final
ramyasharma
2017/05/05 02:55:13
Done.
|
| + |
| + public TranslateSnackbarController(TranslateSnackbarType snackbarType) { |
| + this.snackbarType = snackbarType; |
|
gone
2017/05/04 17:20:52
Does this compile?
ramyasharma
2017/05/05 02:55:13
argh.. sorry. No it doesn't. I missed updating oth
|
| + } |
| + |
| + @Override |
| + public void onDismissNoAction(Object actionData) { |
| + switch (snackbarType) { |
| + case ALWAYS_TRANSLATE: |
| + nativeApplyBoolTranslateOption( |
| + mNativeTranslateInfoBarPtr, TranslateOption.ALWAYS_TRANSLATE, true); |
| + return; |
| + case NEVER_TRANSLATE: |
| + nativeApplyBoolTranslateOption( |
| + mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE, true); |
| + return; |
| + case NEVER_TRANSLATE_SITE: |
| + nativeApplyBoolTranslateOption( |
| + mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE_SITE, true); |
| + return; |
| + } |
| + } |
| + |
| + @Override |
| + public void onAction(Object actionData) { |
| + // do nothing. |
| + } |
| + }; |
| + |
| @CalledByNative |
| private static InfoBar create(int initialStep, String sourceLanguageCode, |
| String targetLanguageCode, boolean alwaysTranslate, boolean triggeredFromMenu, |
| @@ -178,18 +213,12 @@ class TranslateCompactInfoBar extends InfoBar |
| mLanguageMenuHelper.show(TranslateMenu.MENU_TARGET_LANGUAGE); |
| return; |
| case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE: |
| - nativeApplyBoolTranslateOption( |
| - mNativeTranslateInfoBarPtr, TranslateOption.ALWAYS_TRANSLATE, true); |
| showSnackbar(TranslateSnackbarType.ALWAYS_TRANSLATE); |
| return; |
| case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE: |
| - nativeApplyBoolTranslateOption( |
| - mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE, true); |
| showSnackbar(TranslateSnackbarType.NEVER_TRANSLATE); |
| return; |
| case TranslateMenu.ID_OVERFLOW_NEVER_SITE: |
| - nativeApplyBoolTranslateOption( |
| - mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE_SITE, true); |
| showSnackbar(TranslateSnackbarType.NEVER_TRANSLATE_SITE); |
| return; |
| case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE: |
| @@ -225,29 +254,32 @@ class TranslateCompactInfoBar extends InfoBar |
| } |
| } |
| - private void showSnackbar(int snackbarType) { |
| + private void showSnackbar(TranslateSnackbarType snackbarType) { |
| if (snackbarType == TranslateSnackbarType.NEVER_TRANSLATE) { |
| createAndShowSnackbar(getContext().getString(R.string.translate_snackbar_language_never, |
| mOptions.sourceLanguageName()), |
| - Snackbar.UMA_TRANSLATE_NEVER); |
| + Snackbar.UMA_TRANSLATE_NEVER, snackbarType); |
| } else if (snackbarType == TranslateSnackbarType.ALWAYS_TRANSLATE) { |
| createAndShowSnackbar( |
| getContext().getString(R.string.translate_snackbar_always_translate, |
| mOptions.sourceLanguageName(), mOptions.targetLanguageName()), |
| - Snackbar.UMA_TRANSLATE_ALWAYS); |
| + Snackbar.UMA_TRANSLATE_ALWAYS, snackbarType); |
| } else if (snackbarType == TranslateSnackbarType.NEVER_TRANSLATE_SITE) { |
| createAndShowSnackbar(getContext().getString(R.string.translate_snackbar_site_never), |
| - Snackbar.UMA_TRANSLATE_NEVER_SITE); |
| + Snackbar.UMA_TRANSLATE_NEVER_SITE, snackbarType); |
| } |
| } |
| - private void createAndShowSnackbar(String title, int type) { |
| + private void createAndShowSnackbar(String title, int type, TranslateSnackbarType snackbarType) { |
| if (getSnackbarManager() == null) { |
| return; |
| } |
| - getSnackbarManager().showSnackbar(Snackbar.make(title, new TranslateSnackbarController(), |
| - Snackbar.TYPE_NOTIFICATION, type) |
| - .setSingleLine(false)); |
| + getSnackbarManager().showSnackbar( |
| + Snackbar.make(title, new TranslateSnackbarController(snackbarType), |
| + Snackbar.TYPE_NOTIFICATION, type) |
| + .setSingleLine(false) |
| + .setAction( |
| + getContext().getString(R.string.translate_snackbar_cancel), null)); |
| } |
| private native void nativeApplyStringTranslateOption( |