forked from orta/mixpanel-osx-unofficial
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
version 2.1.0 Conflicts: Mixpanel/Mixpanel.m README.md
- Loading branch information
Showing
53 changed files
with
3,308 additions
and
1,508 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Pods |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,16 +17,17 @@ | |
// limitations under the License. | ||
|
||
#import "Mixpanel.h" | ||
#import "MPSurvey.h" | ||
|
||
#import "ViewController.h" | ||
|
||
@interface ViewController () | ||
@interface ViewController () <UINavigationControllerDelegate, UIImagePickerControllerDelegate> | ||
|
||
@property(nonatomic, retain) IBOutlet UISegmentedControl *genderControl; | ||
@property(nonatomic, retain) IBOutlet UISegmentedControl *weaponControl; | ||
|
||
- (IBAction)trackEvent:(id)sender; | ||
- (IBAction)sendPeopleRecord:(id)sender; | ||
@property(nonatomic, retain) IBOutlet UIImageView *fakeBackground; | ||
@property(nonatomic, retain) IBOutlet UITextField *surveyIDField; | ||
@property(nonatomic, retain) IBOutlet UIScrollView *scrollView; | ||
|
||
@end | ||
|
||
|
@@ -36,47 +37,35 @@ - (void)dealloc | |
{ | ||
self.genderControl = nil; | ||
self.weaponControl = nil; | ||
self.fakeBackground = nil; | ||
[super dealloc]; | ||
} | ||
|
||
- (void)viewDidLoad | ||
{ | ||
[super viewDidLoad]; | ||
self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"grid.png"]]; | ||
UIScrollView *tempScrollView = (UIScrollView *)self.view; | ||
tempScrollView.contentSize = CGSizeMake(320, 342); | ||
} | ||
|
||
- (void)viewDidUnload | ||
{ | ||
[super viewDidUnload]; | ||
// Release any retained subviews of the main view. | ||
} | ||
_scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; | ||
_scrollView.contentSize = self.view.bounds.size; | ||
|
||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation | ||
{ | ||
return YES; | ||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)]; | ||
[self.view addGestureRecognizer:tap]; | ||
} | ||
|
||
- (IBAction)trackEvent:(id)sender | ||
{ | ||
Mixpanel *mixpanel = [Mixpanel sharedInstance]; | ||
[mixpanel track:@"Player Create" properties:[NSDictionary dictionaryWithObjectsAndKeys: | ||
[self.genderControl titleForSegmentAtIndex:self.genderControl.selectedSegmentIndex], @"gender", | ||
[self.weaponControl titleForSegmentAtIndex:self.weaponControl.selectedSegmentIndex], @"weapon", | ||
nil]]; | ||
NSString *gender = [self.genderControl titleForSegmentAtIndex:(NSUInteger)self.genderControl.selectedSegmentIndex]; | ||
NSString *weapon = [self.weaponControl titleForSegmentAtIndex:(NSUInteger)self.weaponControl.selectedSegmentIndex]; | ||
[mixpanel track:@"Player Create" properties:@{@"gender": gender, @"weapon": weapon}]; | ||
} | ||
|
||
- (IBAction)sendPeopleRecord:(id)sender | ||
- (IBAction)setPeopleProperties:(id)sender | ||
{ | ||
Mixpanel *mixpanel = [Mixpanel sharedInstance]; | ||
[mixpanel.people set:[NSDictionary dictionaryWithObjectsAndKeys: | ||
[self.genderControl titleForSegmentAtIndex:self.genderControl.selectedSegmentIndex], @"gender", | ||
[self.weaponControl titleForSegmentAtIndex:self.weaponControl.selectedSegmentIndex], @"weapon", | ||
@"Demo", @"$first_name", | ||
@"User", @"$last_name", | ||
@"[email protected]", @"$email", | ||
nil]]; | ||
NSString *gender = [self.genderControl titleForSegmentAtIndex:(NSUInteger)self.genderControl.selectedSegmentIndex]; | ||
NSString *weapon = [self.weaponControl titleForSegmentAtIndex:(NSUInteger)self.weaponControl.selectedSegmentIndex]; | ||
[mixpanel.people set:@{@"gender": gender, @"weapon": weapon}]; | ||
// Mixpanel People requires that you explicitly set a distinct ID for the current user. In this case, | ||
// we're using the automatically generated distinct ID from event tracking, based on the device's MAC address. | ||
// It is strongly recommended that you use the same distinct IDs for Mixpanel Engagement and Mixpanel People. | ||
|
@@ -86,4 +75,49 @@ - (IBAction)sendPeopleRecord:(id)sender | |
[mixpanel identify:mixpanel.distinctId]; | ||
} | ||
|
||
- (IBAction)showSurvey:(id)sender | ||
{ | ||
Mixpanel *mixpanel = [Mixpanel sharedInstance]; | ||
|
||
if ([_surveyIDField.text length] > 0) { | ||
[mixpanel showSurveyWithID:(NSUInteger)([_surveyIDField.text integerValue])]; | ||
|
||
} else { | ||
[mixpanel showSurvey]; | ||
} | ||
[_surveyIDField resignFirstResponder]; | ||
} | ||
|
||
- (IBAction)changeBackground | ||
{ | ||
if (_fakeBackground.image) { | ||
_fakeBackground.image = nil; | ||
_fakeBackground.hidden = YES; | ||
} else { | ||
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; | ||
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext; | ||
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; | ||
imagePickerController.delegate = self; | ||
[self presentViewController:imagePickerController animated:YES completion:nil]; | ||
} | ||
} | ||
|
||
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info | ||
{ | ||
UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; | ||
_fakeBackground.image = image; | ||
_fakeBackground.hidden = NO; | ||
[self dismissViewControllerAnimated:YES completion:NULL]; | ||
} | ||
|
||
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker | ||
{ | ||
[self dismissViewControllerAnimated:YES completion:NULL]; | ||
} | ||
|
||
- (void)dismissKeyboard | ||
{ | ||
[_surveyIDField resignFirstResponder]; | ||
} | ||
|
||
@end |
Oops, something went wrong.