Generate SSD PDF dialogs from typed Jerboa
ober
19d83fcd8a43ab85afdbc0817b999bd870c2a156
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4925,6 +4925,8 @@ mainActivitySetPositiveLoadPage runBackground runBackgroundNamed mainActivityLogClientEventAsync mainActivitySetPdfChoiceItems + mainActivityShowPdfChoiceDialog + mainActivityShowNoSsdPdfsDialog mainActivityPullTruthDumpAsync mainActivityPushTruthDumpAsync mainActivityExportTruthZip mainActivityImportTruthZip @@ -5851,14 +5853,9 @@ (activity : MainActivity) (uri : Uri)) : (List SsdPdfChoice) (kotlin-member-call findSsdPdfsFromTree)) - (extern (mainActivityShowPdfChoiceDialogRaw - (activity : MainActivity) - (choices : (List SsdPdfChoice)) - (title : String)) : Unit - (kotlin-member-call showPdfChoiceDialog)) - (extern (mainActivityShowNoSsdPdfsDialogRaw - (activity : MainActivity)) : Unit - (kotlin-member-call showNoSsdPdfsDialog)) + (extern (mainActivityHasDirectDownloadAccessRaw + (activity : MainActivity)) : Bool + (kotlin-member-call hasDirectDownloadAccess)) (extern (mainActivityClientLogPayloadRaw (activity : MainActivity) (event : String) @@ -8468,6 +8465,44 @@ activity (ssdPdfChoiceUriAt choices which) readFlag)))) + (def (mainActivityShowPdfChoiceDialog + (activity : MainActivity) + (choices : (List SsdPdfChoice)) + (title : String)) : Unit + (begin + (alertDialogBuilderShowRaw + (mainActivitySetPositiveOpenAnyPdf + (mainActivitySetNeutralChooseSsdPdfFolder + (mainActivitySetPdfChoiceItems + (alertDialogBuilderSetCancelAction + (alertDialogBuilderSetTitleRaw + (alertDialogBuilderForActivityRaw activity) + title)) + activity + choices + (intentFlagGrantReadUriPermission)) + activity) + activity)) + (mainActivitySetStatusRaw + activity + (ssdPdfFoundStatus choices)))) + (def (mainActivityShowNoSsdPdfsDialog + (activity : MainActivity) + (hasDirectAccess : Bool)) : Unit + (begin + (alertDialogBuilderShowRaw + (mainActivitySetPositiveRequestDownloadAccess + (mainActivitySetNeutralChooseSsdPdfFolder + (mainActivitySetNegativeOpenAnyPdf + (alertDialogBuilderSetMessageRaw + (alertDialogBuilderSetTitleRaw + (alertDialogBuilderForActivityRaw activity) + (noSsdPdfsTitle)) + (noSsdPdfsDialogMessage hasDirectAccess)) + activity) + activity) + activity)) + (mainActivitySetStatusRaw activity (noSsdPdfsFoundStatus)))) (def (showShortToast (activity : MainActivity) (text : String)) : Unit @@ -8801,12 +8836,14 @@ activity (lambda () (if (ssdPdfChoicesAvailable unique) - (mainActivityShowPdfChoiceDialogRaw + (mainActivityShowPdfChoiceDialog activity unique "Open SSD PDF") - (mainActivityShowNoSsdPdfsDialogRaw - activity))))))))))) + (mainActivityShowNoSsdPdfsDialog + activity + (mainActivityHasDirectDownloadAccessRaw + activity)))))))))))) (def (alertDialogBuilderSetCancelAction (builder : Builder)) : Builder (alertDialogBuilderSetNegativeAction @@ -8849,13 +8886,11 @@ activity (noSsdPdfsChooseFolderStatus))) (begin - (mainActivityShowPdfChoiceDialogRaw + (mainActivityShowPdfChoiceDialog activity choices (openSsdPdfTitle)) - (mainActivitySetStatusRaw - activity - (ssdPdfFoundStatus choices))))))) + (begin)))))) (catch (error : Exception) (mainActivityRunOnUiThreadRaw activity @@ -11368,41 +11403,6 @@ " mainActivityShowSsdPdfBrowserAsync(this, uri)" " }" "" - " internal fun showPdfChoiceDialog(choices: List<SsdPdfChoice>, title: String) {" - " mainActivitySetPositiveOpenAnyPdf(" - " mainActivitySetNeutralChooseSsdPdfFolder(" - " mainActivitySetPdfChoiceItems(" - " AlertDialog.Builder(this)" - " .setTitle(title)" - " .setNegativeButton(\"Cancel\", null)," - " this," - " choices," - " Intent.FLAG_GRANT_READ_URI_PERMISSION" - " )," - " this" - " )," - " this" - " ).show()" - " setStatus(ssdPdfFoundStatus(choices))" - " }" - "" - " internal fun showNoSsdPdfsDialog() {" - " val message = noSsdPdfsDialogMessage(hasDirectDownloadAccess())" - " mainActivitySetPositiveRequestDownloadAccess(" - " mainActivitySetNeutralChooseSsdPdfFolder(" - " mainActivitySetNegativeOpenAnyPdf(" - " AlertDialog.Builder(this)" - " .setTitle(noSsdPdfsTitle())" - " .setMessage(message)," - " this" - " )," - " this" - " )," - " this" - " ).show()" - " setStatus(noSsdPdfsFoundStatus())" - " }" - "" " internal fun findSsdPdfsFromTree(treeUri: Uri): List<SsdPdfChoice> {" " val maybeRoot = DocumentFile.fromTreeUri(this, treeUri)" " if (!documentFilePresent(maybeRoot)) return emptyList()" @@ -11499,7 +11499,7 @@ " }" " }" "" - " private fun hasDirectDownloadAccess(): Boolean {" + " internal fun hasDirectDownloadAccess(): Boolean {" " if (sdkAtLeast(Build.VERSION.SDK_INT, Build.VERSION_CODES.R)) {" " if (Environment.isExternalStorageManager()) return true" " } else if (downloadAccessBeforeRuntimePermissions(sdkBefore(Build.VERSION.SDK_INT, Build.VERSION_CODES.M))) {"