Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 28 additions & 2 deletions Sources/SRGAnalytics/SRGAnalyticsTracker.m
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ - (void)startCommandersActWithConfiguration:(SRGAnalyticsConfiguration *)configu
return labels.copy;
}

- (SRGAnalyticsLabels *)dataSourceLabels
- (SRGAnalyticsLabels *)dataSourceLabels
{
return self.dataSource.srg_globalLabels;
}
Expand All @@ -197,7 +197,13 @@ - (NSString *)pageIdWithTitle:(NSString *)title levels:(NSArray<NSString *> *)le

- (NSString *)device
{
if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
if ([self isMacCatalystApp]) {
return @"desktop";
}
else if ([self isiOSAppOnMac]) {
return @"desktop";
}
else if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
return @"phone";
}
else if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) {
Expand All @@ -211,6 +217,26 @@ - (NSString *)device
}
}

- (BOOL)isMacCatalystApp
{
if (@available(iOS 13, tvOS 13, *)) {
return NSProcessInfo.processInfo.isMacCatalystApp;
}
else {
return NO;
}
}

- (BOOL)isiOSAppOnMac
{
if (@available(iOS 14, tvOS 14, *)) {
return NSProcessInfo.processInfo.isiOSAppOnMac;
}
else {
return NO;
}
}

#pragma mark General event tracking (internal use only)

- (void)sendCommandersActPageViewEventWithTitle:(NSString *)title
Expand Down
5 changes: 4 additions & 1 deletion Tests/SRGAnalyticsTests/MediaPlayerTestCase.m
Original file line number Diff line number Diff line change
Expand Up @@ -548,12 +548,15 @@ - (void)testWithoutLabels
- (void)testCommonLabels
{
[self expectationForPlayerEventNotificationWithHandler:^BOOL(NSString *event, NSDictionary *labels) {
XCTAssertEqualObjects(labels[@"app_library_version"], SRGAnalyticsMarketingVersion());
XCTAssertEqualObjects(labels[@"navigation_app_site_name"], @"srg-test-analytics-apple");
XCTAssertTrue(([@[@"phone", @"tvbox", @"tablet", @"desktop"] containsObject:labels[@"navigation_device"]]));
XCTAssertEqualObjects(labels[@"consent_services"], @"service1,service2,service3");

XCTAssertEqualObjects(event, @"play");
XCTAssertEqualObjects(labels[@"media_player_display"], @"SRGMediaPlayer");
XCTAssertEqualObjects(labels[@"media_player_version"], SRGMediaPlayerMarketingVersion());
XCTAssertEqualObjects(labels[@"test_label"], @"test_value");
XCTAssertEqualObjects(labels[@"consent_services"], @"service1,service2,service3");
return YES;
}];

Expand Down
5 changes: 5 additions & 0 deletions Tests/SRGAnalyticsTests/TrackerTestCase.m
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ - (void)testNoHiddenAdSupportFramework
- (void)testCommonLabelsForEvent
{
[self expectationForEventNotificationWithHandler:^BOOL(NSString *event, NSDictionary *labels) {
XCTAssertEqualObjects(labels[@"app_library_version"], SRGAnalyticsMarketingVersion());
XCTAssertEqualObjects(labels[@"navigation_app_site_name"], @"srg-test-analytics-apple");
XCTAssertTrue(([@[@"phone", @"tvbox", @"tablet", @"desktop"] containsObject:labels[@"navigation_device"]]));
XCTAssertEqualObjects(labels[@"consent_services"], @"service1,service2,service3");
return YES;
}];
Expand All @@ -49,7 +51,10 @@ - (void)testCommonLabelsForEvent
- (void)testCommonLabelsForPageView
{
[self expectationForPageViewEventNotificationWithHandler:^BOOL(NSString *event, NSDictionary *labels) {
XCTAssertEqualObjects(labels[@"app_library_version"], SRGAnalyticsMarketingVersion());
XCTAssertEqualObjects(labels[@"navigation_app_site_name"], @"srg-test-analytics-apple");
XCTAssertTrue(([@[@"phone", @"tvbox", @"tablet", @"desktop"] containsObject:labels[@"navigation_device"]]));
XCTAssertEqualObjects(labels[@"consent_services"], @"service1,service2,service3");
return YES;
}];

Expand Down