Move SSD activity session selection updates to typed Kotlin
ober
c7f28d89580c3d81d5bc25c6b9de8bff94495cf3
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4645,6 +4645,8 @@ reviewViewSetSsdAreaFromSession reviewViewSetSsdAreaFromNullableSession reviewViewShowSession reviewViewClearSessionState reviewViewShowBitmap + mainActivitySelectGroupId mainActivityClearSession + mainActivityShowSession ssdBrowserResumeReady focusChangeShouldShowDropdown dialogReadyToShowDropdown focusedDialogReadyToShowDropdown permissionResultGranted downloadAccessBeforeRuntimePermissions @@ -4704,6 +4706,7 @@ (type JSONObject) (type SsdSession) (type SsdReviewView) + (type MainActivity) (type TruthStore) (type ViewportState) (extern (fileIsFile (file : File)) : Bool @@ -4759,6 +4762,14 @@ (extern (reviewViewBitmapSet (view : SsdReviewView) (bitmap : (Nullable Bitmap))) : Unit (kotlin-member-set bitmap)) + (extern (mainActivityCurrentSessionSet + (activity : MainActivity) + (session : (Nullable SsdSession))) : Unit + (kotlin-member-set currentSession)) + (extern (mainActivitySelectedGroupIdSet + (activity : MainActivity) + (id : (Nullable String))) : Unit + (kotlin-member-set selectedGroupId)) (def (normalizeFiringArc (value : String)) : String (string-uppercase (string-trim value))) (def (normalizeLabel (value : String)) : String @@ -5267,6 +5278,25 @@ (def (reviewViewShowBitmap (view : SsdReviewView) (bitmap : Bitmap)) : Unit (reviewViewBitmapSet view (nullable-some bitmap))) + (def (mainActivitySelectGroupId (activity : MainActivity) + (view : SsdReviewView) + (id : (Nullable String))) : Unit + (begin + (mainActivitySelectedGroupIdSet activity id) + (reviewViewSelectGroupId view id))) + (def (mainActivityClearSession (activity : MainActivity) + (view : SsdReviewView)) : Unit + (begin + (mainActivityCurrentSessionSet activity (nullable-none SsdSession)) + (mainActivitySelectGroupId activity view (nullable-none String)) + (reviewViewClearSessionState view))) + (def (mainActivityShowSession (activity : MainActivity) + (view : SsdReviewView) + (session : SsdSession)) : Unit + (begin + (mainActivityCurrentSessionSet activity (nullable-some session)) + (mainActivitySelectGroupId activity view (nullable-none String)) + (reviewViewShowSession view session))) (def (shouldCaptureViewport (includeViewport : Bool)) : Bool includeViewport) (def (viewportForSave (view : SsdReviewView) @@ -6718,8 +6748,8 @@ " private var pageIndex: Int = 0" " private var pageCount: Int = 0" " private var currentBitmap: Bitmap? = null" - " private var currentSession: SsdSession? = null" - " private var selectedGroupId: String? = null" + " internal var currentSession: SsdSession? = null" + " internal var selectedGroupId: String? = null" " private var appendMode: Boolean = false" " private var ssdAreaMode: Boolean = false" " private var reopenSsdBrowserOnResume: Boolean = false" @@ -7135,9 +7165,8 @@ " ssdSessionStoreSsdArea(session, area)" " val outsideCount = ssdSessionSsdAreaOutsideCount(session)" " val removed = ssdSessionPruneGroupsOutsideSsdArea(session)" - " selectedGroupId = ssdSessionSelectedGroupId(session, selectedGroupId)" + " mainActivitySelectGroupId(this, reviewView, ssdSessionSelectedGroupId(session, selectedGroupId))" " reviewViewSetSsdAreaFromSession(reviewView, session)" - " reviewViewSelectGroupId(reviewView, selectedGroupId)" " truthStore.appendEvent(\"ssd_area_set\", session, ssdAreaSetDetails(removed, beforeGroups, outsideCount))" " reviewView.performHapticFeedback(HapticFeedbackConstants.CONFIRM)" " reviewView.invalidate()" @@ -7156,8 +7185,7 @@ " val group = ssdSessionFindGroupById(session, groupId)" " if (ssdGroupMissing(group)) return" " val selectedGroup = ssdGroupOrEmpty(group)" - " selectedGroupId = selectedGroup.id" - " reviewViewSelectGroupId(reviewView, selectedGroup.id)" + " mainActivitySelectGroupId(this, reviewView, selectedGroup.id)" " reviewView.centerOnGroup(selectedGroup)" " reviewView.performHapticFeedback(HapticFeedbackConstants.CLOCK_TICK)" " setStatus(selectedGroupStatus(selectedGroup))" @@ -7167,8 +7195,7 @@ " val group = ssdCurrentSelectedGroup(currentSession, selectedGroupId)" " if (ssdGroupMissing(group)) return null" " val selectedGroup = ssdGroupOrEmpty(group)" - " selectedGroupId = selectedGroup.id" - " reviewViewSelectGroupId(reviewView, selectedGroup.id)" + " mainActivitySelectGroupId(this, reviewView, selectedGroup.id)" " return selectedGroup" " }" "" @@ -7217,10 +7244,8 @@ " runOnUiThread {" " if (isStaleLoad(renderGeneration, uri, renderPageIndex)) return@runOnUiThread" " currentBitmap = bitmap" - " currentSession = null" - " selectedGroupId = null" " reviewViewShowBitmap(reviewView, bitmap)" - " reviewViewClearSessionState(reviewView)" + " mainActivityClearSession(this, reviewView)" " restoreViewportAfterLayout(restoredViewport)" " setStatus(renderedLoadingTruthStatus(renderPdfName, renderPageIndex, renderPageCount))" " detectCurrent(" @@ -7279,9 +7304,7 @@ " ssdSessionPruneGroupsOutsideSsdArea(session)" " runOnUiThread {" " if (isStaleLoad(expectedGeneration, uri, expectedPageIndex)) return@runOnUiThread" - " currentSession = session" - " selectedGroupId = null" - " reviewViewShowSession(reviewView, session)" + " mainActivityShowSession(this, reviewView, session)" " setStatus(sessionCountsStatus(session, \", replayed cached truth\"))" " logDetectResult(\"cached-truth\", session, \"local-truth\")" " }" @@ -7327,9 +7350,7 @@ " val learnedGuesses = learnedGuessesForDetection(truthStore, session, existingTruthGroupCount)" " runOnUiThread {" " if (isStaleLoad(expectedGeneration, uri, expectedPageIndex)) return@runOnUiThread" - " currentSession = session" - " selectedGroupId = null" - " reviewViewShowSession(reviewView, session)" + " mainActivityShowSession(this, reviewView, session)" " val truthNote = detectionTruthNoteFor(existingTruth)" " val ocrNote = detectionOcrNote(ocrGuesses, session.ocrWords.size)" " val learnedNote = detectionLearnedNote(learnedGuesses)" @@ -7370,9 +7391,7 @@ " ssdSessionPruneGroupsOutsideSsdArea(merged)" " runOnUiThread {" " if (isStaleLoad(generation, uri, page)) return@runOnUiThread" - " currentSession = merged" - " selectedGroupId = null" - " reviewViewShowSession(reviewView, merged)" + " mainActivityShowSession(this, reviewView, merged)" " reviewView.invalidate()" " setStatus(sessionCountsStatus(merged, \", pulled remote truth\"))" " logDetectResult(\"remote-truth\", merged, \"remote-truth\")" @@ -7537,8 +7556,7 @@ " val ids = selectedOrManualCellIds(session, rect, detectedIds, count)" " val group = ssdSessionAddApprovedAreaGroup(session, ids, cleanLabel, resolvedBoxTypeIdOr(resolvedType, boxType), firingArc)" " truthStore.appendEvent(\"group_approved\", session)" - " selectedGroupId = group.id" - " reviewViewSelectGroupId(reviewView, group.id)" + " mainActivitySelectGroupId(this, reviewView, group.id)" " finishSelectInteraction()" " reviewView.performHapticFeedback(HapticFeedbackConstants.CONFIRM)" " reviewView.invalidate()" @@ -7556,8 +7574,7 @@ " val ids = selectedOrManualCellIds(session, rect, detectedIds, count)" " val added = ssdSessionAppendAreaToGroup(session, group, ids)" " finishSelectInteraction()" - " selectedGroupId = group.id" - " reviewViewSelectGroupId(reviewView, group.id)" + " mainActivitySelectGroupId(this, reviewView, group.id)" " truthStore.appendEvent(\"group_appended\", session)" " reviewView.performHapticFeedback(HapticFeedbackConstants.CONFIRM)" " reviewView.invalidate()" @@ -7660,8 +7677,7 @@ " val deletedGroup = ssdGroupOrEmpty(group)" " ssdSessionSuppressGroupAsDeleted(session, deletedGroup)" " truthStore.appendEvent(\"group_deleted\", session)" - " selectedGroupId = ssdSessionSelectedGroupId(session, null)" - " reviewViewSelectGroupId(reviewView, selectedGroupId)" + " mainActivitySelectGroupId(this, reviewView, ssdSessionSelectedGroupId(session, null))" " reviewView.performHapticFeedback(HapticFeedbackConstants.REJECT)" " reviewView.invalidate()" " saveSessionAsync("