Merge "Update logging: switch a bunch of action() logging calls."

This commit is contained in:
Fan Zhang
2018-11-14 07:27:14 +00:00
committed by Android (Google) Code Review
34 changed files with 319 additions and 334 deletions

View File

@@ -36,6 +36,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.applications.AppStateUsageBridge.UsageState;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
OnPreferenceClickListener {
@@ -113,8 +114,14 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
void logSpecialPermissionChange(boolean newState, String packageName) {
int logCategory = newState ? MetricsEvent.APP_SPECIAL_PERMISSION_USAGE_VIEW_ALLOW
: MetricsEvent.APP_SPECIAL_PERMISSION_USAGE_VIEW_DENY;
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider().action(getContext(),
logCategory, packageName);
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
metricsFeatureProvider.action(
metricsFeatureProvider.getAttribution(getActivity()),
logCategory,
getMetricsCategory(),
packageName,
0);
}
@Override

View File

@@ -51,6 +51,7 @@ import com.android.settings.Utils;
import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminAdd;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.ActionButtonPreference;
@@ -106,7 +107,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
private final UserManager mUserManager;
private final PackageManager mPm;
private final SettingsActivity mActivity;
private final Fragment mFragment;
private final InstrumentedPreferenceFragment mFragment;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final ApplicationFeatureProvider mApplicationFeatureProvider;
private final int mUserId;
@@ -119,7 +120,8 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
private boolean mFinishing = false;
private boolean mAppsControlDisallowedBySystem;
public AppButtonsPreferenceController(SettingsActivity activity, Fragment fragment,
public AppButtonsPreferenceController(SettingsActivity activity,
InstrumentedPreferenceFragment fragment,
Lifecycle lifecycle, String packageName, ApplicationsState state,
int requestUninstall, int requestRemoveDeviceAdmin) {
super(activity, KEY_ACTION_BUTTONS);
@@ -517,8 +519,12 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
@VisibleForTesting
void forceStopPackage(String pkgName) {
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider().action(mContext,
MetricsProto.MetricsEvent.ACTION_APP_FORCE_STOP, pkgName);
mMetricsFeatureProvider.action(
mMetricsFeatureProvider.getAttribution(mActivity),
MetricsProto.MetricsEvent.ACTION_APP_FORCE_STOP,
mFragment.getMetricsCategory(),
pkgName,
0);
ActivityManager am = (ActivityManager) mActivity.getSystemService(
Context.ACTIVITY_SERVICE);
Log.d(TAG, "Stopping package " + pkgName);

View File

@@ -42,6 +42,7 @@ import com.android.settings.applications.AppStateOverlayBridge;
import com.android.settings.applications.AppStateOverlayBridge.OverlayState;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
OnPreferenceClickListener {
@@ -129,8 +130,14 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
void logSpecialPermissionChange(boolean newState, String packageName) {
int logCategory = newState ? MetricsEvent.APP_SPECIAL_PERMISSION_APPDRAW_ALLOW
: MetricsEvent.APP_SPECIAL_PERMISSION_APPDRAW_DENY;
FeatureFactory.getFactory(getContext())
.getMetricsFeatureProvider().action(getContext(), logCategory, packageName);
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
metricsFeatureProvider.action(
metricsFeatureProvider.getAttribution(getActivity()),
logCategory,
getMetricsCategory(),
packageName,
0);
}
@Override

View File

@@ -17,12 +17,12 @@
package com.android.settings.applications.defaultapps;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Pair;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
@@ -69,11 +69,12 @@ public abstract class DefaultAppPickerFragment extends RadioButtonPickerFragment
@Override
protected void onRadioButtonConfirmed(String selectedKey) {
mMetricsFeatureProvider.action(getContext(),
mMetricsFeatureProvider.action(
mMetricsFeatureProvider.getAttribution(getActivity()),
MetricsEvent.ACTION_SETTINGS_UPDATE_DEFAULT_APP,
getMetricsCategory(),
selectedKey,
Pair.create(MetricsEvent.FIELD_CONTEXT, getMetricsCategory()));
0 /* value */);
super.onRadioButtonConfirmed(selectedKey);
}

View File

@@ -23,6 +23,7 @@ import android.app.Dialog;
import android.app.admin.DeviceAdminInfo;
import android.app.admin.DeviceAdminReceiver;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
@@ -489,7 +490,12 @@ public class DeviceAdminAdd extends Activity {
void logSpecialPermissionChange(boolean allow, String packageName) {
int logCategory = allow ? MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_ADMIN_ALLOW :
MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_ADMIN_DENY;
FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this, logCategory, packageName);
FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(
SettingsEnums.PAGE_UNKNOWN,
logCategory,
SettingsEnums.PAGE_UNKNOWN,
packageName,
0);
}
@Override

View File

@@ -33,6 +33,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.applications.AppInfoWithHeader;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class PictureInPictureDetails extends AppInfoWithHeader
implements OnPreferenceChangeListener {
@@ -99,7 +100,7 @@ public class PictureInPictureDetails extends AppInfoWithHeader
/**
* @return whether the app associated with the given {@param packageName} is allowed to enter
* picture-in-picture.
* picture-in-picture.
*/
static boolean getEnterPipStateForPackage(Context context, int uid, String packageName) {
final AppOpsManager appOps = context.getSystemService(AppOpsManager.class);
@@ -108,7 +109,7 @@ public class PictureInPictureDetails extends AppInfoWithHeader
/**
* @return the summary for the current state of whether the app associated with the given
* {@param packageName} is allowed to enter picture-in-picture.
* {@param packageName} is allowed to enter picture-in-picture.
*/
public static int getPreferenceSummary(Context context, int uid, String packageName) {
final boolean enabled = PictureInPictureDetails.getEnterPipStateForPackage(context, uid,
@@ -122,7 +123,13 @@ public class PictureInPictureDetails extends AppInfoWithHeader
int logCategory = newState
? MetricsEvent.APP_PICTURE_IN_PICTURE_ALLOW
: MetricsEvent.APP_PICTURE_IN_PICTURE_DENY;
FeatureFactory.getFactory(getContext())
.getMetricsFeatureProvider().action(getContext(), logCategory, packageName);
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
metricsFeatureProvider.action(
metricsFeatureProvider.getAttribution(getActivity()),
logCategory,
getMetricsCategory(),
packageName,
0);
}
}

View File

@@ -44,6 +44,7 @@ import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.applications.ApplicationsState.Callbacks;
import com.android.settingslib.applications.ApplicationsState.Session;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.FooterPreference;
@@ -126,8 +127,15 @@ public class PremiumSmsAccess extends EmptyTextSettings
break;
}
if (category != SmsUsageMonitor.PREMIUM_SMS_PERMISSION_UNKNOWN) {
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider().action(
getContext(), category, packageName);
// TODO(117860032): Category is wrong. It should be defined in SettingsEnums.
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
metricsFeatureProvider.action(
metricsFeatureProvider.getAttribution(getActivity()),
category,
getMetricsCategory(),
packageName,
smsState);
}
}
@@ -214,7 +222,7 @@ public class PremiumSmsAccess extends EmptyTextSettings
setIcon(mAppEntry.icon);
}
setEntries(R.array.security_settings_premium_sms_values);
setEntryValues(new CharSequence[] {
setEntryValues(new CharSequence[]{
String.valueOf(SmsUsageMonitor.PREMIUM_SMS_PERMISSION_ASK_USER),
String.valueOf(SmsUsageMonitor.PREMIUM_SMS_PERMISSION_NEVER_ALLOW),
String.valueOf(SmsUsageMonitor.PREMIUM_SMS_PERMISSION_ALWAYS_ALLOW),

View File

@@ -29,6 +29,7 @@ import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settings.utils.ManagedServiceSettings;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
@@ -73,8 +74,14 @@ public class VrListenerSettings extends ManagedServiceSettings {
void logSpecialPermissionChange(boolean enable, String packageName) {
int logCategory = enable ? MetricsEvent.APP_SPECIAL_PERMISSION_VRHELPER_ALLOW
: MetricsEvent.APP_SPECIAL_PERMISSION_VRHELPER_DENY;
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider().action(getContext(),
logCategory, packageName);
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
metricsFeatureProvider.action(
metricsFeatureProvider.getAttribution(getActivity()),
logCategory,
getMetricsCategory(),
packageName,
0);
}
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =

View File

@@ -18,8 +18,8 @@ package com.android.settings.core.instrumentation;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.util.Pair;
import android.util.StatsLog;
import android.util.Pair;
import com.android.settingslib.core.instrumentation.LogWriter;
@@ -45,7 +45,7 @@ public class StatsLogWriter implements LogWriter {
0 /* changedPreferenceIntValue */);
}
@Override
@Override
public void action(Context context, int action, Pair<Integer, Object>... taggedData) {
action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
action,
@@ -73,8 +73,7 @@ public class StatsLogWriter implements LogWriter {
}
@Override
public void action(Context context, int action, String pkg,
Pair<Integer, Object>... taggedData) {
public void action(Context context, int action, String pkg) {
action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
action,
SettingsEnums.PAGE_UNKNOWN /* pageId */,

View File

@@ -19,12 +19,9 @@ package com.android.settings.dashboard.suggestions;
import android.content.ComponentName;
import android.content.Context;
import android.content.SharedPreferences;
import android.service.settings.suggestions.Suggestion;
import androidx.annotation.NonNull;
import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
/** Interface should be implemented if you have added new suggestions */
public interface SuggestionFeatureProvider {
@@ -45,10 +42,4 @@ public interface SuggestionFeatureProvider {
* Returns the {@link SharedPreferences} that holds metadata for suggestions.
*/
SharedPreferences getSharedPrefs(Context context);
/**
* Dismisses a suggestion.
*/
void dismissSuggestion(Context context, SuggestionControllerMixinCompat suggestionMixin,
Suggestion suggestion);
}

View File

@@ -20,12 +20,9 @@ import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.SharedPreferences;
import android.service.settings.suggestions.Suggestion;
import android.util.Log;
import androidx.annotation.NonNull;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.Settings.NightDisplaySuggestionActivity;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollSuggestionActivity;
import com.android.settings.biometrics.fingerprint.FingerprintSuggestionActivity;
@@ -37,10 +34,6 @@ import com.android.settings.password.ScreenLockSuggestionActivity;
import com.android.settings.wallpaper.WallpaperSuggestionActivity;
import com.android.settings.wifi.calling.WifiCallingSuggestionActivity;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
import java.util.List;
public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider {
@@ -95,16 +88,4 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
mMetricsFeatureProvider = FeatureFactory.getFactory(appContext)
.getMetricsFeatureProvider();
}
@Override
public void dismissSuggestion(Context context, SuggestionControllerMixinCompat mixin,
Suggestion suggestion) {
if (mixin == null || suggestion == null || context == null) {
return;
}
mMetricsFeatureProvider.action(
context, MetricsProto.MetricsEvent.ACTION_SETTINGS_DISMISS_SUGGESTION,
suggestion.getId());
mixin.dismissSuggestion(suggestion);
}
}

View File

@@ -26,16 +26,15 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.text.BidiFormatter;
import android.text.TextUtils;
import android.util.Pair;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper;
@@ -57,7 +56,7 @@ public class BuildNumberPreferenceController extends AbstractPreferenceControlle
private static final String KEY_BUILD_NUMBER = "build_number";
private final Activity mActivity;
private final Fragment mFragment;
private final InstrumentedPreferenceFragment mFragment;
private final UserManager mUm;
private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -67,8 +66,8 @@ public class BuildNumberPreferenceController extends AbstractPreferenceControlle
private int mDevHitCountdown;
private boolean mProcessingLastDevHit;
public BuildNumberPreferenceController(Context context, Activity activity, Fragment fragment,
Lifecycle lifecycle) {
public BuildNumberPreferenceController(Context context, Activity activity,
InstrumentedPreferenceFragment fragment, Lifecycle lifecycle) {
super(context);
mActivity = activity;
mFragment = fragment;
@@ -145,7 +144,7 @@ public class BuildNumberPreferenceController extends AbstractPreferenceControlle
.setPackage(componentName.getPackageName())
.setAction("com.android.settings.action.REQUEST_DEBUG_FEATURES");
final ResolveInfo resolveInfo = mContext.getPackageManager().resolveActivity(
requestDebugFeatures, 0);
requestDebugFeatures, 0);
if (resolveInfo != null) {
mContext.startActivity(requestDebugFeatures);
return false;
@@ -176,9 +175,11 @@ public class BuildNumberPreferenceController extends AbstractPreferenceControlle
enableDevelopmentSettings();
}
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF,
Pair.create(MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
mProcessingLastDevHit ? 0 : 1));
mMetricsFeatureProvider.getAttribution(mActivity),
MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
mFragment.getMetricsCategory(),
null,
mProcessingLastDevHit ? 0 : 1);
} else if (mDevHitCountdown > 0
&& mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER - 2)) {
if (mDevHitToast != null) {
@@ -191,10 +192,13 @@ public class BuildNumberPreferenceController extends AbstractPreferenceControlle
Toast.LENGTH_SHORT);
mDevHitToast.show();
}
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF,
Pair.create(MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
0));
mMetricsFeatureProvider.getAttribution(mActivity),
MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
mFragment.getMetricsCategory(),
null,
0);
} else if (mDevHitCountdown < 0) {
if (mDevHitToast != null) {
mDevHitToast.cancel();
@@ -203,9 +207,11 @@ public class BuildNumberPreferenceController extends AbstractPreferenceControlle
Toast.LENGTH_LONG);
mDevHitToast.show();
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF,
Pair.create(MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
1));
mMetricsFeatureProvider.getAttribution(mActivity),
MetricsEvent.FIELD_SETTINGS_BUILD_NUMBER_DEVELOPER_MODE_ENABLED,
mFragment.getMetricsCategory(),
null,
1);
}
return true;
}

View File

@@ -26,6 +26,7 @@ import android.app.job.JobParameters;
import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.app.job.JobWorkItem;
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -35,7 +36,6 @@ import android.os.StatsDimensionsValue;
import android.os.UserManager;
import android.provider.Settings;
import android.util.Log;
import android.util.Pair;
import androidx.annotation.GuardedBy;
import androidx.annotation.VisibleForTesting;
@@ -146,20 +146,18 @@ public class AnomalyDetectionJobService extends JobService {
final int uid = extractUidFromStatsDimensionsValue(intentDimsValue);
final boolean autoFeatureOn = powerUsageFeatureProvider.isSmartBatterySupported()
? Settings.Global.getInt(contentResolver,
Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON) == ON
Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON) == ON
: Settings.Global.getInt(contentResolver,
Settings.Global.APP_AUTO_RESTRICTION_ENABLED, ON) == ON;
final String packageName = batteryUtils.getPackageName(uid);
final long versionCode = batteryUtils.getAppLongVersionCode(packageName);
final String versionedPackage = packageName + "/" + versionCode;
if (batteryUtils.shouldHideAnomaly(powerWhitelistBackend, uid, anomalyInfo)) {
metricsFeatureProvider.action(context,
metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
MetricsProto.MetricsEvent.ACTION_ANOMALY_IGNORED,
packageName,
Pair.create(MetricsProto.MetricsEvent.FIELD_ANOMALY_TYPE,
anomalyInfo.anomalyType),
Pair.create(MetricsProto.MetricsEvent.FIELD_APP_VERSION_CODE,
versionCode));
SettingsEnums.PAGE_UNKNOWN,
versionedPackage,
anomalyInfo.anomalyType);
} else {
if (autoFeatureOn && anomalyInfo.autoRestriction) {
// Auto restrict this app
@@ -173,13 +171,11 @@ public class AnomalyDetectionJobService extends JobService {
AnomalyDatabaseHelper.State.NEW,
timeMs);
}
metricsFeatureProvider.action(context,
metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
MetricsProto.MetricsEvent.ACTION_ANOMALY_TRIGGERED,
packageName,
Pair.create(MetricsProto.MetricsEvent.FIELD_ANOMALY_TYPE,
anomalyInfo.anomalyType),
Pair.create(MetricsProto.MetricsEvent.FIELD_APP_VERSION_CODE,
versionCode));
SettingsEnums.PAGE_UNKNOWN,
versionedPackage,
anomalyInfo.anomalyType);
}
} catch (NullPointerException | IndexOutOfBoundsException e) {

View File

@@ -17,8 +17,8 @@
package com.android.settings.fuelgauge.batterytip.actions;
import android.app.AppOpsManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.util.Pair;
import androidx.annotation.VisibleForTesting;
@@ -64,15 +64,18 @@ public class RestrictAppAction extends BatteryTipAction {
AppOpsManager.MODE_IGNORED);
if (CollectionUtils.isEmpty(appInfo.anomalyTypes)) {
// Only log context if there is no anomaly type
mMetricsFeatureProvider.action(mContext,
MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP, packageName,
Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, metricsKey));
mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP,
metricsKey,
packageName,
0);
} else {
for (int type : appInfo.anomalyTypes) {
mMetricsFeatureProvider.action(mContext,
MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP, packageName,
Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, metricsKey),
Pair.create(MetricsProto.MetricsEvent.FIELD_ANOMALY_TYPE, type));
mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP,
metricsKey,
packageName,
type);
}
}
}

