Loading core/java/android/companion/virtual/VirtualDeviceParams.java +16 −10 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.companion.virtualdevice.flags.Flags; import android.content.ComponentName; import android.content.Context; import android.hardware.display.VirtualDisplayConfig; import android.os.Binder; import android.os.Parcel; import android.os.Parcelable; import android.os.SharedMemory; Loading Loading @@ -844,25 +845,29 @@ public final class VirtualDeviceParams implements Parcelable { Duration.ofNanos(MICROSECONDS.toNanos(samplingPeriodMicros)); final Duration batchReportingLatency = Duration.ofNanos(MICROSECONDS.toNanos(batchReportLatencyMicros)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onConfigurationChanged( sensor, enabled, samplingPeriod, batchReportingLatency)); sensor, enabled, samplingPeriod, batchReportingLatency))); } @Override public void onDirectChannelCreated(int channelHandle, @NonNull SharedMemory sharedMemory) { if (mDirectChannelCallback != null && mDirectChannelExecutor != null) { mDirectChannelExecutor.execute( () -> mDirectChannelCallback.onDirectChannelCreated(channelHandle, sharedMemory)); Binder.withCleanCallingIdentity(() -> mDirectChannelExecutor.execute(() -> mDirectChannelCallback.onDirectChannelCreated( channelHandle, sharedMemory))); } } @Override public void onDirectChannelDestroyed(int channelHandle) { if (mDirectChannelCallback != null && mDirectChannelExecutor != null) { mDirectChannelExecutor.execute( () -> mDirectChannelCallback.onDirectChannelDestroyed(channelHandle)); Binder.withCleanCallingIdentity(() -> mDirectChannelExecutor.execute(() -> mDirectChannelCallback.onDirectChannelDestroyed( channelHandle))); } } Loading @@ -870,9 +875,10 @@ public final class VirtualDeviceParams implements Parcelable { public void onDirectChannelConfigured(int channelHandle, @NonNull VirtualSensor sensor, int rateLevel, int reportToken) { if (mDirectChannelCallback != null && mDirectChannelExecutor != null) { mDirectChannelExecutor.execute( () -> mDirectChannelCallback.onDirectChannelConfigured( channelHandle, sensor, rateLevel, reportToken)); Binder.withCleanCallingIdentity(() -> mDirectChannelExecutor.execute(() -> mDirectChannelCallback.onDirectChannelConfigured( channelHandle, sensor, rateLevel, reportToken))); } } } Loading core/java/android/companion/virtual/audio/VirtualAudioSession.java +5 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.media.AudioTrack; import android.media.audiopolicy.AudioMix; import android.media.audiopolicy.AudioMixingRule; import android.media.audiopolicy.AudioPolicy; import android.os.Binder; import android.util.IntArray; import android.util.Log; Loading Loading @@ -90,14 +91,16 @@ public final class VirtualAudioSession extends IAudioRoutingCallback.Stub implem @Override public void onPlaybackConfigChanged(List<AudioPlaybackConfiguration> configs) { if (mCallback != null) { mExecutor.execute(() -> mCallback.onPlaybackConfigChanged(configs)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onPlaybackConfigChanged(configs))); } } @Override public void onRecordingConfigChanged(List<AudioRecordingConfiguration> configs) { if (mCallback != null) { mExecutor.execute(() -> mCallback.onRecordingConfigChanged(configs)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onRecordingConfigChanged(configs))); } } } Loading core/java/android/companion/virtual/camera/VirtualCameraConfig.java +17 −9 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.hardware.camera2.CaptureResult; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.params.StreamConfiguration; import android.hardware.camera2.params.StreamConfigurationDuration; import android.os.Binder; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; Loading Loading @@ -516,7 +517,7 @@ public final class VirtualCameraConfig implements Parcelable { @Override public void onOpenCamera() { if (Flags.virtualCameraOnOpen()) { mExecutor.execute(mCallback::onOpenCamera); Binder.withCleanCallingIdentity(() -> mExecutor.execute(mCallback::onOpenCamera)); } } Loading @@ -527,32 +528,39 @@ public final class VirtualCameraConfig implements Parcelable { VirtualCameraSessionConfig virtualCameraSessionConfig = new VirtualCameraSessionConfig(sessionParameters); mExecutor.execute(() -> mCallback.onConfigureSession(virtualCameraSessionConfig, convertToFrameworkCaptureResultConsumer(captureResultConsumer))); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onConfigureSession( virtualCameraSessionConfig, convertToFrameworkCaptureResultConsumer(captureResultConsumer)))); } } @Override public void onStreamConfigured(int streamId, Surface surface, int width, int height, int format) { mExecutor.execute(() -> mCallback.onStreamConfigured(streamId, surface, width, height, format)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onStreamConfigured( streamId, surface, width, height, format))); } @Override public void onProcessCaptureRequest(int streamId, long frameId, CaptureRequest captureRequest) { if (Flags.virtualCameraMetadata() && mPerFrameCameraMetadataEnabled) { mExecutor.execute( () -> mCallback.onProcessCaptureRequest(streamId, frameId, captureRequest)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onProcessCaptureRequest( streamId, frameId, captureRequest))); } else { mExecutor.execute(() -> mCallback.onProcessCaptureRequest(streamId, frameId)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onProcessCaptureRequest( streamId, frameId))); } } @Override public void onStreamClosed(int streamId) { mExecutor.execute(() -> mCallback.onStreamClosed(streamId)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onStreamClosed(streamId))); } @Nullable Loading Loading
core/java/android/companion/virtual/VirtualDeviceParams.java +16 −10 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.companion.virtualdevice.flags.Flags; import android.content.ComponentName; import android.content.Context; import android.hardware.display.VirtualDisplayConfig; import android.os.Binder; import android.os.Parcel; import android.os.Parcelable; import android.os.SharedMemory; Loading Loading @@ -844,25 +845,29 @@ public final class VirtualDeviceParams implements Parcelable { Duration.ofNanos(MICROSECONDS.toNanos(samplingPeriodMicros)); final Duration batchReportingLatency = Duration.ofNanos(MICROSECONDS.toNanos(batchReportLatencyMicros)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onConfigurationChanged( sensor, enabled, samplingPeriod, batchReportingLatency)); sensor, enabled, samplingPeriod, batchReportingLatency))); } @Override public void onDirectChannelCreated(int channelHandle, @NonNull SharedMemory sharedMemory) { if (mDirectChannelCallback != null && mDirectChannelExecutor != null) { mDirectChannelExecutor.execute( () -> mDirectChannelCallback.onDirectChannelCreated(channelHandle, sharedMemory)); Binder.withCleanCallingIdentity(() -> mDirectChannelExecutor.execute(() -> mDirectChannelCallback.onDirectChannelCreated( channelHandle, sharedMemory))); } } @Override public void onDirectChannelDestroyed(int channelHandle) { if (mDirectChannelCallback != null && mDirectChannelExecutor != null) { mDirectChannelExecutor.execute( () -> mDirectChannelCallback.onDirectChannelDestroyed(channelHandle)); Binder.withCleanCallingIdentity(() -> mDirectChannelExecutor.execute(() -> mDirectChannelCallback.onDirectChannelDestroyed( channelHandle))); } } Loading @@ -870,9 +875,10 @@ public final class VirtualDeviceParams implements Parcelable { public void onDirectChannelConfigured(int channelHandle, @NonNull VirtualSensor sensor, int rateLevel, int reportToken) { if (mDirectChannelCallback != null && mDirectChannelExecutor != null) { mDirectChannelExecutor.execute( () -> mDirectChannelCallback.onDirectChannelConfigured( channelHandle, sensor, rateLevel, reportToken)); Binder.withCleanCallingIdentity(() -> mDirectChannelExecutor.execute(() -> mDirectChannelCallback.onDirectChannelConfigured( channelHandle, sensor, rateLevel, reportToken))); } } } Loading
core/java/android/companion/virtual/audio/VirtualAudioSession.java +5 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.media.AudioTrack; import android.media.audiopolicy.AudioMix; import android.media.audiopolicy.AudioMixingRule; import android.media.audiopolicy.AudioPolicy; import android.os.Binder; import android.util.IntArray; import android.util.Log; Loading Loading @@ -90,14 +91,16 @@ public final class VirtualAudioSession extends IAudioRoutingCallback.Stub implem @Override public void onPlaybackConfigChanged(List<AudioPlaybackConfiguration> configs) { if (mCallback != null) { mExecutor.execute(() -> mCallback.onPlaybackConfigChanged(configs)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onPlaybackConfigChanged(configs))); } } @Override public void onRecordingConfigChanged(List<AudioRecordingConfiguration> configs) { if (mCallback != null) { mExecutor.execute(() -> mCallback.onRecordingConfigChanged(configs)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onRecordingConfigChanged(configs))); } } } Loading
core/java/android/companion/virtual/camera/VirtualCameraConfig.java +17 −9 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.hardware.camera2.CaptureResult; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.params.StreamConfiguration; import android.hardware.camera2.params.StreamConfigurationDuration; import android.os.Binder; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; Loading Loading @@ -516,7 +517,7 @@ public final class VirtualCameraConfig implements Parcelable { @Override public void onOpenCamera() { if (Flags.virtualCameraOnOpen()) { mExecutor.execute(mCallback::onOpenCamera); Binder.withCleanCallingIdentity(() -> mExecutor.execute(mCallback::onOpenCamera)); } } Loading @@ -527,32 +528,39 @@ public final class VirtualCameraConfig implements Parcelable { VirtualCameraSessionConfig virtualCameraSessionConfig = new VirtualCameraSessionConfig(sessionParameters); mExecutor.execute(() -> mCallback.onConfigureSession(virtualCameraSessionConfig, convertToFrameworkCaptureResultConsumer(captureResultConsumer))); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onConfigureSession( virtualCameraSessionConfig, convertToFrameworkCaptureResultConsumer(captureResultConsumer)))); } } @Override public void onStreamConfigured(int streamId, Surface surface, int width, int height, int format) { mExecutor.execute(() -> mCallback.onStreamConfigured(streamId, surface, width, height, format)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onStreamConfigured( streamId, surface, width, height, format))); } @Override public void onProcessCaptureRequest(int streamId, long frameId, CaptureRequest captureRequest) { if (Flags.virtualCameraMetadata() && mPerFrameCameraMetadataEnabled) { mExecutor.execute( () -> mCallback.onProcessCaptureRequest(streamId, frameId, captureRequest)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onProcessCaptureRequest( streamId, frameId, captureRequest))); } else { mExecutor.execute(() -> mCallback.onProcessCaptureRequest(streamId, frameId)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onProcessCaptureRequest( streamId, frameId))); } } @Override public void onStreamClosed(int streamId) { mExecutor.execute(() -> mCallback.onStreamClosed(streamId)); Binder.withCleanCallingIdentity(() -> mExecutor.execute(() -> mCallback.onStreamClosed(streamId))); } @Nullable Loading