Loading src/com/android/settings/fuelgauge/BatteryUtils.java +42 −18 Original line number Diff line number Diff line Loading @@ -53,14 +53,16 @@ public class BatteryUtils { public static final int SDK_NULL = -1; @Retention(RetentionPolicy.SOURCE) @IntDef({StatusType.FOREGROUND, @IntDef({StatusType.SCREEN_USAGE, StatusType.FOREGROUND, StatusType.BACKGROUND, StatusType.ALL }) public @interface StatusType { int FOREGROUND = 0; int BACKGROUND = 1; int ALL = 2; int SCREEN_USAGE = 0; int FOREGROUND = 1; int BACKGROUND = 2; int ALL = 3; } private static final String TAG = "BatteryUtils"; Loading Loading @@ -96,6 +98,8 @@ public class BatteryUtils { } switch (type) { case StatusType.SCREEN_USAGE: return getScreenUsageTimeMs(uid, which); case StatusType.FOREGROUND: return getProcessForegroundTimeMs(uid, which); case StatusType.BACKGROUND: Loading @@ -107,18 +111,7 @@ public class BatteryUtils { return 0; } private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); final long timeUs = uid.getProcessStateTime( BatteryStats.Uid.PROCESS_STATE_BACKGROUND, rawRealTimeUs, which); Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid())); Log.v(TAG, "background time(us): " + timeUs); return convertUsToMs(timeUs); } private long getProcessForegroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); private long getScreenUsageTimeMs(BatteryStats.Uid uid, int which, long rawRealTimeUs) { final int foregroundTypes[] = {BatteryStats.Uid.PROCESS_STATE_TOP}; Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid())); Loading @@ -131,11 +124,32 @@ public class BatteryUtils { Log.v(TAG, "foreground time(us): " + timeUs); // Return the min value of STATE_TOP time and foreground activity time, since both of these // time have some errors. // time have some errors return convertUsToMs( Math.min(timeUs, getForegroundActivityTotalTimeUs(uid, rawRealTimeUs))); } private long getScreenUsageTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); return getScreenUsageTimeMs(uid, which, rawRealTimeUs); } private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); final long timeUs = uid.getProcessStateTime( BatteryStats.Uid.PROCESS_STATE_BACKGROUND, rawRealTimeUs, which); Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid())); Log.v(TAG, "background time(us): " + timeUs); return convertUsToMs(timeUs); } private long getProcessForegroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); return getScreenUsageTimeMs(uid, which, rawRealTimeUs) + convertUsToMs(getForegroundServiceTotalTimeUs(uid, rawRealTimeUs)); } /** * Remove the {@link BatterySipper} that we should hide and smear the screen usage based on * foreground activity time. Loading Loading @@ -183,7 +197,7 @@ public class BatteryUtils { for (int i = 0, size = sippers.size(); i < size; i++) { final BatteryStats.Uid uid = sippers.get(i).uidObj; if (uid != null) { final long timeMs = getProcessTimeMs(StatusType.FOREGROUND, uid, final long timeMs = getProcessTimeMs(StatusType.SCREEN_USAGE, uid, BatteryStats.STATS_SINCE_CHARGED); activityTimeArray.put(uid.getUid(), timeMs); totalActivityTimeMs += timeMs; Loading Loading @@ -388,5 +402,15 @@ public class BatteryUtils { return 0; } @VisibleForTesting long getForegroundServiceTotalTimeUs(BatteryStats.Uid uid, long rawRealtimeUs) { final BatteryStats.Timer timer = uid.getForegroundServiceTimer(); if (timer != null) { return timer.getTotalTimeLocked(rawRealtimeUs, BatteryStats.STATS_SINCE_CHARGED); } return 0; } } src/com/android/settings/fuelgauge/PowerUsageSummary.java +1 −1 Original line number Diff line number Diff line Loading @@ -714,7 +714,7 @@ public class PowerUsageSummary extends PowerUsageBase implements preference.setSummary( (sipper.drainType != DrainType.APP || mBatteryUtils.shouldHideSipper(sipper)) ? timeSequence : TextUtils.expandTemplate(getText(R.string.battery_screen_usage), : TextUtils.expandTemplate(getText(R.string.battery_used_for), timeSequence)); } } Loading tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +31 −17 Original line number Diff line number Diff line Loading @@ -87,10 +87,17 @@ public class AdvancedPowerUsageDetailTest { private static final int ICON_ID = 123; private static final int UID = 1; private static final int POWER_MAH = 150; private static final long BACKGROUND_TIME_US = 100 * 1000; private static final long FOREGROUND_TIME_US = 200 * 1000; private static final long BACKGROUND_TIME_MS = 100; private static final long FOREGROUND_TIME_MS = 200; private static final long FOREGROUND_ACTIVITY_TIME_MS = 123; private static final long FOREGROUND_SERVICE_TIME_MS = 444; private static final long FOREGROUND_TIME_MS = FOREGROUND_ACTIVITY_TIME_MS + FOREGROUND_SERVICE_TIME_MS; private static final long PROCSTATE_TOP_TIME_MS = FOREGROUND_ACTIVITY_TIME_MS; private static final long BACKGROUND_TIME_US = BACKGROUND_TIME_MS * 1000; private static final long FOREGROUND_ACTIVITY_TIME_US = FOREGROUND_ACTIVITY_TIME_MS * 1000; private static final long FOREGROUND_SERVICE_TIME_US = FOREGROUND_SERVICE_TIME_MS * 1000; private static final long FOREGROUND_TIME_US = FOREGROUND_TIME_MS * 1000; private static final long PROCSTATE_TOP_TIME_US = PROCSTATE_TOP_TIME_MS * 1000; private static final long PHONE_FOREGROUND_TIME_MS = 250 * 1000; private static final long PHONE_BACKGROUND_TIME_MS = 0; Loading Loading @@ -123,7 +130,9 @@ public class AdvancedPowerUsageDetailTest { @Mock private AnomalySummaryPreferenceController mAnomalySummaryPreferenceController; @Mock private BatteryStats.Timer mTimer; private BatteryStats.Timer mForegroundActivityTimer; @Mock private BatteryUtils mBatteryUtils; private Context mContext; private Preference mForegroundPreference; private Preference mBackgroundPreference; Loading Loading @@ -171,10 +180,11 @@ public class AdvancedPowerUsageDetailTest { doReturn(APP_LABEL).when(mBatteryEntry).getLabel(); doReturn(BACKGROUND_TIME_US).when(mUid).getProcessStateTime( eq(BatteryStats.Uid.PROCESS_STATE_BACKGROUND), anyLong(), anyInt()); doReturn(FOREGROUND_TIME_US).when(mUid).getProcessStateTime( doReturn(PROCSTATE_TOP_TIME_US).when(mUid).getProcessStateTime( eq(BatteryStats.Uid.PROCESS_STATE_TOP), anyLong(), anyInt()); doReturn(mTimer).when(mUid).getForegroundActivityTimer(); doReturn(FOREGROUND_TIME_US).when(mTimer).getTotalTimeLocked(anyLong(), anyInt()); doReturn(mForegroundActivityTimer).when(mUid).getForegroundActivityTimer(); doReturn(FOREGROUND_ACTIVITY_TIME_US).when(mForegroundActivityTimer) .getTotalTimeLocked(anyLong(), anyInt()); ReflectionHelpers.setField(mBatteryEntry, "sipper", mBatterySipper); mBatteryEntry.iconId = ICON_ID; mBatterySipper.uidObj = mUid; Loading @@ -189,6 +199,10 @@ public class AdvancedPowerUsageDetailTest { doReturn(mPackageManager).when(mTestActivity).getPackageManager(); doReturn(mAppOpsManager).when(mTestActivity).getSystemService(Context.APP_OPS_SERVICE); mBatteryUtils = spy(BatteryUtils.getInstance(mTestActivity)); doReturn(FOREGROUND_SERVICE_TIME_US).when(mBatteryUtils).getForegroundServiceTotalTimeUs( any(BatteryStats.Uid.class), anyLong()); final ArgumentCaptor<Bundle> captor = ArgumentCaptor.forClass(Bundle.class); Answer<Void> callable = invocation -> { Loading Loading @@ -263,8 +277,8 @@ public class AdvancedPowerUsageDetailTest { @Test public void testStartBatteryDetailPage_hasBasicData() { AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID); assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME)).isEqualTo( Loading @@ -282,8 +296,8 @@ public class AdvancedPowerUsageDetailTest { mBatterySipper.drainType = BatterySipper.DrainType.PHONE; mBatterySipper.usageTimeMs = PHONE_FOREGROUND_TIME_MS; AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID); assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME)).isEqualTo( Loading @@ -300,8 +314,8 @@ public class AdvancedPowerUsageDetailTest { public void testStartBatteryDetailPage_NormalApp() { mBatterySipper.mPackages = PACKAGE_NAME; mBatteryEntry.defaultPackageName = PACKAGE_NAME[0]; AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME)).isEqualTo( PACKAGE_NAME[0]); Loading @@ -312,8 +326,8 @@ public class AdvancedPowerUsageDetailTest { @Test public void testStartBatteryDetailPage_SystemApp() { mBatterySipper.mPackages = null; AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_LABEL)).isEqualTo(APP_LABEL); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_ICON_ID)).isEqualTo(ICON_ID); Loading @@ -327,8 +341,8 @@ public class AdvancedPowerUsageDetailTest { final int appUid = 1010019; mBatterySipper.mPackages = PACKAGE_NAME; doReturn(appUid).when(mBatterySipper).getUid(); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); verify(mTestActivity).startPreferencePanelAsUser( nullable(Fragment.class), nullable(String.class), nullable(Bundle.class), anyInt(), Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ public class BatteryUtilsTest { doReturn(mAppOpsManager).when(shadowContext).getSystemService(Context.APP_OPS_SERVICE); mBatteryUtils = spy(new BatteryUtils(shadowContext)); mBatteryUtils.mPowerUsageFeatureProvider = mProvider; doReturn(0L).when(mBatteryUtils).getForegroundServiceTotalTimeUs( any(BatteryStats.Uid.class), anyLong()); } @Test Loading Loading @@ -453,7 +455,7 @@ public class BatteryUtilsTest { if (!isUidNull) { final BatteryStats.Uid uid = mock(BatteryStats.Uid.class, RETURNS_DEEP_STUBS); doReturn(topTime).when(mBatteryUtils).getProcessTimeMs( eq(BatteryUtils.StatusType.FOREGROUND), eq(uid), anyInt()); eq(BatteryUtils.StatusType.SCREEN_USAGE), eq(uid), anyInt()); doReturn(uidCode).when(uid).getUid(); sipper.uidObj = uid; } Loading tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -337,13 +337,13 @@ public class PowerUsageSummaryTest { @Test public void testSetUsageSummary_timeMoreThanOneMinute_normalApp_setScreenSummary() { mNormalBatterySipper.usageTimeMs = 2 * DateUtils.MINUTE_IN_MILLIS; doReturn(mRealContext.getText(R.string.battery_screen_usage)).when(mFragment).getText( R.string.battery_screen_usage); doReturn(mRealContext.getText(R.string.battery_used_for)).when(mFragment).getText( R.string.battery_used_for); doReturn(mRealContext).when(mFragment).getContext(); mFragment.setUsageSummary(mPreference, mNormalBatterySipper); assertThat(mPreference.getSummary().toString()).isEqualTo("Screen usage 2m"); assertThat(mPreference.getSummary().toString()).isEqualTo("Used for 2m"); } @Test Loading Loading
src/com/android/settings/fuelgauge/BatteryUtils.java +42 −18 Original line number Diff line number Diff line Loading @@ -53,14 +53,16 @@ public class BatteryUtils { public static final int SDK_NULL = -1; @Retention(RetentionPolicy.SOURCE) @IntDef({StatusType.FOREGROUND, @IntDef({StatusType.SCREEN_USAGE, StatusType.FOREGROUND, StatusType.BACKGROUND, StatusType.ALL }) public @interface StatusType { int FOREGROUND = 0; int BACKGROUND = 1; int ALL = 2; int SCREEN_USAGE = 0; int FOREGROUND = 1; int BACKGROUND = 2; int ALL = 3; } private static final String TAG = "BatteryUtils"; Loading Loading @@ -96,6 +98,8 @@ public class BatteryUtils { } switch (type) { case StatusType.SCREEN_USAGE: return getScreenUsageTimeMs(uid, which); case StatusType.FOREGROUND: return getProcessForegroundTimeMs(uid, which); case StatusType.BACKGROUND: Loading @@ -107,18 +111,7 @@ public class BatteryUtils { return 0; } private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); final long timeUs = uid.getProcessStateTime( BatteryStats.Uid.PROCESS_STATE_BACKGROUND, rawRealTimeUs, which); Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid())); Log.v(TAG, "background time(us): " + timeUs); return convertUsToMs(timeUs); } private long getProcessForegroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); private long getScreenUsageTimeMs(BatteryStats.Uid uid, int which, long rawRealTimeUs) { final int foregroundTypes[] = {BatteryStats.Uid.PROCESS_STATE_TOP}; Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid())); Loading @@ -131,11 +124,32 @@ public class BatteryUtils { Log.v(TAG, "foreground time(us): " + timeUs); // Return the min value of STATE_TOP time and foreground activity time, since both of these // time have some errors. // time have some errors return convertUsToMs( Math.min(timeUs, getForegroundActivityTotalTimeUs(uid, rawRealTimeUs))); } private long getScreenUsageTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); return getScreenUsageTimeMs(uid, which, rawRealTimeUs); } private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); final long timeUs = uid.getProcessStateTime( BatteryStats.Uid.PROCESS_STATE_BACKGROUND, rawRealTimeUs, which); Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid())); Log.v(TAG, "background time(us): " + timeUs); return convertUsToMs(timeUs); } private long getProcessForegroundTimeMs(BatteryStats.Uid uid, int which) { final long rawRealTimeUs = convertMsToUs(SystemClock.elapsedRealtime()); return getScreenUsageTimeMs(uid, which, rawRealTimeUs) + convertUsToMs(getForegroundServiceTotalTimeUs(uid, rawRealTimeUs)); } /** * Remove the {@link BatterySipper} that we should hide and smear the screen usage based on * foreground activity time. Loading Loading @@ -183,7 +197,7 @@ public class BatteryUtils { for (int i = 0, size = sippers.size(); i < size; i++) { final BatteryStats.Uid uid = sippers.get(i).uidObj; if (uid != null) { final long timeMs = getProcessTimeMs(StatusType.FOREGROUND, uid, final long timeMs = getProcessTimeMs(StatusType.SCREEN_USAGE, uid, BatteryStats.STATS_SINCE_CHARGED); activityTimeArray.put(uid.getUid(), timeMs); totalActivityTimeMs += timeMs; Loading Loading @@ -388,5 +402,15 @@ public class BatteryUtils { return 0; } @VisibleForTesting long getForegroundServiceTotalTimeUs(BatteryStats.Uid uid, long rawRealtimeUs) { final BatteryStats.Timer timer = uid.getForegroundServiceTimer(); if (timer != null) { return timer.getTotalTimeLocked(rawRealtimeUs, BatteryStats.STATS_SINCE_CHARGED); } return 0; } }
src/com/android/settings/fuelgauge/PowerUsageSummary.java +1 −1 Original line number Diff line number Diff line Loading @@ -714,7 +714,7 @@ public class PowerUsageSummary extends PowerUsageBase implements preference.setSummary( (sipper.drainType != DrainType.APP || mBatteryUtils.shouldHideSipper(sipper)) ? timeSequence : TextUtils.expandTemplate(getText(R.string.battery_screen_usage), : TextUtils.expandTemplate(getText(R.string.battery_used_for), timeSequence)); } } Loading
tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +31 −17 Original line number Diff line number Diff line Loading @@ -87,10 +87,17 @@ public class AdvancedPowerUsageDetailTest { private static final int ICON_ID = 123; private static final int UID = 1; private static final int POWER_MAH = 150; private static final long BACKGROUND_TIME_US = 100 * 1000; private static final long FOREGROUND_TIME_US = 200 * 1000; private static final long BACKGROUND_TIME_MS = 100; private static final long FOREGROUND_TIME_MS = 200; private static final long FOREGROUND_ACTIVITY_TIME_MS = 123; private static final long FOREGROUND_SERVICE_TIME_MS = 444; private static final long FOREGROUND_TIME_MS = FOREGROUND_ACTIVITY_TIME_MS + FOREGROUND_SERVICE_TIME_MS; private static final long PROCSTATE_TOP_TIME_MS = FOREGROUND_ACTIVITY_TIME_MS; private static final long BACKGROUND_TIME_US = BACKGROUND_TIME_MS * 1000; private static final long FOREGROUND_ACTIVITY_TIME_US = FOREGROUND_ACTIVITY_TIME_MS * 1000; private static final long FOREGROUND_SERVICE_TIME_US = FOREGROUND_SERVICE_TIME_MS * 1000; private static final long FOREGROUND_TIME_US = FOREGROUND_TIME_MS * 1000; private static final long PROCSTATE_TOP_TIME_US = PROCSTATE_TOP_TIME_MS * 1000; private static final long PHONE_FOREGROUND_TIME_MS = 250 * 1000; private static final long PHONE_BACKGROUND_TIME_MS = 0; Loading Loading @@ -123,7 +130,9 @@ public class AdvancedPowerUsageDetailTest { @Mock private AnomalySummaryPreferenceController mAnomalySummaryPreferenceController; @Mock private BatteryStats.Timer mTimer; private BatteryStats.Timer mForegroundActivityTimer; @Mock private BatteryUtils mBatteryUtils; private Context mContext; private Preference mForegroundPreference; private Preference mBackgroundPreference; Loading Loading @@ -171,10 +180,11 @@ public class AdvancedPowerUsageDetailTest { doReturn(APP_LABEL).when(mBatteryEntry).getLabel(); doReturn(BACKGROUND_TIME_US).when(mUid).getProcessStateTime( eq(BatteryStats.Uid.PROCESS_STATE_BACKGROUND), anyLong(), anyInt()); doReturn(FOREGROUND_TIME_US).when(mUid).getProcessStateTime( doReturn(PROCSTATE_TOP_TIME_US).when(mUid).getProcessStateTime( eq(BatteryStats.Uid.PROCESS_STATE_TOP), anyLong(), anyInt()); doReturn(mTimer).when(mUid).getForegroundActivityTimer(); doReturn(FOREGROUND_TIME_US).when(mTimer).getTotalTimeLocked(anyLong(), anyInt()); doReturn(mForegroundActivityTimer).when(mUid).getForegroundActivityTimer(); doReturn(FOREGROUND_ACTIVITY_TIME_US).when(mForegroundActivityTimer) .getTotalTimeLocked(anyLong(), anyInt()); ReflectionHelpers.setField(mBatteryEntry, "sipper", mBatterySipper); mBatteryEntry.iconId = ICON_ID; mBatterySipper.uidObj = mUid; Loading @@ -189,6 +199,10 @@ public class AdvancedPowerUsageDetailTest { doReturn(mPackageManager).when(mTestActivity).getPackageManager(); doReturn(mAppOpsManager).when(mTestActivity).getSystemService(Context.APP_OPS_SERVICE); mBatteryUtils = spy(BatteryUtils.getInstance(mTestActivity)); doReturn(FOREGROUND_SERVICE_TIME_US).when(mBatteryUtils).getForegroundServiceTotalTimeUs( any(BatteryStats.Uid.class), anyLong()); final ArgumentCaptor<Bundle> captor = ArgumentCaptor.forClass(Bundle.class); Answer<Void> callable = invocation -> { Loading Loading @@ -263,8 +277,8 @@ public class AdvancedPowerUsageDetailTest { @Test public void testStartBatteryDetailPage_hasBasicData() { AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID); assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME)).isEqualTo( Loading @@ -282,8 +296,8 @@ public class AdvancedPowerUsageDetailTest { mBatterySipper.drainType = BatterySipper.DrainType.PHONE; mBatterySipper.usageTimeMs = PHONE_FOREGROUND_TIME_MS; AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID); assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME)).isEqualTo( Loading @@ -300,8 +314,8 @@ public class AdvancedPowerUsageDetailTest { public void testStartBatteryDetailPage_NormalApp() { mBatterySipper.mPackages = PACKAGE_NAME; mBatteryEntry.defaultPackageName = PACKAGE_NAME[0]; AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, mAnomalies); assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME)).isEqualTo( PACKAGE_NAME[0]); Loading @@ -312,8 +326,8 @@ public class AdvancedPowerUsageDetailTest { @Test public void testStartBatteryDetailPage_SystemApp() { mBatterySipper.mPackages = null; AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_LABEL)).isEqualTo(APP_LABEL); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_ICON_ID)).isEqualTo(ICON_ID); Loading @@ -327,8 +341,8 @@ public class AdvancedPowerUsageDetailTest { final int appUid = 1010019; mBatterySipper.mPackages = PACKAGE_NAME; doReturn(appUid).when(mBatterySipper).getUid(); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, mBatteryUtils, null, mBatteryStatsHelper, 0, mBatteryEntry, USAGE_PERCENT, null); verify(mTestActivity).startPreferencePanelAsUser( nullable(Fragment.class), nullable(String.class), nullable(Bundle.class), anyInt(), Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +3 −1 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ public class BatteryUtilsTest { doReturn(mAppOpsManager).when(shadowContext).getSystemService(Context.APP_OPS_SERVICE); mBatteryUtils = spy(new BatteryUtils(shadowContext)); mBatteryUtils.mPowerUsageFeatureProvider = mProvider; doReturn(0L).when(mBatteryUtils).getForegroundServiceTotalTimeUs( any(BatteryStats.Uid.class), anyLong()); } @Test Loading Loading @@ -453,7 +455,7 @@ public class BatteryUtilsTest { if (!isUidNull) { final BatteryStats.Uid uid = mock(BatteryStats.Uid.class, RETURNS_DEEP_STUBS); doReturn(topTime).when(mBatteryUtils).getProcessTimeMs( eq(BatteryUtils.StatusType.FOREGROUND), eq(uid), anyInt()); eq(BatteryUtils.StatusType.SCREEN_USAGE), eq(uid), anyInt()); doReturn(uidCode).when(uid).getUid(); sipper.uidObj = uid; } Loading
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -337,13 +337,13 @@ public class PowerUsageSummaryTest { @Test public void testSetUsageSummary_timeMoreThanOneMinute_normalApp_setScreenSummary() { mNormalBatterySipper.usageTimeMs = 2 * DateUtils.MINUTE_IN_MILLIS; doReturn(mRealContext.getText(R.string.battery_screen_usage)).when(mFragment).getText( R.string.battery_screen_usage); doReturn(mRealContext.getText(R.string.battery_used_for)).when(mFragment).getText( R.string.battery_used_for); doReturn(mRealContext).when(mFragment).getContext(); mFragment.setUsageSummary(mPreference, mNormalBatterySipper); assertThat(mPreference.getSummary().toString()).isEqualTo("Screen usage 2m"); assertThat(mPreference.getSummary().toString()).isEqualTo("Used for 2m"); } @Test Loading