Camera2: add lock/unlock CAF to handle autoFocus in CAF mode

Add lock/unlock CAF to handle auto focus in CAF mode, since Android
Camera API has special requirement for autoFocus in CAF mode which
need focus to be locked.

Change-Id: I9d4258eba152d79c1c38d6fac1cbbdc7df0e78d4
diff --git a/QCamera2/HAL/QCameraStateMachine.cpp b/QCamera2/HAL/QCameraStateMachine.cpp
index 00a58b9..3fc050d 100644
--- a/QCamera2/HAL/QCameraStateMachine.cpp
+++ b/QCamera2/HAL/QCameraStateMachine.cpp
@@ -501,7 +501,6 @@
         }
         break;
     case QCAMERA_SM_EVT_CANCEL_PICTURE:
-    case QCAMERA_SM_EVT_STOP_AUTO_FOCUS:
         {
             // no op needed here
             ALOGD("%s: No ops for evt(%d) in state(%d)", __func__, evt, m_state);
@@ -511,6 +510,15 @@
             m_parent->signalAPIResult(&result);
         }
         break;
+    case QCAMERA_SM_EVT_STOP_AUTO_FOCUS:
+        {
+            rc = m_parent->cancelAutoFocus();
+            result.status = rc;
+            result.request_api = evt;
+            result.result_type = QCAMERA_API_RESULT_TYPE_DEF;
+            m_parent->signalAPIResult(&result);
+        }
+        break;
     case QCAMERA_SM_EVT_REG_FACE_IMAGE:
         {
             int32_t faceID = 0;
@@ -1023,7 +1031,7 @@
         break;
     case QCAMERA_SM_EVT_PREPARE_SNAPSHOT:
         {
-            rc = m_parent->prepareHardwareForSnapshot();
+            rc = m_parent->prepareHardwareForSnapshot(FALSE);
             if (rc == NO_ERROR) {
                 // Do not signal API result in this case.
                 // Need to wait for snapshot done in metadta.