Update related UI if battery is not present
This change is to update the related UI in the battery page if the battery is not present. This includes the following updates: 1. Update the summary of battery tile in the Settings homepage 2. Replace the battery level with "Unknown" 3. Replace the summary with help message in the battery page 4. Remove the battery meter icon Bug: 171368508 Test: verify on an issue device Change-Id: I892e0d137143160a0bce0c11ce9265120ebb8fd4
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.settings.fuelgauge;
|
||||
import android.content.Context;
|
||||
import android.util.FeatureFlagUtils;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
@@ -32,6 +33,8 @@ import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||
public class TopLevelBatteryPreferenceController extends BasePreferenceController implements
|
||||
LifecycleObserver, OnStart, OnStop {
|
||||
|
||||
@VisibleForTesting
|
||||
boolean mIsBatteryPresent = true;
|
||||
private final BatteryBroadcastReceiver mBatteryBroadcastReceiver;
|
||||
private Preference mPreference;
|
||||
private BatteryInfo mBatteryInfo;
|
||||
@@ -40,6 +43,9 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle
|
||||
super(context, preferenceKey);
|
||||
mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(mContext);
|
||||
mBatteryBroadcastReceiver.setBatteryChangedListener(type -> {
|
||||
if (type == BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT) {
|
||||
mIsBatteryPresent = false;
|
||||
}
|
||||
BatteryInfo.getBatteryInfo(mContext, info -> {
|
||||
mBatteryInfo = info;
|
||||
updateState(mPreference);
|
||||
@@ -75,7 +81,10 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle
|
||||
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.SILKY_HOME)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Display help message if battery is not present.
|
||||
if (!mIsBatteryPresent) {
|
||||
return mContext.getText(R.string.battery_missing_message);
|
||||
}
|
||||
return getDashboardLabel(mContext, mBatteryInfo);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user