diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-09-15 00:11:47 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-09-15 00:11:47 +0000 |
commit | 889ed9ff441ac7dad6914635900a10b0a530a313 (patch) | |
tree | 966add1f1c870fbabb16539f4dded6a6f0617aac | |
parent | 3b7fccb233b3472f01e4e09965a6faff4257a17a (diff) | |
parent | 4d67f4c8471a468e39e104fd94e0295876fded2f (diff) | |
download | packages_apps_Settings-889ed9ff441ac7dad6914635900a10b0a530a313.tar.gz packages_apps_Settings-889ed9ff441ac7dad6914635900a10b0a530a313.tar.bz2 packages_apps_Settings-889ed9ff441ac7dad6914635900a10b0a530a313.zip |
Merge cherrypicks of [15831545, 15831526, 15831634, 15831684, 15831293, 15831546, 15831847, 15831808, 15831638, 15831639, 15831558, 15831793, 15831794, 15831795, 15831796, 15831797, 15831798, 15831799, 15831800, 15831801, 15831802, 15831803, 15831804, 15831640, 15831849, 15831810, 15831811, 15831850, 15831641, 15831805, 15831812, 15831642, 15831813, 15831851, 15831852, 15831887, 15831888, 15831559, 15831814, 15831815, 15831853, 15831854, 15831855, 15831315] into sc-releaseandroid-platform-12.0.0_r1android-12.0.0_r9android-12.0.0_r8android-12.0.0_r11android-12.0.0_r10
Change-Id: Idba243ecf8aa84f91801a46b05aa68073f27f889
4 files changed, 65 insertions, 4 deletions
diff --git a/src/com/android/settings/fuelgauge/ConvertUtils.java b/src/com/android/settings/fuelgauge/ConvertUtils.java index 001e9e912a..da846318b9 100644 --- a/src/com/android/settings/fuelgauge/ConvertUtils.java +++ b/src/com/android/settings/fuelgauge/ConvertUtils.java @@ -24,6 +24,8 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; +import com.android.settings.overlay.FeatureFactory; + import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.text.SimpleDateFormat; @@ -288,7 +290,7 @@ public final class ConvertUtils { } insert24HoursData(BatteryChartView.SELECTED_INDEX_ALL, resultMap); if (purgeLowPercentageAndFakeData) { - purgeLowPercentageAndFakeData(resultMap); + purgeLowPercentageAndFakeData(context, resultMap); } return resultMap; } @@ -327,7 +329,12 @@ public final class ConvertUtils { // Removes low percentage data and fake usage data, which will be zero value. private static void purgeLowPercentageAndFakeData( + final Context context, final Map<Integer, List<BatteryDiffEntry>> indexedUsageMap) { + final List<CharSequence> backgroundUsageTimeHideList = + FeatureFactory.getFactory(context) + .getPowerUsageFeatureProvider(context) + .getHideBackgroundUsageTimeList(context); for (List<BatteryDiffEntry> entries : indexedUsageMap.values()) { final Iterator<BatteryDiffEntry> iterator = entries.iterator(); while (iterator.hasNext()) { @@ -336,6 +343,12 @@ public final class ConvertUtils { || FAKE_PACKAGE_NAME.equals(entry.getPackageName())) { iterator.remove(); } + final String packageName = entry.getPackageName(); + if (packageName != null + && !backgroundUsageTimeHideList.isEmpty() + && backgroundUsageTimeHideList.contains(packageName)) { + entry.mBackgroundUsageTimeInMs = 0; + } } } } diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java index 61abe6b1fb..eff538fa64 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java @@ -23,6 +23,7 @@ import android.util.SparseIntArray; import com.android.internal.os.BatterySipper; import com.android.settingslib.fuelgauge.Estimate; +import java.util.List; import java.util.Map; /** @@ -141,4 +142,9 @@ public interface PowerUsageFeatureProvider { * Returns battery history data with corresponding timestamp key. */ Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context); + + /** + * Returns {@link List} for hidding applications background usage time. + */ + List<CharSequence> getHideBackgroundUsageTimeList(Context context); } diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java index 1dcdab08be..7f1bef0ae2 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -26,6 +26,8 @@ import com.android.internal.os.BatterySipper; import com.android.internal.util.ArrayUtils; import com.android.settingslib.fuelgauge.Estimate; +import java.util.ArrayList; +import java.util.List; import java.util.Map; public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider { @@ -167,4 +169,9 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider public Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context) { return null; } + + @Override + public List<CharSequence> getHideBackgroundUsageTimeList(Context context) { + return new ArrayList<>(); + } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java index 0b1a1e3164..1b9e05b63b 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java @@ -50,8 +50,11 @@ import java.util.TimeZone; public final class ConvertUtilsTest { private Context mContext; - @Mock private BatteryUsageStats mBatteryUsageStats; - @Mock private BatteryEntry mockBatteryEntry; + + @Mock + private BatteryUsageStats mBatteryUsageStats; + @Mock + private BatteryEntry mockBatteryEntry; private FakeFeatureFactory mFeatureFactory; private PowerUsageFeatureProvider mPowerUsageFeatureProvider; @@ -301,7 +304,7 @@ public final class ConvertUtilsTest { final Map<Integer, List<BatteryDiffEntry>> purgedResultMap = ConvertUtils.getIndexedUsageMap( mContext, timeSlotSize, batteryHistoryKeys, batteryHistoryMap, - /*purgeLowPercentageAndFakeData=*/ true); + /*purgeLowPercentageAndFakeData=*/ true); assertThat(purgedResultMap).hasSize(2); final List<BatteryDiffEntry> entryList = purgedResultMap.get(0); @@ -383,6 +386,38 @@ public final class ConvertUtilsTest { } @Test + public void testGetIndexedUsageMap_hideBackgroundUsageTime_returnsExpectedResult() { + final long[] batteryHistoryKeys = new long[] {101L, 102L, 103L}; + final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>(); + final BatteryHistEntry fakeEntry = createBatteryHistEntry( + ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", 0, 0L, 0L, 0L); + // Adds the index = 0 data. + Map<String, BatteryHistEntry> entryMap = new HashMap<>(); + entryMap.put(fakeEntry.getKey(), fakeEntry); + batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[0]), entryMap); + // Adds the index = 1 data. + entryMap = new HashMap<>(); + entryMap.put(fakeEntry.getKey(), fakeEntry); + batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[1]), entryMap); + // Adds the index = 2 data. + entryMap = new HashMap<>(); + final BatteryHistEntry entry = createBatteryHistEntry( + "package3", "label3", 500, 5L, 3600000L, 7200000L); + entryMap.put(entry.getKey(), entry); + batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[2]), entryMap); + when(mPowerUsageFeatureProvider.getHideBackgroundUsageTimeList(mContext)) + .thenReturn(Arrays.asList((CharSequence) "package3")); + + final Map<Integer, List<BatteryDiffEntry>> purgedResultMap = + ConvertUtils.getIndexedUsageMap( + mContext, /*timeSlotSize=*/ 1, batteryHistoryKeys, batteryHistoryMap, + /*purgeLowPercentageAndFakeData=*/ true); + + final BatteryDiffEntry resultEntry = purgedResultMap.get(0).get(0); + assertThat(resultEntry.mBackgroundUsageTimeInMs).isEqualTo(0); + } + + @Test public void getLocale_nullContext_returnDefaultLocale() { assertThat(ConvertUtils.getLocale(/*context=*/ null)) .isEqualTo(Locale.getDefault()); |