Revert "Prevent removing the target user during a user switch."
This reverts commit f9e7fdc38e.
Reason for revert: We need to prevent removing both target and source users during a user switch. b/264999003#comment2
ag/20948004 will be submitted instead of this one.
Change-Id: Ie3bc4c72033fe3d2edaa5800a3c9d445002ef758
This commit is contained in:
@@ -1833,23 +1833,6 @@ public class UserManagerService extends IUserManager.Stub {
|
||||
return activityManagerInternal.getCurrentUserId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current user id, or the target user id in case there is a started user switch.
|
||||
*
|
||||
* @return id of current or target foreground user, or {@link UserHandle#USER_NULL} if
|
||||
* {@link ActivityManagerInternal} is not available yet.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
int getCurrentOrTargetUserId() {
|
||||
ActivityManagerInternal activityManagerInternal = getActivityManagerInternal();
|
||||
if (activityManagerInternal == null) {
|
||||
Slog.w(LOG_TAG, "getCurrentOrTargetUserId() called too early, ActivityManagerInternal"
|
||||
+ " is not set yet");
|
||||
return UserHandle.USER_NULL;
|
||||
}
|
||||
return activityManagerInternal.getCurrentUser().id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets whether the user is the current foreground user or a started profile of that user.
|
||||
*
|
||||
@@ -5424,7 +5407,8 @@ public class UserManagerService extends IUserManager.Stub {
|
||||
final long ident = Binder.clearCallingIdentity();
|
||||
try {
|
||||
final UserData userData;
|
||||
if (userId == getCurrentOrTargetUserId()) {
|
||||
int currentUser = getCurrentUserId();
|
||||
if (currentUser == userId) {
|
||||
Slog.w(LOG_TAG, "Current user cannot be removed.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ import android.content.pm.UserInfo;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserManager;
|
||||
import android.platform.test.annotations.Postsubmit;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.test.InstrumentationRegistry;
|
||||
@@ -38,7 +37,6 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.internal.util.FunctionalUtils;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -64,22 +62,12 @@ public class UserLifecycleStressTest {
|
||||
private Context mContext;
|
||||
private UserManager mUserManager;
|
||||
private ActivityManager mActivityManager;
|
||||
private String mRemoveGuestOnExitOriginalValue;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
mContext = InstrumentationRegistry.getInstrumentation().getContext();
|
||||
mUserManager = mContext.getSystemService(UserManager.class);
|
||||
mActivityManager = mContext.getSystemService(ActivityManager.class);
|
||||
mRemoveGuestOnExitOriginalValue = Settings.Global.getString(mContext.getContentResolver(),
|
||||
Settings.Global.REMOVE_GUEST_ON_EXIT);
|
||||
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.REMOVE_GUEST_ON_EXIT, mRemoveGuestOnExitOriginalValue);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -117,9 +105,6 @@ public class UserLifecycleStressTest {
|
||||
**/
|
||||
@Test
|
||||
public void switchToExistingGuestAndStartOverStressTest() throws Exception {
|
||||
Settings.Global.putString(mContext.getContentResolver(),
|
||||
Settings.Global.REMOVE_GUEST_ON_EXIT, "0");
|
||||
|
||||
if (ActivityManager.getCurrentUser() != USER_SYSTEM) {
|
||||
switchUser(USER_SYSTEM);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user