Merge "Hide Camera background running time in the battery usage screen" into sc-dev am: 3f1d329878
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15723822 Change-Id: I39400598833b3de8ae60b6c9901fdbcc6015a16f
This commit is contained in:
@@ -24,6 +24,8 @@ import android.util.Log;
|
|||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@@ -288,7 +290,7 @@ public final class ConvertUtils {
|
|||||||
}
|
}
|
||||||
insert24HoursData(BatteryChartView.SELECTED_INDEX_ALL, resultMap);
|
insert24HoursData(BatteryChartView.SELECTED_INDEX_ALL, resultMap);
|
||||||
if (purgeLowPercentageAndFakeData) {
|
if (purgeLowPercentageAndFakeData) {
|
||||||
purgeLowPercentageAndFakeData(resultMap);
|
purgeLowPercentageAndFakeData(context, resultMap);
|
||||||
}
|
}
|
||||||
return resultMap;
|
return resultMap;
|
||||||
}
|
}
|
||||||
@@ -327,7 +329,12 @@ public final class ConvertUtils {
|
|||||||
|
|
||||||
// Removes low percentage data and fake usage data, which will be zero value.
|
// Removes low percentage data and fake usage data, which will be zero value.
|
||||||
private static void purgeLowPercentageAndFakeData(
|
private static void purgeLowPercentageAndFakeData(
|
||||||
|
final Context context,
|
||||||
final Map<Integer, List<BatteryDiffEntry>> indexedUsageMap) {
|
final Map<Integer, List<BatteryDiffEntry>> indexedUsageMap) {
|
||||||
|
final List<CharSequence> backgroundUsageTimeHideList =
|
||||||
|
FeatureFactory.getFactory(context)
|
||||||
|
.getPowerUsageFeatureProvider(context)
|
||||||
|
.getHideBackgroundUsageTimeList(context);
|
||||||
for (List<BatteryDiffEntry> entries : indexedUsageMap.values()) {
|
for (List<BatteryDiffEntry> entries : indexedUsageMap.values()) {
|
||||||
final Iterator<BatteryDiffEntry> iterator = entries.iterator();
|
final Iterator<BatteryDiffEntry> iterator = entries.iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
@@ -336,6 +343,12 @@ public final class ConvertUtils {
|
|||||||
|| FAKE_PACKAGE_NAME.equals(entry.getPackageName())) {
|
|| FAKE_PACKAGE_NAME.equals(entry.getPackageName())) {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
|
final String packageName = entry.getPackageName();
|
||||||
|
if (packageName != null
|
||||||
|
&& !backgroundUsageTimeHideList.isEmpty()
|
||||||
|
&& backgroundUsageTimeHideList.contains(packageName)) {
|
||||||
|
entry.mBackgroundUsageTimeInMs = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@ import android.util.SparseIntArray;
|
|||||||
import com.android.internal.os.BatterySipper;
|
import com.android.internal.os.BatterySipper;
|
||||||
import com.android.settingslib.fuelgauge.Estimate;
|
import com.android.settingslib.fuelgauge.Estimate;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -141,4 +142,9 @@ public interface PowerUsageFeatureProvider {
|
|||||||
* Returns battery history data with corresponding timestamp key.
|
* Returns battery history data with corresponding timestamp key.
|
||||||
*/
|
*/
|
||||||
Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context);
|
Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns {@link List} for hidding applications background usage time.
|
||||||
|
*/
|
||||||
|
List<CharSequence> getHideBackgroundUsageTimeList(Context context);
|
||||||
}
|
}
|
||||||
|
@@ -26,6 +26,8 @@ import com.android.internal.os.BatterySipper;
|
|||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
import com.android.settingslib.fuelgauge.Estimate;
|
import com.android.settingslib.fuelgauge.Estimate;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider {
|
public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider {
|
||||||
@@ -167,4 +169,9 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
|
|||||||
public Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context) {
|
public Map<Long, Map<String, BatteryHistEntry>> getBatteryHistory(Context context) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CharSequence> getHideBackgroundUsageTimeList(Context context) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -50,8 +50,11 @@ import java.util.TimeZone;
|
|||||||
public final class ConvertUtilsTest {
|
public final class ConvertUtilsTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@Mock private BatteryUsageStats mBatteryUsageStats;
|
|
||||||
@Mock private BatteryEntry mockBatteryEntry;
|
@Mock
|
||||||
|
private BatteryUsageStats mBatteryUsageStats;
|
||||||
|
@Mock
|
||||||
|
private BatteryEntry mockBatteryEntry;
|
||||||
|
|
||||||
private FakeFeatureFactory mFeatureFactory;
|
private FakeFeatureFactory mFeatureFactory;
|
||||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||||
@@ -301,7 +304,7 @@ public final class ConvertUtilsTest {
|
|||||||
final Map<Integer, List<BatteryDiffEntry>> purgedResultMap =
|
final Map<Integer, List<BatteryDiffEntry>> purgedResultMap =
|
||||||
ConvertUtils.getIndexedUsageMap(
|
ConvertUtils.getIndexedUsageMap(
|
||||||
mContext, timeSlotSize, batteryHistoryKeys, batteryHistoryMap,
|
mContext, timeSlotSize, batteryHistoryKeys, batteryHistoryMap,
|
||||||
/*purgeLowPercentageAndFakeData=*/ true);
|
/*purgeLowPercentageAndFakeData=*/ true);
|
||||||
|
|
||||||
assertThat(purgedResultMap).hasSize(2);
|
assertThat(purgedResultMap).hasSize(2);
|
||||||
final List<BatteryDiffEntry> entryList = purgedResultMap.get(0);
|
final List<BatteryDiffEntry> entryList = purgedResultMap.get(0);
|
||||||
@@ -382,6 +385,38 @@ public final class ConvertUtilsTest {
|
|||||||
assertThat(ConvertUtils.sLocaleForHour).isEqualTo(new Locale("en_US"));
|
assertThat(ConvertUtils.sLocaleForHour).isEqualTo(new Locale("en_US"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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
|
@Test
|
||||||
public void getLocale_nullContext_returnDefaultLocale() {
|
public void getLocale_nullContext_returnDefaultLocale() {
|
||||||
assertThat(ConvertUtils.getLocale(/*context=*/ null))
|
assertThat(ConvertUtils.getLocale(/*context=*/ null))
|
||||||
|
Reference in New Issue
Block a user