Merge "Punt battery status action when entering Settings main page" into sc-v2-dev am: 99554d3c34
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15938356 Change-Id: I0c3c6b03e522c7320387253b0bd4546b6409b641
This commit is contained in:
@@ -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;
|
||||
|
@@ -156,6 +156,7 @@ public class TopLevelBatteryPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void getDashboardLabel_returnsCorrectLabel() {
|
||||
mController.mPreference = new Preference(mContext);
|
||||
BatteryInfo info = new BatteryInfo();
|
||||
info.batteryPercentString = "3%";
|
||||
assertThat(mController.getDashboardLabel(mContext, info, true))
|
||||
|
Reference in New Issue
Block a user