Loading core/java/android/app/ActivityOptions.java +14 −14 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.app; import static android.Manifest.permission.CONTROL_KEYGUARD; import static android.Manifest.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS; import static android.Manifest.permission.START_TASKS_FROM_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; Loading Loading @@ -413,8 +412,9 @@ public class ActivityOptions extends ComponentOptions { private static final String KEY_LAUNCH_INTO_PIP_PARAMS = "android.activity.launchIntoPipParams"; /** See {@link #setDismissKeyguard()}. */ private static final String KEY_DISMISS_KEYGUARD = "android.activity.dismissKeyguard"; /** See {@link #setDismissKeyguardIfInsecure()}. */ private static final String KEY_DISMISS_KEYGUARD_IF_INSECURE = "android.activity.dismissKeyguardIfInsecure"; private static final String KEY_PENDING_INTENT_CREATOR_BACKGROUND_ACTIVITY_START_MODE = "android.activity.pendingIntentCreatorBackgroundActivityStartMode"; Loading Loading @@ -519,7 +519,7 @@ public class ActivityOptions extends ComponentOptions { private boolean mLaunchedFromBubble; private boolean mTransientLaunch; private PictureInPictureParams mLaunchIntoPipParams; private boolean mDismissKeyguard; private boolean mDismissKeyguardIfInsecure; @BackgroundActivityStartMode private int mPendingIntentCreatorBackgroundActivityStartMode = MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED; Loading Loading @@ -1333,7 +1333,7 @@ public class ActivityOptions extends ComponentOptions { mLaunchIntoPipParams = opts.getParcelable(KEY_LAUNCH_INTO_PIP_PARAMS, android.app.PictureInPictureParams.class); mIsEligibleForLegacyPermissionPrompt = opts.getBoolean(KEY_LEGACY_PERMISSION_PROMPT_ELIGIBLE); mDismissKeyguard = opts.getBoolean(KEY_DISMISS_KEYGUARD); mDismissKeyguardIfInsecure = opts.getBoolean(KEY_DISMISS_KEYGUARD_IF_INSECURE); mPendingIntentCreatorBackgroundActivityStartMode = opts.getInt( KEY_PENDING_INTENT_CREATOR_BACKGROUND_ACTIVITY_START_MODE, MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED); Loading Loading @@ -2036,24 +2036,24 @@ public class ActivityOptions extends ComponentOptions { } /** * Sets whether the keyguard should go away when this activity launches. * Sets whether the insecure keyguard should go away when this activity launches. In case the * keyguard is secure, this option will be ignored. * * @see Activity#setShowWhenLocked(boolean) * @see android.R.attr#showWhenLocked * @hide */ @RequiresPermission(CONTROL_KEYGUARD) public void setDismissKeyguard() { mDismissKeyguard = true; public void setDismissKeyguardIfInsecure() { mDismissKeyguardIfInsecure = true; } /** * @see #setDismissKeyguard() * @see #setDismissKeyguardIfInsecure() * @return whether the insecure keyguard should go away when the activity launches. * @hide */ public boolean getDismissKeyguard() { return mDismissKeyguard; public boolean getDismissKeyguardIfInsecure() { return mDismissKeyguardIfInsecure; } /** Loading Loading @@ -2367,8 +2367,8 @@ public class ActivityOptions extends ComponentOptions { b.putBoolean(KEY_LEGACY_PERMISSION_PROMPT_ELIGIBLE, mIsEligibleForLegacyPermissionPrompt); } if (mDismissKeyguard) { b.putBoolean(KEY_DISMISS_KEYGUARD, mDismissKeyguard); if (mDismissKeyguardIfInsecure) { b.putBoolean(KEY_DISMISS_KEYGUARD_IF_INSECURE, mDismissKeyguardIfInsecure); } if (mPendingIntentCreatorBackgroundActivityStartMode != MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED) { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarterImpl.kt +1 −1 Original line number Diff line number Diff line Loading @@ -494,7 +494,7 @@ constructor( // this runnable is called right after the keyguard is solved, so we tell // WM that we should dismiss it to avoid flickers when opening an activity // that can also be shown over the keyguard. options.setDismissKeyguard() options.setDismissKeyguardIfInsecure() options.setDisallowEnterPictureInPictureWhileLaunching( disallowEnterPictureInPictureWhileLaunching ) Loading services/core/java/com/android/server/am/ActivityManagerShellCommand.java +5 −5 Original line number Diff line number Diff line Loading @@ -205,7 +205,7 @@ final class ActivityManagerShellCommand extends ShellCommand { private boolean mAsync; private BroadcastOptions mBroadcastOptions; private boolean mShowSplashScreen; private boolean mDismissKeyguard; private boolean mDismissKeyguardIfInsecure; final boolean mDumping; Loading Loading @@ -552,8 +552,8 @@ final class ActivityManagerShellCommand extends ShellCommand { mAsync = true; } else if (opt.equals("--splashscreen-show-icon")) { mShowSplashScreen = true; } else if (opt.equals("--dismiss-keyguard")) { mDismissKeyguard = true; } else if (opt.equals("--dismiss-keyguard-if-insecure")) { mDismissKeyguardIfInsecure = true; } else { return false; } Loading Loading @@ -714,11 +714,11 @@ final class ActivityManagerShellCommand extends ShellCommand { } options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_ICON); } if (mDismissKeyguard) { if (mDismissKeyguardIfInsecure) { if (options == null) { options = ActivityOptions.makeBasic(); } options.setDismissKeyguard(); options.setDismissKeyguardIfInsecure(); } if (mWaitOption) { result = mInternal.startActivityAndWait(null, SHELL_PACKAGE_NAME, null, intent, Loading services/core/java/com/android/server/wm/ActivityRecord.java +2 −2 Original line number Diff line number Diff line Loading @@ -913,7 +913,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A boolean mEnteringAnimation; boolean mOverrideTaskTransition; boolean mDismissKeyguard; boolean mDismissKeyguardIfInsecure; boolean mShareIdentity; /** True if the activity has reported stopped; False if the activity becomes visible. */ Loading Loading @@ -2098,7 +2098,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } mOverrideTaskTransition = options.getOverrideTaskTransition(); mDismissKeyguard = options.getDismissKeyguard(); mDismissKeyguardIfInsecure = options.getDismissKeyguardIfInsecure(); mShareIdentity = options.isShareIdentityEnabled(); } Loading services/core/java/com/android/server/wm/KeyguardController.java +4 −2 Original line number Diff line number Diff line Loading @@ -665,12 +665,14 @@ class KeyguardController { mTopTurnScreenOnActivity = top; } if (top.mDismissKeyguard && mKeyguardShowing) { final boolean isKeyguardSecure = controller.mWindowManager.isKeyguardSecure( controller.mService.getCurrentUserId()); if (top.mDismissKeyguardIfInsecure && mKeyguardShowing && !isKeyguardSecure) { mKeyguardGoingAway = true; } else if (top.canShowWhenLocked()) { mTopOccludesActivity = top; } top.mDismissKeyguard = false; top.mDismissKeyguardIfInsecure = false; // Only the top activity may control occluded, as we can't occlude the Keyguard // if the top app doesn't want to occlude it. Loading Loading
core/java/android/app/ActivityOptions.java +14 −14 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.app; import static android.Manifest.permission.CONTROL_KEYGUARD; import static android.Manifest.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS; import static android.Manifest.permission.START_TASKS_FROM_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; Loading Loading @@ -413,8 +412,9 @@ public class ActivityOptions extends ComponentOptions { private static final String KEY_LAUNCH_INTO_PIP_PARAMS = "android.activity.launchIntoPipParams"; /** See {@link #setDismissKeyguard()}. */ private static final String KEY_DISMISS_KEYGUARD = "android.activity.dismissKeyguard"; /** See {@link #setDismissKeyguardIfInsecure()}. */ private static final String KEY_DISMISS_KEYGUARD_IF_INSECURE = "android.activity.dismissKeyguardIfInsecure"; private static final String KEY_PENDING_INTENT_CREATOR_BACKGROUND_ACTIVITY_START_MODE = "android.activity.pendingIntentCreatorBackgroundActivityStartMode"; Loading Loading @@ -519,7 +519,7 @@ public class ActivityOptions extends ComponentOptions { private boolean mLaunchedFromBubble; private boolean mTransientLaunch; private PictureInPictureParams mLaunchIntoPipParams; private boolean mDismissKeyguard; private boolean mDismissKeyguardIfInsecure; @BackgroundActivityStartMode private int mPendingIntentCreatorBackgroundActivityStartMode = MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED; Loading Loading @@ -1333,7 +1333,7 @@ public class ActivityOptions extends ComponentOptions { mLaunchIntoPipParams = opts.getParcelable(KEY_LAUNCH_INTO_PIP_PARAMS, android.app.PictureInPictureParams.class); mIsEligibleForLegacyPermissionPrompt = opts.getBoolean(KEY_LEGACY_PERMISSION_PROMPT_ELIGIBLE); mDismissKeyguard = opts.getBoolean(KEY_DISMISS_KEYGUARD); mDismissKeyguardIfInsecure = opts.getBoolean(KEY_DISMISS_KEYGUARD_IF_INSECURE); mPendingIntentCreatorBackgroundActivityStartMode = opts.getInt( KEY_PENDING_INTENT_CREATOR_BACKGROUND_ACTIVITY_START_MODE, MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED); Loading Loading @@ -2036,24 +2036,24 @@ public class ActivityOptions extends ComponentOptions { } /** * Sets whether the keyguard should go away when this activity launches. * Sets whether the insecure keyguard should go away when this activity launches. In case the * keyguard is secure, this option will be ignored. * * @see Activity#setShowWhenLocked(boolean) * @see android.R.attr#showWhenLocked * @hide */ @RequiresPermission(CONTROL_KEYGUARD) public void setDismissKeyguard() { mDismissKeyguard = true; public void setDismissKeyguardIfInsecure() { mDismissKeyguardIfInsecure = true; } /** * @see #setDismissKeyguard() * @see #setDismissKeyguardIfInsecure() * @return whether the insecure keyguard should go away when the activity launches. * @hide */ public boolean getDismissKeyguard() { return mDismissKeyguard; public boolean getDismissKeyguardIfInsecure() { return mDismissKeyguardIfInsecure; } /** Loading Loading @@ -2367,8 +2367,8 @@ public class ActivityOptions extends ComponentOptions { b.putBoolean(KEY_LEGACY_PERMISSION_PROMPT_ELIGIBLE, mIsEligibleForLegacyPermissionPrompt); } if (mDismissKeyguard) { b.putBoolean(KEY_DISMISS_KEYGUARD, mDismissKeyguard); if (mDismissKeyguardIfInsecure) { b.putBoolean(KEY_DISMISS_KEYGUARD_IF_INSECURE, mDismissKeyguardIfInsecure); } if (mPendingIntentCreatorBackgroundActivityStartMode != MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarterImpl.kt +1 −1 Original line number Diff line number Diff line Loading @@ -494,7 +494,7 @@ constructor( // this runnable is called right after the keyguard is solved, so we tell // WM that we should dismiss it to avoid flickers when opening an activity // that can also be shown over the keyguard. options.setDismissKeyguard() options.setDismissKeyguardIfInsecure() options.setDisallowEnterPictureInPictureWhileLaunching( disallowEnterPictureInPictureWhileLaunching ) Loading
services/core/java/com/android/server/am/ActivityManagerShellCommand.java +5 −5 Original line number Diff line number Diff line Loading @@ -205,7 +205,7 @@ final class ActivityManagerShellCommand extends ShellCommand { private boolean mAsync; private BroadcastOptions mBroadcastOptions; private boolean mShowSplashScreen; private boolean mDismissKeyguard; private boolean mDismissKeyguardIfInsecure; final boolean mDumping; Loading Loading @@ -552,8 +552,8 @@ final class ActivityManagerShellCommand extends ShellCommand { mAsync = true; } else if (opt.equals("--splashscreen-show-icon")) { mShowSplashScreen = true; } else if (opt.equals("--dismiss-keyguard")) { mDismissKeyguard = true; } else if (opt.equals("--dismiss-keyguard-if-insecure")) { mDismissKeyguardIfInsecure = true; } else { return false; } Loading Loading @@ -714,11 +714,11 @@ final class ActivityManagerShellCommand extends ShellCommand { } options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_ICON); } if (mDismissKeyguard) { if (mDismissKeyguardIfInsecure) { if (options == null) { options = ActivityOptions.makeBasic(); } options.setDismissKeyguard(); options.setDismissKeyguardIfInsecure(); } if (mWaitOption) { result = mInternal.startActivityAndWait(null, SHELL_PACKAGE_NAME, null, intent, Loading
services/core/java/com/android/server/wm/ActivityRecord.java +2 −2 Original line number Diff line number Diff line Loading @@ -913,7 +913,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A boolean mEnteringAnimation; boolean mOverrideTaskTransition; boolean mDismissKeyguard; boolean mDismissKeyguardIfInsecure; boolean mShareIdentity; /** True if the activity has reported stopped; False if the activity becomes visible. */ Loading Loading @@ -2098,7 +2098,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } mOverrideTaskTransition = options.getOverrideTaskTransition(); mDismissKeyguard = options.getDismissKeyguard(); mDismissKeyguardIfInsecure = options.getDismissKeyguardIfInsecure(); mShareIdentity = options.isShareIdentityEnabled(); } Loading
services/core/java/com/android/server/wm/KeyguardController.java +4 −2 Original line number Diff line number Diff line Loading @@ -665,12 +665,14 @@ class KeyguardController { mTopTurnScreenOnActivity = top; } if (top.mDismissKeyguard && mKeyguardShowing) { final boolean isKeyguardSecure = controller.mWindowManager.isKeyguardSecure( controller.mService.getCurrentUserId()); if (top.mDismissKeyguardIfInsecure && mKeyguardShowing && !isKeyguardSecure) { mKeyguardGoingAway = true; } else if (top.canShowWhenLocked()) { mTopOccludesActivity = top; } top.mDismissKeyguard = false; top.mDismissKeyguardIfInsecure = false; // Only the top activity may control occluded, as we can't occlude the Keyguard // if the top app doesn't want to occlude it. Loading