File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed
Sources/TelemetryDeck/Signals Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -96,6 +96,7 @@ TelemetryDeck will automatically send base parameters, such as:
96
96
- TelemetryDeck.SDK.version
97
97
- TelemetryDeck.UserPreference.region
98
98
- TelemetryDeck.UserPreference.language
99
+ - TelemetryDeck.UserPreference.colorScheme
99
100
100
101
See our [ Grand Renaming article] ( https://telemetrydeck.com/docs/articles/grand-rename/?source=github ) for a full list.
101
102
Original file line number Diff line number Diff line change @@ -96,6 +96,7 @@ public struct DefaultSignalPayload: Encodable {
96
96
97
97
" TelemetryDeck.UserPreference.language " : Self . preferredLanguage,
98
98
" TelemetryDeck.UserPreference.region " : Self . region,
99
+ " TelemetryDeck.UserPreference.colorScheme " : Self . colorScheme
99
100
]
100
101
101
102
if let extensionIdentifier = Self . extensionIdentifier {
@@ -338,6 +339,35 @@ extension DefaultSignalPayload {
338
339
return preferredLocaleIdentifier. components ( separatedBy: . init( charactersIn: " -_ " ) ) [ 0 ]
339
340
}
340
341
342
+ /// The color scheme set by the user. Returns `N/A` on unsupported platforms
343
+ static var colorScheme : String {
344
+ #if os(iOS) || os(tvOS)
345
+ switch UIScreen . main. traitCollection. userInterfaceStyle {
346
+ case . dark:
347
+ return " Dark "
348
+ case . light:
349
+ return " Light "
350
+ default :
351
+ return " N/A "
352
+ }
353
+ #elseif os(macOS)
354
+ if #available( macOS 10 . 14 , * ) {
355
+ switch NSAppearance . current. name {
356
+ case . aqua:
357
+ return " Light "
358
+ case . darkAqua:
359
+ return " Dark "
360
+ default :
361
+ return " N/A "
362
+ }
363
+ } else {
364
+ return " Light "
365
+ }
366
+ #else
367
+ return " N/A "
368
+ #endif
369
+ }
370
+
341
371
/// The current devices screen resolution width in points.
342
372
@MainActor
343
373
static var screenResolutionWidth : String {
You can’t perform that action at this time.
0 commit comments