Loading core/api/test-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ package android.app { method @RequiresPermission(android.Manifest.permission.RESET_APP_ERRORS) public void resetAppErrors(); method public static void resumeAppSwitches() throws android.os.RemoteException; method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public void scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int); method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void setStopBackgroundUsersOnSwitch(int); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public boolean stopUser(int, boolean); method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public boolean updateMccMncConfiguration(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.DUMP) public void waitForBroadcastIdle(); Loading @@ -127,6 +128,9 @@ package android.app { field public static final int PROCESS_CAPABILITY_NONE = 0; // 0x0 field public static final int PROCESS_STATE_FOREGROUND_SERVICE = 4; // 0x4 field public static final int PROCESS_STATE_TOP = 2; // 0x2 field public static final int STOP_BG_USERS_ON_SWITCH_DEFAULT = -1; // 0xffffffff field public static final int STOP_BG_USERS_ON_SWITCH_FALSE = 0; // 0x0 field public static final int STOP_BG_USERS_ON_SWITCH_TRUE = 1; // 0x1 } public static class ActivityManager.RunningAppProcessInfo implements android.os.Parcelable { Loading core/java/android/app/ActivityManager.java +50 −0 Original line number Diff line number Diff line Loading @@ -4075,6 +4075,56 @@ public class ActivityManager { return switchUser(user.getIdentifier()); } /** * Uses the value defined by the platform. * * @hide */ @TestApi public static final int STOP_BG_USERS_ON_SWITCH_DEFAULT = -1; /** * Overrides value defined by the platform and stop background users on switch. * * @hide */ @TestApi public static final int STOP_BG_USERS_ON_SWITCH_TRUE = 1; /** * Overrides value defined by the platform and don't stop background users on switch. * * @hide */ @TestApi public static final int STOP_BG_USERS_ON_SWITCH_FALSE = 0; /** @hide */ @IntDef(prefix = { "STOP_BG_USERS_ON_SWITCH_" }, value = { STOP_BG_USERS_ON_SWITCH_DEFAULT, STOP_BG_USERS_ON_SWITCH_TRUE, STOP_BG_USERS_ON_SWITCH_FALSE }) public @interface StopBgUsersOnSwitch {} /** * Sets whether background users should be stopped when the current user is switched. * * <p>Should only be used on tests. * * @hide */ @TestApi @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void setStopBackgroundUsersOnSwitch(@StopBgUsersOnSwitch int value) { try { getService().setStopBackgroundUsersOnSwitch(value); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Starts a profile. * To be used with non-managed profiles, managed profiles should use Loading core/java/android/app/ActivityManagerInternal.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.app; import static android.app.ActivityManager.StopBgUsersOnSwitch; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; Loading Loading @@ -660,6 +662,11 @@ public abstract class ActivityManagerInternal { public abstract void setVoiceInteractionManagerProvider( @Nullable VoiceInteractionManagerProvider provider); /** * Sets whether background users should be stopped when the current user is switched. */ public abstract void setStopBackgroundUsersOnSwitch(@StopBgUsersOnSwitch int value); /** * Provides the interface to communicate between voice interaction manager service and * ActivityManagerService. Loading core/java/android/app/IActivityManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -341,6 +341,7 @@ interface IActivityManager { @UnsupportedAppUsage boolean switchUser(int userid); @UnsupportedAppUsage void setStopBackgroundUsersOnSwitch(int value); boolean removeTask(int taskId); @UnsupportedAppUsage void registerProcessObserver(in IProcessObserver observer); Loading services/core/java/com/android/server/am/ActivityManagerService.java +11 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.app.ActivityManager.INTENT_SENDER_ACTIVITY; import static android.app.ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND; import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT; import static android.app.ActivityManager.PROCESS_STATE_TOP; import static android.app.ActivityManager.StopBgUsersOnSwitch; import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY; import static android.app.ActivityManagerInternal.ALLOW_NON_FULL; import static android.app.AppOpsManager.OP_NONE; Loading Loading @@ -15095,6 +15096,11 @@ public class ActivityManagerService extends IActivityManager.Stub return mUserController.switchUser(targetUserId); } @Override public void setStopBackgroundUsersOnSwitch(@StopBgUsersOnSwitch int value) { mUserController.setStopBackgroundUsersOnSwitch(value); } @Override public int stopUser(final int userId, boolean force, final IStopUserCallback callback) { return mUserController.stopUser(userId, force, /* allowDelayedLocking= */ false, Loading Loading @@ -16392,6 +16398,11 @@ public class ActivityManagerService extends IActivityManager.Stub @Nullable ActivityManagerInternal.VoiceInteractionManagerProvider provider) { ActivityManagerService.this.setVoiceInteractionManagerProvider(provider); } @Override public void setStopBackgroundUsersOnSwitch(int value) { ActivityManagerService.this.setStopBackgroundUsersOnSwitch(value); } } long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) { Loading
core/api/test-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ package android.app { method @RequiresPermission(android.Manifest.permission.RESET_APP_ERRORS) public void resetAppErrors(); method public static void resumeAppSwitches() throws android.os.RemoteException; method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public void scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int); method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void setStopBackgroundUsersOnSwitch(int); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public boolean stopUser(int, boolean); method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public boolean updateMccMncConfiguration(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.DUMP) public void waitForBroadcastIdle(); Loading @@ -127,6 +128,9 @@ package android.app { field public static final int PROCESS_CAPABILITY_NONE = 0; // 0x0 field public static final int PROCESS_STATE_FOREGROUND_SERVICE = 4; // 0x4 field public static final int PROCESS_STATE_TOP = 2; // 0x2 field public static final int STOP_BG_USERS_ON_SWITCH_DEFAULT = -1; // 0xffffffff field public static final int STOP_BG_USERS_ON_SWITCH_FALSE = 0; // 0x0 field public static final int STOP_BG_USERS_ON_SWITCH_TRUE = 1; // 0x1 } public static class ActivityManager.RunningAppProcessInfo implements android.os.Parcelable { Loading
core/java/android/app/ActivityManager.java +50 −0 Original line number Diff line number Diff line Loading @@ -4075,6 +4075,56 @@ public class ActivityManager { return switchUser(user.getIdentifier()); } /** * Uses the value defined by the platform. * * @hide */ @TestApi public static final int STOP_BG_USERS_ON_SWITCH_DEFAULT = -1; /** * Overrides value defined by the platform and stop background users on switch. * * @hide */ @TestApi public static final int STOP_BG_USERS_ON_SWITCH_TRUE = 1; /** * Overrides value defined by the platform and don't stop background users on switch. * * @hide */ @TestApi public static final int STOP_BG_USERS_ON_SWITCH_FALSE = 0; /** @hide */ @IntDef(prefix = { "STOP_BG_USERS_ON_SWITCH_" }, value = { STOP_BG_USERS_ON_SWITCH_DEFAULT, STOP_BG_USERS_ON_SWITCH_TRUE, STOP_BG_USERS_ON_SWITCH_FALSE }) public @interface StopBgUsersOnSwitch {} /** * Sets whether background users should be stopped when the current user is switched. * * <p>Should only be used on tests. * * @hide */ @TestApi @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void setStopBackgroundUsersOnSwitch(@StopBgUsersOnSwitch int value) { try { getService().setStopBackgroundUsersOnSwitch(value); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Starts a profile. * To be used with non-managed profiles, managed profiles should use Loading
core/java/android/app/ActivityManagerInternal.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.app; import static android.app.ActivityManager.StopBgUsersOnSwitch; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; Loading Loading @@ -660,6 +662,11 @@ public abstract class ActivityManagerInternal { public abstract void setVoiceInteractionManagerProvider( @Nullable VoiceInteractionManagerProvider provider); /** * Sets whether background users should be stopped when the current user is switched. */ public abstract void setStopBackgroundUsersOnSwitch(@StopBgUsersOnSwitch int value); /** * Provides the interface to communicate between voice interaction manager service and * ActivityManagerService. Loading
core/java/android/app/IActivityManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -341,6 +341,7 @@ interface IActivityManager { @UnsupportedAppUsage boolean switchUser(int userid); @UnsupportedAppUsage void setStopBackgroundUsersOnSwitch(int value); boolean removeTask(int taskId); @UnsupportedAppUsage void registerProcessObserver(in IProcessObserver observer); Loading
services/core/java/com/android/server/am/ActivityManagerService.java +11 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.app.ActivityManager.INTENT_SENDER_ACTIVITY; import static android.app.ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND; import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT; import static android.app.ActivityManager.PROCESS_STATE_TOP; import static android.app.ActivityManager.StopBgUsersOnSwitch; import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY; import static android.app.ActivityManagerInternal.ALLOW_NON_FULL; import static android.app.AppOpsManager.OP_NONE; Loading Loading @@ -15095,6 +15096,11 @@ public class ActivityManagerService extends IActivityManager.Stub return mUserController.switchUser(targetUserId); } @Override public void setStopBackgroundUsersOnSwitch(@StopBgUsersOnSwitch int value) { mUserController.setStopBackgroundUsersOnSwitch(value); } @Override public int stopUser(final int userId, boolean force, final IStopUserCallback callback) { return mUserController.stopUser(userId, force, /* allowDelayedLocking= */ false, Loading Loading @@ -16392,6 +16398,11 @@ public class ActivityManagerService extends IActivityManager.Stub @Nullable ActivityManagerInternal.VoiceInteractionManagerProvider provider) { ActivityManagerService.this.setVoiceInteractionManagerProvider(provider); } @Override public void setStopBackgroundUsersOnSwitch(int value) { ActivityManagerService.this.setStopBackgroundUsersOnSwitch(value); } } long inputDispatchingTimedOut(int pid, final boolean aboveSystem, String reason) {