Chromium Code Reviews| 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.base.metrics.RecordHistogram; | |
| 14 import org.chromium.chrome.R; | 15 import org.chromium.chrome.R; |
| 15 import org.chromium.chrome.browser.infobar.translate.TranslateMenu; | 16 import org.chromium.chrome.browser.infobar.translate.TranslateMenu; |
| 16 import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper; | 17 import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper; |
| 17 import org.chromium.chrome.browser.infobar.translate.TranslateTabLayout; | 18 import org.chromium.chrome.browser.infobar.translate.TranslateTabLayout; |
| 18 import org.chromium.chrome.browser.snackbar.Snackbar; | 19 import org.chromium.chrome.browser.snackbar.Snackbar; |
| 19 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; | 20 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; |
| 20 import org.chromium.chrome.browser.widget.TintedImageButton; | 21 import org.chromium.chrome.browser.widget.TintedImageButton; |
| 21 import org.chromium.ui.widget.Toast; | 22 import org.chromium.ui.widget.Toast; |
| 22 | 23 |
| 23 /** | 24 /** |
| 24 * Java version of the compcat translate infobar | 25 * Java version of the compcat translate infobar |
| 25 */ | 26 */ |
| 26 class TranslateCompactInfoBar extends InfoBar | 27 class TranslateCompactInfoBar extends InfoBar |
| 27 implements TabLayout.OnTabSelectedListener, TranslateMenuHelper.Translat eMenuListener { | 28 implements TabLayout.OnTabSelectedListener, TranslateMenuHelper.Translat eMenuListener { |
| 28 public static final int TRANSLATING_INFOBAR = 1; | 29 public static final int TRANSLATING_INFOBAR = 1; |
| 29 | 30 |
| 30 private static final int SOURCE_TAB_INDEX = 0; | 31 private static final int SOURCE_TAB_INDEX = 0; |
| 31 private static final int TARGET_TAB_INDEX = 1; | 32 private static final int TARGET_TAB_INDEX = 1; |
| 32 | 33 |
| 33 private final int mInitialStep; | 34 private final int mInitialStep; |
| 34 private final TranslateOptions mOptions; | 35 private final TranslateOptions mOptions; |
| 35 | 36 |
| 36 private long mNativeTranslateInfoBarPtr; | 37 private long mNativeTranslateInfoBarPtr; |
| 37 private TranslateTabLayout mTabLayout; | 38 private TranslateTabLayout mTabLayout; |
| 38 | 39 |
| 40 private static final String INFOBAR_HISTOGRAM_TRANSLATE_LANGUAGE = | |
|
Leo
2017/05/10 07:23:58
Any chance moving all the definitions to Metrics.j
ramyasharma
2017/05/10 09:54:52
Hmmm.. as we discussed, keeping these metrics in t
| |
| 41 "Translate.Compact.infobar_translate_language"; | |
| 42 private static final String INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE = | |
| 43 "Translate.Compact.infobar_more_languages_translate_language"; | |
| 44 private static final String INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE = | |
| 45 "Translate.Compact.infobar_page_not_in_language"; | |
| 46 private static final String INFOBAR_HISTOGRAM_ALWAYS_TRANSLATE_LANGUAGE = | |
| 47 "Translate.Compact.infobar_always_translate_lang"; | |
| 48 private static final String INFOBAR_HISTOGRAM_NEVER_TRANSLATE_LANGUAGE = | |
| 49 "Translate.Compact.infobar_never_translate_lang"; | |
|
Ilya Sherman
2017/05/10 07:10:20
Did you mean to add these histograms to histograms
ramyasharma
2017/05/10 09:54:52
Yes, sorry I missed this.
Fixed the case thanks.
| |
| 50 private static final String INFOBAR_HISTOGRAM = "Translate.Compact"; | |
| 51 | |
| 52 /** | |
| 53 * This is used to back a UMA histogram, so it should be treated as | |
| 54 * append-only. The values should not be changed or reused, and | |
| 55 * INFOBAR_HISTOGRAM_BOUNDARY should be the last. | |
| 56 */ | |
| 57 private static final Integer INFOBAR_IMPRESSION = 0; | |
| 58 private static final Integer INFOBAR_TRANSLATE = 1; | |
| 59 private static final Integer INFOBAR_DECLINE = 2; | |
| 60 private static final Integer INFOBAR_OPTIONS = 3; | |
| 61 private static final Integer INFOBAR_MORE_LANGUAGES = 4; | |
| 62 private static final Integer INFOBAR_MORE_LANGUAGES_TRANSLATE = 5; | |
| 63 private static final Integer INFOBAR_PAGE_NOT_IN = 6; | |
| 64 private static final Integer INFOBAR_ALWAYS_TRANSLATE = 7; | |
| 65 private static final Integer INFOBAR_NEVER_TRANSLATE = 8; | |
| 66 private static final Integer INFOBAR_NEVER_TRANSLATE_SITE = 9; | |
| 67 private static final Integer INFOBAR_SCROLL_HIDE = 10; | |
| 68 private static final Integer INFOBAR_SCROLL_SHOW = 11; | |
| 69 private static final Integer INFOBAR_REVERT = 12; | |
| 70 private static final Integer INFOBAR_SNACKBAR_CANCEL_ALWAYS = 13; | |
| 71 private static final Integer INFOBAR_SNACKBAR_CANCEL_NEVER_SITE = 14; | |
| 72 private static final Integer INFOBAR_SNACKBAR_CANCEL_NEVER = 15; | |
| 73 private static final Integer INFOBAR_HISTOGRAM_BOUNDARY = 16; | |
| 74 | |
| 39 // Need 2 instances of TranslateMenuHelper to prevent a race condition bug w hich happens when | 75 // Need 2 instances of TranslateMenuHelper to prevent a race condition bug w hich happens when |
| 40 // showing language menu after dismissing overflow menu. | 76 // showing language menu after dismissing overflow menu. |
| 41 private TranslateMenuHelper mOverflowMenuHelper; | 77 private TranslateMenuHelper mOverflowMenuHelper; |
| 42 private TranslateMenuHelper mLanguageMenuHelper; | 78 private TranslateMenuHelper mLanguageMenuHelper; |
| 43 | 79 |
| 44 private TintedImageButton mMenuButton; | 80 private TintedImageButton mMenuButton; |
| 45 | 81 |
| 46 /** The controller for translate UI snackbars. */ | 82 /** The controller for translate UI snackbars. */ |
| 47 class TranslateSnackbarController implements SnackbarController { | 83 class TranslateSnackbarController implements SnackbarController { |
| 48 private final int mMenuItemId; | 84 private final int mMenuItemId; |
| 49 | 85 |
| 50 public TranslateSnackbarController(int menuItemId) { | 86 public TranslateSnackbarController(int menuItemId) { |
| 51 mMenuItemId = menuItemId; | 87 mMenuItemId = menuItemId; |
| 52 } | 88 } |
| 53 | 89 |
| 54 @Override | 90 @Override |
| 55 public void onDismissNoAction(Object actionData) { | 91 public void onDismissNoAction(Object actionData) { |
| 56 handleTranslateOptionPostSnackbar(mMenuItemId); | 92 handleTranslateOptionPostSnackbar(mMenuItemId); |
| 57 } | 93 } |
| 58 | 94 |
| 59 @Override | 95 @Override |
| 60 public void onAction(Object actionData) { | 96 public void onAction(Object actionData) { |
| 61 // TODO(ramyasharma): Add logging metric to track cancel actions. | 97 switch (mMenuItemId) { |
| 62 // Do nothing. | 98 case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE: |
| 99 RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, | |
| 100 INFOBAR_SNACKBAR_CANCEL_ALWAYS, INFOBAR_HISTOGRAM_BO UNDARY); | |
|
Ilya Sherman
2017/05/10 07:10:20
Optional nit: There's a lot of repetition of these
ramyasharma
2017/05/10 09:54:52
Thanks for the idea. Done.
| |
| 101 return; | |
| 102 case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE: | |
| 103 RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, | |
| 104 INFOBAR_SNACKBAR_CANCEL_NEVER, INFOBAR_HISTOGRAM_BOU NDARY); | |
| 105 return; | |
| 106 case TranslateMenu.ID_OVERFLOW_NEVER_SITE: | |
| 107 RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, | |
| 108 INFOBAR_SNACKBAR_CANCEL_NEVER_SITE, INFOBAR_HISTOGRA M_BOUNDARY); | |
| 109 return; | |
| 110 } | |
| 63 } | 111 } |
| 64 }; | 112 }; |
| 65 | 113 |
| 66 @CalledByNative | 114 @CalledByNative |
| 67 private static InfoBar create(int initialStep, String sourceLanguageCode, | 115 private static InfoBar create(int initialStep, String sourceLanguageCode, |
| 68 String targetLanguageCode, boolean alwaysTranslate, boolean triggere dFromMenu, | 116 String targetLanguageCode, boolean alwaysTranslate, boolean triggere dFromMenu, |
| 69 String[] languages, String[] codes) { | 117 String[] languages, String[] codes) { |
| 118 RecordHistogram.recordEnumeratedHistogram( | |
| 119 INFOBAR_HISTOGRAM, INFOBAR_IMPRESSION, INFOBAR_HISTOGRAM_BOUNDAR Y); | |
| 70 return new TranslateCompactInfoBar(initialStep, sourceLanguageCode, targ etLanguageCode, | 120 return new TranslateCompactInfoBar(initialStep, sourceLanguageCode, targ etLanguageCode, |
| 71 alwaysTranslate, triggeredFromMenu, languages, codes); | 121 alwaysTranslate, triggeredFromMenu, languages, codes); |
| 72 } | 122 } |
| 73 | 123 |
| 74 TranslateCompactInfoBar(int initialStep, String sourceLanguageCode, String t argetLanguageCode, | 124 TranslateCompactInfoBar(int initialStep, String sourceLanguageCode, String t argetLanguageCode, |
| 75 boolean alwaysTranslate, boolean triggeredFromMenu, String[] languag es, | 125 boolean alwaysTranslate, boolean triggeredFromMenu, String[] languag es, |
| 76 String[] codes) { | 126 String[] codes) { |
| 77 super(R.drawable.infobar_translate_compact, null, null); | 127 super(R.drawable.infobar_translate_compact, null, null); |
| 78 mInitialStep = initialStep; | 128 mInitialStep = initialStep; |
| 79 mOptions = TranslateOptions.create(sourceLanguageCode, targetLanguageCod e, languages, codes, | 129 mOptions = TranslateOptions.create(sourceLanguageCode, targetLanguageCod e, languages, codes, |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 99 mTabLayout.getTabAt(TARGET_TAB_INDEX).select(); | 149 mTabLayout.getTabAt(TARGET_TAB_INDEX).select(); |
| 100 mTabLayout.showProgressBarOnTab(TARGET_TAB_INDEX); | 150 mTabLayout.showProgressBarOnTab(TARGET_TAB_INDEX); |
| 101 } | 151 } |
| 102 | 152 |
| 103 mTabLayout.addOnTabSelectedListener(this); | 153 mTabLayout.addOnTabSelectedListener(this); |
| 104 | 154 |
| 105 mMenuButton = (TintedImageButton) content.findViewById(R.id.translate_in fobar_menu_button); | 155 mMenuButton = (TintedImageButton) content.findViewById(R.id.translate_in fobar_menu_button); |
| 106 mMenuButton.setOnClickListener(new OnClickListener() { | 156 mMenuButton.setOnClickListener(new OnClickListener() { |
| 107 @Override | 157 @Override |
| 108 public void onClick(View v) { | 158 public void onClick(View v) { |
| 159 RecordHistogram.recordEnumeratedHistogram( | |
| 160 INFOBAR_HISTOGRAM, INFOBAR_OPTIONS, INFOBAR_HISTOGRAM_BO UNDARY); | |
| 109 initMenuHelper(TranslateMenu.MENU_OVERFLOW); | 161 initMenuHelper(TranslateMenu.MENU_OVERFLOW); |
| 110 mOverflowMenuHelper.show(TranslateMenu.MENU_OVERFLOW); | 162 mOverflowMenuHelper.show(TranslateMenu.MENU_OVERFLOW); |
| 111 } | 163 } |
| 112 }); | 164 }); |
| 113 | 165 |
| 114 parent.addContent(content, 1.0f); | 166 parent.addContent(content, 1.0f); |
| 115 } | 167 } |
| 116 | 168 |
| 117 private void initMenuHelper(int menuType) { | 169 private void initMenuHelper(int menuType) { |
| 118 switch (menuType) { | 170 switch (menuType) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 168 @Override | 220 @Override |
| 169 protected void onNativeDestroyed() { | 221 protected void onNativeDestroyed() { |
| 170 mNativeTranslateInfoBarPtr = 0; | 222 mNativeTranslateInfoBarPtr = 0; |
| 171 super.onNativeDestroyed(); | 223 super.onNativeDestroyed(); |
| 172 } | 224 } |
| 173 | 225 |
| 174 @Override | 226 @Override |
| 175 public void onTabSelected(TabLayout.Tab tab) { | 227 public void onTabSelected(TabLayout.Tab tab) { |
| 176 switch (tab.getPosition()) { | 228 switch (tab.getPosition()) { |
| 177 case SOURCE_TAB_INDEX: | 229 case SOURCE_TAB_INDEX: |
| 230 RecordHistogram.recordEnumeratedHistogram( | |
| 231 INFOBAR_HISTOGRAM, INFOBAR_REVERT, INFOBAR_HISTOGRAM_BOU NDARY); | |
| 178 onButtonClicked(ActionType.TRANSLATE_SHOW_ORIGINAL); | 232 onButtonClicked(ActionType.TRANSLATE_SHOW_ORIGINAL); |
| 179 return; | 233 return; |
| 180 case TARGET_TAB_INDEX: | 234 case TARGET_TAB_INDEX: |
| 235 RecordHistogram.recordEnumeratedHistogram( | |
| 236 INFOBAR_HISTOGRAM, INFOBAR_TRANSLATE, INFOBAR_HISTOGRAM_ BOUNDARY); | |
| 237 RecordHistogram.recordSparseSlowlyHistogram( | |
| 238 INFOBAR_HISTOGRAM_TRANSLATE_LANGUAGE, mOptions.targetLan guage.hashCode()); | |
| 181 startTranslating(TARGET_TAB_INDEX); | 239 startTranslating(TARGET_TAB_INDEX); |
| 182 return; | 240 return; |
| 183 default: | 241 default: |
| 184 assert false : "Unexpected Tab Index"; | 242 assert false : "Unexpected Tab Index"; |
| 185 } | 243 } |
| 186 } | 244 } |
| 187 | 245 |
| 188 @Override | 246 @Override |
| 189 public void onTabUnselected(TabLayout.Tab tab) {} | 247 public void onTabUnselected(TabLayout.Tab tab) {} |
| 190 | 248 |
| 191 @Override | 249 @Override |
| 192 public void onTabReselected(TabLayout.Tab tab) {} | 250 public void onTabReselected(TabLayout.Tab tab) {} |
| 193 | 251 |
| 194 @Override | 252 @Override |
| 195 public void onOverflowMenuItemClicked(int itemId) { | 253 public void onOverflowMenuItemClicked(int itemId) { |
| 196 switch (itemId) { | 254 switch (itemId) { |
| 197 case TranslateMenu.ID_OVERFLOW_MORE_LANGUAGE: | 255 case TranslateMenu.ID_OVERFLOW_MORE_LANGUAGE: |
| 256 RecordHistogram.recordEnumeratedHistogram( | |
| 257 INFOBAR_HISTOGRAM, INFOBAR_MORE_LANGUAGES, INFOBAR_HISTO GRAM_BOUNDARY); | |
| 198 initMenuHelper(TranslateMenu.MENU_TARGET_LANGUAGE); | 258 initMenuHelper(TranslateMenu.MENU_TARGET_LANGUAGE); |
| 199 mLanguageMenuHelper.show(TranslateMenu.MENU_TARGET_LANGUAGE); | 259 mLanguageMenuHelper.show(TranslateMenu.MENU_TARGET_LANGUAGE); |
| 200 return; | 260 return; |
| 201 case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE: | 261 case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE: |
| 262 RecordHistogram.recordEnumeratedHistogram( | |
| 263 INFOBAR_HISTOGRAM, INFOBAR_ALWAYS_TRANSLATE, INFOBAR_HIS TOGRAM_BOUNDARY); | |
| 264 RecordHistogram.recordSparseSlowlyHistogram( | |
| 265 INFOBAR_HISTOGRAM_ALWAYS_TRANSLATE_LANGUAGE, | |
| 266 mOptions.sourceLanguageCode().hashCode()); | |
| 202 // Only show snackbar when "Always Translate" is enabled. | 267 // Only show snackbar when "Always Translate" is enabled. |
| 203 if (!mOptions.alwaysTranslateLanguageState()) { | 268 if (!mOptions.alwaysTranslateLanguageState()) { |
| 204 createAndShowSnackbar( | 269 createAndShowSnackbar( |
| 205 getContext().getString(R.string.translate_snackbar_a lways_translate, | 270 getContext().getString(R.string.translate_snackbar_a lways_translate, |
| 206 mOptions.sourceLanguageName(), mOptions.targ etLanguageName()), | 271 mOptions.sourceLanguageName(), mOptions.targ etLanguageName()), |
| 207 Snackbar.UMA_TRANSLATE_ALWAYS, itemId); | 272 Snackbar.UMA_TRANSLATE_ALWAYS, itemId); |
| 208 } else { | 273 } else { |
| 209 handleTranslateOptionPostSnackbar(itemId); | 274 handleTranslateOptionPostSnackbar(itemId); |
| 210 } | 275 } |
| 211 return; | 276 return; |
| 212 case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE: | 277 case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE: |
| 278 RecordHistogram.recordEnumeratedHistogram( | |
| 279 INFOBAR_HISTOGRAM, INFOBAR_NEVER_TRANSLATE, INFOBAR_HIST OGRAM_BOUNDARY); | |
| 280 RecordHistogram.recordSparseSlowlyHistogram( | |
| 281 INFOBAR_HISTOGRAM_NEVER_TRANSLATE_LANGUAGE, | |
| 282 mOptions.sourceLanguageCode().hashCode()); | |
| 213 createAndShowSnackbar( | 283 createAndShowSnackbar( |
| 214 getContext().getString(R.string.translate_snackbar_langu age_never, | 284 getContext().getString(R.string.translate_snackbar_langu age_never, |
| 215 mOptions.sourceLanguageName()), | 285 mOptions.sourceLanguageName()), |
| 216 Snackbar.UMA_TRANSLATE_NEVER, itemId); | 286 Snackbar.UMA_TRANSLATE_NEVER, itemId); |
| 217 return; | 287 return; |
| 218 case TranslateMenu.ID_OVERFLOW_NEVER_SITE: | 288 case TranslateMenu.ID_OVERFLOW_NEVER_SITE: |
| 289 RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, | |
| 290 INFOBAR_NEVER_TRANSLATE_SITE, INFOBAR_HISTOGRAM_BOUNDARY ); | |
| 219 createAndShowSnackbar( | 291 createAndShowSnackbar( |
| 220 getContext().getString(R.string.translate_snackbar_site_ never), | 292 getContext().getString(R.string.translate_snackbar_site_ never), |
| 221 Snackbar.UMA_TRANSLATE_NEVER_SITE, itemId); | 293 Snackbar.UMA_TRANSLATE_NEVER_SITE, itemId); |
| 222 return; | 294 return; |
| 223 case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE: | 295 case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE: |
| 296 RecordHistogram.recordEnumeratedHistogram( | |
| 297 INFOBAR_HISTOGRAM, INFOBAR_PAGE_NOT_IN, INFOBAR_HISTOGRA M_BOUNDARY); | |
| 224 initMenuHelper(TranslateMenu.MENU_SOURCE_LANGUAGE); | 298 initMenuHelper(TranslateMenu.MENU_SOURCE_LANGUAGE); |
| 225 mLanguageMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE); | 299 mLanguageMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE); |
| 226 return; | 300 return; |
| 227 default: | 301 default: |
| 228 assert false : "Unexpected overflow menu code"; | 302 assert false : "Unexpected overflow menu code"; |
| 229 } | 303 } |
| 230 } | 304 } |
| 231 | 305 |
| 232 @Override | 306 @Override |
| 233 public void onTargetMenuItemClicked(String code) { | 307 public void onTargetMenuItemClicked(String code) { |
| 234 // Reset target code in both UI and native. | 308 // Reset target code in both UI and native. |
| 235 if (mOptions.setTargetLanguage(code)) { | 309 if (mOptions.setTargetLanguage(code)) { |
| 310 RecordHistogram.recordSparseSlowlyHistogram(INFOBAR_HISTOGRAM_MORE_L ANGUAGES_LANGUAGE, | |
| 311 mOptions.targetLanguageCode().hashCode()); | |
| 236 nativeApplyStringTranslateOption( | 312 nativeApplyStringTranslateOption( |
| 237 mNativeTranslateInfoBarPtr, TranslateOption.TARGET_CODE, cod e); | 313 mNativeTranslateInfoBarPtr, TranslateOption.TARGET_CODE, cod e); |
| 238 // Adjust UI. | 314 // Adjust UI. |
| 239 mTabLayout.replaceTabTitle(TARGET_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); | 315 mTabLayout.replaceTabTitle(TARGET_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); |
| 240 startTranslating(mTabLayout.getSelectedTabPosition()); | 316 startTranslating(mTabLayout.getSelectedTabPosition()); |
| 241 } | 317 } |
| 242 } | 318 } |
| 243 | 319 |
| 244 @Override | 320 @Override |
| 245 public void onSourceMenuItemClicked(String code) { | 321 public void onSourceMenuItemClicked(String code) { |
| 246 // Reset source code in both UI and native. | 322 // Reset source code in both UI and native. |
| 247 if (mOptions.setSourceLanguage(code)) { | 323 if (mOptions.setSourceLanguage(code)) { |
| 324 RecordHistogram.recordSparseSlowlyHistogram(INFOBAR_HISTOGRAM_PAGE_N OT_IN_LANGUAGE, | |
| 325 mOptions.sourceLanguageCode().hashCode()); | |
| 248 nativeApplyStringTranslateOption( | 326 nativeApplyStringTranslateOption( |
| 249 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e); | 327 mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, cod e); |
| 250 // Adjust UI. | 328 // Adjust UI. |
| 251 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); | 329 mTabLayout.replaceTabTitle(SOURCE_TAB_INDEX, mOptions.getRepresentat ionFromCode(code)); |
| 252 startTranslating(mTabLayout.getSelectedTabPosition()); | 330 startTranslating(mTabLayout.getSelectedTabPosition()); |
| 253 } | 331 } |
| 254 } | 332 } |
| 255 | 333 |
| 256 private void createAndShowSnackbar(String title, int umaType, int itemId) { | 334 private void createAndShowSnackbar(String title, int umaType, int itemId) { |
| 257 if (getSnackbarManager() == null) { | 335 if (getSnackbarManager() == null) { |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 284 mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSL ATE_SITE, true); | 362 mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSL ATE_SITE, true); |
| 285 return; | 363 return; |
| 286 } | 364 } |
| 287 } | 365 } |
| 288 | 366 |
| 289 private native void nativeApplyStringTranslateOption( | 367 private native void nativeApplyStringTranslateOption( |
| 290 long nativeTranslateCompactInfoBar, int option, String value); | 368 long nativeTranslateCompactInfoBar, int option, String value); |
| 291 private native void nativeApplyBoolTranslateOption( | 369 private native void nativeApplyBoolTranslateOption( |
| 292 long nativeTranslateCompactInfoBar, int option, boolean value); | 370 long nativeTranslateCompactInfoBar, int option, boolean value); |
| 293 } | 371 } |
| OLD | NEW |