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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/android/infobars/translate_compact_infobar.h" 5 #include "chrome/browser/ui/android/infobars/translate_compact_infobar.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 target_language_code, delegate->ShouldAlwaysTranslate(), 56 target_language_code, delegate->ShouldAlwaysTranslate(),
57 delegate->triggered_from_menu(), java_languages, java_codes); 57 delegate->triggered_from_menu(), java_languages, java_codes);
58 } 58 }
59 59
60 void TranslateCompactInfoBar::ProcessButton(int action) { 60 void TranslateCompactInfoBar::ProcessButton(int action) {
61 if (!owner()) 61 if (!owner())
62 return; // We're closing; don't call anything, it might access the owner. 62 return; // We're closing; don't call anything, it might access the owner.
63 63
64 // TODO(ramyasharma): Handle other button clicks. 64 // TODO(ramyasharma): Handle other button clicks.
65 translate::TranslateInfoBarDelegate* delegate = GetDelegate(); 65 translate::TranslateInfoBarDelegate* delegate = GetDelegate();
66 if (action == InfoBarAndroid::ACTION_TRANSLATE) 66 if (action == InfoBarAndroid::ACTION_TRANSLATE) {
67 delegate->Translate(); 67 delegate->Translate();
68 else if (action == InfoBarAndroid::ACTION_TRANSLATE_SHOW_ORIGINAL) 68 if (!delegate->ShouldAlwaysTranslate() &&
69 delegate->ShouldAutoAlwaysTranslate()) {
70 JNIEnv* env = base::android::AttachCurrentThread();
71 Java_TranslateCompactInfoBar_setAutoAlwaysTranslate(env,
72 GetJavaInfoBar());
73 }
74 } else if (action == InfoBarAndroid::ACTION_TRANSLATE_SHOW_ORIGINAL) {
69 delegate->RevertTranslation(); 75 delegate->RevertTranslation();
70 else 76 } else if (action == InfoBarAndroid::ACTION_CANCEL) {
77 delegate->TranslationDeclined();
78 } else {
71 DCHECK_EQ(InfoBarAndroid::ACTION_NONE, action); 79 DCHECK_EQ(InfoBarAndroid::ACTION_NONE, action);
80 }
72 } 81 }
73 82
74 void TranslateCompactInfoBar::SetJavaInfoBar( 83 void TranslateCompactInfoBar::SetJavaInfoBar(
75 const base::android::JavaRef<jobject>& java_info_bar) { 84 const base::android::JavaRef<jobject>& java_info_bar) {
76 InfoBarAndroid::SetJavaInfoBar(java_info_bar); 85 InfoBarAndroid::SetJavaInfoBar(java_info_bar);
77 JNIEnv* env = base::android::AttachCurrentThread(); 86 JNIEnv* env = base::android::AttachCurrentThread();
78 Java_TranslateCompactInfoBar_setNativePtr(env, java_info_bar, 87 Java_TranslateCompactInfoBar_setNativePtr(env, java_info_bar,
79 reinterpret_cast<intptr_t>(this)); 88 reinterpret_cast<intptr_t>(this));
80 } 89 }
81 90
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 translate::TranslateErrors::Type error_type) { 138 translate::TranslateErrors::Type error_type) {
130 if (!owner()) 139 if (!owner())
131 return; // We're closing; don't call anything, it might access the owner. 140 return; // We're closing; don't call anything, it might access the owner.
132 141
133 DCHECK(translate_driver_); 142 DCHECK(translate_driver_);
134 JNIEnv* env = base::android::AttachCurrentThread(); 143 JNIEnv* env = base::android::AttachCurrentThread();
135 Java_TranslateCompactInfoBar_onPageTranslated(env, GetJavaInfoBar(), 144 Java_TranslateCompactInfoBar_onPageTranslated(env, GetJavaInfoBar(),
136 error_type); 145 error_type);
137 } 146 }
138 147
148 bool TranslateCompactInfoBar::ShouldAutoAlwaysTranslate() {
149 translate::TranslateInfoBarDelegate* delegate = GetDelegate();
150 return delegate->ShouldAutoAlwaysTranslate();
151 }
152
139 translate::TranslateInfoBarDelegate* TranslateCompactInfoBar::GetDelegate() { 153 translate::TranslateInfoBarDelegate* TranslateCompactInfoBar::GetDelegate() {
140 return delegate()->AsTranslateInfoBarDelegate(); 154 return delegate()->AsTranslateInfoBarDelegate();
141 } 155 }
142 156
143 // Native JNI methods --------------------------------------------------------- 157 // Native JNI methods ---------------------------------------------------------
144 158
145 // static 159 // static
146 bool RegisterTranslateCompactInfoBar(JNIEnv* env) { 160 bool RegisterTranslateCompactInfoBar(JNIEnv* env) {
147 return RegisterNativesImpl(env); 161 return RegisterNativesImpl(env);
148 } 162 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698