Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Unified Diff: chrome/browser/ui/android/infobars/translate_compact_infobar.cc

Issue 2871783003: Automatically trigger Always-Translate in new translation infobar (Closed)
Patch Set: fix Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698