diff --git a/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java b/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java index 2c3f77f213..befeee0db9 100644 --- a/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java +++ b/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java @@ -16,17 +16,36 @@ package com.android.quickstep; import android.content.Context; +import android.content.pm.PackageManager; +import android.os.UserManager; +import android.util.Log; +import com.android.launcher3.BuildConfig; import com.android.launcher3.MainProcessInitializer; import com.android.systemui.shared.system.ThreadedRendererCompat; @SuppressWarnings("unused") public class QuickstepProcessInitializer extends MainProcessInitializer { + private static final String TAG = "QuickstepProcessInitializer"; + public QuickstepProcessInitializer(Context context) { } @Override protected void init(Context context) { + // Workaround for b/120550382, an external app can cause the launcher process to start for + // a work profile user which we do not support. Disable the application immediately when we + // detect this to be the case. + UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE); + if (um.isManagedProfile()) { + PackageManager pm = context.getPackageManager(); + pm.setApplicationEnabledSetting(context.getPackageName(), + PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0 /* flags */); + Log.w(TAG, "Disabling " + BuildConfig.APPLICATION_ID + + ", unable to run in a managed profile"); + return; + } + super.init(context); // Elevate GPU priority for Quickstep and Remote animations.