Generate SSD page dialog action from typed Jerboa

ober

761f597821e0e47ea41115896be5ba526b6e5193

diff --git a/templates/ssd-review.ss b/templates/ssd-review.ss
index 3361b68..1764c6d 100644
--- a/templates/ssd-review.ss
+++ b/templates/ssd-review.ss
@@ -4819,6 +4819,7 @@
                 mainActivitySetNegativeOpenAnyPdf
                 mainActivitySetPositiveRequestDownloadAccess
                 mainActivitySetNegativeCancelAppend
+                mainActivitySetPositiveLoadPage
                 mainActivityInstallApproveAreaDialogButton
                 mainActivityInstallAppendDialogButton
                 mainActivityInstallEditDialogButtons
@@ -6685,6 +6686,25 @@
               (begin
                 (mainActivityClearInteractionModes activity view)
                 (mainActivitySetStatusRaw activity (appendCanceledStatus))))))
+        (def (mainActivitySetPositiveLoadPage
+               (builder : Builder)
+               (activity : MainActivity)
+               (input : EditText)
+               (pageCount : Int32)) : Builder
+          (alertDialogBuilderSetPositiveAction
+            builder
+            "Load"
+            (lambda ()
+              (let ((page (dialogPageNumberText
+                            (editTextText input)
+                            pageCount)))
+                (if (nullablePageNumberPresent page)
+                    (begin
+                      (mainActivitySetPageIndex
+                        activity
+                        (- (nullablePageNumberOrOne page) (int32 1)))
+                      (mainActivityRenderCurrentPageRaw activity))
+                    (begin))))))
         (def (mainActivityInstallApproveAreaDialogButton
                (activity : MainActivity)
                (dialog : AlertDialog)
@@ -8511,17 +8531,15 @@
        "            setText(pageNumberText(pageIndex))"
        "            selectAll()"
        "        }"
-       "        AlertDialog.Builder(this)"
-       "            .setTitle(\"Go to page\")"
-       "            .setView(input)"
-       "            .setNegativeButton(\"Cancel\", null)"
-       "            .setPositiveButton(\"Load\") { _, _ ->"
-       "                val page = dialogPageNumberText(input.text.toString(), pageCount)"
-       "                if (!nullablePageNumberPresent(page)) return@setPositiveButton"
-       "                mainActivitySetPageIndex(this, nullablePageNumberOrOne(page) - 1)"
-       "                renderCurrentPage()"
-       "            }"
-	       "            .show()"
+       "        mainActivitySetPositiveLoadPage("
+       "            AlertDialog.Builder(this)"
+       "                .setTitle(\"Go to page\")"
+       "                .setView(input)"
+       "                .setNegativeButton(\"Cancel\", null),"
+       "            this,"
+       "            input,"
+       "            pageCount"
+       "        ).show()"
 	       "    }"
 	       ""
        "    internal fun applySsdArea(rect: FloatArray) {"