Remove BatteryHeaderPreferenceController usage in PowerUsageSummary.
This is a no-op refactor. This change makes the BatteryHeaderPreference Catalyst migration doesn't depend on PowerUsageSummary. Bug: 372774754 Test: manual Flag: EXEMPT bug fix Change-Id: I3d8d2856036f6840a0a163c35668f55baee487ab
This commit is contained in:
@@ -16,10 +16,17 @@
|
|||||||
|
|
||||||
package com.android.settings.fuelgauge;
|
package com.android.settings.fuelgauge;
|
||||||
|
|
||||||
|
import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
import androidx.lifecycle.LifecycleEventObserver;
|
||||||
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
@@ -29,27 +36,56 @@ import com.android.settingslib.widget.UsageProgressBarPreference;
|
|||||||
|
|
||||||
/** Controller that update the battery header view */
|
/** Controller that update the battery header view */
|
||||||
public class BatteryHeaderPreferenceController extends BasePreferenceController
|
public class BatteryHeaderPreferenceController extends BasePreferenceController
|
||||||
implements PreferenceControllerMixin {
|
implements PreferenceControllerMixin, LifecycleEventObserver {
|
||||||
private static final String TAG = "BatteryHeaderPreferenceController";
|
private static final String TAG = "BatteryHeaderPreferenceController";
|
||||||
private static final int BATTERY_MAX_LEVEL = 100;
|
private static final int BATTERY_MAX_LEVEL = 100;
|
||||||
|
|
||||||
@VisibleForTesting UsageProgressBarPreference mBatteryUsageProgressBarPref;
|
@Nullable @VisibleForTesting BatteryBroadcastReceiver mBatteryBroadcastReceiver;
|
||||||
|
@Nullable @VisibleForTesting UsageProgressBarPreference mBatteryUsageProgressBarPreference;
|
||||||
|
|
||||||
public BatteryHeaderPreferenceController(Context context, String key) {
|
public BatteryHeaderPreferenceController(Context context, String key) {
|
||||||
super(context, key);
|
super(context, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
|
||||||
|
@NonNull Lifecycle.Event event) {
|
||||||
|
switch (event) {
|
||||||
|
case ON_CREATE:
|
||||||
|
mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(mContext);
|
||||||
|
mBatteryBroadcastReceiver.setBatteryChangedListener(
|
||||||
|
type -> {
|
||||||
|
if (type != BATTERY_NOT_PRESENT) {
|
||||||
|
quickUpdateHeaderPreference();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case ON_START:
|
||||||
|
if (mBatteryBroadcastReceiver != null) {
|
||||||
|
mBatteryBroadcastReceiver.register();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ON_STOP:
|
||||||
|
if (mBatteryBroadcastReceiver != null) {
|
||||||
|
mBatteryBroadcastReceiver.unRegister();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
mBatteryUsageProgressBarPref = screen.findPreference(getPreferenceKey());
|
mBatteryUsageProgressBarPreference = screen.findPreference(getPreferenceKey());
|
||||||
// Hide the bottom summary from the progress bar.
|
// Hide the bottom summary from the progress bar.
|
||||||
mBatteryUsageProgressBarPref.setBottomSummary("");
|
mBatteryUsageProgressBarPreference.setBottomSummary("");
|
||||||
|
|
||||||
if (com.android.settings.Utils.isBatteryPresent(mContext)) {
|
if (com.android.settings.Utils.isBatteryPresent(mContext)) {
|
||||||
quickUpdateHeaderPreference();
|
quickUpdateHeaderPreference();
|
||||||
} else {
|
} else {
|
||||||
mBatteryUsageProgressBarPref.setVisible(false);
|
mBatteryUsageProgressBarPreference.setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,12 +96,17 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
|
|||||||
|
|
||||||
/** Updates {@link UsageProgressBarPreference} information. */
|
/** Updates {@link UsageProgressBarPreference} information. */
|
||||||
public void quickUpdateHeaderPreference() {
|
public void quickUpdateHeaderPreference() {
|
||||||
|
if (mBatteryUsageProgressBarPreference == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Intent batteryBroadcast =
|
Intent batteryBroadcast =
|
||||||
com.android.settingslib.fuelgauge.BatteryUtils.getBatteryIntent(mContext);
|
com.android.settingslib.fuelgauge.BatteryUtils.getBatteryIntent(mContext);
|
||||||
final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
|
final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
|
||||||
|
|
||||||
mBatteryUsageProgressBarPref.setUsageSummary(formatBatteryPercentageText(batteryLevel));
|
mBatteryUsageProgressBarPreference.setUsageSummary(
|
||||||
mBatteryUsageProgressBarPref.setPercent(batteryLevel, BATTERY_MAX_LEVEL);
|
formatBatteryPercentageText(batteryLevel));
|
||||||
|
mBatteryUsageProgressBarPreference.setPercent(batteryLevel, BATTERY_MAX_LEVEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CharSequence formatBatteryPercentageText(int batteryLevel) {
|
private CharSequence formatBatteryPercentageText(int batteryLevel) {
|
||||||
|
@@ -36,7 +36,6 @@ import androidx.preference.Preference;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.fuelgauge.BatteryHeaderPreferenceController;
|
|
||||||
import com.android.settings.fuelgauge.BatteryHeaderTextPreferenceController;
|
import com.android.settings.fuelgauge.BatteryHeaderTextPreferenceController;
|
||||||
import com.android.settings.fuelgauge.BatteryInfo;
|
import com.android.settings.fuelgauge.BatteryInfo;
|
||||||
import com.android.settings.fuelgauge.BatteryInfoLoader;
|
import com.android.settings.fuelgauge.BatteryInfoLoader;
|
||||||
@@ -68,7 +67,6 @@ public class PowerUsageSummary extends PowerUsageBase
|
|||||||
@VisibleForTesting BatteryUtils mBatteryUtils;
|
@VisibleForTesting BatteryUtils mBatteryUtils;
|
||||||
@VisibleForTesting BatteryInfo mBatteryInfo;
|
@VisibleForTesting BatteryInfo mBatteryInfo;
|
||||||
|
|
||||||
@VisibleForTesting BatteryHeaderPreferenceController mBatteryHeaderPreferenceController;
|
|
||||||
@VisibleForTesting BatteryHeaderTextPreferenceController mBatteryHeaderTextPreferenceController;
|
@VisibleForTesting BatteryHeaderTextPreferenceController mBatteryHeaderTextPreferenceController;
|
||||||
@VisibleForTesting BatteryTipPreferenceController mBatteryTipPreferenceController;
|
@VisibleForTesting BatteryTipPreferenceController mBatteryTipPreferenceController;
|
||||||
@VisibleForTesting boolean mNeedUpdateBatteryTip;
|
@VisibleForTesting boolean mNeedUpdateBatteryTip;
|
||||||
@@ -95,7 +93,6 @@ public class PowerUsageSummary extends PowerUsageBase
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadFinished(Loader<BatteryInfo> loader, BatteryInfo batteryInfo) {
|
public void onLoadFinished(Loader<BatteryInfo> loader, BatteryInfo batteryInfo) {
|
||||||
mBatteryHeaderPreferenceController.quickUpdateHeaderPreference();
|
|
||||||
mBatteryHeaderTextPreferenceController.updateHeaderPreference(batteryInfo);
|
mBatteryHeaderTextPreferenceController.updateHeaderPreference(batteryInfo);
|
||||||
mBatteryHeaderTextPreferenceController.updateHeaderByBatteryTips(
|
mBatteryHeaderTextPreferenceController.updateHeaderByBatteryTips(
|
||||||
mBatteryTipPreferenceController.getCurrentBatteryTip(), batteryInfo);
|
mBatteryTipPreferenceController.getCurrentBatteryTip(), batteryInfo);
|
||||||
@@ -132,7 +129,6 @@ public class PowerUsageSummary extends PowerUsageBase
|
|||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
|
|
||||||
mBatteryHeaderPreferenceController = use(BatteryHeaderPreferenceController.class);
|
|
||||||
mBatteryHeaderTextPreferenceController = use(BatteryHeaderTextPreferenceController.class);
|
mBatteryHeaderTextPreferenceController = use(BatteryHeaderTextPreferenceController.class);
|
||||||
|
|
||||||
mBatteryTipPreferenceController = use(BatteryTipPreferenceController.class);
|
mBatteryTipPreferenceController = use(BatteryTipPreferenceController.class);
|
||||||
@@ -254,15 +250,6 @@ public class PowerUsageSummary extends PowerUsageBase
|
|||||||
mNeedUpdateBatteryTip = icicle == null || mBatteryTipPreferenceController.needUpdate();
|
mNeedUpdateBatteryTip = icicle == null || mBatteryTipPreferenceController.needUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void restartBatteryStatsLoader(@BatteryUpdateType int refreshType) {
|
|
||||||
super.restartBatteryStatsLoader(refreshType);
|
|
||||||
// Update battery header if battery is present.
|
|
||||||
if (mIsBatteryPresent) {
|
|
||||||
mBatteryHeaderPreferenceController.quickUpdateHeaderPreference();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
|
@@ -27,6 +27,8 @@ import android.content.Intent;
|
|||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.os.BatteryManager;
|
import android.os.BatteryManager;
|
||||||
|
|
||||||
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
@@ -55,10 +57,11 @@ public class BatteryHeaderPreferenceControllerTest {
|
|||||||
private static final int BATTERY_MAX_LEVEL = 100;
|
private static final int BATTERY_MAX_LEVEL = 100;
|
||||||
|
|
||||||
@Mock private PreferenceScreen mPreferenceScreen;
|
@Mock private PreferenceScreen mPreferenceScreen;
|
||||||
@Mock private BatteryInfo mBatteryInfo;
|
@Mock private BatteryBroadcastReceiver mBatteryBroadcastReceiver;
|
||||||
@Mock private EntityHeaderController mEntityHeaderController;
|
@Mock private EntityHeaderController mEntityHeaderController;
|
||||||
@Mock private UsageProgressBarPreference mBatteryUsageProgressBarPref;
|
@Mock private UsageProgressBarPreference mBatteryUsageProgressBarPreference;
|
||||||
@Mock private UsbManager mUsbManager;
|
@Mock private UsbManager mUsbManager;
|
||||||
|
@Mock private LifecycleOwner mLifecycleOwner;
|
||||||
|
|
||||||
private BatteryHeaderPreferenceController mController;
|
private BatteryHeaderPreferenceController mController;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -78,14 +81,12 @@ public class BatteryHeaderPreferenceControllerTest {
|
|||||||
mBatteryIntent.putExtra(BatteryManager.EXTRA_PLUGGED, 1);
|
mBatteryIntent.putExtra(BatteryManager.EXTRA_PLUGGED, 1);
|
||||||
doReturn(mBatteryIntent).when(mContext).registerReceiver(any(), any());
|
doReturn(mBatteryIntent).when(mContext).registerReceiver(any(), any());
|
||||||
|
|
||||||
doReturn(mBatteryUsageProgressBarPref)
|
doReturn(mBatteryUsageProgressBarPreference)
|
||||||
.when(mPreferenceScreen)
|
.when(mPreferenceScreen)
|
||||||
.findPreference(PREF_KEY);
|
.findPreference(PREF_KEY);
|
||||||
|
|
||||||
mBatteryInfo.batteryLevel = BATTERY_LEVEL;
|
|
||||||
|
|
||||||
mController = spy(new BatteryHeaderPreferenceController(mContext, PREF_KEY));
|
mController = spy(new BatteryHeaderPreferenceController(mContext, PREF_KEY));
|
||||||
mController.mBatteryUsageProgressBarPref = mBatteryUsageProgressBarPref;
|
mController.mBatteryUsageProgressBarPreference = mBatteryUsageProgressBarPreference;
|
||||||
|
|
||||||
BatteryUtils.setChargingStringV2Enabled(null);
|
BatteryUtils.setChargingStringV2Enabled(null);
|
||||||
}
|
}
|
||||||
@@ -96,21 +97,45 @@ public class BatteryHeaderPreferenceControllerTest {
|
|||||||
ShadowUtils.reset();
|
ShadowUtils.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onStateChanged_onCreate_receiverCreated() {
|
||||||
|
mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_CREATE);
|
||||||
|
|
||||||
|
assertThat(mController.mBatteryBroadcastReceiver).isNotNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onStateChanged_onStart_receiverRegistered() {
|
||||||
|
mController.mBatteryBroadcastReceiver = mBatteryBroadcastReceiver;
|
||||||
|
|
||||||
|
mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_START);
|
||||||
|
|
||||||
|
verify(mBatteryBroadcastReceiver).register();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onStateChanged_onStop_receiverUnregistered() {
|
||||||
|
mController.mBatteryBroadcastReceiver = mBatteryBroadcastReceiver;
|
||||||
|
|
||||||
|
mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_STOP);
|
||||||
|
|
||||||
|
verify(mBatteryBroadcastReceiver).unRegister();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void displayPreference_displayBatteryLevel() {
|
public void displayPreference_displayBatteryLevel() {
|
||||||
mController.displayPreference(mPreferenceScreen);
|
mController.displayPreference(mPreferenceScreen);
|
||||||
|
|
||||||
verify(mBatteryUsageProgressBarPref).setUsageSummary(formatBatteryPercentageText());
|
verify(mBatteryUsageProgressBarPreference).setUsageSummary(formatBatteryPercentageText());
|
||||||
verify(mBatteryUsageProgressBarPref).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL);
|
verify(mBatteryUsageProgressBarPreference).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void quickUpdateHeaderPreference_onlyUpdateBatteryLevelAndChargingState() {
|
public void quickUpdateHeaderPreference_onlyUpdateBatteryLevelAndChargingState() {
|
||||||
mController.quickUpdateHeaderPreference();
|
mController.quickUpdateHeaderPreference();
|
||||||
|
|
||||||
verify(mBatteryUsageProgressBarPref).setUsageSummary(formatBatteryPercentageText());
|
verify(mBatteryUsageProgressBarPreference).setUsageSummary(formatBatteryPercentageText());
|
||||||
verify(mBatteryUsageProgressBarPref).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL);
|
verify(mBatteryUsageProgressBarPreference).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -125,14 +150,14 @@ public class BatteryHeaderPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.displayPreference(mPreferenceScreen);
|
mController.displayPreference(mPreferenceScreen);
|
||||||
|
|
||||||
assertThat(mBatteryUsageProgressBarPref.isVisible()).isFalse();
|
assertThat(mBatteryUsageProgressBarPreference.isVisible()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void displayPreference_init_setEmptyBottomSummary() {
|
public void displayPreference_init_setEmptyBottomSummary() {
|
||||||
mController.displayPreference(mPreferenceScreen);
|
mController.displayPreference(mPreferenceScreen);
|
||||||
|
|
||||||
verify(mBatteryUsageProgressBarPref).setBottomSummary("");
|
verify(mBatteryUsageProgressBarPreference).setBottomSummary("");
|
||||||
}
|
}
|
||||||
|
|
||||||
private CharSequence formatBatteryPercentageText() {
|
private CharSequence formatBatteryPercentageText() {
|
||||||
|
Reference in New Issue
Block a user