Generate SSD area approve actions from typed Jerboa
ober
b52b47eb2b4cf5b45dc39074eab0746f2c7772b9
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4889,6 +4889,8 @@ mainActivitySaveTruth mainActivityDeleteGroup mainActivityDeleteSelectedGroup + mainActivityApproveArea + mainActivityAppendAreaToGroupAction mainActivityAddApprovedAreaGroup mainActivityAppendAreaToGroup mainActivitySuppressGroupAsDeleted @@ -5669,22 +5671,6 @@ (extern (mainActivityShowNoSsdPdfsDialogRaw (activity : MainActivity)) : Unit (kotlin-member-call showNoSsdPdfsDialog)) - (extern (mainActivityApproveAreaRaw - (activity : MainActivity) - (rect : FloatArray) - (detectedIds : (List String)) - (label : String) - (boxType : String) - (firingArc : String) - (count : Int32)) : Unit - (kotlin-member-call approveArea)) - (extern (mainActivityAppendAreaToGroupRaw - (activity : MainActivity) - (rect : FloatArray) - (detectedIds : (List String)) - (group : SsdGroup) - (count : Int32)) : Unit - (kotlin-member-call appendAreaToGroup)) (extern (mainActivitySaveSessionAsyncRaw (activity : MainActivity) (session : SsdSession) @@ -6831,6 +6817,96 @@ loadedSession (ssdGroupOrEmpty group) rejectHaptic)))))) + (def (mainActivityApproveArea + (activity : MainActivity) + (view : SsdReviewView) + (store : TruthStore) + (session : (Nullable SsdSession)) + (rect : FloatArray) + (detectedIds : (List String)) + (label : String) + (boxType : String) + (firingArc : String) + (count : Int32) + (confirmHaptic : Int32)) : Unit + (if (sessionMissing session) + (begin) + (let ((loadedSession (ssdSessionOrEmpty session))) + (let ((resolvedType + (boxTypesResolveFromActivity activity boxType))) + (let ((resolvedName + (if (nullable-null? resolvedType) + (nullable-none String) + (nullable-some + (BoxType-name (nullable-get resolvedType)))))) + (let ((cleanLabel + (manualGroupLabel + (resolvedLabelForBoxTypeFromActivity + activity + label + boxType + "") + resolvedName + ""))) + (let ((group + (mainActivityAddApprovedAreaGroup + activity + view + loadedSession + rect + detectedIds + cleanLabel + (resolvedBoxTypeIdOrRaw resolvedType boxType) + firingArc + count))) + (begin + (truthStoreAppendGroupApproved store loadedSession) + (mainActivityClearInteractionModes activity view) + (reviewViewClearInteractionState view) + (reviewViewPerformHapticAndInvalidate + view + confirmHaptic) + (mainActivitySaveSessionNoAfter + activity + loadedSession + (approveCountSavingStatus group (SsdGroup-count group)) + (approveCountSavedStatus group (SsdGroup-count group))))))))))) + (def (mainActivityAppendAreaToGroupAction + (activity : MainActivity) + (view : SsdReviewView) + (store : TruthStore) + (session : (Nullable SsdSession)) + (rect : FloatArray) + (detectedIds : (List String)) + (group : SsdGroup) + (count : Int32) + (confirmHaptic : Int32)) : Unit + (if (sessionMissing session) + (begin) + (let ((loadedSession (ssdSessionOrEmpty session))) + (if (ssdSessionGroupMissing loadedSession group) + (begin) + (let ((added + (mainActivityAppendAreaToGroup + activity + view + loadedSession + rect + detectedIds + group + count))) + (begin + (mainActivityClearInteractionModes activity view) + (reviewViewClearInteractionState view) + (truthStoreAppendGroupAppended store loadedSession) + (reviewViewPerformHapticAndInvalidate + view + confirmHaptic) + (mainActivitySaveSessionNoAfter + activity + loadedSession + (appendSavingStatus group added) + (appendSavedStatus group)))))))) (def (mainActivityAddApprovedAreaGroup (activity : MainActivity) (view : SsdReviewView) @@ -8267,7 +8343,10 @@ (label : EditText) (boxType : AutoCompleteTextView) (firingArc : AutoCompleteTextView) - (count : EditText)) : Unit + (count : EditText) + (view : SsdReviewView) + (store : TruthStore) + (confirmHaptic : Int32)) : Unit (alertDialogSetPositiveButtonAction dialog (lambda () @@ -8284,33 +8363,44 @@ (autoCompleteDismissDropDown boxType) (autoCompleteDismissDropDown firingArc) (alertDialogDismiss dialog) - (mainActivityApproveAreaRaw + (mainActivityApproveArea activity + view + store + (mainActivityCurrentSessionRaw activity) rect detectedIds labelText boxTypeText firingArcText - countValue))))))))) + countValue + confirmHaptic))))))))) (def (mainActivityInstallAppendDialogButton (activity : MainActivity) (dialog : AlertDialog) (rect : FloatArray) (detectedIds : (List String)) (group : SsdGroup) - (count : EditText)) : Unit + (count : EditText) + (view : SsdReviewView) + (store : TruthStore) + (confirmHaptic : Int32)) : Unit (alertDialogSetPositiveButtonAction dialog (lambda () (let ((countValue (dialogCountValue (editTextText count)))) (begin (alertDialogDismiss dialog) - (mainActivityAppendAreaToGroupRaw + (mainActivityAppendAreaToGroupAction activity + view + store + (mainActivityCurrentSessionRaw activity) rect detectedIds group - countValue)))))) + countValue + confirmHaptic)))))) (def (mainActivityInstallEditDialogButtons (activity : MainActivity) (dialog : AlertDialog) @@ -10498,7 +10588,7 @@ " .setNegativeButton(\"Cancel\", null)" " .setPositiveButton(\"Approve\", null)" " .show()" - " mainActivityInstallApproveAreaDialogButton(this, dialog, rect, detectedIds, label, boxType, firingArc, count)" + " mainActivityInstallApproveAreaDialogButton(this, dialog, rect, detectedIds, label, boxType, firingArc, count, reviewView, truthStore, HapticFeedbackConstants.CONFIRM)" " mainActivityFocusBoxTypeDropdown(dialog, boxType, resources.displayMetrics.heightPixels, android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE or android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)" " }" "" @@ -10524,7 +10614,7 @@ " .let { mainActivitySetNegativeCancelAppend(it, this, reviewView) }" " .setPositiveButton(\"Append\", null)" " .show()" - " mainActivityInstallAppendDialogButton(this, dialog, rect, detectedIds, appendGroup, count)" + " mainActivityInstallAppendDialogButton(this, dialog, rect, detectedIds, appendGroup, count, reviewView, truthStore, HapticFeedbackConstants.CONFIRM)" " count.requestFocus()" " }" "" @@ -10542,44 +10632,6 @@ " mainActivitySaveTruthSnapshotAsync(this, reviewView, truthStore, truth, viewport, savedStatus, afterSaved)" " }" "" - " internal fun approveArea(" - " rect: FloatArray," - " detectedIds: List<String>," - " label: String," - " boxType: String," - " firingArc: String," - " count: Int" - " ) {" - " if (sessionMissing(currentSession)) return" - " val session = ssdSessionOrEmpty(currentSession)" - " val resolvedType = boxTypesResolveAndroid(this, boxType)" - " val cleanLabel = manualGroupLabel(resolvedLabelForBoxTypeAndroid(this, label, boxType, \"\"), resolvedBoxTypeNameOr(resolvedType, \"\"), \"\")" - " val group = mainActivityAddApprovedAreaGroup(this, reviewView, session, rect, detectedIds, cleanLabel, resolvedBoxTypeIdOr(resolvedType, boxType), firingArc, count)" - " truthStoreAppendGroupApproved(truthStore, session)" - " mainActivityFinishSelectInteraction(this, reviewView)" - " reviewViewPerformHapticAndInvalidate(reviewView, HapticFeedbackConstants.CONFIRM)" - " saveSessionAsync(" - " session," - " approveCountSavingStatus(group, group.count)," - " approveCountSavedStatus(group, group.count)" - " )" - " }" - "" - " internal fun appendAreaToGroup(rect: FloatArray, detectedIds: List<String>, group: SsdGroup, count: Int) {" - " if (sessionMissing(currentSession)) return" - " val session = ssdSessionOrEmpty(currentSession)" - " if (ssdSessionGroupMissing(session, group)) return" - " val added = mainActivityAppendAreaToGroup(this, reviewView, session, rect, detectedIds, group, count)" - " mainActivityFinishSelectInteraction(this, reviewView)" - " truthStoreAppendGroupAppended(truthStore, session)" - " reviewViewPerformHapticAndInvalidate(reviewView, HapticFeedbackConstants.CONFIRM)" - " saveSessionAsync(" - " session," - " appendSavingStatus(group, added)," - " appendSavedStatus(group)" - " )" - " }" - "" " private fun showGroupEditDialog(group: SsdGroup) {" " if (sessionMissing(currentSession)) return" " val session = ssdSessionOrEmpty(currentSession)"