Generate SSD session saves from typed Jerboa
ober
fddb2ed2f7056e62d840c85e8ec9aeb05a02245a
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4918,6 +4918,7 @@ mainActivitySetPdfChoiceItems mainActivityPullTruthDumpAsync mainActivityPushTruthDumpAsync + mainActivitySaveSessionAsync mainActivitySaveTruthSnapshotAsync mainActivityMergeRemoteTruthAsync mainActivityRenderCurrentPageAsync @@ -5691,13 +5692,6 @@ (extern (mainActivityShowNoSsdPdfsDialogRaw (activity : MainActivity)) : Unit (kotlin-member-call showNoSsdPdfsDialog)) - (extern (mainActivitySaveSessionAsyncRaw - (activity : MainActivity) - (session : SsdSession) - (savingStatus : String) - (savedStatus : String) - (afterSaved : (-> Unit))) : Unit - (kotlin-member-call saveSessionAsync)) (extern (mainActivityClientLogPayloadRaw (activity : MainActivity) (event : String) @@ -6687,16 +6681,44 @@ (autoCompleteFocusAndShowDropdown dialog boxType))) (def (mainActivitySaveSessionNoAfter (activity : MainActivity) + (view : SsdReviewView) + (store : TruthStore) (session : SsdSession) (savingStatus : String) (savedStatus : String)) : Unit - (mainActivitySaveSessionAsyncRaw + (mainActivitySaveSessionAsync activity + view + store session savingStatus savedStatus (lambda () (begin)))) + (def (mainActivitySaveSessionAsync + (activity : MainActivity) + (view : SsdReviewView) + (store : TruthStore) + (session : SsdSession) + (savingStatus : String) + (savedStatus : String) + (afterSaved : (-> Unit) + (default (lambda () (begin))))) : Unit + (let ((truth (ssdSessionToTruthJson session)) + (viewport (reviewViewCaptureViewportForSave view))) + (begin + (mainActivityClearInteractionModes activity view) + (reviewViewClearInteractionState view) + (reviewViewRestoreViewportAfterLayout view viewport) + (mainActivitySetStatusRaw activity savingStatus) + (mainActivitySaveTruthSnapshotAsync + activity + view + store + truth + viewport + savedStatus + afterSaved)))) (def (mainActivityChangePage (activity : MainActivity) (uri : (Nullable Uri)) @@ -6789,11 +6811,14 @@ confirmHaptic) (mainActivitySaveSessionNoAfter activity + view + store loadedSession (approveSavingStatus approvedGroup) (approveSavedStatus approvedGroup))))))))) (def (mainActivitySaveTruth (activity : MainActivity) + (view : SsdReviewView) (store : TruthStore) (session : (Nullable SsdSession))) : Unit (if (sessionMissing session) @@ -6801,6 +6826,8 @@ (let ((loadedSession (ssdSessionOrEmpty session))) (mainActivitySaveSessionNoAfter activity + view + store loadedSession (saveTruthSavingStatus) (saveTruthSavedStatus (truthStoreStorageSummary store)))))) @@ -6817,6 +6844,8 @@ (reviewViewPerformHapticAndInvalidate view rejectHaptic) (mainActivitySaveSessionNoAfter activity + view + store session (deleteSavingStatus group) (deleteSavedStatus group)))) @@ -6896,6 +6925,8 @@ confirmHaptic) (mainActivitySaveSessionNoAfter activity + view + store loadedSession (approveCountSavingStatus group (SsdGroup-count group)) (approveCountSavedStatus group (SsdGroup-count group))))))))))) @@ -6932,6 +6963,8 @@ confirmHaptic) (mainActivitySaveSessionNoAfter activity + view + store loadedSession (appendSavingStatus group added) (appendSavedStatus group)))))))) @@ -6982,8 +7015,10 @@ (reviewViewPerformHapticAndInvalidate view confirmHaptic) - (mainActivitySaveSessionAsyncRaw + (mainActivitySaveSessionAsync activity + view + store loadedSession "SSD area set; saving boundary..." "SSD area saved; detecting inside boundary..." @@ -8578,8 +8613,10 @@ (reviewViewPerformHapticAndInvalidate view confirmHaptic) - (mainActivitySaveSessionAsyncRaw + (mainActivitySaveSessionAsync activity + view + truthStore session (editSavingStatus group) (editSavedStatus group) @@ -10443,7 +10480,7 @@ " addView(mainActivityActionRow(this@MainActivity, LinearLayout.HORIZONTAL, Gravity.CENTER_VERTICAL," " button(\"Approve\", ButtonKind.ACCENT) { mainActivityApproveSelectedGroup(this@MainActivity, reviewView, truthStore, currentSession, selectedGroupId, HapticFeedbackConstants.CONFIRM) }," " button(\"Delete\", ButtonKind.DANGER) { mainActivityDeleteSelectedGroup(this@MainActivity, reviewView, truthStore, currentSession, selectedGroupId, HapticFeedbackConstants.REJECT) }," - " button(\"Save\") { mainActivitySaveTruth(this@MainActivity, truthStore, currentSession) }," + " button(\"Save\") { mainActivitySaveTruth(this@MainActivity, reviewView, truthStore, currentSession) }," " ))" " addView(mainActivityActionRow(this@MainActivity, LinearLayout.HORIZONTAL, Gravity.CENTER_VERTICAL," " button(\"Pull Truth\") { mainActivityPullTruthDumpAsync(this@MainActivity, truthStore) }," @@ -10707,20 +10744,6 @@ " count.requestFocus()" " }" "" - " internal fun saveSessionAsync(" - " session: SsdSession," - " savingStatus: String," - " savedStatus: String," - " afterSaved: () -> Unit = {}" - " ) {" - " val truth = ssdSessionToTruthJson(session)" - " val viewport = reviewViewCaptureViewportForSave(reviewView)" - " mainActivityFinishSelectInteraction(this, reviewView)" - " reviewViewRestoreViewportAfterLayout(reviewView, viewport)" - " setStatus(savingStatus)" - " mainActivitySaveTruthSnapshotAsync(this, reviewView, truthStore, truth, viewport, savedStatus, afterSaved)" - " }" - "" " private fun showGroupEditDialog(group: SsdGroup) {" " if (sessionMissing(currentSession)) return" " val session = ssdSessionOrEmpty(currentSession)"