Generate SSD selection interaction from typed Jerboa
ober
e1dda1c4aedc64be2c529c0b06d88fbde2e5a7a4
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -9797,6 +9797,39 @@ (resourcesDisplayMetrics (contextResources context)))))))) + (typed-kotlin-file "com/sfb/ssdreview/MainActivityInteraction.kt" + (typed-library (com sfb ssdreview) + (export mainActivityApplySelectMode mainActivityFinishSelectInteraction) + (type MainActivity) + (type SsdReviewView) + (extern (mainActivitySetStatusRaw + (activity : MainActivity) + (text : String)) : Unit + (kotlin-member-call setStatus)) + (def (mainActivityApplySelectMode + (activity : MainActivity) + (view : SsdReviewView) + (ssdAreaMode : Bool) + (appendMode : Bool) + (enabled : Bool)) : Unit + (begin + (if (selectModeDisabled enabled) + (mainActivityClearInteractionModes activity view) + (begin)) + (reviewViewSetSelectMode view enabled (not ssdAreaMode)) + (mainActivitySetStatusRaw + activity + (selectModeStatus + ssdAreaMode + appendMode + (reviewViewSelectMode view))))) + (def (mainActivityFinishSelectInteraction + (activity : MainActivity) + (view : SsdReviewView)) : Unit + (begin + (mainActivityClearInteractionModes activity view) + (reviewViewClearInteractionState view))))) + (kotlin-file-lines "com/sfb/ssdreview/MainActivity.kt" ( "package com.sfb.ssdreview" @@ -9923,8 +9956,8 @@ " button(\"Next Page\") { changePage(1) }," " ))" " addView(actionRow(" - " button(\"Pan\", ButtonKind.NEUTRAL) { setSelectMode(false) }," - " button(\"Select Area\", ButtonKind.PRIMARY) { setSelectMode(true) }," + " button(\"Pan\", ButtonKind.NEUTRAL) { mainActivityApplySelectMode(this@MainActivity, reviewView, ssdAreaMode, appendMode, false) }," + " button(\"Select Area\", ButtonKind.PRIMARY) { mainActivityApplySelectMode(this@MainActivity, reviewView, ssdAreaMode, appendMode, true) }," " button(\"Add\", ButtonKind.ACCENT) { startAppendMode() }," " ))" " addView(actionRow(" @@ -10082,19 +10115,6 @@ " renderCurrentPage()" " }" "" - " private fun setSelectMode(enabled: Boolean) {" - " if (selectModeDisabled(enabled)) {" - " mainActivityClearInteractionModes(this, reviewView)" - " }" - " reviewViewSetSelectMode(reviewView, enabled, !ssdAreaMode)" - " setStatus(selectModeStatus(ssdAreaMode, appendMode, reviewViewSelectMode(reviewView)))" - " }" - "" - " private fun finishSelectInteraction() {" - " mainActivityClearInteractionModes(this, reviewView)" - " reviewViewClearInteractionState(reviewView)" - " }" - "" " internal fun restoreViewportAfterLayout(viewport: ViewportState?) {" " reviewViewRestoreViewportAfterLayout(reviewView, viewport)" " }" @@ -10148,7 +10168,7 @@ " val session = ssdSessionOrEmpty(currentSession)" " val area = ssdSessionBoundedSsdArea(session, rect)" " if (ssdAreaSelectionTooSmall(area)) {" - " finishSelectInteraction()" + " mainActivityFinishSelectInteraction(this, reviewView)" " setStatus(ssdAreaIgnoredTooSmallStatus())" " return" " }" @@ -10351,7 +10371,7 @@ " ) {" " val truth = ssdSessionToTruthJson(session)" " val viewport = reviewViewCaptureViewportForSave(reviewView)" - " finishSelectInteraction()" + " mainActivityFinishSelectInteraction(this, reviewView)" " restoreViewportAfterLayout(viewport)" " setStatus(savingStatus)" " mainActivitySaveTruthSnapshotAsync(this, truthStore, truth, viewport, savedStatus, afterSaved)" @@ -10371,7 +10391,7 @@ " val cleanLabel = manualGroupLabel(resolvedLabelForBoxTypeAndroid(this, label, boxType, \"\"), resolvedBoxTypeNameOr(resolvedType, \"\"), \"\")" " val group = mainActivityAddApprovedAreaGroup(this, reviewView, session, rect, detectedIds, cleanLabel, resolvedBoxTypeIdOr(resolvedType, boxType), firingArc, count)" " truthStoreAppendGroupApproved(truthStore, session)" - " finishSelectInteraction()" + " mainActivityFinishSelectInteraction(this, reviewView)" " reviewViewPerformHapticAndInvalidate(reviewView, HapticFeedbackConstants.CONFIRM)" " saveSessionAsync(" " session," @@ -10385,7 +10405,7 @@ " val session = ssdSessionOrEmpty(currentSession)" " if (ssdSessionGroupMissing(session, group)) return" " val added = mainActivityAppendAreaToGroup(this, reviewView, session, rect, detectedIds, group, count)" - " finishSelectInteraction()" + " mainActivityFinishSelectInteraction(this, reviewView)" " truthStoreAppendGroupAppended(truthStore, session)" " reviewViewPerformHapticAndInvalidate(reviewView, HapticFeedbackConstants.CONFIRM)" " saveSessionAsync("