Move SSD viewport capture policy to typed Kotlin

ober

d43f966946f9ce0dae437d63dd03446b7f7e3b78

diff --git a/templates/ssd-review.ss b/templates/ssd-review.ss
index e759878..4f87875 100644
--- a/templates/ssd-review.ss
+++ b/templates/ssd-review.ss
@@ -3883,6 +3883,7 @@
                 selectionIgnoredLoadingStatus
                 shouldShowFiringArc shouldFocusFiringArc
                 canvasLabelPresent
+                shouldCaptureViewport
                 hasReplacementLabel hasResolvedLabel
                 packageUriText mediaStorePdfSelection
                 mediaStoreDisplayNameSort
@@ -4270,6 +4271,8 @@
                (string-blank? firingArcText)))
         (def (canvasLabelPresent (label : String)) : Bool
           (not (string-blank? label)))
+        (def (shouldCaptureViewport (includeViewport : Bool)) : Bool
+          includeViewport)
         (def (hasReplacementLabel (replacement : String)) : Bool
           (not (string-blank? replacement)))
         (def (hasResolvedLabel (resolved : String)) : Bool
@@ -6684,7 +6687,7 @@
        "            .putString(PREF_LAST_PDF_SHA1, pdfSha1)"
        "            .putInt(PREF_LAST_PAGE_INDEX, pageIndex)"
        "            .putInt(PREF_LAST_PAGE_COUNT, pageCount)"
-       "        val viewport = if (includeViewport) reviewView.captureViewport() else null"
+       "        val viewport = if (shouldCaptureViewport(includeViewport)) reviewView.captureViewport() else null"
        "        if (viewport != null) {"
        "            edit.putInt(PREF_LAST_VIEWPORT_PAGE_INDEX, pageIndex)"
        "                .putFloat(PREF_LAST_VIEWPORT_SCALE, viewport.scale)"