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
This commit is contained in:
@@ -38,6 +38,7 @@ import com.android.settings.AppHeader;
|
||||
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 @@ public class AppHeaderController {
|
||||
|
||||
private final Context mContext;
|
||||
private final Fragment mFragment;
|
||||
private final int mMetricsCategory;
|
||||
private final View mAppHeader;
|
||||
|
||||
private Drawable mIcon;
|
||||
@@ -84,6 +86,8 @@ public class AppHeaderController {
|
||||
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 @@ public class AppHeaderController {
|
||||
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;
|
||||
|
||||
@@ -215,18 +215,19 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
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)));
|
||||
}
|
||||
|
||||
@@ -358,10 +358,10 @@ public class AppOpsCategory extends ListFragment implements
|
||||
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) {
|
||||
|
||||
@@ -19,11 +19,8 @@ package com.android.settings.applications;
|
||||
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;
|
||||
|
||||
@@ -79,7 +79,7 @@ public class ConvertToFbe extends SettingsPreferenceFragment {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -811,7 +811,8 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
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 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
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;
|
||||
|
||||
@@ -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.UserHandle;
|
||||
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 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
||||
|
||||
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 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ public class ManageDomainUrls extends SettingsPreferenceFragment
|
||||
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;
|
||||
|
||||
@@ -139,7 +139,7 @@ public abstract class ProcessStatsBase extends SettingsPreferenceFragment
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ public class RunningProcessesView extends FrameLayout
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ package com.android.settings.applications;
|
||||
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 @@ public class ShortcutPreference extends Preference {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user