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/AppHeader.java b/src/com/android/settings/AppHeader.java
index 2b3e6c4..f5700b5 100644
--- a/src/com/android/settings/AppHeader.java
+++ b/src/com/android/settings/AppHeader.java
@@ -28,6 +28,7 @@
import android.widget.ImageView;
import android.widget.TextView;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.applications.AppInfoBase;
import com.android.settings.applications.InstalledAppDetails;
@@ -88,7 +89,7 @@
if (includeAppInfo) {
AppInfoBase.startAppInfoFragment(InstalledAppDetails.class,
R.string.application_info_label, pkgName, uid, activity,
- INSTALLED_APP_DETAILS);
+ INSTALLED_APP_DETAILS, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
} else {
activity.finish();
}
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index b90466e..f8870ca 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -567,7 +567,8 @@
void addDashboardCategoryPreferences() {
final PreferenceScreen screen = getPreferenceScreen();
final List<Preference> tilePrefs = mDashboardFeatureProvider.getPreferencesForCategory(
- getActivity(), getPrefContext(), CategoryKey.CATEGORY_SYSTEM_DEVELOPMENT);
+ getActivity(), getPrefContext(), getMetricsCategory(),
+ CategoryKey.CATEGORY_SYSTEM_DEVELOPMENT);
if (tilePrefs != null) {
for (Preference preference : tilePrefs) {
screen.addPreference(preference);
@@ -2469,10 +2470,6 @@
writeUSBAudioOptions();
} else if (preference == mForceResizable) {
writeForceResizableOptions();
- } else if (INACTIVE_APPS_KEY.equals(preference.getKey())) {
- startInactiveAppsFragment();
- } else if (BACKGROUND_CHECK_KEY.equals(preference.getKey())) {
- startBackgroundCheckFragment();
} else if (preference == mBluetoothDisableAbsVolume) {
writeBluetoothDisableAbsVolumeOptions();
} else if (preference == mWebViewMultiprocess) {
@@ -2486,18 +2483,6 @@
return false;
}
- private void startInactiveAppsFragment() {
- ((SettingsActivity) getActivity()).startPreferencePanel(
- InactiveApps.class.getName(),
- null, R.string.inactive_apps_title, null, null, 0);
- }
-
- private void startBackgroundCheckFragment() {
- ((SettingsActivity) getActivity()).startPreferencePanel(
- BackgroundCheckSummary.class.getName(),
- null, R.string.background_check_title, null, null, 0);
- }
-
private boolean showKeyguardConfirmation(Resources resources, int requestCode) {
return new ChooseLockSettingsHelper(getActivity(), this).launchConfirmationActivity(
requestCode, resources.getString(R.string.oem_unlock_enable));
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index 5fd4f46..fa9410d 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -118,7 +118,8 @@
private void showFinalConfirmation() {
Bundle args = new Bundle();
args.putBoolean(ERASE_EXTERNAL_EXTRA, mExternalStorage.isChecked());
- ((SettingsActivity) getActivity()).startPreferencePanel(MasterClearConfirm.class.getName(),
+ ((SettingsActivity) getActivity()).startPreferencePanel(
+ this, MasterClearConfirm.class.getName(),
args, R.string.master_clear_confirm_title, null, null, 0);
}
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 8ac11cd..45490ab 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -98,7 +98,8 @@
SubscriptionInfo subscription = mSubscriptions.get(selectedIndex);
args.putInt(PhoneConstants.SUBSCRIPTION_KEY, subscription.getSubscriptionId());
}
- ((SettingsActivity) getActivity()).startPreferencePanel(ResetNetworkConfirm.class.getName(),
+ ((SettingsActivity) getActivity()).startPreferencePanel(
+ this, ResetNetworkConfirm.class.getName(),
args, R.string.reset_network_confirm_title, null, null, 0);
}
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index b66f2f5..04b2413 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -414,7 +414,8 @@
(PreferenceGroup) root.findPreference(KEY_SECURITY_STATUS);
if (mDashboardFeatureProvider.isEnabled()) {
final List<Preference> tilePrefs = mDashboardFeatureProvider.getPreferencesForCategory(
- getActivity(), getPrefContext(), CategoryKey.CATEGORY_SECURITY);
+ getActivity(), getPrefContext(), getMetricsCategory(),
+ CategoryKey.CATEGORY_SECURITY);
int numSecurityStatusPrefs = 0;
if (tilePrefs != null && !tilePrefs.isEmpty()) {
for (Preference preference : tilePrefs) {
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 9168ead..0435d03 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -56,6 +56,7 @@
import com.android.settings.Settings.WifiSettingsActivity;
import com.android.settings.backup.BackupSettingsActivity;
import com.android.settings.core.gateway.SettingsGateway;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.instrumentation.SharedPreferencesLogger;
import com.android.settings.dashboard.DashboardContainerFragment;
import com.android.settings.dashboard.DashboardFeatureProvider;
@@ -101,6 +102,11 @@
public static final String EXTRA_SHOW_FRAGMENT = ":settings:show_fragment";
/**
+ * The metrics category constant for logging source when a setting fragment is opened.
+ */
+ public static final String EXTRA_SOURCE_METRICS_CATEGORY = ":settings:source_metrics";
+
+ /**
* When starting this activity and using {@link #EXTRA_SHOW_FRAGMENT},
* this extra can also be specified to supply a Bundle of arguments to pass
* to that fragment when it is instantiated during the initial creation
@@ -220,6 +226,7 @@
private boolean mSearchMenuItemExpanded = false;
private SearchResultsSummary mSearchResultsFragment;
private SearchFeatureProvider mSearchFeatureProvider;
+ private MetricsFeatureProvider mMetricsFeatureProvider;
// Categories
private ArrayList<DashboardCategory> mCategories = new ArrayList<>();
@@ -239,7 +246,7 @@
@Override
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
- startPreferencePanel(pref.getFragment(), pref.getExtras(), -1, pref.getTitle(),
+ startPreferencePanel(caller, pref.getFragment(), pref.getExtras(), -1, pref.getTitle(),
null, 0);
return true;
}
@@ -350,6 +357,7 @@
mDashboardFeatureProvider = factory.getDashboardFeatureProvider(this);
mSearchFeatureProvider = factory.getSearchFeatureProvider();
+ mMetricsFeatureProvider = factory.getMetricsFeatureProvider();
// Should happen before any call to getIntent()
getMetaData();
@@ -748,8 +756,8 @@
* @param resultRequestCode If resultTo is non-null, this is the caller's
* request code to be received with the result.
*/
- public void startPreferencePanel(String fragmentClass, Bundle args, int titleRes,
- CharSequence titleText, Fragment resultTo, int resultRequestCode) {
+ public void startPreferencePanel(Fragment caller, String fragmentClass, Bundle args,
+ int titleRes, CharSequence titleText, Fragment resultTo, int resultRequestCode) {
String title = null;
if (titleRes < 0) {
if (titleText != null) {
@@ -760,7 +768,7 @@
}
}
Utils.startWithFragment(this, fragmentClass, args, resultTo, resultRequestCode,
- titleRes, title, mIsShortcut);
+ titleRes, title, mIsShortcut, mMetricsFeatureProvider.getMetricsCategory(caller));
}
/**
@@ -775,8 +783,8 @@
* @param titleText Optional text of the title of this fragment.
* @param userHandle The user for which the panel has to be started.
*/
- public void startPreferencePanelAsUser(String fragmentClass, Bundle args, int titleRes,
- CharSequence titleText, UserHandle userHandle) {
+ public void startPreferencePanelAsUser(Fragment caller, String fragmentClass,
+ Bundle args, int titleRes, CharSequence titleText, UserHandle userHandle) {
// This is a workaround.
//
// Calling startWithFragmentAsUser() without specifying FLAG_ACTIVITY_NEW_TASK to the intent
@@ -788,7 +796,7 @@
// another check here to call startPreferencePanel() instead of startWithFragmentAsUser()
// when we're calling it as the same user.
if (userHandle.getIdentifier() == UserHandle.myUserId()) {
- startPreferencePanel(fragmentClass, args, titleRes, titleText, null, 0);
+ startPreferencePanel(caller, fragmentClass, args, titleRes, titleText, null, 0);
} else {
String title = null;
if (titleRes < 0) {
@@ -799,8 +807,8 @@
title = "";
}
}
- Utils.startWithFragmentAsUser(this, fragmentClass, args,
- titleRes, title, mIsShortcut, userHandle);
+ Utils.startWithFragmentAsUser(this, fragmentClass, args, titleRes, title,
+ mIsShortcut, mMetricsFeatureProvider.getMetricsCategory(caller), userHandle);
}
}
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 3bad5f3..70743e2 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -732,7 +732,8 @@
final Activity activity = getActivity();
if (activity instanceof SettingsActivity) {
SettingsActivity sa = (SettingsActivity) activity;
- sa.startPreferencePanel(fragmentClass, extras, titleRes, null, caller, requestCode);
+ sa.startPreferencePanel(
+ caller, fragmentClass, extras, titleRes, null, caller, requestCode);
return true;
} else {
Log.w(TAG,
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index 313e737..5571c2d 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -215,7 +215,7 @@
args.putString(UserDictionaryAddWordContents.EXTRA_SHORTCUT, editingShortcut);
args.putString(UserDictionaryAddWordContents.EXTRA_LOCALE, mLocale);
SettingsActivity sa = (SettingsActivity) getActivity();
- sa.startPreferencePanel(
+ sa.startPreferencePanel(this,
com.android.settings.inputmethod.UserDictionaryAddWordFragment.class.getName(),
args, R.string.user_dict_settings_add_dialog_title, null, null, 0);
}
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(
diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
index 0ccf6d8..cf72383 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
@@ -85,8 +85,8 @@
}
@Override
- public void startPreferencePanel(String fragmentClass, Bundle args, int titleRes,
- CharSequence titleText, Fragment resultTo, int resultRequestCode) {
+ public void startPreferencePanel(Fragment caller, String fragmentClass, Bundle args,
+ int titleRes, CharSequence titleText, Fragment resultTo, int resultRequestCode) {
// Set the title.
if (!TextUtils.isEmpty(titleText)) {
setTitle(titleText);
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index c08c924..635f440 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -45,6 +45,7 @@
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.core.lifecycle.events.OnPause;
import com.android.settings.core.lifecycle.events.OnResume;
@@ -89,6 +90,7 @@
private int mAccountProfileOrder = ORDER_ACCOUNT_PROFILES;
private AccountRestrictionHelper mHelper;
private DashboardFeatureProvider mDashboardFeatureProvider;
+ private MetricsFeatureProvider mMetricsFeatureProvider;
/**
* Holds data related to the accounts belonging to one profile.
@@ -135,8 +137,9 @@
if (mAuthorities != null) {
mAuthoritiesCount = mAuthorities.length;
}
- mDashboardFeatureProvider =
- FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext);
+ final FeatureFactory featureFactory = FeatureFactory.getFactory(mContext);
+ mDashboardFeatureProvider = featureFactory.getDashboardFeatureProvider(mContext);
+ mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
mIAEnabled = mDashboardFeatureProvider.isEnabled();
mHelper = helper;
}
@@ -235,7 +238,7 @@
if (preference == profileData.managedProfilePreference) {
Bundle arguments = new Bundle();
arguments.putParcelable(Intent.EXTRA_USER, profileData.userInfo.getUserHandle());
- ((SettingsActivity) mParent.getActivity()).startPreferencePanel(
+ ((SettingsActivity) mParent.getActivity()).startPreferencePanel(mParent,
ManagedProfileSettings.class.getName(), arguments,
R.string.managed_profile_settings_title, null, null, 0);
return true;
@@ -446,7 +449,7 @@
UserHandle userHandle) {
final String[] accountTypes = helper.getEnabledAccountTypes();
final ArrayList<AccountTypePreference> accountTypePreferences =
- new ArrayList<AccountTypePreference>(accountTypes.length);
+ new ArrayList<>(accountTypes.length);
for (int i = 0; i < accountTypes.length; i++) {
final String accountType = accountTypes[i];
@@ -489,7 +492,8 @@
titleResId);
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
accountTypePreferences.add(new AccountTypePreference(
- prefContext, account.name, titleResPackageName, titleResId, label,
+ prefContext, mMetricsFeatureProvider.getMetricsCategory(mParent),
+ account.name, titleResPackageName, titleResId, label,
AccountDetailDashboardFragment.class.getName(), fragmentArguments, icon));
}
} else if (skipToAccount) {
@@ -499,8 +503,9 @@
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
accountTypePreferences.add(new AccountTypePreference(
- prefContext, label, titleResPackageName,
- titleResId, AccountSyncSettings.class.getName(), fragmentArguments, icon));
+ prefContext, mMetricsFeatureProvider.getMetricsCategory(mParent),
+ label, titleResPackageName, titleResId, AccountSyncSettings.class.getName(),
+ fragmentArguments, icon));
} else {
final Bundle fragmentArguments = new Bundle();
fragmentArguments.putString(ManageAccountsSettings.KEY_ACCOUNT_TYPE, accountType);
@@ -509,9 +514,9 @@
fragmentArguments.putParcelable(EXTRA_USER, userHandle);
accountTypePreferences.add(new AccountTypePreference(
-
- prefContext, label, titleResPackageName,
- titleResId, ManageAccountsSettings.class.getName(), fragmentArguments, icon));
+ prefContext, mMetricsFeatureProvider.getMetricsCategory(mParent), label,
+ titleResPackageName, titleResId, ManageAccountsSettings.class.getName(),
+ fragmentArguments, icon));
}
helper.preloadDrawableForType(mContext, accountType);
}
diff --git a/src/com/android/settings/accounts/AccountSyncPreferenceController.java b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
index 76750b3..57d317b 100644
--- a/src/com/android/settings/accounts/AccountSyncPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
@@ -24,6 +24,7 @@
import android.os.UserHandle;
import android.support.v7.preference.Preference;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;
@@ -53,7 +54,7 @@
args.putParcelable(AccountSyncSettings.ACCOUNT_KEY, mAccount);
args.putParcelable(EXTRA_USER, mUserHandle);
Utils.startWithFragment(mContext, AccountSyncSettings.class.getName(), args, null, 0, -1,
- mAccount.name);
+ mAccount.name, MetricsProto.MetricsEvent.ACCOUNT);
return true;
}
diff --git a/src/com/android/settings/accounts/AccountTypePreference.java b/src/com/android/settings/accounts/AccountTypePreference.java
index bf3b9f5..0abfb50 100644
--- a/src/com/android/settings/accounts/AccountTypePreference.java
+++ b/src/com/android/settings/accounts/AccountTypePreference.java
@@ -65,15 +65,18 @@
*/
private final Bundle mFragmentArguments;
- public AccountTypePreference(Context context, CharSequence title, String titleResPackageName,
- int titleResId, String fragment, Bundle fragmentArguments, Drawable icon) {
- this(context, title, titleResPackageName, titleResId, null, fragment, fragmentArguments,
- icon);
+ private final int mMetricsCategory;
+
+ public AccountTypePreference(Context context, int metricsCategory, CharSequence title,
+ String titleResPackageName, int titleResId, String fragment, Bundle fragmentArguments,
+ Drawable icon) {
+ this(context, metricsCategory, title, titleResPackageName, titleResId, null, fragment,
+ fragmentArguments, icon);
}
- public AccountTypePreference(Context context, CharSequence title, String titleResPackageName,
- int titleResId, CharSequence summary, String fragment, Bundle fragmentArguments,
- Drawable icon) {
+ public AccountTypePreference(Context context, int metricsCategory, CharSequence title,
+ String titleResPackageName, int titleResId, CharSequence summary, String fragment,
+ Bundle fragmentArguments, Drawable icon) {
super(context);
mTitle = title;
mTitleResPackageName = titleResPackageName;
@@ -81,6 +84,7 @@
mSummary = summary;
mFragment = fragment;
mFragmentArguments = fragmentArguments;
+ mMetricsCategory = metricsCategory;
setWidgetLayoutResource(R.layout.account_type_preference);
setTitle(title);
@@ -105,7 +109,7 @@
}
Utils.startWithFragment(getContext(), mFragment, mFragmentArguments,
null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName,
- mTitleResId, null /* title */);
+ mTitleResId, null /* title */, mMetricsCategory);
return true;
}
return false;
diff --git a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java
index 87f9c77..87aec14 100644
--- a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java
+++ b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java
@@ -229,7 +229,7 @@
@Override
public boolean onPreferenceClick(Preference preference) {
- ((SettingsActivity) mFragment.getActivity()).startPreferencePanel(
+ ((SettingsActivity) mFragment.getActivity()).startPreferencePanel(mFragment,
mClass, null, mTitleRes, null, null, 0);
// Hack: announce that the Google account preferences page is launching the location
// settings
diff --git a/src/com/android/settings/accounts/ManageAccountsSettings.java b/src/com/android/settings/accounts/ManageAccountsSettings.java
index 7c5ee00..f93fe09 100644
--- a/src/com/android/settings/accounts/ManageAccountsSettings.java
+++ b/src/com/android/settings/accounts/ManageAccountsSettings.java
@@ -158,7 +158,7 @@
Bundle args = new Bundle();
args.putParcelable(AccountSyncSettings.ACCOUNT_KEY, acctPref.getAccount());
args.putParcelable(EXTRA_USER, mUserHandle);
- ((SettingsActivity) getActivity()).startPreferencePanel(
+ ((SettingsActivity) getActivity()).startPreferencePanel(this,
AccountSyncSettings.class.getCanonicalName(), args,
R.string.account_sync_settings_title, acctPref.getAccount().name,
this, REQUEST_SHOW_SYNC_SETTINGS);
diff --git a/src/com/android/settings/applications/AppHeaderController.java b/src/com/android/settings/applications/AppHeaderController.java
index daafc18..01d5fc7 100644
--- a/src/com/android/settings/applications/AppHeaderController.java
+++ b/src/com/android/settings/applications/AppHeaderController.java
@@ -38,6 +38,7 @@
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.applications.instantapps.InstantAppDetails;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.applications.ApplicationsState;
import java.lang.annotation.Retention;
@@ -65,6 +66,7 @@
private final Context mContext;
private final Fragment mFragment;
+ private final int mMetricsCategory;
private final View mAppHeader;
private Drawable mIcon;
@@ -84,6 +86,8 @@
public AppHeaderController(Context context, Fragment fragment, View appHeader) {
mContext = context;
mFragment = fragment;
+ mMetricsCategory = FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+ .getMetricsCategory(fragment);
if (appHeader != null) {
mAppHeader = appHeader;
} else {
@@ -266,7 +270,7 @@
button.setImageResource(com.android.settings.R.drawable.ic_info);
button.setOnClickListener(v -> AppInfoBase.startAppInfoFragment(
InstalledAppDetails.class, R.string.application_info_label,
- mPackageName, mUid, mFragment, 0));
+ mPackageName, mUid, mFragment, 0 /* request */, mMetricsCategory));
button.setVisibility(View.VISIBLE);
}
return;
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 015347d..b86f2f4 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -215,18 +215,19 @@
}
public static void startAppInfoFragment(Class<?> fragment, int titleRes,
- String pkg, int uid, Fragment source, int request) {
- startAppInfoFragment(fragment, titleRes, pkg, uid, source.getActivity(), request);
+ String pkg, int uid, Fragment source, int request, int sourceMetricsCategory) {
+ startAppInfoFragment(fragment, titleRes, pkg, uid, source.getActivity(), request,
+ sourceMetricsCategory);
}
public static void startAppInfoFragment(Class<?> fragment, int titleRes,
- String pkg, int uid, Activity source, int request) {
+ String pkg, int uid, Activity source, int request, int sourceMetricsCategory) {
Bundle args = new Bundle();
args.putString(AppInfoBase.ARG_PACKAGE_NAME, pkg);
args.putInt(AppInfoBase.ARG_PACKAGE_UID, uid);
Intent intent = Utils.onBuildStartFragmentIntent(source, fragment.getName(),
- args, null, titleRes, null, false);
+ args, null, titleRes, null, false, sourceMetricsCategory);
source.startActivityForResultAsUser(intent, request,
new UserHandle(UserHandle.getUserId(uid)));
}
diff --git a/src/com/android/settings/applications/AppOpsCategory.java b/src/com/android/settings/applications/AppOpsCategory.java
index 4b54891..e27e05b 100644
--- a/src/com/android/settings/applications/AppOpsCategory.java
+++ b/src/com/android/settings/applications/AppOpsCategory.java
@@ -358,10 +358,10 @@
args.putString(AppOpsDetails.ARG_PACKAGE_NAME, mCurrentPkgName);
SettingsActivity sa = (SettingsActivity) getActivity();
- sa.startPreferencePanel(AppOpsDetails.class.getName(), args,
+ sa.startPreferencePanel(this, AppOpsDetails.class.getName(), args,
R.string.app_ops_settings, null, this, RESULT_APP_DETAILS);
}
-
+
@Override public void onListItemClick(ListView l, View v, int position, long id) {
AppOpEntry entry = mAdapter.getItem(position);
if (entry != null) {
diff --git a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
index 2d2bce0..31d26ed 100644
--- a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
+++ b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
@@ -19,11 +19,8 @@
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ActivityInfo;
import android.content.pm.ComponentInfo;
-import android.content.pm.ProviderInfo;
import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
import android.os.RemoteException;
import android.os.UserHandle;
diff --git a/src/com/android/settings/applications/ConvertToFbe.java b/src/com/android/settings/applications/ConvertToFbe.java
index da5f90d..be3c371 100644
--- a/src/com/android/settings/applications/ConvertToFbe.java
+++ b/src/com/android/settings/applications/ConvertToFbe.java
@@ -79,7 +79,7 @@
private void convert() {
SettingsActivity sa = (SettingsActivity) getActivity();
- sa.startPreferencePanel(ConfirmConvertToFbe.class.getName(), null,
+ sa.startPreferencePanel(this, ConfirmConvertToFbe.class.getName(), null,
R.string.convert_to_file_encryption, null, null, 0);
}
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 73164e4..4d27bb6 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -811,7 +811,8 @@
args.putBoolean(AppHeader.EXTRA_HIDE_INFO_BUTTON, true);
SettingsActivity sa = (SettingsActivity) caller.getActivity();
- sa.startPreferencePanel(fragment.getName(), args, -1, title, caller, SUB_INFO_FRAGMENT);
+ sa.startPreferencePanel(caller, fragment.getName(), args, -1, title, caller,
+ SUB_INFO_FRAGMENT);
}
/*
@@ -896,7 +897,7 @@
startAppInfoFragment(AppDataUsage.class, getString(R.string.app_data_usage));
} else if (preference == mBatteryPreference) {
BatteryEntry entry = new BatteryEntry(getActivity(), null, mUserManager, mSipper);
- PowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(),
+ PowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(), this,
mBatteryHelper, BatteryStats.STATS_SINCE_CHARGED, entry, true, false);
} else {
return false;
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index d5f7f78..22f1627 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -17,7 +17,6 @@
package com.android.settings.applications;
import android.app.Activity;
-import android.app.usage.StorageStatsManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -33,7 +32,6 @@
import android.os.UserManager;
import android.preference.PreferenceFrameLayout;
import android.text.TextUtils;
-import android.text.format.Formatter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -564,7 +562,7 @@
private void startAppInfoFragment(Class<?> fragment, int titleRes) {
AppInfoBase.startAppInfoFragment(fragment, titleRes, mCurrentPkgName, mCurrentUid, this,
- INSTALLED_APP_DETAILS);
+ INSTALLED_APP_DETAILS, getMetricsCategory());
}
@Override
@@ -631,11 +629,11 @@
return true;
case R.id.advanced:
if (mListType == LIST_TYPE_NOTIFICATION) {
- ((SettingsActivity) getActivity()).startPreferencePanel(
+ ((SettingsActivity) getActivity()).startPreferencePanel(this,
ConfigureNotificationSettings.class.getName(), null,
R.string.configure_notification_settings, null, this, ADVANCED_SETTINGS);
} else {
- ((SettingsActivity) getActivity()).startPreferencePanel(
+ ((SettingsActivity) getActivity()).startPreferencePanel(this,
AdvancedAppSettings.class.getName(), null, R.string.configure_apps,
null, this, ADVANCED_SETTINGS);
}
diff --git a/src/com/android/settings/applications/ManageDomainUrls.java b/src/com/android/settings/applications/ManageDomainUrls.java
index 4a64900..b09a089 100644
--- a/src/com/android/settings/applications/ManageDomainUrls.java
+++ b/src/com/android/settings/applications/ManageDomainUrls.java
@@ -206,7 +206,7 @@
ApplicationsState.AppEntry entry = ((DomainAppPreference) preference).mEntry;
AppInfoBase.startAppInfoFragment(AppLaunchSettings.class, R.string.auto_launch_label,
entry.info.packageName, entry.info.uid, this,
- INSTALLED_APP_DETAILS);
+ INSTALLED_APP_DETAILS, getMetricsCategory());
return true;
}
return false;
diff --git a/src/com/android/settings/applications/ProcessStatsBase.java b/src/com/android/settings/applications/ProcessStatsBase.java
index 6b21916..7aa3cc7 100644
--- a/src/com/android/settings/applications/ProcessStatsBase.java
+++ b/src/com/android/settings/applications/ProcessStatsBase.java
@@ -139,7 +139,7 @@
memInfo.usedWeight * memInfo.weightToRam);
args.putDouble(ProcessStatsDetail.EXTRA_TOTAL_SCALE, memInfo.totalScale);
args.putBoolean(AppHeader.EXTRA_HIDE_INFO_BUTTON, !includeAppInfo);
- activity.startPreferencePanel(ProcessStatsDetail.class.getName(), args,
+ activity.startPreferencePanel(null, ProcessStatsDetail.class.getName(), args,
R.string.memory_usage, null, null, 0);
}
}
diff --git a/src/com/android/settings/applications/RunningProcessesView.java b/src/com/android/settings/applications/RunningProcessesView.java
index 917d3ab..dcb6f9e 100644
--- a/src/com/android/settings/applications/RunningProcessesView.java
+++ b/src/com/android/settings/applications/RunningProcessesView.java
@@ -411,7 +411,7 @@
args.putBoolean(RunningServiceDetails.KEY_BACKGROUND, mAdapter.mShowBackground);
SettingsActivity sa = (SettingsActivity) mOwner.getActivity();
- sa.startPreferencePanel(RunningServiceDetails.class.getName(), args,
+ sa.startPreferencePanel(null, RunningServiceDetails.class.getName(), args,
R.string.runningservicedetails_settings_title, null, null, 0);
}
}
diff --git a/src/com/android/settings/applications/ShortcutPreference.java b/src/com/android/settings/applications/ShortcutPreference.java
index e3db57a..91b41b7 100644
--- a/src/com/android/settings/applications/ShortcutPreference.java
+++ b/src/com/android/settings/applications/ShortcutPreference.java
@@ -17,6 +17,8 @@
import android.content.Context;
import android.os.Bundle;
import android.support.v7.preference.Preference;
+
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
@@ -42,6 +44,6 @@
Bundle bundle = new Bundle();
bundle.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, mPrefKey);
Utils.startWithFragment(getContext(), mTarget.getName(), bundle, null, 0,
- mTitle, null);
+ mTitle, null, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
}
}
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 6e7ae47..7a8ff4c 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -423,7 +423,8 @@
public void onClick() {
final SettingsActivity activity =
(SettingsActivity) BluetoothSettings.this.getActivity();
- activity.startPreferencePanel(ScanningSettings.class.getName(), null,
+ activity.startPreferencePanel(BluetoothSettings.this,
+ ScanningSettings.class.getName(), null,
R.string.location_scanning_screen_title, null, null, 0);
}
});
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
index ce0daa9..91ef3f1 100644
--- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java
+++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
@@ -30,8 +30,8 @@
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settings.core.lifecycle.ObservablePreferenceFragment;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.PreferenceDividerDecoration;
import com.android.settings.survey.SurveyMixin;
+import com.android.settings.widget.PreferenceDividerDecoration;
/**
* Instrumented fragment that logs visibility state.
@@ -47,9 +47,12 @@
private final PreferenceDividerDecoration mDividerDecoration =
new PreferenceDividerDecoration();
+ private final VisibilityLoggerMixin mVisibilityLoggerMixin;
+
public InstrumentedPreferenceFragment() {
// Mixin that logs visibility change for activity.
- getLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory()));
+ mVisibilityLoggerMixin = new VisibilityLoggerMixin(getMetricsCategory());
+ getLifecycle().addObserver(mVisibilityLoggerMixin);
getLifecycle().addObserver(new SurveyMixin(this, getClass().getSimpleName()));
}
@@ -68,6 +71,12 @@
}
@Override
+ public void onResume() {
+ mVisibilityLoggerMixin.setSourceMetricsCategory(getActivity());
+ super.onResume();
+ }
+
+ @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
}
diff --git a/src/com/android/settings/core/instrumentation/EventLogWriter.java b/src/com/android/settings/core/instrumentation/EventLogWriter.java
index 9304512..0a85649 100644
--- a/src/com/android/settings/core/instrumentation/EventLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/EventLogWriter.java
@@ -27,8 +27,11 @@
*/
public class EventLogWriter implements LogWriter {
- public void visible(Context context, int category) {
- MetricsLogger.visible(context, category);
+ public void visible(Context context, int source, int category) {
+ final LogMaker logMaker = new LogMaker(category)
+ .setType(MetricsProto.MetricsEvent.TYPE_OPEN)
+ .addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, source);
+ MetricsLogger.action(logMaker);
}
public void hidden(Context context, int category) {
diff --git a/src/com/android/settings/core/instrumentation/LogWriter.java b/src/com/android/settings/core/instrumentation/LogWriter.java
index 4a2fc6c..88dd4df 100644
--- a/src/com/android/settings/core/instrumentation/LogWriter.java
+++ b/src/com/android/settings/core/instrumentation/LogWriter.java
@@ -25,7 +25,7 @@
/**
* Logs a visibility event when view becomes visible.
*/
- void visible(Context context, int category);
+ void visible(Context context, int source, int category);
/**
* Logs a visibility event when view becomes hidden.
diff --git a/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java b/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java
index 13a4d7e..24c5e8c 100644
--- a/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java
+++ b/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java
@@ -16,7 +16,8 @@
package com.android.settings.core.instrumentation;
import android.content.Context;
-import android.metrics.LogMaker;
+
+import com.android.internal.logging.nano.MetricsProto;
import java.util.ArrayList;
import java.util.List;
@@ -37,9 +38,9 @@
mLoggerWriters.add(new SettingSuggestionsLogWriter());
}
- public void visible(Context context, int category) {
+ public void visible(Context context, int source, int category) {
for (LogWriter writer : mLoggerWriters) {
- writer.visible(context, category);
+ writer.visible(context, source, category);
}
}
@@ -90,4 +91,11 @@
writer.histogram(context, name, bucket);
}
}
+
+ public int getMetricsCategory(Object object) {
+ if (object == null || !(object instanceof Instrumentable)) {
+ return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
+ }
+ return ((Instrumentable) object).getMetricsCategory();
+ }
}
diff --git a/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java b/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java
index 3b94fe7..44d2554 100644
--- a/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java
@@ -31,7 +31,7 @@
private EventStore mEventStore;
@Override
- public void visible(Context context, int category) {
+ public void visible(Context context, int source, int category) {
}
@Override
diff --git a/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java b/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
index 54183a2..fcd32d1 100644
--- a/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
+++ b/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
@@ -16,8 +16,12 @@
package com.android.settings.core.instrumentation;
+import android.app.Activity;
import android.content.Context;
+import android.content.Intent;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.SettingsActivity;
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.core.lifecycle.events.OnAttach;
import com.android.settings.core.lifecycle.events.OnPause;
@@ -31,9 +35,12 @@
*/
public class VisibilityLoggerMixin implements LifecycleObserver, OnResume, OnPause, OnAttach {
+ private static final String TAG = "VisibilityLoggerMixin";
+
private final int mMetricsCategory;
private MetricsFeatureProvider mMetricsFeature;
+ private int mSourceMetricsCategory = MetricsProto.MetricsEvent.VIEW_UNKNOWN;
public VisibilityLoggerMixin(int metricsCategory) {
// MetricsFeature will be set during onAttach.
@@ -53,7 +60,7 @@
@Override
public void onResume() {
if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) {
- mMetricsFeature.visible(null /* context */, mMetricsCategory);
+ mMetricsFeature.visible(null /* context */, mSourceMetricsCategory, mMetricsCategory);
}
}
@@ -63,4 +70,19 @@
mMetricsFeature.hidden(null /* context */, mMetricsCategory);
}
}
+
+ /**
+ * Sets source metrics category for this logger. Source is the caller that opened this UI.
+ */
+ public void setSourceMetricsCategory(Activity activity) {
+ if (mSourceMetricsCategory != MetricsProto.MetricsEvent.VIEW_UNKNOWN || activity == null) {
+ return;
+ }
+ final Intent intent = activity.getIntent();
+ if (intent == null) {
+ return;
+ }
+ mSourceMetricsCategory = intent.getIntExtra(SettingsActivity.EXTRA_SOURCE_METRICS_CATEGORY,
+ MetricsProto.MetricsEvent.VIEW_UNKNOWN);
+ }
}
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProvider.java b/src/com/android/settings/dashboard/DashboardFeatureProvider.java
index 7f91d16..7845829 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProvider.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProvider.java
@@ -16,6 +16,7 @@
package com.android.settings.dashboard;
import android.app.Activity;
+import android.app.Fragment;
import android.content.Context;
import android.support.v7.preference.Preference;
@@ -44,13 +45,15 @@
*
* @param activity Activity hosting the preference
* @param context UI context to inflate preference
+ * @param sourceMetricsCategory The context (source) from which an action is performed
* @param key Value from CategoryKey
* @deprecated Pages implementing {@code DashboardFragment} should use
* {@link #getTilesForCategory(String)} instead. Using this method will not get the benefit
* of auto-ordering, progressive disclosure, auto-refreshing summary text etc.
*/
@Deprecated
- List<Preference> getPreferencesForCategory(Activity activity, Context context, String key);
+ List<Preference> getPreferencesForCategory(Activity activity, Context context,
+ int sourceMetricsCategory, String key);
/**
* Get all tiles, grouped by category.
@@ -58,13 +61,6 @@
List<DashboardCategory> getAllCategories();
/**
- * Returns a priority group for tile. priority level is grouped into hundreds. tiles with
- * priority 100 - 199 belongs to priority level 100, tiles with priority 200 - 299 is in
- * group 200, and so on.
- */
- int getPriorityGroup(Preference preference);
-
- /**
* Returns an unique string key for the tile.
*/
String getDashboardKeyForTile(Tile tile);
@@ -73,14 +69,15 @@
* Binds preference to data provided by tile.
*
* @param activity If tile contains intent to launch, it will be launched from this activity
+ * @param sourceMetricsCategory The context (source) from which an action is performed
* @param pref The preference to bind data
* @param tile The binding data
* @param key They key for preference. If null, we will generate one from tile data
* @param baseOrder The order offset value. When binding, pref's order is determined by
* both this value and tile's own priority.
*/
- void bindPreferenceToTile(Activity activity, Preference pref, Tile tile, String key,
- int baseOrder);
+ void bindPreferenceToTile(Activity activity, int sourceMetricsCategory, Preference pref,
+ Tile tile, String key, int baseOrder);
/**
* Returns a {@link ProgressiveDisclosureMixin} for specified fragment.
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 395a8bd..69105b5 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -80,7 +80,7 @@
@Override
public List<Preference> getPreferencesForCategory(Activity activity, Context context,
- String key) {
+ int sourceMetricsCategory, String key) {
if (!isEnabled()) {
return null;
}
@@ -97,7 +97,7 @@
final List<Preference> preferences = new ArrayList<>();
for (Tile tile : tiles) {
final Preference pref = new Preference(context);
- bindPreferenceToTile(activity, pref, tile, null /* key */,
+ bindPreferenceToTile(activity, sourceMetricsCategory, pref, tile, null /* key */,
Preference.DEFAULT_ORDER /* baseOrder */);
preferences.add(pref);
}
@@ -110,11 +110,6 @@
}
@Override
- public int getPriorityGroup(Preference preference) {
- return preference.getOrder() / 100;
- }
-
- @Override
public String getDashboardKeyForTile(Tile tile) {
if (tile == null || tile.intent == null) {
return null;
@@ -129,8 +124,8 @@
}
@Override
- public void bindPreferenceToTile(Activity activity, Preference pref, Tile tile, String key,
- int baseOrder) {
+ public void bindPreferenceToTile(Activity activity, int sourceMetricsCategory, Preference pref,
+ Tile tile, String key, int baseOrder) {
pref.setTitle(tile.title);
if (!TextUtils.isEmpty(key)) {
pref.setKey(key);
@@ -152,6 +147,7 @@
pref.setFragment(clsName);
} else if (tile.intent != null) {
final Intent intent = new Intent(tile.intent);
+ intent.putExtra(SettingsActivity.EXTRA_SOURCE_METRICS_CATEGORY, sourceMetricsCategory);
if (action != null) {
intent.setAction(action);
}
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index f8a27e0..d650fc7 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -330,13 +330,13 @@
// Have the key already, will rebind.
final Preference preference = mProgressiveDisclosureMixin.findPreference(
screen, key);
- mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), preference, tile, key,
- mPlaceholderPreferenceController.getOrder());
+ mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), getMetricsCategory(),
+ preference, tile, key, mPlaceholderPreferenceController.getOrder());
} else {
// Don't have this key, add it.
final Preference pref = new Preference(getPrefContext());
- mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), pref, tile, key,
- mPlaceholderPreferenceController.getOrder());
+ mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), getMetricsCategory(),
+ pref, tile, key, mPlaceholderPreferenceController.getOrder());
mProgressiveDisclosureMixin.addPreference(screen, pref);
mDashboardTilePrefKeys.add(key);
}
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index a5a4f43..ce1cf65 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -134,9 +134,11 @@
((SettingsDrawerActivity) getActivity()).addCategoryListener(this);
mSummaryLoader.setListening(true);
+ final int metricsCategory = getMetricsCategory();
for (Condition c : mConditionManager.getConditions()) {
if (c.shouldShow()) {
- mMetricsFeatureProvider.visible(getContext(), c.getMetricsConstant());
+ mMetricsFeatureProvider.visible(getContext(), metricsCategory,
+ c.getMetricsConstant());
}
}
if (DEBUG_TIMING) {
diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java
index ef84f8b..06b71d6 100644
--- a/src/com/android/settings/dashboard/SearchResultsSummary.java
+++ b/src/com/android/settings/dashboard/SearchResultsSummary.java
@@ -194,7 +194,8 @@
Bundle args = new Bundle();
args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
- Utils.startWithFragment(sa, className, args, null, 0, -1, screenTitle);
+ Utils.startWithFragment(sa, className, args, null, 0, -1, screenTitle,
+ getMetricsCategory());
} else {
final Intent intent = new Intent(action);
diff --git a/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java b/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
index b3e3504..7feac23 100644
--- a/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
+++ b/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
@@ -56,7 +56,7 @@
@Override
public void onPrimaryClick() {
Utils.startWithFragment(mManager.getContext(), BatterySaverSettings.class.getName(), null,
- null, 0, R.string.battery_saver, null);
+ null, 0, R.string.battery_saver, null, MetricsEvent.DASHBOARD_SUMMARY);
}
@Override
diff --git a/src/com/android/settings/dashboard/conditional/HotspotCondition.java b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
index 2f25da5..19e0e85 100644
--- a/src/com/android/settings/dashboard/conditional/HotspotCondition.java
+++ b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
@@ -91,7 +91,7 @@
@Override
public void onPrimaryClick() {
Utils.startWithFragment(mManager.getContext(), TetherSettings.class.getName(), null, null,
- 0, R.string.tether_settings_title_all, null);
+ 0, R.string.tether_settings_title_all, null, MetricsEvent.DASHBOARD_SUMMARY);
}
@Override
diff --git a/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java b/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java
index 11d6c0f..bfcab7f 100644
--- a/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java
+++ b/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java
@@ -63,7 +63,7 @@
@Override
public void onPrimaryClick() {
Utils.startWithFragment(mManager.getContext(), NightDisplaySettings.class.getName(), null,
- null, 0, R.string.night_display_title, null);
+ null, 0, R.string.night_display_title, null, MetricsEvent.DASHBOARD_SUMMARY);
}
@Override
diff --git a/src/com/android/settings/datausage/BillingCyclePreference.java b/src/com/android/settings/datausage/BillingCyclePreference.java
index 44312b7..8e450df 100644
--- a/src/com/android/settings/datausage/BillingCyclePreference.java
+++ b/src/com/android/settings/datausage/BillingCyclePreference.java
@@ -22,6 +22,8 @@
import android.os.RemoteException;
import android.support.v7.preference.Preference;
import android.util.AttributeSet;
+
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.datausage.CellDataPreference.DataStateListener;
@@ -76,7 +78,7 @@
Bundle args = new Bundle();
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
return Utils.onBuildStartFragmentIntent(getContext(), BillingCycleSettings.class.getName(),
- args, null, 0, getTitle(), false);
+ args, null, 0, getTitle(), false, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
}
private final DataStateListener mListener = new DataStateListener() {
diff --git a/src/com/android/settings/datausage/DataUsagePreference.java b/src/com/android/settings/datausage/DataUsagePreference.java
index bd865b5..0c7b33f 100644
--- a/src/com/android/settings/datausage/DataUsagePreference.java
+++ b/src/com/android/settings/datausage/DataUsagePreference.java
@@ -22,6 +22,8 @@
import android.telephony.SubscriptionManager;
import android.text.format.Formatter;
import android.util.AttributeSet;
+
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.Utils;
import com.android.settingslib.net.DataUsageController;
import com.android.settings.R;
@@ -53,6 +55,7 @@
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
args.putInt(DataUsageList.EXTRA_SUB_ID, mSubId);
return Utils.onBuildStartFragmentIntent(getContext(), DataUsageList.class.getName(), args,
- getContext().getPackageName(), 0, getTitle(), false);
+ getContext().getPackageName(), 0, getTitle(), false,
+ MetricsProto.MetricsEvent.VIEW_UNKNOWN);
}
}
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
index ce26c0f..6c3b9e6 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
@@ -479,7 +479,7 @@
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
intent = Utils.onBuildStartFragmentIntent(getActivity(),
ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
- false);
+ false, getMetricsCategory());
} break;
case R.string.storage_detail_images: {
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index cf70429..31bcc4e 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -235,8 +235,8 @@
final Bundle args = new Bundle();
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
- StorageDashboardFragment.class.getName(), args, null, R.string.apps_storage, null,
- false);
+ StorageDashboardFragment.class.getName(), args, null, R.string.apps_storage,
+ null, false, getMetricsCategory());
intent.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true);
getActivity().startActivity(intent);
finish();
diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
index 627b877..63c37d8 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
@@ -38,6 +38,8 @@
import com.android.settings.applications.ManageApplications;
import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.core.PreferenceController;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.deviceinfo.StorageMeasurement;
import com.android.settingslib.deviceinfo.StorageVolumeProvider;
@@ -67,6 +69,7 @@
static final String FILES_KEY = "pref_files";
private final Fragment mFragment;
+ private final MetricsFeatureProvider mMetricsFeatureProvider;
private final StorageVolumeProvider mSvp;
private VolumeInfo mVolume;
private final int mUserId;
@@ -87,7 +90,7 @@
mFragment = hostFragment;
mVolume = volume;
mSvp = svp;
-
+ mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
UserManager um = mContext.getSystemService(UserManager.class);
mUserId = um.getUserHandle();
}
@@ -213,7 +216,7 @@
args.putInt(ManageApplications.EXTRA_STORAGE_TYPE, ManageApplications.STORAGE_TYPE_MUSIC);
return Utils.onBuildStartFragmentIntent(mContext,
ManageApplications.class.getName(), args, null, R.string.audio_storage_title, null,
- false);
+ false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
}
private Intent getAppsIntent() {
@@ -224,7 +227,7 @@
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
return Utils.onBuildStartFragmentIntent(mContext,
ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
- false);
+ false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
}
private Intent getGamesIntent() {
@@ -233,7 +236,7 @@
Settings.GamesStorageActivity.class.getName());
return Utils.onBuildStartFragmentIntent(mContext,
ManageApplications.class.getName(), args, null, R.string.game_storage_settings,
- null, false);
+ null, false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
}
private Intent getFilesIntent() {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
index dace4da..154a901 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
@@ -35,6 +35,7 @@
import android.os.Process;
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
+import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceCategory;
@@ -88,9 +89,9 @@
R.string.battery_desc_camera,
};
- public static void startBatteryDetailPage(
- SettingsActivity caller, BatteryStatsHelper helper, int statsType, BatteryEntry entry,
- boolean showLocationButton, boolean includeAppInfo) {
+ public static void startBatteryDetailPage(SettingsActivity caller,
+ PreferenceFragment fragment, BatteryStatsHelper helper, int statsType,
+ BatteryEntry entry, boolean showLocationButton, boolean includeAppInfo) {
// Initialize mStats if necessary.
helper.getStats();
@@ -283,7 +284,7 @@
args.putIntArray(PowerUsageDetail.EXTRA_DETAIL_TYPES, types);
args.putDoubleArray(PowerUsageDetail.EXTRA_DETAIL_VALUES, values);
- caller.startPreferencePanelAsUser(PowerUsageDetail.class.getName(), args,
+ caller.startPreferencePanelAsUser(fragment, PowerUsageDetail.class.getName(), args,
R.string.details_title, null, new UserHandle(userId));
}
@@ -550,7 +551,7 @@
args.putString(InstalledAppDetails.ARG_PACKAGE_NAME, mPackages[0]);
SettingsActivity sa = (SettingsActivity) getActivity();
- sa.startPreferencePanel(InstalledAppDetails.class.getName(), args,
+ sa.startPreferencePanel(this, InstalledAppDetails.class.getName(), args,
R.string.application_info_label, null, null, 0);
}
@@ -558,26 +559,26 @@
SettingsActivity sa = (SettingsActivity)getActivity();
switch (action) {
case ACTION_DISPLAY_SETTINGS:
- sa.startPreferencePanel(DisplaySettings.class.getName(), null,
+ sa.startPreferencePanel(this, DisplaySettings.class.getName(), null,
R.string.display_settings_title, null, null, 0);
break;
case ACTION_WIFI_SETTINGS:
- sa.startPreferencePanel(WifiSettings.class.getName(), null,
+ sa.startPreferencePanel(this, WifiSettings.class.getName(), null,
R.string.wifi_settings, null, null, 0);
break;
case ACTION_BLUETOOTH_SETTINGS:
- sa.startPreferencePanel(BluetoothSettings.class.getName(), null,
+ sa.startPreferencePanel(this, BluetoothSettings.class.getName(), null,
R.string.bluetooth_settings, null, null, 0);
break;
case ACTION_WIRELESS_SETTINGS:
- sa.startPreferencePanel(WirelessSettings.class.getName(), null,
+ sa.startPreferencePanel(this, WirelessSettings.class.getName(), null,
R.string.radio_controls_title, null, null, 0);
break;
case ACTION_APP_DETAILS:
startApplicationDetailsActivity();
break;
case ACTION_LOCATION_SETTINGS:
- sa.startPreferencePanel(LocationSettings.class.getName(), null,
+ sa.startPreferencePanel(this, LocationSettings.class.getName(), null,
R.string.location_settings_title, null, null, 0);
break;
case ACTION_FORCE_STOP:
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 7b64ddf..75787d5 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -40,7 +40,7 @@
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
-import android.widget.Toast;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatterySipper.DrainType;
@@ -141,8 +141,8 @@
}
PowerGaugePreference pgp = (PowerGaugePreference) preference;
BatteryEntry entry = pgp.getInfo();
- PowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(), mStatsHelper,
- mStatsType, entry, true, true);
+ PowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(), this,
+ mStatsHelper, mStatsType, entry, true, true);
return super.onPreferenceTreeClick(preference);
}
@@ -206,7 +206,7 @@
Bundle args = new Bundle();
args.putString(ManageApplications.EXTRA_CLASSNAME,
HighPowerApplicationsActivity.class.getName());
- sa.startPreferencePanel(ManageApplications.class.getName(), args,
+ sa.startPreferencePanel(this, ManageApplications.class.getName(), args,
R.string.high_power_apps, null, null, 0);
return true;
case MENU_ADDITIONAL_BATTERY_INFO:
@@ -237,7 +237,7 @@
if (featureProvider.isAdvancedUiEnabled()) {
Utils.startWithFragment(getContext(), PowerUsageAdvanced.class.getName(), null,
- null, 0, R.string.advanced_battery_title, null);
+ null, 0, R.string.advanced_battery_title, null, getMetricsCategory());
} else {
mStatsHelper.storeStatsHistoryInFile(BatteryHistoryDetail.BATTERY_HISTORY_FILE);
Bundle args = new Bundle(2);
@@ -246,7 +246,7 @@
args.putParcelable(BatteryHistoryDetail.EXTRA_BROADCAST,
mStatsHelper.getBatteryBroadcast());
Utils.startWithFragment(getContext(), BatteryHistoryDetail.class.getName(), args,
- null, 0, R.string.history_details_title, null);
+ null, 0, R.string.history_details_title, null, getMetricsCategory());
}
}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 4177afb..72d54b8 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -194,6 +194,7 @@
@Override
public boolean onPreferenceClick(Preference preference) {
activity.startPreferencePanel(
+ LocationSettings.this,
LocationMode.class.getName(), null,
R.string.location_mode_screen_title, null, LocationSettings.this,
0);
@@ -348,6 +349,7 @@
switch (item.getItemId()) {
case MENU_SCANNING:
activity.startPreferencePanel(
+ this,
ScanningSettings.class.getName(), null,
R.string.location_scanning_screen_title, null, LocationSettings.this,
0);
@@ -467,6 +469,7 @@
Bundle args = new Bundle();
args.putString(InstalledAppDetails.ARG_PACKAGE_NAME, mPackage);
((SettingsActivity) getActivity()).startPreferencePanelAsUser(
+ LocationSettings.this,
InstalledAppDetails.class.getName(), args,
R.string.application_info_label, null, mUserHandle);
return true;
diff --git a/src/com/android/settings/network/NetworkResetActionMenuController.java b/src/com/android/settings/network/NetworkResetActionMenuController.java
index 67c37a4..d5065d1 100644
--- a/src/com/android/settings/network/NetworkResetActionMenuController.java
+++ b/src/com/android/settings/network/NetworkResetActionMenuController.java
@@ -23,6 +23,7 @@
import android.view.Menu;
import android.view.MenuItem;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.ResetNetwork;
import com.android.settings.Utils;
@@ -45,7 +46,8 @@
if (item != null) {
item.setOnMenuItemClickListener(target -> {
Utils.startWithFragment(mContext, ResetNetwork.class.getName(), null, null,
- 0, R.string.reset_network_title, null);
+ 0, R.string.reset_network_title, null,
+ MetricsProto.MetricsEvent.SETTINGS_NETWORK_CATEGORY);
return true;
});
}
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 0d7fb93..d0f6f2e 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -198,7 +198,7 @@
channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
Intent channelIntent = Utils.onBuildStartFragmentIntent(getActivity(),
ChannelNotificationSettings.class.getName(),
- channelArgs, null, 0, null, false);
+ channelArgs, null, 0, null, false, getMetricsCategory());
channelPref.setIntent(channelIntent);
channelPref.setOnPreferenceChangeListener(
diff --git a/src/com/android/settings/search2/CursorToSearchResultConverter.java b/src/com/android/settings/search2/CursorToSearchResultConverter.java
index 6549c18..bcb2e9d 100644
--- a/src/com/android/settings/search2/CursorToSearchResultConverter.java
+++ b/src/com/android/settings/search2/CursorToSearchResultConverter.java
@@ -29,6 +29,7 @@
import android.text.TextUtils;
import android.util.Log;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import com.android.settings.dashboard.SiteMapManager;
@@ -187,7 +188,8 @@
final Bundle args = new Bundle();
args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
final Intent intent = Utils.onBuildStartFragmentIntent(mContext,
- className, args, null, 0, screenTitle, false);
+ className, args, null, 0, screenTitle, false,
+ MetricsProto.MetricsEvent.DASHBOARD_SEARCH_RESULTS);
payload = new IntentPayload(intent);
} else {
final Intent intent = new Intent(action);
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index c49aa1d..000ccf5 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -439,7 +439,7 @@
if (userId == UserPreference.USERID_GUEST_DEFAULTS) {
Bundle extras = new Bundle();
extras.putBoolean(UserDetailsSettings.EXTRA_USER_GUEST, true);
- ((SettingsActivity) getActivity()).startPreferencePanel(
+ ((SettingsActivity) getActivity()).startPreferencePanel(this,
UserDetailsSettings.class.getName(),
extras, R.string.user_guest, null, null, 0);
return;
@@ -449,7 +449,7 @@
Bundle extras = new Bundle();
extras.putInt(RestrictedProfileSettings.EXTRA_USER_ID, userId);
extras.putBoolean(RestrictedProfileSettings.EXTRA_NEW_USER, newUser);
- ((SettingsActivity) getActivity()).startPreferencePanel(
+ ((SettingsActivity) getActivity()).startPreferencePanel(this,
RestrictedProfileSettings.class.getName(),
extras, R.string.user_restrictions_title, null,
null, 0);
@@ -459,7 +459,7 @@
} else if (mUserCaps.mIsAdmin) {
Bundle extras = new Bundle();
extras.putInt(UserDetailsSettings.EXTRA_USER_ID, userId);
- ((SettingsActivity) getActivity()).startPreferencePanel(
+ ((SettingsActivity) getActivity()).startPreferencePanel(this,
UserDetailsSettings.class.getName(),
extras,
-1, /* No title res id */
diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java
index f86e677..9ef087b 100644
--- a/src/com/android/settings/vpn2/AppManagementFragment.java
+++ b/src/com/android/settings/vpn2/AppManagementFragment.java
@@ -100,11 +100,11 @@
}
};
- public static void show(Context context, AppPreference pref) {
+ public static void show(Context context, AppPreference pref, int sourceMetricsCategory) {
Bundle args = new Bundle();
args.putString(ARG_PACKAGE_NAME, pref.getPackageName());
Utils.startWithFragmentAsUser(context, AppManagementFragment.class.getName(), args, -1,
- pref.getLabel(), false, new UserHandle(pref.getUserId()));
+ pref.getLabel(), false, sourceMetricsCategory, new UserHandle(pref.getUserId()));
}
@Override
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index 2998319..ead2143 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -405,8 +405,8 @@
ConfigDialogFragment.show(VpnSettings.this, pref.getProfile(), true /* editing */,
true /* exists */);
} else if (p instanceof AppPreference) {
- AppPreference pref = (AppPreference) p;;
- AppManagementFragment.show(getPrefContext(), pref);
+ AppPreference pref = (AppPreference) p;
+ AppManagementFragment.show(getPrefContext(), pref, getMetricsCategory());
}
}
};
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index c4b90c7..a903c09 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -850,8 +850,9 @@
@Override
public void onClick() {
final SettingsActivity activity = (SettingsActivity) getActivity();
- activity.startPreferencePanel(ScanningSettings.class.getName(), null,
- R.string.location_scanning_screen_title, null, null, 0);
+ activity.startPreferencePanel(WifiSettings.this,
+ ScanningSettings.class.getName(),
+ null, R.string.location_scanning_screen_title, null, null, 0);
}
};
mStatusMessagePreference.setText(