OLD | NEW |
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 Loading... |
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 } |
OLD | NEW |