final long ident = Binder.clearCallingIdentity();
try {
final int currentUserId = mUserController.getCurrentUserIdLocked();
- startHomeActivityLocked(currentUserId, "notifyProfileLocked");
+ // 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);
+ }
+ }
} finally {
Binder.restoreCallingIdentity(ident);
}
import static com.android.server.am.ActivityManagerService.USER_SWITCH_TIMEOUT_MSG;
import android.annotation.NonNull;
+import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.Dialog;
return km.isDeviceLocked(userId);
}
+ boolean isLockScreenDisabled(@UserIdInt int userId) {
+ return mLockPatternUtils.isLockScreenDisabled(userId);
+ }
+
void dump(PrintWriter pw, boolean dumpAll) {
pw.println(" mStartedUsers:");
for (int i = 0; i < mStartedUsers.size(); i++) {