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

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 boolean closeInfoBar(int snackbarType, int nativePtr) { 43 private boolean closeInfoBar(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, nativePtr));
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, nativePtr));
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, nativePtr));
58 }
44 return super.closeInfoBar(); 59 return super.closeInfoBar();
45 } 60 }
46 61
47 TranslateCompactInfoBar(String sourceLanguageCode, String targetLanguageCode , 62 TranslateCompactInfoBar(String sourceLanguageCode, String targetLanguageCode ,
48 String[] languages, String[] codes) { 63 String[] languages, String[] codes) {
49 super(R.drawable.infobar_translate, null, null); 64 super(R.drawable.infobar_translate, null, null);
50 // TODO(googleo): Set correct values for the last 2. 65 // TODO(googleo): Set correct values for the last 2.
51 mOptions = TranslateOptions.create( 66 mOptions = TranslateOptions.create(
52 sourceLanguageCode, targetLanguageCode, languages, codes, false, false); 67 sourceLanguageCode, targetLanguageCode, languages, codes, false, false);
53 } 68 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 // Reset source code in both UI and native. 196 // Reset source code in both UI and native.
182 if (mOptions.setSourceLanguage(code)) { 197 if (mOptions.setSourceLanguage(code)) {
183 nativeApplyStringTranslateOption( 198 nativeApplyStringTranslateOption(
184 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e); 199 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e);
185 // Adjust UI. 200 // Adjust UI.
186 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); 201 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code));
187 startTranslating(mTabLayout.getSelectedTabPosition()); 202 startTranslating(mTabLayout.getSelectedTabPosition());
188 } 203 }
189 } 204 }
190 205
206 private Snackbar createSnackbar(String title, int type, int nativePtr) {
gone 2017/04/26 17:27:02 You don't actually use the nativePtr.
ramyasharma 2017/04/27 08:03:11 ah yes. Not yet, but in the next cl I will. Remove
207 return Snackbar.make(
208 title, new TranslateSnackbarController(), Snackbar.TYPE_NOTIFICA TION, type);
209 }
210
191 private native void nativeApplyStringTranslateOption( 211 private native void nativeApplyStringTranslateOption(
192 long nativeTranslateCompactInfoBar, int option, String value); 212 long nativeTranslateCompactInfoBar, int option, String value);
193 private native void nativeApplyBoolTranslateOption( 213 private native void nativeApplyBoolTranslateOption(
194 long nativeTranslateCompactInfoBar, int option, boolean value); 214 long nativeTranslateCompactInfoBar, int option, boolean value);
195 } 215 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698