Revert "DO NOT MERGE Add metric log for anomaly."
This reverts commit adf11594d3510cd947e186ce4dec254223f1da10.
Merged-In: I83761e2a9c206ea7a04f7d031a6961fdab7ca9a0
Change-Id: I015d8c0d05c7ae9abfd4939f7a95e1f0daecc1fc
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 160b52f..3b83fa5 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.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 @@
@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/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 3ff40ad..ee6ebb2 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.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 @@
@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 538f5b1..8bea04e 100644
--- a/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java
@@ -100,13 +100,9 @@
@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 39d51dc0..491a3b4 100644
--- a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
@@ -19,12 +19,8 @@
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 @@
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 @@
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 3ee89d1..87212e7 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 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 2c799ee..dba221a 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 @@
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 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 @@
@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 51a82c8..1111804 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 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 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 @@
.setPackageName(PACKAGE_NAME)
.setDisplayName(DISPLAY_NAME)
.build();
- FakeFeatureFactory.setupForTest(mContext);
}
@Test
@@ -168,4 +166,29 @@
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 38391c9..8cd5a06 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 @@
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 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 @@
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<Anomaly> 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));
- }
}