Battery usage page latency improvement (1-8)
Save battery slot diff data into database in hourly job. Then read the saved diff data and only calculate the remaining data. This could speed up the battery usage loading. Bug: 261163071 Fix: 261163071 Test: manual Change-Id: Icd4868ca9326b64b17ddbccdb0311e755dc68026
This commit is contained in:
@@ -125,7 +125,6 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
Map<Integer, Map<Integer, BatteryDiffData>> mBatteryUsageMap;
|
||||
|
||||
private boolean mIs24HourFormat;
|
||||
private boolean mHourlyChartVisible = true;
|
||||
private View mBatteryChartViewGroup;
|
||||
private TextView mChartSummaryTextView;
|
||||
private BatteryChartViewModel mDailyViewModel;
|
||||
@@ -227,20 +226,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
mOnBatteryTipsUpdatedListener = listener;
|
||||
}
|
||||
|
||||
void setBatteryHistoryMap(
|
||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
|
||||
Log.d(TAG, "setBatteryHistoryMap() " + (batteryHistoryMap == null ? "null"
|
||||
: ("size=" + batteryHistoryMap.size())));
|
||||
// Ensure the battery chart group is visible for users.
|
||||
animateBatteryChartViewGroup();
|
||||
final BatteryLevelData batteryLevelData =
|
||||
DataProcessManager.getBatteryLevelData(mContext, mHandler, batteryHistoryMap,
|
||||
batteryUsageMap -> {
|
||||
mBatteryUsageMap = batteryUsageMap;
|
||||
logScreenUsageTime();
|
||||
refreshUi();
|
||||
});
|
||||
Log.d(TAG, "getBatteryLevelData: " + batteryLevelData);
|
||||
void onBatteryLevelDataUpdate(final BatteryLevelData batteryLevelData) {
|
||||
Log.d(TAG, "onBatteryLevelDataUpdate: " + batteryLevelData);
|
||||
mMetricsFeatureProvider.action(
|
||||
mPrefContext,
|
||||
SettingsEnums.ACTION_BATTERY_HISTORY_LOADED,
|
||||
@@ -271,6 +258,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
refreshUi();
|
||||
}
|
||||
|
||||
void onBatteryUsageMapUpdate(Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
|
||||
Log.d(TAG, "onBatteryUsageMapUpdate: " + batteryUsageMap);
|
||||
mBatteryUsageMap = batteryUsageMap;
|
||||
logScreenUsageTime();
|
||||
refreshUi();
|
||||
}
|
||||
|
||||
void setBatteryChartView(@NonNull final BatteryChartView dailyChartView,
|
||||
@NonNull final BatteryChartView hourlyChartView) {
|
||||
final View parentView = (View) dailyChartView.getParent();
|
||||
@@ -472,10 +466,10 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
}
|
||||
|
||||
private void animateBatteryHourlyChartView(final boolean visible) {
|
||||
if (mHourlyChartView == null || mHourlyChartVisible == visible) {
|
||||
if (mHourlyChartView == null
|
||||
|| (mHourlyChartView.getVisibility() == View.VISIBLE) == visible) {
|
||||
return;
|
||||
}
|
||||
mHourlyChartVisible = visible;
|
||||
|
||||
if (visible) {
|
||||
mHourlyChartView.setVisibility(View.VISIBLE);
|
||||
@@ -632,10 +626,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
return null;
|
||||
}
|
||||
for (BatteryDiffEntry entry : entries) {
|
||||
final BatteryHistEntry batteryHistEntry = entry.mBatteryHistEntry;
|
||||
if (batteryHistEntry != null
|
||||
&& batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY
|
||||
&& batteryHistEntry.mUserId == userId
|
||||
if (!entry.isSystemEntry()
|
||||
&& entry.mUserId == userId
|
||||
&& packageName.equals(entry.getPackageName())) {
|
||||
return entry;
|
||||
}
|
||||
|
Reference in New Issue
Block a user