 Chromium Code Reviews
 Chromium Code Reviews Issue 2838833003:
  Introduces snackbar enum, & other snackbar classes on android for translate  (Closed)
    
  
    Issue 2838833003:
  Introduces snackbar enum, & other snackbar classes on android for translate  (Closed) 
  | 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); | 
| } |