Add BatteryStatusFeatureProvider
This allows the battery header status line to be overridden. Bug: 150239363 Test: implemented provider and changed status line text Signed-off-by: Jeffrey Carlyle <jcarlyle@google.com> Change-Id: I05bedbee641f087de5ee1b25a00724ce2de51f87
This commit is contained in:
@@ -34,6 +34,7 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
@@ -49,6 +50,8 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
|
||||
@VisibleForTesting
|
||||
static final String KEY_BATTERY_HEADER = "battery_header";
|
||||
|
||||
@VisibleForTesting
|
||||
BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
|
||||
@VisibleForTesting
|
||||
BatteryMeterView mBatteryMeterView;
|
||||
@VisibleForTesting
|
||||
@@ -66,6 +69,8 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
|
||||
public BatteryHeaderPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mPowerManager = context.getSystemService(PowerManager.class);
|
||||
mBatteryStatusFeatureProvider = FeatureFactory.getFactory(context)
|
||||
.getBatteryStatusFeatureProvider(context);
|
||||
}
|
||||
|
||||
public void setActivity(Activity activity) {
|
||||
@@ -107,10 +112,12 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
|
||||
|
||||
public void updateHeaderPreference(BatteryInfo info) {
|
||||
mBatteryPercentText.setText(formatBatteryPercentageText(info.batteryLevel));
|
||||
if (info.remainingLabel == null) {
|
||||
mSummary1.setText(info.statusLabel);
|
||||
} else {
|
||||
mSummary1.setText(info.remainingLabel);
|
||||
if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info)) {
|
||||
if (info.remainingLabel == null) {
|
||||
mSummary1.setText(info.statusLabel);
|
||||
} else {
|
||||
mSummary1.setText(info.remainingLabel);
|
||||
}
|
||||
}
|
||||
|
||||
mBatteryMeterView.setBatteryLevel(info.batteryLevel);
|
||||
@@ -118,6 +125,13 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
|
||||
mBatteryMeterView.setPowerSave(mPowerManager.isPowerSaveMode());
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback which receives text for the summary line.
|
||||
*/
|
||||
public void updateBatteryStatus(String statusLabel) {
|
||||
mSummary1.setText(statusLabel);
|
||||
}
|
||||
|
||||
public void quickUpdateHeaderPreference() {
|
||||
Intent batteryBroadcast = mContext.registerReceiver(null,
|
||||
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
|
Reference in New Issue
Block a user