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

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

Merge "New internal ADD_MIRROR_DISPLAY permission" into main

parents 79f7b3b6 c4e0d8d5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ package android {
    field public static final String ACCESS_VIBRATOR_STATE = "android.permission.ACCESS_VIBRATOR_STATE";
    field public static final String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
    field public static final String ADD_ALWAYS_UNLOCKED_DISPLAY = "android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY";
    field @FlaggedApi("android.companion.virtualdevice.flags.enable_limited_vdm_role") public static final String ADD_MIRROR_DISPLAY = "android.permission.ADD_MIRROR_DISPLAY";
    field public static final String ADD_TRUSTED_DISPLAY = "android.permission.ADD_TRUSTED_DISPLAY";
    field public static final String ADJUST_RUNTIME_PERMISSIONS_POLICY = "android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY";
    field public static final String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
+0 −5
Original line number Diff line number Diff line
@@ -90,11 +90,6 @@ interface IVirtualDevice {
     */
    boolean hasCustomAudioInputSupport();

    /**
     * Returns whether this device is allowed to create mirror displays.
     */
    boolean canCreateMirrorDisplays();

    /*
     * Turns off all trusted non-mirror displays of the virtual device.
     */
+1 −0
Original line number Diff line number Diff line
@@ -160,6 +160,7 @@ android_app {
        "android.app.contextualsearch.flags-aconfig",
        "android.app.flags-aconfig",
        "android.appwidget.flags-aconfig",
        "android.companion.virtualdevice.flags-aconfig",
        "android.content.pm.flags-aconfig",
        "android.media.audio-aconfig",
        "android.provider.flags-aconfig",
+7 −0
Original line number Diff line number Diff line
@@ -8060,6 +8060,13 @@
    <permission android:name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY"
                android:protectionLevel="signature|role"/>

    <!-- Allows an application to create displays that mirror other displays' content.
         @FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ENABLE_LIMITED_VDM_ROLE)
         @hide @SystemApi -->
    <permission android:name="android.permission.ADD_MIRROR_DISPLAY"
        android:protectionLevel="internal|role"
        android:featureFlag="android.companion.virtualdevice.flags.enable_limited_vdm_role" />

    <!-- @hide @SystemApi Allows an application to access locusId events in the usage stats. -->
    <permission android:name="android.permission.ACCESS_LOCUS_ID_USAGE_STATS"
                android:protectionLevel="signature|role" />
+0 −9
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ import android.app.PendingIntent;
import android.app.admin.DevicePolicyManager;
import android.app.compat.CompatChanges;
import android.companion.AssociationInfo;
import android.companion.AssociationRequest;
import android.companion.virtual.ActivityPolicyExemption;
import android.companion.virtual.IVirtualDevice;
import android.companion.virtual.IVirtualDeviceActivityListener;
@@ -156,9 +155,6 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub

    private static final String PERSISTENT_ID_PREFIX_CDM_ASSOCIATION = "companion:";

    private static final List<String> DEVICE_PROFILES_ALLOWING_MIRROR_DISPLAYS = List.of(
            AssociationRequest.DEVICE_PROFILE_APP_STREAMING);

    /**
     * Timeout until {@link #launchPendingIntent} stops waiting for an activity to be launched.
     */
@@ -1352,11 +1348,6 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
        return hasCustomAudioInputSupportInternal();
    }

    @Override
    public boolean canCreateMirrorDisplays() {
        return DEVICE_PROFILES_ALLOWING_MIRROR_DISPLAYS.contains(getDeviceProfile());
    }

    private boolean hasCustomAudioInputSupportInternal() {
        if (!Flags.vdmPublicApis()) {
            return false;
Loading