2
0

Checkpoints update and tag in Localytics too.

This commit is contained in:
Maarten Billemont 2012-06-11 23:39:50 +02:00
parent 83bdb9d626
commit 13bca309ba
6 changed files with 105 additions and 62 deletions

View File

@ -10,6 +10,7 @@
#import "MPAppDelegate_Key.h" #import "MPAppDelegate_Key.h"
#import "MPAppDelegate_Store.h" #import "MPAppDelegate_Store.h"
#import "ATConnect.h" #import "ATConnect.h"
#import "LocalyticsSession.h"
@implementation MPAppDelegate_Shared (Key) @implementation MPAppDelegate_Shared (Key)
@ -66,7 +67,7 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationKeyForgotten object:self]; [[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationKeyForgotten object:self];
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointForgetSavedKey]; [TestFlight passCheckpoint:MPCheckpointForgetSavedKey];
#endif #endif
} }
} }
@ -108,8 +109,10 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
[self forgetSavedKeyFor:user]; [self forgetSavedKeyFor:user];
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointMPMismatch]; [TestFlight passCheckpoint:MPCheckpointSignInFailed];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSignInFailed
attributes:nil];
} }
} }
@ -121,8 +124,10 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
tryKey = nil; tryKey = nil;
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointMPMismatch]; [TestFlight passCheckpoint:MPCheckpointSignInFailed];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSignInFailed
attributes:nil];
} }
} }
@ -153,8 +158,10 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationSignedIn object:self]; [[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationSignedIn object:self];
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointSignedIn]; [TestFlight passCheckpoint:MPCheckpointSignedIn];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSignedIn
attributes:nil];
return YES; return YES;
} }

View File

@ -7,6 +7,7 @@
// //
#import "MPAppDelegate_Store.h" #import "MPAppDelegate_Store.h"
#import "LocalyticsSession.h"
@implementation MPAppDelegate_Shared (Store) @implementation MPAppDelegate_Shared (Store)
@ -139,8 +140,10 @@ static NSDateFormatter *rfc3339DateFormatter = nil;
iCloudEnabled = manager.iCloudEnabled; iCloudEnabled = manager.iCloudEnabled;
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:iCloudEnabled? MPTestFlightCheckpointCloudEnabled: MPTestFlightCheckpointCloudDisabled]; [TestFlight passCheckpoint:iCloudEnabled? MPCheckpointCloudEnabled: MPCheckpointCloudDisabled];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:iCloudEnabled? MPCheckpointCloudEnabled: MPCheckpointCloudDisabled
attributes:nil];
inf(@"Using iCloud? %@", iCloudEnabled? @"YES": @"NO"); inf(@"Using iCloud? %@", iCloudEnabled? @"YES": @"NO");
[MPConfig get].iCloud = [NSNumber numberWithBool:iCloudEnabled]; [MPConfig get].iCloud = [NSNumber numberWithBool:iCloudEnabled];
@ -150,7 +153,7 @@ static NSDateFormatter *rfc3339DateFormatter = nil;
context:(id)context { context:(id)context {
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:PearlString(@"MPTestFlightCheckpointMPErrorUbiquity_%d", cause)]; [TestFlight passCheckpoint:PearlString(@"MPCheckpointMPErrorUbiquity_%d", cause)];
#endif #endif
err(@"StoreManager: cause=%d, context=%@, error=%@", cause, context, error); err(@"StoreManager: cause=%d, context=%@, error=%@", cause, context, error);
@ -162,8 +165,10 @@ static NSDateFormatter *rfc3339DateFormatter = nil;
break; break;
case UbiquityStoreManagerErrorCauseOpenLocalStore: { case UbiquityStoreManagerErrorCauseOpenLocalStore: {
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointLocalStoreIncompatible]; [TestFlight passCheckpoint:MPCheckpointLocalStoreIncompatible];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointLocalStoreIncompatible
attributes:nil];
wrn(@"Local store could not be opened, resetting it."); wrn(@"Local store could not be opened, resetting it.");
manager.hardResetEnabled = YES; manager.hardResetEnabled = YES;
[manager hardResetLocalStorage]; [manager hardResetLocalStorage];
@ -173,8 +178,10 @@ static NSDateFormatter *rfc3339DateFormatter = nil;
} }
case UbiquityStoreManagerErrorCauseOpenCloudStore: { case UbiquityStoreManagerErrorCauseOpenCloudStore: {
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointCloudStoreIncompatible]; [TestFlight passCheckpoint:MPCheckpointCloudStoreIncompatible];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCloudStoreIncompatible
attributes:nil];
wrn(@"iCloud store could not be opened, resetting it."); wrn(@"iCloud store could not be opened, resetting it.");
manager.hardResetEnabled = YES; manager.hardResetEnabled = YES;
[manager hardResetCloudStorage]; [manager hardResetCloudStorage];
@ -339,8 +346,10 @@ static NSDateFormatter *rfc3339DateFormatter = nil;
[self saveContext]; [self saveContext];
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointSitesImported]; [TestFlight passCheckpoint:MPCheckpointSitesImported];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSitesImported
attributes:nil];
return MPImportResultSuccess; return MPImportResultSuccess;
} }
@ -394,8 +403,10 @@ static NSDateFormatter *rfc3339DateFormatter = nil;
} }
#ifdef TESTFLIGHT_SDK_VERSION #ifdef TESTFLIGHT_SDK_VERSION
[TestFlight passCheckpoint:MPTestFlightCheckpointSitesExported]; [TestFlight passCheckpoint:MPCheckpointSitesExported];
#endif #endif
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSitesExported
attributes:nil];
return export; return export;
} }

