Showing 1 changed files with 22 additions and 1 deletions
+22 -1
HealthProbe/Views/Snapshots/SnapshotsView.swift
@@ -188,6 +188,21 @@ private struct SnapshotRow: View {
188 188
         DeviceColor(rawValue: profile?.colorTag ?? "")?.color ?? .neutralGray
189 189
     }
190 190
 
191
+    private var metricCount: Int {
192
+        snapshot.typeCounts?.count ?? 0
193
+    }
194
+
195
+    private var metricCountLabel: String {
196
+        metricCount == 1 ? "1 metric" : "\(metricCount) metrics"
197
+    }
198
+
199
+    private var hasOSVersionChange: Bool {
200
+        guard let baseline else { return false }
201
+        let currentVersion = snapshot.osVersion.trimmingCharacters(in: .whitespacesAndNewlines)
202
+        let baselineVersion = baseline.osVersion.trimmingCharacters(in: .whitespacesAndNewlines)
203
+        return !currentVersion.isEmpty && !baselineVersion.isEmpty && currentVersion != baselineVersion
204
+    }
205
+
191 206
     var body: some View {
192 207
         VStack(alignment: .leading, spacing: 4) {
193 208
             HStack {
@@ -215,9 +230,15 @@ private struct SnapshotRow: View {
215 230
                 Text(deviceDisplayName)
216 231
                     .font(.caption)
217 232
                     .foregroundStyle(.secondary)
218
-                Label(snapshot.osVersion, systemImage: "gear")
233
+                Label(metricCountLabel, systemImage: "list.bullet.rectangle")
219 234
                     .font(.caption)
220 235
                     .foregroundStyle(.secondary)
236
+                if hasOSVersionChange {
237
+                    Label("OS \(snapshot.osVersion)", systemImage: "gearshape.fill")
238
+                        .font(.caption)
239
+                        .foregroundStyle(Color.warningAmber)
240
+                        .accessibilityLabel("OS version changed to \(snapshot.osVersion)")
241
+                }
221 242
             }
222 243
 
223 244
             // Chain indicators