Move SSD activity result checks to typed Kotlin
ober
31220c4fb505391df3c5046dd03c580f1e82063d
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4310,6 +4310,7 @@ (typed-kotlin-file "com/sfb/ssdreview/UiTextHelpers.kt" (kotlin-imports (java io File) + (android content Intent) (android net Uri) (androidx documentfile provider DocumentFile) (org json JSONObject)) @@ -4357,7 +4358,9 @@ selectionIgnoredLoadingStatus shouldShowFiringArc shouldFocusFiringArc canvasLabelPresent canvasLabelMissing groupIdSelected - shouldCaptureViewport pdfUriLoaded uriOrEmpty sessionMissing + shouldCaptureViewport pdfUriLoaded uriOrEmpty + intentDataUriPresent intentDataUriOrEmpty intentFlagsOrZero + sessionMissing viewportStatePresent viewportStateOrEmpty hasReplacementLabel missingReplacementLabel hasResolvedLabel ssdBrowserResumeReady focusChangeShouldShowDropdown @@ -4401,6 +4404,7 @@ (type Float32) (type Char) (type File) + (type Intent) (type Uri) (type DocumentFile) (type JSONObject) @@ -4850,12 +4854,28 @@ includeViewport) (extern (uriParse (text : String)) : Uri (kotlin-call Uri parse)) + (extern (intentDataUri (intent : Intent)) : (Nullable Uri) + (kotlin-member-call getData)) + (extern (intentFlags (intent : Intent)) : Int32 + (kotlin-member-get flags)) (def (pdfUriLoaded (uri : (Nullable Uri))) : Bool (not (nullable-null? uri))) (def (uriOrEmpty (uri : (Nullable Uri))) : Uri (if (nullable-null? uri) (uriParse "") (nullable-get uri))) + (def (intentDataUriPresent (intent : (Nullable Intent))) : Bool + (if (nullable-null? intent) + #f + (pdfUriLoaded (intentDataUri (nullable-get intent))))) + (def (intentDataUriOrEmpty (intent : (Nullable Intent))) : Uri + (if (nullable-null? intent) + (uriParse "") + (uriOrEmpty (intentDataUri (nullable-get intent))))) + (def (intentFlagsOrZero (intent : (Nullable Intent))) : Int32 + (if (nullable-null? intent) + (int32 0) + (intentFlags (nullable-get intent)))) (def (sessionMissing (session : (Nullable SsdSession))) : Bool (nullable-null? session)) (def (viewportStatePresent (viewport : (Nullable ViewportState))) : Bool @@ -7230,11 +7250,13 @@ " override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {" " super.onActivityResult(requestCode, resultCode, data)" " if (activityResultRejected(resultCode, RESULT_OK)) return" - " val uri = data?.data ?: return" + " if (!intentDataUriPresent(data)) return" + " val uri = intentDataUriOrEmpty(data)" + " val flags = intentFlagsOrZero(data)" " if (requestIsOpenPdf(requestCode, REQ_OPEN_PDF)) {" - " loadPdf(uri, data.flags)" + " loadPdf(uri, flags)" " } else if (requestIsOpenSsdPdfTree(requestCode, REQ_OPEN_SSD_PDF_TREE)) {" - " rememberAndBrowseSsdFolder(uri, data.flags)" + " rememberAndBrowseSsdFolder(uri, flags)" " } else if (requestIsExportZip(requestCode, REQ_EXPORT_ZIP)) {" " contentResolver.openOutputStream(uri)?.use {" " truthStore.exportZip(it)" @@ -7246,7 +7268,7 @@ " setStatus(importedTruthZipStatus(count, truthStore.storageSummary()))" " }" " } else if (requestIsSyncTree(requestCode, REQ_SYNC_TREE)) {" - " syncSelectedTree(uri, data.flags)" + " syncSelectedTree(uri, flags)" " }" " }" ""