Move SSD package query strings to typed Kotlin
ober
5e8272a6fac21d0f5e570730cde08f0692893656
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -3801,6 +3801,8 @@ selectionIgnoredLoadingStatus shouldShowFiringArc shouldFocusFiringArc hasReplacementLabel hasResolvedLabel + packageUriText mediaStorePdfSelection + mediaStoreDisplayNameSort clampPageIndex shiftPageIndex displayGroupCanvasLabel dropdownHeight dialogPageNumber dialogPageNumberText pageNumberText sessionIdFromUuid nullableLowercaseOrEmpty @@ -4185,6 +4187,19 @@ (not (string-blank? replacement))) (def (hasResolvedLabel (resolved : String)) : Bool (not (string-blank? resolved))) + (def (packageUriText (packageName : String)) : String + (string-append "package:" packageName)) + (def (mediaStorePdfSelection (mimeTypeColumn : String) + (displayNameColumn : String)) : String + (string-append + "(" + (string-append + mimeTypeColumn + (string-append + "=? OR " + (string-append displayNameColumn " LIKE ?)"))))) + (def (mediaStoreDisplayNameSort (displayNameColumn : String)) : String + (string-append displayNameColumn " COLLATE NOCASE ASC")) (def (dropdownHeight (screenHeight : Int32)) : Int32 (let ((third (/ screenHeight (int32 3)))) (if (> third (int32 620)) @@ -5528,7 +5543,7 @@ " reopenSsdBrowserOnResume = true" " if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {" " val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION).apply {" - " data = Uri.parse(\"package:$packageName\")" + " data = Uri.parse(packageUriText(packageName))" " }" " try {" " startActivity(intent)" @@ -6393,14 +6408,14 @@ " MediaStore.MediaColumns.RELATIVE_PATH," " MediaStore.MediaColumns.MIME_TYPE" " )" - " val selection = \"(${MediaStore.MediaColumns.MIME_TYPE}=? OR ${MediaStore.MediaColumns.DISPLAY_NAME} LIKE ?)\"" + " val selection = mediaStorePdfSelection(MediaStore.MediaColumns.MIME_TYPE, MediaStore.MediaColumns.DISPLAY_NAME)" " val selectionArgs = arrayOf(\"application/pdf\", \"%.pdf\")" " contentResolver.query(" " MediaStore.Downloads.EXTERNAL_CONTENT_URI," " projection," " selection," " selectionArgs," - " \"${MediaStore.MediaColumns.DISPLAY_NAME} COLLATE NOCASE ASC\"" + " mediaStoreDisplayNameSort(MediaStore.MediaColumns.DISPLAY_NAME)" " )?.use { cursor ->" " val idCol = cursor.getColumnIndexOrThrow(MediaStore.Downloads._ID)" " val nameCol = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DISPLAY_NAME)"