Skip to content

Commit c1bcb70

Browse files
authored
Merge pull request #5594 from wikimedia/activity-instrumentation-fix
Activity Tab - Fix more instrumentation issues
2 parents 16664e8 + 10cc767 commit c1bcb70

File tree

3 files changed

+43
-45
lines changed

3 files changed

+43
-45
lines changed

Wikipedia/Code/ActivityTabFunnel.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import WMF
1616
case surveySubmit = "feedback_submit_click"
1717
case loginClick = "login_click"
1818
case activityNavClick = "activity_nav_click"
19+
case historyNavClick = "history_nav_click"
1920
}
2021

2122
public enum ActiveInterface: String {
@@ -134,8 +135,11 @@ import WMF
134135
logEvent(activeInterface: .activityTabLogin, action: .loginClick, project: nil)
135136
}
136137

137-
func logTabBarSelected(from activeInterface: ActiveInterface) {
138-
logEvent(activeInterface: activeInterface, action: .activityNavClick, actionData: nil, project: nil)
138+
func logTabBarSelected(from activeInterface: ActiveInterface, action: Action) {
139+
140+
guard action == .historyNavClick || action == .activityNavClick else { return }
141+
142+
logEvent(activeInterface: activeInterface, action: action, actionData: nil, project: nil)
139143
}
140144

141145
func logHistoryImpression() {

Wikipedia/Code/WMFAppViewController+Extensions.swift

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,31 +1449,38 @@ extension WMFAppViewController {
14491449

14501450
let newVC = newTabNavVC.viewControllers[0]
14511451

1452-
guard newVC as? WMFActivityTabViewController != nil else {
1453-
return
1452+
var action: ActivityTabFunnel.Action? = nil
1453+
if newVC as? WMFActivityTabViewController != nil {
1454+
action = .activityNavClick
1455+
} else if newVC as? WMFHistoryViewController != nil {
1456+
action = .historyNavClick
14541457
}
14551458

1459+
guard let action else { return }
1460+
14561461
if currentVC as? ExploreViewController != nil {
1457-
ActivityTabFunnel.shared.logTabBarSelected(from: .feed)
1462+
ActivityTabFunnel.shared.logTabBarSelected(from: .feed, action: action)
14581463
} else if currentVC as? PlacesViewController != nil {
1459-
ActivityTabFunnel.shared.logTabBarSelected(from: .places)
1464+
ActivityTabFunnel.shared.logTabBarSelected(from: .places, action: action)
14601465
} else if currentVC as? SavedViewController != nil {
1461-
ActivityTabFunnel.shared.logTabBarSelected(from: .saved)
1466+
ActivityTabFunnel.shared.logTabBarSelected(from: .saved, action: action)
14621467
} else if currentVC as? WMFHistoryViewController != nil {
1463-
ActivityTabFunnel.shared.logTabBarSelected(from: .historyTab)
1468+
ActivityTabFunnel.shared.logTabBarSelected(from: .historyTab, action: action)
1469+
} else if currentVC as? WMFActivityTabViewController != nil {
1470+
ActivityTabFunnel.shared.logTabBarSelected(from: .activityTab, action: action)
14641471
} else if currentVC as? SearchViewController != nil {
1465-
ActivityTabFunnel.shared.logTabBarSelected(from: .search)
1472+
ActivityTabFunnel.shared.logTabBarSelected(from: .search, action: action)
14661473
} else if currentVC as? WMFSettingsViewController != nil {
1467-
ActivityTabFunnel.shared.logTabBarSelected(from: .settings)
1474+
ActivityTabFunnel.shared.logTabBarSelected(from: .settings, action: action)
14681475
} else if let article = currentVC as? ArticleViewController {
14691476
guard let title = article.articleURL.wmf_title?.denormalizedPageTitle else {
14701477
return
14711478
}
14721479

14731480
if title == "Main_Page" {
1474-
ActivityTabFunnel.shared.logTabBarSelected(from: .mainPage)
1481+
ActivityTabFunnel.shared.logTabBarSelected(from: .mainPage, action: action)
14751482
} else {
1476-
ActivityTabFunnel.shared.logTabBarSelected(from: .article)
1483+
ActivityTabFunnel.shared.logTabBarSelected(from: .article, action: action)
14771484
}
14781485
}
14791486
}

Wikipedia/Code/WMFAppViewController.m

Lines changed: 20 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1747,10 +1747,7 @@ - (void)updatePrimaryWikiHasTempAccountsStatusIfNecessary {
17471747

17481748
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
17491749
[self wmf_hideKeyboard];
1750-
}
1751-
1752-
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
1753-
[self logTappedTabBarItem:item inTabBar:tabBar];
1750+
[self logDidSelectViewController:viewController];
17541751
}
17551752

17561753
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
@@ -2212,37 +2209,27 @@ - (void)setRemoteNotificationRegistrationStatusWithDeviceToken:(NSData *_Nullabl
22122209

22132210
#pragma mark - Navigation logging
22142211

2215-
- (void)logTappedTabBarItem:(UITabBarItem *)item inTabBar:(UITabBar *)tabBar {
2216-
if (tabBar.items.count != self.viewControllers.count || self.tabBar != tabBar) {
2217-
NSAssert(false, @"Unexpected tab bar setup for logging tap events.");
2218-
return;
2219-
}
2220-
2221-
NSInteger index = [self.tabBar.items indexOfObject:item];
2222-
if (index != NSNotFound) {
2223-
UIViewController *viewController = self.viewControllers[index];
2212+
- (void)logDidSelectViewController:(UIViewController *)viewController {
2213+
if ([viewController isKindOfClass:[UINavigationController class]]) {
2214+
UINavigationController *navVC = (UINavigationController *)viewController;
22242215

2225-
if ([viewController isKindOfClass:[UINavigationController class]]) {
2226-
UINavigationController *navVC = (UINavigationController *)viewController;
2216+
if (navVC.viewControllers.count > 0) {
2217+
UIViewController *rootViewController = navVC.viewControllers[0];
22272218

2228-
if (navVC.viewControllers.count > 0) {
2229-
UIViewController *rootViewController = navVC.viewControllers[0];
2230-
2231-
if ([rootViewController isKindOfClass:[ExploreViewController class]] && [NSUserDefaults standardUserDefaults].defaultTabType == WMFAppDefaultTabTypeExplore) {
2232-
[[WMFNavigationEventsFunnel shared] logTappedExplore];
2233-
} else if ([rootViewController isKindOfClass:[WMFSettingsViewController class]] && [NSUserDefaults standardUserDefaults].defaultTabType == WMFAppDefaultTabTypeSettings) {
2234-
[[WMFNavigationEventsFunnel shared] logTappedSettingsFromTabBar];
2235-
} else if ([rootViewController isKindOfClass:[WMFPlacesViewController class]]) {
2236-
[[WMFNavigationEventsFunnel shared] logTappedPlaces];
2237-
} else if ([rootViewController isKindOfClass:[WMFSavedViewController class]]) {
2238-
[[WMFNavigationEventsFunnel shared] logTappedSaved];
2239-
} else if ([rootViewController isKindOfClass:[WMFHistoryViewController class]]) {
2240-
[[WMFNavigationEventsFunnel shared] logTappedHistory];
2241-
} else if ([rootViewController isKindOfClass:[WMFActivityTabViewController class]]) {
2242-
[[WMFNavigationEventsFunnel shared] logTappedActivityTab];
2243-
} else if ([rootViewController isKindOfClass:[SearchViewController class]]) {
2244-
[[WMFNavigationEventsFunnel shared] logTappedSearch];
2245-
}
2219+
if ([rootViewController isKindOfClass:[ExploreViewController class]] && [NSUserDefaults standardUserDefaults].defaultTabType == WMFAppDefaultTabTypeExplore) {
2220+
[[WMFNavigationEventsFunnel shared] logTappedExplore];
2221+
} else if ([rootViewController isKindOfClass:[WMFSettingsViewController class]] && [NSUserDefaults standardUserDefaults].defaultTabType == WMFAppDefaultTabTypeSettings) {
2222+
[[WMFNavigationEventsFunnel shared] logTappedSettingsFromTabBar];
2223+
} else if ([rootViewController isKindOfClass:[WMFPlacesViewController class]]) {
2224+
[[WMFNavigationEventsFunnel shared] logTappedPlaces];
2225+
} else if ([rootViewController isKindOfClass:[WMFSavedViewController class]]) {
2226+
[[WMFNavigationEventsFunnel shared] logTappedSaved];
2227+
} else if ([rootViewController isKindOfClass:[WMFHistoryViewController class]]) {
2228+
[[WMFNavigationEventsFunnel shared] logTappedHistory];
2229+
} else if ([rootViewController isKindOfClass:[WMFActivityTabViewController class]]) {
2230+
[[WMFNavigationEventsFunnel shared] logTappedActivityTab];
2231+
} else if ([rootViewController isKindOfClass:[SearchViewController class]]) {
2232+
[[WMFNavigationEventsFunnel shared] logTappedSearch];
22462233
}
22472234
}
22482235
}

0 commit comments

Comments
 (0)