Loading services/core/java/com/android/server/am/LockTaskController.java +24 −1 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import android.util.SparseArray; import android.util.SparseIntArray; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.policy.IKeyguardDismissCallback; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.widget.LockPatternUtils; import com.android.server.LocalServices; Loading Loading @@ -729,9 +730,31 @@ public class LockTaskController { } else if (lockTaskModeState == LOCK_TASK_MODE_LOCKED) { if (isKeyguardAllowed(userId)) { mWindowManager.reenableKeyguard(mToken); } else { // If keyguard is not secure and it is locked, dismiss the keyguard before // disabling it, which avoids the platform to think the keyguard is still on. if (mWindowManager.isKeyguardLocked() && !mWindowManager.isKeyguardSecure()) { mWindowManager.dismissKeyguard(new IKeyguardDismissCallback.Stub() { @Override public void onDismissError() throws RemoteException { Slog.i(TAG, "setKeyguardState: failed to dismiss keyguard"); } @Override public void onDismissSucceeded() throws RemoteException { mHandler.post( () -> mWindowManager.disableKeyguard(mToken, LOCK_TASK_TAG)); } @Override public void onDismissCancelled() throws RemoteException { Slog.i(TAG, "setKeyguardState: dismiss cancelled"); } }, null); } else { mWindowManager.disableKeyguard(mToken, LOCK_TASK_TAG); } } } else { // lockTaskModeState == LOCK_TASK_MODE_PINNED mWindowManager.disableKeyguard(mToken, LOCK_TASK_TAG); Loading Loading
services/core/java/com/android/server/am/LockTaskController.java +24 −1 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import android.util.SparseArray; import android.util.SparseIntArray; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.policy.IKeyguardDismissCallback; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.widget.LockPatternUtils; import com.android.server.LocalServices; Loading Loading @@ -729,9 +730,31 @@ public class LockTaskController { } else if (lockTaskModeState == LOCK_TASK_MODE_LOCKED) { if (isKeyguardAllowed(userId)) { mWindowManager.reenableKeyguard(mToken); } else { // If keyguard is not secure and it is locked, dismiss the keyguard before // disabling it, which avoids the platform to think the keyguard is still on. if (mWindowManager.isKeyguardLocked() && !mWindowManager.isKeyguardSecure()) { mWindowManager.dismissKeyguard(new IKeyguardDismissCallback.Stub() { @Override public void onDismissError() throws RemoteException { Slog.i(TAG, "setKeyguardState: failed to dismiss keyguard"); } @Override public void onDismissSucceeded() throws RemoteException { mHandler.post( () -> mWindowManager.disableKeyguard(mToken, LOCK_TASK_TAG)); } @Override public void onDismissCancelled() throws RemoteException { Slog.i(TAG, "setKeyguardState: dismiss cancelled"); } }, null); } else { mWindowManager.disableKeyguard(mToken, LOCK_TASK_TAG); } } } else { // lockTaskModeState == LOCK_TASK_MODE_PINNED mWindowManager.disableKeyguard(mToken, LOCK_TASK_TAG); Loading