Update battery progress bar

- Setup state text to bottom text view
 - Remove battery state icon
 Screenshot: https://screenshot.googleplex.com/At9tAVDgnoQBtNS.png

Bug: 177407113
Test: make RunSettingsRoboTests
Change-Id: I86cfe83982da70b8fc49386f388c1a068295e205
This commit is contained in:
Wesley.CW Wang
2021-03-31 15:40:23 +08:00
committed by Wesley Wang
parent 512419a454
commit fdfda5e589
2 changed files with 6 additions and 32 deletions

View File

@@ -21,12 +21,10 @@ import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.graphics.ColorFilter;
import android.icu.text.NumberFormat; import android.icu.text.NumberFormat;
import android.os.BatteryManager; import android.os.BatteryManager;
import android.os.PowerManager; import android.os.PowerManager;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.ImageView;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceFragmentCompat;
@@ -62,7 +60,6 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
private Activity mActivity; private Activity mActivity;
private PreferenceFragmentCompat mHost; private PreferenceFragmentCompat mHost;
private Lifecycle mLifecycle; private Lifecycle mLifecycle;
private ColorFilter mAccentColorFilter;
private final PowerManager mPowerManager; private final PowerManager mPowerManager;
public BatteryHeaderPreferenceController(Context context, String key) { public BatteryHeaderPreferenceController(Context context, String key) {
@@ -88,9 +85,6 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mBatteryUsageProgressBarPref = screen.findPreference(getPreferenceKey()); mBatteryUsageProgressBarPref = screen.findPreference(getPreferenceKey());
mAccentColorFilter = com.android.settings.Utils.getAlphaInvariantColorFilterForColor(
com.android.settings.Utils.getColorAttrDefaultColor(
mContext, android.R.attr.colorAccent));
if (com.android.settings.Utils.isBatteryPresent(mContext)) { if (com.android.settings.Utils.isBatteryPresent(mContext)) {
quickUpdateHeaderPreference(); quickUpdateHeaderPreference();
@@ -124,17 +118,15 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
public void updateHeaderPreference(BatteryInfo info) { public void updateHeaderPreference(BatteryInfo info) {
mBatteryUsageProgressBarPref.setUsageSummary( mBatteryUsageProgressBarPref.setUsageSummary(
formatBatteryPercentageText(info.batteryLevel)); formatBatteryPercentageText(info.batteryLevel));
mBatteryUsageProgressBarPref.setTotalSummary(generateLabel(info)); mBatteryUsageProgressBarPref.setBottomSummary(generateLabel(info));
mBatteryUsageProgressBarPref.setPercent(info.batteryLevel, BATTERY_MAX_LEVEL); mBatteryUsageProgressBarPref.setPercent(info.batteryLevel, BATTERY_MAX_LEVEL);
mBatteryUsageProgressBarPref.setCustomContent(
getBatteryIcon(!info.discharging, info.batteryLevel));
} }
/** /**
* Callback which receives text for the summary line. * Callback which receives text for the summary line.
*/ */
public void updateBatteryStatus(String label, BatteryInfo info) { public void updateBatteryStatus(String label, BatteryInfo info) {
mBatteryUsageProgressBarPref.setTotalSummary(label != null ? label : generateLabel(info)); mBatteryUsageProgressBarPref.setBottomSummary(label != null ? label : generateLabel(info));
} }
public void quickUpdateHeaderPreference() { public void quickUpdateHeaderPreference() {
@@ -146,28 +138,10 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
mBatteryUsageProgressBarPref.setUsageSummary(formatBatteryPercentageText(batteryLevel)); mBatteryUsageProgressBarPref.setUsageSummary(formatBatteryPercentageText(batteryLevel));
mBatteryUsageProgressBarPref.setPercent(batteryLevel, BATTERY_MAX_LEVEL); mBatteryUsageProgressBarPref.setPercent(batteryLevel, BATTERY_MAX_LEVEL);
mBatteryUsageProgressBarPref.setCustomContent(getBatteryIcon(!discharging, batteryLevel));
} }
private CharSequence formatBatteryPercentageText(int batteryLevel) { private CharSequence formatBatteryPercentageText(int batteryLevel) {
return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate), return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
NumberFormat.getIntegerInstance().format(batteryLevel)); NumberFormat.getIntegerInstance().format(batteryLevel));
} }
//TODO(b/179237746): Update the battery icon after receiving final asset
private ImageView getBatteryIcon(boolean isCharging, int batteryLevel) {
ImageView batteryIcon = new ImageView(mContext);
if (batteryLevel <= (mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryWarningLevel))) {
batteryIcon.setImageResource(R.drawable.ic_battery_low);
} else if (isCharging) {
batteryIcon.setColorFilter(mAccentColorFilter);
batteryIcon.setImageResource(R.drawable.ic_battery_charging_full);
} else {
batteryIcon = null;
}
return batteryIcon;
}
} }

View File

@@ -139,7 +139,7 @@ public class BatteryHeaderPreferenceControllerTest {
mController.updateHeaderPreference(mBatteryInfo); mController.updateHeaderPreference(mBatteryInfo);
verify(mBatteryUsageProgressBarPref).setTotalSummary(mBatteryInfo.remainingLabel); verify(mBatteryUsageProgressBarPref).setBottomSummary(mBatteryInfo.remainingLabel);
} }
@Test @Test
@@ -151,7 +151,7 @@ public class BatteryHeaderPreferenceControllerTest {
mController.updateHeaderPreference(mBatteryInfo); mController.updateHeaderPreference(mBatteryInfo);
verify(mBatteryUsageProgressBarPref).setUsageSummary(formatBatteryPercentageText()); verify(mBatteryUsageProgressBarPref).setUsageSummary(formatBatteryPercentageText());
verify(mBatteryUsageProgressBarPref).setTotalSummary(mBatteryInfo.remainingLabel); verify(mBatteryUsageProgressBarPref).setBottomSummary(mBatteryInfo.remainingLabel);
verify(mBatteryUsageProgressBarPref).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL); verify(mBatteryUsageProgressBarPref).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL);
} }
@@ -162,7 +162,7 @@ public class BatteryHeaderPreferenceControllerTest {
mController.updateHeaderPreference(mBatteryInfo); mController.updateHeaderPreference(mBatteryInfo);
verify(mBatteryUsageProgressBarPref).setTotalSummary(BATTERY_STATUS); verify(mBatteryUsageProgressBarPref).setBottomSummary(BATTERY_STATUS);
} }
@Test @Test
@@ -171,7 +171,7 @@ public class BatteryHeaderPreferenceControllerTest {
mController.updateHeaderPreference(mBatteryInfo); mController.updateHeaderPreference(mBatteryInfo);
verify(mBatteryUsageProgressBarPref).setTotalSummary(null); verify(mBatteryUsageProgressBarPref).setBottomSummary(null);
} }
@Test @Test