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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java

Issue 2873103003: Implements logging in the new compact translate UI. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/metrics/histograms/enums.xml » ('j') | tools/metrics/histograms/histograms.xml » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
index fbadb25bc70471b8b5dda92911d99d2116fce09d..7d5af884373f3304046fc1af192ffe005d4a2c03 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
@@ -11,6 +11,7 @@ import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.infobar.translate.TranslateMenu;
import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper;
@@ -36,6 +37,41 @@ class TranslateCompactInfoBar extends InfoBar
private long mNativeTranslateInfoBarPtr;
private TranslateTabLayout mTabLayout;
+ private static final String INFOBAR_HISTOGRAM_TRANSLATE_LANGUAGE =
+ "Translate.Compact.Infobar.TranslateLanguage";
+ private static final String INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE =
+ "Translate.Compact.Infobar.MoreLanguagesTranslateLang";
+ private static final String INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE =
+ "Translate.Compact.Infobar.PageNotInLang";
+ private static final String INFOBAR_HISTOGRAM_ALWAYS_TRANSLATE_LANGUAGE =
+ "Translate.Compact.Infobar.AlwaysTranslateLang";
+ private static final String INFOBAR_HISTOGRAM_NEVER_TRANSLATE_LANGUAGE =
+ "Translate.Compact.Infobar.NeverTranslateLang";
+ private static final String INFOBAR_HISTOGRAM = "Translate.Compact.Infobar.Event";
+
+ /**
+ * This is used to back a UMA histogram, so it should be treated as
+ * append-only. The values should not be changed or reused, and
+ * INFOBAR_HISTOGRAM_BOUNDARY should be the last.
+ */
+ private static final Integer INFOBAR_IMPRESSION = 0;
+ private static final Integer INFOBAR_TRANSLATE = 1;
+ private static final Integer INFOBAR_DECLINE = 2;
+ private static final Integer INFOBAR_OPTIONS = 3;
+ private static final Integer INFOBAR_MORE_LANGUAGES = 4;
+ private static final Integer INFOBAR_MORE_LANGUAGES_TRANSLATE = 5;
+ private static final Integer INFOBAR_PAGE_NOT_IN = 6;
+ private static final Integer INFOBAR_ALWAYS_TRANSLATE = 7;
+ private static final Integer INFOBAR_NEVER_TRANSLATE = 8;
+ private static final Integer INFOBAR_NEVER_TRANSLATE_SITE = 9;
+ private static final Integer INFOBAR_SCROLL_HIDE = 10;
+ private static final Integer INFOBAR_SCROLL_SHOW = 11;
+ private static final Integer INFOBAR_REVERT = 12;
+ private static final Integer INFOBAR_SNACKBAR_CANCEL_ALWAYS = 13;
+ private static final Integer INFOBAR_SNACKBAR_CANCEL_NEVER_SITE = 14;
+ private static final Integer INFOBAR_SNACKBAR_CANCEL_NEVER = 15;
+ private static final Integer INFOBAR_HISTOGRAM_BOUNDARY = 16;
+
// Need 2 instances of TranslateMenuHelper to prevent a race condition bug which happens when
// showing language menu after dismissing overflow menu.
private TranslateMenuHelper mOverflowMenuHelper;
@@ -58,8 +94,17 @@ class TranslateCompactInfoBar extends InfoBar
@Override
public void onAction(Object actionData) {
- // TODO(ramyasharma): Add logging metric to track cancel actions.
- // Do nothing.
+ switch (mMenuItemId) {
+ case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE:
+ recordInfobarAction(INFOBAR_SNACKBAR_CANCEL_ALWAYS);
+ return;
+ case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE:
+ recordInfobarAction(INFOBAR_SNACKBAR_CANCEL_NEVER);
+ return;
+ case TranslateMenu.ID_OVERFLOW_NEVER_SITE:
+ recordInfobarAction(INFOBAR_SNACKBAR_CANCEL_NEVER_SITE);
+ return;
+ }
}
};
@@ -67,6 +112,7 @@ class TranslateCompactInfoBar extends InfoBar
private static InfoBar create(int initialStep, String sourceLanguageCode,
String targetLanguageCode, boolean alwaysTranslate, boolean triggeredFromMenu,
String[] languages, String[] codes) {
+ recordInfobarAction(INFOBAR_IMPRESSION);
return new TranslateCompactInfoBar(initialStep, sourceLanguageCode, targetLanguageCode,
alwaysTranslate, triggeredFromMenu, languages, codes);
}
@@ -106,6 +152,7 @@ class TranslateCompactInfoBar extends InfoBar
mMenuButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
+ recordInfobarAction(INFOBAR_OPTIONS);
initMenuHelper(TranslateMenu.MENU_OVERFLOW);
mOverflowMenuHelper.show(TranslateMenu.MENU_OVERFLOW);
}
@@ -175,9 +222,13 @@ class TranslateCompactInfoBar extends InfoBar
public void onTabSelected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case SOURCE_TAB_INDEX:
+ recordInfobarAction(INFOBAR_REVERT);
onButtonClicked(ActionType.TRANSLATE_SHOW_ORIGINAL);
return;
case TARGET_TAB_INDEX:
+ recordInfobarAction(INFOBAR_TRANSLATE);
+ RecordHistogram.recordSparseSlowlyHistogram(
+ INFOBAR_HISTOGRAM_TRANSLATE_LANGUAGE, mOptions.targetLanguage.hashCode());
startTranslating(TARGET_TAB_INDEX);
return;
default:
@@ -195,10 +246,15 @@ class TranslateCompactInfoBar extends InfoBar
public void onOverflowMenuItemClicked(int itemId) {
switch (itemId) {
case TranslateMenu.ID_OVERFLOW_MORE_LANGUAGE:
+ recordInfobarAction(INFOBAR_MORE_LANGUAGES);
initMenuHelper(TranslateMenu.MENU_TARGET_LANGUAGE);
mLanguageMenuHelper.show(TranslateMenu.MENU_TARGET_LANGUAGE);
return;
case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE:
+ recordInfobarAction(INFOBAR_ALWAYS_TRANSLATE);
+ RecordHistogram.recordSparseSlowlyHistogram(
+ INFOBAR_HISTOGRAM_ALWAYS_TRANSLATE_LANGUAGE,
+ mOptions.sourceLanguageCode().hashCode());
// Only show snackbar when "Always Translate" is enabled.
if (!mOptions.alwaysTranslateLanguageState()) {
createAndShowSnackbar(
@@ -210,17 +266,23 @@ class TranslateCompactInfoBar extends InfoBar
}
return;
case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE:
+ recordInfobarAction(INFOBAR_NEVER_TRANSLATE);
+ RecordHistogram.recordSparseSlowlyHistogram(
+ INFOBAR_HISTOGRAM_NEVER_TRANSLATE_LANGUAGE,
+ mOptions.sourceLanguageCode().hashCode());
createAndShowSnackbar(
getContext().getString(R.string.translate_snackbar_language_never,
mOptions.sourceLanguageName()),
Snackbar.UMA_TRANSLATE_NEVER, itemId);
return;
case TranslateMenu.ID_OVERFLOW_NEVER_SITE:
+ recordInfobarAction(INFOBAR_NEVER_TRANSLATE_SITE);
createAndShowSnackbar(
getContext().getString(R.string.translate_snackbar_site_never),
Snackbar.UMA_TRANSLATE_NEVER_SITE, itemId);
return;
case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE:
+ recordInfobarAction(INFOBAR_PAGE_NOT_IN);
initMenuHelper(TranslateMenu.MENU_SOURCE_LANGUAGE);
mLanguageMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE);
return;
@@ -233,6 +295,8 @@ class TranslateCompactInfoBar extends InfoBar
public void onTargetMenuItemClicked(String code) {
// Reset target code in both UI and native.
if (mOptions.setTargetLanguage(code)) {
+ RecordHistogram.recordSparseSlowlyHistogram(INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE,
+ mOptions.targetLanguageCode().hashCode());
nativeApplyStringTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.TARGET_CODE, code);
// Adjust UI.
@@ -245,6 +309,8 @@ class TranslateCompactInfoBar extends InfoBar
public void onSourceMenuItemClicked(String code) {
// Reset source code in both UI and native.
if (mOptions.setSourceLanguage(code)) {
+ RecordHistogram.recordSparseSlowlyHistogram(INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE,
+ mOptions.sourceLanguageCode().hashCode());
nativeApplyStringTranslateOption(
mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, code);
// Adjust UI.
@@ -286,6 +352,11 @@ class TranslateCompactInfoBar extends InfoBar
}
}
+ private void recordInfobarAction(int action) {
Leo 2017/05/11 00:58:50 static
ramyasharma 2017/05/11 09:27:42 Done.
+ RecordHistogram.recordEnumeratedHistogram(
+ INFOBAR_HISTOGRAM, action, INFOBAR_HISTOGRAM_BOUNDARY);
+ }
+
private native void nativeApplyStringTranslateOption(
long nativeTranslateCompactInfoBar, int option, String value);
private native void nativeApplyBoolTranslateOption(
« no previous file with comments | « no previous file | tools/metrics/histograms/enums.xml » ('j') | tools/metrics/histograms/histograms.xml » ('J')

Powered by Google App Engine
This is Rietveld 408576698