| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |