diff --git a/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java b/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java index 26fd3985156..25415f35149 100644 --- a/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java +++ b/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java @@ -32,12 +32,12 @@ public class AutoRestrictionPreferenceController extends BasePreferenceControlle private static final String KEY_SMART_BATTERY = "auto_restriction"; private static final int ON = 1; private static final int OFF = 0; - private PowerUsageFeatureProvider mPowerUsageFeatureProvider; + private final PowerUsageFeatureProvider mPowerUsageFeatureProvider; public AutoRestrictionPreferenceController(Context context) { super(context, KEY_SMART_BATTERY); - mPowerUsageFeatureProvider = FeatureFactory.getFactory( - context).getPowerUsageFeatureProvider(context); + mPowerUsageFeatureProvider = + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); } @Override diff --git a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java index 50f1b90df77..4dabe12e1bd 100644 --- a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java +++ b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java @@ -111,8 +111,8 @@ public final class BatteryBackupHelper implements BackupHelper { writeBackupData(data, KEY_BUILD_MANUFACTURER, Build.MANUFACTURER); writeBackupData(data, KEY_BUILD_FINGERPRINT, Build.FINGERPRINT); // Add customized device build metadata fields. - final PowerUsageFeatureProvider provider = FeatureFactory.getFactory(mContext) - .getPowerUsageFeatureProvider(mContext); + final PowerUsageFeatureProvider provider = + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); writeBackupData(data, KEY_BUILD_METADATA_1, provider.getBuildMetadata1(mContext)); writeBackupData(data, KEY_BUILD_METADATA_2, provider.getBuildMetadata2(mContext)); @@ -260,8 +260,8 @@ public final class BatteryBackupHelper implements BackupHelper { if (mOptimizationModeBytes == null || mOptimizationModeBytes.length == 0) { return; } - final PowerUsageFeatureProvider provider = FeatureFactory.getFactory(mContext) - .getPowerUsageFeatureProvider(mContext); + final PowerUsageFeatureProvider provider = + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); if (!provider.isValidToRestoreOptimizationMode(mDeviceBuildInfoMap)) { return; } diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java index 27d7154d72a..9f8c2d02c23 100644 --- a/src/com/android/settings/fuelgauge/BatteryInfo.java +++ b/src/com/android/settings/fuelgauge/BatteryInfo.java @@ -104,8 +104,8 @@ public class BatteryInfo { // Add projection if we have an estimate. if (remainingTimeUs != 0) { - PowerUsageFeatureProvider provider = FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context); + PowerUsageFeatureProvider provider = + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); if (!mCharging && provider.isEnhancedBatteryPredictionEnabled(context)) { points = provider.getEnhancedBatteryPredictionCurve(context, startTime); } else { @@ -201,7 +201,7 @@ public class BatteryInfo { final long startTime = System.currentTimeMillis(); PowerUsageFeatureProvider provider = - FeatureFactory.getFactory(context).getPowerUsageFeatureProvider(context); + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); final long elapsedRealtimeUs = PowerUtil.convertMsToUs(SystemClock.elapsedRealtime()); @@ -211,8 +211,7 @@ public class BatteryInfo { final boolean discharging = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) == 0; - if (discharging && provider != null - && provider.isEnhancedBatteryPredictionEnabled(context)) { + if (discharging && provider.isEnhancedBatteryPredictionEnabled(context)) { Estimate estimate = provider.getEnhancedBatteryPrediction(context); if (estimate != null) { Estimate.storeCachedEstimate(context, estimate); diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java index 1f7e3ec282b..171c76b28c9 100644 --- a/src/com/android/settings/fuelgauge/BatteryUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryUtils.java @@ -135,8 +135,8 @@ public class BatteryUtils { mContext = context; mPackageManager = context.getPackageManager(); mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); - mPowerUsageFeatureProvider = FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context); + mPowerUsageFeatureProvider = + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); } public long getProcessTimeMs(@StatusType int type, @Nullable BatteryStats.Uid uid, @@ -626,8 +626,8 @@ public class BatteryUtils { if (Settings.Global.getInt(context.getContentResolver(), SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0) == 1) { return DockDefenderMode.TEMPORARILY_BYPASSED; - } else if (batteryInfo.isBatteryDefender && FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + } else if (batteryInfo.isBatteryDefender && FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .isExtraDefend()) { return DockDefenderMode.ACTIVE; } else if (!batteryInfo.isBatteryDefender) { diff --git a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java index 62f27801e7c..dda83a820a6 100644 --- a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java +++ b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java @@ -48,7 +48,7 @@ public class DebugEstimatesLoader extends AsyncLoaderCompat> { public List loadInBackground() { Context context = getContext(); PowerUsageFeatureProvider powerUsageFeatureProvider = - FeatureFactory.getFactory(context).getPowerUsageFeatureProvider(context); + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); // get stuff we'll need for both BatteryInfo final long elapsedRealtimeUs = PowerUtil.convertMsToUs( diff --git a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java index 26c0ab9674f..630cf82ef23 100644 --- a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java +++ b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java @@ -37,12 +37,12 @@ public class SmartBatteryPreferenceController extends BasePreferenceController i private static final String KEY_SMART_BATTERY = "smart_battery"; private static final int ON = 1; private static final int OFF = 0; - private PowerUsageFeatureProvider mPowerUsageFeatureProvider; + private final PowerUsageFeatureProvider mPowerUsageFeatureProvider; public SmartBatteryPreferenceController(Context context) { super(context, KEY_SMART_BATTERY); - mPowerUsageFeatureProvider = FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context); + mPowerUsageFeatureProvider = + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); } @Override diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java index 93a95f36900..34fd72dbd71 100644 --- a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java +++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java @@ -98,10 +98,10 @@ public class AnomalyDetectionJobService extends JobService { final UserManager userManager = getSystemService(UserManager.class); final PowerAllowlistBackend powerAllowlistBackend = PowerAllowlistBackend.getInstance(context); - final PowerUsageFeatureProvider powerUsageFeatureProvider = FeatureFactory - .getFactory(this).getPowerUsageFeatureProvider(this); - final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory - .getFactory(this).getMetricsFeatureProvider(); + final PowerUsageFeatureProvider powerUsageFeatureProvider = + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); + final MetricsFeatureProvider metricsFeatureProvider = + FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); for (JobWorkItem item = dequeueWork(params); item != null; item = dequeueWork(params)) { saveAnomalyToDatabase(context, userManager, diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java index 8b7d4c18856..55d2ee49dd2 100644 --- a/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java +++ b/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java @@ -38,7 +38,7 @@ public class BatteryDefenderDetector implements BatteryTipDetector { @Override public BatteryTip detect() { final boolean isBasicBatteryDefend = mBatteryInfo.isBatteryDefender - && !FeatureFactory.getFactory(mContext).getPowerUsageFeatureProvider(mContext) + && !FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider() .isExtraDefend(); final int state = isBasicBatteryDefend ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE; diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java index 4a8f98ba197..536e5f89204 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java @@ -109,8 +109,8 @@ public class BatteryDefenderTip extends BatteryTip { private void resumeCharging(Context context) { final Intent intent = - FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .getResumeChargeIntent(false); if (intent != null) { context.sendBroadcast(intent); diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java index 327f974da28..c8cb8f2b1f3 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java @@ -153,8 +153,8 @@ public class DockDefenderTip extends BatteryTip { private void resumeCharging(Context context) { final Intent intent = - FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .getResumeChargeIntent(true); if (intent != null) { context.sendBroadcast(intent); diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java index 47ae5685837..90a5f19d18b 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java @@ -53,7 +53,7 @@ public class BatteryDiffData { if (!isAccumulated) { final PowerUsageFeatureProvider featureProvider = - FeatureFactory.getFactory(context).getPowerUsageFeatureProvider(context); + FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); purgeBatteryDiffData(featureProvider); combineBatteryDiffEntry( context, featureProvider, systemAppsPackageNames, systemAppsUids); diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java index ed5f182fd90..ab5ab8ac910 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java @@ -64,8 +64,8 @@ public final class BatteryUsageBroadcastReceiver extends BroadcastReceiver { final String action = intent.getAction(); Log.d(TAG, "onReceive:" + action); DatabaseUtils.recordDateTime(context, action); - final String fullChargeIntentAction = FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + final String fullChargeIntentAction = FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .getFullChargeIntentAction(); switch (action) { case Intent.ACTION_BATTERY_LEVEL_CHANGED: @@ -107,8 +107,8 @@ public final class BatteryUsageBroadcastReceiver extends BroadcastReceiver { } final boolean delayHourlyJobWhenBooting = - FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .delayHourlyJobWhenBooting(); final long broadcastDelay = sBroadcastDelayFromBoot - SystemClock.elapsedRealtime(); // If current boot time is smaller than expected delay, cancel sending the broadcast. diff --git a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java index 920670fa13f..67462b3750c 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java @@ -91,8 +91,8 @@ public final class BootBroadcastReceiver extends BroadcastReceiver { private long getRescheduleTimeForBootAction(Context context) { final boolean delayHourlyJobWhenBooting = - FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .delayHourlyJobWhenBooting(); return delayHourlyJobWhenBooting ? RESCHEDULE_FOR_BOOT_ACTION_WITH_DELAY diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index 6914c3043ea..6de3f590064 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -321,8 +321,8 @@ public final class DataProcessor { long numEventsFetched = 0; long numAllEventsFetched = 0; final Set ignoreScreenOnTimeTaskRootSet = - FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .getIgnoreScreenOnTimeTaskRootSet(); for (final long userId : usageEventsMap.keySet()) { final UsageEvents usageEvents = usageEventsMap.get(userId); diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java index 8c0e66c78d8..0e15093e5a0 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java +++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java @@ -97,8 +97,8 @@ public final class PeriodicJobManager { static long getTriggerAtMillis(Context context, Clock clock, final boolean fromBoot) { long currentTimeMillis = clock.millis(); final boolean delayHourlyJobWhenBooting = - FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context) + FeatureFactory.getFeatureFactory() + .getPowerUsageFeatureProvider() .delayHourlyJobWhenBooting(); // Rounds to the previous nearest time slot and shifts to the next one. long timeSlotUnit = Duration.ofMinutes(DATA_FETCH_INTERVAL_MINUTE).toMillis(); diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java index 0bec4908d10..a0c5843988a 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java @@ -246,9 +246,7 @@ public class PowerUsageSummary extends PowerUsageBase implements @VisibleForTesting void initFeatureProvider() { - final Context context = getContext(); - mPowerFeatureProvider = FeatureFactory.getFactory(context) - .getPowerUsageFeatureProvider(context); + mPowerFeatureProvider = FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider(); } @VisibleForTesting diff --git a/src/com/android/settings/overlay/FeatureFactory.kt b/src/com/android/settings/overlay/FeatureFactory.kt index 3e0d088dedc..9b1f0f4d6dc 100644 --- a/src/com/android/settings/overlay/FeatureFactory.kt +++ b/src/com/android/settings/overlay/FeatureFactory.kt @@ -68,7 +68,7 @@ abstract class FeatureFactory { abstract val metricsFeatureProvider: MetricsFeatureProvider - abstract fun getPowerUsageFeatureProvider(context: Context): PowerUsageFeatureProvider + abstract val powerUsageFeatureProvider: PowerUsageFeatureProvider /** * Retrieves implementation for Battery Status feature. diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.kt b/src/com/android/settings/overlay/FeatureFactoryImpl.kt index 9955e638fe3..f627c4f94c2 100644 --- a/src/com/android/settings/overlay/FeatureFactoryImpl.kt +++ b/src/com/android/settings/overlay/FeatureFactoryImpl.kt @@ -79,8 +79,6 @@ open class FeatureFactoryImpl : FeatureFactory() { ) } - private val powerUsageFeatureProvider by lazy { PowerUsageFeatureProviderImpl(appContext) } - private val userFeatureProvider by lazy { UserFeatureProviderImpl(appContext) } private val contextualCardFeatureProvider by lazy { @@ -92,7 +90,7 @@ open class FeatureFactoryImpl : FeatureFactory() { override val metricsFeatureProvider by lazy { SettingsMetricsFeatureProvider() } - override fun getPowerUsageFeatureProvider(context: Context) = powerUsageFeatureProvider + override val powerUsageFeatureProvider by lazy { PowerUsageFeatureProviderImpl(appContext) } override val batteryStatusFeatureProvider by lazy { BatteryStatusFeatureProviderImpl(appContext) diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java index 0dfabb99313..b787239b9b4 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java @@ -57,7 +57,7 @@ public class BatteryInfoLoaderTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); - FakeFeatureFactory.setupForTest().getPowerUsageFeatureProvider(mContext); + FakeFeatureFactory.setupForTest().getPowerUsageFeatureProvider(); doReturn(mContext).when(mContext).getApplicationContext(); when(mContext.getSystemService(eq(Context.BATTERY_STATS_SERVICE))) diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java index 5bac5226d05..0f4c25513ec 100644 --- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java +++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java @@ -162,8 +162,9 @@ public class FakeFeatureFactory extends FeatureFactory { return batterySettingsFeatureProvider; } + @NotNull @Override - public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) { + public PowerUsageFeatureProvider getPowerUsageFeatureProvider() { return powerUsageFeatureProvider; } diff --git a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt index 2f3885b8a02..f732bcefad0 100644 --- a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt +++ b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt @@ -67,9 +67,8 @@ class FakeFeatureFactory : FeatureFactory() { override val metricsFeatureProvider = mockMetricsFeatureProvider - override fun getPowerUsageFeatureProvider(context: Context): PowerUsageFeatureProvider { - TODO("Not yet implemented") - } + override val powerUsageFeatureProvider: PowerUsageFeatureProvider + get() = TODO("Not yet implemented") override val batteryStatusFeatureProvider: BatteryStatusFeatureProvider get() = TODO("Not yet implemented") diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java index ad62cd7c8cd..e0d3ecaf185 100644 --- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java +++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java @@ -161,8 +161,9 @@ public class FakeFeatureFactory extends FeatureFactory { return batterySettingsFeatureProvider; } + @NotNull @Override - public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) { + public PowerUsageFeatureProvider getPowerUsageFeatureProvider() { return powerUsageFeatureProvider; }