Merge "Punt battery status action when entering Settings main page" into sc-v2-dev am: 99554d3c34 am: d9195b80af

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15938356

Change-Id: I3b030dd9ac65b93500814b62cae4ef48ceb3bc1b
This commit is contained in:
TreeHugger Robot
2021-10-01 08:58:55 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 4 deletions

View File

@@ -30,6 +30,7 @@ import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.utils.ThreadUtils;
import java.util.HashMap;
@@ -38,8 +39,9 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle
@VisibleForTesting
protected boolean mIsBatteryPresent = true;
@VisibleForTesting
Preference mPreference;
private final BatteryBroadcastReceiver mBatteryBroadcastReceiver;
private Preference mPreference;
private BatteryInfo mBatteryInfo;
private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
@@ -140,14 +142,26 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle
}
if (batteryStatusUpdate) {
if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info)) {
mBatteryStatusLabel = null; // will generateLabel()
}
setSummaryAsync(info);
}
return (mBatteryStatusLabel == null) ? generateLabel(info) : mBatteryStatusLabel;
}
private void setSummaryAsync(BatteryInfo info) {
ThreadUtils.postOnBackgroundThread(() -> {
final boolean triggerBatteryStatusUpdate =
mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info);
ThreadUtils.postOnMainThread(() -> {
if (!triggerBatteryStatusUpdate) {
mBatteryStatusLabel = null; // will generateLabel()
}
mPreference.setSummary(
(mBatteryStatusLabel == null) ? generateLabel(info) : mBatteryStatusLabel);
});
});
}
private CharSequence generateLabel(BatteryInfo info) {
if (!info.discharging && info.chargeLabel != null) {
return info.chargeLabel;