From 90da4049f27e73d48339060d00dc3cf0712f7315 Mon Sep 17 00:00:00 2001 From: mxyyiyi Date: Tue, 16 Jan 2024 14:59:00 +0800 Subject: [PATCH] Fix lost field foregroundServiceUsageTime in convertUtil - from batteryDiffEntry to batteryUsageDiff Bug: 320358970 Test: make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.fuelgauge.batteryusage.*" Change-Id: Ibc5ee2f14ede066bef3fb1c832ef54941fc59ebf --- .../fuelgauge/batteryusage/ConvertUtils.java | 6 ++- .../batteryusage/ConvertUtilsTest.java | 46 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java index 002c8075d03..df9f0634e04 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java +++ b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java @@ -479,7 +479,9 @@ public final class ConvertUtils { } } - private static BatteryUsageDiff convertToBatteryUsageDiff(BatteryDiffEntry batteryDiffEntry) { + + @VisibleForTesting + static BatteryUsageDiff convertToBatteryUsageDiff(BatteryDiffEntry batteryDiffEntry) { BatteryUsageDiff.Builder builder = BatteryUsageDiff.newBuilder() .setUid(batteryDiffEntry.mUid) @@ -496,6 +498,8 @@ public final class ConvertUtils { batteryDiffEntry.mForegroundServiceUsageConsumePower) .setCachedUsageConsumePower(batteryDiffEntry.mCachedUsageConsumePower) .setForegroundUsageTime(batteryDiffEntry.mForegroundUsageTimeInMs) + .setForegroundServiceUsageTime( + batteryDiffEntry.mForegroundServiceUsageTimeInMs) .setBackgroundUsageTime(batteryDiffEntry.mBackgroundUsageTimeInMs) .setScreenOnTime(batteryDiffEntry.mScreenOnTimeInMs); if (batteryDiffEntry.mKey != null) { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java index e68b892ca7e..5ce449b5d1d 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java @@ -360,6 +360,52 @@ public final class ConvertUtilsTest { assertThat(batteryHistEntry.mPackageName).isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME); } + @Test + public void convertToBatteryUsageDiff_returnsExpectedResult() { + final BatteryDiffEntry batteryDiffEntry = + new BatteryDiffEntry( + mContext, + /* uid= */ 101L, + /* userId= */ 1001L, + /* key= */ "key", + /* isHidden= */ false, + /* componentId= */ -1, + /* legacyPackageName= */ null, + /* legacyLabel= */ null, + /* consumerType= */ ConvertUtils.CONSUMER_TYPE_UID_BATTERY, + /* foregroundUsageTimeInMs= */ 1234L, + /* foregroundServiceUsageTimeInMs= */ 3456L, + /* backgroundUsageTimeInMs= */ 5678L, + /* screenOnTimeInMs= */ 123L, + /* consumePower= */ 1.1, + /* foregroundUsageConsumePower= */ 1.2, + /* foregroundServiceUsageConsumePower= */ 1.3, + /* backgroundUsageConsumePower= */ 1.4, + /* cachedUsageConsumePower= */ 1.5); + + final BatteryUsageDiff batteryUsageDiff = + ConvertUtils.convertToBatteryUsageDiff(batteryDiffEntry); + + assertThat(batteryUsageDiff.getUid()).isEqualTo(101L); + assertThat(batteryUsageDiff.getUserId()).isEqualTo(1001L); + assertThat(batteryUsageDiff.getIsHidden()).isFalse(); + assertThat(batteryUsageDiff.getComponentId()).isEqualTo(-1); + assertThat(batteryUsageDiff.getConsumerType()) + .isEqualTo(ConvertUtils.CONSUMER_TYPE_UID_BATTERY); + assertThat(batteryUsageDiff.getConsumePower()).isEqualTo(1.1); + assertThat(batteryUsageDiff.getForegroundUsageConsumePower()).isEqualTo(1.2); + assertThat(batteryUsageDiff.getForegroundServiceUsageConsumePower()).isEqualTo(1.3); + assertThat(batteryUsageDiff.getBackgroundUsageConsumePower()).isEqualTo(1.4); + assertThat(batteryUsageDiff.getCachedUsageConsumePower()).isEqualTo(1.5); + assertThat(batteryUsageDiff.getForegroundUsageTime()).isEqualTo(1234L); + assertThat(batteryUsageDiff.getForegroundServiceUsageTime()).isEqualTo(3456L); + assertThat(batteryUsageDiff.getBackgroundUsageTime()).isEqualTo(5678L); + assertThat(batteryUsageDiff.getScreenOnTime()).isEqualTo(123L); + assertThat(batteryUsageDiff.getKey()).isEqualTo("key"); + assertThat(batteryUsageDiff.hasPackageName()).isFalse(); + assertThat(batteryUsageDiff.hasLabel()).isFalse(); + } + @Test public void convertToAppUsageEvent_returnsExpectedResult() throws PackageManager.NameNotFoundException {