diff --git a/Sources/Amplitude/Constants.swift b/Sources/Amplitude/Constants.swift index 6d5b1e3..2494e93 100644 --- a/Sources/Amplitude/Constants.swift +++ b/Sources/Amplitude/Constants.swift @@ -95,16 +95,14 @@ public struct Constants { static let AMP_APP_LINK_URL_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Link URL" static let AMP_APP_LINK_REFERRER_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Link Referrer" static let AMP_APP_SCREEN_NAME_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Screen Name" - static let AMP_APP_VIEW_CONTROLLER = "\(AMP_AMPLITUDE_PREFIX)View Controller" - static let AMP_APP_TITLE = "\(AMP_AMPLITUDE_PREFIX)Title" - static let AMP_APP_TARGET_ACCESSIBILITY_LABEL = "\(AMP_AMPLITUDE_PREFIX)Target Accessibility Label" - static let AMP_APP_TARGET_ACCESSIBILITY_IDENTIFIER = "\(AMP_AMPLITUDE_PREFIX)Target Accessibility Identifier" - static let AMP_APP_ACTION = "\(AMP_AMPLITUDE_PREFIX)Action" - static let AMP_APP_TARGET_VIEW_CLASS = "\(AMP_AMPLITUDE_PREFIX)Target View Class" - static let AMP_APP_TARGET_TEXT = "\(AMP_AMPLITUDE_PREFIX)Target Text" - static let AMP_APP_HIERARCHY = "\(AMP_AMPLITUDE_PREFIX)Hierarchy" - static let AMP_APP_ACTION_METHOD = "\(AMP_AMPLITUDE_PREFIX)Action Method" - static let AMP_APP_GESTURE_RECOGNIZER = "\(AMP_AMPLITUDE_PREFIX)Gesture Recognizer" + static let AMP_APP_TARGET_AXLABEL_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Target Accessibility Label" + static let AMP_APP_TARGET_AXIDENTIFIER_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Target Accessibility Identifier" + static let AMP_APP_ACTION_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Action" + static let AMP_APP_TARGET_VIEW_CLASS_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Target View Class" + static let AMP_APP_TARGET_TEXT_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Target Text" + static let AMP_APP_HIERARCHY_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Hierarchy" + static let AMP_APP_ACTION_METHOD_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Action Method" + static let AMP_APP_GESTURE_RECOGNIZER_PROPERTY = "\(AMP_AMPLITUDE_PREFIX)Gesture Recognizer" public struct Configuration { public static let FLUSH_QUEUE_SIZE = 30 diff --git a/Sources/Amplitude/Events/ElementInteractionEvent.swift b/Sources/Amplitude/Events/ElementInteractionEvent.swift index 214b0b7..4dbd0e8 100644 --- a/Sources/Amplitude/Events/ElementInteractionEvent.swift +++ b/Sources/Amplitude/Events/ElementInteractionEvent.swift @@ -2,8 +2,7 @@ import Foundation public class ElementInteractionEvent: BaseEvent { convenience init( - viewController: String? = nil, - title: String? = nil, + screenName: String? = nil, accessibilityLabel: String? = nil, accessibilityIdentifier: String? = nil, action: String, @@ -14,16 +13,15 @@ public class ElementInteractionEvent: BaseEvent { gestureRecognizer: String? = nil ) { self.init(eventType: Constants.AMP_ELEMENT_INTERACTED_EVENT, eventProperties: [ - Constants.AMP_APP_VIEW_CONTROLLER: viewController, - Constants.AMP_APP_TITLE: title, - Constants.AMP_APP_TARGET_ACCESSIBILITY_LABEL: accessibilityLabel, - Constants.AMP_APP_TARGET_ACCESSIBILITY_IDENTIFIER: accessibilityIdentifier, - Constants.AMP_APP_ACTION: action, - Constants.AMP_APP_TARGET_VIEW_CLASS: targetViewClass, - Constants.AMP_APP_TARGET_TEXT: targetText, - Constants.AMP_APP_HIERARCHY: hierarchy, - Constants.AMP_APP_ACTION_METHOD: actionMethod, - Constants.AMP_APP_GESTURE_RECOGNIZER: gestureRecognizer + Constants.AMP_APP_SCREEN_NAME_PROPERTY: screenName, + Constants.AMP_APP_TARGET_AXLABEL_PROPERTY: accessibilityLabel, + Constants.AMP_APP_TARGET_AXIDENTIFIER_PROPERTY: accessibilityIdentifier, + Constants.AMP_APP_ACTION_PROPERTY: action, + Constants.AMP_APP_TARGET_VIEW_CLASS_PROPERTY: targetViewClass, + Constants.AMP_APP_TARGET_TEXT_PROPERTY: targetText, + Constants.AMP_APP_HIERARCHY_PROPERTY: hierarchy, + Constants.AMP_APP_ACTION_METHOD_PROPERTY: actionMethod, + Constants.AMP_APP_GESTURE_RECOGNIZER_PROPERTY: gestureRecognizer ]) } } diff --git a/Sources/Amplitude/Plugins/iOS/UIKitElementInteractions.swift b/Sources/Amplitude/Plugins/iOS/UIKitElementInteractions.swift index 87d2fb4..38e6280 100644 --- a/Sources/Amplitude/Plugins/iOS/UIKitElementInteractions.swift +++ b/Sources/Amplitude/Plugins/iOS/UIKitElementInteractions.swift @@ -9,9 +9,7 @@ class UIKitElementInteractions { case gestureRecognizer } - let viewController: String? - - let title: String? + let screenName: String? let accessibilityLabel: String? @@ -25,8 +23,7 @@ class UIKitElementInteractions { fileprivate func elementInteractionEvent(for action: String, from source: Source? = nil, withName sourceName: String? = nil) -> ElementInteractionEvent { return ElementInteractionEvent( - viewController: viewController, - title: title, + screenName: screenName, accessibilityLabel: accessibilityLabel, accessibilityIdentifier: accessibilityIdentifier, action: action, @@ -155,10 +152,10 @@ extension UIView { private static let viewHierarchyDelimiter = " → " var eventData: UIKitElementInteractions.EventData { - let viewController = owningViewController return UIKitElementInteractions.EventData( - viewController: viewController?.descriptiveTypeName, - title: viewController?.title, + screenName: owningViewController + .flatMap(UIViewController.amp_topViewController) + .flatMap(UIKitScreenViews.screenName), accessibilityLabel: accessibilityLabel, accessibilityIdentifier: accessibilityIdentifier, targetViewClass: descriptiveTypeName, diff --git a/Tests/AmplitudeTests/Plugins/UIKitUserInteractionPluginTest.swift b/Tests/AmplitudeTests/Plugins/UIKitUserInteractionPluginTest.swift index 290087c..9fa3e43 100644 --- a/Tests/AmplitudeTests/Plugins/UIKitUserInteractionPluginTest.swift +++ b/Tests/AmplitudeTests/Plugins/UIKitUserInteractionPluginTest.swift @@ -16,8 +16,7 @@ class UIKitElementInteractionsTests: XCTestCase { let buttonData = button.eventData - XCTAssertEqual(buttonData.viewController, "UIViewController") - XCTAssertEqual(buttonData.title, "Mock VC Title") + XCTAssertEqual(buttonData.screenName, "Mock VC Title") XCTAssertEqual(buttonData.accessibilityLabel, "Accessibility Button") XCTAssertEqual(buttonData.targetViewClass, "UIButton") XCTAssertEqual(buttonData.targetText, "Test Button") @@ -34,8 +33,7 @@ class UIKitElementInteractionsTests: XCTestCase { let customViewData = customView.eventData - XCTAssertEqual(customViewData.viewController, "UIViewController") - XCTAssertEqual(customViewData.title, "Mock VC Title") + XCTAssertEqual(customViewData.screenName, "Mock VC Title") XCTAssertNil(customViewData.accessibilityLabel) XCTAssertEqual(customViewData.targetViewClass, "CustomView") XCTAssertTrue(customViewData.hierarchy.hasSuffix("CustomView → UIView")) @@ -45,8 +43,7 @@ class UIKitElementInteractionsTests: XCTestCase { let orphanView = UIView() let orphanData = orphanView.eventData - XCTAssertNil(orphanData.viewController) - XCTAssertNil(orphanData.title) + XCTAssertNil(orphanData.screenName) XCTAssertNil(orphanData.accessibilityLabel) XCTAssertEqual(orphanData.targetViewClass, "UIView") XCTAssertNil(orphanData.targetText)