diff options
author | android-build-prod (mdb) <android-build-team-robot@google.com> | 2018-04-17 18:33:27 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-04-17 18:33:27 +0000 |
commit | 8b9e773dffe054a08a441caccfbd114b2fa79a5a (patch) | |
tree | f7584ce9f33a07ee6c7349e578e07ce235275d83 /src/com/android/settings | |
parent | 9b87c6601fc8618bcd90af45409fbface2b2b836 (diff) | |
parent | 196572bb2439cbe6af327060b85b4d0e82f0cda5 (diff) | |
download | packages_apps_Settings-android-cts-8.1_r17.tar.gz packages_apps_Settings-android-cts-8.1_r17.tar.bz2 packages_apps_Settings-android-cts-8.1_r17.zip |
Merge "Snap for 4726689 from 9d66948caaf607cca2d5631b80de813e241953a8 to oreo-mr1-cts-release" into oreo-mr1-cts-releaseandroid-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10
Diffstat (limited to 'src/com/android/settings')
7 files changed, 71 insertions, 5 deletions
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index 3b83fa5265..160b52f118 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -45,6 +45,7 @@ import com.android.settings.applications.LayoutPreference; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.enterprise.DevicePolicyManagerWrapper; import com.android.settings.enterprise.DevicePolicyManagerWrapperImpl; +import com.android.settings.fuelgauge.anomaly.AnomalyUtils; import com.android.settings.fuelgauge.anomaly.Anomaly; import com.android.settings.fuelgauge.anomaly.AnomalyDialogFragment; import com.android.settings.fuelgauge.anomaly.AnomalyLoader; @@ -348,6 +349,9 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements @Override public void onLoadFinished(Loader<List<Anomaly>> loader, List<Anomaly> data) { + final AnomalyUtils anomalyUtils = AnomalyUtils.getInstance(getContext()); + anomalyUtils.logAnomalies(mMetricsFeatureProvider, data, + MetricsEvent.FUELGAUGE_POWER_USAGE_DETAIL); mAnomalySummaryPreferenceController.updateAnomalySummaryPreference(data); } diff --git a/src/com/android/settings/fuelgauge/PowerUsageAnomalyDetails.java b/src/com/android/settings/fuelgauge/PowerUsageAnomalyDetails.java index bf4c2afbfb..0d73511e84 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageAnomalyDetails.java +++ b/src/com/android/settings/fuelgauge/PowerUsageAnomalyDetails.java @@ -125,8 +125,7 @@ public class PowerUsageAnomalyDetails extends DashboardFragment implements @Override public int getMetricsCategory() { - //TODO(b/37681923): add correct metrics category - return 0; + return MetricsProto.MetricsEvent.FUELGAUGE_ANOMALY_DETAIL; } void refreshUi() { diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index ee6ebb20d4..3ff40ad169 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -68,6 +68,7 @@ import com.android.settings.fuelgauge.anomaly.AnomalyDetectionPolicy; import com.android.settings.fuelgauge.anomaly.AnomalyDialogFragment.AnomalyDialogListener; import com.android.settings.fuelgauge.anomaly.AnomalyLoader; import com.android.settings.fuelgauge.anomaly.AnomalySummaryPreferenceController; +import com.android.settings.fuelgauge.anomaly.AnomalyUtils; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.core.AbstractPreferenceController; @@ -151,6 +152,10 @@ public class PowerUsageSummary extends PowerUsageBase implements @Override public void onLoadFinished(Loader<List<Anomaly>> loader, List<Anomaly> data) { + final AnomalyUtils anomalyUtils = AnomalyUtils.getInstance(getContext()); + anomalyUtils.logAnomalies(mMetricsFeatureProvider, data, + MetricsEvent.FUELGAUGE_POWER_USAGE_SUMMARY); + // show high usage preference if possible mAnomalySummaryPreferenceController.updateAnomalySummaryPreference(data); diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java index 69d03b94c1..538f5b18b6 100644 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java +++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java @@ -23,6 +23,7 @@ import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.VisibleForTesting; +import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.fuelgauge.anomaly.action.AnomalyAction; @@ -79,8 +80,7 @@ public class AnomalyDialogFragment extends InstrumentedDialogFragment implements @Override public int getMetricsCategory() { - // TODO(b/37681923): add anomaly metric id - return 0; + return MetricsProto.MetricsEvent.DIALOG_HANDLE_ANOMALY; } @Override @@ -100,9 +100,13 @@ public class AnomalyDialogFragment extends InstrumentedDialogFragment implements @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Bundle bundle = getArguments(); + final Context context = getContext(); + final AnomalyUtils anomalyUtils = AnomalyUtils.getInstance(context); + mAnomaly = bundle.getParcelable(ARG_ANOMALY); + anomalyUtils.logAnomaly(mMetricsFeatureProvider, mAnomaly, + MetricsProto.MetricsEvent.DIALOG_HANDLE_ANOMALY); - final Context context = getContext(); final AnomalyAction anomalyAction = mAnomalyUtils.getAnomalyAction(mAnomaly); switch (anomalyAction.getActionType()) { case Anomaly.AnomalyActionType.FORCE_STOP: diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java index 491a3b4860..39d51dc08a 100644 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java +++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java @@ -19,8 +19,12 @@ package com.android.settings.fuelgauge.anomaly; import android.content.Context; import android.os.Build; import android.support.annotation.VisibleForTesting; +import android.util.Pair; +import android.util.SparseIntArray; +import com.android.internal.logging.nano.MetricsProto; import com.android.internal.os.BatteryStatsHelper; +import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.fuelgauge.anomaly.action.AnomalyAction; import com.android.settings.fuelgauge.anomaly.action.ForceStopAction; import com.android.settings.fuelgauge.anomaly.action.LocationCheckAction; @@ -40,6 +44,17 @@ public class AnomalyUtils { private Context mContext; private static AnomalyUtils sInstance; + private static final SparseIntArray mMetricArray; + static { + mMetricArray = new SparseIntArray(); + mMetricArray.append(Anomaly.AnomalyType.WAKE_LOCK, + MetricsProto.MetricsEvent.ANOMALY_TYPE_WAKELOCK); + mMetricArray.append(Anomaly.AnomalyType.WAKEUP_ALARM, + MetricsProto.MetricsEvent.ANOMALY_TYPE_WAKEUP_ALARM); + mMetricArray.append(Anomaly.AnomalyType.BLUETOOTH_SCAN, + MetricsProto.MetricsEvent.ANOMALY_TYPE_UNOPTIMIZED_BT); + } + @VisibleForTesting AnomalyUtils(Context context) { mContext = context.getApplicationContext(); @@ -118,4 +133,39 @@ public class AnomalyUtils { return anomalies; } + /** + * Log the list of {@link Anomaly} using {@link MetricsFeatureProvider}, which contains + * anomaly type, package name, field_context, field_action_type + * + * @param provider provider to do the logging + * @param anomalies contains the data to log + * @param contextId which page invoke this logging + * @see #logAnomaly(MetricsFeatureProvider, Anomaly, int) + */ + public void logAnomalies(MetricsFeatureProvider provider, List<Anomaly> anomalies, + int contextId) { + for (int i = 0, size = anomalies.size(); i < size; i++) { + logAnomaly(provider, anomalies.get(i), contextId); + } + } + + /** + * Log the {@link Anomaly} using {@link MetricsFeatureProvider}, which contains + * anomaly type, package name, field_context, field_action_type + * + * @param provider provider to do the logging + * @param anomaly contains the data to log + * @param contextId which page invoke this logging + * @see #logAnomalies(MetricsFeatureProvider, List, int) + */ + public void logAnomaly(MetricsFeatureProvider provider, Anomaly anomaly, int contextId) { + provider.action( + mContext, + mMetricArray.get(anomaly.type, MetricsProto.MetricsEvent.VIEW_UNKNOWN), + anomaly.packageName, + Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, contextId), + Pair.create(MetricsProto.MetricsEvent.FIELD_ANOMALY_ACTION_TYPE, + getAnomalyAction(anomaly).getActionType())); + } + } diff --git a/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java b/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java index 87212e7b6c..3ee89d1c4a 100644 --- a/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java +++ b/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java @@ -58,5 +58,6 @@ public abstract class AnomalyAction { */ public abstract boolean isActionActive(Anomaly anomaly); + @Anomaly.AnomalyActionType public abstract int getActionType(); } diff --git a/src/com/android/settings/fuelgauge/anomaly/action/StopAndBackgroundCheckAction.java b/src/com/android/settings/fuelgauge/anomaly/action/StopAndBackgroundCheckAction.java index dba221a35f..2c799eedec 100644 --- a/src/com/android/settings/fuelgauge/anomaly/action/StopAndBackgroundCheckAction.java +++ b/src/com/android/settings/fuelgauge/anomaly/action/StopAndBackgroundCheckAction.java @@ -19,6 +19,7 @@ package com.android.settings.fuelgauge.anomaly.action; import android.content.Context; import android.support.annotation.VisibleForTesting; +import com.android.internal.logging.nano.MetricsProto; import com.android.settings.fuelgauge.anomaly.Anomaly; /** @@ -34,6 +35,7 @@ public class StopAndBackgroundCheckAction extends AnomalyAction { public StopAndBackgroundCheckAction(Context context) { this(context, new ForceStopAction(context), new BackgroundCheckAction(context)); + mActionMetricKey = MetricsProto.MetricsEvent.ACTION_APP_STOP_AND_BACKGROUND_CHECK; } @VisibleForTesting @@ -46,6 +48,7 @@ public class StopAndBackgroundCheckAction extends AnomalyAction { @Override public void handlePositiveAction(Anomaly anomaly, int metricsKey) { + super.handlePositiveAction(anomaly, metricsKey); mForceStopAction.handlePositiveAction(anomaly, metricsKey); mBackgroundCheckAction.handlePositiveAction(anomaly, metricsKey); } |