summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-09-15 00:11:47 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-09-15 00:11:47 +0000
commit889ed9ff441ac7dad6914635900a10b0a530a313 (patch)
tree966add1f1c870fbabb16539f4dded6a6f0617aac
parent3b7fccb233b3472f01e4e09965a6faff4257a17a (diff)
parent4d67f4c8471a468e39e104fd94e0295876fded2f (diff)
downloadpackages_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
-rw-r--r--src/com/android/settings/fuelgauge/ConvertUtils.java15
-rw-r--r--src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java6
-rw-r--r--src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java7
-rw-r--r--tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java41
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());