diff options
| -rw-r--r-- | AconfigFlags.bp | 1 | ||||
| -rw-r--r-- | core/java/android/companion/virtual/VirtualDeviceInternal.java | 7 | ||||
| -rw-r--r-- | core/java/android/companion/virtual/flags/flags.aconfig | 8 |
3 files changed, 15 insertions, 1 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 0ee7ace5f661..28bb35dcea55 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -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}", diff --git a/core/java/android/companion/virtual/VirtualDeviceInternal.java b/core/java/android/companion/virtual/VirtualDeviceInternal.java index c1e443d1729d..39f6de75928a 100644 --- a/core/java/android/companion/virtual/VirtualDeviceInternal.java +++ b/core/java/android/companion/virtual/VirtualDeviceInternal.java @@ -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; diff --git a/core/java/android/companion/virtual/flags/flags.aconfig b/core/java/android/companion/virtual/flags/flags.aconfig index d26890faee79..ab8db6e59ddb 100644 --- a/core/java/android/companion/virtual/flags/flags.aconfig +++ b/core/java/android/companion/virtual/flags/flags.aconfig @@ -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 +} |