Commit 7111808a authored by ramyasharma's avatar ramyasharma Committed by Commit bot

Introduces snackbar enum, & other snackbar classes on android for translate user actions.

CL#1 This snackbar will be used to convey to the user the result
of any action performed on the Translate infobar.

BUG=713514
TBR=groby@chromium.org

Review-Url: https://codereview.chromium.org/2838833003
Cr-Commit-Position: refs/heads/master@{#468302}
parent 71f3bd16
...@@ -158,14 +158,17 @@ class TranslateCompactInfoBar extends InfoBar ...@@ -158,14 +158,17 @@ class TranslateCompactInfoBar extends InfoBar
case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE: case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE:
nativeApplyBoolTranslateOption( nativeApplyBoolTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.ALWAYS_TRANSLATE, true); mNativeTranslateInfoBarPtr, TranslateOption.ALWAYS_TRANSLATE, true);
showSnackbar(TranslateSnackbarType.ALWAYS_TRANSLATE);
return; return;
case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE: case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE:
nativeApplyBoolTranslateOption( nativeApplyBoolTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE, true); mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE, true);
showSnackbar(TranslateSnackbarType.NEVER_TRANSLATE);
return; return;
case TranslateMenu.ID_OVERFLOW_NEVER_SITE: case TranslateMenu.ID_OVERFLOW_NEVER_SITE:
nativeApplyBoolTranslateOption( nativeApplyBoolTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE_SITE, true); mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE_SITE, true);
showSnackbar(TranslateSnackbarType.NEVER_TRANSLATE_SITE);
return; return;
case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE: case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE:
mMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE); mMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE);
...@@ -175,6 +178,10 @@ class TranslateCompactInfoBar extends InfoBar ...@@ -175,6 +178,10 @@ class TranslateCompactInfoBar extends InfoBar
} }
} }
private void showSnackbar(int snackbarType) {
// TODO(ramyasharma): Show snackbar.
}
@Override @Override
public void onTargetMenuItemClicked(String code) { public void onTargetMenuItemClicked(String code) {
// Reset target code in both UI and native. // Reset target code in both UI and native.
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.infobar;
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
/**
* The controller for translate UI snackbars.
*/
class TranslateSnackbarController implements SnackbarController {
@Override
public void onDismissNoAction(Object actionData) {
// No action.
}
@Override
public void onAction(Object actionData) {
nativeToggleTranslateOption(((Integer) actionData).intValue());
}
private static native void nativeToggleTranslateOption(int type);
};
...@@ -472,6 +472,7 @@ chrome_java_sources = [ ...@@ -472,6 +472,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/infobar/TranslateNeverPanel.java", "java/src/org/chromium/chrome/browser/infobar/TranslateNeverPanel.java",
"java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java", "java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java",
"java/src/org/chromium/chrome/browser/infobar/TranslateSubPanel.java", "java/src/org/chromium/chrome/browser/infobar/TranslateSubPanel.java",
"java/src/org/chromium/chrome/browser/infobar/TranslateSnackbarController.java",
"java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java", "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java",
"java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenu.java", "java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenu.java",
"java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenuHelper.java", "java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenuHelper.java",
......
...@@ -4146,6 +4146,7 @@ if (is_android) { ...@@ -4146,6 +4146,7 @@ if (is_android) {
"../android/java/src/org/chromium/chrome/browser/infobar/SubresourceFilterInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/SubresourceFilterInfoBar.java",
"../android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java",
"../android/java/src/org/chromium/chrome/browser/infobar/TranslateInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/TranslateInfoBar.java",
"../android/java/src/org/chromium/chrome/browser/infobar/TranslateSnackbarController.java",
"../android/java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java", "../android/java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java",
"../android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsSettings.java", "../android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsSettings.java",
"../android/java/src/org/chromium/chrome/browser/invalidation/InvalidationServiceFactory.java", "../android/java/src/org/chromium/chrome/browser/invalidation/InvalidationServiceFactory.java",
......
...@@ -25,6 +25,16 @@ class TranslateUtils { ...@@ -25,6 +25,16 @@ class TranslateUtils {
OPTION_NEVER_TRANSLATE_SITE OPTION_NEVER_TRANSLATE_SITE
}; };
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.infobar
// GENERATED_JAVA_PREFIX_TO_STRIP:TYPE_
enum TranslateSnackbarType {
TYPE_NONE,
TYPE_ALWAYS_TRANSLATE,
TYPE_NEVER_TRANSLATE,
TYPE_NEVER_TRANSLATE_SITE
};
static base::android::ScopedJavaLocalRef<jobjectArray> GetJavaLanguages( static base::android::ScopedJavaLocalRef<jobjectArray> GetJavaLanguages(
JNIEnv* env, JNIEnv* env,
translate::TranslateInfoBarDelegate* delegate); translate::TranslateInfoBarDelegate* delegate);
......
...@@ -107,14 +107,17 @@ void TranslateCompactInfoBar::ApplyBoolTranslateOption( ...@@ -107,14 +107,17 @@ void TranslateCompactInfoBar::ApplyBoolTranslateOption(
jboolean value) { jboolean value) {
translate::TranslateInfoBarDelegate* delegate = GetDelegate(); translate::TranslateInfoBarDelegate* delegate = GetDelegate();
if (option == TranslateUtils::OPTION_ALWAYS_TRANSLATE) { if (option == TranslateUtils::OPTION_ALWAYS_TRANSLATE) {
if (delegate->ShouldAlwaysTranslate() != value) if (delegate->ShouldAlwaysTranslate() != value) {
delegate->ToggleAlwaysTranslate(); delegate->ToggleAlwaysTranslate();
}
} else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE) { } else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE) {
if (value && delegate->IsTranslatableLanguageByPrefs()) if (value && delegate->IsTranslatableLanguageByPrefs()) {
delegate->ToggleTranslatableLanguageByPrefs(); delegate->ToggleTranslatableLanguageByPrefs();
}
} else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE_SITE) { } else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE_SITE) {
if (value && !delegate->IsSiteBlacklisted()) if (value && !delegate->IsSiteBlacklisted()) {
delegate->ToggleSiteBlacklist(); delegate->ToggleSiteBlacklist();
}
} else { } else {
DCHECK(false); DCHECK(false);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment