Log source with visibility change
- Add a method in VisibilityLoggerMixin to log visible event using
LogMaker, which allows logging additional FIELD_CONTEXT field.
- In Utils.startFragment, add current page's metricsCategory as an extra
to next page.
- In next page's onResume(), extract the previous page's metricsCategory
and send it to VisibilityLoggerMixin.visible()
- Update all caller with additional paramters
Change-Id: I8e1f2597fa465b7d3aa16fa1d21c052a3219694a
Fix: 35359289
Test: RunSettingsRoboTests
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index b1c3ab3..0ac5c6a 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -252,7 +252,6 @@
/**
* Returns the default link's IP addresses, if any, taking into account IPv4 and IPv6 style
* addresses.
- * @param context the application context
* @return the formatted and newline-separated IP addresses, or null if none.
*/
public static String getDefaultIpAddresses(ConnectivityManager cm) {
@@ -496,12 +495,14 @@
* @param titleResId resource id for the String to display for the title of this set
* of preferences.
* @param title String to display for the title of this set of preferences.
+ * @param metricsCategory The current metricsCategory for logging source when fragment starts
*/
public static void startWithFragment(Context context, String fragmentName, Bundle args,
Fragment resultTo, int resultRequestCode, int titleResId,
- CharSequence title) {
+ CharSequence title, int metricsCategory) {
startWithFragment(context, fragmentName, args, resultTo, resultRequestCode,
- null /* titleResPackageName */, titleResId, title, false /* not a shortcut */);
+ null /* titleResPackageName */, titleResId, title, false /* not a shortcut */,
+ metricsCategory);
}
/**
@@ -519,19 +520,21 @@
* @param titleResId resource id for the String to display for the title of this set
* of preferences.
* @param title String to display for the title of this set of preferences.
+ * @param metricsCategory The current metricsCategory for logging source when fragment starts
*/
public static void startWithFragment(Context context, String fragmentName, Bundle args,
Fragment resultTo, int resultRequestCode, String titleResPackageName, int titleResId,
- CharSequence title) {
+ CharSequence title, int metricsCategory) {
startWithFragment(context, fragmentName, args, resultTo, resultRequestCode,
- titleResPackageName, titleResId, title, false /* not a shortcut */);
+ titleResPackageName, titleResId, title, false /* not a shortcut */,
+ metricsCategory);
}
public static void startWithFragment(Context context, String fragmentName, Bundle args,
Fragment resultTo, int resultRequestCode, int titleResId,
- CharSequence title, boolean isShortcut) {
+ CharSequence title, boolean isShortcut, int metricsCategory) {
Intent intent = onBuildStartFragmentIntent(context, fragmentName, args,
- null /* titleResPackageName */, titleResId, title, isShortcut);
+ null /* titleResPackageName */, titleResId, title, isShortcut, metricsCategory);
if (resultTo == null) {
context.startActivity(intent);
} else {
@@ -541,9 +544,9 @@
public static void startWithFragment(Context context, String fragmentName, Bundle args,
Fragment resultTo, int resultRequestCode, String titleResPackageName, int titleResId,
- CharSequence title, boolean isShortcut) {
+ CharSequence title, boolean isShortcut, int metricsCategory) {
Intent intent = onBuildStartFragmentIntent(context, fragmentName, args, titleResPackageName,
- titleResId, title, isShortcut);
+ titleResId, title, isShortcut, metricsCategory);
if (resultTo == null) {
context.startActivity(intent);
} else {
@@ -552,30 +555,15 @@
}
public static void startWithFragmentAsUser(Context context, String fragmentName, Bundle args,
- int titleResId, CharSequence title, boolean isShortcut,
+ int titleResId, CharSequence title, boolean isShortcut, int metricsCategory,
UserHandle userHandle) {
// workaround to avoid crash in b/17523189
if (userHandle.getIdentifier() == UserHandle.myUserId()) {
- startWithFragment(context, fragmentName, args, null, 0, titleResId, title, isShortcut);
+ startWithFragment(context, fragmentName, args, null, 0, titleResId, title, isShortcut,
+ metricsCategory);
} else {
Intent intent = onBuildStartFragmentIntent(context, fragmentName, args,
- null /* titleResPackageName */, titleResId, title, isShortcut);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
- context.startActivityAsUser(intent, userHandle);
- }
- }
-
- public static void startWithFragmentAsUser(Context context, String fragmentName, Bundle args,
- String titleResPackageName, int titleResId, CharSequence title, boolean isShortcut,
- UserHandle userHandle) {
- // workaround to avoid crash in b/17523189
- if (userHandle.getIdentifier() == UserHandle.myUserId()) {
- startWithFragment(context, fragmentName, args, null, 0, titleResPackageName, titleResId,
- title, isShortcut);
- } else {
- Intent intent = onBuildStartFragmentIntent(context, fragmentName, args,
- titleResPackageName, titleResId, title, isShortcut);
+ null /* titleResPackageName */, titleResId, title, isShortcut, metricsCategory);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivityAsUser(intent, userHandle);
@@ -595,12 +583,13 @@
* @param titleResId Optional title resource id to show for this item.
* @param title Optional title to show for this item.
* @param isShortcut tell if this is a Launcher Shortcut or not
+ * @param sourceMetricsCategory The context (source) from which an action is performed
* @return Returns an Intent that can be launched to display the given
* fragment.
*/
public static Intent onBuildStartFragmentIntent(Context context, String fragmentName,
Bundle args, String titleResPackageName, int titleResId, CharSequence title,
- boolean isShortcut) {
+ boolean isShortcut, int sourceMetricsCategory) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClass(context, SubSettings.class);
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, fragmentName);
@@ -610,6 +599,7 @@
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, titleResId);
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, title);
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SHORTCUT, isShortcut);
+ intent.putExtra(SettingsActivity.EXTRA_SOURCE_METRICS_CATEGORY, sourceMetricsCategory);
return intent;
}
@@ -1197,15 +1187,6 @@
return null;
}
- public static boolean isPackageEnabled(Context context, String packageName) {
- try {
- return context.getPackageManager().getApplicationInfo(packageName, 0).enabled;
- } catch (NameNotFoundException e) {
- // Thrown by PackageManager.getApplicationInfo if the package does not exist
- }
- return false;
- }
-
public static boolean isPackageDirectBootAware(Context context, String packageName) {
try {
final ApplicationInfo ai = context.getPackageManager().getApplicationInfo(