Chromium Code Reviews| 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 73 void TranslateCompactInfoBar::SetJavaInfoBar( | 73 void TranslateCompactInfoBar::SetJavaInfoBar( |
| 74 const base::android::JavaRef<jobject>& java_info_bar) { | 74 const base::android::JavaRef<jobject>& java_info_bar) { |
| 75 InfoBarAndroid::SetJavaInfoBar(java_info_bar); | 75 InfoBarAndroid::SetJavaInfoBar(java_info_bar); |
| 76 JNIEnv* env = base::android::AttachCurrentThread(); | 76 JNIEnv* env = base::android::AttachCurrentThread(); |
| 77 Java_TranslateCompactInfoBar_setNativePtr(env, java_info_bar, | 77 Java_TranslateCompactInfoBar_setNativePtr(env, java_info_bar, |
| 78 reinterpret_cast<intptr_t>(this)); | 78 reinterpret_cast<intptr_t>(this)); |
| 79 } | 79 } |
| 80 | 80 |
| 81 void TranslateCompactInfoBar::ApplyTranslateOptions( | 81 void TranslateCompactInfoBar::ApplyTranslateOptions( |
| 82 JNIEnv* env, | 82 JNIEnv* env, |
| 83 const JavaParamRef<jobject>& obj) { | 83 const JavaParamRef<jobject>& obj, |
| 84 // TODO(ramyasharma): Implement. | 84 int option, |
| 85 const JavaParamRef<jstring>& value) { | |
| 86 translate::TranslateInfoBarDelegate* delegate = GetDelegate(); | |
| 87 if (option == TranslateUtils::OPTION_SOURCE_CODE) { | |
|
gone
2017/04/11 17:32:36
These should be else ifs.
ramyasharma
2017/04/12 00:36:41
thanks. done.
| |
| 88 std::string source_code = | |
| 89 base::android::ConvertJavaStringToUTF8(env, value); | |
| 90 if (delegate->original_language_code().compare(source_code) != 0) | |
| 91 delegate->UpdateOriginalLanguage(source_code); | |
| 92 } | |
| 93 | |
| 94 if (option == TranslateUtils::OPTION_TARGET_CODE) { | |
| 95 std::string target_code = | |
| 96 base::android::ConvertJavaStringToUTF8(env, value); | |
| 97 if (delegate->target_language_code().compare(target_code) != 0) | |
| 98 delegate->UpdateTargetLanguage(target_code); | |
| 99 } | |
| 100 | |
| 101 if (option == TranslateUtils::OPTION_ALWAYS_TRANSLATE) { | |
| 102 bool always_translate = GetBoolValue(env, value); | |
| 103 if (delegate->ShouldAlwaysTranslate() != always_translate) | |
| 104 delegate->ToggleAlwaysTranslate(); | |
| 105 } | |
| 106 | |
| 107 if (option == TranslateUtils::OPTION_NEVER_TRANSLATE) { | |
| 108 bool never_translate = GetBoolValue(env, value); | |
| 109 if (never_translate && delegate->IsTranslatableLanguageByPrefs()) | |
| 110 delegate->ToggleTranslatableLanguageByPrefs(); | |
| 111 } | |
| 112 | |
| 113 if (option == TranslateUtils::OPTION_NEVER_TRANSLATE_SITE) { | |
| 114 bool never_translate_site = GetBoolValue(env, value); | |
| 115 if (never_translate_site && !delegate->IsSiteBlacklisted()) | |
| 116 delegate->ToggleSiteBlacklist(); | |
| 117 } | |
| 118 } | |
| 119 | |
| 120 bool TranslateCompactInfoBar::GetBoolValue(JNIEnv* env, | |
| 121 const JavaParamRef<jstring>& value) { | |
| 122 const std::string kTrue = "true"; | |
|
gone
2017/04/11 17:32:36
you shouldn't be needing this function after chang
ramyasharma
2017/04/12 00:36:40
Moved the const the anonymous namespace. Thanks.
| |
| 123 std::string string_value = base::android::ConvertJavaStringToUTF8(env, value); | |
| 124 return kTrue.compare(string_value) == 0; | |
| 85 } | 125 } |
| 86 | 126 |
| 87 void TranslateCompactInfoBar::OnPageTranslated( | 127 void TranslateCompactInfoBar::OnPageTranslated( |
| 88 const std::string& original_lang, | 128 const std::string& original_lang, |
| 89 const std::string& translated_lang, | 129 const std::string& translated_lang, |
| 90 translate::TranslateErrors::Type error_type) { | 130 translate::TranslateErrors::Type error_type) { |
| 91 if (!owner()) | 131 if (!owner()) |
| 92 return; // We're closing; don't call anything, it might access the owner. | 132 return; // We're closing; don't call anything, it might access the owner. |
| 93 | 133 |
| 94 DCHECK(translate_driver_); | 134 DCHECK(translate_driver_); |
| 95 JNIEnv* env = base::android::AttachCurrentThread(); | 135 JNIEnv* env = base::android::AttachCurrentThread(); |
| 96 Java_TranslateCompactInfoBar_onPageTranslated(env, GetJavaInfoBar(), | 136 Java_TranslateCompactInfoBar_onPageTranslated(env, GetJavaInfoBar(), |
| 97 error_type); | 137 error_type); |
| 98 } | 138 } |
| 99 | 139 |
| 100 translate::TranslateInfoBarDelegate* TranslateCompactInfoBar::GetDelegate() { | 140 translate::TranslateInfoBarDelegate* TranslateCompactInfoBar::GetDelegate() { |
| 101 return delegate()->AsTranslateInfoBarDelegate(); | 141 return delegate()->AsTranslateInfoBarDelegate(); |
| 102 } | 142 } |
| 103 | 143 |
| 104 // Native JNI methods --------------------------------------------------------- | 144 // Native JNI methods --------------------------------------------------------- |
| 105 | 145 |
| 106 // static | 146 // static |
| 107 bool RegisterTranslateCompactInfoBar(JNIEnv* env) { | 147 bool RegisterTranslateCompactInfoBar(JNIEnv* env) { |
| 108 return RegisterNativesImpl(env); | 148 return RegisterNativesImpl(env); |
| 109 } | 149 } |
| OLD | NEW |