Merge "Temporary fix on isUserVisibleOnDisplay(userId, displayId)."
This commit is contained in:
@@ -329,6 +329,12 @@ public abstract class UserManagerInternal {
|
||||
*/
|
||||
public abstract void unassignUserFromDisplay(@UserIdInt int userId);
|
||||
|
||||
/**
|
||||
* Returns {@code true} if the user is visible (as defined by
|
||||
* {@link UserManager#isUserVisible()}.
|
||||
*/
|
||||
public abstract boolean isUserVisible(@UserIdInt int userId);
|
||||
|
||||
/**
|
||||
* Returns {@code true} if the user is visible (as defined by
|
||||
* {@link UserManager#isUserVisible()} in the given display.
|
||||
|
||||
@@ -1770,6 +1770,13 @@ public class UserManagerService extends IUserManager.Stub {
|
||||
|
||||
// TODO(b/239982558): try to merge with isUserVisibleUnchecked() (once both are unit tested)
|
||||
boolean isUserVisibleOnDisplay(@UserIdInt int userId, int displayId) {
|
||||
// TODO(b/244644281): temporary workaround to let WM use this API without breaking current
|
||||
// behavior (otherwise current user / profiles wouldn't be able to launch activities on
|
||||
// other non-passenger displays, like cluster, display, or virtual displays)
|
||||
if (isCurrentUserOrRunningProfileOfCurrentUser(userId)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (displayId == Display.DEFAULT_DISPLAY) {
|
||||
return isCurrentUserOrRunningProfileOfCurrentUser(userId);
|
||||
}
|
||||
@@ -6727,6 +6734,11 @@ public class UserManagerService extends IUserManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUserVisible(int userId) {
|
||||
return isUserVisibleUnchecked(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUserVisible(int userId, int displayId) {
|
||||
return isUserVisibleOnDisplay(userId, displayId);
|
||||
|
||||
Reference in New Issue
Block a user