View File

@@ -17,8 +17,8 @@
package com.android.settings.fuelgauge.batterytip.actions;
import android.app.AppOpsManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.util.Pair;
import androidx.annotation.VisibleForTesting;
@@ -50,8 +50,11 @@ public class UnrestrictAppAction extends BatteryTipAction {
// Clear force app standby, then app can run in the background
mBatteryUtils.setForceAppStandby(appInfo.uid, appInfo.packageName,
AppOpsManager.MODE_ALLOWED);
mMetricsFeatureProvider.action(mContext,
MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP, appInfo.packageName,
Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, metricsKey));
mMetricsFeatureProvider.action(
SettingsEnums.PAGE_UNKNOWN,
MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP,
metricsKey,
appInfo.packageName,
0);
}
}

View File

@@ -16,11 +16,11 @@
package com.android.settings.fuelgauge.batterytip.tips;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.icu.text.ListFormatter;
import android.os.Parcel;
import android.util.Pair;
import androidx.annotation.VisibleForTesting;
@@ -126,12 +126,12 @@ public class RestrictAppTip extends BatteryTip {
for (int i = 0, size = mRestrictAppList.size(); i < size; i++) {
final AppInfo appInfo = mRestrictAppList.get(i);
for (Integer anomalyType : appInfo.anomalyTypes) {
metricsFeatureProvider.action(context,
metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP_LIST,
SettingsEnums.PAGE_UNKNOWN,
appInfo.packageName,
Pair.create(MetricsProto.MetricsEvent.FIELD_ANOMALY_TYPE, anomalyType));
anomalyType);
}
}
}
}

