Loading services/core/java/com/android/server/am/ActivityManagerService.java +8 −10 Original line number Diff line number Diff line Loading @@ -11422,18 +11422,16 @@ public final class ActivityManagerService extends ActivityManagerNative try { final int currentUserId = mUserController.getCurrentUserIdLocked(); // Get the focused task before launching launcher. final int taskId = (mFocusedActivity == null) ? -1 : mFocusedActivity.task.taskId; startHomeActivityLocked(currentUserId, "notifyLockedProfile"); if (mUserController.isLockScreenDisabled(currentUserId)) { // If there is no device lock, we first go to launcher and then resume the // original task. Work challenge will be shown because we intercepted // startActivityFromRecentsInner and the reason why we switch to home stack // first is to prevent pressing back button brings user back to the work // app. if (taskId != -1) { startActivityFromRecentsInner(taskId, null); // If there is no device lock, we will show the profile's credential page. // startActivityFromRecentsInner is intercepted and will forward user to it. if (mFocusedActivity != null) { startActivityFromRecentsInner(mFocusedActivity.task.taskId, null); } } else { // Showing launcher to avoid user entering credential twice. startHomeActivityLocked(currentUserId, "notifyLockedProfile"); } } finally { Binder.restoreCallingIdentity(ident); Loading services/core/java/com/android/server/am/ActivityStartInterceptor.java +3 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static android.content.Intent.EXTRA_PACKAGE_NAME; import static android.content.Intent.EXTRA_TASK_ID; import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME; import static android.content.pm.ApplicationInfo.FLAG_SUSPENDED; import android.app.KeyguardManager; Loading Loading @@ -192,14 +193,14 @@ class ActivityStartInterceptor { Binder.getCallingUid(), userId, null, null, 0, new Intent[]{ intent }, new String[]{ resolvedType }, FLAG_CANCEL_CURRENT | FLAG_ONE_SHOT | FLAG_IMMUTABLE, null); final int flags = intent.getFlags(); final KeyguardManager km = (KeyguardManager) mService.mContext .getSystemService(KEYGUARD_SERVICE); final Intent newIntent = km.createConfirmDeviceCredentialIntent(null, null, userId); if (newIntent == null) { return null; } newIntent.setFlags(flags | FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); newIntent.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | FLAG_ACTIVITY_TASK_ON_HOME); newIntent.putExtra(EXTRA_PACKAGE_NAME, aInfo.packageName); newIntent.putExtra(EXTRA_INTENT, new IntentSender(target)); return newIntent; Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +8 −10 Original line number Diff line number Diff line Loading @@ -11422,18 +11422,16 @@ public final class ActivityManagerService extends ActivityManagerNative try { final int currentUserId = mUserController.getCurrentUserIdLocked(); // Get the focused task before launching launcher. final int taskId = (mFocusedActivity == null) ? -1 : mFocusedActivity.task.taskId; startHomeActivityLocked(currentUserId, "notifyLockedProfile"); if (mUserController.isLockScreenDisabled(currentUserId)) { // If there is no device lock, we first go to launcher and then resume the // original task. Work challenge will be shown because we intercepted // startActivityFromRecentsInner and the reason why we switch to home stack // first is to prevent pressing back button brings user back to the work // app. if (taskId != -1) { startActivityFromRecentsInner(taskId, null); // If there is no device lock, we will show the profile's credential page. // startActivityFromRecentsInner is intercepted and will forward user to it. if (mFocusedActivity != null) { startActivityFromRecentsInner(mFocusedActivity.task.taskId, null); } } else { // Showing launcher to avoid user entering credential twice. startHomeActivityLocked(currentUserId, "notifyLockedProfile"); } } finally { Binder.restoreCallingIdentity(ident); Loading
services/core/java/com/android/server/am/ActivityStartInterceptor.java +3 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import static android.content.Intent.EXTRA_PACKAGE_NAME; import static android.content.Intent.EXTRA_TASK_ID; import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME; import static android.content.pm.ApplicationInfo.FLAG_SUSPENDED; import android.app.KeyguardManager; Loading Loading @@ -192,14 +193,14 @@ class ActivityStartInterceptor { Binder.getCallingUid(), userId, null, null, 0, new Intent[]{ intent }, new String[]{ resolvedType }, FLAG_CANCEL_CURRENT | FLAG_ONE_SHOT | FLAG_IMMUTABLE, null); final int flags = intent.getFlags(); final KeyguardManager km = (KeyguardManager) mService.mContext .getSystemService(KEYGUARD_SERVICE); final Intent newIntent = km.createConfirmDeviceCredentialIntent(null, null, userId); if (newIntent == null) { return null; } newIntent.setFlags(flags | FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); newIntent.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | FLAG_ACTIVITY_TASK_ON_HOME); newIntent.putExtra(EXTRA_PACKAGE_NAME, aInfo.packageName); newIntent.putExtra(EXTRA_INTENT, new IntentSender(target)); return newIntent; Loading