Loading services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +5 −6 Original line number Diff line number Diff line Loading @@ -288,16 +288,15 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController } final UserHandle activityUser = UserHandle.getUserHandleForUid(activityInfo.applicationInfo.uid); if (!mAllowedUsers.contains(activityUser)) { Slog.d(TAG, "Virtual device launch disallowed from user " + activityUser); return false; } final ComponentName activityComponent = activityInfo.getComponentName(); if (BLOCKED_APP_STREAMING_COMPONENT.equals(activityComponent)) { if (BLOCKED_APP_STREAMING_COMPONENT.equals(activityComponent) && activityUser.isSystem()) { // The error dialog alerting users that streaming is blocked is always allowed. return true; } if (!mAllowedUsers.contains(activityUser)) { Slog.d(TAG, "Virtual device launch disallowed from user " + activityUser); return false; } if (!activityMatchesDisplayCategory(activityInfo)) { Slog.d(TAG, "The activity's required display category '" + activityInfo.requiredDisplayCategory Loading services/tests/servicestests/src/com/android/server/companion/virtual/GenericWindowPolicyControllerTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,19 @@ public class GenericWindowPolicyControllerTest { assertActivityIsBlocked(gwpc, activityInfo); } @Test public void userNotAllowlisted_systemUserCanLaunchBlockedAppStreamingActivity() { GenericWindowPolicyController gwpc = createGwpcWithNoAllowedUsers(); gwpc.setDisplayId(DISPLAY_ID, /* isMirrorDisplay= */ false); ActivityInfo activityInfo = getActivityInfo( BLOCKED_APP_STREAMING_COMPONENT.getPackageName(), BLOCKED_APP_STREAMING_COMPONENT.getClassName(), /* displayOnRemoteDevices */ true, /* targetDisplayCategory */ null); assertActivityCanBeLaunched(gwpc, activityInfo); } @Test public void openNonBlockedAppOnVirtualDisplay_isNotBlocked() { GenericWindowPolicyController gwpc = createGwpc(); Loading Loading
services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +5 −6 Original line number Diff line number Diff line Loading @@ -288,16 +288,15 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController } final UserHandle activityUser = UserHandle.getUserHandleForUid(activityInfo.applicationInfo.uid); if (!mAllowedUsers.contains(activityUser)) { Slog.d(TAG, "Virtual device launch disallowed from user " + activityUser); return false; } final ComponentName activityComponent = activityInfo.getComponentName(); if (BLOCKED_APP_STREAMING_COMPONENT.equals(activityComponent)) { if (BLOCKED_APP_STREAMING_COMPONENT.equals(activityComponent) && activityUser.isSystem()) { // The error dialog alerting users that streaming is blocked is always allowed. return true; } if (!mAllowedUsers.contains(activityUser)) { Slog.d(TAG, "Virtual device launch disallowed from user " + activityUser); return false; } if (!activityMatchesDisplayCategory(activityInfo)) { Slog.d(TAG, "The activity's required display category '" + activityInfo.requiredDisplayCategory Loading
services/tests/servicestests/src/com/android/server/companion/virtual/GenericWindowPolicyControllerTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,19 @@ public class GenericWindowPolicyControllerTest { assertActivityIsBlocked(gwpc, activityInfo); } @Test public void userNotAllowlisted_systemUserCanLaunchBlockedAppStreamingActivity() { GenericWindowPolicyController gwpc = createGwpcWithNoAllowedUsers(); gwpc.setDisplayId(DISPLAY_ID, /* isMirrorDisplay= */ false); ActivityInfo activityInfo = getActivityInfo( BLOCKED_APP_STREAMING_COMPONENT.getPackageName(), BLOCKED_APP_STREAMING_COMPONENT.getClassName(), /* displayOnRemoteDevices */ true, /* targetDisplayCategory */ null); assertActivityCanBeLaunched(gwpc, activityInfo); } @Test public void openNonBlockedAppOnVirtualDisplay_isNotBlocked() { GenericWindowPolicyController gwpc = createGwpc(); Loading