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:
Zaiyue Xue
2024-11-21 14:51:17 +08:00
parent 178eb0bd15
commit 47d8e1daee
3 changed files with 86 additions and 33 deletions

View File

@@ -16,10 +16,17 @@
package com.android.settings.fuelgauge;
import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT;
import android.content.Context;
import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleEventObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
@@ -29,27 +36,56 @@ import com.android.settingslib.widget.UsageProgressBarPreference;
/** Controller that update the battery header view */
public class BatteryHeaderPreferenceController extends BasePreferenceController
implements PreferenceControllerMixin {
implements PreferenceControllerMixin, LifecycleEventObserver {
private static final String TAG = "BatteryHeaderPreferenceController";
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) {
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
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mBatteryUsageProgressBarPref = screen.findPreference(getPreferenceKey());
mBatteryUsageProgressBarPreference = screen.findPreference(getPreferenceKey());
// Hide the bottom summary from the progress bar.
mBatteryUsageProgressBarPref.setBottomSummary("");
mBatteryUsageProgressBarPreference.setBottomSummary("");
if (com.android.settings.Utils.isBatteryPresent(mContext)) {
quickUpdateHeaderPreference();
} else {
mBatteryUsageProgressBarPref.setVisible(false);
mBatteryUsageProgressBarPreference.setVisible(false);
}
}
@@ -60,12 +96,17 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
/** Updates {@link UsageProgressBarPreference} information. */
public void quickUpdateHeaderPreference() {
if (mBatteryUsageProgressBarPreference == null) {
return;
}
Intent batteryBroadcast =
com.android.settingslib.fuelgauge.BatteryUtils.getBatteryIntent(mContext);
final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
mBatteryUsageProgressBarPref.setUsageSummary(formatBatteryPercentageText(batteryLevel));
mBatteryUsageProgressBarPref.setPercent(batteryLevel, BATTERY_MAX_LEVEL);
mBatteryUsageProgressBarPreference.setUsageSummary(
formatBatteryPercentageText(batteryLevel));
mBatteryUsageProgressBarPreference.setPercent(batteryLevel, BATTERY_MAX_LEVEL);
}
private CharSequence formatBatteryPercentageText(int batteryLevel) {

View File

@@ -36,7 +36,6 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.fuelgauge.BatteryHeaderPreferenceController;
import com.android.settings.fuelgauge.BatteryHeaderTextPreferenceController;
import com.android.settings.fuelgauge.BatteryInfo;
import com.android.settings.fuelgauge.BatteryInfoLoader;
@@ -68,7 +67,6 @@ public class PowerUsageSummary extends PowerUsageBase
@VisibleForTesting BatteryUtils mBatteryUtils;
@VisibleForTesting BatteryInfo mBatteryInfo;
@VisibleForTesting BatteryHeaderPreferenceController mBatteryHeaderPreferenceController;
@VisibleForTesting BatteryHeaderTextPreferenceController mBatteryHeaderTextPreferenceController;
@VisibleForTesting BatteryTipPreferenceController mBatteryTipPreferenceController;
@VisibleForTesting boolean mNeedUpdateBatteryTip;
@@ -95,7 +93,6 @@ public class PowerUsageSummary extends PowerUsageBase
@Override
public void onLoadFinished(Loader<BatteryInfo> loader, BatteryInfo batteryInfo) {
mBatteryHeaderPreferenceController.quickUpdateHeaderPreference();
mBatteryHeaderTextPreferenceController.updateHeaderPreference(batteryInfo);
mBatteryHeaderTextPreferenceController.updateHeaderByBatteryTips(
mBatteryTipPreferenceController.getCurrentBatteryTip(), batteryInfo);
@@ -132,7 +129,6 @@ public class PowerUsageSummary extends PowerUsageBase
super.onAttach(context);
final Activity activity = getActivity();
mBatteryHeaderPreferenceController = use(BatteryHeaderPreferenceController.class);
mBatteryHeaderTextPreferenceController = use(BatteryHeaderTextPreferenceController.class);
mBatteryTipPreferenceController = use(BatteryTipPreferenceController.class);
@@ -254,15 +250,6 @@ public class PowerUsageSummary extends PowerUsageBase
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
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);