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

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 import org.chromium.chrome.browser.widget.TintedImageButton; 19 import org.chromium.chrome.browser.widget.TintedImageButton;
19 import org.chromium.ui.widget.Toast; 20 import org.chromium.ui.widget.Toast;
20 21
21 /** 22 /**
22 * Java version of the compcat translate infobar 23 * Java version of the compcat translate infobar
23 */ 24 */
24 class TranslateCompactInfoBar extends InfoBar 25 class TranslateCompactInfoBar extends InfoBar
25 implements TabLayout.OnTabSelectedListener, TranslateMenuHelper.Translat eMenuListener { 26 implements TabLayout.OnTabSelectedListener, TranslateMenuHelper.Translat eMenuListener {
26 public static final int TRANSLATING_INFOBAR = 1; 27 public static final int TRANSLATING_INFOBAR = 1;
27 28
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 return; 194 return;
194 case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE: 195 case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE:
195 initMenuHelper(TranslateMenu.MENU_SOURCE_LANGUAGE); 196 initMenuHelper(TranslateMenu.MENU_SOURCE_LANGUAGE);
196 mLanguageMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE); 197 mLanguageMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE);
197 return; 198 return;
198 default: 199 default:
199 assert false : "Unexpected overflow menu code"; 200 assert false : "Unexpected overflow menu code";
200 } 201 }
201 } 202 }
202 203
203 private void showSnackbar(int snackbarType) {
204 // TODO(ramyasharma): Show snackbar.
205 }
206
207 @Override 204 @Override
208 public void onTargetMenuItemClicked(String code) { 205 public void onTargetMenuItemClicked(String code) {
209 // Reset target code in both UI and native. 206 // Reset target code in both UI and native.
210 if (mOptions.setTargetLanguage(code)) { 207 if (mOptions.setTargetLanguage(code)) {
211 nativeApplyStringTranslateOption( 208 nativeApplyStringTranslateOption(
212 mNativeTranslateInfoBarPtr, TranslateOption.TARGET_CODE, cod e); 209 mNativeTranslateInfoBarPtr, TranslateOption.TARGET_CODE, cod e);
213 // Adjust UI. 210 // Adjust UI.
214 mTabLayout.replaceTabTitle(TARGET_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); 211 mTabLayout.replaceTabTitle(TARGET_TAB_INDEX, mOptions.getRepresentat ionFromCode(code));
215 startTranslating(mTabLayout.getSelectedTabPosition()); 212 startTranslating(mTabLayout.getSelectedTabPosition());
216 } 213 }
217 } 214 }
218 215
219 @Override 216 @Override
220 public void onSourceMenuItemClicked(String code) { 217 public void onSourceMenuItemClicked(String code) {
221 // Reset source code in both UI and native. 218 // Reset source code in both UI and native.
222 if (mOptions.setSourceLanguage(code)) { 219 if (mOptions.setSourceLanguage(code)) {
223 nativeApplyStringTranslateOption( 220 nativeApplyStringTranslateOption(
224 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e); 221 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e);
225 // Adjust UI. 222 // Adjust UI.
226 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); 223 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code));
227 startTranslating(mTabLayout.getSelectedTabPosition()); 224 startTranslating(mTabLayout.getSelectedTabPosition());
228 } 225 }
229 } 226 }
230 227
228 private void showSnackbar(int snackbarType) {
229 if (snackbarType == TranslateSnackbarType.NEVER_TRANSLATE) {
230 createAndShowSnackbar(getContext().getString(R.string.translate_snac kbar_language_never,
231 mOptions.sourceLanguageName()),
232 Snackbar.UMA_TRANSLATE_NEVER);
233 } else if (snackbarType == TranslateSnackbarType.ALWAYS_TRANSLATE) {
234 createAndShowSnackbar(
235 getContext().getString(R.string.translate_snackbar_always_tr anslate,
236 mOptions.sourceLanguageName(), mOptions.targetLangua geName()),
237 Snackbar.UMA_TRANSLATE_ALWAYS);
238 } else if (snackbarType == TranslateSnackbarType.NEVER_TRANSLATE_SITE) {
239 createAndShowSnackbar(getContext().getString(R.string.translate_snac kbar_site_never),
240 Snackbar.UMA_TRANSLATE_NEVER_SITE);
241 }
242 }
243
244 private void createAndShowSnackbar(String title, int type) {
245 if (getSnackbarManager() == null) {
246 return;
247 }
248 getSnackbarManager().showSnackbar(Snackbar.make(title, new TranslateSnac kbarController(),
249 Snackbar.TYPE_NOTIFICA TION, type)
250 .setSingleLine(false));
251 }
252
231 private native void nativeApplyStringTranslateOption( 253 private native void nativeApplyStringTranslateOption(
232 long nativeTranslateCompactInfoBar, int option, String value); 254 long nativeTranslateCompactInfoBar, int option, String value);
233 private native void nativeApplyBoolTranslateOption( 255 private native void nativeApplyBoolTranslateOption(
234 long nativeTranslateCompactInfoBar, int option, boolean value); 256 long nativeTranslateCompactInfoBar, int option, boolean value);
235 } 257 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698