Move SSD group deletion mutation to typed Kotlin

ober

4b29caad5a792127d50caca22f140aa0555a6ddd

diff --git a/templates/ssd-review.ss b/templates/ssd-review.ss
index 5784d68..14d461a 100644
--- a/templates/ssd-review.ss
+++ b/templates/ssd-review.ss
@@ -563,6 +563,7 @@
                 ssdSessionCellIdSet
                 ssdSessionFindCellById ssdSessionCellsByIds
                 ssdSessionBBoxForCellIds ssdSessionRecomputeGroup
+                ssdSessionSuppressGroupAsDeleted
                 appendUniqueCellIdsToGroup
                 ssdSessionAddDetectedCellsInsideArea ssdSessionAddOcrWords
                 ssdSessionBoundedSsdArea ssdAreaSelectionTooSmall
@@ -1033,6 +1034,13 @@
               (if (= (list-size groupCells) (int32 0))
                 (SsdGroup-count-set! group (SsdGroup-count group))
                 (SsdGroup-bbox-set! group (bboxForMutableCells groupCells))))))
+        (def (ssdSessionSuppressGroupAsDeleted (session : SsdSession)
+                                               (group : SsdGroup)) : Unit
+          (begin
+            (mutable-list-remove! (SsdSession-groups session) group)
+            (SsdGroup-status-set! group "suppressed")
+            (SsdGroup-notes-set! group "Deleted on Android")
+            (mutable-list-add! (SsdSession-suppressedGroups session) group)))
         (def (maxCellIdNumber (cells : (MutableList SsdCell))) : Int32
           (for/fold ((maxId (int32 0)))
                     ((i (in-range (int32 0) (list-size cells))))
@@ -7555,10 +7563,7 @@
        "        val group = selectedGroup()"
        "        if (ssdGroupMissing(group)) return"
        "        val deletedGroup = ssdGroupOrEmpty(group)"
-       "        session.groups.remove(deletedGroup)"
-       "        deletedGroup.status = \"suppressed\""
-       "        deletedGroup.notes = \"Deleted on Android\""
-       "        session.suppressedGroups.add(deletedGroup)"
+       "        ssdSessionSuppressGroupAsDeleted(session, deletedGroup)"
        "        truthStore.appendEvent(\"group_deleted\", session)"
 	       "        selectedGroupId = ssdSessionSelectedGroupId(session, null)"
        "        reviewView.selectedGroupId = selectedGroupId"