Loading core/java/android/companion/virtual/flags.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -116,3 +116,14 @@ flag { description: "Enable virtual stylus input" 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 } } No newline at end of file services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +23 −8 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ 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 @@ -298,7 +299,20 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController public boolean canActivityBeLaunched(@NonNull ActivityInfo activityInfo, @Nullable Intent intent, @WindowConfiguration.WindowingMode int windowingMode, int launchingFromDisplayId, boolean isNewTask) { if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { if (Flags.interceptIntentsBeforeApplyingPolicy()) { if (mIntentListenerCallback != null && intent != null && mIntentListenerCallback.shouldInterceptIntent(intent)) { Slog.d(TAG, "Virtual device intercepting intent"); return false; } if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { notifyActivityBlocked(activityInfo); return false; } } else { if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { notifyActivityBlocked(activityInfo); return false; } Loading @@ -307,6 +321,7 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController Slog.d(TAG, "Virtual device intercepting intent"); return false; } } return true; } Loading Loading
core/java/android/companion/virtual/flags.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -116,3 +116,14 @@ flag { description: "Enable virtual stylus input" 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 } } No newline at end of file
services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +23 −8 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ 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 @@ -298,7 +299,20 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController public boolean canActivityBeLaunched(@NonNull ActivityInfo activityInfo, @Nullable Intent intent, @WindowConfiguration.WindowingMode int windowingMode, int launchingFromDisplayId, boolean isNewTask) { if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { if (Flags.interceptIntentsBeforeApplyingPolicy()) { if (mIntentListenerCallback != null && intent != null && mIntentListenerCallback.shouldInterceptIntent(intent)) { Slog.d(TAG, "Virtual device intercepting intent"); return false; } if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { notifyActivityBlocked(activityInfo); return false; } } else { if (!canContainActivity(activityInfo, windowingMode, launchingFromDisplayId, isNewTask)) { notifyActivityBlocked(activityInfo); return false; } Loading @@ -307,6 +321,7 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController Slog.d(TAG, "Virtual device intercepting intent"); return false; } } return true; } Loading