Wire typed SSD self-test lifecycle

ober

7a52af9db45725e08c966fe1c897387bb34c4427

diff --git a/templates/ssd-review-parts/MainActivity.ss b/templates/ssd-review-parts/MainActivity.ss
index 808be93..cfb112f 100644
--- a/templates/ssd-review-parts/MainActivity.ss
+++ b/templates/ssd-review-parts/MainActivity.ss
@@ -10,6 +10,7 @@
           (type Activity) (type Bitmap) (type BoxType) (type Bundle)
           (type Int32) (type IntArray) (type Intent)
           (type SfbAiReportClient) (type SfbServerClient)
+          (type SsdSelfTestMode)
           (type SsdReviewView) (type SsdSession) (type TextView)
           (type TruthStore) (type Uri)
           (extern
@@ -64,6 +65,9 @@
            (var serverPdfId : String "" (modifiers internal))
            (var aiPollingJobId : String ""
                 (modifiers \x40;Volatile internal))
+           (var selfTestModeState : SsdSelfTestMode
+                (new SsdSelfTestMode #f #f #f)
+                (modifiers internal))
            (var reviewView
                 :
                 SsdReviewView
diff --git a/templates/ssd-review-parts/MainActivityLifecycle.ss b/templates/ssd-review-parts/MainActivityLifecycle.ss
index bae1580..6aebfdd 100644
--- a/templates/ssd-review-parts/MainActivityLifecycle.ss
+++ b/templates/ssd-review-parts/MainActivityLifecycle.ss
@@ -149,6 +149,21 @@
             :
             Unit
             (kotlin-call mainAiOnResume))
+          (extern
+            (mainLifecycleSelfTestInitialize (activity : MainActivity))
+            :
+            Unit
+            (kotlin-call mainSelfTestInitialize))
+          (extern
+            (mainLifecycleSelfTestEnabled (activity : MainActivity))
+            :
+            Bool
+            (kotlin-call mainSelfTestEnabled))
+          (extern
+            (mainLifecycleSelfTestInstall (activity : MainActivity))
+            :
+            Bool
+            (kotlin-call mainSelfTestInstallFixture))
           (def (mainActivityOnCreate (activity : MainActivity))
                :
                Unit
@@ -163,6 +178,7 @@
                  (mainActivitySetTruthStore
                    activity
                    (mainLifecycleTruthStore activity))
+                 (mainLifecycleSelfTestInitialize activity)
                  (mainLifecycleServerInitialize activity)
                  (mainLifecycleSetContentView
                    activity
@@ -172,16 +188,22 @@
                    (startupStatus
                      (truthStoreStorageSummary
                        (mainLifecycleTruthStoreRaw activity))))
-                 (mainActivityRestoreLastPdf activity)
+                 (if (mainLifecycleSelfTestInstall activity)
+                     (begin)
+                     (begin
+                       (mainActivityRestoreLastPdf activity)
+                       (begin)))
                  (mainActivitySeedBundledTruthAsync
                    activity
                    (mainLifecycleTruthStoreRaw activity))
-                 (mainLifecycleServerRefreshAsync activity "start" #f)))
+                 (mainLifecycleServerRefreshAsync activity "start"
+                   (mainLifecycleSelfTestEnabled activity))))
           (def (mainActivityOnResume (activity : MainActivity))
                :
                Unit
                (begin
-                 (mainLifecycleServerOnResume activity)
+                 (mainLifecycleServerRefreshAsync activity "resume"
+                   (mainLifecycleSelfTestEnabled activity))
                  (mainLifecycleAiOnResume activity)
                  (if (ssdBrowserResumeReady
                        (mainLifecycleReopenSsdBrowserOnResumeRaw activity)