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

@@ -33,6 +33,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.AppOpsManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -41,6 +42,7 @@ import android.graphics.drawable.Drawable;
import android.os.BatteryStats;
import android.os.Bundle;
import android.os.UserHandle;
import android.util.Pair;
import androidx.fragment.app.FragmentActivity;
import androidx.loader.app.LoaderManager;
@@ -56,6 +58,7 @@ import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.widget.LayoutPreference;
import com.android.settingslib.widget.RadioButtonPreference;
@@ -129,6 +132,7 @@ public class AdvancedPowerUsageDetailTest {
private AdvancedPowerUsageDetail mFragment;
private SettingsActivity mTestActivity;
private FakeFeatureFactory mFeatureFactory;
private MetricsFeatureProvider mMetricsFeatureProvider;
@Before
public void setUp() {
@@ -137,6 +141,7 @@ public class AdvancedPowerUsageDetailTest {
mContext = spy(RuntimeEnvironment.application);
when(mContext.getPackageName()).thenReturn("foo");
mFeatureFactory = FakeFeatureFactory.setupForTest();
mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
mFragment = spy(new AdvancedPowerUsageDetail());
doReturn(mContext).when(mFragment).getContext();
@@ -751,5 +756,13 @@ public class AdvancedPowerUsageDetailTest {
assertThat(mOptimizePreference.isChecked()).isTrue();
assertThat(mRestrictedPreference.isChecked()).isFalse();
assertThat(mUnrestrictedPreference.isChecked()).isFalse();
verify(mMetricsFeatureProvider)
.action(
mContext,
SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
(Pair<Integer, Object>[]) new Pair[] {
new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, "app label")
});
}
}

View File

@@ -36,6 +36,7 @@ import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.format.DateUtils;
import android.util.Pair;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
@@ -92,6 +93,7 @@ public final class BatteryChartPreferenceControllerTest {
@Before
public void setUp() {
org.robolectric.shadows.ShadowSettings.set24HourTimeFormat(false);
MockitoAnnotations.initMocks(this);
mFeatureFactory = FakeFeatureFactory.setupForTest();
mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
@@ -361,7 +363,11 @@ public final class BatteryChartPreferenceControllerTest {
.action(
mContext,
SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
mBatteryHistEntry.mPackageName);
(Pair<Integer, Object>[]) new Pair[] {
new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, 0),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, null)
});
}
@Test
@@ -378,7 +384,11 @@ public final class BatteryChartPreferenceControllerTest {
.action(
mContext,
SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM,
mBatteryHistEntry.mPackageName);
(Pair<Integer, Object>[]) new Pair[] {
new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, 0),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, null)
});
}
@Test
@@ -560,13 +570,13 @@ public final class BatteryChartPreferenceControllerTest {
verify(mBatteryChartPreferenceController.mAppListPrefGroup)
.setTitle(captor.capture());
assertThat(captor.getValue())
.isEqualTo("App usage for 4 pm-7 am");
.isEqualTo("App usage for 4 pm - 7 am");
// Verifies the title in the expandable divider.
captor = ArgumentCaptor.forClass(String.class);
verify(mBatteryChartPreferenceController.mExpandDividerPreference)
.setTitle(captor.capture());
assertThat(captor.getValue())
.isEqualTo("System usage for 4 pm-7 am");
.isEqualTo("System usage for 4 pm - 7 am");
}
@Test

View File

@@ -55,6 +55,7 @@ public final class BatteryDiffEntryTest {
@Mock private Drawable mockDrawable;
@Mock private Drawable mockDrawable2;
@Mock private Drawable mockBadgedDrawable;
@Mock private BatteryHistEntry mBatteryHistEntry;
@Before
public void setUp() {
@@ -97,9 +98,9 @@ public final class BatteryDiffEntryTest {
public void testComparator_sortCollectionsInDescOrder() {
final List<BatteryDiffEntry> entryList = new ArrayList<>();
// Generates fake testing data.
entryList.add(createBatteryDiffEntry(30, /*batteryHistEntry=*/ null));
entryList.add(createBatteryDiffEntry(20, /*batteryHistEntry=*/ null));
entryList.add(createBatteryDiffEntry(10, /*batteryHistEntry=*/ null));
entryList.add(createBatteryDiffEntry(30, mBatteryHistEntry));
entryList.add(createBatteryDiffEntry(20, mBatteryHistEntry));
entryList.add(createBatteryDiffEntry(10, mBatteryHistEntry));
Collections.sort(entryList, BatteryDiffEntry.COMPARATOR);
assertThat(entryList.get(0).getPercentOfTotal()).isEqualTo(30);