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

Side by Side Diff: chrome/browser/ui/android/infobars/translate_compact_infobar.cc

Issue 2899893004: Code cleanup for Translate Compact 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
« no previous file with comments | « chrome/browser/ui/android/infobars/translate_compact_infobar.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 action_flags_ |= FLAG_TRANSLATE; 65 action_flags_ |= FLAG_TRANSLATE;
66 delegate->Translate(); 66 delegate->Translate();
67 if (!delegate->ShouldAlwaysTranslate() && ShouldAutoAlwaysTranslate()) { 67 if (!delegate->ShouldAlwaysTranslate() && ShouldAutoAlwaysTranslate()) {
68 JNIEnv* env = base::android::AttachCurrentThread(); 68 JNIEnv* env = base::android::AttachCurrentThread();
69 Java_TranslateCompactInfoBar_setAutoAlwaysTranslate(env, 69 Java_TranslateCompactInfoBar_setAutoAlwaysTranslate(env,
70 GetJavaInfoBar()); 70 GetJavaInfoBar());
71 } 71 }
72 } else if (action == InfoBarAndroid::ACTION_TRANSLATE_SHOW_ORIGINAL) { 72 } else if (action == InfoBarAndroid::ACTION_TRANSLATE_SHOW_ORIGINAL) {
73 action_flags_ |= FLAG_REVERT; 73 action_flags_ |= FLAG_REVERT;
74 delegate->RevertWithoutClosingInfobar(); 74 delegate->RevertWithoutClosingInfobar();
75 } else if (action == InfoBarAndroid::ACTION_CANCEL) {
76 delegate->TranslationDeclined();
77 } else { 75 } else {
78 DCHECK_EQ(InfoBarAndroid::ACTION_NONE, action); 76 DCHECK_EQ(InfoBarAndroid::ACTION_NONE, action);
79 } 77 }
80 } 78 }
81 79
82 void TranslateCompactInfoBar::SetJavaInfoBar( 80 void TranslateCompactInfoBar::SetJavaInfoBar(
83 const base::android::JavaRef<jobject>& java_info_bar) { 81 const base::android::JavaRef<jobject>& java_info_bar) {
84 InfoBarAndroid::SetJavaInfoBar(java_info_bar); 82 InfoBarAndroid::SetJavaInfoBar(java_info_bar);
85 JNIEnv* env = base::android::AttachCurrentThread(); 83 JNIEnv* env = base::android::AttachCurrentThread();
86 Java_TranslateCompactInfoBar_setNativePtr(env, java_info_bar, 84 Java_TranslateCompactInfoBar_setNativePtr(env, java_info_bar,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 } 132 }
135 } 133 }
136 134
137 bool TranslateCompactInfoBar::ShouldAutoAlwaysTranslate() { 135 bool TranslateCompactInfoBar::ShouldAutoAlwaysTranslate() {
138 translate::TranslateInfoBarDelegate* delegate = GetDelegate(); 136 translate::TranslateInfoBarDelegate* delegate = GetDelegate();
139 return (delegate->GetTranslationAcceptedCount() == kAcceptCountThreshold); 137 return (delegate->GetTranslationAcceptedCount() == kAcceptCountThreshold);
140 } 138 }
141 139
142 jboolean TranslateCompactInfoBar::ShouldAutoNeverTranslate( 140 jboolean TranslateCompactInfoBar::ShouldAutoNeverTranslate(
143 JNIEnv* env, 141 JNIEnv* env,
144 const base::android::JavaParamRef<jobject>& obj) { 142 const base::android::JavaParamRef<jobject>& obj,
143 jboolean menu_expanded) {
144 // Mark menu expanded.
145 if (menu_expanded)
146 action_flags_ |= FLAG_EXPAND_MENU;
147
148 if (!IsDeclinedByUser())
149 return false;
150
145 translate::TranslateInfoBarDelegate* delegate = GetDelegate(); 151 translate::TranslateInfoBarDelegate* delegate = GetDelegate();
152 // Don't trigger if it's off the recored or already blocked.
Marti Wong 2017/05/23 08:23:32 typo: record
Leo 2017/05/23 14:33:01 Thanks for the catch.
153 if (delegate->is_off_the_record() ||
154 !delegate->IsTranslatableLanguageByPrefs())
155 return false;
156
146 return (delegate->GetTranslationDeniedCount() == kDeniedCountThreshold); 157 return (delegate->GetTranslationDeniedCount() == kDeniedCountThreshold);
147 } 158 }
148 159
149 translate::TranslateInfoBarDelegate* TranslateCompactInfoBar::GetDelegate() { 160 translate::TranslateInfoBarDelegate* TranslateCompactInfoBar::GetDelegate() {
150 return delegate()->AsTranslateInfoBarDelegate(); 161 return delegate()->AsTranslateInfoBarDelegate();
151 } 162 }
152 163
153 void TranslateCompactInfoBar::OnTranslateStepChanged( 164 void TranslateCompactInfoBar::OnTranslateStepChanged(
154 translate::TranslateStep step, 165 translate::TranslateStep step,
155 translate::TranslateErrors::Type error_type) { 166 translate::TranslateErrors::Type error_type) {
156 if (!owner()) 167 if (!owner())
157 return; // We're closing; don't call anything. 168 return; // We're closing; don't call anything.
158 169
159 if ((step == translate::TRANSLATE_STEP_AFTER_TRANSLATE) || 170 if ((step == translate::TRANSLATE_STEP_AFTER_TRANSLATE) ||
160 (step == translate::TRANSLATE_STEP_TRANSLATE_ERROR)) { 171 (step == translate::TRANSLATE_STEP_TRANSLATE_ERROR)) {
161 JNIEnv* env = base::android::AttachCurrentThread(); 172 JNIEnv* env = base::android::AttachCurrentThread();
162 Java_TranslateCompactInfoBar_onPageTranslated(env, GetJavaInfoBar(), 173 Java_TranslateCompactInfoBar_onPageTranslated(env, GetJavaInfoBar(),
163 error_type); 174 error_type);
164 } 175 }
165 } 176 }
166 177
167 bool TranslateCompactInfoBar::IsDeclinedByUser() { 178 bool TranslateCompactInfoBar::IsDeclinedByUser() {
168 return action_flags_ == FLAG_NONE; 179 return action_flags_ == FLAG_NONE;
Marti Wong 2017/05/23 08:23:32 If user clicks on CLOSE after a auto translate (wi
Leo 2017/05/23 14:33:01 Added more explanation in where it's defined.
169 }; 180 };
170 181
171 // Native JNI methods --------------------------------------------------------- 182 // Native JNI methods ---------------------------------------------------------
172 183
173 // static 184 // static
174 bool RegisterTranslateCompactInfoBar(JNIEnv* env) { 185 bool RegisterTranslateCompactInfoBar(JNIEnv* env) {
175 return RegisterNativesImpl(env); 186 return RegisterNativesImpl(env);
176 } 187 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/android/infobars/translate_compact_infobar.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698