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

Commit 2f1c2023 authored by Marvin Ramin's avatar Marvin Ramin
Browse files

Make VirtualAudioDevice device-aware

Create and use the correct device context when creating
VirtualAudioDevice. This helps ensure audio policies are registered with
the correct context to facilitate device-aware permissions.

Bug: 291737188
Test: n/a
Change-Id: I19046277d8cc439beafa07e55e0f2ed88b86d157
parent 79f9b820
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ aconfig_srcjars = [
    ":android.chre.flags-aconfig-java{.generated_srcjars}",
    ":android.companion.flags-aconfig-java{.generated_srcjars}",
    ":android.companion.virtual.flags-aconfig-java{.generated_srcjars}",
    ":android.companion.virtualdevice.flags-aconfig-java{.generated_srcjars}",
    ":android.content.flags-aconfig-java{.generated_srcjars}",
    ":android.content.pm.flags-aconfig-java{.generated_srcjars}",
    ":android.content.res.flags-aconfig-java{.generated_srcjars}",
+6 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.companion.virtual.audio.VirtualAudioDevice;
import android.companion.virtual.camera.VirtualCamera;
import android.companion.virtual.camera.VirtualCameraConfig;
import android.companion.virtual.sensor.VirtualSensor;
import android.companion.virtualdevice.flags.Flags;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -351,7 +352,11 @@ public class VirtualDeviceInternal {
            @Nullable Executor executor,
            @Nullable VirtualAudioDevice.AudioConfigurationChangeCallback callback) {
        if (mVirtualAudioDevice == null) {
            mVirtualAudioDevice = new VirtualAudioDevice(mContext, mVirtualDevice, display,
            Context context = mContext;
            if (Flags.deviceAwareRecordAudioPermission()) {
                context = mContext.createDeviceContext(getDeviceId());
            }
            mVirtualAudioDevice = new VirtualAudioDevice(context, mVirtualDevice, display,
                    executor, callback, () -> mVirtualAudioDevice = null);
        }
        return mVirtualAudioDevice;
+8 −0
Original line number Diff line number Diff line
@@ -21,3 +21,11 @@ flag {
     description: "Enable discovery of the Virtual Camera HAL without a VINTF entry"
     bug: "305170199"
}

flag {
     namespace: "virtual_devices"
     name: "device_aware_record_audio_permission"
     description: "Enable device-aware RECORD_AUDIO permission"
     bug: "291737188"
     is_fixed_read_only: true
}