Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge remote-tracking branch 'upstream/master' into 18716

  • Loading branch information...
commit 22680e70c7565cb3331d7189b0c6a4a658c91166 2 parents 8fd0160 + 21cc9d8
@birarda birarda authored
Showing with 620 additions and 274 deletions.
  1. +8 −0 candpiosapp.xcodeproj/project.pbxproj
  2. +2 −2 candpiosapp/Chat/ChatMessageCell.h
  3. +2 −2 candpiosapp/Chat/OneOnOneChatViewController.h
  4. +36 −22 candpiosapp/Chat/OneOnOneChatViewController.m
  5. BIN  candpiosapp/Chat/images/chat-bubble-left-bottom.png
  6. BIN  candpiosapp/Chat/images/chat-bubble-left-bottom@2x.png
  7. BIN  candpiosapp/Chat/images/chat-bubble-left-middle.png
  8. BIN  candpiosapp/Chat/images/chat-bubble-left-middle@2x.png
  9. BIN  candpiosapp/Chat/images/chat-bubble-left-top.png
  10. BIN  candpiosapp/Chat/images/chat-bubble-left-top@2x.png
  11. BIN  candpiosapp/Chat/images/chat-bubble-right-bottom.png
  12. BIN  candpiosapp/Chat/images/chat-bubble-right-bottom@2x.png
  13. BIN  candpiosapp/Chat/images/chat-bubble-right-middle.png
  14. BIN  candpiosapp/Chat/images/chat-bubble-right-middle@2x.png
  15. BIN  candpiosapp/Chat/images/chat-bubble-right-top.png
  16. BIN  candpiosapp/Chat/images/chat-bubble-right-top@2x.png
  17. BIN  candpiosapp/Chat/images/chat-entry-field.png
  18. BIN  candpiosapp/Chat/images/chat-entry-field@2x.png
  19. +1 −0  candpiosapp/Common/CPConstants.h
  20. +1 −0  candpiosapp/Common/CPConstants.m
  21. +1 −0  candpiosapp/Common/CPapi.h
  22. +11 −5 candpiosapp/Common/CPapi.m
  23. +3 −2 candpiosapp/Common/UI/CPBaseTableViewController.m
  24. +1 −1  candpiosapp/Common/UI/CPSwipeableTableViewCell/CPUserAction.m
  25. +4 −0 candpiosapp/Common/UI/CPSwipeableTableViewCell/CPUserActionCell.h
  26. +30 −14 candpiosapp/Common/UI/CPSwipeableTableViewCell/CPUserActionCell.m
  27. +6 −0 candpiosapp/Login/LinkedInLoginController.m
  28. +36 −15 candpiosapp/Settings/ProfileNotificationsViewController.m
  29. +157 −125 candpiosapp/Settings/SettingsStoryboard_iPhone.storyboard
  30. +1 −0  candpiosapp/User/CPUser.h
  31. +19 −11 candpiosapp/User/UserListTableViewController.m
  32. +146 −39 candpiosapp/User/UserProfileStoryboard_iPhone.storyboard
  33. +5 −0 candpiosapp/User/UserTableViewCell.h
  34. +15 −0 candpiosapp/User/UserTableViewCell.m
  35. BIN  candpiosapp/User/images/endorse-count-in-list.png
  36. BIN  candpiosapp/User/images/endorse-count-in-list@2x.png
  37. +1 −1  candpiosapp/Venue/VenueInfoViewController.m
  38. +2 −25 candpiosapp/Venue/VenueUserCell.m
  39. +1 −1  candpiosapp/candpiosapp-Info.plist
  40. +131 −9 candpiosapp/en.lproj/MainStoryboard_iPhone.storyboard
