diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java index 11d756470dd..906644482c6 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java @@ -52,8 +52,7 @@ import com.android.settingslib.widget.LayoutPreference; * Controller that update the battery header view */ public class BatteryHeaderPreferenceController extends BasePreferenceController - implements PreferenceControllerMixin, LifecycleObserver, OnStart, - BatteryPreferenceController { + implements PreferenceControllerMixin, LifecycleObserver, OnStart { @VisibleForTesting static final String KEY_BATTERY_HEADER = "battery_header"; private static final String ANNOTATION_URL = "url"; @@ -122,20 +121,16 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController .styleActionBar(mActivity); } - private CharSequence generateLabel(BatteryInfo info) { - if (BatteryUtils.isBatteryDefenderOn(info)) { - return null; - } else if (info.remainingLabel == null) { - return info.statusLabel; - } else { - return info.remainingLabel; - } - } - public void updateHeaderPreference(BatteryInfo info) { mBatteryPercentText.setText(formatBatteryPercentageText(info.batteryLevel)); if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info)) { - mSummary1.setText(generateLabel(info)); + if (BatteryUtils.isBatteryDefenderOn(info)) { + mSummary1.setText(null); + } else if (info.remainingLabel == null) { + mSummary1.setText(info.statusLabel); + } else { + mSummary1.setText(info.remainingLabel); + } } mBatteryMeterView.setBatteryLevel(info.batteryLevel); @@ -146,8 +141,8 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController /** * Callback which receives text for the summary line. */ - public void updateBatteryStatus(String label, BatteryInfo info) { - mSummary1.setText(label != null ? label : generateLabel(info)); + public void updateBatteryStatus(String statusLabel) { + mSummary1.setText(statusLabel); } public void quickUpdateHeaderPreference() { diff --git a/src/com/android/settings/fuelgauge/BatteryPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryPreferenceController.java deleted file mode 100644 index badf5c8c517..00000000000 --- a/src/com/android/settings/fuelgauge/BatteryPreferenceController.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.fuelgauge; - -/** - * Common interface for a preference controller that updates battery status - */ -public interface BatteryPreferenceController { - - /** - * Updates the label for the preference controller. If the label is null, the - * implementation should revert back to the original label based on the - * battery info. - */ - void updateBatteryStatus(String label, BatteryInfo info); -} diff --git a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java index 46f00c79f4f..c3fc24756fe 100644 --- a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java @@ -25,5 +25,5 @@ public interface BatteryStatusFeatureProvider { * Trigger a battery status update; return false if built-in status should be used. */ boolean triggerBatteryStatusUpdate( - BatteryPreferenceController controller, BatteryInfo info); + BatteryHeaderPreferenceController batteryHeaderPreferenceController, BatteryInfo info); } diff --git a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java index dc4b5db467c..47d376dd9d7 100644 --- a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java @@ -31,7 +31,7 @@ public class BatteryStatusFeatureProviderImpl implements BatteryStatusFeaturePro @Override public boolean triggerBatteryStatusUpdate( - BatteryPreferenceController controller, BatteryInfo info) { + BatteryHeaderPreferenceController batteryHeaderPreferenceController, BatteryInfo info) { return false; } } diff --git a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java index 666a7490e90..c2e6a6f075a 100644 --- a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java +++ b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java @@ -26,21 +26,18 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.FeatureFlags; -import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; public class TopLevelBatteryPreferenceController extends BasePreferenceController implements - LifecycleObserver, OnStart, OnStop, BatteryPreferenceController { + LifecycleObserver, OnStart, OnStop { @VisibleForTesting - protected boolean mIsBatteryPresent = true; + boolean mIsBatteryPresent = true; private final BatteryBroadcastReceiver mBatteryBroadcastReceiver; private Preference mPreference; private BatteryInfo mBatteryInfo; - private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider; - private String mBatteryStatusLabel; public TopLevelBatteryPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); @@ -54,9 +51,6 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle updateState(mPreference); }, true /* shortString */); }); - - mBatteryStatusFeatureProvider = FeatureFactory.getFactory(context) - .getBatteryStatusFeatureProvider(context); } @Override @@ -94,42 +88,20 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle return getDashboardLabel(mContext, mBatteryInfo); } - protected CharSequence getDashboardLabel(Context context, BatteryInfo info) { + static CharSequence getDashboardLabel(Context context, BatteryInfo info) { if (info == null || context == null) { return null; } - CharSequence label; - if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info) - || mBatteryStatusLabel == null) { - label = generateLabel(info); - } else { - label = mBatteryStatusLabel; - } - - return label; - } - - private CharSequence generateLabel(BatteryInfo info) { if (!info.discharging && info.chargeLabel != null) { - return info.chargeLabel; + label = info.chargeLabel; } else if (info.remainingLabel == null) { - return info.batteryPercentString; + label = info.batteryPercentString; } else { - return mContext.getString(R.string.power_remaining_settings_home_page, + label = context.getString(R.string.power_remaining_settings_home_page, info.batteryPercentString, info.remainingLabel); } - } - - /** - * Callback which receives text for the label. - */ - public void updateBatteryStatus(String label, BatteryInfo info) { - mBatteryStatusLabel = (label != null) ? label : generateLabel(info).toString(); - - if (mPreference != null) { - updateState(mPreference); - } + return label; } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java index 667e24eb73d..18155d84c0d 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java @@ -18,6 +18,7 @@ package com.android.settings.fuelgauge; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; +import static com.android.settings.fuelgauge.TopLevelBatteryPreferenceController.getDashboardLabel; import static com.google.common.truth.Truth.assertThat; @@ -68,16 +69,14 @@ public class TopLevelBatteryPreferenceControllerTest { public void getDashboardLabel_returnsCorrectLabel() { BatteryInfo info = new BatteryInfo(); info.batteryPercentString = "3%"; - assertThat(mController.getDashboardLabel(mContext, info)) - .isEqualTo(info.batteryPercentString); + assertThat(getDashboardLabel(mContext, info)).isEqualTo(info.batteryPercentString); info.remainingLabel = "Phone will shut down soon"; - assertThat(mController.getDashboardLabel(mContext, info)) - .isEqualTo("3% - Phone will shut down soon"); + assertThat(getDashboardLabel(mContext, info)).isEqualTo("3% - Phone will shut down soon"); info.discharging = false; info.chargeLabel = "5% - charging"; - assertThat(mController.getDashboardLabel(mContext, info)).isEqualTo("5% - charging"); + assertThat(getDashboardLabel(mContext, info)).isEqualTo("5% - charging"); } @Test