From 00322c0f83f3e6fd09a632f221239075d8cf1f13 Mon Sep 17 00:00:00 2001 From: Lei Yu Date: Wed, 17 Jan 2018 23:22:47 +0000 Subject: [PATCH] Revert "DO NOT MERGE Add metric log for anomaly." This reverts commit adf11594d3510cd947e186ce4dec254223f1da10. Merged-In: I83761e2a9c206ea7a04f7d031a6961fdab7ca9a0 Change-Id: I015d8c0d05c7ae9abfd4939f7a95e1f0daecc1fc --- .../fuelgauge/AdvancedPowerUsageDetail.java | 4 -- .../settings/fuelgauge/PowerUsageSummary.java | 5 -- .../anomaly/AnomalyDialogFragment.java | 6 +- .../fuelgauge/anomaly/AnomalyUtils.java | 50 ------------- .../anomaly/action/AnomalyAction.java | 1 - .../action/StopAndBackgroundCheckAction.java | 3 - .../anomaly/AnomalyDialogFragmentTest.java | 29 +++++++- .../fuelgauge/anomaly/AnomalyUtilsTest.java | 72 ------------------- 8 files changed, 27 insertions(+), 143 deletions(-) diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index 160b52f118d..3b83fa52653 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -45,7 +45,6 @@ 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; @@ -349,9 +348,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements @Override public void onLoadFinished(Loader> loader, List 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/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 3ff40ad1698..ee6ebb20d4d 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -68,7 +68,6 @@ 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; @@ -152,10 +151,6 @@ public class PowerUsageSummary extends PowerUsageBase implements @Override public void onLoadFinished(Loader> loader, List 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 538f5b18b62..8bea04e4ca8 100644 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java +++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java @@ -100,13 +100,9 @@ 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 39d51dc08af..491a3b48607 100644 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java +++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java @@ -19,12 +19,8 @@ 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; @@ -44,17 +40,6 @@ 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(); @@ -133,39 +118,4 @@ 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 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 3ee89d1c4a2..87212e7b6ca 100644 --- a/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java +++ b/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java @@ -58,6 +58,5 @@ 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 2c799eedecb..dba221a35f2 100644 --- a/src/com/android/settings/fuelgauge/anomaly/action/StopAndBackgroundCheckAction.java +++ b/src/com/android/settings/fuelgauge/anomaly/action/StopAndBackgroundCheckAction.java @@ -19,7 +19,6 @@ 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; /** @@ -35,7 +34,6 @@ 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 @@ -48,7 +46,6 @@ 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); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java index 51a82c88832..1111804dd8d 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java @@ -32,7 +32,6 @@ import android.os.Build; import com.android.settings.R; import com.android.settings.fuelgauge.anomaly.action.AnomalyAction; -import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; @@ -69,7 +68,7 @@ public class AnomalyDialogFragmentTest { public void setUp() { MockitoAnnotations.initMocks(this); - mContext = spy(RuntimeEnvironment.application); + mContext = RuntimeEnvironment.application; mWakeLockAnomaly = new Anomaly.Builder() .setType(Anomaly.AnomalyType.WAKE_LOCK) .setUid(UID) @@ -95,7 +94,6 @@ public class AnomalyDialogFragmentTest { .setPackageName(PACKAGE_NAME) .setDisplayName(DISPLAY_NAME) .build(); - FakeFeatureFactory.setupForTest(mContext); } @Test @@ -168,4 +166,29 @@ public class AnomalyDialogFragmentTest { assertThat(dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getText()).isEqualTo( mContext.getString(R.string.dlg_cancel)); } + + @Test + public void testOnCreateDialog_bluetoothAnomaly_fireLocationCheckDialog() { + mAnomalyDialogFragment = spy(AnomalyDialogFragment.newInstance(mBluetoothAnomaly, + 0 /* metricskey */)); + mAnomalyDialogFragment.mAnomalyUtils = mAnomalyUtils; + doReturn(mAnomalyAction).when(mAnomalyUtils).getAnomalyAction(any()); + doNothing().when(mAnomalyDialogFragment).initAnomalyUtils(); + doReturn(Anomaly.AnomalyActionType.LOCATION_CHECK).when(mAnomalyAction).getActionType(); + + FragmentTestUtil.startFragment(mAnomalyDialogFragment); + + final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog(); + ShadowAlertDialog shadowDialog = shadowOf(dialog); + + assertThat(shadowDialog.getMessage()).isEqualTo( + mContext.getString(R.string.dialog_location_message, + mWakeLockAnomaly.displayName)); + assertThat(shadowDialog.getTitle()).isEqualTo( + mContext.getString(R.string.dialog_location_title)); + assertThat(dialog.getButton(DialogInterface.BUTTON_POSITIVE).getText()).isEqualTo( + mContext.getString(R.string.dialog_location_ok)); + assertThat(dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getText()).isEqualTo( + mContext.getString(R.string.dlg_cancel)); + } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyUtilsTest.java index 38391c9350b..8cd5a063b72 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyUtilsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyUtilsTest.java @@ -18,13 +18,8 @@ package com.android.settings.fuelgauge.anomaly; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.verify; - import android.os.Build; -import android.util.Pair; -import com.android.internal.logging.nano.MetricsProto; -import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.fuelgauge.anomaly.action.StopAndBackgroundCheckAction; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; @@ -36,42 +31,18 @@ import com.android.settings.fuelgauge.anomaly.checker.WakeupAlarmAnomalyDetector import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; -import java.util.ArrayList; -import java.util.List; - @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = { ShadowKeyValueListParserWrapperImpl.class}) public class AnomalyUtilsTest { - private static final String PACKAGE_NAME_WAKEUP = "com.android.app1"; - private static final String PACKAGE_NAME_WAKELOCK = "com.android.app2"; - private static final int CONTEXT_ID = 55; - - @Mock - private MetricsFeatureProvider mMetricsFeatureProvider; private AnomalyUtils mAnomalyUtils; - private Anomaly mWakeupAnomaly; - private Anomaly mWakeLockAnomaly; @Before public void setUp() { - MockitoAnnotations.initMocks(this); - mAnomalyUtils = new AnomalyUtils(RuntimeEnvironment.application); - - mWakeLockAnomaly = new Anomaly.Builder() - .setType(Anomaly.AnomalyType.WAKE_LOCK) - .setPackageName(PACKAGE_NAME_WAKELOCK) - .build(); - mWakeupAnomaly = new Anomaly.Builder() - .setType(Anomaly.AnomalyType.WAKEUP_ALARM) - .setPackageName(PACKAGE_NAME_WAKEUP) - .build(); } @Test @@ -126,47 +97,4 @@ public class AnomalyUtilsTest { assertThat(mAnomalyUtils.getAnomalyDetector(Anomaly.AnomalyType.WAKEUP_ALARM)).isInstanceOf( WakeupAlarmAnomalyDetector.class); } - - @Test - public void testLogAnomaly() { - mAnomalyUtils.logAnomaly(mMetricsFeatureProvider, mWakeLockAnomaly, CONTEXT_ID); - - verify(mMetricsFeatureProvider).action(RuntimeEnvironment.application, - MetricsProto.MetricsEvent.ANOMALY_TYPE_WAKELOCK, - PACKAGE_NAME_WAKELOCK, - Pair.create( - MetricsProto.MetricsEvent.FIELD_CONTEXT, - CONTEXT_ID), - Pair.create( - MetricsProto.MetricsEvent.FIELD_ANOMALY_ACTION_TYPE, - Anomaly.AnomalyActionType.FORCE_STOP)); - } - - @Test - public void testLogAnomalies() { - final List anomalies = new ArrayList<>(); - anomalies.add(mWakeLockAnomaly); - anomalies.add(mWakeupAnomaly); - - mAnomalyUtils.logAnomalies(mMetricsFeatureProvider, anomalies, CONTEXT_ID); - - verify(mMetricsFeatureProvider).action(RuntimeEnvironment.application, - MetricsProto.MetricsEvent.ANOMALY_TYPE_WAKELOCK, - PACKAGE_NAME_WAKELOCK, - Pair.create( - MetricsProto.MetricsEvent.FIELD_CONTEXT, - CONTEXT_ID), - Pair.create( - MetricsProto.MetricsEvent.FIELD_ANOMALY_ACTION_TYPE, - Anomaly.AnomalyActionType.FORCE_STOP)); - verify(mMetricsFeatureProvider).action(RuntimeEnvironment.application, - MetricsProto.MetricsEvent.ANOMALY_TYPE_WAKEUP_ALARM, - PACKAGE_NAME_WAKEUP, - Pair.create( - MetricsProto.MetricsEvent.FIELD_CONTEXT, - CONTEXT_ID), - Pair.create( - MetricsProto.MetricsEvent.FIELD_ANOMALY_ACTION_TYPE, - Anomaly.AnomalyActionType.STOP_AND_BACKGROUND_CHECK)); - } }