View File

@ -42,40 +42,38 @@ typedef enum {
MPElementTypeStoredDevicePrivate = 0x1 | MPElementTypeClassStored | MPElementFeatureDevicePrivate, MPElementTypeStoredDevicePrivate = 0x1 | MPElementTypeClassStored | MPElementFeatureDevicePrivate,
} MPElementType; } MPElementType;
// TODO: Review checkpoints #define MPCheckpointAction @"MPCheckpointAction"
#define MPTestFlightCheckpointAction @"MPTestFlightCheckpointAction" #define MPCheckpointHelpChapter @"MPCheckpointHelpChapter"
#define MPTestFlightCheckpointHelpChapter @"MPTestFlightCheckpointHelpChapter_%@" #define MPCheckpointCopyToPasteboard @"MPCheckpointCopyToPasteboard"
#define MPTestFlightCheckpointCopyToPasteboard @"MPTestFlightCheckpointCopyToPasteboard" #define MPCheckpointResetPasswordCounter @"MPCheckpointResetPasswordCounter"
#define MPTestFlightCheckpointResetPasswordCounter @"MPTestFlightCheckpointResetPasswordCounter" #define MPCheckpointIncrementPasswordCounter @"MPCheckpointIncrementPasswordCounter"
#define MPTestFlightCheckpointIncrementPasswordCounter @"MPTestFlightCheckpointIncrementPasswordCounter" #define MPCheckpointEditPassword @"MPCheckpointEditPassword"
#define MPTestFlightCheckpointEditPassword @"MPTestFlightCheckpointEditPassword" #define MPCheckpointCloseAlert @"MPCheckpointCloseAlert"
#define MPTestFlightCheckpointCloseAlert @"MPTestFlightCheckpointCloseAlert" #define MPCheckpointUseType @"MPCheckpointUseType"
#define MPTestFlightCheckpointUseType @"MPTestFlightCheckpointUseType_%@" #define MPCheckpointDeleteElement @"MPCheckpointDeleteElement"
#define MPTestFlightCheckpointDeleteElement @"MPTestFlightCheckpointDeleteElement" #define MPCheckpointCancelSearch @"MPCheckpointCancelSearch"
#define MPTestFlightCheckpointCancelSearch @"MPTestFlightCheckpointCancelSearch" #define MPCheckpointExternalLink @"MPCheckpointExternalLink"
#define MPTestFlightCheckpointExternalLink @"MPTestFlightCheckpointExternalLink" #define MPCheckpointLaunched @"MPCheckpointLaunched"
#define MPTestFlightCheckpointLaunched @"MPTestFlightCheckpointLaunched" #define MPCheckpointActivated @"MPCheckpointActivated"
#define MPTestFlightCheckpointActivated @"MPTestFlightCheckpointActivated" #define MPCheckpointDeactivated @"MPCheckpointDeactivated"
#define MPTestFlightCheckpointDeactivated @"MPTestFlightCheckpointDeactivated" #define MPCheckpointTerminated @"MPCheckpointTerminated"
#define MPTestFlightCheckpointTerminated @"MPTestFlightCheckpointTerminated" #define MPCheckpointShowGuide @"MPCheckpointShowGuide"
#define MPTestFlightCheckpointShowGuide @"MPTestFlightCheckpointShowGuide" #define MPCheckpointForgetSavedKey @"MPCheckpointForgetSavedKey"
#define MPTestFlightCheckpointForgetSavedKey @"MPTestFlightCheckpointForgetSavedKey" #define MPCheckpointChangeMP @"MPCheckpointChangeMP"
#define MPTestFlightCheckpointChangeMP @"MPTestFlightCheckpointChangeMP" #define MPCheckpointLocalStoreIncompatible @"MPCheckpointLocalStoreIncompatible"
#define MPTestFlightCheckpointMPMismatch @"MPTestFlightCheckpointMPMismatch" #define MPCheckpointCloudStoreIncompatible @"MPCheckpointCloudStoreIncompatible"
#define MPTestFlightCheckpointMPValid @"MPTestFlightCheckpointMPValid" #define MPCheckpointSignInFailed @"MPCheckpointSignInFailed"
#define MPTestFlightCheckpointLocalStoreIncompatible @"MPTestFlightCheckpointLocalStoreIncompatible" #define MPCheckpointSignedIn @"MPCheckpointSignedIn"
#define MPTestFlightCheckpointCloudStoreIncompatible @"MPTestFlightCheckpointCloudStoreIncompatible" #define MPCheckpointCloudEnabled @"MPCheckpointCloudEnabled"
#define MPTestFlightCheckpointSignedIn @"MPTestFlightCheckpointSignedIn" #define MPCheckpointCloudDisabled @"MPCheckpointCloudDisabled"
#define MPTestFlightCheckpointCloudEnabled @"MPTestFlightCheckpointCloudEnabled" #define MPCheckpointSitesImported @"MPCheckpointSitesImported"
#define MPTestFlightCheckpointCloudDisabled @"MPTestFlightCheckpointCloudDisabled" #define MPCheckpointSitesExported @"MPCheckpointSitesExported"
#define MPTestFlightCheckpointSitesImported @"MPTestFlightCheckpointSitesImported"
#define MPTestFlightCheckpointSitesExported @"MPTestFlightCheckpointSitesExported"
#define MPNotificationStoreUpdated @"MPNotificationStoreUpdated" #define MPNotificationStoreUpdated @"MPNotificationStoreUpdated"
#define MPNotificationSignedIn @"MPNotificationKeySet" #define MPNotificationSignedIn @"MPNotificationKeySet"
#define MPNotificationSignedOut @"MPNotificationKeyUnset" #define MPNotificationSignedOut @"MPNotificationKeyUnset"
#define MPNotificationKeyForgotten @"MPNotificationKeyForgotten" #define MPNotificationKeyForgotten @"MPNotificationKeyForgotten"
#define MPNotificationElementUsed @"MPNotificationElementUsed" #define MPNotificationElementUsed @"MPNotificationElementUsed"
NSData *keyForPassword(NSString *password, NSString *username); NSData *keyForPassword(NSString *password, NSString *username);
NSData *keyIDForPassword(NSString *password, NSString *username); NSData *keyIDForPassword(NSString *password, NSString *username);

