Loading packages/SystemUI/proguard.flags +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ -keep class com.android.systemui.statusbar.tv.TvStatusBar -keep class com.android.systemui.car.CarSystemUIFactory -keep class com.android.systemui.SystemUIFactory -keep class * extends com.android.systemui.SystemUI -keepclassmembers class ** { public void onBusEvent(**); Loading packages/SystemUI/res/values/config.xml +33 −0 Original line number Diff line number Diff line Loading @@ -316,6 +316,39 @@ <!-- SystemUIFactory component --> <string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.SystemUIFactory</string> <!-- SystemUI Services: The classes of the stuff to start. --> <string-array name="config_systemUIServiceComponents" translatable="false"> <item>com.android.systemui.Dependency</item> <item>com.android.systemui.util.NotificationChannels</item> <item>com.android.systemui.statusbar.CommandQueue$CommandQueueStart</item> <item>com.android.systemui.keyguard.KeyguardViewMediator</item> <item>com.android.systemui.recents.Recents</item> <item>com.android.systemui.volume.VolumeUI</item> <item>com.android.systemui.stackdivider.Divider</item> <item>com.android.systemui.SystemBars</item> <item>com.android.systemui.usb.StorageNotification</item> <item>com.android.systemui.power.PowerUI</item> <item>com.android.systemui.media.RingtonePlayer</item> <item>com.android.systemui.keyboard.KeyboardUI</item> <item>com.android.systemui.pip.PipUI</item> <item>com.android.systemui.shortcut.ShortcutKeyDispatcher</item> <item>@string/config_systemUIVendorServiceComponent</item> <item>com.android.systemui.util.leak.GarbageMonitor$Service</item> <item>com.android.systemui.LatencyTester</item> <item>com.android.systemui.globalactions.GlobalActionsComponent</item> <item>com.android.systemui.RoundedCorners</item> </string-array> <!-- SystemUI vender service, used in config_systemUIServiceComponents. --> <string name="config_systemUIVendorServiceComponent" translatable="false">com.android.systemui.VendorServices</string> <!-- SystemUI Services (per user): The classes of the stuff to start for each user. This is a subset of the config_systemUIServiceComponents --> <string-array name="config_systemUIServiceComponentsPerUser" translatable="false"> <item>com.android.systemui.Dependency</item> <item>com.android.systemui.util.NotificationChannels</item> <item>com.android.systemui.recents.Recents</item> </string-array> <!-- Nav bar button default ordering/layout --> <string name="config_navBarLayout" translatable="false">left[.5W],back[1WC];home;recent[1WC],right[.5W]</string> Loading packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +19 −47 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import com.android.systemui.util.NotificationChannels; import com.android.systemui.util.leak.GarbageMonitor; import com.android.systemui.volume.VolumeUI; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; Loading @@ -65,45 +66,10 @@ public class SystemUIApplication extends Application implements SysUiServiceProv private static final String TAG = "SystemUIService"; private static final boolean DEBUG = false; /** * The classes of the stuff to start. */ private final Class<?>[] SERVICES = new Class[] { Dependency.class, NotificationChannels.class, CommandQueue.CommandQueueStart.class, KeyguardViewMediator.class, Recents.class, VolumeUI.class, Divider.class, SystemBars.class, StorageNotification.class, PowerUI.class, RingtonePlayer.class, KeyboardUI.class, PipUI.class, ShortcutKeyDispatcher.class, VendorServices.class, GarbageMonitor.Service.class, LatencyTester.class, GlobalActionsComponent.class, RoundedCorners.class, }; /** * The classes of the stuff to start for each user. This is a subset of the services listed * above. */ private final Class<?>[] SERVICES_PER_USER = new Class[] { Dependency.class, NotificationChannels.class, Recents.class }; /** * Hold a reference on the stuff we start. */ private final SystemUI[] mServices = new SystemUI[SERVICES.length]; private SystemUI[] mServices; private boolean mServicesStarted; private boolean mBootCompleted; private final Map<Class<?>, Object> mComponents = new HashMap<>(); Loading Loading @@ -149,7 +115,7 @@ public class SystemUIApplication extends Application implements SysUiServiceProv // been broadcasted on startup for the primary SystemUI process. Instead, for // components which require the SystemUI component to be initialized per-user, we // start those components now for the current non-system user. startServicesIfNeeded(SERVICES_PER_USER); startSecondaryUserServicesIfNeeded(); } } Loading @@ -161,7 +127,8 @@ public class SystemUIApplication extends Application implements SysUiServiceProv */ public void startServicesIfNeeded() { startServicesIfNeeded(SERVICES); String[] names = getResources().getStringArray(R.array.config_systemUIServiceComponents); startServicesIfNeeded(names); } /** Loading @@ -171,13 +138,16 @@ public class SystemUIApplication extends Application implements SysUiServiceProv * <p>This method must only be called from the main thread.</p> */ void startSecondaryUserServicesIfNeeded() { startServicesIfNeeded(SERVICES_PER_USER); String[] names = getResources().getStringArray(R.array.config_systemUIServiceComponentsPerUser); startServicesIfNeeded(names); } private void startServicesIfNeeded(Class<?>[] services) { private void startServicesIfNeeded(String[] services) { if (mServicesStarted) { return; } mServices = new SystemUI[services.length]; if (!mBootCompleted) { // check to see if maybe it was already completed long before we began Loading @@ -195,14 +165,16 @@ public class SystemUIApplication extends Application implements SysUiServiceProv log.traceBegin("StartServices"); final int N = services.length; for (int i = 0; i < N; i++) { Class<?> cl = services[i]; if (DEBUG) Log.d(TAG, "loading: " + cl); log.traceBegin("StartServices" + cl.getSimpleName()); String clsName = services[i]; if (DEBUG) Log.d(TAG, "loading: " + clsName); log.traceBegin("StartServices" + clsName); long ti = System.currentTimeMillis(); Class cls; try { Object newService = SystemUIFactory.getInstance().createInstance(cl); mServices[i] = (SystemUI) ((newService == null) ? cl.newInstance() : newService); cls = Class.forName(clsName); mServices[i] = (SystemUI) cls.newInstance(); } catch(ClassNotFoundException ex){ throw new RuntimeException(ex); } catch (IllegalAccessException ex) { throw new RuntimeException(ex); } catch (InstantiationException ex) { Loading @@ -218,7 +190,7 @@ public class SystemUIApplication extends Application implements SysUiServiceProv // Warn if initialization of component takes too long ti = System.currentTimeMillis() - ti; if (ti > 1000) { Log.w(TAG, "Initialization of " + cl.getName() + " took " + ti + " ms"); Log.w(TAG, "Initialization of " + cls.getName() + " took " + ti + " ms"); } if (mBootCompleted) { mServices[i].onBootCompleted(); Loading packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +0 −4 Original line number Diff line number Diff line Loading @@ -109,10 +109,6 @@ public class SystemUIFactory { return new QSTileHost(context, statusBar, iconController); } public <T> T createInstance(Class<T> classType) { return null; } public void injectDependencies(ArrayMap<Object, DependencyProvider> providers, Context context) { providers.put(NotificationLockscreenUserManager.class, Loading Loading
packages/SystemUI/proguard.flags +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ -keep class com.android.systemui.statusbar.tv.TvStatusBar -keep class com.android.systemui.car.CarSystemUIFactory -keep class com.android.systemui.SystemUIFactory -keep class * extends com.android.systemui.SystemUI -keepclassmembers class ** { public void onBusEvent(**); Loading
packages/SystemUI/res/values/config.xml +33 −0 Original line number Diff line number Diff line Loading @@ -316,6 +316,39 @@ <!-- SystemUIFactory component --> <string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.SystemUIFactory</string> <!-- SystemUI Services: The classes of the stuff to start. --> <string-array name="config_systemUIServiceComponents" translatable="false"> <item>com.android.systemui.Dependency</item> <item>com.android.systemui.util.NotificationChannels</item> <item>com.android.systemui.statusbar.CommandQueue$CommandQueueStart</item> <item>com.android.systemui.keyguard.KeyguardViewMediator</item> <item>com.android.systemui.recents.Recents</item> <item>com.android.systemui.volume.VolumeUI</item> <item>com.android.systemui.stackdivider.Divider</item> <item>com.android.systemui.SystemBars</item> <item>com.android.systemui.usb.StorageNotification</item> <item>com.android.systemui.power.PowerUI</item> <item>com.android.systemui.media.RingtonePlayer</item> <item>com.android.systemui.keyboard.KeyboardUI</item> <item>com.android.systemui.pip.PipUI</item> <item>com.android.systemui.shortcut.ShortcutKeyDispatcher</item> <item>@string/config_systemUIVendorServiceComponent</item> <item>com.android.systemui.util.leak.GarbageMonitor$Service</item> <item>com.android.systemui.LatencyTester</item> <item>com.android.systemui.globalactions.GlobalActionsComponent</item> <item>com.android.systemui.RoundedCorners</item> </string-array> <!-- SystemUI vender service, used in config_systemUIServiceComponents. --> <string name="config_systemUIVendorServiceComponent" translatable="false">com.android.systemui.VendorServices</string> <!-- SystemUI Services (per user): The classes of the stuff to start for each user. This is a subset of the config_systemUIServiceComponents --> <string-array name="config_systemUIServiceComponentsPerUser" translatable="false"> <item>com.android.systemui.Dependency</item> <item>com.android.systemui.util.NotificationChannels</item> <item>com.android.systemui.recents.Recents</item> </string-array> <!-- Nav bar button default ordering/layout --> <string name="config_navBarLayout" translatable="false">left[.5W],back[1WC];home;recent[1WC],right[.5W]</string> Loading
packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +19 −47 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import com.android.systemui.util.NotificationChannels; import com.android.systemui.util.leak.GarbageMonitor; import com.android.systemui.volume.VolumeUI; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; Loading @@ -65,45 +66,10 @@ public class SystemUIApplication extends Application implements SysUiServiceProv private static final String TAG = "SystemUIService"; private static final boolean DEBUG = false; /** * The classes of the stuff to start. */ private final Class<?>[] SERVICES = new Class[] { Dependency.class, NotificationChannels.class, CommandQueue.CommandQueueStart.class, KeyguardViewMediator.class, Recents.class, VolumeUI.class, Divider.class, SystemBars.class, StorageNotification.class, PowerUI.class, RingtonePlayer.class, KeyboardUI.class, PipUI.class, ShortcutKeyDispatcher.class, VendorServices.class, GarbageMonitor.Service.class, LatencyTester.class, GlobalActionsComponent.class, RoundedCorners.class, }; /** * The classes of the stuff to start for each user. This is a subset of the services listed * above. */ private final Class<?>[] SERVICES_PER_USER = new Class[] { Dependency.class, NotificationChannels.class, Recents.class }; /** * Hold a reference on the stuff we start. */ private final SystemUI[] mServices = new SystemUI[SERVICES.length]; private SystemUI[] mServices; private boolean mServicesStarted; private boolean mBootCompleted; private final Map<Class<?>, Object> mComponents = new HashMap<>(); Loading Loading @@ -149,7 +115,7 @@ public class SystemUIApplication extends Application implements SysUiServiceProv // been broadcasted on startup for the primary SystemUI process. Instead, for // components which require the SystemUI component to be initialized per-user, we // start those components now for the current non-system user. startServicesIfNeeded(SERVICES_PER_USER); startSecondaryUserServicesIfNeeded(); } } Loading @@ -161,7 +127,8 @@ public class SystemUIApplication extends Application implements SysUiServiceProv */ public void startServicesIfNeeded() { startServicesIfNeeded(SERVICES); String[] names = getResources().getStringArray(R.array.config_systemUIServiceComponents); startServicesIfNeeded(names); } /** Loading @@ -171,13 +138,16 @@ public class SystemUIApplication extends Application implements SysUiServiceProv * <p>This method must only be called from the main thread.</p> */ void startSecondaryUserServicesIfNeeded() { startServicesIfNeeded(SERVICES_PER_USER); String[] names = getResources().getStringArray(R.array.config_systemUIServiceComponentsPerUser); startServicesIfNeeded(names); } private void startServicesIfNeeded(Class<?>[] services) { private void startServicesIfNeeded(String[] services) { if (mServicesStarted) { return; } mServices = new SystemUI[services.length]; if (!mBootCompleted) { // check to see if maybe it was already completed long before we began Loading @@ -195,14 +165,16 @@ public class SystemUIApplication extends Application implements SysUiServiceProv log.traceBegin("StartServices"); final int N = services.length; for (int i = 0; i < N; i++) { Class<?> cl = services[i]; if (DEBUG) Log.d(TAG, "loading: " + cl); log.traceBegin("StartServices" + cl.getSimpleName()); String clsName = services[i]; if (DEBUG) Log.d(TAG, "loading: " + clsName); log.traceBegin("StartServices" + clsName); long ti = System.currentTimeMillis(); Class cls; try { Object newService = SystemUIFactory.getInstance().createInstance(cl); mServices[i] = (SystemUI) ((newService == null) ? cl.newInstance() : newService); cls = Class.forName(clsName); mServices[i] = (SystemUI) cls.newInstance(); } catch(ClassNotFoundException ex){ throw new RuntimeException(ex); } catch (IllegalAccessException ex) { throw new RuntimeException(ex); } catch (InstantiationException ex) { Loading @@ -218,7 +190,7 @@ public class SystemUIApplication extends Application implements SysUiServiceProv // Warn if initialization of component takes too long ti = System.currentTimeMillis() - ti; if (ti > 1000) { Log.w(TAG, "Initialization of " + cl.getName() + " took " + ti + " ms"); Log.w(TAG, "Initialization of " + cls.getName() + " took " + ti + " ms"); } if (mBootCompleted) { mServices[i].onBootCompleted(); Loading
packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +0 −4 Original line number Diff line number Diff line Loading @@ -109,10 +109,6 @@ public class SystemUIFactory { return new QSTileHost(context, statusBar, iconController); } public <T> T createInstance(Class<T> classType) { return null; } public void injectDependencies(ArrayMap<Object, DependencyProvider> providers, Context context) { providers.put(NotificationLockscreenUserManager.class, Loading