Move SSD activity request dispatch to typed Kotlin

ober

fefd7f0bf81b58c6a4e3cdc34b08d1524d8e70bb

diff --git a/templates/ssd-review.ss b/templates/ssd-review.ss
index 4f87875..7b5cd24 100644
--- a/templates/ssd-review.ss
+++ b/templates/ssd-review.ss
@@ -3887,6 +3887,9 @@
                 hasReplacementLabel hasResolvedLabel
                 packageUriText mediaStorePdfSelection
                 mediaStoreDisplayNameSort
+                requestIsOpenPdf requestIsOpenSsdPdfTree
+                requestIsExportZip requestIsImportZip
+                requestIsSyncTree requestIsReadStorage
                 clampPageIndex shiftPageIndex displayGroupCanvasLabel
                 dropdownHeight dialogPageNumber dialogPageNumberText
                 pageNumberText sessionIdFromUuid nullableLowercaseOrEmpty
@@ -4290,6 +4293,20 @@
                 (string-append displayNameColumn " LIKE ?)")))))
         (def (mediaStoreDisplayNameSort (displayNameColumn : String)) : String
           (string-append displayNameColumn " COLLATE NOCASE ASC"))
+        (def (requestCodeMatches (requestCode : Int32) (expected : Int32)) : Bool
+          (= requestCode expected))
+        (def (requestIsOpenPdf (requestCode : Int32) (expected : Int32)) : Bool
+          (requestCodeMatches requestCode expected))
+        (def (requestIsOpenSsdPdfTree (requestCode : Int32) (expected : Int32)) : Bool
+          (requestCodeMatches requestCode expected))
+        (def (requestIsExportZip (requestCode : Int32) (expected : Int32)) : Bool
+          (requestCodeMatches requestCode expected))
+        (def (requestIsImportZip (requestCode : Int32) (expected : Int32)) : Bool
+          (requestCodeMatches requestCode expected))
+        (def (requestIsSyncTree (requestCode : Int32) (expected : Int32)) : Bool
+          (requestCodeMatches requestCode expected))
+        (def (requestIsReadStorage (requestCode : Int32) (expected : Int32)) : Bool
+          (requestCodeMatches requestCode expected))
         (def (dropdownHeight (screenHeight : Int32)) : Int32
           (let ((third (/ screenHeight (int32 3))))
             (if (> third (int32 620))
@@ -6407,18 +6424,22 @@
        "        super.onActivityResult(requestCode, resultCode, data)"
        "        if (resultCode != RESULT_OK) return"
        "        val uri = data?.data ?: return"
-       "        when (requestCode) {"
-       "            REQ_OPEN_PDF -> loadPdf(uri, data.flags)"
-       "            REQ_OPEN_SSD_PDF_TREE -> rememberAndBrowseSsdFolder(uri, data.flags)"
-       "            REQ_EXPORT_ZIP -> contentResolver.openOutputStream(uri)?.use {"
+       "        if (requestIsOpenPdf(requestCode, REQ_OPEN_PDF)) {"
+       "            loadPdf(uri, data.flags)"
+       "        } else if (requestIsOpenSsdPdfTree(requestCode, REQ_OPEN_SSD_PDF_TREE)) {"
+       "            rememberAndBrowseSsdFolder(uri, data.flags)"
+       "        } else if (requestIsExportZip(requestCode, REQ_EXPORT_ZIP)) {"
+       "            contentResolver.openOutputStream(uri)?.use {"
        "                truthStore.exportZip(it)"
        "                setStatus(exportedTruthZipStatus())"
        "            }"
-       "            REQ_IMPORT_ZIP -> contentResolver.openInputStream(uri)?.use {"
+       "        } else if (requestIsImportZip(requestCode, REQ_IMPORT_ZIP)) {"
+       "            contentResolver.openInputStream(uri)?.use {"
        "                val count = truthStore.importZip(it)"
        "                setStatus(importedTruthZipStatus(count, truthStore.storageSummary()))"
        "            }"
-       "            REQ_SYNC_TREE -> syncSelectedTree(uri, data.flags)"
+       "        } else if (requestIsSyncTree(requestCode, REQ_SYNC_TREE)) {"
+       "            syncSelectedTree(uri, data.flags)"
        "        }"
        "    }"
        ""
@@ -6428,7 +6449,7 @@
        "        grantResults: IntArray"
        "    ) {"
        "        super.onRequestPermissionsResult(requestCode, permissions, grantResults)"
-       "        if (requestCode == REQ_READ_STORAGE) {"
+       "        if (requestIsReadStorage(requestCode, REQ_READ_STORAGE)) {"
        "            reopenSsdBrowserOnResume = false"
        "            openPdf()"
        "        }"