Wire typed SSD AI report controls

ober

e325fc7f6d36103c7e1c228fb0172ace874aeb82

diff --git a/templates/ssd-review-parts/MainActivityLifecycle.ss b/templates/ssd-review-parts/MainActivityLifecycle.ss
index 22f34a2..bae1580 100644
--- a/templates/ssd-review-parts/MainActivityLifecycle.ss
+++ b/templates/ssd-review-parts/MainActivityLifecycle.ss
@@ -144,6 +144,11 @@
             :
             Unit
             (kotlin-call mainServerOnResume))
+          (extern
+            (mainLifecycleAiOnResume (activity : MainActivity))
+            :
+            Unit
+            (kotlin-call mainAiOnResume))
           (def (mainActivityOnCreate (activity : MainActivity))
                :
                Unit
@@ -177,6 +182,7 @@
                Unit
                (begin
                  (mainLifecycleServerOnResume activity)
+                 (mainLifecycleAiOnResume activity)
                  (if (ssdBrowserResumeReady
                        (mainLifecycleReopenSsdBrowserOnResumeRaw activity)
                        (mainActivityHasDirectDownloadAccess activity (mainLifecycleBuildSdkIntValue)
diff --git a/templates/ssd-review-parts/MainActivityUi.ss b/templates/ssd-review-parts/MainActivityUi.ss
index 06406e2..6811a02 100644
--- a/templates/ssd-review-parts/MainActivityUi.ss
+++ b/templates/ssd-review-parts/MainActivityUi.ss
@@ -350,6 +350,11 @@
             :
             Unit
             (kotlin-call mainServerShowEndpointDialog))
+          (extern
+            (mainUiAiShowIssue (activity : MainActivity))
+            :
+            Unit
+            (kotlin-call mainAiShowIssueDialog))
           (def (mainUiMatchParent) : Int32 (int32 -1))
           (def (mainUiWrapContent) : Int32 (int32 -2))
           (def (mainUiAddActionRow3 (controls : LinearLayout) (activity : MainActivity)
@@ -560,6 +565,29 @@
                        (mainUiReviewViewRaw activity)
                        (mainUiCurrentSessionRaw activity)
                        (mainUiSelectedGroupIdRaw activity))))))
+          (def (mainUiAddAiRow
+                 (controls : LinearLayout)
+                 (activity : MainActivity))
+               :
+               Unit
+               (let ([row (mainUiLinearLayout activity)])
+                 (begin
+                   (mainUiLinearLayoutOrientationSet
+                     row
+                     (mainUiOrientationHorizontal))
+                   (mainUiLinearLayoutGravitySet
+                     row
+                     (mainUiGravityCenterVertical))
+                   (mainActivityAddActionRowButtons
+                     row
+                     (list-of Button
+                       (mainActivityButton
+                         activity
+                         "Send Display to AI"
+                         (mainUiButtonKindAccent)
+                         (lambda () (mainUiAiShowIssue activity))))
+                     (mainUiDp activity (int32 3)))
+                   (mainUiLinearLayoutAddLinearLayout controls row))))
           (def (mainUiAddNavigationRow
                  (controls : LinearLayout)
                  (activity : MainActivity))
@@ -672,6 +700,7 @@
                    (mainUiAddFirstRow controls activity)
                    (mainUiAddSecondRow controls activity)
                    (mainUiAddServerRow controls activity)
+                   (mainUiAddAiRow controls activity)
                    (mainUiAddPageRow controls activity)
                    (mainUiAddModeRow controls activity)
                    (mainUiAddNavigationRow controls activity)