Move SSD edit dialog listeners to typed Jerboa
ober
d7e0d98b977941a5066ea2b051a62208ccf060d2
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4818,6 +4818,10 @@ mainActivitySetPositiveOpenAnyPdf mainActivitySetNegativeOpenAnyPdf mainActivitySetPositiveRequestDownloadAccess + mainActivitySetNegativeCancelAppend + mainActivityInstallApproveAreaDialogButton + mainActivityInstallAppendDialogButton + mainActivityInstallEditDialogButtons mainActivityRotateReviewPage mainActivitySeedBundledTruthAsync mainActivityHandleAreaSelectionAfterDelay @@ -4919,6 +4923,7 @@ (type SsdSession) (type SsdReviewView) (type MainActivity) + (type BoxType) (type TruthStore) (type TextView) (type TextWatcher) @@ -4954,6 +4959,12 @@ (text : String) (listener : (-> DialogInterface Int32 Unit))) : Builder (kotlin-member-call setNeutralButton)) + (extern (alertDialogGetButtonRaw + (dialog : AlertDialog) + (which : Int32)) : Button + (kotlin-member-call getButton)) + (extern (alertDialogDismissRaw (dialog : AlertDialog)) : Unit + (kotlin-member-call dismiss)) (extern (autoCompleteDropDownHeightSet (view : AutoCompleteTextView) (height : Int32)) : Unit @@ -5004,6 +5015,9 @@ (view : AutoCompleteTextView) (listener : (-> AdapterView View Int32 Int Unit))) : Unit (kotlin-member-call setOnItemClickListener)) + (extern (autoCompleteDismissDropDownRaw + (view : AutoCompleteTextView)) : Unit + (kotlin-member-call dismissDropDown)) (extern (editTextRaw (view : EditText)) : Editable (kotlin-member-get text)) @@ -5032,6 +5046,24 @@ (label : String) (previousBoxType : String)) : Bool (kotlin-call shouldKeepLabelForBoxTypeAndroid)) + (extern (resolvedLabelForBoxTypeFromActivity + (activity : MainActivity) + (label : String) + (boxType : String) + (previousBoxType : String)) : String + (kotlin-call resolvedLabelForBoxTypeAndroid)) + (extern (boxTypesResolveFromActivity + (activity : MainActivity) + (boxType : String)) : (Nullable BoxType) + (kotlin-call boxTypesResolveAndroid)) + (extern (resolvedBoxTypeNameOrRaw + (boxType : (Nullable BoxType)) + (fallback : String)) : String + (kotlin-call resolvedBoxTypeNameOr)) + (extern (resolvedBoxTypeIdOrRaw + (boxType : (Nullable BoxType)) + (fallback : String)) : String + (kotlin-call resolvedBoxTypeIdOr)) (extern (stringLines (text : String)) : (List String) (kotlin-member-call lines)) (extern (stringSplitTwoChars (text : String) @@ -5310,6 +5342,32 @@ (extern (mainActivityRequestDownloadAccessRaw (activity : MainActivity)) : Unit (kotlin-member-call requestDownloadAccess)) + (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 (mainActivityDeleteSelectedGroupRaw + (activity : MainActivity)) : Unit + (kotlin-member-call deleteSelectedGroup)) + (extern (mainActivitySaveSessionAsyncRaw + (activity : MainActivity) + (session : SsdSession) + (savingStatus : String) + (savedStatus : String) + (afterSaved : (-> Unit))) : Unit + (kotlin-member-call saveSessionAsync)) (extern (mainActivityReviewViewSet (activity : MainActivity) (view : SsdReviewView)) : Unit @@ -6559,6 +6617,23 @@ text (lambda ((unusedDialog : DialogInterface) (unusedWhich : Int32)) (invoke action)))) + (def (alertDialogSetPositiveButtonAction + (dialog : AlertDialog) + (action : (-> Unit))) : Unit + (buttonSetOnClickAction + (alertDialogGetButtonRaw dialog (int32 -1)) + action)) + (def (alertDialogSetNeutralButtonAction + (dialog : AlertDialog) + (action : (-> Unit))) : Unit + (buttonSetOnClickAction + (alertDialogGetButtonRaw dialog (int32 -3)) + action)) + (def (alertDialogDismiss (dialog : AlertDialog)) : Unit + (alertDialogDismissRaw dialog)) + (def (autoCompleteDismissDropDown + (view : AutoCompleteTextView)) : Unit + (autoCompleteDismissDropDownRaw view)) (def (mainActivitySetPositiveChooseSsdPdfFolder (builder : Builder) (activity : MainActivity)) : Builder @@ -6599,6 +6674,130 @@ "Access Downloads" (lambda () (mainActivityRequestDownloadAccessRaw activity)))) + (def (mainActivitySetNegativeCancelAppend + (builder : Builder) + (activity : MainActivity) + (view : SsdReviewView)) : Builder + (alertDialogBuilderSetNegativeAction + builder + "Cancel" + (lambda () + (begin + (mainActivityClearInteractionModes activity view) + (mainActivitySetStatusRaw activity (appendCanceledStatus)))))) + (def (mainActivityInstallApproveAreaDialogButton + (activity : MainActivity) + (dialog : AlertDialog) + (rect : FloatArray) + (detectedIds : (List String)) + (label : EditText) + (boxType : AutoCompleteTextView) + (firingArc : AutoCompleteTextView) + (count : EditText)) : Unit + (alertDialogSetPositiveButtonAction + dialog + (lambda () + (let ((boxTypeText (autoCompleteText boxType))) + (let ((labelText + (resolvedLabelForBoxTypeFromActivity + activity + (editTextText label) + boxTypeText + ""))) + (let ((firingArcText (autoCompleteText firingArc))) + (let ((countValue (dialogCountValue (editTextText count)))) + (begin + (autoCompleteDismissDropDown boxType) + (autoCompleteDismissDropDown firingArc) + (alertDialogDismiss dialog) + (mainActivityApproveAreaRaw + activity + rect + detectedIds + labelText + boxTypeText + firingArcText + countValue))))))))) + (def (mainActivityInstallAppendDialogButton + (activity : MainActivity) + (dialog : AlertDialog) + (rect : FloatArray) + (detectedIds : (List String)) + (group : SsdGroup) + (count : EditText)) : Unit + (alertDialogSetPositiveButtonAction + dialog + (lambda () + (let ((countValue (dialogCountValue (editTextText count)))) + (begin + (alertDialogDismiss dialog) + (mainActivityAppendAreaToGroupRaw + activity + rect + detectedIds + group + countValue)))))) + (def (mainActivityInstallEditDialogButtons + (activity : MainActivity) + (dialog : AlertDialog) + (session : SsdSession) + (group : SsdGroup) + (label : EditText) + (boxType : AutoCompleteTextView) + (firingArc : AutoCompleteTextView) + (count : EditText) + (view : SsdReviewView) + (truthStore : TruthStore) + (confirmHaptic : Int32)) : Unit + (begin + (alertDialogSetPositiveButtonAction + dialog + (lambda () + (let ((boxTypeText (autoCompleteText boxType))) + (let ((labelText + (resolvedLabelForBoxTypeFromActivity + activity + (editTextText label) + boxTypeText + (SsdGroup-boxTypeId group)))) + (begin + (autoCompleteDismissDropDown boxType) + (autoCompleteDismissDropDown firingArc) + (alertDialogDismiss dialog) + (let ((resolved + (boxTypesResolveFromActivity + activity + boxTypeText))) + (begin + (ssdSessionApplyEditedGroup + session + group + labelText + (resolvedBoxTypeNameOrRaw + resolved + (SsdGroup-label group)) + (resolvedBoxTypeIdOrRaw resolved boxTypeText) + (autoCompleteText firingArc) + (editTextText count)) + (truthStoreAppendGroupEdited truthStore session) + (reviewViewPerformHapticAndInvalidate + view + confirmHaptic) + (mainActivitySaveSessionAsyncRaw + activity + session + (editSavingStatus group) + (editSavedStatus group) + (lambda () + (begin)))))))))) + (alertDialogSetNeutralButtonAction + dialog + (lambda () + (begin + (autoCompleteDismissDropDown boxType) + (autoCompleteDismissDropDown firingArc) + (alertDialogDismiss dialog) + (mainActivityDeleteSelectedGroupRaw activity)))))) (def (permissionResultGranted (actual : Int32) (granted : Int32)) : Bool (= actual granted)) (def (downloadAccessBeforeRuntimePermissions (beforeRuntimePermissions : Bool)) : Bool @@ -8611,16 +8810,7 @@ " .setNegativeButton(\"Cancel\", null)" " .setPositiveButton(\"Approve\", null)" " .show()" - " dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {" - " val boxTypeText = boxType.text.toString()" - " val labelText = resolvedLabelForBoxTypeAndroid(this, label.text.toString(), boxTypeText, \"\")" - " val firingArcText = firingArc.text.toString()" - " val countValue = dialogCountValue(count.text.toString())" - " boxType.dismissDropDown()" - " firingArc.dismissDropDown()" - " dialog.dismiss()" - " approveArea(rect, detectedIds, labelText, boxTypeText, firingArcText, countValue)" - " }" + " mainActivityInstallApproveAreaDialogButton(this, dialog, rect, detectedIds, label, boxType, firingArc, count)" " focusBoxTypeDropdown(dialog, boxType)" " }" "" @@ -8643,21 +8833,14 @@ " .setTitle(title)" " .setMessage(detectedBoxesMessage(detectedIds.size))" " .setView(count)" - " .setNegativeButton(\"Cancel\") { _, _ ->" - " mainActivityClearInteractionModes(this, reviewView)" - " setStatus(appendCanceledStatus())" - " }" + " .let { mainActivitySetNegativeCancelAppend(it, this, reviewView) }" " .setPositiveButton(\"Append\", null)" " .show()" - " dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {" - " val countValue = dialogCountValue(count.text.toString())" - " dialog.dismiss()" - " appendAreaToGroup(rect, detectedIds, appendGroup, countValue)" - " }" + " mainActivityInstallAppendDialogButton(this, dialog, rect, detectedIds, appendGroup, count)" " count.requestFocus()" " }" "" - " private fun saveSessionAsync(" + " internal fun saveSessionAsync(" " session: SsdSession," " savingStatus: String," " savedStatus: String," @@ -8685,7 +8868,7 @@ " }" " }" "" - " private fun approveArea(" + " internal fun approveArea(" " rect: FloatArray," " detectedIds: List<String>," " label: String," @@ -8708,7 +8891,7 @@ " )" " }" "" - " private fun appendAreaToGroup(rect: FloatArray, detectedIds: List<String>, group: SsdGroup, count: Int) {" + " 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" @@ -8761,37 +8944,19 @@ " .setNeutralButton(\"Delete\", null)" " .setPositiveButton(\"Save\", null)" " .show()" - " dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {" - " val boxTypeText = boxType.text.toString()" - " val labelText = resolvedLabelForBoxTypeAndroid(this, label.text.toString(), boxTypeText, group.boxTypeId)" - " val firingArcText = firingArc.text.toString()" - " boxType.dismissDropDown()" - " firingArc.dismissDropDown()" - " dialog.dismiss()" - " val resolved = boxTypesResolveAndroid(this, boxTypeText)" - " ssdSessionApplyEditedGroup(" - " session," - " group," - " labelText," - " resolvedBoxTypeNameOr(resolved, group.label)," - " resolvedBoxTypeIdOr(resolved, boxTypeText)," - " firingArcText," - " count.text.toString()" - " )" - " truthStoreAppendGroupEdited(truthStore, session)" - " reviewViewPerformHapticAndInvalidate(reviewView, HapticFeedbackConstants.CONFIRM)" - " saveSessionAsync(" - " session," - " editSavingStatus(group)," - " editSavedStatus(group)" - " )" - " }" - " dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener {" - " boxType.dismissDropDown()" - " firingArc.dismissDropDown()" - " dialog.dismiss()" - " deleteSelectedGroup()" - " }" + " mainActivityInstallEditDialogButtons(" + " this," + " dialog," + " session," + " group," + " label," + " boxType," + " firingArc," + " count," + " reviewView," + " truthStore," + " HapticFeedbackConstants.CONFIRM" + " )" " boxType.selectAll()" " focusBoxTypeDropdown(dialog, boxType)" " }" @@ -8806,7 +8971,7 @@ " )" " }" "" - " private fun deleteSelectedGroup() {" + " internal fun deleteSelectedGroup() {" " if (sessionMissing(currentSession)) return" " val session = ssdSessionOrEmpty(currentSession)" " val group = selectedGroup()"