Generate SSD append dialog from typed Jerboa
ober
480ba29eb57f7fd351fae48f5ff79f539c8817ee
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4895,6 +4895,7 @@ mainActivityDeleteSelectedGroup mainActivityApproveArea mainActivityAppendAreaToGroupAction + mainActivityShowAppendDialog mainActivityApplySsdArea mainActivityHandleAreaSelected mainActivityAddApprovedAreaGroup @@ -5296,6 +5297,10 @@ (view : EditText) (inputType : Int32)) : Unit (kotlin-member-set inputType)) + (extern (editTextHintSetRaw + (view : EditText) + (hint : String)) : Unit + (kotlin-member-set hint)) (extern (editTextSetTextRaw (view : EditText) (text : String)) : Unit @@ -5307,6 +5312,9 @@ (extern (editTextSelectAllRaw (view : EditText)) : Unit (kotlin-member-call selectAll)) + (extern (editTextRequestFocusRaw + (view : EditText)) : Unit + (kotlin-member-call requestFocus)) (extern (buttonSetOnClickListenerRaw (button : Button) (listener : (-> View Unit))) : Unit @@ -7104,6 +7112,63 @@ loadedSession (appendSavingStatus group added) (appendSavedStatus group)))))))) + (def (mainActivityShowAppendDialog + (activity : MainActivity) + (view : SsdReviewView) + (store : TruthStore) + (session : (Nullable SsdSession)) + (selectedGroupId : (Nullable String)) + (rect : FloatArray) + (detectedIds : (List String)) + (confirmHaptic : Int32)) : Unit + (if (sessionMissing session) + (begin) + (let ((group + (mainActivitySelectRequestedGroup + activity + view + session + selectedGroupId))) + (if (ssdGroupMissing group) + (begin + (mainActivityClearInteractionModes activity view) + (mainActivitySetStatusRaw + activity + (appendCanceledNoGroupStatus))) + (let ((appendGroup (ssdGroupOrEmpty group)) + (count + (mainActivityNumberInput + activity + "Count" + (detectedIdsCountText (list-size detectedIds))))) + (let ((dialog + (alertDialogBuilderShowRaw + (alertDialogBuilderSetPositiveAction + (mainActivitySetNegativeCancelAppend + (alertDialogBuilderSetViewRaw + (alertDialogBuilderSetMessageRaw + (alertDialogBuilderSetTitleRaw + (alertDialogBuilderForActivityRaw activity) + (appendDialogTitle appendGroup)) + (detectedBoxesMessage + (list-size detectedIds))) + count) + activity + view) + "Append" + (lambda () (begin)))))) + (begin + (mainActivityInstallAppendDialogButton + activity + dialog + rect + detectedIds + appendGroup + count + view + store + confirmHaptic) + (editTextRequestFocusRaw count)))))))) (def (mainActivityDetectCurrentForceWithState (activity : MainActivity)) : Unit (mainActivityDetectCurrentRaw @@ -7690,6 +7755,16 @@ (editableToString (editTextRaw view))) (def (editTextSetSelectionToEnd (view : EditText) (text : String)) : Unit (editTextSetSelectionRaw view (int32 (string-length text)))) + (def (mainActivityNumberInput + (activity : MainActivity) + (hint : String) + (text : String)) : EditText + (let ((input (editTextForActivity activity))) + (begin + (editTextHintSetRaw input hint) + (editTextInputTypeSetRaw input (inputTypeClassNumber)) + (editTextSetTextRaw input text) + input))) (def (editTextReplaceAutoLabelForBoxType (activity : MainActivity) (label : EditText) @@ -10909,7 +10984,7 @@ " return" " }" " if (appendMode) {" - " showAppendDialog(rect, detectedIds)" + " mainActivityShowAppendDialog(this, reviewView, truthStore, session, selectedGroupId, rect, detectedIds, HapticFeedbackConstants.CONFIRM)" " return" " }" " val layout = LinearLayout(this).apply {" @@ -10944,32 +11019,6 @@ " mainActivityFocusBoxTypeDropdown(dialog, boxType, resources.displayMetrics.heightPixels, android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE or android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)" " }" "" - " private fun showAppendDialog(rect: FloatArray, detectedIds: List<String>) {" - " if (sessionMissing(currentSession)) return" - " val group = mainActivitySelectRequestedGroup(this, reviewView, currentSession, selectedGroupId)" - " if (ssdGroupMissing(group)) {" - " mainActivityClearInteractionModes(this, reviewView)" - " setStatus(appendCanceledNoGroupStatus())" - " return" - " }" - " val appendGroup = ssdGroupOrEmpty(group)" - " val count = EditText(this).apply {" - " hint = \"Count\"" - " inputType = InputType.TYPE_CLASS_NUMBER" - " setText(detectedIdsCountText(detectedIds.size))" - " }" - " val title = appendDialogTitle(appendGroup)" - " val dialog = AlertDialog.Builder(this)" - " .setTitle(title)" - " .setMessage(detectedBoxesMessage(detectedIds.size))" - " .setView(count)" - " .let { mainActivitySetNegativeCancelAppend(it, this, reviewView) }" - " .setPositiveButton(\"Append\", null)" - " .show()" - " mainActivityInstallAppendDialogButton(this, dialog, rect, detectedIds, appendGroup, count, reviewView, truthStore, HapticFeedbackConstants.CONFIRM)" - " count.requestFocus()" - " }" - "" " private fun showGroupEditDialog(group: SsdGroup) {" " if (sessionMissing(currentSession)) return" " val session = ssdSessionOrEmpty(currentSession)"