| Index: chrome/browser/ui/android/infobars/translate_compact_infobar.cc
|
| diff --git a/chrome/browser/ui/android/infobars/translate_compact_infobar.cc b/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
|
| index 0c0cec0f990aae91c8ac3adad27eb5edc2ee2968..94a729fa268f915958d2e6a02ac3a6c1236e8ccf 100644
|
| --- a/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
|
| +++ b/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
|
| @@ -63,12 +63,21 @@ void TranslateCompactInfoBar::ProcessButton(int action) {
|
|
|
| // TODO(ramyasharma): Handle other button clicks.
|
| translate::TranslateInfoBarDelegate* delegate = GetDelegate();
|
| - if (action == InfoBarAndroid::ACTION_TRANSLATE)
|
| + if (action == InfoBarAndroid::ACTION_TRANSLATE) {
|
| delegate->Translate();
|
| - else if (action == InfoBarAndroid::ACTION_TRANSLATE_SHOW_ORIGINAL)
|
| + if (!delegate->ShouldAlwaysTranslate() &&
|
| + delegate->ShouldAutoAlwaysTranslate()) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + Java_TranslateCompactInfoBar_setAutoAlwaysTranslate(env,
|
| + GetJavaInfoBar());
|
| + }
|
| + } else if (action == InfoBarAndroid::ACTION_TRANSLATE_SHOW_ORIGINAL) {
|
| delegate->RevertTranslation();
|
| - else
|
| + } else if (action == InfoBarAndroid::ACTION_CANCEL) {
|
| + delegate->TranslationDeclined();
|
| + } else {
|
| DCHECK_EQ(InfoBarAndroid::ACTION_NONE, action);
|
| + }
|
| }
|
|
|
| void TranslateCompactInfoBar::SetJavaInfoBar(
|
| @@ -136,6 +145,11 @@ void TranslateCompactInfoBar::OnPageTranslated(
|
| error_type);
|
| }
|
|
|
| +bool TranslateCompactInfoBar::ShouldAutoAlwaysTranslate() {
|
| + translate::TranslateInfoBarDelegate* delegate = GetDelegate();
|
| + return delegate->ShouldAutoAlwaysTranslate();
|
| +}
|
| +
|
| translate::TranslateInfoBarDelegate* TranslateCompactInfoBar::GetDelegate() {
|
| return delegate()->AsTranslateInfoBarDelegate();
|
| }
|
|
|