Merge "Disable Launcher when starting in a managed profile" into ub-launcher3-master
diff --git a/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java b/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java
index 2c3f77f..befeee0 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.