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

Unified Diff: chrome/browser/ui/android/infobars/translate_compact_infobar.cc

Issue 2838833003: Introduces snackbar enum, & other snackbar classes on android for translate (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
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..1d492a87541aa0b83f0a8b174a57e8d5c7e3234d 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,16 @@ void TranslateCompactInfoBar::SetJavaInfoBar(
reinterpret_cast<intptr_t>(this));
}
+void TranslateCompactInfoBar::CloseJavaInfoBar() {
+ if (GetJavaInfoBar() != nullptr) {
+ JNIEnv* env = base::android::AttachCurrentThread();
gone 2017/04/26 17:19:51 I'd make the Java side closeInfoBarInternal call i
ramyasharma 2017/04/27 08:01:42 Thanks. Not using this approach anymore.
+ TranslateSnackbar* snackbar = new TranslateSnackbar(snackbar_type);
+ Java_TranslateCompactInfoBar_closeInfoBar(
+ env, GetJavaInfoBar(), snackbar_type,
+ reinterpret_cast<intptr_t>(snackbar));
+ }
+}
+
void TranslateCompactInfoBar::ApplyStringTranslateOption(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
@@ -106,14 +118,23 @@ 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;
+ TranslateCompactInfoBar::CloseJavaInfoBar();
gone 2017/04/26 17:19:51 You shouldn't need to scope TranslateCompactInfoBa
ramyasharma 2017/04/27 08:01:42 Done.
+ }
} else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE) {
- if (value && delegate->IsTranslatableLanguageByPrefs())
+ if (value && delegate->IsTranslatableLanguageByPrefs()) {
delegate->ToggleTranslatableLanguageByPrefs();
+ snackbar_type = TranslateUtils::TYPE_NEVER_TRANSLATE;
+ TranslateCompactInfoBar::CloseJavaInfoBar();
+ }
} 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;
+ TranslateCompactInfoBar::CloseJavaInfoBar();
+ }
} else {
DCHECK(false);
}

Powered by Google App Engine
This is Rietveld 408576698