From c346bbf748b27a207f1653dd05132469a0f4d962 Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Wed, 27 Aug 2014 17:05:29 -0700 Subject: [PATCH] Camera2: Make sure aborting captures on an idle device works. Check if device is already idle, and if so, don't actually flush, just fire the busy/idle callbacks to the session. Bug: 17306157 Change-Id: I7ba416c6014c7bc1edcad07910aa0aff232af8b0 --- core/java/android/hardware/camera2/impl/CameraDeviceImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java index 513d222d4955..d75dfe6686d1 100644 --- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java @@ -721,6 +721,13 @@ public class CameraDeviceImpl extends CameraDevice { checkIfCameraClosedOrInError(); mDeviceHandler.post(mCallOnBusy); + + // If already idle, just do a busy->idle transition immediately, don't actually + // flush. + if (mIdle) { + mDeviceHandler.post(mCallOnIdle); + return; + } try { LongParcelable lastFrameNumberRef = new LongParcelable(); mRemoteDevice.flush(/*out*/lastFrameNumberRef); -- 2.11.0