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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java

Issue 2840933003: Shows snackbar in translate infobar, after certain user actions. (Closed)
Patch Set: Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.infobar; 5 package org.chromium.chrome.browser.infobar;
6 6
7 import android.support.design.widget.TabLayout; 7 import android.support.design.widget.TabLayout;
8 import android.view.LayoutInflater; 8 import android.view.LayoutInflater;
9 import android.view.View; 9 import android.view.View;
10 import android.view.View.OnClickListener; 10 import android.view.View.OnClickListener;
11 import android.widget.LinearLayout; 11 import android.widget.LinearLayout;
12 12
13 import org.chromium.base.annotations.CalledByNative; 13 import org.chromium.base.annotations.CalledByNative;
14 import org.chromium.chrome.R; 14 import org.chromium.chrome.R;
15 import org.chromium.chrome.browser.infobar.translate.TranslateMenu; 15 import org.chromium.chrome.browser.infobar.translate.TranslateMenu;
16 import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper; 16 import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper;
17 import org.chromium.chrome.browser.infobar.translate.TranslateTabLayout; 17 import org.chromium.chrome.browser.infobar.translate.TranslateTabLayout;
18 import org.chromium.chrome.browser.snackbar.Snackbar;
18 19
19 /** 20 /**
20 * Java version of the compcat translate infobar 21 * Java version of the compcat translate infobar
21 */ 22 */
22 class TranslateCompactInfoBar extends InfoBar 23 class TranslateCompactInfoBar extends InfoBar
23 implements TabLayout.OnTabSelectedListener, TranslateMenuHelper.Translat eMenuListener { 24 implements TabLayout.OnTabSelectedListener, TranslateMenuHelper.Translat eMenuListener {
24 private static final int SOURCE_TAB_INDEX = 0; 25 private static final int SOURCE_TAB_INDEX = 0;
25 private static final int TARGET_TAB_INDEX = 1; 26 private static final int TARGET_TAB_INDEX = 1;
26 27
27 private final TranslateOptions mOptions; 28 private final TranslateOptions mOptions;
28 29
29 private long mNativeTranslateInfoBarPtr; 30 private long mNativeTranslateInfoBarPtr;
30 private TranslateTabLayout mTabLayout; 31 private TranslateTabLayout mTabLayout;
31 32
32 private TranslateMenuHelper mMenuHelper; 33 private TranslateMenuHelper mMenuHelper;
33 34
34 @CalledByNative 35 @CalledByNative
35 private static InfoBar create(String sourceLanguageCode, String targetLangua geCode, 36 private static InfoBar create(String sourceLanguageCode, String targetLangua geCode,
36 String[] languages, String[] codes) { 37 String[] languages, String[] codes) {
37 return new TranslateCompactInfoBar( 38 return new TranslateCompactInfoBar(
38 sourceLanguageCode, targetLanguageCode, languages, codes); 39 sourceLanguageCode, targetLanguageCode, languages, codes);
39 } 40 }
40 41
41 @CalledByNative 42 @CalledByNative
42 private void showSnackbar(int snackbarType, int nativePtr) { 43 private void showSnackbar(int snackbarType, int nativePtr) {
43 // TODO(ramyasharma): Show snackbar. 44 if (snackbarType == TranslateSnackbarType.NEVER_TRANSLATE) {
45 getSnackbarManager().showSnackbar(createSnackbar(
46 getContext().getString(R.string.translate_snackbar_language_ never,
47 mOptions.sourceLanguageName()),
48 Snackbar.UMA_TRANSLATE_NEVER));
49 } else if (snackbarType == TranslateSnackbarType.ALWAYS_TRANSLATE) {
50 getSnackbarManager().showSnackbar(createSnackbar(
51 getContext().getString(R.string.translate_snackbar_always_tr anslate,
52 mOptions.sourceLanguageName(), mOptions.targetLangua geName()),
53 Snackbar.UMA_TRANSLATE_ALWAYS));
54 } else if (snackbarType == TranslateSnackbarType.NEVER_TRANSLATE_SITE) {
55 getSnackbarManager().showSnackbar(
56 createSnackbar(getContext().getString(R.string.translate_sna ckbar_site_never),
57 Snackbar.UMA_TRANSLATE_NEVER_SITE));
58 }
44 } 59 }
45 60
46 TranslateCompactInfoBar(String sourceLanguageCode, String targetLanguageCode , 61 TranslateCompactInfoBar(String sourceLanguageCode, String targetLanguageCode ,
47 String[] languages, String[] codes) { 62 String[] languages, String[] codes) {
48 super(R.drawable.infobar_translate, null, null); 63 super(R.drawable.infobar_translate, null, null);
49 // TODO(googleo): Set correct values for the last 2. 64 // TODO(googleo): Set correct values for the last 2.
50 mOptions = TranslateOptions.create( 65 mOptions = TranslateOptions.create(
51 sourceLanguageCode, targetLanguageCode, languages, codes, false, false); 66 sourceLanguageCode, targetLanguageCode, languages, codes, false, false);
52 } 67 }
53 68
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 // Reset source code in both UI and native. 198 // Reset source code in both UI and native.
184 if (mOptions.setSourceLanguage(code)) { 199 if (mOptions.setSourceLanguage(code)) {
185 nativeApplyStringTranslateOption( 200 nativeApplyStringTranslateOption(
186 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e); 201 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e);
187 // Adjust UI. 202 // Adjust UI.
188 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); 203 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code));
189 startTranslating(mTabLayout.getSelectedTabPosition()); 204 startTranslating(mTabLayout.getSelectedTabPosition());
190 } 205 }
191 } 206 }
192 207
208 private Snackbar createSnackbar(String title, int type) {
209 return Snackbar
210 .make(title, new TranslateSnackbarController(), Snackbar.TYPE_NO TIFICATION, type)
211 .setSingleLine(false);
212 }
213
193 private native void nativeApplyStringTranslateOption( 214 private native void nativeApplyStringTranslateOption(
194 long nativeTranslateCompactInfoBar, int option, String value); 215 long nativeTranslateCompactInfoBar, int option, String value);
195 private native void nativeApplyBoolTranslateOption( 216 private native void nativeApplyBoolTranslateOption(
196 long nativeTranslateCompactInfoBar, int option, boolean value); 217 long nativeTranslateCompactInfoBar, int option, boolean value);
197 private native void nativeShowSnackbar(long nativeTranslateCompactInfoBar); 218 private native void nativeShowSnackbar(long nativeTranslateCompactInfoBar);
198 } 219 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698