Format battery java code
After this CL, we can follow Guideline:go/hc-mainline-dev#format-code to keep java format consistent. Test: manual Bug: 304439460 Change-Id: I5bb77f81b0bd9be618e34942eaaee8296bc42796
This commit is contained in:
@@ -61,8 +61,8 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
private static final String KEY_REFRESH_TYPE = "refresh_type";
|
||||
private static final String KEY_BATTERY_CHART = "battery_chart";
|
||||
|
||||
@VisibleForTesting
|
||||
BatteryHistoryPreference mHistPref;
|
||||
@VisibleForTesting BatteryHistoryPreference mHistPref;
|
||||
|
||||
@VisibleForTesting
|
||||
final BatteryLevelDataLoaderCallbacks mBatteryLevelDataLoaderCallbacks =
|
||||
new BatteryLevelDataLoaderCallbacks();
|
||||
@@ -79,23 +79,16 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
public void onChange(boolean selfChange) {
|
||||
Log.d(TAG, "onBatteryContentChange: " + selfChange);
|
||||
mIsChartDataLoaded = false;
|
||||
restartBatteryStatsLoader(
|
||||
BatteryBroadcastReceiver.BatteryUpdateType.MANUAL);
|
||||
restartBatteryStatsLoader(BatteryBroadcastReceiver.BatteryUpdateType.MANUAL);
|
||||
}
|
||||
};
|
||||
|
||||
@VisibleForTesting
|
||||
BatteryTipsController mBatteryTipsController;
|
||||
@VisibleForTesting
|
||||
BatteryChartPreferenceController mBatteryChartPreferenceController;
|
||||
@VisibleForTesting
|
||||
ScreenOnTimeController mScreenOnTimeController;
|
||||
@VisibleForTesting
|
||||
BatteryUsageBreakdownController mBatteryUsageBreakdownController;
|
||||
@VisibleForTesting
|
||||
Optional<BatteryLevelData> mBatteryLevelData;
|
||||
@VisibleForTesting
|
||||
Optional<AnomalyEventWrapper> mHighlightEventWrapper;
|
||||
@VisibleForTesting BatteryTipsController mBatteryTipsController;
|
||||
@VisibleForTesting BatteryChartPreferenceController mBatteryChartPreferenceController;
|
||||
@VisibleForTesting ScreenOnTimeController mScreenOnTimeController;
|
||||
@VisibleForTesting BatteryUsageBreakdownController mBatteryUsageBreakdownController;
|
||||
@VisibleForTesting Optional<BatteryLevelData> mBatteryLevelData;
|
||||
@VisibleForTesting Optional<AnomalyEventWrapper> mHighlightEventWrapper;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
@@ -146,8 +139,9 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
mResumeTimestamp = System.currentTimeMillis();
|
||||
final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
|
||||
if (uri != null) {
|
||||
getContext().getContentResolver().registerContentObserver(
|
||||
uri, /*notifyForDescendants*/ true, mBatteryObserver);
|
||||
getContext()
|
||||
.getContentResolver()
|
||||
.registerContentObserver(uri, /*notifyForDescendants*/ true, mBatteryObserver);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,7 +184,9 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
mBatteryLevelData = null;
|
||||
mBatteryUsageMap = null;
|
||||
mHighlightEventWrapper = null;
|
||||
restartLoader(LoaderIndex.BATTERY_LEVEL_DATA_LOADER, bundle,
|
||||
restartLoader(
|
||||
LoaderIndex.BATTERY_LEVEL_DATA_LOADER,
|
||||
bundle,
|
||||
mBatteryLevelDataLoaderCallbacks);
|
||||
}
|
||||
}
|
||||
@@ -202,8 +198,11 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
mBatteryLevelData = Optional.ofNullable(batteryLevelData);
|
||||
if (mBatteryChartPreferenceController != null) {
|
||||
mBatteryChartPreferenceController.onBatteryLevelDataUpdate(batteryLevelData);
|
||||
Log.d(TAG, String.format("Battery chart shows in %d millis",
|
||||
System.currentTimeMillis() - mResumeTimestamp));
|
||||
Log.d(
|
||||
TAG,
|
||||
String.format(
|
||||
"Battery chart shows in %d millis",
|
||||
System.currentTimeMillis() - mResumeTimestamp));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,15 +210,17 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
if (!isResumed() || mBatteryLevelData == null) {
|
||||
return;
|
||||
}
|
||||
mBatteryUsageMap = DataProcessor.generateBatteryUsageMap(
|
||||
getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
|
||||
mBatteryUsageMap =
|
||||
DataProcessor.generateBatteryUsageMap(
|
||||
getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
|
||||
Log.d(TAG, "onBatteryDiffDataMapUpdate: " + mBatteryUsageMap);
|
||||
DataProcessor.loadLabelAndIcon(mBatteryUsageMap);
|
||||
onSelectedSlotDataUpdated();
|
||||
detectAnomaly();
|
||||
logScreenUsageTime();
|
||||
if (mBatteryChartPreferenceController != null
|
||||
&& mBatteryLevelData.isEmpty() && isBatteryUsageMapNullOrEmpty()) {
|
||||
&& mBatteryLevelData.isEmpty()
|
||||
&& isBatteryUsageMapNullOrEmpty()) {
|
||||
// No available battery usage and battery level data.
|
||||
mBatteryChartPreferenceController.showEmptyChart();
|
||||
}
|
||||
@@ -243,21 +244,28 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
mBatteryTipsController.acceptTipsCard();
|
||||
}
|
||||
mBatteryUsageBreakdownController.handleBatteryUsageUpdated(
|
||||
slotUsageData, slotInformation, isBatteryUsageMapNullOrEmpty(),
|
||||
isAppsAnomalyEventFocused(), mHighlightEventWrapper);
|
||||
Log.d(TAG, String.format("Battery usage list shows in %d millis",
|
||||
System.currentTimeMillis() - mResumeTimestamp));
|
||||
slotUsageData,
|
||||
slotInformation,
|
||||
isBatteryUsageMapNullOrEmpty(),
|
||||
isAppsAnomalyEventFocused(),
|
||||
mHighlightEventWrapper);
|
||||
Log.d(
|
||||
TAG,
|
||||
String.format(
|
||||
"Battery usage list shows in %d millis",
|
||||
System.currentTimeMillis() - mResumeTimestamp));
|
||||
}
|
||||
|
||||
private void detectAnomaly() {
|
||||
mExecutor.execute(() -> {
|
||||
final PowerUsageFeatureProvider powerUsageFeatureProvider =
|
||||
FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
|
||||
final PowerAnomalyEventList anomalyEventList =
|
||||
powerUsageFeatureProvider.detectSettingsAnomaly(
|
||||
getContext(), /* displayDrain= */ 0);
|
||||
mHandler.post(() -> onAnomalyDetected(anomalyEventList));
|
||||
});
|
||||
mExecutor.execute(
|
||||
() -> {
|
||||
final PowerUsageFeatureProvider powerUsageFeatureProvider =
|
||||
FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
|
||||
final PowerAnomalyEventList anomalyEventList =
|
||||
powerUsageFeatureProvider.detectSettingsAnomaly(
|
||||
getContext(), /* displayDrain= */ 0);
|
||||
mHandler.post(() -> onAnomalyDetected(anomalyEventList));
|
||||
});
|
||||
}
|
||||
|
||||
private void onAnomalyDetected(PowerAnomalyEventList anomalyEventList) {
|
||||
@@ -277,9 +285,12 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
// If the slot is already highlighted, the tips card should be the corresponding app
|
||||
// or settings anomaly event.
|
||||
final PowerAnomalyEvent tipsCardEvent =
|
||||
getAnomalyEvent(anomalyEventList,
|
||||
event -> !dismissedPowerAnomalyKeys.contains(event.getDismissRecordKey())
|
||||
&& (event.equals(highlightEvent) || !event.hasWarningItemInfo()));
|
||||
getAnomalyEvent(
|
||||
anomalyEventList,
|
||||
event ->
|
||||
!dismissedPowerAnomalyKeys.contains(event.getDismissRecordKey())
|
||||
&& (event.equals(highlightEvent)
|
||||
|| !event.hasWarningItemInfo()));
|
||||
onDisplayAnomalyEventUpdated(tipsCardEvent, highlightEvent);
|
||||
}
|
||||
|
||||
@@ -296,8 +307,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
// Update battery tips card preference & behaviour
|
||||
mBatteryTipsController.setOnAnomalyConfirmListener(null);
|
||||
mBatteryTipsController.setOnAnomalyRejectListener(null);
|
||||
final AnomalyEventWrapper tipsCardEventWrapper = (tipsCardEvent == null) ? null :
|
||||
new AnomalyEventWrapper(getContext(), tipsCardEvent);
|
||||
final AnomalyEventWrapper tipsCardEventWrapper =
|
||||
(tipsCardEvent == null)
|
||||
? null
|
||||
: new AnomalyEventWrapper(getContext(), tipsCardEvent);
|
||||
if (tipsCardEventWrapper != null) {
|
||||
tipsCardEventWrapper.setRelatedBatteryDiffEntry(
|
||||
findRelatedBatteryDiffEntry(tipsCardEventWrapper));
|
||||
@@ -306,23 +319,30 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
tipsCardEventWrapper, isSameAnomalyEvent);
|
||||
|
||||
// Update highlight slot effect in battery chart view
|
||||
Pair<Integer, Integer> highlightSlotIndexPair = Pair.create(
|
||||
BatteryChartViewModel.SELECTED_INDEX_INVALID,
|
||||
BatteryChartViewModel.SELECTED_INDEX_INVALID);
|
||||
mHighlightEventWrapper = Optional.ofNullable(isSameAnomalyEvent ? tipsCardEventWrapper :
|
||||
((highlightEvent != null)
|
||||
? new AnomalyEventWrapper(getContext(), highlightEvent) : null));
|
||||
if (mBatteryLevelData != null && mBatteryLevelData.isPresent()
|
||||
Pair<Integer, Integer> highlightSlotIndexPair =
|
||||
Pair.create(
|
||||
BatteryChartViewModel.SELECTED_INDEX_INVALID,
|
||||
BatteryChartViewModel.SELECTED_INDEX_INVALID);
|
||||
mHighlightEventWrapper =
|
||||
Optional.ofNullable(
|
||||
isSameAnomalyEvent
|
||||
? tipsCardEventWrapper
|
||||
: ((highlightEvent != null)
|
||||
? new AnomalyEventWrapper(getContext(), highlightEvent)
|
||||
: null));
|
||||
if (mBatteryLevelData != null
|
||||
&& mBatteryLevelData.isPresent()
|
||||
&& mHighlightEventWrapper.isPresent()
|
||||
&& mHighlightEventWrapper.get().hasHighlightSlotPair(mBatteryLevelData.get())) {
|
||||
highlightSlotIndexPair = mHighlightEventWrapper.get()
|
||||
.getHighlightSlotPair(mBatteryLevelData.get());
|
||||
highlightSlotIndexPair =
|
||||
mHighlightEventWrapper.get().getHighlightSlotPair(mBatteryLevelData.get());
|
||||
if (isSameAnomalyEvent) {
|
||||
// For main button, focus on highlight slot when clicked
|
||||
mBatteryTipsController.setOnAnomalyConfirmListener(() -> {
|
||||
mBatteryChartPreferenceController.selectHighlightSlotIndex();
|
||||
mBatteryTipsController.acceptTipsCard();
|
||||
});
|
||||
mBatteryTipsController.setOnAnomalyConfirmListener(
|
||||
() -> {
|
||||
mBatteryChartPreferenceController.selectHighlightSlotIndex();
|
||||
mBatteryTipsController.acceptTipsCard();
|
||||
});
|
||||
}
|
||||
}
|
||||
mBatteryChartPreferenceController.onHighlightSlotIndexUpdate(
|
||||
@@ -332,7 +352,8 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
@VisibleForTesting
|
||||
BatteryDiffEntry findRelatedBatteryDiffEntry(AnomalyEventWrapper eventWrapper) {
|
||||
if (eventWrapper == null
|
||||
|| mBatteryLevelData == null || mBatteryLevelData.isEmpty()
|
||||
|| mBatteryLevelData == null
|
||||
|| mBatteryLevelData.isEmpty()
|
||||
|| !eventWrapper.hasHighlightSlotPair(mBatteryLevelData.get())
|
||||
|| !eventWrapper.hasAnomalyEntryKey()
|
||||
|| mBatteryUsageMap == null) {
|
||||
@@ -340,8 +361,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
}
|
||||
final Pair<Integer, Integer> highlightSlotIndexPair =
|
||||
eventWrapper.getHighlightSlotPair(mBatteryLevelData.get());
|
||||
final BatteryDiffData relatedDiffData = mBatteryUsageMap
|
||||
.get(highlightSlotIndexPair.first).get(highlightSlotIndexPair.second);
|
||||
final BatteryDiffData relatedDiffData =
|
||||
mBatteryUsageMap
|
||||
.get(highlightSlotIndexPair.first)
|
||||
.get(highlightSlotIndexPair.second);
|
||||
final String anomalyEntryKey = eventWrapper.getAnomalyEntryKey();
|
||||
if (relatedDiffData == null || anomalyEntryKey == null) {
|
||||
return null;
|
||||
@@ -365,7 +388,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
// If all data is null or empty, each slot must be null or empty.
|
||||
return allBatteryDiffData == null
|
||||
|| (allBatteryDiffData.getAppDiffEntryList().isEmpty()
|
||||
&& allBatteryDiffData.getSystemDiffEntryList().isEmpty());
|
||||
&& allBatteryDiffData.getSystemDiffEntryList().isEmpty());
|
||||
}
|
||||
|
||||
private boolean isAppsAnomalyEventFocused() {
|
||||
@@ -399,21 +422,22 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
return null;
|
||||
}
|
||||
|
||||
final PowerAnomalyEvent filterAnomalyEvent = anomalyEventList.getPowerAnomalyEventsList()
|
||||
.stream()
|
||||
.filter(predicate)
|
||||
.max(Comparator.comparing(PowerAnomalyEvent::getScore))
|
||||
.orElse(null);
|
||||
final PowerAnomalyEvent filterAnomalyEvent =
|
||||
anomalyEventList.getPowerAnomalyEventsList().stream()
|
||||
.filter(predicate)
|
||||
.max(Comparator.comparing(PowerAnomalyEvent::getScore))
|
||||
.orElse(null);
|
||||
Log.d(TAG, "filterAnomalyEvent = " + filterAnomalyEvent);
|
||||
return filterAnomalyEvent;
|
||||
}
|
||||
|
||||
|
||||
private static BatteryDiffData getAllBatteryDiffData(
|
||||
Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
|
||||
return batteryUsageMap == null ? null : batteryUsageMap
|
||||
.get(BatteryChartViewModel.SELECTED_INDEX_ALL)
|
||||
.get(BatteryChartViewModel.SELECTED_INDEX_ALL);
|
||||
return batteryUsageMap == null
|
||||
? null
|
||||
: batteryUsageMap
|
||||
.get(BatteryChartViewModel.SELECTED_INDEX_ALL)
|
||||
.get(BatteryChartViewModel.SELECTED_INDEX_ALL);
|
||||
}
|
||||
|
||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
@@ -430,12 +454,16 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
public List<AbstractPreferenceController> createPreferenceControllers(
|
||||
Context context) {
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
controllers.add(new BatteryChartPreferenceController(
|
||||
context, null /* lifecycle */, null /* activity */));
|
||||
controllers.add(
|
||||
new BatteryChartPreferenceController(
|
||||
context, null /* lifecycle */, null /* activity */));
|
||||
controllers.add((new ScreenOnTimeController(context)));
|
||||
controllers.add(new BatteryUsageBreakdownController(
|
||||
context, null /* lifecycle */, null /* activity */,
|
||||
null /* fragment */));
|
||||
controllers.add(
|
||||
new BatteryUsageBreakdownController(
|
||||
context,
|
||||
null /* lifecycle */,
|
||||
null /* activity */,
|
||||
null /* fragment */));
|
||||
controllers.add(new BatteryTipsController(context));
|
||||
return controllers;
|
||||
}
|
||||
@@ -452,20 +480,21 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
@Override
|
||||
public BatteryLevelData loadInBackground() {
|
||||
return DataProcessManager.getBatteryLevelData(
|
||||
getContext(), mHandler, /*isFromPeriodJob=*/ false,
|
||||
getContext(),
|
||||
mHandler,
|
||||
/* isFromPeriodJob= */ false,
|
||||
PowerUsageAdvanced.this::onBatteryDiffDataMapUpdate);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(Loader<BatteryLevelData> loader,
|
||||
BatteryLevelData batteryLevelData) {
|
||||
public void onLoadFinished(
|
||||
Loader<BatteryLevelData> loader, BatteryLevelData batteryLevelData) {
|
||||
PowerUsageAdvanced.this.onBatteryLevelDataUpdate(batteryLevelData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(Loader<BatteryLevelData> loader) {
|
||||
}
|
||||
public void onLoaderReset(Loader<BatteryLevelData> loader) {}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user