Move SSD area application to typed Kotlin
ober
4a1c5990ca568eadf304688ba63923595ebc1149
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -6077,8 +6077,10 @@ (kotlin-imports (org json JSONObject)) (typed-library (com sfb ssdreview) (export groundTruthPathDetails snapshotEventJson sessionEventJson - ssdAreaSetDetails) + ssdAreaSetDetails ssdSessionApplySsdArea) + (type FloatArray) (type JSONObject) + (type SsdSession) (type Int32) (type String) (def (groundTruthPathDetails (path : String)) : JSONObject @@ -6123,7 +6125,16 @@ (json-object-put-int32! out "removed_groups" removedGroups) (json-object-put-int32! out "before_groups" beforeGroups) (json-object-put-int32! out "outside_groups" outsideGroups) - out))))) + out))) + (def (ssdSessionApplySsdArea + (session : SsdSession) + (area : FloatArray)) : JSONObject + (let ((beforeGroups (list-size (SsdSession-groups session)))) + (begin + (ssdSessionStoreSsdArea session area) + (let ((outsideCount (ssdSessionSsdAreaOutsideCount session))) + (let ((removed (ssdSessionPruneGroupsOutsideSsdArea session))) + (ssdAreaSetDetails removed beforeGroups outsideCount)))))))) (typed-kotlin-file "com/sfb/ssdreview/TruthStoreJson.kt" (kotlin-imports (java io File) (org json JSONArray) (org json JSONObject)) @@ -7429,13 +7440,10 @@ " setStatus(\"SSD area ignored: selection was too small\")" " return" " }" - " val beforeGroups = session.groups.size" - " ssdSessionStoreSsdArea(session, area)" - " val outsideCount = ssdSessionSsdAreaOutsideCount(session)" - " val removed = ssdSessionPruneGroupsOutsideSsdArea(session)" + " val details = ssdSessionApplySsdArea(session, area)" " mainActivitySelectGroupId(this, reviewView, ssdSessionSelectedGroupId(session, selectedGroupId))" " reviewViewSetSsdAreaFromSession(reviewView, session)" - " truthStore.appendEvent(\"ssd_area_set\", session, ssdAreaSetDetails(removed, beforeGroups, outsideCount))" + " truthStore.appendEvent(\"ssd_area_set\", session, details)" " reviewView.performHapticFeedback(HapticFeedbackConstants.CONFIRM)" " reviewView.invalidate()" " saveSessionAsync("