Skip to content

Commit 85311a7

Browse files
authored
Merge pull request #193 from FPST-08/main
Added colorScheme to default signal payload
2 parents 1d9ac49 + 1e94211 commit 85311a7

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ TelemetryDeck will automatically send base parameters, such as:
9696
- TelemetryDeck.SDK.version
9797
- TelemetryDeck.UserPreference.region
9898
- TelemetryDeck.UserPreference.language
99+
- TelemetryDeck.UserPreference.colorScheme
99100

100101
See our [Grand Renaming article](https://telemetrydeck.com/docs/articles/grand-rename/?source=github) for a full list.
101102

Sources/TelemetryDeck/Signals/Signal.swift

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ public struct DefaultSignalPayload: Encodable {
9696

9797
"TelemetryDeck.UserPreference.language": Self.preferredLanguage,
9898
"TelemetryDeck.UserPreference.region": Self.region,
99+
"TelemetryDeck.UserPreference.colorScheme": Self.colorScheme
99100
]
100101

101102
if let extensionIdentifier = Self.extensionIdentifier {
@@ -338,6 +339,35 @@ extension DefaultSignalPayload {
338339
return preferredLocaleIdentifier.components(separatedBy: .init(charactersIn: "-_"))[0]
339340
}
340341

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+
341371
/// The current devices screen resolution width in points.
342372
@MainActor
343373
static var screenResolutionWidth: String {

0 commit comments

Comments
 (0)