samsung: hidl: fingerprint: call cancel on fingerprint enrollment completion

Change-Id: I288613b772e3b31b86c7dffd5903dbe21ce5d5a9
diff --git a/hidl/fingerprint/Android.mk b/hidl/fingerprint/Android.mk
index 9070cd8..4af8e8b 100644
--- a/hidl/fingerprint/Android.mk
+++ b/hidl/fingerprint/Android.mk
@@ -39,6 +39,10 @@
     LOCAL_CFLAGS += -DUSES_PERCENTAGE_SAMPLES
 endif
 
+ifeq ($(TARGET_SEC_FP_CALL_CANCEL_ON_ENROLL_COMPLETION),true)
+    LOCAL_CFLAGS += -DCALL_CANCEL_ON_ENROLL_COMPLETION
+endif
+
 LOCAL_MODULE := android.hardware.biometrics.fingerprint@2.1-service.samsung
 LOCAL_INIT_RC := android.hardware.biometrics.fingerprint@2.1-service.samsung.rc
 LOCAL_MODULE_RELATIVE_PATH := hw
diff --git a/hidl/fingerprint/BiometricsFingerprint.cpp b/hidl/fingerprint/BiometricsFingerprint.cpp
index f9b3d15..b38575d 100644
--- a/hidl/fingerprint/BiometricsFingerprint.cpp
+++ b/hidl/fingerprint/BiometricsFingerprint.cpp
@@ -303,6 +303,11 @@
             const_cast<fingerprint_msg_t*>(msg)->data.enroll.samples_remaining =
                 100 - msg->data.enroll.samples_remaining;
 #endif
+#ifdef CALL_CANCEL_ON_ENROLL_COMPLETION
+            if(msg->data.enroll.samples_remaining == 0) {
+                thisPtr->ss_fingerprint_cancel();
+            }
+#endif
             LOG(DEBUG) << "onEnrollResult(fid=" << msg->data.enroll.finger.fid
                        << ", gid=" << msg->data.enroll.finger.gid
                        << ", rem=" << msg->data.enroll.samples_remaining << ")";