Skip to content

Commit

Permalink
RUM-917 Enforce unique uuid for all sub recorders
Browse files Browse the repository at this point in the history
  • Loading branch information
maciejburda committed Oct 24, 2024
1 parent b7ebb2c commit cbf9ef9
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ internal struct UIDatePickerRecorder: NodeRecorder {

init(identifier: UUID) {
self.identifier = identifier
self.wheelsStyleRecorder = WheelsStyleDatePickerRecorder(identifier: identifier)
self.compactStyleRecorder = CompactStyleDatePickerRecorder(identifier: identifier)
self.inlineStyleRecorder = InlineStyleDatePickerRecorder(identifier: identifier)
self.wheelsStyleRecorder = WheelsStyleDatePickerRecorder(identifier: UUID())
self.compactStyleRecorder = CompactStyleDatePickerRecorder(identifier: UUID())
self.inlineStyleRecorder = InlineStyleDatePickerRecorder(identifier: UUID())
}

func semantics(of view: UIView, with attributes: ViewAttributes, in context: ViewTreeRecordingContext) -> NodeSemantics? {
Expand Down Expand Up @@ -104,9 +104,9 @@ private struct InlineStyleDatePickerRecorder {
let subtreeRecorder: ViewTreeRecorder

init(identifier: UUID) {
self.viewRecorder = UIViewRecorder(identifier: identifier)
self.viewRecorder = UIViewRecorder(identifier: UUID())
self.labelRecorder = UILabelRecorder(
identifier: identifier,
identifier: UUID(),
textObfuscator: { context, viewAttributes in
return viewAttributes.resolveTextAndInputPrivacyLevel(in: context).staticTextObfuscator
}
Expand All @@ -115,8 +115,8 @@ private struct InlineStyleDatePickerRecorder {
nodeRecorders: [
viewRecorder,
labelRecorder,
UIImageViewRecorder(identifier: identifier),
UISegmentRecorder(identifier: identifier), // iOS 14.x uses `UISegmentedControl` for "AM | PM"
UIImageViewRecorder(identifier: UUID()),
UISegmentRecorder(identifier: UUID()), // iOS 14.x uses `UISegmentedControl` for "AM | PM"
]
)
}
Expand Down Expand Up @@ -151,9 +151,9 @@ private struct CompactStyleDatePickerRecorder {
init(identifier: UUID) {
self.subtreeRecorder = ViewTreeRecorder(
nodeRecorders: [
UIViewRecorder(identifier: identifier),
UIViewRecorder(identifier: UUID()),
UILabelRecorder(
identifier: identifier,
identifier: UUID(),
textObfuscator: { context, viewAttributes in
return viewAttributes.resolveTextAndInputPrivacyLevel(in: context).staticTextObfuscator
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ internal struct UIPickerViewRecorder: NodeRecorder {
}
) {
self.identifier = identifier
self.selectionRecorder = ViewTreeRecorder(nodeRecorders: [UIViewRecorder(identifier: identifier)])
self.selectionRecorder = ViewTreeRecorder(nodeRecorders: [UIViewRecorder(identifier: UUID())])
self.labelsRecorder = ViewTreeRecorder(
nodeRecorders: [
UIViewRecorder(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@ import UIKit

internal final class UITabBarRecorder: NodeRecorder {
internal let identifier: UUID
internal let labelRecorder: UILabelRecorder
internal let viewRecorder: UIViewRecorder

init(identifier: UUID) {
self.identifier = identifier
self.labelRecorder = UILabelRecorder(identifier: UUID())
self.viewRecorder = UIViewRecorder(identifier: UUID())
}

func semantics(of view: UIView, with attributes: ViewAttributes, in context: ViewTreeRecordingContext) -> NodeSemantics? {
Expand Down Expand Up @@ -63,9 +67,8 @@ internal final class UITabBarRecorder: NodeRecorder {
return tabBar.tintColor ?? SystemColors.systemBlue
}
),
UILabelRecorder(identifier: identifier),
// This is for recording the badge view
UIViewRecorder(identifier: identifier)
labelRecorder,
viewRecorder
]
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ internal struct UITextFieldRecorder: NodeRecorder {

init(identifier: UUID) {
self.identifier = identifier
self.backgroundViewRecorder = UIViewRecorder(identifier: identifier)
self.iconsRecorder = UIImageViewRecorder(identifier: identifier)
self.backgroundViewRecorder = UIViewRecorder(identifier: UUID())
self.iconsRecorder = UIImageViewRecorder(identifier: UUID())
self.subtreeRecorder = ViewTreeRecorder(nodeRecorders: [backgroundViewRecorder, iconsRecorder])
}

Expand Down

0 comments on commit cbf9ef9

Please sign in to comment.