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

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..a08b3d4ec6d4f586ea50b4e5cb4d0c0348722b04 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,17 @@ void TranslateCompactInfoBar::SetJavaInfoBar(
reinterpret_cast<intptr_t>(this));
}
+void TranslateCompactInfoBar::ShowSnackbar(JNIEnv* env,
+ const JavaParamRef<jobject>& obj) {
+ if (!GetJavaInfoBar())
+ return;
+
+ TranslateSnackbar snackbar(snackbar_type_);
+ Java_TranslateCompactInfoBar_showSnackbar(
+ env, GetJavaInfoBar(), snackbar_type_,
+ reinterpret_cast<intptr_t>(&snackbar));
gone 2017/04/28 00:48:11 I'm not sure how this works. It's a pointer to an
ramyasharma 2017/04/28 03:13:11 Thanks Dan. Good point. It does go out of scope, b
+}
+
void TranslateCompactInfoBar::ApplyStringTranslateOption(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
@@ -106,14 +119,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);
}

Powered by Google App Engine
This is Rietveld 408576698