Loading packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +4 −4 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ import com.android.systemui.dagger.SysUIComponent; import com.android.systemui.dump.DumpManager; import com.android.systemui.process.ProcessWrapper; import com.android.systemui.res.R; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.util.NotificationChannels; import java.lang.reflect.InvocationTargetException; Loading Loading @@ -454,13 +454,13 @@ public class SystemUIApplication extends Application implements @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { if (mServicesStarted) { ConfigurationController configController = mSysUIComponent.getConfigurationController(); ConfigurationForwarder configForwarder = mSysUIComponent.getConfigurationForwarder(); if (Trace.isEnabled()) { Trace.traceBegin( Trace.TRACE_TAG_APP, configController.getClass().getSimpleName() + ".onConfigurationChanged()"); configForwarder.getClass().getSimpleName() + ".onConfigurationChanged()"); } configController.onConfigurationChanged(newConfig); configForwarder.onConfigurationChanged(newConfig); Trace.endSection(); } } Loading packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java +9 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.systemui.people.PeopleProvider; import com.android.systemui.startable.Dependencies; import com.android.systemui.statusbar.NotificationInsetsModule; import com.android.systemui.statusbar.QsFrameTranslateModule; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.bubbles.Bubbles; Loading Loading @@ -125,12 +126,19 @@ public interface SysUIComponent { BootCompleteCacheImpl provideBootCacheImpl(); /** * Creates a ContextComponentHelper. * Creates a ConfigurationController. */ @SysUISingleton @GlobalConfig ConfigurationController getConfigurationController(); /** * Creates a ConfigurationForwarder. */ @SysUISingleton @GlobalConfig ConfigurationForwarder getConfigurationForwarder(); /** * Creates a ContextComponentHelper. */ Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ConfigurationForwarder.kt 0 → 100644 +31 −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.systemui.statusbar.phone import android.content.res.Configuration /** * Used to forward a configuration change to other components. * * This is commonly used to propagate configs to [ConfigurationController]. Note that there could be * different configuration forwarder, for example each display, window or group of classes (e.g. * shade window classes). */ interface ConfigurationForwarder { /** Should be called when a new configuration is received. */ fun onConfigurationChanged(newConfiguration: Configuration) } packages/SystemUI/src/com/android/systemui/statusbar/policy/ConfigurationController.java +3 −4 Original line number Diff line number Diff line Loading @@ -16,16 +16,15 @@ package com.android.systemui.statusbar.policy; import android.content.res.Configuration; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; /** * Common listener for configuration or subsets of configuration changes (like density or * font scaling), providing easy static dependence on these events. */ public interface ConfigurationController extends CallbackController<ConfigurationListener> { /** Alert controller of a change in the configuration. */ void onConfigurationChanged(Configuration newConfiguration); public interface ConfigurationController extends CallbackController<ConfigurationListener>, ConfigurationForwarder { /** Alert controller of a change in between light and dark themes. */ void notifyThemeChanged(); Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java +8 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import com.android.systemui.statusbar.connectivity.NetworkController; import com.android.systemui.statusbar.connectivity.NetworkControllerImpl; import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory; import com.android.systemui.statusbar.phone.ConfigurationControllerImpl; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.BatteryControllerLogger; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.BluetoothControllerImpl; Loading Loading @@ -185,6 +186,13 @@ public interface StatusBarPolicyModule { DevicePostureController provideDevicePostureController( DevicePostureControllerImpl devicePostureControllerImpl); /** */ @Binds @SysUISingleton @GlobalConfig ConfigurationForwarder provideGlobalConfigurationForwarder( @GlobalConfig ConfigurationController configurationController); /** */ @Provides @SysUISingleton Loading Loading
packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +4 −4 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ import com.android.systemui.dagger.SysUIComponent; import com.android.systemui.dump.DumpManager; import com.android.systemui.process.ProcessWrapper; import com.android.systemui.res.R; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.util.NotificationChannels; import java.lang.reflect.InvocationTargetException; Loading Loading @@ -454,13 +454,13 @@ public class SystemUIApplication extends Application implements @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { if (mServicesStarted) { ConfigurationController configController = mSysUIComponent.getConfigurationController(); ConfigurationForwarder configForwarder = mSysUIComponent.getConfigurationForwarder(); if (Trace.isEnabled()) { Trace.traceBegin( Trace.TRACE_TAG_APP, configController.getClass().getSimpleName() + ".onConfigurationChanged()"); configForwarder.getClass().getSimpleName() + ".onConfigurationChanged()"); } configController.onConfigurationChanged(newConfig); configForwarder.onConfigurationChanged(newConfig); Trace.endSection(); } } Loading
packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java +9 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.systemui.people.PeopleProvider; import com.android.systemui.startable.Dependencies; import com.android.systemui.statusbar.NotificationInsetsModule; import com.android.systemui.statusbar.QsFrameTranslateModule; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.bubbles.Bubbles; Loading Loading @@ -125,12 +126,19 @@ public interface SysUIComponent { BootCompleteCacheImpl provideBootCacheImpl(); /** * Creates a ContextComponentHelper. * Creates a ConfigurationController. */ @SysUISingleton @GlobalConfig ConfigurationController getConfigurationController(); /** * Creates a ConfigurationForwarder. */ @SysUISingleton @GlobalConfig ConfigurationForwarder getConfigurationForwarder(); /** * Creates a ContextComponentHelper. */ Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ConfigurationForwarder.kt 0 → 100644 +31 −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.systemui.statusbar.phone import android.content.res.Configuration /** * Used to forward a configuration change to other components. * * This is commonly used to propagate configs to [ConfigurationController]. Note that there could be * different configuration forwarder, for example each display, window or group of classes (e.g. * shade window classes). */ interface ConfigurationForwarder { /** Should be called when a new configuration is received. */ fun onConfigurationChanged(newConfiguration: Configuration) }
packages/SystemUI/src/com/android/systemui/statusbar/policy/ConfigurationController.java +3 −4 Original line number Diff line number Diff line Loading @@ -16,16 +16,15 @@ package com.android.systemui.statusbar.policy; import android.content.res.Configuration; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; /** * Common listener for configuration or subsets of configuration changes (like density or * font scaling), providing easy static dependence on these events. */ public interface ConfigurationController extends CallbackController<ConfigurationListener> { /** Alert controller of a change in the configuration. */ void onConfigurationChanged(Configuration newConfiguration); public interface ConfigurationController extends CallbackController<ConfigurationListener>, ConfigurationForwarder { /** Alert controller of a change in between light and dark themes. */ void notifyThemeChanged(); Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java +8 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import com.android.systemui.statusbar.connectivity.NetworkController; import com.android.systemui.statusbar.connectivity.NetworkControllerImpl; import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory; import com.android.systemui.statusbar.phone.ConfigurationControllerImpl; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.BatteryControllerLogger; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.BluetoothControllerImpl; Loading Loading @@ -185,6 +186,13 @@ public interface StatusBarPolicyModule { DevicePostureController provideDevicePostureController( DevicePostureControllerImpl devicePostureControllerImpl); /** */ @Binds @SysUISingleton @GlobalConfig ConfigurationForwarder provideGlobalConfigurationForwarder( @GlobalConfig ConfigurationController configurationController); /** */ @Provides @SysUISingleton Loading