diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java new file mode 100644 index 00000000000..73b875bb575 --- /dev/null +++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2021 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; + +/** + * Feature provider for battery settings usage. + */ +public interface BatterySettingsFeatureProvider { + + /** + * Get replacement activity for a given activity or fragment path. + */ + String getReplacingActivityName(String activity); + +} diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java new file mode 100644 index 00000000000..e4106959846 --- /dev/null +++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 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; + +/** + * Feature provider implementation for battery settings usage. + */ +public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatureProvider { + + @Override + public String getReplacingActivityName(String activity) { + return null; + } +} diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java index 42d98e04af8..0e47556565e 100644 --- a/src/com/android/settings/overlay/FeatureFactory.java +++ b/src/com/android/settings/overlay/FeatureFactory.java @@ -32,6 +32,7 @@ import com.android.settings.bluetooth.BluetoothFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider; import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider; +import com.android.settings.fuelgauge.BatterySettingsFeatureProvider; import com.android.settings.fuelgauge.BatteryStatusFeatureProvider; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.gestures.AssistGestureFeatureProvider; @@ -112,6 +113,12 @@ public abstract class FeatureFactory { public abstract BatteryStatusFeatureProvider getBatteryStatusFeatureProvider( Context context); + /** + * Get implementation for Battery Settings provider. + */ + public abstract BatterySettingsFeatureProvider getBatterySettingsFeatureProvider( + Context context); + public abstract DashboardFeatureProvider getDashboardFeatureProvider(Context context); public abstract DockUpdaterFeatureProvider getDockUpdaterFeatureProvider(); diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java index 46b263ab837..dc085477244 100644 --- a/src/com/android/settings/overlay/FeatureFactoryImpl.java +++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java @@ -45,6 +45,8 @@ import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider; import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl; import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider; import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl; +import com.android.settings.fuelgauge.BatterySettingsFeatureProvider; +import com.android.settings.fuelgauge.BatterySettingsFeatureProviderImpl; import com.android.settings.fuelgauge.BatteryStatusFeatureProvider; import com.android.settings.fuelgauge.BatteryStatusFeatureProviderImpl; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; @@ -86,6 +88,7 @@ public class FeatureFactoryImpl extends FeatureFactory { private SuggestionFeatureProvider mSuggestionFeatureProvider; private PowerUsageFeatureProvider mPowerUsageFeatureProvider; private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider; + private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider; private AssistGestureFeatureProvider mAssistGestureFeatureProvider; private UserFeatureProvider mUserFeatureProvider; private SlicesFeatureProvider mSlicesFeatureProvider; @@ -129,6 +132,14 @@ public class FeatureFactoryImpl extends FeatureFactory { return mBatteryStatusFeatureProvider; } + @Override + public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider(Context context) { + if (mBatterySettingsFeatureProvider == null) { + mBatterySettingsFeatureProvider = new BatterySettingsFeatureProviderImpl(); + } + return mBatterySettingsFeatureProvider; + } + @Override public DashboardFeatureProvider getDashboardFeatureProvider(Context context) { if (mDashboardFeatureProvider == null) { diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java index a48b3ebc246..7bd78138a5f 100644 --- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java +++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java @@ -30,6 +30,7 @@ import com.android.settings.bluetooth.BluetoothFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider; import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider; +import com.android.settings.fuelgauge.BatterySettingsFeatureProvider; import com.android.settings.fuelgauge.BatteryStatusFeatureProvider; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.gestures.AssistGestureFeatureProvider; @@ -58,6 +59,7 @@ public class FakeFeatureFactory extends FeatureFactory { public final SupportFeatureProvider supportFeatureProvider; public final MetricsFeatureProvider metricsFeatureProvider; public final BatteryStatusFeatureProvider batteryStatusFeatureProvider; + public final BatterySettingsFeatureProvider batterySettingsFeatureProvider; public final PowerUsageFeatureProvider powerUsageFeatureProvider; public final DashboardFeatureProvider dashboardFeatureProvider; public final DockUpdaterFeatureProvider dockUpdaterFeatureProvider; @@ -106,6 +108,7 @@ public class FakeFeatureFactory extends FeatureFactory { supportFeatureProvider = mock(SupportFeatureProvider.class); metricsFeatureProvider = mock(MetricsFeatureProvider.class); batteryStatusFeatureProvider = mock(BatteryStatusFeatureProvider.class); + batterySettingsFeatureProvider = mock(BatterySettingsFeatureProvider.class); powerUsageFeatureProvider = mock(PowerUsageFeatureProvider.class); dashboardFeatureProvider = mock(DashboardFeatureProvider.class); dockUpdaterFeatureProvider = mock(DockUpdaterFeatureProvider.class); @@ -149,6 +152,11 @@ public class FakeFeatureFactory extends FeatureFactory { return batteryStatusFeatureProvider; } + @Override + public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider(Context context) { + return batterySettingsFeatureProvider; + } + @Override public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) { return powerUsageFeatureProvider; diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java index 6955dc4aec9..a90c9bfebc1 100644 --- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java +++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java @@ -28,6 +28,7 @@ import com.android.settings.bluetooth.BluetoothFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider; import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider; +import com.android.settings.fuelgauge.BatterySettingsFeatureProvider; import com.android.settings.fuelgauge.BatteryStatusFeatureProvider; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.gestures.AssistGestureFeatureProvider; @@ -53,6 +54,7 @@ public class FakeFeatureFactory extends FeatureFactory { public final SupportFeatureProvider supportFeatureProvider; public final MetricsFeatureProvider metricsFeatureProvider; public final BatteryStatusFeatureProvider batteryStatusFeatureProvider; + public final BatterySettingsFeatureProvider batterySettingsFeatureProvider; public final PowerUsageFeatureProvider powerUsageFeatureProvider; public final DashboardFeatureProvider dashboardFeatureProvider; public final DockUpdaterFeatureProvider dockUpdaterFeatureProvider; @@ -92,6 +94,7 @@ public class FakeFeatureFactory extends FeatureFactory { supportFeatureProvider = mock(SupportFeatureProvider.class); metricsFeatureProvider = mock(MetricsFeatureProvider.class); batteryStatusFeatureProvider = mock(BatteryStatusFeatureProvider.class); + batterySettingsFeatureProvider = mock(BatterySettingsFeatureProvider.class); powerUsageFeatureProvider = mock(PowerUsageFeatureProvider.class); dashboardFeatureProvider = mock(DashboardFeatureProvider.class); dockUpdaterFeatureProvider = mock(DockUpdaterFeatureProvider.class); @@ -135,6 +138,11 @@ public class FakeFeatureFactory extends FeatureFactory { return batteryStatusFeatureProvider; } + @Override + public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider(Context context) { + return batterySettingsFeatureProvider; + } + @Override public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) { return powerUsageFeatureProvider;