Disable initializing wm component for non-primary sysui process

Bug: 171278064
Test: Create another user and switch to/from the new user
Change-Id: If399fb6a8d36617abc4e900902dd5dd5269ddb8c
This commit is contained in:
Winson Chung
2020-10-20 09:18:35 -07:00
parent ec72f9996b
commit 67df94588d

View File

@@ -85,10 +85,12 @@ public class SystemUIFactory {
@VisibleForTesting
public void init(Context context, boolean fromTest)
throws ExecutionException, InterruptedException {
final boolean initializeComponents = !fromTest
&& android.os.Process.myUserHandle().isSystem();
mRootComponent = buildGlobalRootComponent(context);
// Stand up WMComponent
mWMComponent = mRootComponent.getWMComponentBuilder().build();
if (!fromTest) {
if (initializeComponents) {
// Only initialize when not starting from tests since this currently initializes some
// components that shouldn't be run in the test environment
mWMComponent.init();
@@ -96,7 +98,7 @@ public class SystemUIFactory {
// And finally, retrieve whatever SysUI needs from WMShell and build SysUI.
SysUIComponent.Builder builder = mRootComponent.getSysUIComponent();
if (!fromTest) {
if (initializeComponents) {
// Only initialize when not starting from tests since this currently initializes some
// components that shouldn't be run in the test environment
builder = builder.setPip(mWMComponent.getPip())
@@ -111,7 +113,7 @@ public class SystemUIFactory {
.setInputConsumerController(mWMComponent.getInputConsumerController())
.setShellTaskOrganizer(mWMComponent.getShellTaskOrganizer())
.build();
if (!fromTest) {
if (initializeComponents) {
mSysUIComponent.init();
}