View File

@@ -17,24 +17,20 @@
package com.android.settings.slices;
import static com.android.settings.bluetooth.BluetoothSliceBuilder.ACTION_BLUETOOTH_SLICE_CHANGED;
import static com.android.settings.flashlight.FlashlightSliceBuilder
.ACTION_FLASHLIGHT_SLICE_CHANGED;
import static com.android.settings.network.telephony.Enhanced4gLteSliceHelper
.ACTION_ENHANCED_4G_LTE_CHANGED;
import static com.android.settings.flashlight.FlashlightSliceBuilder.ACTION_FLASHLIGHT_SLICE_CHANGED;
import static com.android.settings.network.telephony.Enhanced4gLteSliceHelper.ACTION_ENHANCED_4G_LTE_CHANGED;
import static com.android.settings.notification.ZenModeSliceBuilder.ACTION_ZEN_MODE_SLICE_CHANGED;
import static com.android.settings.slices.SettingsSliceProvider.ACTION_COPY;
import static com.android.settings.slices.SettingsSliceProvider.ACTION_SLIDER_CHANGED;
import static com.android.settings.slices.SettingsSliceProvider.ACTION_TOGGLE_CHANGED;
import static com.android.settings.slices.SettingsSliceProvider.ACTION_COPY;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper.ACTION_WIFI_CALLING_CHANGED;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper
.ACTION_WIFI_CALLING_PREFERENCE_CELLULAR_PREFERRED;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper
.ACTION_WIFI_CALLING_PREFERENCE_WIFI_ONLY;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper
.ACTION_WIFI_CALLING_PREFERENCE_WIFI_PREFERRED;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper.ACTION_WIFI_CALLING_PREFERENCE_CELLULAR_PREFERRED;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper.ACTION_WIFI_CALLING_PREFERENCE_WIFI_ONLY;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper.ACTION_WIFI_CALLING_PREFERENCE_WIFI_PREFERRED;
import android.app.settings.SettingsEnums;
import android.app.slice.Slice;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
@@ -44,7 +40,6 @@ import android.net.Uri;
import android.provider.SettingsSlicesContract;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.bluetooth.BluetoothSliceBuilder;
@@ -216,12 +211,11 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
* follows the pattern in SharedPreferenceLogger.
*/
private void logSliceValueChange(Context context, String sliceKey, int newValue) {
final Pair<Integer, Object> namePair = Pair.create(
MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, sliceKey);
final Pair<Integer, Object> valuePair = Pair.create(
MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE, newValue);
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, MetricsEvent.ACTION_SETTINGS_SLICE_CHANGED, namePair, valuePair);
.action(SettingsEnums.PAGE_UNKNOWN,
MetricsEvent.ACTION_SETTINGS_SLICE_CHANGED,
SettingsEnums.PAGE_UNKNOWN,
sliceKey, newValue);
}
private BasePreferenceController getPreferenceController(Context context, String key) {

View File

@@ -22,6 +22,7 @@ import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLAT
import android.annotation.ColorInt;
import android.app.PendingIntent;
import android.app.settings.SettingsEnums;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
@@ -77,12 +78,12 @@ public class SliceBuilderUtils {
public static Slice buildSlice(Context context, SliceData sliceData) {
Log.d(TAG, "Creating slice for: " + sliceData.getPreferenceController());
final BasePreferenceController controller = getPreferenceController(context, sliceData);
final Pair<Integer, Object> sliceNamePair =
Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, sliceData.getKey());
// Log Slice requests using the same schema as SharedPreferenceLogger (but with a different
// action name).
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED, sliceNamePair);
.action(SettingsEnums.PAGE_UNKNOWN,
MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED,
SettingsEnums.PAGE_UNKNOWN,
sliceData.getKey(),
0);
if (!controller.isAvailable()) {
// Cannot guarantee setting page is accessible, let the presenter handle error case.