Skip to content

Commit a8af49a

Browse files
committed
Revert "Merge pull request #2432 from DataDog/gonzalezreal/RUM-11242/swiftui-shape"
This reverts commit eeffc34, reversing changes made to 5245546.
1 parent 792a6cb commit a8af49a

35 files changed

Lines changed: 97 additions & 777 deletions

File tree

CHANGELOG.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
- [IMPROVEMENT] Remove fatal errors from Logs. See [#2359][]
1616
- [IMPROVEMENT] Introduce new category for network errors. See [#2341][]
1717
- [IMPROVEMENT] Add opt-out API to disable tracking memory warnings as RUM Errors. See [#2355][]
18-
- [IMPROVEMENT] Improve SwiftUI system image and SF symbol capture in Session Replay through shape SVG recording, image maskColor support, and drawing rasterization. See [#2432][] [#2428][] [#2391][]
1918

2019
# 2.30.0 / 28-07-2025
2120

Datadog/Datadog.xcodeproj/project.pbxproj

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -450,15 +450,10 @@
450450
49D8C0BE2AC5F2BC0075E427 /* Logs+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49D8C0B92AC5F21F0075E427 /* Logs+Internal.swift */; };
451451
5B0A9B8B2E3BB98E00A8131C /* GraphicsFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B0A9B8A2E3BB98500A8131C /* GraphicsFilter.swift */; };
452452
5B0A9B8D2E3BBB4500A8131C /* GraphicsFilter+Reflection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B0A9B8C2E3BBB3D00A8131C /* GraphicsFilter+Reflection.swift */; };
453-
5B3AF8AA2E4B3AE9009E5375 /* EnrichedResourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B3AF8A92E4B3AE6009E5375 /* EnrichedResourceTests.swift */; };
454-
5B9B20C52E460A0600C95B6C /* ShapeResourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9B20C42E4609FC00C95B6C /* ShapeResourceTests.swift */; };
455453
5B9CB9E32E41F6F9005485E6 /* ImageRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9CB9E22E41F6F6005485E6 /* ImageRepresentable.swift */; };
456454
5B9CB9E52E41FD60005485E6 /* Drawing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9CB9E42E41FD5C005485E6 /* Drawing.swift */; };
457455
5B9CB9E72E420ACB005485E6 /* ImageRendererTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B9CB9E62E420AC4005485E6 /* ImageRendererTests.swift */; };
458456
5BCBC0CD2DF85B6A0094DCC2 /* SessionReplayPrivacyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BCBC0CC2DF85AFE0094DCC2 /* SessionReplayPrivacyView.swift */; };
459-
5BF7B51F2E44F7D300E0B772 /* ShapeResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BF7B51E2E44F7CE00E0B772 /* ShapeResource.swift */; };
460-
5BF7B5212E45032600E0B772 /* CGPath+SessionReplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BF7B5202E45031C00E0B772 /* CGPath+SessionReplay.swift */; };
461-
5BF7B5232E45045600E0B772 /* CGPath+SessionReplayTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BF7B5222E45045600E0B772 /* CGPath+SessionReplayTests.swift */; };
462457
5BFDD7A92E28FDD3009A2CEE /* RUMWebViewContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFDD7A82E28FDC9009A2CEE /* RUMWebViewContext.swift */; };
463458
5BFDD7AA2E28FDD3009A2CEE /* RUMWebViewContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFDD7A82E28FDC9009A2CEE /* RUMWebViewContext.swift */; };
464459
5BFE7B7B2E3CFCDE00B8FAA8 /* ImageRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BFE7B7A2E3CFCDA00B8FAA8 /* ImageRenderer.swift */; };
@@ -2455,15 +2450,10 @@
24552450
49D8C0B92AC5F21F0075E427 /* Logs+Internal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Logs+Internal.swift"; sourceTree = "<group>"; };
24562451
5B0A9B8A2E3BB98500A8131C /* GraphicsFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GraphicsFilter.swift; sourceTree = "<group>"; };
24572452
5B0A9B8C2E3BBB3D00A8131C /* GraphicsFilter+Reflection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GraphicsFilter+Reflection.swift"; sourceTree = "<group>"; };
2458-
5B3AF8A92E4B3AE6009E5375 /* EnrichedResourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnrichedResourceTests.swift; sourceTree = "<group>"; };
2459-
5B9B20C42E4609FC00C95B6C /* ShapeResourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShapeResourceTests.swift; sourceTree = "<group>"; };
24602453
5B9CB9E22E41F6F6005485E6 /* ImageRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRepresentable.swift; sourceTree = "<group>"; };
24612454
5B9CB9E42E41FD5C005485E6 /* Drawing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Drawing.swift; sourceTree = "<group>"; };
24622455
5B9CB9E62E420AC4005485E6 /* ImageRendererTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRendererTests.swift; sourceTree = "<group>"; };
24632456
5BCBC0CC2DF85AFE0094DCC2 /* SessionReplayPrivacyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionReplayPrivacyView.swift; sourceTree = "<group>"; };
2464-
5BF7B51E2E44F7CE00E0B772 /* ShapeResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShapeResource.swift; sourceTree = "<group>"; };
2465-
5BF7B5202E45031C00E0B772 /* CGPath+SessionReplay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGPath+SessionReplay.swift"; sourceTree = "<group>"; };
2466-
5BF7B5222E45045600E0B772 /* CGPath+SessionReplayTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGPath+SessionReplayTests.swift"; sourceTree = "<group>"; };
24672457
5BFDD7A82E28FDC9009A2CEE /* RUMWebViewContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RUMWebViewContext.swift; sourceTree = "<group>"; };
24682458
5BFE7B7A2E3CFCDA00B8FAA8 /* ImageRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRenderer.swift; sourceTree = "<group>"; };
24692459
61020C292757AD91005EEAEA /* BackgroundLocationMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundLocationMonitor.swift; sourceTree = "<group>"; };
@@ -4024,14 +4014,6 @@
40244014
path = WatchdogTerminations;
40254015
sourceTree = "<group>";
40264016
};
4027-
5B3AF8A82E4B3A7F009E5375 /* Models */ = {
4028-
isa = PBXGroup;
4029-
children = (
4030-
5B3AF8A92E4B3AE6009E5375 /* EnrichedResourceTests.swift */,
4031-
);
4032-
path = Models;
4033-
sourceTree = "<group>";
4034-
};
40354017
61020C272757AD63005EEAEA /* BackgroundEvents */ = {
40364018
isa = PBXGroup;
40374019
children = (
@@ -4065,19 +4047,18 @@
40654047
61054E022A6EE0DB00AAA894 /* DatadogSessionReplayTests */ = {
40664048
isa = PBXGroup;
40674049
children = (
4068-
61054F882A6EE1BA00AAA894 /* Feature */,
4069-
61054F922A6EE1BA00AAA894 /* Helpers */,
4070-
5B3AF8A82E4B3A7F009E5375 /* Models */,
4071-
61054F4E2A6EE1BA00AAA894 /* Processor */,
4072-
61054F592A6EE1BA00AAA894 /* Recorder */,
40734050
960B26C12D03611400D7196F /* Resources */,
4074-
61054F3E2A6EE1B900AAA894 /* Utilities */,
4075-
61054F492A6EE1BA00AAA894 /* Writer */,
40764051
96E863712C9C547B0023BF78 /* SessionReplayOverrideTests.swift */,
40774052
61054F482A6EE1B900AAA894 /* SessionReplayTests.swift */,
40784053
61054F3D2A6EE1B900AAA894 /* SessionReplayConfigurationTests.swift */,
40794054
D2A434AD2A8E426C0028E329 /* DDSessionReplayTests.swift */,
40804055
96E863752C9C7E800023BF78 /* DDSessionReplayOverridesTests.swift */,
4056+
61054F882A6EE1BA00AAA894 /* Feature */,
4057+
61054F922A6EE1BA00AAA894 /* Helpers */,
4058+
61054F4E2A6EE1BA00AAA894 /* Processor */,
4059+
61054F592A6EE1BA00AAA894 /* Recorder */,
4060+
61054F3E2A6EE1B900AAA894 /* Utilities */,
4061+
61054F492A6EE1BA00AAA894 /* Writer */,
40814062
);
40824063
name = DatadogSessionReplayTests;
40834064
path = ../DatadogSessionReplay/Tests;
@@ -4121,7 +4102,6 @@
41214102
children = (
41224103
61054E142A6EE10A00AAA894 /* UIImage+SessionReplay.swift */,
41234104
962D72BE2CF7538800F86EF0 /* CGImage+SessionReplay.swift */,
4124-
5BF7B5202E45031C00E0B772 /* CGPath+SessionReplay.swift */,
41254105
D22442C42CA301DA002E71E4 /* UIColor+SessionReplay.swift */,
41264106
61054E152A6EE10A00AAA894 /* UIView+SessionReplay.swift */,
41274107
61054E162A6EE10A00AAA894 /* CFType+Safety.swift */,
@@ -4414,7 +4394,6 @@
44144394
children = (
44154395
61054F5D2A6EE1BA00AAA894 /* UIView+SessionReplayTests.swift */,
44164396
61054F5F2A6EE1BA00AAA894 /* CGRect+SessionReplayTests.swift */,
4417-
5BF7B5222E45045600E0B772 /* CGPath+SessionReplayTests.swift */,
44184397
);
44194398
path = Utilties;
44204399
sourceTree = "<group>";
@@ -5904,7 +5883,6 @@
59045883
960B26BA2D03541900D7196F /* SwiftUI */ = {
59055884
isa = PBXGroup;
59065885
children = (
5907-
5B9B20C42E4609FC00C95B6C /* ShapeResourceTests.swift */,
59085886
5B9CB9E62E420AC4005485E6 /* ImageRendererTests.swift */,
59095887
D21331C02D132F0600E4A6A1 /* SwiftUIWireframesBuilderTests.swift */,
59105888
962D72C42CF7806300F86EF0 /* GraphicsImageReflectionTests.swift */,
@@ -6166,8 +6144,10 @@
61666144
E2AA55E62C32C6D9002FEF28 /* ApplicationNotifications.swift */,
61676145
D23039B3298D5235001A1FA3 /* AppState.swift */,
61686146
D23039B5298D5235001A1FA3 /* BatteryStatus.swift */,
6147+
6174D6122BFDF16C00EC7469 /* BundleType.swift */,
61696148
D23039B6298D5235001A1FA3 /* CarrierInfo.swift */,
61706149
D23039BA298D5235001A1FA3 /* DatadogContext.swift */,
6150+
D2F8235229915E12003C7E99 /* DatadogSite.swift */,
61716151
D23039B7298D5235001A1FA3 /* DateProvider.swift */,
61726152
D23039BC298D5235001A1FA3 /* DeviceInfo.swift */,
61736153
D23039BE298D5235001A1FA3 /* LaunchTime.swift */,
@@ -6176,6 +6156,7 @@
61766156
D23039B8298D5235001A1FA3 /* Sysctl.swift */,
61776157
D23039BB298D5235001A1FA3 /* TrackingConsent.swift */,
61786158
D23039B4298D5235001A1FA3 /* UserInfo.swift */,
6159+
8648D07A2E01ABB0002F226B /* BrightnessStatus.swift */,
61796160
D2F8235229915E12003C7E99 /* DatadogSite.swift */,
61806161
6174D6122BFDF16C00EC7469 /* BundleType.swift */,
61816162
8648D07A2E01ABB0002F226B /* BrightnessLevel.swift */,
@@ -6594,7 +6575,6 @@
65946575
962D72BB2CF6436600F86EF0 /* GraphicsImage+Reflection.swift */,
65956576
5B9CB9E22E41F6F6005485E6 /* ImageRepresentable.swift */,
65966577
5BFE7B7A2E3CFCDA00B8FAA8 /* ImageRenderer.swift */,
6597-
5BF7B51E2E44F7CE00E0B772 /* ShapeResource.swift */,
65986578
D2AD1CBE2CE4AE6600106C74 /* SwiftUIWireframesBuilder.swift */,
65996579
D2AD1CBF2CE4AE6600106C74 /* Text.swift */,
66006580
D2AD1CC02CE4AE6600106C74 /* Text+Reflection.swift */,
@@ -8516,7 +8496,6 @@
85168496
61054E972A6EE10A00AAA894 /* Diff.swift in Sources */,
85178497
61054E6E2A6EE10A00AAA894 /* RecordingCoordinator.swift in Sources */,
85188498
61054E9F2A6EE10B00AAA894 /* Errors.swift in Sources */,
8519-
5BF7B51F2E44F7D300E0B772 /* ShapeResource.swift in Sources */,
85208499
D29A470D2D2ED49F0092BC79 /* Xoshiro.swift in Sources */,
85218500
61054E642A6EE10A00AAA894 /* SessionReplay.swift in Sources */,
85228501
61054E952A6EE10A00AAA894 /* SnapshotProcessor.swift in Sources */,
@@ -8551,7 +8530,6 @@
85518530
D22442C52CA301DA002E71E4 /* UIColor+SessionReplay.swift in Sources */,
85528531
61054E8E2A6EE10A00AAA894 /* SRContextPublisher.swift in Sources */,
85538532
61054E732A6EE10A00AAA894 /* WindowTouchSnapshotProducer.swift in Sources */,
8554-
5BF7B5212E45032600E0B772 /* CGPath+SessionReplay.swift in Sources */,
85558533
96F25A822CC7EA4400459567 /* SessionReplayPrivacyOverrides+objc.swift in Sources */,
85568534
A70ADCD22B583B1300321BC9 /* UIImageResource.swift in Sources */,
85578535
61054E792A6EE10A00AAA894 /* UITextViewRecorder.swift in Sources */,
@@ -8569,9 +8547,7 @@
85698547
960B26C32D075BD200D7196F /* DisplayListReflectionTests.swift in Sources */,
85708548
61054FD42A6EE1BA00AAA894 /* SegmentRequestBuilderTests.swift in Sources */,
85718549
61054FB52A6EE1BA00AAA894 /* UISliderRecorderTests.swift in Sources */,
8572-
5B9B20C52E460A0600C95B6C /* ShapeResourceTests.swift in Sources */,
85738550
61054FB22A6EE1BA00AAA894 /* UILabelRecorderTests.swift in Sources */,
8574-
5B3AF8AA2E4B3AE9009E5375 /* EnrichedResourceTests.swift in Sources */,
85758551
D2C5D52D2B84F6D800B63F36 /* WebViewRecordReceiverTests.swift in Sources */,
85768552
61054FBA2A6EE1BA00AAA894 /* UIImageViewRecorderTests.swift in Sources */,
85778553
61054FC02A6EE1BA00AAA894 /* UITextViewRecorderTests.swift in Sources */,
@@ -8600,7 +8576,6 @@
86008576
61054FBD2A6EE1BA00AAA894 /* UIViewRecorderTests.swift in Sources */,
86018577
61054F952A6EE1BA00AAA894 /* SessionReplayConfigurationTests.swift in Sources */,
86028578
61054FAC2A6EE1BA00AAA894 /* CGRect+SessionReplayTests.swift in Sources */,
8603-
5BF7B5232E45045600E0B772 /* CGPath+SessionReplayTests.swift in Sources */,
86048579
D218B0482D072CF300E3F82C /* SessionReplayTelemetryTests.swift in Sources */,
86058580
D21331C12D132F0600E4A6A1 /* SwiftUIWireframesBuilderTests.swift in Sources */,
86068581
61054FA42A6EE1BA00AAA894 /* DiffTests.swift in Sources */,

DatadogSessionReplay/SRSnapshotTests/SRSnapshotTests.xcodeproj/project.pbxproj

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
5BA0067B2E49F6A3000148DB /* UIImage+SVG.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BA0067A2E49F698000148DB /* UIImage+SVG.swift */; };
11-
5BA0067D2E49F8BF000148DB /* UIColor+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BA0067C2E49F8B3000148DB /* UIColor+Hex.swift */; };
1210
5BB746152E02ABB900B568F1 /* SwiftUIFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB746142E02ABB500B568F1 /* SwiftUIFixture.swift */; };
1311
5BB746182E02B4CD00B568F1 /* SwiftUIViewWithPrivacyOverrides.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB746172E02B4CD00B568F1 /* SwiftUIViewWithPrivacyOverrides.swift */; };
1412
614396642A5E8C0600197326 /* Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 614396632A5E8C0600197326 /* Environment.swift */; };
@@ -42,8 +40,6 @@
4240
/* End PBXContainerItemProxy section */
4341

4442
/* Begin PBXFileReference section */
45-
5BA0067A2E49F698000148DB /* UIImage+SVG.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+SVG.swift"; sourceTree = "<group>"; };
46-
5BA0067C2E49F8B3000148DB /* UIColor+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Hex.swift"; sourceTree = "<group>"; };
4743
5BB746142E02ABB500B568F1 /* SwiftUIFixture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIFixture.swift; sourceTree = "<group>"; };
4844
5BB746172E02B4CD00B568F1 /* SwiftUIViewWithPrivacyOverrides.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIViewWithPrivacyOverrides.swift; sourceTree = "<group>"; };
4945
614396632A5E8C0600197326 /* Environment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Environment.swift; path = SRHost/Environment.swift; sourceTree = "<group>"; };
@@ -105,8 +101,6 @@
105101
619C49B529955106006B66A6 /* Utils */ = {
106102
isa = PBXGroup;
107103
children = (
108-
5BA0067C2E49F8B3000148DB /* UIColor+Hex.swift */,
109-
5BA0067A2E49F698000148DB /* UIImage+SVG.swift */,
110104
5BB746142E02ABB500B568F1 /* SwiftUIFixture.swift */,
111105
619C49B329952E12006B66A6 /* SnapshotTestCase.swift */,
112106
96363B2B2CD26AF3006FEC9D /* PrivacyOverrides.swift */,
@@ -310,10 +304,8 @@
310304
files = (
311305
619C49BB299639BC006B66A6 /* ImageRendering.swift in Sources */,
312306
614396652A5E8C0600197326 /* Environment.swift in Sources */,
313-
5BA0067B2E49F6A3000148DB /* UIImage+SVG.swift in Sources */,
314307
61B3BC652993BEAF0032C78A /* SRSnapshotTests.swift in Sources */,
315308
96363B2C2CD26AF3006FEC9D /* PrivacyOverrides.swift in Sources */,
316-
5BA0067D2E49F8BF000148DB /* UIColor+Hex.swift in Sources */,
317309
61BB975F2A5D675400AFFF86 /* ImageComposition.swift in Sources */,
318310
5BB746182E02B4CD00B568F1 /* SwiftUIViewWithPrivacyOverrides.swift in Sources */,
319311
619C49B72995512A006B66A6 /* ImageComparison.swift in Sources */,

DatadogSessionReplay/SRSnapshotTests/SRSnapshotTests/Utils/ImageRendering.swift

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,11 @@ private extension SRWireframe {
5959
case .textWireframe(let text):
6060
return text.toFrame()
6161
case .imageWireframe(value: let image):
62-
let resource = resources.first {
63-
$0.calculateIdentifier() == image.resourceId
64-
}
65-
switch resource?.mimeType {
66-
case .some("image/svg+xml"):
67-
return image.toFrame(svgData: resource?.calculateData())
68-
default:
69-
return image.toFrame(imageData: resource?.calculateData())
70-
}
62+
return image.toFrame(
63+
imageData: resources
64+
.first { $0.calculateIdentifier() == image.resourceId }?
65+
.calculateData()
66+
)
7167
case .placeholderWireframe(value: let placeholder):
7268
return placeholder.toFrame()
7369
case .webviewWireframe(value: let webview):
@@ -119,19 +115,6 @@ private extension SRImageWireframe {
119115
content: .init(imageData: imageData)
120116
)
121117
}
122-
123-
func toFrame(svgData: Data?) -> BlueprintFrame {
124-
BlueprintFrame(
125-
x: x,
126-
y: y,
127-
width: width,
128-
height: height,
129-
border: border,
130-
style: shapeStyle,
131-
clip: clip,
132-
content: .init(svgData: svgData)
133-
)
134-
}
135118
}
136119

137120
private extension SRWebviewWireframe {
@@ -284,10 +267,23 @@ extension BlueprintFrame.Content {
284267
let contentType: BlueprintFrame.Content.ContentType = .image(image: image)
285268
self.init(contentType: contentType)
286269
}
270+
}
287271

288-
init(svgData: Data?) {
289-
let image = svgData.flatMap { UIImage(svgData: $0, scale: UIScreen.main.scale) } ?? UIImage()
290-
let contentType: BlueprintFrame.Content.ContentType = .image(image: image)
291-
self.init(contentType: contentType)
272+
private extension UIColor {
273+
convenience init(hexString: String) {
274+
precondition(hexString.count == 9, "Invalid `hexString` - expected 9 characters, got '\(hexString)'")
275+
precondition(hexString.hasPrefix("#"), "Invalid `hexString` - expected # prefix, got '\(hexString)'")
276+
277+
guard let hex8 = UInt64(hexString.dropFirst(), radix: 16) else {
278+
preconditionFailure("Invalid `hexString`` - expected hexadecimal value, got '\(hexString)'")
279+
}
280+
281+
let mask: UInt64 = 0x00000000FF
282+
self.init(
283+
red: CGFloat((hex8 >> 24) & mask) / CGFloat(255),
284+
green: CGFloat((hex8 >> 16) & mask) / CGFloat(255),
285+
blue: CGFloat((hex8 >> 8) & mask) / CGFloat(255),
286+
alpha: CGFloat(hex8 & mask) / CGFloat(255)
287+
)
292288
}
293289
}

DatadogSessionReplay/SRSnapshotTests/SRSnapshotTests/Utils/UIColor+Hex.swift

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)