Move SSD initial guess mutation to typed Kotlin
ober
7bf6a9dad4f4908723a91fe897d159e842027810
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -1249,7 +1249,7 @@ (typed-kotlin-file "com/sfb/ssdreview/GuessingHelpers.kt" (typed-library (com sfb ssdreview) - (export guessForGroup) + (export guessForGroup applyInitialGuessToGroup) (type Int32) (type Float32) (type FloatArray) @@ -1329,7 +1329,24 @@ (make-Guess (string-append (int32->string count) " boxes") "" - "unclassified detected group"))))))))))))) + "unclassified detected group"))))))))))) + (def (applyInitialGuessToGroup (group : SsdGroup) + (guess : Guess) + (boxTypeId : (Nullable String))) : Unit + (begin + (SsdGroup-label-set! + group + (string-append (Guess-label guess) "?")) + (if (nullable-null? boxTypeId) + (begin) + (SsdGroup-boxTypeId-set! group (nullable-get boxTypeId))) + (SsdGroup-notes-set! + group + (string-append + "Guess: " + (string-append + (Guess-label guess) + (string-append ", " (Guess-reason guess))))))))) (typed-kotlin-file "com/sfb/ssdreview/OcrModels.kt" (typed-library (com sfb ssdreview) @@ -2648,9 +2665,7 @@ " if (!shouldReplaceGuessLabel(group.status, group.label)) return@forEach" " val guess = guessForGroup(group, session.imageWidth, session.imageHeight, race)" " val boxType = BoxTypes.resolve(context, guess.boxType)" - " group.label = \"${guess.label}?\"" - " group.boxTypeId = boxType?.id ?: group.boxTypeId" - " group.notes = \"Guess: ${guess.label}, ${guess.reason}\"" + " applyInitialGuessToGroup(group, guess, boxType?.id)" " }" " }" ""