Move SSD review shrink fallback to typed Kotlin
ober
12ba08cf025c73d4b6417197e30ad140fc2f9e9b
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -7975,7 +7975,8 @@ (typed-kotlin-file "com/sfb/ssdreview/SsdDetector.kt" (kotlin-imports (android graphics Bitmap)) (typed-library (com sfb ssdreview) - (export detectCells shrinkRectToInk shrinkRectToBoxFill) + (export detectCells shrinkRectToInk shrinkRectToBoxFill + shrinkRectToBitmapContentOrOriginal) (type Bitmap) (type Int32) (type IntArray) @@ -8096,7 +8097,19 @@ (shrinkRectByMaskKind bitmap rect (int32 0))) (def (shrinkRectToBoxFill (bitmap : Bitmap) (rect : FloatArray)) : (Nullable FloatArray) - (shrinkRectByMaskKind bitmap rect (int32 1))))) + (shrinkRectByMaskKind bitmap rect (int32 1))) + (def (shrinkRectToBitmapContentOrOriginal + (bitmap : (Nullable Bitmap)) + (rect : FloatArray)) : FloatArray + (if (nullable-null? bitmap) + rect + (let ((box (shrinkRectToBoxFill (nullable-get bitmap) rect))) + (if (nullable-null? box) + (let ((ink (shrinkRectToInk (nullable-get bitmap) rect))) + (if (nullable-null? ink) + rect + (nullable-get ink))) + (nullable-get box))))))) (kotlin-file-lines "com/sfb/ssdreview/SsdVisionBridge.kt" ( "package com.sfb.ssdreview" @@ -8429,10 +8442,7 @@ " } else if (selectionHasMatches(matching.size)) {" " bboxForCells(matching)" " } else {" - " bitmap?.let {" - " shrinkRectToBoxFill(it, rect)" - " ?: shrinkRectToInk(it, rect)" - " } ?: rect" + " shrinkRectToBitmapContentOrOriginal(bitmap, rect)" " }" " onStatus?.invoke(selectionResultStatus(snapSelectionToCells, matching.size))" " onAreaSelected?.invoke(snapped, cellIdsForSelection(matching))"