Merge "Export a method for app info page to get last 24 battery history data" into sc-dev
This commit is contained in:
@@ -35,6 +35,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.core.InstrumentedPreferenceFragment;
|
import com.android.settings.core.InstrumentedPreferenceFragment;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
@@ -591,6 +592,27 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static List<BatteryDiffEntry> getBatteryLast24HrUsageData(Context context) {
|
||||||
|
final long start = System.currentTimeMillis();
|
||||||
|
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
|
||||||
|
FeatureFactory.getFactory(context)
|
||||||
|
.getPowerUsageFeatureProvider(context)
|
||||||
|
.getBatteryHistory(context);
|
||||||
|
if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Log.d(TAG, String.format("getBatteryLast24HrData() size=%d time=&d/ms",
|
||||||
|
batteryHistoryMap.size(), (System.currentTimeMillis() - start)));
|
||||||
|
final Map<Integer, List<BatteryDiffEntry>> batteryIndexedMap =
|
||||||
|
ConvertUtils.getIndexedUsageMap(
|
||||||
|
context,
|
||||||
|
/*timeSlotSize=*/ CHART_LEVEL_ARRAY_SIZE - 1,
|
||||||
|
getBatteryHistoryKeys(batteryHistoryMap),
|
||||||
|
batteryHistoryMap,
|
||||||
|
/*purgeLowPercentageAndFakeData=*/ true);
|
||||||
|
return batteryIndexedMap.get(BatteryChartView.SELECTED_INDEX_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
private static long[] getBatteryHistoryKeys(
|
private static long[] getBatteryHistoryKeys(
|
||||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
|
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
|
||||||
final List<Long> batteryHistoryKeyList =
|
final List<Long> batteryHistoryKeyList =
|
||||||
|
@@ -26,6 +26,8 @@ import android.os.BatteryManager;
|
|||||||
import android.os.BatteryUsageStats;
|
import android.os.BatteryUsageStats;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
|
||||||
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -45,15 +47,18 @@ import java.util.TimeZone;
|
|||||||
public final class ConvertUtilsTest {
|
public final class ConvertUtilsTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@Mock
|
@Mock private BatteryUsageStats mBatteryUsageStats;
|
||||||
private BatteryUsageStats mBatteryUsageStats;
|
@Mock private BatteryEntry mockBatteryEntry;
|
||||||
@Mock
|
|
||||||
private BatteryEntry mockBatteryEntry;
|
private FakeFeatureFactory mFeatureFactory;
|
||||||
|
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
|
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
|
mPowerUsageFeatureProvider = mFeatureFactory.powerUsageFeatureProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -250,6 +255,21 @@ public final class ConvertUtilsTest {
|
|||||||
// Verifies the fake data is cleared out.
|
// Verifies the fake data is cleared out.
|
||||||
assertThat(entryList.get(0).getPackageName())
|
assertThat(entryList.get(0).getPackageName())
|
||||||
.isNotEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
|
.isNotEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
|
||||||
|
|
||||||
|
// Adds lacked data into the battery history map.
|
||||||
|
final int remainingSize = 25 - batteryHistoryKeys.length;
|
||||||
|
for (int index = 0; index < remainingSize; index++) {
|
||||||
|
batteryHistoryMap.put(105L + index + 1, new HashMap<>());
|
||||||
|
}
|
||||||
|
when(mPowerUsageFeatureProvider.getBatteryHistory(mContext))
|
||||||
|
.thenReturn(batteryHistoryMap);
|
||||||
|
|
||||||
|
final List<BatteryDiffEntry> batteryDiffEntryList =
|
||||||
|
BatteryChartPreferenceController.getBatteryLast24HrUsageData(mContext);
|
||||||
|
|
||||||
|
assertThat(batteryDiffEntryList).isNotEmpty();
|
||||||
|
final BatteryDiffEntry resultEntry = batteryDiffEntryList.get(0);
|
||||||
|
assertThat(resultEntry.getPackageName()).isEqualTo("package2");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user