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