diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java index 3f3cddce9c0..36ccdc61b50 100644 --- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java @@ -18,6 +18,10 @@ package com.android.settings.fuelgauge; import android.content.Context; +import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; + +import java.util.List; + /** Feature provider for battery settings usage. */ public interface BatterySettingsFeatureProvider { @@ -29,4 +33,7 @@ public interface BatterySettingsFeatureProvider { /** Check whether the battery information page is enabled in the About phone page */ boolean isBatteryInfoEnabled(Context context); + + /** A way to add more battery tip detectors. */ + void addBatteryTipDetector(Context context, List tips); } diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java index aacb2194f37..badab69314d 100644 --- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java @@ -18,6 +18,10 @@ package com.android.settings.fuelgauge; import android.content.Context; +import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; + +import java.util.List; + /** Feature provider implementation for battery settings usage. */ public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatureProvider { @@ -35,4 +39,7 @@ public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatur public boolean isBatteryInfoEnabled(Context context) { return false; } + + @Override + public void addBatteryTipDetector(Context context, List tips) {} } diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java index 9fc0ce1a1f8..9d63046960f 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java @@ -30,6 +30,7 @@ import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector; import com.android.settings.fuelgauge.batterytip.detectors.IncompatibleChargerDetector; import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; +import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.utils.AsyncLoaderCompat; import java.util.ArrayList; @@ -44,6 +45,7 @@ public class BatteryTipLoader extends AsyncLoaderCompat> { private static final String TAG = "BatteryTipLoader"; private BatteryUsageStats mBatteryUsageStats; + @VisibleForTesting BatteryUtils mBatteryUtils; public BatteryTipLoader(Context context, BatteryUsageStats batteryUsageStats) { @@ -66,6 +68,9 @@ public class BatteryTipLoader extends AsyncLoaderCompat> { tips.add(new BatteryDefenderDetector(batteryInfo, context).detect()); tips.add(new DockDefenderDetector(batteryInfo, context).detect()); tips.add(new IncompatibleChargerDetector(context).detect()); + FeatureFactory.getFeatureFactory() + .getBatterySettingsFeatureProvider() + .addBatteryTipDetector(context, tips); Collections.sort(tips); return tips; } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java index e13dcc03161..5613c4ecbf0 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java @@ -50,21 +50,20 @@ import java.util.List; public class BatteryTipLoaderTest { private static final int[] TIP_ORDER = { - BatteryTip.TipType.LOW_BATTERY, - BatteryTip.TipType.BATTERY_DEFENDER, - BatteryTip.TipType.DOCK_DEFENDER, - BatteryTip.TipType.INCOMPATIBLE_CHARGER, - BatteryTip.TipType.HIGH_DEVICE_USAGE}; + BatteryTip.TipType.LOW_BATTERY, + BatteryTip.TipType.BATTERY_DEFENDER, + BatteryTip.TipType.DOCK_DEFENDER, + BatteryTip.TipType.INCOMPATIBLE_CHARGER, + BatteryTip.TipType.HIGH_DEVICE_USAGE + }; + @Mock(answer = Answers.RETURNS_DEEP_STUBS) private BatteryUsageStats mBatteryUsageStats; - @Mock - private PowerManager mPowerManager; - @Mock - private Intent mIntent; - @Mock - private BatteryUtils mBatteryUtils; - @Mock - private BatteryInfo mBatteryInfo; + + @Mock private PowerManager mPowerManager; + @Mock private Intent mIntent; + @Mock private BatteryUtils mBatteryUtils; + @Mock private BatteryInfo mBatteryInfo; private Context mContext; private BatteryTipLoader mBatteryTipLoader;