Move SSD review view callbacks to typed Kotlin
ober
ce7daecb240f2e7368fb34477341ed42a9b91d48
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4699,6 +4699,7 @@ reviewViewRestoreViewport reviewViewRestoreViewportAfterLayout reviewViewClearInteractionState + mainActivityInstallReviewViewCallbacks mainActivitySelectGroupId mainActivitySelectRequestedGroup mainActivitySelectCurrentGroup @@ -4940,6 +4941,18 @@ (kotlin-member-call postDelayed)) (extern (reviewViewClearInteractionStateRaw (view : SsdReviewView)) : Unit (kotlin-member-call clearInteractionState)) + (extern (reviewViewOnStatusSet + (view : SsdReviewView) + (callback : (-> String Unit))) : Unit + (kotlin-member-set onStatus)) + (extern (reviewViewOnAreaSelectedSet + (view : SsdReviewView) + (callback : (-> FloatArray (List String) Unit))) : Unit + (kotlin-member-set onAreaSelected)) + (extern (reviewViewOnGroupTappedSet + (view : SsdReviewView) + (callback : (-> String Unit))) : Unit + (kotlin-member-set onGroupTapped)) (extern (reviewViewSelectModeRaw (view : SsdReviewView)) : Bool (kotlin-member-get selectMode)) (extern (reviewViewRotateClockwise (view : SsdReviewView)) : Unit @@ -5076,6 +5089,15 @@ (activity : MainActivity) (text : String)) : Unit (kotlin-member-call setStatus)) + (extern (mainActivityHandleAreaSelectedRaw + (activity : MainActivity) + (rect : FloatArray) + (detectedIds : (List String))) : Unit + (kotlin-member-call handleAreaSelected)) + (extern (mainActivitySelectGroupRaw + (activity : MainActivity) + (groupId : String)) : Unit + (kotlin-member-call selectGroup)) (extern (mainActivityRenderCurrentPageRaw (activity : MainActivity)) : Unit (kotlin-member-call renderCurrentPage)) @@ -5721,6 +5743,22 @@ (int32 180)))) (def (reviewViewClearInteractionState (view : SsdReviewView)) : Unit (reviewViewClearInteractionStateRaw view)) + (def (mainActivityInstallReviewViewCallbacks + (activity : MainActivity) + (view : SsdReviewView)) : Unit + (begin + (reviewViewOnStatusSet + view + (lambda ((text : String)) + (mainActivitySetStatusRaw activity text))) + (reviewViewOnAreaSelectedSet + view + (lambda ((rect : FloatArray) (ids : (List String))) + (mainActivityHandleAreaSelectedRaw activity rect ids))) + (reviewViewOnGroupTappedSet + view + (lambda ((groupId : String)) + (mainActivitySelectGroupRaw activity groupId))))) (def (mainActivitySelectGroupId (activity : MainActivity) (view : SsdReviewView) (id : (Nullable String))) : Unit @@ -7571,9 +7609,7 @@ " })" " root.addView(status)" " mainActivitySetReviewView(this, SsdReviewView(this).apply {" - " onStatus = { setStatus(it) }" - " onAreaSelected = { rect, ids -> handleAreaSelected(rect, ids) }" - " onGroupTapped = { selectGroup(it) }" + " mainActivityInstallReviewViewCallbacks(this@MainActivity, this)" " })" " root.addView(reviewView, LinearLayout.LayoutParams(" " LinearLayout.LayoutParams.MATCH_PARENT," @@ -7902,7 +7938,7 @@ " }" " }" "" - " private fun selectGroup(groupId: String?) {" + " internal fun selectGroup(groupId: String?) {" " val group = mainActivitySelectRequestedGroup(this, reviewView, currentSession, groupId)" " if (ssdGroupMissing(group)) return" " val selectedGroup = ssdGroupOrEmpty(group)" @@ -8116,7 +8152,7 @@ " private fun isStaleLoad(generation: Int, uri: Uri, page: Int): Boolean =" " currentLoadStale(generation, loadGeneration, pdfUri, uri, pageIndex, page)" "" - " private fun handleAreaSelected(rect: FloatArray, detectedIds: List<String>) {" + " internal fun handleAreaSelected(rect: FloatArray, detectedIds: List<String>) {" " if (sessionMissing(currentSession)) {" " setStatus(selectionIgnoredLoadingStatus())" " return"