Generate SSD permission result handling from typed Jerboa

ober

df7248f3061ee29dfca4f7f94ca7c1040a2aea23

diff --git a/templates/ssd-review.ss b/templates/ssd-review.ss
index 20b202f..7befe51 100644
--- a/templates/ssd-review.ss
+++ b/templates/ssd-review.ss
@@ -4927,6 +4927,7 @@
                 mainActivityRequestDownloadAccess
                 mainActivityRememberAndBrowseSsdFolder
                 mainActivitySyncSelectedTree
+                mainActivityHandleReadStoragePermissionResult
                 mainActivitySetPositiveChooseSsdPdfFolder
                 mainActivitySetNeutralChooseSsdPdfFolder
                 mainActivitySetPositiveOpenAnyPdf
@@ -8518,6 +8519,37 @@
               uri
               (persistableReadWriteUriPermissionFlags flags))
             (mainActivitySyncSelectedTreeAsync activity store uri)))
+        (def (mainActivityHandleReadStoragePermissionResult
+               (activity : MainActivity)
+               (requestCode : Int32)
+               (readStorageRequestCode : Int32)
+               (requestOpenPdfCode : Int32)
+               (requestOpenTreeCode : Int32)
+               (treePreferenceKey : String)
+               (lastPdfPreferenceKey : String)
+               (sdkInt : Int32)
+               (androidRCode : Int32)
+               (androidMCode : Int32)
+               (readExternalStoragePermission : String)
+               (manageAppAllFilesAccessAction : String)
+               (manageAllFilesAccessAction : String)) : Unit
+          (if (requestIsReadStorage requestCode readStorageRequestCode)
+            (begin
+              (mainActivitySetReopenSsdBrowserOnResume activity #f)
+              (mainActivityOpenPdf
+                activity
+                requestOpenPdfCode
+                requestOpenTreeCode
+                readStorageRequestCode
+                treePreferenceKey
+                lastPdfPreferenceKey
+                sdkInt
+                androidRCode
+                androidMCode
+                readExternalStoragePermission
+                manageAppAllFilesAccessAction
+                manageAllFilesAccessAction))
+            (begin)))
         (def (mainActivitySdkAtLeast (sdk : Int32) (api : Int32)) : Bool
           (>= sdk api))
         (def (mainActivityInitialPickerUri
@@ -11786,10 +11818,7 @@
        "        grantResults: IntArray"
        "    ) {"
        "        super.onRequestPermissionsResult(requestCode, permissions, grantResults)"
-       "        if (requestIsReadStorage(requestCode, REQ_READ_STORAGE)) {"
-       "            mainActivitySetReopenSsdBrowserOnResume(this, false)"
-       "            mainActivityOpenPdf(this, REQ_OPEN_PDF, REQ_OPEN_SSD_PDF_TREE, REQ_READ_STORAGE, PREF_SSD_PDF_TREE_URI, PREF_LAST_PDF_URI, Build.VERSION.SDK_INT, Build.VERSION_CODES.R, Build.VERSION_CODES.M, Manifest.permission.READ_EXTERNAL_STORAGE, Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)"
-       "        }"
+       "        mainActivityHandleReadStoragePermissionResult(this, requestCode, REQ_READ_STORAGE, REQ_OPEN_PDF, REQ_OPEN_SSD_PDF_TREE, PREF_SSD_PDF_TREE_URI, PREF_LAST_PDF_URI, Build.VERSION.SDK_INT, Build.VERSION_CODES.R, Build.VERSION_CODES.M, Manifest.permission.READ_EXTERNAL_STORAGE, Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)"
        "    }"
        ""
        "    internal fun findSsdPdfsFromTree(treeUri: Uri): List<SsdPdfChoice> {"