Add metric for new battery relative functions for S (1/2)

Reference the table from PM requested:
https://docs.google.com/spreadsheets/d/1TC_6MLVMvOS0p1ic0wPfQ-19AOuY8Kc8FUJdqaQSM4I/edit?ts=6098b296#gid=0

Bug: 188505537
Test: make SettingsRoboTests
Change-Id: I2a4df9ab900cbeaf9885bb2dbc21ea848920bc81
This commit is contained in:
ykhung
2021-05-19 15:33:52 +08:00
committed by YUKAI HUNG
parent 9f24967458
commit a3d3c22a27
6 changed files with 51 additions and 5 deletions

View File

@@ -269,6 +269,8 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
@Override
public void onClick(View v) {
mMetricsFeatureProvider.action(
mActivity, SettingsEnums.ACTION_APP_INFO_FORCE_STOP);
// force stop
if (mAppsControlDisallowedAdmin != null && !mAppsControlDisallowedBySystem) {
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
@@ -724,6 +726,8 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
mPackageName, AUTO_REVOKED_APP_INTERACTION__ACTION__OPEN_IN_SETTINGS);
}
mContext.startActivityAsUser(mAppLaunchIntent, new UserHandle(mUserId));
mMetricsFeatureProvider.action(mActivity,
SettingsEnums.ACTION_APP_INFO_OPEN, mPackageName);
}
}

View File

@@ -17,6 +17,7 @@ package com.android.settings.display;
import static android.provider.Settings.System.SHOW_BATTERY_PERCENT;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
@@ -28,6 +29,7 @@ import com.android.internal.R;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
/**
* A controller to manage the switch for showing battery percentage in the status bar.
@@ -75,6 +77,8 @@ public class BatteryPercentagePreferenceController extends BasePreferenceControl
boolean showPercentage = (Boolean) newValue;
Settings.System.putInt(mContext.getContentResolver(), SHOW_BATTERY_PERCENT,
showPercentage ? 1 : 0);
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
.action(mContext, SettingsEnums.OPEN_BATTERY_PERCENTAGE, showPercentage);
return true;
}
}

View File

@@ -49,6 +49,7 @@ import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.StringUtil;
import com.android.settingslib.widget.LayoutPreference;
import com.android.settingslib.widget.RadioButtonPreference;
@@ -113,6 +114,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
@VisibleForTesting
boolean enableTriState = true;
private MetricsFeatureProvider mMetricsFeatureProvider;
private AppButtonsPreferenceController mAppButtonsPreferenceController;
private BackgroundActivityPreferenceController mBackgroundActivityPreferenceController;
@@ -240,6 +242,8 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
mMetricsFeatureProvider = FeatureFactory.getFactory(getContext())
.getMetricsFeatureProvider();
final String packageName = getArguments().getString(EXTRA_PACKAGE_NAME);
if (enableTriState) {
@@ -262,6 +266,9 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
initHeader();
if (enableTriState) {
initPreferenceForTriState(getContext());
final String packageName = mBatteryOptimizeUtils.getPackageName();
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.OPEN_APP_BATTERY_USAGE, packageName);
} else {
initPreference(getContext());
}
@@ -411,9 +418,24 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
@Override
public void onRadioButtonClicked(RadioButtonPreference selected) {
updatePreferenceState(mUnrestrictedPreference, selected.getKey());
updatePreferenceState(mOptimizePreference, selected.getKey());
updatePreferenceState(mRestrictedPreference, selected.getKey());
final String selectedKey = selected.getKey();
updatePreferenceState(mUnrestrictedPreference, selectedKey);
updatePreferenceState(mOptimizePreference, selectedKey);
updatePreferenceState(mRestrictedPreference, selectedKey);
// Logs metric.
int metricCategory = 0;
if (selectedKey.equals(mUnrestrictedPreference.getKey())) {
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_UNRESTRICTED;
} else if (selectedKey.equals(mOptimizePreference.getKey())) {
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED;
} else if (selectedKey.equals(mRestrictedPreference.getKey())) {
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_RESTRICTED;
}
if (metricCategory != 0) {
mMetricsFeatureProvider.action(getContext(),
metricCategory, mBatteryOptimizeUtils.getPackageName());
}
}
private void updatePreferenceState(RadioButtonPreference preference, String selectedKey) {

View File

@@ -27,6 +27,7 @@ import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
/** A utility class for application usage operation. */
public class BatteryOptimizeUtils {
private static final String TAG = "BatteryOptimizeUtils";
private static final String UNKNOWN_PACKAGE = "unknown";
@VisibleForTesting AppOpsManager mAppOpsManager;
@VisibleForTesting BatteryUtils mBatteryUtils;
@@ -108,6 +109,10 @@ public class BatteryOptimizeUtils {
|| mPowerAllowListBackend.isDefaultActiveApp(mPackageName);
}
String getPackageName() {
return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName;
}
private void refreshState() {
mPowerAllowListBackend.refreshList();
mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName);

View File

@@ -18,6 +18,7 @@
package com.android.settings.fuelgauge;
import android.app.AppOpsManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserManager;
@@ -29,6 +30,7 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.fuelgauge.batterytip.AppInfo;
import com.android.settings.fuelgauge.batterytip.BatteryTipUtils;
import com.android.settings.overlay.FeatureFactory;
import java.util.List;
@@ -80,6 +82,8 @@ public class RestrictAppPreferenceController extends BasePreferenceController {
// start fragment
RestrictedAppDetails.startRestrictedAppDetails(mPreferenceFragment,
mAppInfos);
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
.action(mContext, SettingsEnums.OPEN_APP_RESTRICTED_LIST);
return true;
}

View File

@@ -44,8 +44,10 @@ import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.AppCheckBoxPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.StringUtil;
import java.util.List;
@@ -76,6 +78,8 @@ public class RestrictedAppDetails extends DashboardFragment implements
@VisibleForTesting
BatteryDatabaseManager mBatteryDatabaseManager;
private MetricsFeatureProvider mMetricsFeatureProvider;
public static void startRestrictedAppDetails(InstrumentedPreferenceFragment fragment,
List<AppInfo> appInfos) {
final Bundle args = new Bundle();
@@ -100,7 +104,8 @@ public class RestrictedAppDetails extends DashboardFragment implements
mIconDrawableFactory = IconDrawableFactory.newInstance(context);
mBatteryUtils = BatteryUtils.getInstance(context);
mBatteryDatabaseManager = BatteryDatabaseManager.getInstance(context);
mMetricsFeatureProvider =
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
refreshUi();
}
@@ -162,7 +167,9 @@ public class RestrictedAppDetails extends DashboardFragment implements
(Boolean) value);
fragment.setTargetFragment(this, 0 /* requestCode */);
fragment.show(getFragmentManager(), TAG);
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.ACTION_APP_RESTRICTED_LIST_UNCHECKED,
appInfo.packageName);
return false;
});