Loading packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +4 −4 Original line number Original line 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.dump.DumpManager; import com.android.systemui.process.ProcessWrapper; import com.android.systemui.process.ProcessWrapper; import com.android.systemui.res.R; 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 com.android.systemui.util.NotificationChannels; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException; Loading Loading @@ -454,13 +454,13 @@ public class SystemUIApplication extends Application implements @Override @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { public void onConfigurationChanged(@NonNull Configuration newConfig) { if (mServicesStarted) { if (mServicesStarted) { ConfigurationController configController = mSysUIComponent.getConfigurationController(); ConfigurationForwarder configForwarder = mSysUIComponent.getConfigurationForwarder(); if (Trace.isEnabled()) { if (Trace.isEnabled()) { Trace.traceBegin( Trace.traceBegin( Trace.TRACE_TAG_APP, Trace.TRACE_TAG_APP, configController.getClass().getSimpleName() + ".onConfigurationChanged()"); configForwarder.getClass().getSimpleName() + ".onConfigurationChanged()"); } } configController.onConfigurationChanged(newConfig); configForwarder.onConfigurationChanged(newConfig); Trace.endSection(); Trace.endSection(); } } } } Loading packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java +9 −1 Original line number Original line 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.startable.Dependencies; import com.android.systemui.statusbar.NotificationInsetsModule; import com.android.systemui.statusbar.NotificationInsetsModule; import com.android.systemui.statusbar.QsFrameTranslateModule; import com.android.systemui.statusbar.QsFrameTranslateModule; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.bubbles.Bubbles; import com.android.wm.shell.bubbles.Bubbles; Loading Loading @@ -125,12 +126,19 @@ public interface SysUIComponent { BootCompleteCacheImpl provideBootCacheImpl(); BootCompleteCacheImpl provideBootCacheImpl(); /** /** * Creates a ContextComponentHelper. * Creates a ConfigurationController. */ */ @SysUISingleton @SysUISingleton @GlobalConfig @GlobalConfig ConfigurationController getConfigurationController(); ConfigurationController getConfigurationController(); /** * Creates a ConfigurationForwarder. */ @SysUISingleton @GlobalConfig ConfigurationForwarder getConfigurationForwarder(); /** /** * Creates a ContextComponentHelper. * Creates a ContextComponentHelper. */ */ Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ConfigurationForwarder.kt 0 → 100644 +31 −0 Original line number Original line 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 Original line Diff line number Diff line Loading @@ -16,16 +16,15 @@ package com.android.systemui.statusbar.policy; import android.content.res.Configuration; import android.content.res.Configuration; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; /** /** * Common listener for configuration or subsets of configuration changes (like density or * Common listener for configuration or subsets of configuration changes (like density or * font scaling), providing easy static dependence on these events. * font scaling), providing easy static dependence on these events. */ */ public interface ConfigurationController extends CallbackController<ConfigurationListener> { public interface ConfigurationController extends CallbackController<ConfigurationListener>, ConfigurationForwarder { /** Alert controller of a change in the configuration. */ void onConfigurationChanged(Configuration newConfiguration); /** Alert controller of a change in between light and dark themes. */ /** Alert controller of a change in between light and dark themes. */ void notifyThemeChanged(); void notifyThemeChanged(); Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java +8 −0 Original line number Original line 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.NetworkControllerImpl; import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory; import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory; import com.android.systemui.statusbar.phone.ConfigurationControllerImpl; 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.BatteryControllerLogger; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.BluetoothControllerImpl; import com.android.systemui.statusbar.policy.BluetoothControllerImpl; Loading Loading @@ -185,6 +186,13 @@ public interface StatusBarPolicyModule { DevicePostureController provideDevicePostureController( DevicePostureController provideDevicePostureController( DevicePostureControllerImpl devicePostureControllerImpl); DevicePostureControllerImpl devicePostureControllerImpl); /** */ @Binds @SysUISingleton @GlobalConfig ConfigurationForwarder provideGlobalConfigurationForwarder( @GlobalConfig ConfigurationController configurationController); /** */ /** */ @Provides @Provides @SysUISingleton @SysUISingleton Loading Loading
packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +4 −4 Original line number Original line 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.dump.DumpManager; import com.android.systemui.process.ProcessWrapper; import com.android.systemui.process.ProcessWrapper; import com.android.systemui.res.R; 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 com.android.systemui.util.NotificationChannels; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException; Loading Loading @@ -454,13 +454,13 @@ public class SystemUIApplication extends Application implements @Override @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { public void onConfigurationChanged(@NonNull Configuration newConfig) { if (mServicesStarted) { if (mServicesStarted) { ConfigurationController configController = mSysUIComponent.getConfigurationController(); ConfigurationForwarder configForwarder = mSysUIComponent.getConfigurationForwarder(); if (Trace.isEnabled()) { if (Trace.isEnabled()) { Trace.traceBegin( Trace.traceBegin( Trace.TRACE_TAG_APP, Trace.TRACE_TAG_APP, configController.getClass().getSimpleName() + ".onConfigurationChanged()"); configForwarder.getClass().getSimpleName() + ".onConfigurationChanged()"); } } configController.onConfigurationChanged(newConfig); configForwarder.onConfigurationChanged(newConfig); Trace.endSection(); Trace.endSection(); } } } } Loading
packages/SystemUI/src/com/android/systemui/dagger/SysUIComponent.java +9 −1 Original line number Original line 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.startable.Dependencies; import com.android.systemui.statusbar.NotificationInsetsModule; import com.android.systemui.statusbar.NotificationInsetsModule; import com.android.systemui.statusbar.QsFrameTranslateModule; import com.android.systemui.statusbar.QsFrameTranslateModule; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.bubbles.Bubbles; import com.android.wm.shell.bubbles.Bubbles; Loading Loading @@ -125,12 +126,19 @@ public interface SysUIComponent { BootCompleteCacheImpl provideBootCacheImpl(); BootCompleteCacheImpl provideBootCacheImpl(); /** /** * Creates a ContextComponentHelper. * Creates a ConfigurationController. */ */ @SysUISingleton @SysUISingleton @GlobalConfig @GlobalConfig ConfigurationController getConfigurationController(); ConfigurationController getConfigurationController(); /** * Creates a ConfigurationForwarder. */ @SysUISingleton @GlobalConfig ConfigurationForwarder getConfigurationForwarder(); /** /** * Creates a ContextComponentHelper. * Creates a ContextComponentHelper. */ */ Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ConfigurationForwarder.kt 0 → 100644 +31 −0 Original line number Original line 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 Original line Diff line number Diff line Loading @@ -16,16 +16,15 @@ package com.android.systemui.statusbar.policy; import android.content.res.Configuration; import android.content.res.Configuration; import com.android.systemui.statusbar.phone.ConfigurationForwarder; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; /** /** * Common listener for configuration or subsets of configuration changes (like density or * Common listener for configuration or subsets of configuration changes (like density or * font scaling), providing easy static dependence on these events. * font scaling), providing easy static dependence on these events. */ */ public interface ConfigurationController extends CallbackController<ConfigurationListener> { public interface ConfigurationController extends CallbackController<ConfigurationListener>, ConfigurationForwarder { /** Alert controller of a change in the configuration. */ void onConfigurationChanged(Configuration newConfiguration); /** Alert controller of a change in between light and dark themes. */ /** Alert controller of a change in between light and dark themes. */ void notifyThemeChanged(); void notifyThemeChanged(); Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java +8 −0 Original line number Original line 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.NetworkControllerImpl; import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory; import com.android.systemui.statusbar.connectivity.WifiPickerTrackerFactory; import com.android.systemui.statusbar.phone.ConfigurationControllerImpl; 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.BatteryControllerLogger; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.BluetoothControllerImpl; import com.android.systemui.statusbar.policy.BluetoothControllerImpl; Loading Loading @@ -185,6 +186,13 @@ public interface StatusBarPolicyModule { DevicePostureController provideDevicePostureController( DevicePostureController provideDevicePostureController( DevicePostureControllerImpl devicePostureControllerImpl); DevicePostureControllerImpl devicePostureControllerImpl); /** */ @Binds @SysUISingleton @GlobalConfig ConfigurationForwarder provideGlobalConfigurationForwarder( @GlobalConfig ConfigurationController configurationController); /** */ /** */ @Provides @Provides @SysUISingleton @SysUISingleton Loading