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

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

Issue 2387193002: [Launcher Shortcuts] Report shortcut usage (Closed)
Patch Set: Created 4 years, 2 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 | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index bb500abb1bb367cf6b7ebac674c674b1b99cf1f0..39ac1eed88b41ccf34e816547e69c767a391588a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -27,6 +27,7 @@ import android.widget.FrameLayout;
import org.chromium.base.ActivityState;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ApplicationStatus;
+import org.chromium.base.BuildInfo;
import org.chromium.base.CommandLine;
import org.chromium.base.Log;
import org.chromium.base.MemoryPressureListener;
@@ -106,6 +107,7 @@ import org.chromium.ui.widget.Toast;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
+import java.lang.reflect.Method;
import java.util.List;
/**
@@ -768,7 +770,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
openNewTab(url, referer, headers, externalAppId, intent, false);
break;
case OPEN_NEW_TAB:
- if (fromLauncherShortcut) recordLauncherShortcutAction(false);
+ if (fromLauncherShortcut) {
+ recordLauncherShortcutAction(false);
+ reportNewTabShortcutUsed(false);
+ }
+
openNewTab(url, referer, headers, externalAppId, intent, true);
break;
case OPEN_NEW_INCOGNITO_TAB:
@@ -778,6 +784,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
getTabCreator(true).launchUrl(
UrlConstants.NTP_URL, TabLaunchType.FROM_EXTERNAL_APP);
recordLauncherShortcutAction(true);
+ reportNewTabShortcutUsed(true);
} else if (TextUtils.equals(externalAppId, getPackageName())) {
// Used by the Account management screen to open a new incognito tab.
// Account management screen collects its metrics separately.
@@ -1022,6 +1029,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
getTabModelSelector().getModel(false).commitAllTabClosures();
RecordUserAction.record("MobileMenuNewTab");
RecordUserAction.record("MobileNewTabOpened");
+ reportNewTabShortcutUsed(false);
getTabCreator(false).launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_CHROME_UI);
} else if (id == R.id.new_incognito_tab_menu_id) {
if (PrefServiceBridge.getInstance().isIncognitoModeEnabled()) {
@@ -1030,6 +1038,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
// are dropped when an incognito tab is open.
RecordUserAction.record("MobileMenuNewIncognitoTab");
RecordUserAction.record("MobileNewTabOpened");
+ reportNewTabShortcutUsed(true);
getTabCreator(true).launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_CHROME_UI);
}
} else if (id == R.id.all_bookmarks_menu_id) {
@@ -1548,4 +1557,24 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
// Enter HTML5 fullscreen to ensure the texture fills the entire composited surface.
getFullscreenManager().setPersistentFullscreenMode(visibility == View.GONE);
}
+
+ /**
+ * Reports that a new tab launcher shortcut was selected or an action equivalent to a shortcut
+ * was performed.
+ * @param isIncognito Whether the shortcut or action created a new incognito tab.
+ */
+ @TargetApi(25)
+ private void reportNewTabShortcutUsed(boolean isIncognito) {
+ if (!BuildInfo.isGreaterThanN()) return;
+
+ try {
+ Class<?> clazz = Class.forName("android.content.pm.ShortcutManager");
+ Method method = clazz.getDeclaredMethod("reportShortcutUsed", String.class);
+ method.invoke(getSystemService(clazz),
+ isIncognito ? "new-incognito-tab-shortcut" : "new-tab-shortcut");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698