View
8 candpiosapp.xcodeproj/project.pbxproj
@@ -286,6 +286,8 @@
688A16C4163861DB00BFB4CC /* endorse-with-transparent-star@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 688A16C2163861DB00BFB4CC /* endorse-with-transparent-star@2x.png */; };
69112E6A1580D41B009CCBD0 /* contact-cell-bg-selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 69112E681580D41B009CCBD0 /* contact-cell-bg-selected.png */; };
69112E6B1580D41B009CCBD0 /* contact-cell-bg-selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 69112E691580D41B009CCBD0 /* contact-cell-bg-selected@2x.png */; };
+ 691E7BE3165B0D9C00587381 /* endorse-count-in-list.png in Resources */ = {isa = PBXBuildFile; fileRef = 691E7BE1165B0D9C00587381 /* endorse-count-in-list.png */; };
+ 691E7BE4165B0D9C00587381 /* endorse-count-in-list@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 691E7BE2165B0D9C00587381 /* endorse-count-in-list@2x.png */; };
692552E0155BE46200FA9B22 /* PushModalViewControllerFromLeftSegue.m in Sources */ = {isa = PBXBuildFile; fileRef = 692552DF155BE46200FA9B22 /* PushModalViewControllerFromLeftSegue.m */; };
694323A915213D9000EBF585 /* UserResume.mustache in Resources */ = {isa = PBXBuildFile; fileRef = 694323A815213D9000EBF585 /* UserResume.mustache */; };
6947F40015372B59005D9958 /* exchange-cards.png in Resources */ = {isa = PBXBuildFile; fileRef = 6947F3FE15372B59005D9958 /* exchange-cards.png */; };
@@ -690,6 +692,8 @@
688A16C2163861DB00BFB4CC /* endorse-with-transparent-star@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "endorse-with-transparent-star@2x.png"; path = "User/images/endorse-with-transparent-star@2x.png"; sourceTree = "<group>"; };
69112E681580D41B009CCBD0 /* contact-cell-bg-selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "contact-cell-bg-selected.png"; sourceTree = "<group>"; };
69112E691580D41B009CCBD0 /* contact-cell-bg-selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "contact-cell-bg-selected@2x.png"; sourceTree = "<group>"; };
+ 691E7BE1165B0D9C00587381 /* endorse-count-in-list.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "endorse-count-in-list.png"; path = "User/images/endorse-count-in-list.png"; sourceTree = "<group>"; };
+ 691E7BE2165B0D9C00587381 /* endorse-count-in-list@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "endorse-count-in-list@2x.png"; path = "User/images/endorse-count-in-list@2x.png"; sourceTree = "<group>"; };
692552DE155BE46200FA9B22 /* PushModalViewControllerFromLeftSegue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PushModalViewControllerFromLeftSegue.h; path = Settings/PushModalViewControllerFromLeftSegue.h; sourceTree = "<group>"; };
692552DF155BE46200FA9B22 /* PushModalViewControllerFromLeftSegue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PushModalViewControllerFromLeftSegue.m; path = Settings/PushModalViewControllerFromLeftSegue.m; sourceTree = "<group>"; };
694323A815213D9000EBF585 /* UserResume.mustache */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = UserResume.mustache; sourceTree = "<group>"; };
@@ -876,6 +880,8 @@
5392B62E1655714D002BCC20 /* checked-in-location@2x.png */,
533AFECC1523E87200D6E6A9 /* default-avatar-256.png */,
533AFECD1523E87200D6E6A9 /* default-avatar-256@2x.png */,
+ 691E7BE1165B0D9C00587381 /* endorse-count-in-list.png */,
+ 691E7BE2165B0D9C00587381 /* endorse-count-in-list@2x.png */,
688A16C1163861DB00BFB4CC /* endorse-with-transparent-star.png */,
688A16C2163861DB00BFB4CC /* endorse-with-transparent-star@2x.png */,
6947F3FE15372B59005D9958 /* exchange-cards.png */,
@@ -1417,6 +1423,8 @@
6F8EF74414FD8D2100F9BDC0 /* chat-bubble-right-middle@2x.png */,
6F8EF74514FD8D2100F9BDC0 /* chat-bubble-right-top.png */,
6F8EF74614FD8D2100F9BDC0 /* chat-bubble-right-top@2x.png */,
+ 69E91510165530AF00366C2D /* chat-entry-field.png */,
+ 69E91511165530AF00366C2D /* chat-entry-field@2x.png */,
);
name = images;
sourceTree = "<group>";
View
4 candpiosapp/Chat/ChatMessageCell.h
@@ -6,8 +6,6 @@
// Copyright (c) 2012 Coffee and Power Inc. All rights reserved.
//
-#import <UIKit/UIKit.h>
-
#define CHAT_LABEL_TAG 324
#define BUBBLE_TOP_TAG 823
#define BUBBLE_MIDDLE_TAG 953
@@ -16,4 +14,6 @@
@interface ChatMessageCell : UITableViewCell
+@property (weak, nonatomic) IBOutlet UIImageView *profileImage;
+
@end
View
4 candpiosapp/Chat/OneOnOneChatViewController.h
@@ -6,16 +6,16 @@
// Copyright (c) 2012 Coffee and Power Inc. All rights reserved.
//
-#import <UIKit/UIKit.h>
#import "OneOnOneChatHistory.h"
@interface OneOnOneChatViewController : UIViewController
- <UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource>
+ <UITextViewDelegate, UITableViewDelegate, UITableViewDataSource>
@property (strong, nonatomic) CPUser *user;
@property (strong, nonatomic) CPUser *me;
@property (strong, nonatomic) OneOnOneChatHistory *history;
@property (weak, nonatomic) IBOutlet UITextField *chatEntryField;
+@property (weak, nonatomic) IBOutlet UITextView *chatEntryTextView;
@property (weak, nonatomic) IBOutlet UITableView *chatContents;
@property (weak, nonatomic) IBOutlet UIView *backgroundView;
@property (weak, nonatomic) IBOutlet UIView *chatInputs;
View
58 candpiosapp/Chat/OneOnOneChatViewController.m
@@ -26,16 +26,17 @@
static CGFloat const FONTSIZE = 14.0;
@interface OneOnOneChatViewController()
+
- (CGFloat)labelHeight:(ChatMessage *)message;
- (void)scrollToLastChat;
+
@end
-@implementation OneOnOneChatViewController
+@implementation OneOnOneChatViewController
#pragma mark - View lifecycle
-
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
@@ -56,18 +57,12 @@ - (void)viewDidLoad
};
[self.history loadChatHistoryWithSuccessBlock:afterLoadingHistory];
- // Set up the fancy background on view
- self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"texture-diagonal-noise-light.png"]];
-
// Make our chat button FANCY!
UIImage *chatButtonImage = [[UIImage imageNamed:@"button-turquoise-32pt.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 7, 0, 9)];
[self.chatButton setBackgroundImage:chatButtonImage forState:UIControlStateNormal];
- // Set up the chat entry field
- self.chatEntryField.delegate = self;
-
// Add notifications for keyboard showing / hiding
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
@@ -77,7 +72,6 @@ - (void)viewDidLoad
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
-
}
- (void)viewDidAppear:(BOOL)animated
@@ -323,13 +317,13 @@ - (UITableViewCell *)tableView:(UITableView *)tableView
// Create scalable images
UIImage *topBubbleImg = [[UIImage imageNamed:[imageFilenamePrefix stringByAppendingString:@"top.png"]] resizableImageWithCapInsets:UIEdgeInsetsMake(13, 0, 0, 0)];
topBubble.image = topBubbleImg;
-
+
UIImage *middleBubbleImg = [UIImage imageNamed:[imageFilenamePrefix stringByAppendingString:@"middle.png"]];
middleBubble.image = middleBubbleImg;
-
+
UIImage *bottomBubbleImg = [[UIImage imageNamed:[imageFilenamePrefix stringByAppendingString:@"bottom.png"]] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 13, 0)];
bottomBubble.image = bottomBubbleImg;
-
+
CGRect labelRect = CGRectMake(chatMessageLabel.frame.origin.x,
chatMessageLabel.frame.origin.y,
CHAT_MESSAGE_LABEL_WIDTH,
@@ -337,9 +331,9 @@ - (UITableViewCell *)tableView:(UITableView *)tableView
chatMessageLabel.frame = labelRect;
chatMessageLabel.text = message.message;
-
+
// Figure out the dynamic height portion of the top and bottom bubble
- CGFloat topAndBottomHeight = [self labelHeight:message] / 2 +CHAT_MESSAGE_LABEL_BOTTOM_PADDING;
+ CGFloat topAndBottomHeight = round([self labelHeight:message] / 2 + CHAT_MESSAGE_LABEL_BOTTOM_PADDING);
// Calculate the Y and HEIGHT of the top bubble
CGFloat topBubbleHeight = CHAT_BUBBLE_IMG_TOP_HEIGHT;
@@ -363,7 +357,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView
middleBubble.frame.size.width,
middleBubble.frame.size.height);
middleBubble.frame = middleBubbleRect;
-
+
// Calculate the Y and HEIGHT of the bottm bubble
CGFloat bottomBubbleY = middleBubble.frame.origin.y +
middleBubble.frame.size.height;
@@ -378,7 +372,16 @@ - (UITableViewCell *)tableView:(UITableView *)tableView
bottomBubble.frame.size.width,
bottomBubbleHeight);
bottomBubble.frame = bottomBubbleRect;
-
+
+ if (cell.profileImage) {
+ [cell.profileImage setImageWithURL:self.user.photoURL
+ placeholderImage:[CPUIHelper defaultProfileImage]];
+
+ CGPoint profileImageCenter = cell.profileImage.center;
+ profileImageCenter.y = middleBubble.center.y;
+ cell.profileImage.center = profileImageCenter;
+ }
+
return cell;
}
@@ -407,24 +410,35 @@ - (void)deliverChatMessage:(ChatMessage *)message
}
- (IBAction)sendChat {
- if (![self.chatEntryField.text isEqualToString:@""]) {
+ if (![self.chatEntryTextView.text isEqualToString:@""]) {
// Don't do squat on empty chat entries
ChatMessage *message = [[ChatMessage alloc]
- initWithMessage:self.chatEntryField.text
+ initWithMessage:self.chatEntryTextView.text
toUser:self.user
fromUser:self.me];
[self deliverChatMessage:message];
// Clear chat box text
- self.chatEntryField.text = @"";
+ self.chatEntryTextView.text = @"";
}
}
+#pragma mark - UITextViewDelegate
-#pragma mark - Delegate & Outlet functions
+- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
+{
+ NSCharacterSet *newlineCharacterSet = [NSCharacterSet newlineCharacterSet];
+ if (NSNotFound != [text rangeOfCharacterFromSet:newlineCharacterSet].location) {
+ NSString *trimmedText = [text stringByTrimmingCharactersInSet:newlineCharacterSet];
+ NSArray *stringComponents = [trimmedText componentsSeparatedByCharactersInSet:newlineCharacterSet];
+ NSString *stringWithoutNewlines = [stringComponents componentsJoinedByString:@" "];
+
+ textView.text = [textView.text stringByReplacingCharactersInRange:range
+ withString:stringWithoutNewlines];
-- (BOOL)textFieldShouldReturn:(UITextField *)textField {
- [textField resignFirstResponder];
+ [textView resignFirstResponder];
+ return NO;
+ }
return YES;
}
View
BIN  candpiosapp/Chat/images/chat-bubble-left-bottom.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-left-bottom@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-left-middle.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-left-middle@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-left-top.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-left-top@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-right-bottom.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-right-bottom@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-right-middle.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-right-middle@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-right-top.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-bubble-right-top@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-entry-field.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  candpiosapp/Chat/images/chat-entry-field@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
1  candpiosapp/Common/CPConstants.h
@@ -12,6 +12,7 @@
extern NSString* const kCandPWebServiceUrl;
extern NSString* const kCandPWebServiceSecureUrl;
+extern NSString* const kAppPlatform;
extern NSString* const kCPAPIVersionHeader;
extern NSString* const kCPAPIVersionValue;
extern NSString* const kCandPAPIErrorDomain;
View
1  candpiosapp/Common/CPConstants.m
@@ -35,6 +35,7 @@ @implementation CPConstants
#endif
+NSString* const kAppPlatform = @"iOS";
NSString* const kCPAPIVersionHeader = @"X-CP-API-VERSION";
NSString* const kCPAPIVersionValue = @"2.0";
NSString* const kCandPAPIErrorDomain = @"com.coffeeandpower.api.error";
View
1  candpiosapp/Common/CPapi.h
@@ -92,6 +92,7 @@
+ (void)getNotificationSettingsWithCompletition:(void(^)(NSDictionary *json, NSError *error))completion;
+ (void)setNotificationSettingsForDistance:(NSString *)distance
+ receiveNotifications:(BOOL)receiveNotifications
andCheckedId:(BOOL)checkedOnly
receiveContactEndorsed:(BOOL)receiveContactEndorsed
contactHeadlineChange:(BOOL)contactHeadlineChange
View
16 candpiosapp/Common/CPapi.m
@@ -353,11 +353,15 @@ + (void)getNearestVenuesWithCheckinsToCoordinate:(CLLocationCoordinate2D)coordin
+ (void)getNearestCheckedInWithCompletion:(void (^)(NSDictionary *, NSError *))completion
{
CLLocation *userLocation = [CPAppDelegate currentOrDefaultLocation];
- NSMutableDictionary *params = [NSMutableDictionary dictionary];
- [params setValue:[NSString stringWithFormat:@"%f", userLocation.coordinate.latitude] forKey:@"lat"];
- [params setValue:[NSString stringWithFormat:@"%f", userLocation.coordinate.longitude] forKey:@"lng"];
-
- [self makeHTTPRequestWithAction:@"getNearestCheckedIn" withParameters:params completion:completion];
+ NSDictionary *params = @{
+ @"lat": [NSString stringWithFormat:@"%f", userLocation.coordinate.latitude],
+ @"lng": [NSString stringWithFormat:@"%f", userLocation.coordinate.longitude],
+ @"v": @"20121116",
+ };
+
+ [self makeHTTPRequestWithAction:@"getNearestCheckedIn"
+ withParameters:[params mutableCopy]
+ completion:completion];
}
+ (void)getUsersCheckedInAtFoursquareID:(NSString *)foursquareID
@@ -505,6 +509,7 @@ + (void)getNotificationSettingsWithCompletition:(void (^)(NSDictionary *, NSErro
}
+ (void)setNotificationSettingsForDistance:(NSString *)distance
+ receiveNotifications:(BOOL)receiveNotifications
andCheckedId:(BOOL)checkedOnly
receiveContactEndorsed:(BOOL)receiveContactEndorsed
contactHeadlineChange:(BOOL)contactHeadlineChange
@@ -520,6 +525,7 @@ + (void)setNotificationSettingsForDistance:(NSString *)distance
NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
[parameters setValue:distance forKey:@"push_distance"];
+ [parameters setValue:receiveNotifications ? @"1" : @"0" forKey:@"receive_push_notifications"];
[parameters setValue:checkedOnly ? @"1" : @"0" forKey:@"checked_in_only"];
[parameters setValue:receiveContactEndorsed ? @"1" : @"0" forKey:@"push_contacts_endorsement"];
[parameters setValue:contactHeadlineChange ? @"1" : @"0" forKey:@"push_headline_changes"];
View
5 candpiosapp/Common/UI/CPBaseTableViewController.m
@@ -102,14 +102,15 @@ - (void)unhighlightCells:(BOOL)animated {
[UIView animateWithDuration:duration animations:^{
for (CPUserActionCell *cell in self.tableView.visibleCells) {
- if ([cell respondsToSelector:@selector(inactiveColor)]) {
- cell.contentView.backgroundColor = cell.inactiveColor;
+ if ([cell respondsToSelector:@selector(highlight:)]) {
+ [cell highlight:NO];
}
}
} completion:nil];
}
#pragma mark - UIScrollViewDelegate
+
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[self unhighlightCells:YES];
[CPUserActionCell cancelOpenSlideActionButtonsNotification:nil];
View
2  candpiosapp/Common/UI/CPSwipeableTableViewCell/CPUserAction.m
@@ -93,7 +93,7 @@ + (void)cell:(CPUserActionCell*)cell exchangeContactsFromViewController:(UIViewC
[cell animateSlideButtonsWithNewCenter:cell.originalCenter delay:0 duration:0.2 animated:YES];
// make sure the cell is no longer highlighted
- cell.contentView.backgroundColor = cell.inactiveColor;
+ [cell highlight:NO];
}
+ (void)cell:(CPUserActionCell*)cell showProfileFromViewController:(UIViewController*)viewController
View
4 candpiosapp/Common/UI/CPSwipeableTableViewCell/CPUserActionCell.h
@@ -51,8 +51,12 @@ typedef enum {
@property (nonatomic) CPUserActionCellSwipeStyle rightStyle;
@property (nonatomic, getter = isRevealing) BOOL revealing;
@property (nonatomic, readonly) CGFloat originalCenter;
+@property (nonatomic, readonly) UIView *viewToHighlight;
+ (void)cancelOpenSlideActionButtonsNotification:(CPUserActionCell *)cell;
- (void)animateSlideButtonsWithNewCenter:(CGFloat)newCenter delay:(NSTimeInterval)delay duration:(NSTimeInterval)duration animated:(BOOL)animated;
+- (void)highlight:(BOOL)highlight;
+- (void)additionalHighlightAnimations:(BOOL)highlight;
+
@end
View
44 candpiosapp/Common/UI/CPSwipeableTableViewCell/CPUserActionCell.m
@@ -58,9 +58,13 @@ - (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
-- (void) setInactiveColor:(UIColor *)inactiveColor {
+- (UIView *)viewToHighlight {
+ return self.contentView;
+}
+
+- (void)setInactiveColor:(UIColor *)inactiveColor {
_inactiveColor = inactiveColor;
- self.contentView.backgroundColor = inactiveColor;
+ self.viewToHighlight.backgroundColor = inactiveColor;
}
- (void)awakeFromNib
@@ -164,28 +168,40 @@ - (void)prepareForReuse {
}
}
-- (void) highlight {
+- (void)highlight:(BOOL)highlight {
// mimic row selection - highlight and push the child view
[UIView animateWithDuration:HIGHLIGHT_DURATION animations:^{
- self.contentView.backgroundColor = self.activeColor;
- if ([self.superview isKindOfClass:[UITableView class]]) {
- UITableView *tableView = (UITableView *)self.superview;
- for (CPUserActionCell *cell in tableView.visibleCells) {
- if (cell != self) {
- if ([cell respondsToSelector:@selector(inactiveColor)]) {
- cell.contentView.backgroundColor = cell.inactiveColor;
- } else {
- [cell setSelected:NO animated:YES];
+ if (highlight) {
+ self.viewToHighlight.backgroundColor = self.activeColor;
+
+ if ([self.superview isKindOfClass:[UITableView class]]) {
+ UITableView *tableView = (UITableView *)self.superview;
+ for (CPUserActionCell *cell in tableView.visibleCells) {
+ if (cell != self) {
+ if ([cell respondsToSelector:@selector(highlight:)]) {
+ [cell highlight:NO];
+ } else {
+ [cell setSelected:NO animated:YES];
+ }
}
}
}
+ } else {
+ self.viewToHighlight.backgroundColor = self.inactiveColor;
}
+
+ [self additionalHighlightAnimations:highlight];
}];
}
+- (void)additionalHighlightAnimations:(BOOL)highlight
+{
+ // to be overridden in subclasses
+}
+
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)evt {
if (!self.areActionButtonsVisible) {
- [self highlight];
+ [self highlight:YES];
}
}
@@ -195,7 +211,7 @@ - (void)tap:(UITapGestureRecognizer *)recognizer
// handle taps
if (!self.areActionButtonsVisible) {
// mimic row selection - highlight and push the child view
- [self highlight];
+ [self highlight:YES];
if (recognizer.state == UIGestureRecognizerStateEnded) {
// return immediately.. next view must be initialized on main thread
[self performSelectorOnMainThread:@selector(handleTap) withObject:nil waitUntilDone:NO];
View
6 candpiosapp/Login/LinkedInLoginController.m
@@ -299,6 +299,10 @@ - (void)handleLinkedInLogin:(NSString*)fullName linkedinID:(NSString *)linkedinI
// TODO: Move this functionality to api.php
NSMutableDictionary *loginParams = [NSMutableDictionary dictionary];
+
+ NSString *fullBuildVersion = [[NSString alloc] initWithFormat:@"%@.%@",
+ [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"],
+ [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]];
[loginParams setObject:fullName forKey:@"signupNickname"];
[loginParams setObject:linkedinID forKey:@"linkedin_id"];
@@ -310,6 +314,8 @@ - (void)handleLinkedInLogin:(NSString*)fullName linkedinID:(NSString *)linkedinI
[loginParams setObject:password forKey:@"signupPassword"];
[loginParams setObject:password forKey:@"signupConfirm"];
[loginParams setObject:@"0" forKey:@"reactivate"];
+ [loginParams setObject:kAppPlatform forKey:@"app_platform"];
+ [loginParams setObject:fullBuildVersion forKey:@"build_version"];
[loginParams setObject:@"mobileSignup" forKey:@"action"];
[self makeSignupRequest:loginParams];
View
51 candpiosapp/Settings/ProfileNotificationsViewController.m
@@ -14,11 +14,16 @@
#define kInCityText @"in city"
#define kContactsText @"contacts"
+#define kNotificationsViewPosition 295
+#define kAnyoneChatViewPosition 75
+#define kQuietTimeOffset 40
+
@interface ProfileNotificationsViewController () <UIActionSheetDelegate>
@property (strong, nonatomic) NSDate *quietTimeFromDate;
@property (strong, nonatomic) NSDate *quietTimeToDate;
@property (weak, nonatomic) IBOutlet UIButton *venueButton;
+@property (weak, nonatomic) IBOutlet UISwitch *notificationsSwitch;
@property (weak, nonatomic) IBOutlet UISwitch *checkedInOnlySwitch;
@property (weak, nonatomic) IBOutlet UISwitch *notifyOnEndorsementSwitch;
@property (weak, nonatomic) IBOutlet UISwitch *notifyHeadlineChangesSwitch;
@@ -28,14 +33,9 @@ @interface ProfileNotificationsViewController () <UIActionSheetDelegate>
@property (weak, nonatomic) IBOutlet UIButton *quietToButton;
@property (weak, nonatomic) IBOutlet UISwitch *contactsOnlyChatSwitch;
@property (weak, nonatomic) IBOutlet UILabel *chatNotificationLabel;
-@property (weak, nonatomic) IBOutlet UIView *headerView;
+@property (weak, nonatomic) IBOutlet UIView *dimView;
@property (weak, nonatomic) IBOutlet UIView *fromToSuperview;
-
-- (IBAction)selectVenueCity:(UIButton *)sender;
-- (IBAction)quietFromClicked:(UIButton *)sender;
-- (IBAction)quietToClicked:(UIButton *)sender;
-- (IBAction)quietTimeValueChanged:(UISwitch *)sender;
-- (IBAction)anyoneChatSwitchChanged:(id)sender;
+@property (weak, nonatomic) IBOutlet UIView *notificationsView;
- (void)setVenue:(NSString *)setting;
@@ -77,12 +77,17 @@ - (void)loadNotificationSettings
[SVProgressHUD dismissWithError:message
afterDelay:kDefaultDismissDelay];
} else {
+
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm:ss"];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
NSDictionary *dict = [json objectForKey:@"payload"];
+ NSString *receiveNotifications = (NSString *)[dict objectForKey:@"receive_push_notifications"];
+ [[self notificationsSwitch] setOn:[receiveNotifications isEqualToString:@"1"]];
+ [self notificationSwitchChanged:self.notificationsSwitch];
+
NSString *venue = (NSString *)[dict objectForKey:@"push_distance"];
[self setVenue:venue];
@@ -153,6 +158,7 @@ - (void)saveNotificationSettings
}
[CPapi setNotificationSettingsForDistance:distance
+ receiveNotifications:self.notificationsSwitch.on
andCheckedId:self.checkedInOnlySwitch.on
receiveContactEndorsed:self.notifyOnEndorsementSwitch.on
contactHeadlineChange:self.notifyHeadlineChangesSwitch.on
@@ -169,6 +175,16 @@ -(IBAction)gearPressed:(id)sender
[self dismissPushModalViewControllerFromLeftSegue];
}
+- (IBAction)notificationSwitchChanged:(UISwitch *)sender
+{
+ [UIView animateWithDuration:0.3
+ animations:^{
+ self.dimView.alpha = sender.on ? 0 : 1;
+ self.dimView.userInteractionEnabled = !sender.on;
+ }];
+}
+
+
- (IBAction)quietFromClicked:(UIButton *)sender
{
[ActionSheetDatePicker showPickerWithTitle:@"Select Quiet Time From"
@@ -253,16 +269,18 @@ - (void)setVenue:(NSString *)setting
- (void)setQuietTime:(BOOL)quietTime
{
[UIView animateWithDuration:0.3 animations:^ {
- CGRect fromToFrame = self.fromToSuperview.frame;
- CGFloat anyoneChatViewY = fromToFrame.origin.y;
+ CGRect anyoneChatFrame = self.anyoneChatView.frame;
+ CGRect notificationsFrame = self.notificationsView.frame;
+
if (quietTime) {
- anyoneChatViewY += fromToFrame.size.height;
+ anyoneChatFrame.origin.y = kNotificationsViewPosition;
+ notificationsFrame.origin.y = kAnyoneChatViewPosition;
+ } else {
+ notificationsFrame.origin.y = kAnyoneChatViewPosition - kQuietTimeOffset;
+ anyoneChatFrame.origin.y = kNotificationsViewPosition - kQuietTimeOffset;
}
-
- CGRect anyoneChatFrame = self.anyoneChatView.frame;
- anyoneChatFrame.origin.y = anyoneChatViewY;
-
self.anyoneChatView.frame = anyoneChatFrame;
+ self.notificationsView.frame = notificationsFrame;
}];
}
@@ -275,5 +293,8 @@ - (NSString *)setTimeText:(NSDate *)timeValue
return dateString;
}
-
+- (void)viewDidUnload {
+ [self setNotificationsView:nil];
+ [super viewDidUnload];
+}
@end
View
282 candpiosapp/Settings/SettingsStoryboard_iPhone.storyboard
@@ -762,173 +762,206 @@ photo?</string>
<userLayoutGuide location="21" affinity="maxX"/>
</userGuides>
<subviews>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Show me new Check Ins" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="0Ry-8y-hMv">
- <rect key="frame" x="20" y="13" width="200" height="22"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Bold" family="Helvetica Neue" pointSize="17"/>
- <color key="textColor" red="0.0" green="0.58431372550000005" blue="0.56470588239999997" alpha="1" colorSpace="calibratedRGB"/>
- <nil key="highlightedColor"/>
- </label>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="From" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="12" id="HCh-f1-yMi">
- <rect key="frame" x="20" y="55" width="32" height="18"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
- <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
- <nil key="highlightedColor"/>
- </label>
- <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="WYv-d1-E2c">
- <rect key="frame" x="103" y="50" width="196" height="27"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="calibratedRGB"/>
- <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
- <state key="normal" title=" in city" backgroundImage="drop-down.png">
- <color key="titleColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="calibratedRGB"/>
- <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
- </state>
- <state key="highlighted">
- <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
- </state>
- <connections>
- <action selector="selectVenueCity:" destination="Oyl-sh-T3U" eventType="touchUpInside" id="m2L-Hz-dLp"/>
- </connections>
- </button>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Only when I am checked in" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="KAA-nj-Dpl">
- <rect key="frame" x="20" y="93" width="177" height="20"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
- <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
- <nil key="highlightedColor"/>
- </label>
- <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="6Kq-XY-CWZ" userLabel="Swithc - only when checked in">
- <rect key="frame" x="222" y="89" width="79" height="27"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
- </switch>
- <view contentMode="scaleToFill" id="msq-ay-7A6" userLabel="white line - first">
- <rect key="frame" x="0.0" y="122" width="320" height="1"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
- <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
- </view>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Tell me when my contacts are Endorsed" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="leM-dN-eJw" userLabel="Label - Endorsment notification">
- <rect key="frame" x="20" y="129" width="194" height="35"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
- <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
- <nil key="highlightedColor"/>
- </label>
- <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="omC-De-bLw" userLabel="Switch - endorsement">
- <rect key="frame" x="222" y="129" width="79" height="27"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
- </switch>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Quiet time" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="jQz-GS-m06">
- <rect key="frame" x="20" y="215" width="129" height="20"/>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Receive notifications" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="KJ1-2y-rIz">
+ <rect key="frame" x="20" y="13" width="177" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
- <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="CzO-7x-w0O" userLabel="Switch - Quiet time">
- <rect key="frame" x="222" y="211" width="79" height="27"/>
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="m5A-27-wxJ" userLabel="Switch - only when checked in">
+ <rect key="frame" x="223" y="9" width="79" height="27"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
<connections>
- <action selector="quietTimeValueChanged:" destination="Oyl-sh-T3U" eventType="valueChanged" id="GJU-FL-s4l"/>
+ <action selector="notificationSwitchChanged:" destination="Oyl-sh-T3U" eventType="valueChanged" id="daR-DC-4g9"/>
</connections>
</switch>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Tell me when my contacts change their headline" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="N9Q-B5-Plh">
- <rect key="frame" x="21" y="166" width="199" height="38"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
- <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
- <nil key="highlightedColor"/>
- </label>
- <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="SYn-D4-Tap" userLabel="Switch - Headline change">
- <rect key="frame" x="223" y="171" width="79" height="27"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
- </switch>
- <view contentMode="scaleToFill" id="cX0-GX-mm2">
- <rect key="frame" x="0.0" y="244" width="320" height="39"/>
+ <view contentMode="scaleToFill" id="oHx-V4-TMp" userLabel="View - notifications ">
+ <rect key="frame" x="0.0" y="75" width="320" height="219"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<subviews>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="From" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="12" id="Aj4-Uy-yzx">
- <rect key="frame" x="20" y="11" width="32" height="18"/>
+ <view contentMode="scaleToFill" id="cX0-GX-mm2">
+ <rect key="frame" x="0.0" y="0.0" width="320" height="40"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+ <subviews>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="From" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="12" id="Aj4-Uy-yzx">
+ <rect key="frame" x="20" y="11" width="32" height="18"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
+ <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="To" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="12" id="lV3-ek-Kry">
+ <rect key="frame" x="178" y="11" width="23" height="18"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
+ <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="d0g-u2-bia">
+ <rect key="frame" x="224" y="6" width="75" height="27"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
+ <state key="normal" title="7:00 PM">
+ <color key="titleColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/>
+ <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+ </state>
+ <state key="highlighted">
+ <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+ </state>
+ <connections>
+ <action selector="quietToClicked:" destination="Oyl-sh-T3U" eventType="touchUpInside" id="adt-dN-bCn"/>
+ </connections>
+ </button>
+ <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="wxb-H5-mQy">
+ <rect key="frame" x="84" y="7" width="75" height="27"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="14"/>
+ <state key="normal" title="7:00 AM">
+ <color key="titleColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/>
+ <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+ </state>
+ <connections>
+ <action selector="quietFromClicked:" destination="Oyl-sh-T3U" eventType="touchUpInside" id="3wj-Sw-Qaf"/>
+ </connections>
+ </button>
+ </subviews>
+ <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+ </view>
+ <view contentMode="scaleToFill" id="msq-ay-7A6" userLabel="white line - first">
+ <rect key="frame" x="0.0" y="40" width="320" height="1"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
+ </view>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Show me new Check Ins" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="0Ry-8y-hMv">
+ <rect key="frame" x="20" y="45" width="200" height="22"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
- <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Bold" family="Helvetica Neue" pointSize="17"/>
+ <color key="textColor" red="0.0" green="0.58431372550000005" blue="0.56470588239999997" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="To" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="12" id="lV3-ek-Kry">
- <rect key="frame" x="178" y="11" width="23" height="18"/>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="From" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="12" id="HCh-f1-yMi">
+ <rect key="frame" x="20" y="75" width="32" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
- <button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="d0g-u2-bia">
- <rect key="frame" x="224" y="6" width="75" height="27"/>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="WYv-d1-E2c">
+ <rect key="frame" x="104" y="70" width="196" height="27"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
- <state key="normal" title="7:00 PM">
- <color key="titleColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/>
+ <state key="normal" title=" in city" backgroundImage="drop-down.png">
+ <color key="titleColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="highlighted">
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
- <action selector="quietToClicked:" destination="Oyl-sh-T3U" eventType="touchUpInside" id="adt-dN-bCn"/>
+ <action selector="selectVenueCity:" destination="Oyl-sh-T3U" eventType="touchUpInside" id="m2L-Hz-dLp"/>
</connections>
</button>
- <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="wxb-H5-mQy">
- <rect key="frame" x="84" y="7" width="75" height="27"/>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Only when I am checked in" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="KAA-nj-Dpl">
+ <rect key="frame" x="19" y="110" width="177" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="14"/>
- <state key="normal" title="7:00 AM">
- <color key="titleColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/>
- <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
- </state>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
+ <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="6Kq-XY-CWZ" userLabel="Swithc - only when checked in">
+ <rect key="frame" x="222" y="105" width="79" height="27"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
+ </switch>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Tell me when my contacts are Endorsed" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="leM-dN-eJw" userLabel="Label - Endorsment notification">
+ <rect key="frame" x="20" y="140" width="194" height="35"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
+ <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="omC-De-bLw" userLabel="Switch - endorsement">
+ <rect key="frame" x="222" y="145" width="79" height="27"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
+ </switch>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Tell me when my contacts change their headline" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="N9Q-B5-Plh">
+ <rect key="frame" x="19" y="180" width="199" height="38"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
+ <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="SYn-D4-Tap" userLabel="Switch - Headline change">
+ <rect key="frame" x="222" y="185" width="79" height="27"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
+ </switch>
+ </subviews>
+ <color key="backgroundColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/>
+ </view>
+ <view contentMode="scaleToFill" id="1vE-es-ZbH">
+ <rect key="frame" x="0.0" y="40" width="320" height="35"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <subviews>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Quiet time" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="jQz-GS-m06">
+ <rect key="frame" x="19" y="5" width="129" height="20"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
+ <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+ <nil key="highlightedColor"/>
+ </label>
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="CzO-7x-w0O" userLabel="Switch - Quiet time">
+ <rect key="frame" x="222" y="5" width="79" height="27"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
<connections>
- <action selector="quietFromClicked:" destination="Oyl-sh-T3U" eventType="touchUpInside" id="3wj-Sw-Qaf"/>
+ <action selector="quietTimeValueChanged:" destination="Oyl-sh-T3U" eventType="valueChanged" id="GJU-FL-s4l"/>
</connections>
- </button>
+ </switch>
</subviews>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+ <color key="backgroundColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/>
</view>
- <view contentMode="scaleToFill" id="oHx-V4-TMp">
- <rect key="frame" x="0.0" y="283" width="320" height="133"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+ <view userInteractionEnabled="NO" contentMode="scaleToFill" id="IrD-Kx-5rz" userLabel="View - dim">
+ <rect key="frame" x="0.0" y="40" width="320" height="255"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
+ <color key="backgroundColor" red="0.15686274509803921" green="0.15686274509803921" blue="0.15686274509803921" alpha="0.59999999999999998" colorSpace="calibratedRGB"/>
+ </view>
+ <view contentMode="scaleToFill" id="ngW-D7-22a" userLabel="View - anyone chat">
+ <rect key="frame" x="0.0" y="295" width="320" height="208"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" id="416-pJ-fQf" userLabel="white line">
<rect key="frame" x="0.0" y="0.0" width="320" height="1"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
</view>
- <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="Rhs-hN-YNW" userLabel="Switch - chat from anyone">
- <rect key="frame" x="222" y="6" width="79" height="27"/>
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Only people in your Contact list will be able to send you 1:1 chat." lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="tmc-Qs-3bj">
+ <rect key="frame" x="20" y="44" width="280" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
- <connections>
- <action selector="anyoneChatSwitchChanged:" destination="Oyl-sh-T3U" eventType="valueChanged" id="1uT-sW-OKE"/>
- </connections>
- </switch>
+ <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="12"/>
+ <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+ <nil key="highlightedColor"/>
+ </label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Allow anyone to send me 1:1 chat" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" id="uSk-Wv-06w">
- <rect key="frame" x="20" y="2" width="157" height="35"/>
+ <rect key="frame" x="20" y="10" width="157" height="35"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="14"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Only people in your Contact list will be able to send you 1:1 chat." lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="tmc-Qs-3bj">
- <rect key="frame" x="20" y="37" width="280" height="30"/>
+ <switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="Rhs-hN-YNW" userLabel="Switch - chat from anyone">
+ <rect key="frame" x="223" y="10" width="79" height="27"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="12"/>
- <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
- <nil key="highlightedColor"/>
- </label>
+ <color key="onTintColor" red="0.21960784310000001" green="0.56862745100000001" blue="0.56078431370000004" alpha="1" colorSpace="calibratedRGB"/>
+ <connections>
+ <action selector="anyoneChatSwitchChanged:" destination="Oyl-sh-T3U" eventType="valueChanged" id="1uT-sW-OKE"/>
+ </connections>
+ </switch>
</subviews>
- <color key="backgroundColor" red="0.15686274510000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="1" colorSpace="calibratedRGB"/>
</view>
</subviews>
<color key="backgroundColor" red="0.15686274509803921" green="0.15686274509803921" blue="0.15686274509803921" alpha="1" colorSpace="calibratedRGB"/>
@@ -953,12 +986,14 @@ photo?</string>
</barButtonItem>
</navigationItem>
<connections>
- <outlet property="anyoneChatView" destination="oHx-V4-TMp" id="YUw-yq-mTp"/>
+ <outlet property="anyoneChatView" destination="ngW-D7-22a" id="pbE-Yq-YSe"/>
<outlet property="chatNotificationLabel" destination="tmc-Qs-3bj" id="PeE-Sy-oBs"/>
<outlet property="checkedInOnlySwitch" destination="6Kq-XY-CWZ" id="KAg-5q-0k6"/>
<outlet property="contactsOnlyChatSwitch" destination="Rhs-hN-YNW" id="cqq-sR-Eom"/>
+ <outlet property="dimView" destination="IrD-Kx-5rz" id="ecc-ov-5gE"/>
<outlet property="fromToSuperview" destination="cX0-GX-mm2" id="K4i-fW-5xN"/>
- <outlet property="headerView" destination="29t-LB-tsx" id="XD9-eS-NQk"/>
+ <outlet property="notificationsSwitch" destination="m5A-27-wxJ" id="eP5-AE-Kdj"/>
+ <outlet property="notificationsView" destination="oHx-V4-TMp" id="G0v-A8-7WQ"/>
<outlet property="notifyHeadlineChangesSwitch" destination="SYn-D4-Tap" id="wmu-xw-0kR"/>
<outlet property="notifyOnEndorsementSwitch" destination="omC-De-bLw" id="rVx-xg-fHZ"/>
<outlet property="quietFromButton" destination="wxb-H5-mQy" id="X3M-R0-zF8"/>
@@ -1299,17 +1334,14 @@ photo?</string>
<class className="ProfileNotificationsViewController" superclassName="UIViewController">
<source key="sourceIdentifier" type="project" relativePath="./Classes/ProfileNotificationsViewController.h"/>
<relationships>
- <relationship kind="action" name="anyoneChatSwitchChanged:"/>
- <relationship kind="action" name="quietFromClicked:" candidateClass="UIButton"/>
- <relationship kind="action" name="quietTimeValueChanged:" candidateClass="UISwitch"/>
- <relationship kind="action" name="quietToClicked:" candidateClass="UIButton"/>
- <relationship kind="action" name="selectVenueCity:" candidateClass="UIButton"/>
<relationship kind="outlet" name="anyoneChatView" candidateClass="UIView"/>
<relationship kind="outlet" name="chatNotificationLabel" candidateClass="UILabel"/>
<relationship kind="outlet" name="checkedInOnlySwitch" candidateClass="UISwitch"/>
<relationship kind="outlet" name="contactsOnlyChatSwitch" candidateClass="UISwitch"/>
+ <relationship kind="outlet" name="dimView" candidateClass="UIView"/>
<relationship kind="outlet" name="fromToSuperview" candidateClass="UIView"/>
- <relationship kind="outlet" name="headerView" candidateClass="UIView"/>
+ <relationship kind="outlet" name="notificationsSwitch" candidateClass="UISwitch"/>
+ <relationship kind="outlet" name="notificationsView" candidateClass="UIView"/>
<relationship kind="outlet" name="notifyHeadlineChangesSwitch" candidateClass="UISwitch"/>
<relationship kind="outlet" name="notifyOnEndorsementSwitch" candidateClass="UISwitch"/>
<relationship kind="outlet" name="quietFromButton" candidateClass="UIButton"/>
View
1  candpiosapp/User/CPUser.h
@@ -39,6 +39,7 @@
@property (strong, nonatomic) NSNumber *isContact;
@property (strong, nonatomic) NSNumber *totalCheckInTime;
@property (strong, nonatomic) NSNumber *totalCheckInCount;
+@property (strong, nonatomic) NSNumber *totalEndorsementCount;
@property (nonatomic, readonly) BOOL hasAnyTopSkills;
@property (nonatomic, readonly) BOOL hasAnyWorkInformation;
@property (nonatomic, readonly) BOOL hasAnyEducationInformation;
View
30 candpiosapp/User/UserListTableViewController.m
@@ -54,22 +54,27 @@ - (void)refreshData
if (![[json objectForKey:@"error"] boolValue]) {
CLLocation *userLocation = [CPAppDelegate currentOrDefaultLocation];
- NSArray *people = [[json objectForKey:@"payload"] valueForKey:@"people"];
+ NSArray *people = [[json objectForKey:@"payload"] valueForKey:@"checked_in_users"];
for (NSDictionary *personJSON in people) {
CPUser *user = [[CPUser alloc] initFromDictionary:personJSON];
+ [user setPhotoURLFromString:personJSON[@"photo_url"]];
+
CLLocation *location = [[CLLocation alloc] initWithLatitude:user.location.latitude longitude:user.location.longitude];
user.distance = [location distanceFromLocation:userLocation];
-
- NSNumber *venueID = [personJSON numberForKey:@"venue_id" orDefault:@0];
- CPVenue *userVenue = [[CPMarkerManager sharedManager] markerVenueWithID:venueID];
-
- if (!userVenue) {
- userVenue = [[CPVenue alloc] init];
- userVenue.venueID = venueID;
- userVenue.name = [personJSON objectForKey:@"venue_name" orDefault:@""];
+
+ user.totalCheckInTime = @((int)round([personJSON[@"total_hours_checked_in"] floatValue]));
+
+ user.totalEndorsementCount = @([personJSON[@"total_endorsement_count"] intValue]);
+ user.status = [personJSON valueForKeyPath:@"last_checkin.status_text"];
+ user.checkedIn = [[personJSON valueForKeyPath:@"last_checkin.checked_in"] boolValue];
+
+ NSDictionary *placeCheckedInDictionary = [personJSON valueForKeyPath:@"last_checkin.venue"];
+ CPVenue *userVenue = [[CPVenue alloc] initFromDictionary:placeCheckedInDictionary];
+ if (!userVenue.name) {
+ userVenue.name = @"";
}
-
+
user.placeCheckedIn = userVenue;
[self.checkedInUsers addObject:user];
}
@@ -117,7 +122,6 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
-
static NSString *CellIdentifier = @"UserListCustomCell";
UserTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
@@ -163,6 +167,10 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N
cell.rightStyle = CPUserActionCellSwipeStyleQuickAction;
}
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
+
+ cell.hoursWorkedLabel.text = [NSString stringWithFormat:@"%d", [user.totalCheckInTime intValue]];
+ cell.endorseCountLabel.text = [NSString stringWithFormat:@"%d", [user.totalEndorsementCount intValue]];
+
return cell;
}
View
185 candpiosapp/User/UserProfileStoryboard_iPhone.storyboard
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2844" systemVersion="12C60" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="6Bs-xG-Mnl">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2840" systemVersion="11G63b" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="6Bs-xG-Mnl">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1930"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1926"/>
</dependencies>
<scenes>
<!--User Profile View Controller-->
@@ -323,31 +323,33 @@
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="72" sectionHeaderHeight="22" sectionFooterHeight="22" id="q9R-xR-eLD">
- <rect key="frame" x="8" y="0.0" width="304" height="376"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="376"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <color key="backgroundColor" white="1" alpha="0.0" colorSpace="calibratedWhite"/>
<prototypes>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="MyChatCell" rowHeight="40" id="QsH-v9-dQL" customClass="ChatMessageCell">
- <rect key="frame" x="0.0" y="22" width="304" height="40"/>
+ <rect key="frame" x="0.0" y="22" width="320" height="40"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
- <rect key="frame" x="0.0" y="0.0" width="304" height="39"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="39"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" tag="382" contentMode="scaleToFill" image="chat-bubble-right-bottom.png" id="8As-Sb-92q">
- <rect key="frame" x="47" y="26" width="261" height="14"/>
+ <rect key="frame" x="60" y="26" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="823" contentMode="scaleToFill" image="chat-bubble-right-top.png" id="gk2-jh-LRS">
- <rect key="frame" x="47" y="-1" width="261" height="14"/>
+ <rect key="frame" x="60" y="-1" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="953" contentMode="scaleToFill" image="chat-bubble-right-middle.png" id="85q-JN-KiB">
- <rect key="frame" x="47" y="13" width="261" height="13"/>
+ <rect key="frame" x="60" y="13" width="261" height="13"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</imageView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="324" contentMode="left" text="" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" id="oCf-3I-cIw">
- <rect key="frame" x="68" y="11" width="201" height="18"/>
+ <rect key="frame" x="81" y="11" width="201" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
@@ -359,33 +361,33 @@
<color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="MyChatCellwithTimestamp" rowHeight="60" id="6z9-C3-Mby" customClass="ChatMessageCell">
- <rect key="frame" x="0.0" y="62" width="304" height="60"/>
+ <rect key="frame" x="0.0" y="62" width="320" height="60"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
- <rect key="frame" x="0.0" y="0.0" width="304" height="59"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="59"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" tag="382" contentMode="scaleToFill" image="chat-bubble-right-bottom.png" id="Lic-bo-dAX">
- <rect key="frame" x="47" y="44" width="261" height="14"/>
+ <rect key="frame" x="60" y="44" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="823" contentMode="scaleToFill" image="chat-bubble-right-top.png" id="7Ng-LI-360">
- <rect key="frame" x="47" y="17" width="261" height="14"/>
+ <rect key="frame" x="60" y="17" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="953" contentMode="scaleToFill" image="chat-bubble-right-middle.png" id="HdH-PQ-OVI">
- <rect key="frame" x="47" y="31" width="261" height="13"/>
+ <rect key="frame" x="60" y="31" width="261" height="13"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="324" contentMode="left" text="" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" id="Bwx-Yq-I30">
- <rect key="frame" x="68" y="29" width="201" height="18"/>
+ <rect key="frame" x="81" y="29" width="201" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="720" contentMode="left" text="Feb 27, 2012 — 10:04am" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="nW0-pS-VBz">
- <rect key="frame" x="0.0" y="0.0" width="304" height="21"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="21"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.31372549020000001" green="0.31372549020000001" blue="0.31372549020000001" alpha="1" colorSpace="calibratedRGB"/>
@@ -396,72 +398,88 @@
</view>
<color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
</tableViewCell>
- <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" reuseIdentifier="TheirChatCell" rowHeight="40" id="Iyp-Et-yA3">
- <rect key="frame" x="0.0" y="122" width="304" height="40"/>
+ <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" reuseIdentifier="TheirChatCell" rowHeight="40" id="Iyp-Et-yA3" customClass="ChatMessageCell">
+ <rect key="frame" x="0.0" y="122" width="320" height="40"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
- <rect key="frame" x="0.0" y="0.0" width="304" height="39"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="39"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" tag="382" contentMode="scaleToFill" image="chat-bubble-left-bottom.png" id="3L7-IL-HOm">
- <rect key="frame" x="-4" y="26" width="261" height="14"/>
+ <rect key="frame" x="36" y="26" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="823" contentMode="scaleToFill" image="chat-bubble-left-top.png" id="wei-1T-wgR">
- <rect key="frame" x="-4" y="-1" width="261" height="14"/>
+ <rect key="frame" x="36" y="-1" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="953" contentMode="scaleToFill" image="chat-bubble-left-middle.png" id="eJ7-0L-jrc">
- <rect key="frame" x="-4" y="13" width="261" height="13"/>
+ <rect key="frame" x="36" y="13" width="261" height="13"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="324" contentMode="left" text="" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" id="37a-zf-53P">
- <rect key="frame" x="18" y="11" width="130" height="18"/>
+ <rect key="frame" x="58" y="11" width="217" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</label>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" id="MpJ-Wn-d6t">
+ <rect key="frame" x="8" y="5" width="30" height="30"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" red="0.2588235438" green="0.50196081400000003" blue="0.50196081400000003" alpha="1" colorSpace="deviceRGB"/>
+ </imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
+ <connections>
+ <outlet property="profileImage" destination="MpJ-Wn-d6t" id="CXe-wZ-cIb"/>
+ </connections>
</tableViewCell>
- <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" reuseIdentifier="TheirChatCellwithTimestamp" rowHeight="60" id="mKU-lZ-AOk">
- <rect key="frame" x="0.0" y="162" width="304" height="60"/>
+ <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" reuseIdentifier="TheirChatCellwithTimestamp" rowHeight="60" id="mKU-lZ-AOk" customClass="ChatMessageCell">
+ <rect key="frame" x="0.0" y="162" width="320" height="60"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
- <rect key="frame" x="0.0" y="0.0" width="304" height="59"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="59"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" tag="382" contentMode="scaleToFill" image="chat-bubble-left-bottom.png" id="Z1G-6c-Cpc">
- <rect key="frame" x="-4" y="44" width="261" height="14"/>
+ <rect key="frame" x="36" y="44" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="823" contentMode="scaleToFill" image="chat-bubble-left-top.png" id="1Z6-2u-fsv">
- <rect key="frame" x="-4" y="17" width="261" height="14"/>
+ <rect key="frame" x="36" y="17" width="261" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<imageView userInteractionEnabled="NO" tag="953" contentMode="scaleToFill" image="chat-bubble-left-middle.png" id="mSf-eB-7Is">
- <rect key="frame" x="-4" y="31" width="261" height="13"/>
+ <rect key="frame" x="36" y="31" width="261" height="13"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="324" contentMode="left" text="" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" id="nFv-hN-EVQ">
- <rect key="frame" x="18" y="29" width="130" height="18"/>
+ <rect key="frame" x="58" y="29" width="217" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
<color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="720" contentMode="left" text="Feb 27, 2012 — 10:04am" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="VXZ-wE-4Yr">
- <rect key="frame" x="0.0" y="0.0" width="304" height="21"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="21"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" red="0.31372549020000001" green="0.31372549020000001" blue="0.31372549020000001" alpha="1" colorSpace="calibratedRGB"/>
<color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</label>
+ <imageView userInteractionEnabled="NO" contentMode="scaleToFill" id="Xod-k6-yfM">
+ <rect key="frame" x="8" y="23" width="30" height="30"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" red="0.2588235438" green="0.50196081400000003" blue="0.50196081400000003" alpha="1" colorSpace="deviceRGB"/>
+ </imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
+ <connections>
+ <outlet property="profileImage" destination="Xod-k6-yfM" id="7X8-qQ-oNV"/>
+ </connections>
</tableViewCell>
</prototypes>
<connections>
@@ -470,17 +488,27 @@
</connections>
</tableView>
<view contentMode="scaleToFill" id="8Xk-CN-gYQ">
- <rect key="frame" x="0.0" y="376" width="320" height="40"/>
+ <rect key="frame" x="0.0" y="375" width="320" height="41"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<subviews>
- <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Type to chat" minimumFontSize="17" id="idG-ly-PzE">
- <rect key="frame" x="7" y="4" width="228" height="31"/>
+ <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" id="Yvu-KJ-htD">
+ <rect key="frame" x="7" y="10" width="4238" height="24"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+ <inset key="contentInset" minX="5" minY="-5" maxX="4005" maxY="0.0"/>
+ <inset key="scrollIndicatorInsets" minX="5" minY="0.0" maxX="0.0" maxY="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
- <textInputTraits key="textInputTraits"/>
- </textField>
+ <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+ <connections>
+ <outlet property="delegate" destination="OVL-97-bi7" id="L9d-It-PPe"/>
+ </connections>
+ </textView>
+ <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" userInteractionEnabled="NO" contentMode="center" image="chat-entry-field.png" id="VTb-En-7L9">
+ <rect key="frame" x="0.0" y="0.0" width="320" height="41"/>
+ <autoresizingMask key="autoresizingMask"/>
+ </imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="B2W-c3-vfe">
- <rect key="frame" x="241" y="4" width="72" height="32"/>
+ <rect key="frame" x="253" y="6" width="63" height="32"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
<state key="normal" title="Send">
@@ -498,13 +526,14 @@
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</subviews>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<navigationItem key="navigationItem" id="KUa-IF-gYM"/>
<connections>
<outlet property="backgroundView" destination="ohT-1I-TXi" id="lPT-g7-Ijh"/>
<outlet property="chatButton" destination="B2W-c3-vfe" id="srY-Aq-Vd9"/>
<outlet property="chatContents" destination="q9R-xR-eLD" id="SKC-7i-6SK"/>
- <outlet property="chatEntryField" destination="idG-ly-PzE" id="Rrx-LB-YAF"/>
+ <outlet property="chatEntryTextView" destination="Yvu-KJ-htD" id="XuT-U5-37s"/>
<outlet property="chatInputs" destination="8Xk-CN-gYQ" id="czC-Oa-prR"/>
</connections>
</viewController>
@@ -627,9 +656,87 @@
<image name="chat-bubble-right-bottom.png" width="261" height="14"/>
<image name="chat-bubble-right-middle.png" width="261" height="13"/>
<image name="chat-bubble-right-top.png" width="261" height="14"/>
+ <image name="chat-entry-field.png" width="320" height="41"/>
<image name="map-marker.png" width="40" height="36"/>
<image name="others-at-venue.png" width="11" height="9"/>
</resources>
+ <classes>
+ <class className="CPPlaceholderTextView" superclassName="UITextView">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/CPPlaceholderTextView.h"/>
+ </class>
+ <class className="CPUserActionCell" superclassName="UITableViewCell">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/CPUserActionCell.h"/>
+ </class>
+ <class className="ChatMessageCell" superclassName="UITableViewCell">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/ChatMessageCell.h"/>
+ <relationships>
+ <relationship kind="outlet" name="profileImage" candidateClass="UIImageView"/>
+ </relationships>
+ </class>
+ <class className="OneOnOneChatViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/OneOnOneChatViewController.h"/>
+ <relationships>
+ <relationship kind="action" name="sendChat"/>
+ <relationship kind="outlet" name="backgroundView" candidateClass="UIView"/>
+ <relationship kind="outlet" name="chatButton" candidateClass="UIButton"/>
+ <relationship kind="outlet" name="chatContents" candidateClass="UITableView"/>
+ <relationship kind="outlet" name="chatEntryField" candidateClass="UITextField"/>
+ <relationship kind="outlet" name="chatEntryTextView" candidateClass="UITextView"/>
+ <relationship kind="outlet" name="chatInputs" candidateClass="UIView"/>
+ </relationships>
+ </class>
+ <class className="UserLoveViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/UserLoveViewController.h"/>
+ <relationships>
+ <relationship kind="outlet" name="charCounterLabel" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="descriptionTextView" candidateClass="CPPlaceholderTextView"/>
+ <relationship kind="outlet" name="loveBackground" candidateClass="UIView"/>
+ <relationship kind="outlet" name="navigationBar" candidateClass="UINavigationBar"/>
+ <relationship kind="outlet" name="profilePicture" candidateClass="UIImageView"/>
+ <relationship kind="outlet" name="tableView" candidateClass="UITableView"/>
+ </relationships>
+ </class>
+ <class className="UserProfileLinkedInViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/UserProfileLinkedInViewController.h"/>
+ <relationships>
+ <relationship kind="outlet" name="socialWebView" candidateClass="UIWebView"/>
+ </relationships>
+ </class>
+ <class className="UserProfileViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/UserProfileViewController.h"/>
+ <relationships>
+ <relationship kind="action" name="venueViewButtonPressed:"/>
+ <relationship kind="outlet" name="availabilityView" candidateClass="UIView"/>
+ <relationship kind="outlet" name="cardImage" candidateClass="UIImageView"/>
+ <relationship kind="outlet" name="cardJobPosition" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="cardNickname" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="cardStatus" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="checkedIn" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="distanceLabel" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="hoursAvailable" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="loveReceived" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="mapMarker" candidateClass="UIImageView"/>
+ <relationship kind="outlet" name="mapView" candidateClass="MKMapView"/>
+ <relationship kind="outlet" name="minutesAvailable" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="payButton" candidateClass="UIButton"/>
+ <relationship kind="outlet" name="propNoteLabel" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="resumeEarned" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="resumeLabel" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="resumeRate" candidateClass="UILabel"/>
+ <relationship kind="outlet" name="resumeView" candidateClass="UIView"/>
+ <relationship kind="outlet" name="resumeWebView" candidateClass="UIWebView"/>
+ <relationship kind="outlet" name="scrollView" candidateClass="UIScrollView"/>
+ <relationship kind="outlet" name="userActionCell" candidateClass="CPUserActionCell"/>
+ <relationship kind="outlet" name="userCard" candidateClass="UIView"/>
+ <relationship kind="outlet" name="venueAddress" candidateClass="UILabel"/>
+ <relationship kind="outlet"