Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -4023,6 +4023,7 @@ package android.app { public class ActivityOptions { method public android.graphics.Rect getLaunchBounds(); method public int getLaunchDisplayId(); method public boolean getLockTaskMode(); method public static android.app.ActivityOptions makeBasic(); method public static android.app.ActivityOptions makeClipRevealAnimation(android.view.View, int, int, int, int); method public static android.app.ActivityOptions makeCustomAnimation(android.content.Context, int, int); Loading @@ -4035,6 +4036,7 @@ package android.app { method public android.app.ActivityOptions setAppVerificationBundle(android.os.Bundle); method public android.app.ActivityOptions setLaunchBounds(android.graphics.Rect); method public android.app.ActivityOptions setLaunchDisplayId(int); method public android.app.ActivityOptions setLockTaskMode(boolean); method public android.os.Bundle toBundle(); method public void update(android.app.ActivityOptions); field public static final java.lang.String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time"; api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -4185,6 +4185,7 @@ package android.app { public class ActivityOptions { method public android.graphics.Rect getLaunchBounds(); method public int getLaunchDisplayId(); method public boolean getLockTaskMode(); method public static android.app.ActivityOptions makeBasic(); method public static android.app.ActivityOptions makeClipRevealAnimation(android.view.View, int, int, int, int); method public static android.app.ActivityOptions makeCustomAnimation(android.content.Context, int, int); Loading @@ -4197,6 +4198,7 @@ package android.app { method public android.app.ActivityOptions setAppVerificationBundle(android.os.Bundle); method public android.app.ActivityOptions setLaunchBounds(android.graphics.Rect); method public android.app.ActivityOptions setLaunchDisplayId(int); method public android.app.ActivityOptions setLockTaskMode(boolean); method public android.os.Bundle toBundle(); method public void update(android.app.ActivityOptions); field public static final java.lang.String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time"; api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -4043,6 +4043,7 @@ package android.app { public class ActivityOptions { method public android.graphics.Rect getLaunchBounds(); method public int getLaunchDisplayId(); method public boolean getLockTaskMode(); method public static android.app.ActivityOptions makeBasic(); method public static android.app.ActivityOptions makeClipRevealAnimation(android.view.View, int, int, int, int); method public static android.app.ActivityOptions makeCustomAnimation(android.content.Context, int, int); Loading @@ -4058,6 +4059,7 @@ package android.app { method public android.app.ActivityOptions setLaunchDisplayId(int); method public void setLaunchTaskId(int); method public void setLaunchWindowingMode(int); method public android.app.ActivityOptions setLockTaskMode(boolean); method public void setTaskOverlay(boolean, boolean); method public android.os.Bundle toBundle(); method public void update(android.app.ActivityOptions); core/java/android/app/ActivityOptions.java +42 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.view.Display.INVALID_DISPLAY; import android.annotation.Nullable; import android.annotation.TestApi; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; Loading Loading @@ -157,6 +158,12 @@ public class ActivityOptions { */ private static final String KEY_ANIM_SPECS = "android:activity.animSpecs"; /** * Whether the activity should be launched into LockTask mode. * @see #setLockTaskMode(boolean) */ private static final String KEY_LOCK_TASK_MODE = "android:activity.lockTaskMode"; /** * The display id the activity should be launched into. * @see #setLaunchDisplayId(int) Loading Loading @@ -278,6 +285,7 @@ public class ActivityOptions { private int mResultCode; private int mExitCoordinatorIndex; private PendingIntent mUsageTimeReport; private boolean mLockTaskMode = false; private int mLaunchDisplayId = INVALID_DISPLAY; @WindowConfiguration.WindowingMode private int mLaunchWindowingMode = WINDOWING_MODE_UNDEFINED; Loading Loading @@ -869,6 +877,7 @@ public class ActivityOptions { mExitCoordinatorIndex = opts.getInt(KEY_EXIT_COORDINATOR_INDEX); break; } mLockTaskMode = opts.getBoolean(KEY_LOCK_TASK_MODE, false); mLaunchDisplayId = opts.getInt(KEY_LAUNCH_DISPLAY_ID, INVALID_DISPLAY); mLaunchWindowingMode = opts.getInt(KEY_LAUNCH_WINDOWING_MODE, WINDOWING_MODE_UNDEFINED); mLaunchActivityType = opts.getInt(KEY_LAUNCH_ACTIVITY_TYPE, ACTIVITY_TYPE_UNDEFINED); Loading Loading @@ -1054,6 +1063,37 @@ public class ActivityOptions { } } /** * Gets whether the activity is to be launched into LockTask mode. * @return {@code true} if the activity is to be launched into LockTask mode. * @see Activity#startLockTask() * @see android.app.admin.DevicePolicyManager#setLockTaskPackages(ComponentName, String[]) */ public boolean getLockTaskMode() { return mLockTaskMode; } /** * Sets whether the activity is to be launched into LockTask mode. * * Use this option to start an activity in LockTask mode. Note that only apps permitted by * {@link android.app.admin.DevicePolicyManager} can run in LockTask mode. Therefore, if * {@link android.app.admin.DevicePolicyManager#isLockTaskPermitted(String)} returns * {@code false} for the package of the target activity, a {@link SecurityException} will be * thrown during {@link Context#startActivity(Intent, Bundle)}. * * Defaults to {@code false} if not set. * * @param lockTaskMode {@code true} if the activity is to be launched into LockTask mode. * @return {@code this} {@link ActivityOptions} instance. * @see Activity#startLockTask() * @see android.app.admin.DevicePolicyManager#setLockTaskPackages(ComponentName, String[]) */ public ActivityOptions setLockTaskMode(boolean lockTaskMode) { mLockTaskMode = lockTaskMode; return this; } /** * Gets the id of the display where activity should be launched. * @return The id of the display where activity should be launched, Loading Loading @@ -1247,6 +1287,7 @@ public class ActivityOptions { mExitCoordinatorIndex = otherOptions.mExitCoordinatorIndex; break; } mLockTaskMode = otherOptions.mLockTaskMode; mAnimSpecs = otherOptions.mAnimSpecs; mAnimationFinishedListener = otherOptions.mAnimationFinishedListener; mSpecsFuture = otherOptions.mSpecsFuture; Loading Loading @@ -1321,6 +1362,7 @@ public class ActivityOptions { b.putInt(KEY_EXIT_COORDINATOR_INDEX, mExitCoordinatorIndex); break; } b.putBoolean(KEY_LOCK_TASK_MODE, mLockTaskMode); b.putInt(KEY_LAUNCH_DISPLAY_ID, mLaunchDisplayId); b.putInt(KEY_LAUNCH_WINDOWING_MODE, mLaunchWindowingMode); b.putInt(KEY_LAUNCH_ACTIVITY_TYPE, mLaunchActivityType); Loading services/core/java/com/android/server/am/ActivityRecord.java +31 −17 Original line number Diff line number Diff line Loading @@ -58,6 +58,10 @@ import static android.content.pm.ActivityInfo.LAUNCH_MULTIPLE; import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_INSTANCE; import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_TASK; import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_TOP; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_DEFAULT; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_NEVER; import static android.content.pm.ActivityInfo.PERSIST_ACROSS_REBOOTS; import static android.content.pm.ActivityInfo.PERSIST_ROOT_ONLY; import static android.content.pm.ActivityInfo.RESIZE_MODE_FORCE_RESIZEABLE; Loading Loading @@ -282,6 +286,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo int configChangeFlags; // which config values have changed private boolean keysPaused; // has key dispatching been paused for it? int launchMode; // the launch mode activity attribute. int lockTaskLaunchMode; // the lockTaskMode manifest attribute, subject to override boolean visible; // does this activity's window need to be shown? boolean visibleIgnoringKeyguard; // is this activity visible, ignoring the fact that Keyguard // might hide this activity? Loading Loading @@ -824,23 +829,6 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo hasBeenLaunched = false; mStackSupervisor = supervisor; mRotationAnimationHint = aInfo.rotationAnimation; if (options != null) { pendingOptions = options; mLaunchTaskBehind = pendingOptions.getLaunchTaskBehind(); final int rotationAnimation = pendingOptions.getRotationAnimationHint(); // Only override manifest supplied option if set. if (rotationAnimation >= 0) { mRotationAnimationHint = rotationAnimation; } PendingIntent usageReport = pendingOptions.getUsageTimeReport(); if (usageReport != null) { appTimeTracker = new AppTimeTracker(usageReport); } } // This starts out true, since the initial state of an activity is that we have everything, // and we shouldn't never consider it lacking in state to be removed if it dies. haveState = true; Loading Loading @@ -907,6 +895,32 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo mShowWhenLocked = (aInfo.flags & FLAG_SHOW_WHEN_LOCKED) != 0; mTurnScreenOn = (aInfo.flags & FLAG_TURN_SCREEN_ON) != 0; mRotationAnimationHint = aInfo.rotationAnimation; lockTaskLaunchMode = aInfo.lockTaskLaunchMode; if (appInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; } if (options != null) { pendingOptions = options; mLaunchTaskBehind = options.getLaunchTaskBehind(); final int rotationAnimation = pendingOptions.getRotationAnimationHint(); // Only override manifest supplied option if set. if (rotationAnimation >= 0) { mRotationAnimationHint = rotationAnimation; } final PendingIntent usageReport = pendingOptions.getUsageTimeReport(); if (usageReport != null) { appTimeTracker = new AppTimeTracker(usageReport); } final boolean useLockTask = pendingOptions.getLockTaskMode(); if (useLockTask && lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_DEFAULT) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED; } } } AppWindowContainerController getWindowContainerController() { Loading Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -4023,6 +4023,7 @@ package android.app { public class ActivityOptions { method public android.graphics.Rect getLaunchBounds(); method public int getLaunchDisplayId(); method public boolean getLockTaskMode(); method public static android.app.ActivityOptions makeBasic(); method public static android.app.ActivityOptions makeClipRevealAnimation(android.view.View, int, int, int, int); method public static android.app.ActivityOptions makeCustomAnimation(android.content.Context, int, int); Loading @@ -4035,6 +4036,7 @@ package android.app { method public android.app.ActivityOptions setAppVerificationBundle(android.os.Bundle); method public android.app.ActivityOptions setLaunchBounds(android.graphics.Rect); method public android.app.ActivityOptions setLaunchDisplayId(int); method public android.app.ActivityOptions setLockTaskMode(boolean); method public android.os.Bundle toBundle(); method public void update(android.app.ActivityOptions); field public static final java.lang.String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -4185,6 +4185,7 @@ package android.app { public class ActivityOptions { method public android.graphics.Rect getLaunchBounds(); method public int getLaunchDisplayId(); method public boolean getLockTaskMode(); method public static android.app.ActivityOptions makeBasic(); method public static android.app.ActivityOptions makeClipRevealAnimation(android.view.View, int, int, int, int); method public static android.app.ActivityOptions makeCustomAnimation(android.content.Context, int, int); Loading @@ -4197,6 +4198,7 @@ package android.app { method public android.app.ActivityOptions setAppVerificationBundle(android.os.Bundle); method public android.app.ActivityOptions setLaunchBounds(android.graphics.Rect); method public android.app.ActivityOptions setLaunchDisplayId(int); method public android.app.ActivityOptions setLockTaskMode(boolean); method public android.os.Bundle toBundle(); method public void update(android.app.ActivityOptions); field public static final java.lang.String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -4043,6 +4043,7 @@ package android.app { public class ActivityOptions { method public android.graphics.Rect getLaunchBounds(); method public int getLaunchDisplayId(); method public boolean getLockTaskMode(); method public static android.app.ActivityOptions makeBasic(); method public static android.app.ActivityOptions makeClipRevealAnimation(android.view.View, int, int, int, int); method public static android.app.ActivityOptions makeCustomAnimation(android.content.Context, int, int); Loading @@ -4058,6 +4059,7 @@ package android.app { method public android.app.ActivityOptions setLaunchDisplayId(int); method public void setLaunchTaskId(int); method public void setLaunchWindowingMode(int); method public android.app.ActivityOptions setLockTaskMode(boolean); method public void setTaskOverlay(boolean, boolean); method public android.os.Bundle toBundle(); method public void update(android.app.ActivityOptions);
core/java/android/app/ActivityOptions.java +42 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.view.Display.INVALID_DISPLAY; import android.annotation.Nullable; import android.annotation.TestApi; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; Loading Loading @@ -157,6 +158,12 @@ public class ActivityOptions { */ private static final String KEY_ANIM_SPECS = "android:activity.animSpecs"; /** * Whether the activity should be launched into LockTask mode. * @see #setLockTaskMode(boolean) */ private static final String KEY_LOCK_TASK_MODE = "android:activity.lockTaskMode"; /** * The display id the activity should be launched into. * @see #setLaunchDisplayId(int) Loading Loading @@ -278,6 +285,7 @@ public class ActivityOptions { private int mResultCode; private int mExitCoordinatorIndex; private PendingIntent mUsageTimeReport; private boolean mLockTaskMode = false; private int mLaunchDisplayId = INVALID_DISPLAY; @WindowConfiguration.WindowingMode private int mLaunchWindowingMode = WINDOWING_MODE_UNDEFINED; Loading Loading @@ -869,6 +877,7 @@ public class ActivityOptions { mExitCoordinatorIndex = opts.getInt(KEY_EXIT_COORDINATOR_INDEX); break; } mLockTaskMode = opts.getBoolean(KEY_LOCK_TASK_MODE, false); mLaunchDisplayId = opts.getInt(KEY_LAUNCH_DISPLAY_ID, INVALID_DISPLAY); mLaunchWindowingMode = opts.getInt(KEY_LAUNCH_WINDOWING_MODE, WINDOWING_MODE_UNDEFINED); mLaunchActivityType = opts.getInt(KEY_LAUNCH_ACTIVITY_TYPE, ACTIVITY_TYPE_UNDEFINED); Loading Loading @@ -1054,6 +1063,37 @@ public class ActivityOptions { } } /** * Gets whether the activity is to be launched into LockTask mode. * @return {@code true} if the activity is to be launched into LockTask mode. * @see Activity#startLockTask() * @see android.app.admin.DevicePolicyManager#setLockTaskPackages(ComponentName, String[]) */ public boolean getLockTaskMode() { return mLockTaskMode; } /** * Sets whether the activity is to be launched into LockTask mode. * * Use this option to start an activity in LockTask mode. Note that only apps permitted by * {@link android.app.admin.DevicePolicyManager} can run in LockTask mode. Therefore, if * {@link android.app.admin.DevicePolicyManager#isLockTaskPermitted(String)} returns * {@code false} for the package of the target activity, a {@link SecurityException} will be * thrown during {@link Context#startActivity(Intent, Bundle)}. * * Defaults to {@code false} if not set. * * @param lockTaskMode {@code true} if the activity is to be launched into LockTask mode. * @return {@code this} {@link ActivityOptions} instance. * @see Activity#startLockTask() * @see android.app.admin.DevicePolicyManager#setLockTaskPackages(ComponentName, String[]) */ public ActivityOptions setLockTaskMode(boolean lockTaskMode) { mLockTaskMode = lockTaskMode; return this; } /** * Gets the id of the display where activity should be launched. * @return The id of the display where activity should be launched, Loading Loading @@ -1247,6 +1287,7 @@ public class ActivityOptions { mExitCoordinatorIndex = otherOptions.mExitCoordinatorIndex; break; } mLockTaskMode = otherOptions.mLockTaskMode; mAnimSpecs = otherOptions.mAnimSpecs; mAnimationFinishedListener = otherOptions.mAnimationFinishedListener; mSpecsFuture = otherOptions.mSpecsFuture; Loading Loading @@ -1321,6 +1362,7 @@ public class ActivityOptions { b.putInt(KEY_EXIT_COORDINATOR_INDEX, mExitCoordinatorIndex); break; } b.putBoolean(KEY_LOCK_TASK_MODE, mLockTaskMode); b.putInt(KEY_LAUNCH_DISPLAY_ID, mLaunchDisplayId); b.putInt(KEY_LAUNCH_WINDOWING_MODE, mLaunchWindowingMode); b.putInt(KEY_LAUNCH_ACTIVITY_TYPE, mLaunchActivityType); Loading
services/core/java/com/android/server/am/ActivityRecord.java +31 −17 Original line number Diff line number Diff line Loading @@ -58,6 +58,10 @@ import static android.content.pm.ActivityInfo.LAUNCH_MULTIPLE; import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_INSTANCE; import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_TASK; import static android.content.pm.ActivityInfo.LAUNCH_SINGLE_TOP; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_DEFAULT; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED; import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_NEVER; import static android.content.pm.ActivityInfo.PERSIST_ACROSS_REBOOTS; import static android.content.pm.ActivityInfo.PERSIST_ROOT_ONLY; import static android.content.pm.ActivityInfo.RESIZE_MODE_FORCE_RESIZEABLE; Loading Loading @@ -282,6 +286,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo int configChangeFlags; // which config values have changed private boolean keysPaused; // has key dispatching been paused for it? int launchMode; // the launch mode activity attribute. int lockTaskLaunchMode; // the lockTaskMode manifest attribute, subject to override boolean visible; // does this activity's window need to be shown? boolean visibleIgnoringKeyguard; // is this activity visible, ignoring the fact that Keyguard // might hide this activity? Loading Loading @@ -824,23 +829,6 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo hasBeenLaunched = false; mStackSupervisor = supervisor; mRotationAnimationHint = aInfo.rotationAnimation; if (options != null) { pendingOptions = options; mLaunchTaskBehind = pendingOptions.getLaunchTaskBehind(); final int rotationAnimation = pendingOptions.getRotationAnimationHint(); // Only override manifest supplied option if set. if (rotationAnimation >= 0) { mRotationAnimationHint = rotationAnimation; } PendingIntent usageReport = pendingOptions.getUsageTimeReport(); if (usageReport != null) { appTimeTracker = new AppTimeTracker(usageReport); } } // This starts out true, since the initial state of an activity is that we have everything, // and we shouldn't never consider it lacking in state to be removed if it dies. haveState = true; Loading Loading @@ -907,6 +895,32 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo mShowWhenLocked = (aInfo.flags & FLAG_SHOW_WHEN_LOCKED) != 0; mTurnScreenOn = (aInfo.flags & FLAG_TURN_SCREEN_ON) != 0; mRotationAnimationHint = aInfo.rotationAnimation; lockTaskLaunchMode = aInfo.lockTaskLaunchMode; if (appInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; } if (options != null) { pendingOptions = options; mLaunchTaskBehind = options.getLaunchTaskBehind(); final int rotationAnimation = pendingOptions.getRotationAnimationHint(); // Only override manifest supplied option if set. if (rotationAnimation >= 0) { mRotationAnimationHint = rotationAnimation; } final PendingIntent usageReport = pendingOptions.getUsageTimeReport(); if (usageReport != null) { appTimeTracker = new AppTimeTracker(usageReport); } final boolean useLockTask = pendingOptions.getLockTaskMode(); if (useLockTask && lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_DEFAULT) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED; } } } AppWindowContainerController getWindowContainerController() { Loading