| 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 077cee9c64d457143b3b1ba17b19b24b9d01703c..cdd439474898dc647ace7f7ef384b9d703a7e844 100644
|
| --- a/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
|
| +++ b/chrome/browser/ui/android/infobars/translate_compact_infobar.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/android/jni_weak_ref.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "chrome/browser/translate/android/translate_utils.h"
|
| +#include "chrome/browser/ui/android/snackbars/translate_snackbar.h"
|
| #include "components/translate/core/browser/translate_infobar_delegate.h"
|
| #include "jni/TranslateCompactInfoBar_jni.h"
|
|
|
| @@ -28,6 +29,7 @@ TranslateCompactInfoBar::TranslateCompactInfoBar(
|
| translate_driver_ = static_cast<translate::ContentTranslateDriver*>(
|
| GetDelegate()->GetTranslateDriver());
|
| translate_driver_->AddObserver(this);
|
| + snackbar_type_ = TranslateUtils::TYPE_NONE;
|
| }
|
|
|
| TranslateCompactInfoBar::~TranslateCompactInfoBar() {
|
| @@ -78,6 +80,15 @@ void TranslateCompactInfoBar::SetJavaInfoBar(
|
| reinterpret_cast<intptr_t>(this));
|
| }
|
|
|
| +void TranslateCompactInfoBar::ShowSnackbar(JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj) {
|
| + if (!GetJavaInfoBar())
|
| + return;
|
| +
|
| + Java_TranslateCompactInfoBar_showSnackbar(env, GetJavaInfoBar(),
|
| + snackbar_type_);
|
| +}
|
| +
|
| void TranslateCompactInfoBar::ApplyStringTranslateOption(
|
| JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
| @@ -106,14 +117,20 @@ void TranslateCompactInfoBar::ApplyBoolTranslateOption(
|
| jboolean value) {
|
| translate::TranslateInfoBarDelegate* delegate = GetDelegate();
|
| if (option == TranslateUtils::OPTION_ALWAYS_TRANSLATE) {
|
| - if (delegate->ShouldAlwaysTranslate() != value)
|
| + if (delegate->ShouldAlwaysTranslate() != value) {
|
| delegate->ToggleAlwaysTranslate();
|
| + snackbar_type_ = TranslateUtils::TYPE_ALWAYS_TRANSLATE;
|
| + }
|
| } else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE) {
|
| - if (value && delegate->IsTranslatableLanguageByPrefs())
|
| + if (value && delegate->IsTranslatableLanguageByPrefs()) {
|
| delegate->ToggleTranslatableLanguageByPrefs();
|
| + snackbar_type_ = TranslateUtils::TYPE_NEVER_TRANSLATE;
|
| + }
|
| } else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE_SITE) {
|
| - if (value && !delegate->IsSiteBlacklisted())
|
| + if (value && !delegate->IsSiteBlacklisted()) {
|
| delegate->ToggleSiteBlacklist();
|
| + snackbar_type_ = TranslateUtils::TYPE_NEVER_TRANSLATE_SITE;
|
| + }
|
| } else {
|
| DCHECK(false);
|
| }
|
|
|