View File

@ -72,7 +72,7 @@
[self.navigationController performSegueWithIdentifier:@"MP_Guide" sender:self]; [self.navigationController performSegueWithIdentifier:@"MP_Guide" sender:self];
[TestFlight passCheckpoint:MPTestFlightCheckpointShowGuide]; [TestFlight passCheckpoint:MPCheckpointShowGuide];
} }
- (void)export { - (void)export {
@ -138,7 +138,9 @@
self.activeUser.keyID = nil; self.activeUser.keyID = nil;
[self signOut]; [self signOut];
[TestFlight passCheckpoint:MPTestFlightCheckpointChangeMP]; [TestFlight passCheckpoint:MPCheckpointChangeMP];
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP
attributes:nil];
} }
cancelTitle:[PearlStrings get].commonButtonAbort cancelTitle:[PearlStrings get].commonButtonAbort
otherTitles:[PearlStrings get].commonButtonContinue, nil]; otherTitles:[PearlStrings get].commonButtonContinue, nil];
@ -186,7 +188,7 @@
return YES; return YES;
}]; }];
[TestFlight passCheckpoint:MPTestFlightCheckpointLaunched]; [TestFlight passCheckpoint:MPCheckpointLaunched];
} }
} }
@catch (id exception) { @catch (id exception) {
@ -410,7 +412,7 @@ UIImage *segmentUnselectedUnselected = [UIImage imageNamed:@"segcontrol_uns-uns.
if ([[MPiOSConfig get].showQuickStart boolValue]) if ([[MPiOSConfig get].showQuickStart boolValue])
[self showGuide]; [self showGuide];
[TestFlight passCheckpoint:MPTestFlightCheckpointActivated]; [TestFlight passCheckpoint:MPCheckpointActivated];
[super applicationDidBecomeActive:application]; [super applicationDidBecomeActive:application];
} }
@ -435,7 +437,7 @@ UIImage *segmentUnselectedUnselected = [UIImage imageNamed:@"segcontrol_uns-uns.
[self saveContext]; [self saveContext];
[TestFlight passCheckpoint:MPTestFlightCheckpointTerminated]; [TestFlight passCheckpoint:MPCheckpointTerminated];
[[LocalyticsSession sharedLocalyticsSession] close]; [[LocalyticsSession sharedLocalyticsSession] close];
[[LocalyticsSession sharedLocalyticsSession] upload]; [[LocalyticsSession sharedLocalyticsSession] upload];
@ -450,7 +452,7 @@ UIImage *segmentUnselectedUnselected = [UIImage imageNamed:@"segcontrol_uns-uns.
if (![[MPiOSConfig get].rememberLogin boolValue]) if (![[MPiOSConfig get].rememberLogin boolValue])
[self signOut]; [self signOut];
[TestFlight passCheckpoint:MPTestFlightCheckpointDeactivated]; [TestFlight passCheckpoint:MPCheckpointDeactivated];
} }
#pragma mark - MFMailComposeViewControllerDelegate #pragma mark - MFMailComposeViewControllerDelegate

View File

@ -11,7 +11,7 @@
#import "MPAppDelegate_Key.h" #import "MPAppDelegate_Key.h"
#import "MPAppDelegate_Store.h" #import "MPAppDelegate_Store.h"
#import "ATConnect.h" #import "ATConnect.h"
#import "MPUnlockViewController.h" #import "LocalyticsSession.h"
@interface MPMainViewController (Private) @interface MPMainViewController (Private)
@ -209,7 +209,7 @@
- (void)setHelpChapter:(NSString *)chapter { - (void)setHelpChapter:(NSString *)chapter {
[TestFlight passCheckpoint:[NSString stringWithFormat:MPTestFlightCheckpointHelpChapter, chapter]]; [TestFlight passCheckpoint:PearlString(MPCheckpointHelpChapter @"_%@", chapter)];
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
NSURL *url = [NSURL URLWithString:[@"#" stringByAppendingString:chapter] NSURL *url = [NSURL URLWithString:[@"#" stringByAppendingString:chapter]
@ -282,7 +282,11 @@
[self showContentTip:@"Copied!" withIcon:nil]; [self showContentTip:@"Copied!" withIcon:nil];
[TestFlight passCheckpoint:MPTestFlightCheckpointCopyToPasteboard]; [TestFlight passCheckpoint:MPCheckpointCopyToPasteboard];
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCopyToPasteboard
attributes:[NSDictionary dictionaryWithObjectsAndKeys:
NSStringFromMPElementType(self.activeElement.type), @"type",
nil]];
} }
- (IBAction)incrementPasswordCounter { - (IBAction)incrementPasswordCounter {
@ -300,7 +304,11 @@
++((MPElementGeneratedEntity *)self.activeElement).counter; ++((MPElementGeneratedEntity *)self.activeElement).counter;
}]; }];
[TestFlight passCheckpoint:MPTestFlightCheckpointIncrementPasswordCounter]; [TestFlight passCheckpoint:MPCheckpointIncrementPasswordCounter];
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointIncrementPasswordCounter
attributes:[NSDictionary dictionaryWithObjectsAndKeys:
NSStringFromMPElementType(self.activeElement.type), @"type",
nil]];
} }
- (IBAction)resetPasswordCounter:(UILongPressGestureRecognizer *)sender { - (IBAction)resetPasswordCounter:(UILongPressGestureRecognizer *)sender {
@ -323,7 +331,11 @@
((MPElementGeneratedEntity *)self.activeElement).counter = 1; ((MPElementGeneratedEntity *)self.activeElement).counter = 1;
}]; }];
[TestFlight passCheckpoint:MPTestFlightCheckpointResetPasswordCounter]; [TestFlight passCheckpoint:MPCheckpointResetPasswordCounter];
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointResetPasswordCounter
attributes:[NSDictionary dictionaryWithObjectsAndKeys:
NSStringFromMPElementType(self.activeElement.type), @"type",
nil]];
} }
- (void)changeElementWithWarning:(NSString *)warning do:(void (^)(void))task; { - (void)changeElementWithWarning:(NSString *)warning do:(void (^)(void))task; {
@ -364,7 +376,11 @@
[self.contentField becomeFirstResponder]; [self.contentField becomeFirstResponder];
} }
[TestFlight passCheckpoint:MPTestFlightCheckpointEditPassword]; [TestFlight passCheckpoint:MPCheckpointEditPassword];
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointEditPassword
attributes:[NSDictionary dictionaryWithObjectsAndKeys:
NSStringFromMPElementType(self.activeElement.type), @"type",
nil]];
} }
- (IBAction)closeAlert { - (IBAction)closeAlert {
@ -376,7 +392,7 @@
self.alertBody.text = nil; self.alertBody.text = nil;
}]; }];
[TestFlight passCheckpoint:MPTestFlightCheckpointCloseAlert]; [TestFlight passCheckpoint:MPCheckpointCloseAlert];
} }
- (IBAction)action:(id)sender { - (IBAction)action:(id)sender {
@ -424,7 +440,7 @@
} }
} }
[TestFlight passCheckpoint:MPTestFlightCheckpointAction]; [TestFlight passCheckpoint:MPCheckpointAction];
} }
cancelTitle:[PearlStrings get].commonButtonCancel destructiveTitle:nil otherTitles: cancelTitle:[PearlStrings get].commonButtonCancel destructiveTitle:nil otherTitles:
[self isHelpVisible]? @"Hide Help": @"Show Help", @"FAQ", @"Tutorial", @"Preferences", @"Feedback", @"Sign Out", nil]; [self isHelpVisible]? @"Hide Help": @"Show Help", @"FAQ", @"Tutorial", @"Preferences", @"Feedback", @"Sign Out", nil];
@ -460,7 +476,7 @@
self.activeElement.type = type; self.activeElement.type = type;
[TestFlight passCheckpoint:[NSString stringWithFormat:MPTestFlightCheckpointSelectType, NSStringFromMPElementType( [TestFlight passCheckpoint:[NSString stringWithFormat:MPCheckpointSelectType, NSStringFromMPElementType(
type)]]; type)]];
if (type & MPElementTypeClassStored && ![[self.activeElement.content description] length]) if (type & MPElementTypeClassStored && ![[self.activeElement.content description] length])
@ -499,8 +515,12 @@
[self.searchDisplayController setActive:NO animated:YES]; [self.searchDisplayController setActive:NO animated:YES];
self.searchDisplayController.searchBar.text = self.activeElement.name; self.searchDisplayController.searchBar.text = self.activeElement.name;
[TestFlight passCheckpoint:PearlString(MPTestFlightCheckpointUseType, NSStringFromMPElementType(self.activeElement.type))];
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationElementUsed object:self.activeElement]; [[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationElementUsed object:self.activeElement];
[TestFlight passCheckpoint:PearlString(MPCheckpointUseType @"_%@", NSStringFromMPElementType(self.activeElement.type))];
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointUseType
attributes:[NSDictionary dictionaryWithObjectsAndKeys:
NSStringFromMPElementType(self.activeElement.type), @"type",
nil]];
} }
[self updateAnimated:YES]; [self updateAnimated:YES];
@ -536,7 +556,7 @@
navigationType:(UIWebViewNavigationType)navigationType { navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) { if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[TestFlight passCheckpoint:MPTestFlightCheckpointExternalLink]; [TestFlight passCheckpoint:MPCheckpointExternalLink];
[[UIApplication sharedApplication] openURL:[request URL]]; [[UIApplication sharedApplication] openURL:[request URL]];
return NO; return NO;

View File

@ -9,6 +9,7 @@
#import "MPSearchDelegate.h" #import "MPSearchDelegate.h"
#import "MPAppDelegate.h" #import "MPAppDelegate.h"
#import "MPAppDelegate_Store.h" #import "MPAppDelegate_Store.h"
#import "LocalyticsSession.h"
@interface MPSearchDelegate (Private) @interface MPSearchDelegate (Private)
@ -77,7 +78,7 @@
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
[TestFlight passCheckpoint:MPTestFlightCheckpointCancelSearch]; [TestFlight passCheckpoint:MPCheckpointCancelSearch];
[self.delegate didSelectElement:nil]; [self.delegate didSelectElement:nil];
} }
@ -346,7 +347,11 @@ forRowAtIndexPath:(NSIndexPath *)indexPath {
MPElementEntity *element = [self.fetchedResultsController objectAtIndexPath:indexPath]; MPElementEntity *element = [self.fetchedResultsController objectAtIndexPath:indexPath];
[self.fetchedResultsController.managedObjectContext deleteObject:element]; [self.fetchedResultsController.managedObjectContext deleteObject:element];
[TestFlight passCheckpoint:MPTestFlightCheckpointDeleteElement]; [TestFlight passCheckpoint:MPCheckpointDeleteElement];
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointDeleteElement
attributes:[NSDictionary dictionaryWithObjectsAndKeys:
NSStringFromMPElementType(element.type), @"type",
nil]];
}]; }];
} }
} }