Loading src/com/android/settings/display/DisplayFeatureProvider.java 0 → 100644 +39 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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.display; import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.PreferenceScreen; import com.android.settings.core.TogglePreferenceController; /** Feature provider for display settings */ public interface DisplayFeatureProvider { /** Create toggle preference */ @Nullable TogglePreferenceController createAdditionalPreference(@NonNull Context context); /** Update toggle preference */ void updatePreference(@Nullable TogglePreferenceController togglePreferenceController); /** Add toggle preference to PreferenceScreen */ void addToScreen(@Nullable TogglePreferenceController togglePreferenceController, @NonNull PreferenceScreen screen); } src/com/android/settings/display/DisplayFeatureProviderImpl.java 0 → 100644 +44 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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.display; import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.PreferenceScreen; import com.android.settings.core.TogglePreferenceController; public class DisplayFeatureProviderImpl implements DisplayFeatureProvider { @Override @Nullable public TogglePreferenceController createAdditionalPreference(@NonNull Context context) { return null; } @Override public void updatePreference(@Nullable TogglePreferenceController togglePreferenceController) { } @Override public void addToScreen(@Nullable TogglePreferenceController togglePreferenceController, @NonNull PreferenceScreen screen) { } } src/com/android/settings/display/ScreenTimeoutSettings.java +12 −0 Original line number Diff line number Diff line Loading @@ -34,9 +34,11 @@ import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import androidx.annotation.Nullable; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; Loading Loading @@ -106,6 +108,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment @VisibleForTesting AdaptiveSleepBatterySaverPreferenceController mAdaptiveSleepBatterySaverPreferenceController; @Nullable TogglePreferenceController mAdditionalTogglePreferenceController; public ScreenTimeoutSettings() { super(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); Loading Loading @@ -133,6 +138,8 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment com.android.settingslib.widget.preference.footer.R.layout.preference_footer); mPrivacyManager = SensorPrivacyManager.getInstance(context); mPrivacyChangedListener = (sensor, enabled) -> mAdaptiveSleepController.updatePreference(); mAdditionalTogglePreferenceController = FeatureFactory.getFeatureFactory() .getDisplayFeatureProvider().createAdditionalPreference(context); } @Override Loading Loading @@ -164,6 +171,8 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment mReceiver, new IntentFilter(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED)); mPrivacyManager.addSensorPrivacyListener(CAMERA, mPrivacyChangedListener); mIsUserAuthenticated = false; FeatureFactory.getFeatureFactory().getDisplayFeatureProvider().updatePreference( mAdditionalTogglePreferenceController); } @Override Loading Loading @@ -210,6 +219,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment mPrivacyPreference.setLayoutResource( com.android.settingslib.widget.preference.footer.R.layout.preference_footer); FeatureFactory.getFeatureFactory().getDisplayFeatureProvider() .addToScreen(mAdditionalTogglePreferenceController, screen); if (isScreenAttentionAvailable(getContext())) { mAdaptiveSleepPermissionController.addToScreen(screen); mAdaptiveSleepCameraStatePreferenceController.addToScreen(screen); Loading src/com/android/settings/overlay/FeatureFactory.kt +6 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.settings.connecteddevice.stylus.StylusFeatureProvider import com.android.settings.dashboard.DashboardFeatureProvider import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider import com.android.settings.display.DisplayFeatureProvider import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider import com.android.settings.fuelgauge.BatterySettingsFeatureProvider import com.android.settings.fuelgauge.BatteryStatusFeatureProvider Loading Loading @@ -176,6 +177,11 @@ abstract class FeatureFactory { */ abstract val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider /** * Gets implementation for Display feature. */ abstract val displayFeatureProvider: DisplayFeatureProvider companion object { private var _factory: FeatureFactory? = null Loading src/com/android/settings/overlay/FeatureFactoryImpl.kt +5 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,8 @@ import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProviderImpl import com.android.settings.display.DisplayFeatureProvider import com.android.settings.display.DisplayFeatureProviderImpl import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl import com.android.settings.fuelgauge.BatterySettingsFeatureProviderImpl import com.android.settings.fuelgauge.BatteryStatusFeatureProviderImpl Loading Loading @@ -190,4 +192,7 @@ open class FeatureFactoryImpl : FeatureFactory() { override val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider by lazy { PrivateSpaceLoginFeatureProviderImpl() } override val displayFeatureProvider: DisplayFeatureProvider by lazy { DisplayFeatureProviderImpl() } } Loading
src/com/android/settings/display/DisplayFeatureProvider.java 0 → 100644 +39 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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.display; import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.PreferenceScreen; import com.android.settings.core.TogglePreferenceController; /** Feature provider for display settings */ public interface DisplayFeatureProvider { /** Create toggle preference */ @Nullable TogglePreferenceController createAdditionalPreference(@NonNull Context context); /** Update toggle preference */ void updatePreference(@Nullable TogglePreferenceController togglePreferenceController); /** Add toggle preference to PreferenceScreen */ void addToScreen(@Nullable TogglePreferenceController togglePreferenceController, @NonNull PreferenceScreen screen); }
src/com/android/settings/display/DisplayFeatureProviderImpl.java 0 → 100644 +44 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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.display; import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.PreferenceScreen; import com.android.settings.core.TogglePreferenceController; public class DisplayFeatureProviderImpl implements DisplayFeatureProvider { @Override @Nullable public TogglePreferenceController createAdditionalPreference(@NonNull Context context) { return null; } @Override public void updatePreference(@Nullable TogglePreferenceController togglePreferenceController) { } @Override public void addToScreen(@Nullable TogglePreferenceController togglePreferenceController, @NonNull PreferenceScreen screen) { } }
src/com/android/settings/display/ScreenTimeoutSettings.java +12 −0 Original line number Diff line number Diff line Loading @@ -34,9 +34,11 @@ import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import androidx.annotation.Nullable; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; Loading Loading @@ -106,6 +108,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment @VisibleForTesting AdaptiveSleepBatterySaverPreferenceController mAdaptiveSleepBatterySaverPreferenceController; @Nullable TogglePreferenceController mAdditionalTogglePreferenceController; public ScreenTimeoutSettings() { super(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); Loading Loading @@ -133,6 +138,8 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment com.android.settingslib.widget.preference.footer.R.layout.preference_footer); mPrivacyManager = SensorPrivacyManager.getInstance(context); mPrivacyChangedListener = (sensor, enabled) -> mAdaptiveSleepController.updatePreference(); mAdditionalTogglePreferenceController = FeatureFactory.getFeatureFactory() .getDisplayFeatureProvider().createAdditionalPreference(context); } @Override Loading Loading @@ -164,6 +171,8 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment mReceiver, new IntentFilter(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED)); mPrivacyManager.addSensorPrivacyListener(CAMERA, mPrivacyChangedListener); mIsUserAuthenticated = false; FeatureFactory.getFeatureFactory().getDisplayFeatureProvider().updatePreference( mAdditionalTogglePreferenceController); } @Override Loading Loading @@ -210,6 +219,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment mPrivacyPreference.setLayoutResource( com.android.settingslib.widget.preference.footer.R.layout.preference_footer); FeatureFactory.getFeatureFactory().getDisplayFeatureProvider() .addToScreen(mAdditionalTogglePreferenceController, screen); if (isScreenAttentionAvailable(getContext())) { mAdaptiveSleepPermissionController.addToScreen(screen); mAdaptiveSleepCameraStatePreferenceController.addToScreen(screen); Loading
src/com/android/settings/overlay/FeatureFactory.kt +6 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.settings.connecteddevice.stylus.StylusFeatureProvider import com.android.settings.dashboard.DashboardFeatureProvider import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider import com.android.settings.display.DisplayFeatureProvider import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider import com.android.settings.fuelgauge.BatterySettingsFeatureProvider import com.android.settings.fuelgauge.BatteryStatusFeatureProvider Loading Loading @@ -176,6 +177,11 @@ abstract class FeatureFactory { */ abstract val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider /** * Gets implementation for Display feature. */ abstract val displayFeatureProvider: DisplayFeatureProvider companion object { private var _factory: FeatureFactory? = null Loading
src/com/android/settings/overlay/FeatureFactoryImpl.kt +5 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,8 @@ import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProviderImpl import com.android.settings.display.DisplayFeatureProvider import com.android.settings.display.DisplayFeatureProviderImpl import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl import com.android.settings.fuelgauge.BatterySettingsFeatureProviderImpl import com.android.settings.fuelgauge.BatteryStatusFeatureProviderImpl Loading Loading @@ -190,4 +192,7 @@ open class FeatureFactoryImpl : FeatureFactory() { override val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider by lazy { PrivateSpaceLoginFeatureProviderImpl() } override val displayFeatureProvider: DisplayFeatureProvider by lazy { DisplayFeatureProviderImpl() } }