Loading core/java/android/companion/virtual/flags.aconfig +0 −25 Original line number Diff line number Diff line Loading @@ -80,13 +80,6 @@ flag { bug: "291740640" } flag { name: "stream_permissions" namespace: "virtual_devices" description: "Enable streaming permission dialogs to Virtual Devices" bug: "291737919" } flag { name: "persistent_device_id_api" is_exported: true Loading @@ -95,13 +88,6 @@ flag { bug: "295258915" } flag { name: "express_metrics" namespace: "virtual_devices" description: "Enable express metrics in VDM" bug: "307297730" } flag { name: "interactive_screen_mirror" is_exported: true Loading @@ -118,17 +104,6 @@ flag { bug: "304829446" } flag { name: "intercept_intents_before_applying_policy" is_exported: true namespace: "virtual_devices" description: "Apply intent interception before applying activity policy" bug: "333444131" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "impulse_velocity_strategy_for_touch_navigation" is_exported: true Loading core/java/android/companion/virtual/flags/flags.aconfig +0 −29 Original line number Diff line number Diff line Loading @@ -45,14 +45,6 @@ flag { bug: "350007135" } flag { namespace: "virtual_devices" name: "metrics_collection" description: "Enable collection of VDM-related metrics" bug: "324842215" is_fixed_read_only: true } flag { namespace: "virtual_devices" name: "activity_control_api" Loading Loading @@ -90,27 +82,6 @@ flag { bug: "338973239" } flag { namespace: "virtual_devices" name: "virtual_display_multi_window_mode_support" description: "Add support for WINDOWING_MODE_MULTI_WINDOW to virtual displays by default" is_fixed_read_only: true bug: "341151395" metadata { purpose: PURPOSE_BUGFIX } } flag { namespace: "virtual_devices" name: "intent_interception_action_matching_fix" description: "Do not match intents without actions if the filter has actions" bug: "343805037" metadata { purpose: PURPOSE_BUGFIX } } flag { namespace: "virtual_devices" name: "virtual_display_rotation_api" Loading core/java/android/window/DisplayWindowPolicyController.java +1 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.WindowConfiguration; import android.companion.virtualdevice.flags.Flags; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ActivityInfo; Loading Loading @@ -67,11 +66,9 @@ public abstract class DisplayWindowPolicyController { public DisplayWindowPolicyController() { synchronized (mSupportedWindowingModes) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_FULLSCREEN); if (Flags.virtualDisplayMultiWindowModeSupport()) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW); } } } /** * Returns {@code true} if the given window flags contain the flags that we're interested in. Loading services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +12 −39 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.annotation.UserIdInt; import android.app.WindowConfiguration; import android.app.compat.CompatChanges; import android.companion.virtual.VirtualDeviceManager.ActivityListener; import android.companion.virtual.flags.Flags; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.AttributionSource; Loading Loading @@ -113,7 +112,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @NonNull private final ArraySet<ComponentName> mCrossTaskNavigationExemptions; @Nullable private final ComponentName mPermissionDialogComponent; private final Object mGenericWindowPolicyControllerLock = new Object(); @Nullable private final ActivityBlockedCallback mActivityBlockedCallback; Loading Loading @@ -178,7 +176,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @NonNull Set<ComponentName> activityPolicyExemptions, boolean crossTaskNavigationAllowedByDefault, @NonNull Set<ComponentName> crossTaskNavigationExemptions, @Nullable ComponentName permissionDialogComponent, @Nullable ActivityListener activityListener, @Nullable ActivityBlockedCallback activityBlockedCallback, @Nullable SecureWindowCallback secureWindowCallback, Loading @@ -193,7 +190,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController mActivityPolicyExemptions = new ArraySet<>(activityPolicyExemptions); mCrossTaskNavigationAllowedByDefault = crossTaskNavigationAllowedByDefault; mCrossTaskNavigationExemptions = new ArraySet<>(crossTaskNavigationExemptions); mPermissionDialogComponent = permissionDialogComponent; mActivityBlockedCallback = activityBlockedCallback; setInterestedWindowFlags(windowFlags, systemWindowFlags); mActivityListener = activityListener; Loading Loading @@ -287,7 +283,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController public boolean canActivityBeLaunched(@NonNull ActivityInfo activityInfo, @Nullable Intent intent, @WindowConfiguration.WindowingMode int windowingMode, int launchingFromDisplayId, boolean isNewTask) { if (Flags.interceptIntentsBeforeApplyingPolicy()) { if (mIntentListenerCallback != null && intent != null && mIntentListenerCallback.shouldInterceptIntent(intent)) { logActivityLaunchBlocked("Virtual device intercepting intent"); Loading @@ -298,18 +293,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController notifyActivityBlocked(activityInfo); return false; } } else { if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { notifyActivityBlocked(activityInfo); return false; } if (mIntentListenerCallback != null && intent != null && mIntentListenerCallback.shouldInterceptIntent(intent)) { logActivityLaunchBlocked("Virtual device intercepting intent"); return false; } } return true; } Loading Loading @@ -370,14 +353,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController return false; } // mPermissionDialogComponent being null means we don't want to block permission Dialogs // based on FLAG_STREAM_PERMISSIONS if (mPermissionDialogComponent != null && mPermissionDialogComponent.equals(activityComponent)) { logActivityLaunchBlocked("Permission dialog not allowed on virtual device"); return false; } return true; } Loading Loading @@ -487,12 +462,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController && displayId != INVALID_DISPLAY) { mActivityBlockedCallback.onActivityBlocked(displayId, activityInfo); } if (android.companion.virtualdevice.flags.Flags.metricsCollection()) { Counter.logIncrementWithUid( "virtual_devices.value_activity_blocked_count", mAttributionSource.getUid()); } } private static boolean isAllowedByPolicy(boolean allowedByDefault, Set<ComponentName> exemptions, ComponentName component) { Loading services/companion/java/com/android/server/companion/virtual/InputController.java +3 −5 Original line number Diff line number Diff line Loading @@ -842,13 +842,11 @@ class InputController { deviceName, inputDeviceId)); } if (android.companion.virtualdevice.flags.Flags.metricsCollection()) { String metricId = getMetricIdForInputType(type); if (metricId != null) { Counter.logIncrementWithUid(metricId, mAttributionSource.getUid()); } } } private static String getMetricIdForInputType(@InputDeviceDescriptor.Type int type) { switch (type) { Loading Loading
core/java/android/companion/virtual/flags.aconfig +0 −25 Original line number Diff line number Diff line Loading @@ -80,13 +80,6 @@ flag { bug: "291740640" } flag { name: "stream_permissions" namespace: "virtual_devices" description: "Enable streaming permission dialogs to Virtual Devices" bug: "291737919" } flag { name: "persistent_device_id_api" is_exported: true Loading @@ -95,13 +88,6 @@ flag { bug: "295258915" } flag { name: "express_metrics" namespace: "virtual_devices" description: "Enable express metrics in VDM" bug: "307297730" } flag { name: "interactive_screen_mirror" is_exported: true Loading @@ -118,17 +104,6 @@ flag { bug: "304829446" } flag { name: "intercept_intents_before_applying_policy" is_exported: true namespace: "virtual_devices" description: "Apply intent interception before applying activity policy" bug: "333444131" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "impulse_velocity_strategy_for_touch_navigation" is_exported: true Loading
core/java/android/companion/virtual/flags/flags.aconfig +0 −29 Original line number Diff line number Diff line Loading @@ -45,14 +45,6 @@ flag { bug: "350007135" } flag { namespace: "virtual_devices" name: "metrics_collection" description: "Enable collection of VDM-related metrics" bug: "324842215" is_fixed_read_only: true } flag { namespace: "virtual_devices" name: "activity_control_api" Loading Loading @@ -90,27 +82,6 @@ flag { bug: "338973239" } flag { namespace: "virtual_devices" name: "virtual_display_multi_window_mode_support" description: "Add support for WINDOWING_MODE_MULTI_WINDOW to virtual displays by default" is_fixed_read_only: true bug: "341151395" metadata { purpose: PURPOSE_BUGFIX } } flag { namespace: "virtual_devices" name: "intent_interception_action_matching_fix" description: "Do not match intents without actions if the filter has actions" bug: "343805037" metadata { purpose: PURPOSE_BUGFIX } } flag { namespace: "virtual_devices" name: "virtual_display_rotation_api" Loading
core/java/android/window/DisplayWindowPolicyController.java +1 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.WindowConfiguration; import android.companion.virtualdevice.flags.Flags; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ActivityInfo; Loading Loading @@ -67,11 +66,9 @@ public abstract class DisplayWindowPolicyController { public DisplayWindowPolicyController() { synchronized (mSupportedWindowingModes) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_FULLSCREEN); if (Flags.virtualDisplayMultiWindowModeSupport()) { mSupportedWindowingModes.add(WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW); } } } /** * Returns {@code true} if the given window flags contain the flags that we're interested in. Loading
services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +12 −39 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.annotation.UserIdInt; import android.app.WindowConfiguration; import android.app.compat.CompatChanges; import android.companion.virtual.VirtualDeviceManager.ActivityListener; import android.companion.virtual.flags.Flags; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.AttributionSource; Loading Loading @@ -113,7 +112,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @NonNull private final ArraySet<ComponentName> mCrossTaskNavigationExemptions; @Nullable private final ComponentName mPermissionDialogComponent; private final Object mGenericWindowPolicyControllerLock = new Object(); @Nullable private final ActivityBlockedCallback mActivityBlockedCallback; Loading Loading @@ -178,7 +176,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @NonNull Set<ComponentName> activityPolicyExemptions, boolean crossTaskNavigationAllowedByDefault, @NonNull Set<ComponentName> crossTaskNavigationExemptions, @Nullable ComponentName permissionDialogComponent, @Nullable ActivityListener activityListener, @Nullable ActivityBlockedCallback activityBlockedCallback, @Nullable SecureWindowCallback secureWindowCallback, Loading @@ -193,7 +190,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController mActivityPolicyExemptions = new ArraySet<>(activityPolicyExemptions); mCrossTaskNavigationAllowedByDefault = crossTaskNavigationAllowedByDefault; mCrossTaskNavigationExemptions = new ArraySet<>(crossTaskNavigationExemptions); mPermissionDialogComponent = permissionDialogComponent; mActivityBlockedCallback = activityBlockedCallback; setInterestedWindowFlags(windowFlags, systemWindowFlags); mActivityListener = activityListener; Loading Loading @@ -287,7 +283,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController public boolean canActivityBeLaunched(@NonNull ActivityInfo activityInfo, @Nullable Intent intent, @WindowConfiguration.WindowingMode int windowingMode, int launchingFromDisplayId, boolean isNewTask) { if (Flags.interceptIntentsBeforeApplyingPolicy()) { if (mIntentListenerCallback != null && intent != null && mIntentListenerCallback.shouldInterceptIntent(intent)) { logActivityLaunchBlocked("Virtual device intercepting intent"); Loading @@ -298,18 +293,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController notifyActivityBlocked(activityInfo); return false; } } else { if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { notifyActivityBlocked(activityInfo); return false; } if (mIntentListenerCallback != null && intent != null && mIntentListenerCallback.shouldInterceptIntent(intent)) { logActivityLaunchBlocked("Virtual device intercepting intent"); return false; } } return true; } Loading Loading @@ -370,14 +353,6 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController return false; } // mPermissionDialogComponent being null means we don't want to block permission Dialogs // based on FLAG_STREAM_PERMISSIONS if (mPermissionDialogComponent != null && mPermissionDialogComponent.equals(activityComponent)) { logActivityLaunchBlocked("Permission dialog not allowed on virtual device"); return false; } return true; } Loading Loading @@ -487,12 +462,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController && displayId != INVALID_DISPLAY) { mActivityBlockedCallback.onActivityBlocked(displayId, activityInfo); } if (android.companion.virtualdevice.flags.Flags.metricsCollection()) { Counter.logIncrementWithUid( "virtual_devices.value_activity_blocked_count", mAttributionSource.getUid()); } } private static boolean isAllowedByPolicy(boolean allowedByDefault, Set<ComponentName> exemptions, ComponentName component) { Loading
services/companion/java/com/android/server/companion/virtual/InputController.java +3 −5 Original line number Diff line number Diff line Loading @@ -842,13 +842,11 @@ class InputController { deviceName, inputDeviceId)); } if (android.companion.virtualdevice.flags.Flags.metricsCollection()) { String metricId = getMetricIdForInputType(type); if (metricId != null) { Counter.logIncrementWithUid(metricId, mAttributionSource.getUid()); } } } private static String getMetricIdForInputType(@InputDeviceDescriptor.Type int type) { switch (type) { Loading