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 2e08dfe5e1d749a7d5bec4dfe63781998416c049..22662f53b77e5f3fee681383dc91dafa92a17ac8 100644 |
--- a/chrome/browser/ui/android/infobars/translate_compact_infobar.cc |
+++ b/chrome/browser/ui/android/infobars/translate_compact_infobar.cc |
@@ -78,10 +78,43 @@ void TranslateCompactInfoBar::SetJavaInfoBar( |
reinterpret_cast<intptr_t>(this)); |
} |
-void TranslateCompactInfoBar::ApplyTranslateOptions( |
+void TranslateCompactInfoBar::ApplyStringTranslateOption( |
JNIEnv* env, |
- const JavaParamRef<jobject>& obj) { |
- // TODO(ramyasharma): Implement. |
+ const JavaParamRef<jobject>& obj, |
+ int option, |
+ const JavaParamRef<jstring>& value) { |
+ translate::TranslateInfoBarDelegate* delegate = GetDelegate(); |
+ if (option == TranslateUtils::OPTION_SOURCE_CODE) { |
+ std::string source_code = |
+ base::android::ConvertJavaStringToUTF8(env, value); |
+ if (delegate->original_language_code().compare(source_code) != 0) |
+ delegate->UpdateOriginalLanguage(source_code); |
+ } else if (option == TranslateUtils::OPTION_TARGET_CODE) { |
+ std::string target_code = |
+ base::android::ConvertJavaStringToUTF8(env, value); |
+ if (delegate->target_language_code().compare(target_code) != 0) |
+ delegate->UpdateTargetLanguage(target_code); |
+ } else |
gone
2017/04/13 04:06:21
need braces here
ramyasharma
2017/04/13 04:13:55
I totally agree with the braces, but in this file
gone
2017/04/13 04:16:43
https://google.github.io/styleguide/cppguide.html#
ramyasharma
2017/04/13 04:24:47
ah thanks for clearing that up for me Dan. Done
|
+ DCHECK(false); |
+} |
+ |
+void TranslateCompactInfoBar::ApplyBoolTranslateOption( |
+ JNIEnv* env, |
+ const JavaParamRef<jobject>& obj, |
+ int option, |
+ jboolean value) { |
+ translate::TranslateInfoBarDelegate* delegate = GetDelegate(); |
+ if (option == TranslateUtils::OPTION_ALWAYS_TRANSLATE) { |
+ if (delegate->ShouldAlwaysTranslate() != value) |
+ delegate->ToggleAlwaysTranslate(); |
+ } else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE) { |
+ if (value && delegate->IsTranslatableLanguageByPrefs()) |
+ delegate->ToggleTranslatableLanguageByPrefs(); |
+ } else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE_SITE) { |
+ if (value && !delegate->IsSiteBlacklisted()) |
+ delegate->ToggleSiteBlacklist(); |
+ } else |
gone
2017/04/13 04:06:21
ditto
ramyasharma
2017/04/13 04:13:55
Acknowledged.
|
+ DCHECK(false); |
} |
void TranslateCompactInfoBar::OnPageTranslated( |