Hide Camera background running time in the battery usage screen am: 2401ec4235
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15715976 Change-Id: I19048e33376a9e9b0816f20a6e8fea60c4f46bcc
This commit is contained in:
@@ -25,6 +25,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.time.Duration;
|
||||
@@ -259,7 +261,7 @@ public final class ConvertUtils {
|
||||
}
|
||||
insert24HoursData(BatteryChartView.SELECTED_INDEX_ALL, resultMap);
|
||||
if (purgeLowPercentageAndFakeData) {
|
||||
purgeLowPercentageAndFakeData(resultMap);
|
||||
purgeLowPercentageAndFakeData(context, resultMap);
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
@@ -298,7 +300,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()) {
|
||||
@@ -307,6 +314,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -24,6 +24,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;
|
||||
|
||||
/**
|
||||
@@ -147,4 +148,9 @@ public interface PowerUsageFeatureProvider {
|
||||
* Returns {@link Uri} to monitor battery history data is update.
|
||||
*/
|
||||
Uri getBatteryHistoryUri();
|
||||
|
||||
/**
|
||||
* Returns {@link List} for hidding applications background usage time.
|
||||
*/
|
||||
List<CharSequence> getHideBackgroundUsageTimeList(Context context);
|
||||
}
|
||||
|
@@ -27,6 +27,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 {
|
||||
@@ -173,4 +175,9 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
|
||||
public Uri getBatteryHistoryUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CharSequence> getHideBackgroundUsageTimeList(Context context) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
@@ -49,8 +49,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;
|
||||
@@ -64,7 +67,7 @@ public final class ConvertUtilsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvert_returnsExpectedContentValues() {
|
||||
public void convert_returnsExpectedContentValues() {
|
||||
final int expectedType = 3;
|
||||
when(mockBatteryEntry.getUid()).thenReturn(1001);
|
||||
when(mockBatteryEntry.getLabel()).thenReturn("Settings");
|
||||
@@ -121,7 +124,7 @@ public final class ConvertUtilsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvert_nullBatteryEntry_returnsExpectedContentValues() {
|
||||
public void convert_nullBatteryEntry_returnsExpectedContentValues() {
|
||||
final ContentValues values =
|
||||
ConvertUtils.convert(
|
||||
/*entry=*/ null,
|
||||
@@ -148,7 +151,7 @@ public final class ConvertUtilsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetIndexedUsageMap_nullOrEmptyHistoryMap_returnEmptyCollection() {
|
||||
public void getIndexedUsageMap_nullOrEmptyHistoryMap_returnEmptyCollection() {
|
||||
final int timeSlotSize = 2;
|
||||
final long[] batteryHistoryKeys = new long[] {101L, 102L, 103L, 104L, 105L};
|
||||
|
||||
@@ -163,7 +166,7 @@ public final class ConvertUtilsTest {
|
||||
.isEmpty();
|
||||
}
|
||||
@Test
|
||||
public void testGetIndexedUsageMap_returnsExpectedResult() {
|
||||
public void getIndexedUsageMap_returnsExpectedResult() {
|
||||
// Creates the fake testing data.
|
||||
final int timeSlotSize = 2;
|
||||
final long[] batteryHistoryKeys = new long[] {101L, 102L, 103L, 104L, 105L};
|
||||
@@ -275,7 +278,7 @@ public final class ConvertUtilsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetIndexedUsageMap_usageTimeExceed_returnsExpectedResult() {
|
||||
public void getIndexedUsageMap_usageTimeExceed_returnsExpectedResult() {
|
||||
final int timeSlotSize = 1;
|
||||
final long[] batteryHistoryKeys = new long[] {101L, 102L, 103L};
|
||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
|
||||
@@ -316,6 +319,38 @@ public final class ConvertUtilsTest {
|
||||
.isEqualTo(entry.mConsumePower * ratio);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIndexedUsageMap_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))
|
||||
|
Reference in New Issue
Block a user