Merge "Add usage percentage and battery level into app relative metric" into sc-dev

This commit is contained in:
YUKAI HUNG
2021-05-20 13:58:01 +00:00
committed by Android (Google) Code Review
7 changed files with 58 additions and 20 deletions

View File

@@ -29,6 +29,7 @@ import android.text.Html;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.util.Log;
import android.util.Pair;
import android.view.View;
import androidx.annotation.VisibleForTesting;
@@ -49,7 +50,6 @@ 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;
@@ -114,7 +114,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
@VisibleForTesting
boolean enableTriState = true;
private MetricsFeatureProvider mMetricsFeatureProvider;
private AppButtonsPreferenceController mAppButtonsPreferenceController;
private BackgroundActivityPreferenceController mBackgroundActivityPreferenceController;
@@ -242,8 +241,6 @@ 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) {
@@ -267,8 +264,11 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
if (enableTriState) {
initPreferenceForTriState(getContext());
final String packageName = mBatteryOptimizeUtils.getPackageName();
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.OPEN_APP_BATTERY_USAGE, packageName);
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
.action(
getContext(),
SettingsEnums.OPEN_APP_BATTERY_USAGE,
packageName);
} else {
initPreference(getContext());
}
@@ -433,8 +433,14 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_RESTRICTED;
}
if (metricCategory != 0) {
mMetricsFeatureProvider.action(getContext(),
metricCategory, mBatteryOptimizeUtils.getPackageName());
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
.action(
getContext(),
metricCategory,
new Pair(ConvertUtils.METRIC_KEY_PACKAGE,
mBatteryOptimizeUtils.getPackageName()),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE,
getArguments().getString(EXTRA_POWER_USAGE_PERCENT)));
}
}

View File

@@ -27,6 +27,7 @@ import android.text.TextUtils;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
import android.util.Log;
import android.util.Pair;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
@@ -216,7 +217,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
isAppEntry
? SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM
: SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
packageName);
new Pair(ConvertUtils.METRIC_KEY_PACKAGE, packageName),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, histEntry.mBatteryLevel),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, powerPref.getPercent()));
Log.d(TAG, String.format("handleClick() label=%s key=%s isValid:%b\n%s",
diffEntry.getAppLabel(), histEntry.getKey(), isValidPackage, histEntry));
if (isValidPackage) {

View File

@@ -258,7 +258,7 @@ public class BatteryDiffEntry {
public String toString() {
final StringBuilder builder = new StringBuilder()
.append("BatteryDiffEntry{")
.append("\n\tname=" + getAppLabel())
.append("\n\tname=" + mAppLabel)
.append(String.format("\n\tconsume=%.2f%% %f/%f",
mPercentOfTotal, mConsumePower, mTotalConsumePower))
.append(String.format("\n\tforeground:%s background:%s",
@@ -266,9 +266,9 @@ public class BatteryDiffEntry {
/*withSeconds=*/ true, /*collapseTimeUnit=*/ false),
StringUtil.formatElapsedTime(mContext, mBackgroundUsageTimeInMs,
/*withSeconds=*/ true, /*collapseTimeUnit=*/ false)))
.append(String.format("\n\tpackage:%s|%s uid:%d userId:%d",
mBatteryHistEntry.mPackageName, getPackageName(),
mBatteryHistEntry.mUid, mBatteryHistEntry.mUserId));
.append(String.format("\n\tpackage:%s uid:%d userId:%d",
mBatteryHistEntry.mPackageName, mBatteryHistEntry.mUid,
mBatteryHistEntry.mUserId));
return builder.toString();
}

View File

@@ -47,6 +47,11 @@ public final class ConvertUtils {
// Maximum total time value for each slot cumulative data at most 2 hours.
private static final float TOTAL_TIME_THRESHOLD = DateUtils.HOUR_IN_MILLIS * 2;
// Keys for metric metadata.
static final int METRIC_KEY_PACKAGE = 1;
static final int METRIC_KEY_BATTERY_LEVEL = 2;
static final int METRIC_KEY_BATTERY_USAGE = 3;
@VisibleForTesting
static double PERCENTAGE_OF_TOTAL_THRESHOLD = 1f;