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
case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE:
nativeApplyBoolTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.ALWAYS_TRANSLATE, true);
showSnackbar(TranslateSnackbarType.ALWAYS_TRANSLATE);
return;
case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE:
nativeApplyBoolTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE, true);
showSnackbar(TranslateSnackbarType.NEVER_TRANSLATE);
return;
case TranslateMenu.ID_OVERFLOW_NEVER_SITE:
nativeApplyBoolTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE_SITE, true);
showSnackbar(TranslateSnackbarType.NEVER_TRANSLATE_SITE);
return;
case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE:
mMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE);
......@@ -175,6 +178,10 @@ class TranslateCompactInfoBar extends InfoBar
}
}
private void showSnackbar(int snackbarType) {
// TODO(ramyasharma): Show snackbar.
}
@Override
public void onTargetMenuItemClicked(String code) {
// 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 = [
"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/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/translate/TranslateMenu.java",
"java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenuHelper.java",
......
......@@ -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/TranslateCompactInfoBar.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/instantapps/InstantAppsSettings.java",
"../android/java/src/org/chromium/chrome/browser/invalidation/InvalidationServiceFactory.java",
......
......@@ -25,6 +25,16 @@ class TranslateUtils {
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(
JNIEnv* env,
translate::TranslateInfoBarDelegate* delegate);
......
......@@ -107,14 +107,17 @@ 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();
}
} else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE) {
if (value && delegate->IsTranslatableLanguageByPrefs())
if (value && delegate->IsTranslatableLanguageByPrefs()) {
delegate->ToggleTranslatableLanguageByPrefs();
}
} else if (option == TranslateUtils::OPTION_NEVER_TRANSLATE_SITE) {
if (value && !delegate->IsSiteBlacklisted())
if (value && !delegate->IsSiteBlacklisted()) {
delegate->ToggleSiteBlacklist();
}
} else {
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