-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCreateProfilePhotoViewController.m
More file actions
executable file
·148 lines (120 loc) · 4.69 KB
/
CreateProfilePhotoViewController.m
File metadata and controls
executable file
·148 lines (120 loc) · 4.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
//
// CreateProfilePhotoViewController.m
// Junction
//
// Created by Bobby Ren on 1/27/13.
//
//
#import "CreateProfilePhotoViewController.h"
#import <QuartzCore/QuartzCore.h>
#import "AWSHelper.h"
#import "AppDelegate.h"
@interface CreateProfilePhotoViewController ()
@end
@implementation CreateProfilePhotoViewController
static AppDelegate * appDelegate;
@synthesize photoView, buttonChangePhoto, slider;
@synthesize userInfo;
@synthesize delegate;
@synthesize stepButton;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
self.navigationItem.title = @"Photo";
UIBarButtonItem * rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStyleDone target:self action:@selector(didClickNext:)];
rightButton.tintColor = [UIColor orangeColor];
self.navigationItem.rightBarButtonItem = rightButton;
self.navigationItem.backBarButtonItem.tintColor = [UIColor blueColor];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self.buttonChangePhoto.layer setCornerRadius:5];
}
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// [self.stepButton setSelected:YES];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)populateWithUserInfo:(UserInfo*)newUserInfo {
self.userInfo = newUserInfo;
// force photoView to update
int startPrivacyLevel = self.userInfo.privacyLevel;
self.userInfo.privacyLevel = startPrivacyLevel+1; // hack to force update
[self.slider setValue:startPrivacyLevel];
[self sliderDidChangeValue:self.slider];
}
-(IBAction)sliderDidChangeValue:(id)sender {
UISlider * slider = (UISlider*)sender;
int newPrivacyLevel = (int) (slider.value);
if (newPrivacyLevel == self.userInfo.privacyLevel)
return;
UIImage * newImage;
newImage = [appDelegate blurPhoto:userInfo.photo atPrivacyLevel:newPrivacyLevel];
NSLog(@"Privacy changed to level %d", newPrivacyLevel);
userInfo.privacyLevel = newPrivacyLevel;
[photoView setImage:newImage];
}
#pragma mark navigation
-(void)didClickNext:(id)sender {
NSLog(@"Next!");
userInfo.photoBlur = photoView.image;
[self.delegate didSaveProfilePhoto];
}
-(IBAction)didClickProfileInfo:(id)sender {
// go back
// [self.stepButton setSelected:NO];
self.userInfo.privacyLevel = slider.value;
[self.navigationController popViewControllerAnimated:YES];
}
-(IBAction)didClickProfilePreview:(id)sender {
// go forward
// [self.stepButton setSelected:NO];
[self didClickNext:sender];
}
#pragma mark changing photo
-(IBAction)didClickChangePhotoButton:(id)sender {
NSLog(@"Changing photo!");
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.navigationController.navigationBar.tintColor = [UIColor colorWithRed:23.0/255 green:153.0/255 blue:228.0/255 alpha:1];
picker.allowsEditing = YES;
[UIAlertView alertViewWithTitle:nil message:@"Where do you want to get your profile picture?" cancelButtonTitle:@"Cancel" otherButtonTitles:[NSArray arrayWithObjects:@"Camera", @"Photo Album", nil] onDismiss:^(int buttonIndex) {
if (buttonIndex == 0) {
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
}
else if (buttonIndex == 1) {
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // regular res!
}
[self presentModalViewController:picker animated:YES];
} onCancel:^{
return;
}];
}
#pragma mark UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
UIImage * origImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImage * editImage = [info objectForKey:@"UIImagePickerControllerEditedImage"];
[self.slider setValue:0];
[photoView setImage:origImage];
userInfo.photo = origImage;
NSLog(@"Origimage: %f %f", origImage.size.width, origImage.size.height);
NSLog(@"editImage: %f %f", editImage.size.width, editImage.size.height);
if (editImage) {
[photoView setImage:editImage];
userInfo.photo = editImage;
}
}
@end