diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 37f2c04778875..9034cc9369416 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -6285,7 +6285,10 @@ public final class Settings { public static final String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled"; /** - * Whether the device has been provisioned (0 = false, 1 = true) + * Whether the device has been provisioned (0 = false, 1 = true). + *

On a multiuser device with a separate system user, the screen may be locked + * as soon as this is set to true and further activities cannot be launched on the + * system user unless they are marked to show over keyguard. */ public static final String DEVICE_PROVISIONED = "device_provisioned"; diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 7ef5187bae6a8..eee685fe3e7a8 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -379,6 +379,13 @@ public class KeyguardViewMediator extends SystemUI { @Override public void onDeviceProvisioned() { sendUserPresentBroadcast(); + synchronized (KeyguardViewMediator.this) { + // If system user is provisioned, we might want to lock now to avoid showing launcher + if (UserManager.isSplitSystemUser() + && KeyguardUpdateMonitor.getCurrentUser() == UserHandle.USER_SYSTEM) { + doKeyguardLocked(null); + } + } } @Override