Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73a1f209 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski Committed by Android (Google) Code Review
Browse files

Merge "Clean up a bunch of launched low-risk VDM flags" into main

parents 409d712e 1ed460e6
Loading
Loading
Loading
Loading
+0 −25
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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
+0 −29
Original line number Diff line number Diff line
@@ -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"
@@ -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"
+1 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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.
+12 −39
Original line number Diff line number Diff line
@@ -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;
@@ -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;

@@ -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,
@@ -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;
@@ -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");
@@ -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;
    }

@@ -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;
    }

@@ -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) {
+3 −5
Original line number Diff line number Diff line
@@ -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