Generate SSD area boundary action from typed Jerboa
ober
c687329a324791260202c707ee7edf5236f2ada3
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4891,6 +4891,7 @@ mainActivityDeleteSelectedGroup mainActivityApproveArea mainActivityAppendAreaToGroupAction + mainActivityApplySsdArea mainActivityAddApprovedAreaGroup mainActivityAppendAreaToGroup mainActivitySuppressGroupAsDeleted @@ -5330,6 +5331,10 @@ (activity : MainActivity) (id : String)) : String (kotlin-call boxTypesDisplayAndroid)) + (extern (ssdSessionApplySsdAreaRaw + (session : SsdSession) + (area : FloatArray)) : JSONObject + (kotlin-call ssdSessionApplySsdArea)) (extern (stringLines (text : String)) : (List String) (kotlin-member-call lines)) (extern (stringSplitTwoChars (text : String) @@ -5579,6 +5584,12 @@ (extern (mainActivityPdfNameRaw (activity : MainActivity)) : String (kotlin-member-get pdfName)) + (extern (mainActivityPdfSha1Raw + (activity : MainActivity)) : String + (kotlin-member-get pdfSha1)) + (extern (mainActivityPageCountValueRaw + (activity : MainActivity)) : Int32 + (kotlin-member-get pageCount)) (extern (mainActivityContentResolverRaw (activity : MainActivity)) : ContentResolver (kotlin-member-get contentResolver)) @@ -5593,10 +5604,6 @@ (uri : Uri) (page : Int32)) : Bitmap (kotlin-member-call renderPdfPage)) - (extern (mainActivityRestoreViewportAfterLayoutRaw - (activity : MainActivity) - (viewport : (Nullable ViewportState))) : Unit - (kotlin-member-call restoreViewportAfterLayout)) (extern (mainActivityDetectCurrentRaw (activity : MainActivity) (forceDetect : Bool) @@ -5618,6 +5625,9 @@ (extern (mainActivityCurrentSessionRaw (activity : MainActivity)) : (Nullable SsdSession) (kotlin-member-get currentSession)) + (extern (mainActivitySelectedGroupIdRaw + (activity : MainActivity)) : (Nullable String) + (kotlin-member-get selectedGroupId)) (extern (mainActivityRunOnUiThreadRaw (activity : MainActivity) (callback : (-> Unit))) : Unit @@ -5634,10 +5644,6 @@ (extern (mainActivityRenderCurrentPageRaw (activity : MainActivity)) : Unit (kotlin-member-call renderCurrentPage)) - (extern (mainActivityApplySsdAreaRaw - (activity : MainActivity) - (rect : FloatArray)) : Unit - (kotlin-member-call applySsdArea)) (extern (mainActivityShowApproveDialogRaw (activity : MainActivity) (rect : FloatArray) @@ -6907,6 +6913,61 @@ loadedSession (appendSavingStatus group added) (appendSavedStatus group)))))))) + (def (mainActivityDetectCurrentForceWithState + (activity : MainActivity)) : Unit + (mainActivityDetectCurrentRaw + activity + #t + (mainActivityLoadGenerationRaw activity) + (mainActivityPageIndexRaw activity) + (mainActivityPdfUriRaw activity) + (mainActivityPdfNameRaw activity) + (mainActivityPdfSha1Raw activity) + (mainActivityPageCountValueRaw activity))) + (def (mainActivityApplySsdArea + (activity : MainActivity) + (view : SsdReviewView) + (store : TruthStore) + (session : (Nullable SsdSession)) + (selectedGroupId : (Nullable String)) + (rect : FloatArray) + (confirmHaptic : Int32)) : Unit + (if (sessionMissing session) + (begin) + (let ((loadedSession (ssdSessionOrEmpty session))) + (let ((area (ssdSessionBoundedSsdArea loadedSession rect))) + (if (ssdAreaSelectionTooSmall area) + (begin + (mainActivityClearInteractionModes activity view) + (reviewViewClearInteractionState view) + (mainActivitySetStatusRaw + activity + (ssdAreaIgnoredTooSmallStatus))) + (let ((details + (ssdSessionApplySsdAreaRaw loadedSession area))) + (begin + (mainActivitySelectGroupId + activity + view + (ssdSessionSelectedGroupId + loadedSession + selectedGroupId)) + (reviewViewSetSsdAreaFromSession view loadedSession) + (truthStoreAppendSsdAreaSet + store + loadedSession + details) + (reviewViewPerformHapticAndInvalidate + view + confirmHaptic) + (mainActivitySaveSessionAsyncRaw + activity + loadedSession + "SSD area set; saving boundary..." + "SSD area saved; detecting inside boundary..." + (lambda () + (mainActivityDetectCurrentForceWithState + activity)))))))))) (def (mainActivityAddApprovedAreaGroup (activity : MainActivity) (view : SsdReviewView) @@ -7071,16 +7132,25 @@ (def (mainActivityHandleAreaSelectionAfterDelay (activity : MainActivity) (view : SsdReviewView) + (store : TruthStore) (rect : FloatArray) (detectedIds : (List String)) - (applyAsSsdArea : Bool)) : Unit + (applyAsSsdArea : Bool) + (confirmHaptic : Int32)) : Unit (reviewViewPostDelayedRaw view (lambda () (if (sessionMissing (mainActivityCurrentSessionRaw activity)) (mainActivitySetStatusRaw activity (selectionIgnoredLoadingStatus)) (if applyAsSsdArea - (mainActivityApplySsdAreaRaw activity rect) + (mainActivityApplySsdArea + activity + view + store + (mainActivityCurrentSessionRaw activity) + (mainActivitySelectedGroupIdRaw activity) + rect + confirmHaptic) (mainActivityShowApproveDialogRaw activity rect detectedIds)))) (int32 80))) (def (mainActivitySetTruthStore (activity : MainActivity) @@ -10456,29 +10526,6 @@ " ).show()" " }" "" - " internal fun applySsdArea(rect: FloatArray) {" - " if (sessionMissing(currentSession)) return" - " val session = ssdSessionOrEmpty(currentSession)" - " val area = ssdSessionBoundedSsdArea(session, rect)" - " if (ssdAreaSelectionTooSmall(area)) {" - " mainActivityFinishSelectInteraction(this, reviewView)" - " setStatus(ssdAreaIgnoredTooSmallStatus())" - " return" - " }" - " val details = ssdSessionApplySsdArea(session, area)" - " mainActivitySelectGroupId(this, reviewView, ssdSessionSelectedGroupId(session, selectedGroupId))" - " reviewViewSetSsdAreaFromSession(reviewView, session)" - " truthStoreAppendSsdAreaSet(truthStore, session, details)" - " reviewViewPerformHapticAndInvalidate(reviewView, HapticFeedbackConstants.CONFIRM)" - " saveSessionAsync(" - " session," - " \"SSD area set; saving boundary...\"," - " \"SSD area saved; detecting inside boundary...\"" - " ) {" - " detectCurrent(forceDetect = true)" - " }" - " }" - "" " private fun editSelectedGroup() {" " val group = mainActivitySelectedGroup(this, reviewView, currentSession, selectedGroupId)" " if (ssdGroupMissing(group)) return" @@ -10547,7 +10594,7 @@ " val applyAsSsdArea = ssdAreaMode" " val statusText = areaSelectionStatus(applyAsSsdArea, detectedIds.size)" " setStatus(statusText)" - " mainActivityHandleAreaSelectionAfterDelay(this, reviewView, rect, detectedIds, applyAsSsdArea)" + " mainActivityHandleAreaSelectionAfterDelay(this, reviewView, truthStore, rect, detectedIds, applyAsSsdArea, HapticFeedbackConstants.CONFIRM)" " }" "" " internal fun showApproveDialog(rect: FloatArray, detectedIds: List<String>) {"