From ae4df954ca0b8f6c21d1884eded317b61e9bf47d Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 13 Jul 2012 10:53:46 +0200 Subject: [PATCH] Update images Add miss call notifications Add gradient background for UITableCell --- Classes/CallDelegate.h | 3 +- Classes/ChatRoomTableViewController.m | 9 + Classes/ChatRoomViewController.m | 51 ---- Classes/ChatRoomViewController.xib | 73 ++++- Classes/ChatTableViewController.m | 8 + Classes/ContactDetailsLabelViewController.m | 10 +- Classes/ContactDetailsLabelViewController.xib | 7 +- Classes/ContactDetailsTableViewController.m | 23 +- Classes/ContactDetailsViewController.h | 5 + Classes/ContactDetailsViewController.m | 81 ++++-- Classes/ContactDetailsViewController.xib | 102 ++++++- Classes/ContactsTableViewController.m | 6 + Classes/HistoryTableViewController.m | 6 + Classes/InCallViewController.m | 86 ------ Classes/LinphoneUI/UICallBar.h | 6 +- Classes/LinphoneUI/UICallBar.m | 12 +- Classes/LinphoneUI/UICallBar.xib | 20 +- Classes/LinphoneUI/UIChatCell.xib | 121 ++++---- Classes/LinphoneUI/UIContactCell.m | 15 + Classes/LinphoneUI/UIContactCell.xib | 103 +++---- Classes/LinphoneUI/UIHistoryCell.xib | 61 +--- Classes/LinphoneUI/UILinphone.h | 25 ++ Classes/LinphoneUI/UIMainBar.h | 6 + Classes/LinphoneUI/UIMainBar.m | 82 +++++- Classes/LinphoneUI/UIMainBar.xib | 129 ++++++++- .../TPKeyboardAvoidingScrollView.h | 17 ++ .../TPKeyboardAvoidingScrollView.m | 186 ++++++++++++ .../TPKeyboardAvoidingTableView.h | 16 + .../TPKeyboardAvoidingTableView.m | 173 +++++++++++ .../UACellBackgroundView.h | 30 ++ .../UACellBackgroundView.m | 274 ++++++++++++++++++ Resources/add_call_default.png | Bin 3587 -> 3572 bytes Resources/add_call_disabled.png | Bin 3465 -> 3509 bytes Resources/add_call_over.png | Bin 3554 -> 3575 bytes Resources/button_alert_background_default.png | Bin 1570 -> 3853 bytes Resources/button_alert_background_over.png | Bin 1723 -> 3479 bytes Resources/cancel_default.png | Bin 0 -> 4152 bytes Resources/cancel_over.png | Bin 0 -> 4384 bytes Resources/contact_cancel_default.png | Bin 0 -> 6587 bytes Resources/contact_cancel_over.png | Bin 0 -> 4527 bytes Resources/contacts_add_default.png | Bin 5978 -> 5917 bytes Resources/contacts_add_over.png | Bin 5238 -> 5387 bytes Resources/dialer_alt_back_default.png | Bin 0 -> 5674 bytes Resources/dialer_alt_back_over.png | Bin 0 -> 4158 bytes Resources/dialer_alt_background.png | Bin 0 -> 3373 bytes Resources/history_notification.png | Bin 0 -> 3856 bytes Resources/list_highlight.png | Bin 36632 -> 0 bytes Resources/micro_on_defauly.png | Bin 5999 -> 0 bytes Resources/transfer_call_default.png | Bin 7522 -> 5399 bytes Resources/transfer_call_disabled.png | Bin 6262 -> 5245 bytes Resources/transfer_call_over.png | Bin 4558 -> 5390 bytes linphone.xcodeproj/project.pbxproj | 98 ++++++- 52 files changed, 1446 insertions(+), 398 deletions(-) create mode 100644 Classes/LinphoneUI/UILinphone.h create mode 100755 Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h create mode 100755 Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.m create mode 100755 Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h create mode 100755 Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.m create mode 100644 Classes/Utils/UACellBackgroundView/UACellBackgroundView.h create mode 100644 Classes/Utils/UACellBackgroundView/UACellBackgroundView.m create mode 100644 Resources/cancel_default.png create mode 100644 Resources/cancel_over.png create mode 100644 Resources/contact_cancel_default.png create mode 100644 Resources/contact_cancel_over.png create mode 100644 Resources/dialer_alt_back_default.png create mode 100644 Resources/dialer_alt_back_over.png create mode 100644 Resources/dialer_alt_background.png create mode 100644 Resources/history_notification.png delete mode 100644 Resources/list_highlight.png delete mode 100644 Resources/micro_on_defauly.png diff --git a/Classes/CallDelegate.h b/Classes/CallDelegate.h index 216149417..df2bf75e0 100644 --- a/Classes/CallDelegate.h +++ b/Classes/CallDelegate.h @@ -24,8 +24,7 @@ enum CallDelegateType { CD_UNDEFINED = 0, CD_ZRTP, CD_VIDEO_UPDATE, - CD_STOP_VIDEO_ON_LOW_BATTERY, - CD_TRANSFER_CALL + CD_STOP_VIDEO_ON_LOW_BATTERY }; @protocol CallActionSheetDelegate diff --git a/Classes/ChatRoomTableViewController.m b/Classes/ChatRoomTableViewController.m index 735dec194..3dd075073 100644 --- a/Classes/ChatRoomTableViewController.m +++ b/Classes/ChatRoomTableViewController.m @@ -25,6 +25,15 @@ @synthesize remoteContact; + +#pragma mark - ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.tableView setBackgroundColor:[UIColor clearColor]]; // Can't do it in Xib: issue with ios4 +} + + #pragma mark - - (void)reloadData { diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatRoomViewController.m index fbfa3bedb..4d34bbc4e 100644 --- a/Classes/ChatRoomViewController.m +++ b/Classes/ChatRoomViewController.m @@ -73,14 +73,6 @@ - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(keyboardWillShow:) - name:UIKeyboardWillShowNotification - object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(keyboardWillHide:) - name:UIKeyboardWillHideNotification - object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textReceivedEvent:) name:@"LinphoneTextReceived" @@ -93,13 +85,6 @@ - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; - [[NSNotificationCenter defaultCenter] removeObserver:self - name:UIKeyboardWillShowNotification - object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self - name:UIKeyboardWillHideNotification - object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:@"LinphoneTextReceived" object:nil]; @@ -131,42 +116,6 @@ } -#pragma mark - Keyboard Event Functions - -- (void)keyboardWillHide:(NSNotification *)notif { - //CGRect beginFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; - UIViewAnimationCurve curve = [[[notif userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]; - NSTimeInterval duration = [[[notif userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; - [UIView beginAnimations:@"resize" context:nil]; - [UIView setAnimationDuration:duration]; - [UIView setAnimationCurve:curve]; - [UIView setAnimationBeginsFromCurrentState:TRUE]; - CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; - CGRect frame = [[self view] frame]; - CGPoint pos = {0, 0}; - CGPoint gPos = [[self view] convertPoint:pos toView:nil]; - frame.size.height = endFrame.origin.y - gPos.y; - [[self view] setFrame:frame]; - [UIView commitAnimations]; -} - -- (void)keyboardWillShow:(NSNotification *)notif { - //CGRect beginFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; - UIViewAnimationCurve curve = [[[notif userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]; - NSTimeInterval duration = [[[notif userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; - [UIView beginAnimations:@"resize" context:nil]; - [UIView setAnimationDuration:duration]; - [UIView setAnimationCurve:curve]; - [UIView setAnimationBeginsFromCurrentState:TRUE]; - CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; - CGRect frame = [[self view] frame]; - CGPoint pos = {0, 0}; - CGPoint gPos = [[self view] convertPoint:pos toView:nil]; - frame.size.height = endFrame.origin.y - gPos.y; - [[self view] setFrame:frame]; - [UIView commitAnimations]; -} - #pragma mark - UITextFieldDelegate Functions - (BOOL)textFieldShouldReturn:(UITextField *)textField { diff --git a/Classes/ChatRoomViewController.xib b/Classes/ChatRoomViewController.xib index f4708c7a5..0d2dede5d 100644 --- a/Classes/ChatRoomViewController.xib +++ b/Classes/ChatRoomViewController.xib @@ -136,9 +136,64 @@ _NS:9 - - 3 - MCAwAA + + 10 + + 549453824 + {512, 1} + + + + + + TU0AKgAACAjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/ +y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/ +y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/ +xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/ +xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/ +xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/ +xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/ +xczS/8vS2P/L0tj/xczU/wANAQAAAwAAAAECAAAAAQEAAwAAAAEAAQAAAQIAAwAAAAQAAAiqAQMAAwAA +AAEAAQAAAQYAAwAAAAEAAgAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEABAAAARYAAwAA +AAEAAQAAARcABAAAAAEAAAgAARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAQAAAiyAAAAAAAI +AAgACAAIAAEAAQABAAE + + + + + + 3 + MCAwAA + + + groupTableViewBackgroundColor YES IBCocoaTouchFramework @@ -161,6 +216,7 @@ {{250, 0}, {70, 59}} + _NS:9 NO @@ -254,7 +310,7 @@ {320, 460} - + _NS:9 IBCocoaTouchFramework @@ -493,6 +549,7 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + TPKeyboardAvoidingTableView com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -569,6 +626,14 @@ ./Classes/ChatRoomViewController.h + + TPKeyboardAvoidingTableView + UITableView + + IBProjectSource + ./Classes/TPKeyboardAvoidingTableView.h + + UIToggleButton UIButton diff --git a/Classes/ChatTableViewController.m b/Classes/ChatTableViewController.m index ba4d6c934..1bdd7e8a3 100644 --- a/Classes/ChatTableViewController.m +++ b/Classes/ChatTableViewController.m @@ -22,6 +22,8 @@ #import "linphonecore.h" #import "PhoneMainView.h" +#import "UACellBackgroundView.h" +#import "UILinphone.h" @implementation ChatTableViewController @@ -59,6 +61,12 @@ UIChatCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; if (cell == nil) { cell = [[[UIChatCell alloc] initWithIdentifier:kCellId] autorelease]; + + + // Background View + UACellBackgroundView *selectedBackgroundView = [[[UACellBackgroundView alloc] initWithFrame:CGRectZero] autorelease]; + cell.selectedBackgroundView = selectedBackgroundView; + [selectedBackgroundView setBackgroundColor:LINPHONE_TABLE_CELL_BACKGROUND_COLOR]; } [cell setChat:[data objectAtIndex:[indexPath row]]]; diff --git a/Classes/ContactDetailsLabelViewController.m b/Classes/ContactDetailsLabelViewController.m index a2e9a3e40..81cb0ec1c 100644 --- a/Classes/ContactDetailsLabelViewController.m +++ b/Classes/ContactDetailsLabelViewController.m @@ -19,6 +19,9 @@ #import "ContactDetailsLabelViewController.h" +#import "UACellBackgroundView.h" +#import "UILinphone.h" + @implementation ContactDetailsLabelViewController @synthesize dataList; @@ -68,8 +71,11 @@ UITableViewCell *cell = [atableView dequeueReusableCellWithIdentifier:kCellId]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kCellId] autorelease]; - //TODO - /*[cell setSelectedBackgroundView:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"list_highlight.png"]]autorelease]];*/ + + // Background View + UACellBackgroundView *selectedBackgroundView = [[[UACellBackgroundView alloc] initWithFrame:CGRectZero] autorelease]; + cell.selectedBackgroundView = selectedBackgroundView; + [selectedBackgroundView setBackgroundColor:LINPHONE_TABLE_CELL_BACKGROUND_COLOR]; } NSString* key = [[dataList allKeys] objectAtIndex:[indexPath row]]; [cell.textLabel setText:[dataList objectForKey:key]]; diff --git a/Classes/ContactDetailsLabelViewController.xib b/Classes/ContactDetailsLabelViewController.xib index 443013919..c3e832ab4 100644 --- a/Classes/ContactDetailsLabelViewController.xib +++ b/Classes/ContactDetailsLabelViewController.xib @@ -2,10 +2,10 @@ 1296 - 11D50 + 11E53 2182 - 1138.32 - 568.00 + 1138.47 + 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin 1181 @@ -200,6 +200,7 @@ AAgACAAIAAEAAQABAAE 0.0 0.0 YES + NO 1 2 0 diff --git a/Classes/ContactDetailsTableViewController.m b/Classes/ContactDetailsTableViewController.m index 40f5c3f09..8efb57129 100644 --- a/Classes/ContactDetailsTableViewController.m +++ b/Classes/ContactDetailsTableViewController.m @@ -21,6 +21,8 @@ #import "PhoneMainView.h" #import "UIEditableTableViewCell.h" #import "UIView+ModalStack.h" +#import "UACellBackgroundView.h" +#import "UILinphone.h" @interface Entry : NSObject @@ -104,6 +106,11 @@ #pragma mark - ViewController Functions +- (void)viewDidLoad { + [super viewDidLoad]; + [self.tableView setBackgroundColor:[UIColor clearColor]]; // Can't do it in Xib: issue with ios4 +} + - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self loadData]; @@ -128,7 +135,8 @@ contact = nil; } -#pragma mark - + +#pragma mark - + (BOOL)findAndResignFirstResponder:(UIView*)view { if (view.isFirstResponder) { @@ -419,6 +427,14 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf UIEditableTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; if (cell == nil) { cell = [[[UIEditableTableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:kCellId] autorelease]; + [cell.detailTextField setDelegate:self]; + [cell.detailTextField setAutocapitalizationType:UITextAutocapitalizationTypeNone]; + [cell.detailTextField setAutocorrectionType:UITextAutocorrectionTypeNo]; + + // Background View + UACellBackgroundView *selectedBackgroundView = [[[UACellBackgroundView alloc] initWithFrame:CGRectZero] autorelease]; + cell.selectedBackgroundView = selectedBackgroundView; + [selectedBackgroundView setBackgroundColor:LINPHONE_TABLE_CELL_BACKGROUND_COLOR]; } NSMutableArray *sectionDict = [dataCache objectAtIndex:[indexPath section]]; @@ -449,16 +465,15 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf CFRelease(lDict); CFRelease(lMap); } - + [cell.textLabel setText:label]; [cell.detailTextLabel setText:value]; [cell.detailTextField setText:value]; - [cell.detailTextField setDelegate:self]; if ([indexPath section] == 0) { [cell.detailTextField setKeyboardType:UIKeyboardTypePhonePad]; [cell.detailTextField setPlaceholder:@"Phone number"]; } else { - [cell.detailTextField setKeyboardType:UIKeyboardTypeEmailAddress]; + [cell.detailTextField setKeyboardType:UIKeyboardTypeASCIICapable]; [cell.detailTextField setPlaceholder:@"SIP address"]; } diff --git a/Classes/ContactDetailsViewController.h b/Classes/ContactDetailsViewController.h index 853bf28a3..5f4a8e454 100644 --- a/Classes/ContactDetailsViewController.h +++ b/Classes/ContactDetailsViewController.h @@ -28,13 +28,18 @@ ContactDetailsTableViewController *tableController; ABRecordRef contact; UIToggleButton *editButton; + UIButton *backButton; + UIButton *cancelButton; } @property (nonatomic, assign) ABRecordRef contact; @property (nonatomic, retain) IBOutlet ContactDetailsTableViewController *tableController; @property (nonatomic, retain) IBOutlet UIToggleButton *editButton; +@property (nonatomic, retain) IBOutlet UIButton *backButton; +@property (nonatomic, retain) IBOutlet UIButton *cancelButton; - (IBAction)onBackClick:(id)event; +- (IBAction)onCancelClick:(id)event; - (IBAction)onEditClick:(id)event; - (void)newContact; diff --git a/Classes/ContactDetailsViewController.m b/Classes/ContactDetailsViewController.m index 280fdd6d1..f00b1c3dc 100644 --- a/Classes/ContactDetailsViewController.m +++ b/Classes/ContactDetailsViewController.m @@ -25,6 +25,8 @@ @synthesize tableController; @synthesize contact; @synthesize editButton; +@synthesize backButton; +@synthesize cancelButton; #pragma mark - Lifecycle Functions @@ -35,8 +37,13 @@ } - (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; [tableController release]; + [editButton release]; + [backButton release]; + [cancelButton release]; + [super dealloc]; } @@ -45,32 +52,28 @@ - (void)newContact { [tableController newContact]; - [tableController setEditing:TRUE animated:FALSE]; + [self enableEdit:FALSE]; [[tableController tableView] reloadData]; - [editButton setOn]; } - (void)newContact:(NSString*)address { [tableController newContact]; [tableController addSipField:address]; - [tableController setEditing:TRUE animated:FALSE]; + [self enableEdit:FALSE]; [[tableController tableView] reloadData]; - [editButton setOn]; } - (void)editContact:(ABRecordRef)acontact { [self setContact:acontact]; - [tableController setEditing:TRUE animated:FALSE]; + [self enableEdit:FALSE]; [[tableController tableView] reloadData]; - [editButton setOn]; } - (void)editContact:(ABRecordRef)acontact address:(NSString*)address { [self setContact:acontact]; [tableController addSipField:address]; - [tableController setEditing:TRUE animated:FALSE]; + [self enableEdit:FALSE]; [[tableController tableView] reloadData]; - [editButton setOn]; } #pragma mark - Property Functions @@ -78,6 +81,7 @@ - (void)setContact:(ABRecordRef)acontact { self->contact = acontact; [tableController setContactID:ABRecordGetRecordID(acontact)]; + [self disableEdit:FALSE]; } @@ -94,7 +98,6 @@ [tableController->footerController->removeButton addTarget:self action:@selector(onRemove:) forControlEvents:UIControlEventTouchUpInside]; - [[tableController tableView] setBackgroundColor:[UIColor clearColor]]; // Can't do it in Xib: issue with ios4 } - (void)viewDidUnload { @@ -109,11 +112,8 @@ if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { [tableController viewWillDisappear:NO]; } - if([tableController isEditing]) { - [tableController setEditing:FALSE animated:FALSE]; - [tableController resetData]; - [editButton setOff]; - } + [self disableEdit:FALSE]; + [tableController resetData]; } - (void)viewWillAppear:(BOOL)animated { @@ -137,6 +137,7 @@ } } + #pragma mark - UICompositeViewDelegate Functions + (UICompositeViewDescription*) compositeViewDescription { @@ -151,34 +152,54 @@ } +- (void)enableEdit:(BOOL)animated { + if(![tableController isEditing]) { + if(animated) + [[tableController tableView] beginUpdates]; + [tableController setEditing:TRUE animated:animated]; + if(animated) + [[tableController tableView] endUpdates]; + } + [editButton setOn]; + [cancelButton setHidden:FALSE]; + [backButton setHidden:TRUE]; +} + +- (void)disableEdit:(BOOL)animated { + if([tableController isEditing]) { + [tableController setEditing:FALSE animated:animated]; + } + [editButton setOff]; + [cancelButton setHidden:TRUE]; + [backButton setHidden:FALSE]; +} + #pragma mark - Action Functions -- (IBAction)onBackClick:(id)event { - if([tableController isEditing]) { - [tableController setEditing:FALSE animated:FALSE]; - [tableController resetData]; - [editButton setOff]; - if([tableController contactID] == kABRecordInvalidID) { - [[PhoneMainView instance] popView]; - } - } else { +- (IBAction)onCancelClick:(id)event { + [self disableEdit:FALSE]; + [tableController resetData]; + if([tableController contactID] == kABRecordInvalidID) { [[PhoneMainView instance] popView]; } } +- (IBAction)onBackClick:(id)event { + [[PhoneMainView instance] popView]; +} + - (IBAction)onEditClick:(id)event { - [[tableController tableView] beginUpdates]; - [tableController setEditing:![tableController isEditing] animated:TRUE]; - [[tableController tableView] endUpdates]; - if(![tableController isEditing]) { + if([tableController isEditing]) { + [self disableEdit:TRUE]; [tableController saveData]; + } else { + [self enableEdit:TRUE]; } } -- (IBAction)onRemove:(id)event { - [tableController setEditing:FALSE animated:FALSE]; +- (void)onRemove:(id)event { + [self disableEdit:FALSE]; [tableController removeContact]; - [editButton setOff]; [[PhoneMainView instance] popView]; } diff --git a/Classes/ContactDetailsViewController.xib b/Classes/ContactDetailsViewController.xib index 192b39e41..aa51f1437 100644 --- a/Classes/ContactDetailsViewController.xib +++ b/Classes/ContactDetailsViewController.xib @@ -2,10 +2,10 @@ 1296 - 11D50 + 11E53 2182 - 1138.32 - 568.00 + 1138.47 + 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin 1181 @@ -47,7 +47,7 @@ {160, 58} - + _NS:9 NO @@ -79,6 +79,34 @@ 16 + + + -2147483356 + {160, 58} + + + + _NS:9 + NO + + Add contact + + IBCocoaTouchFramework + 0 + 0 + NO + + + NSImage + contact_cancel_over.png + + + NSImage + contact_cancel_default.png + + + + 292 @@ -132,6 +160,7 @@ {{0, 59}, {320, 401}} + _NS:9 10 @@ -212,6 +241,7 @@ AAgACAAIAAEAAQABAAE {{0, 20}, {320, 460}} + IBCocoaTouchFramework @@ -252,6 +282,22 @@ AAgACAAIAAEAAQABAAE 31 + + + backButton + + + + 50 + + + + cancelButton + + + + 51 + onEditClick: @@ -294,6 +340,15 @@ AAgACAAIAAEAAQABAAE 26 + + + onCancelClick: + + + 7 + + 49 + @@ -329,9 +384,10 @@ AAgACAAIAAEAAQABAAE + - header + toolBar 8 @@ -358,6 +414,12 @@ AAgACAAIAAEAAQABAAE tableController + + 47 + + + cancelButton + @@ -366,10 +428,13 @@ AAgACAAIAAEAAQABAAE UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + TPKeyboardAvoidingTableView com.apple.InterfaceBuilder.IBCocoaTouchPlugin ContactDetailsTableViewController com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIToggleButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -380,7 +445,7 @@ AAgACAAIAAEAAQABAAE - 46 + 51 @@ -397,6 +462,7 @@ AAgACAAIAAEAAQABAAE UIViewController id + id id @@ -404,16 +470,30 @@ AAgACAAIAAEAAQABAAE onBackClick: id + + onCancelClick: + id + onEditClick: id + UIButton + UIButton UIToggleButton ContactDetailsTableViewController + + backButton + UIButton + + + cancelButton + UIButton + editButton UIToggleButton @@ -428,6 +508,14 @@ AAgACAAIAAEAAQABAAE ./Classes/ContactDetailsViewController.h + + TPKeyboardAvoidingTableView + UITableView + + IBProjectSource + ./Classes/TPKeyboardAvoidingTableView.h + + UIToggleButton UIButton @@ -449,6 +537,8 @@ AAgACAAIAAEAAQABAAE {320, 117} {320, 117} + {320, 117} + {320, 117} {320, 117} {320, 117} {320, 117} diff --git a/Classes/ContactsTableViewController.m b/Classes/ContactsTableViewController.m index b422153f6..a40e80853 100644 --- a/Classes/ContactsTableViewController.m +++ b/Classes/ContactsTableViewController.m @@ -21,6 +21,8 @@ #import "UIContactCell.h" #import "LinphoneManager.h" #import "PhoneMainView.h" +#import "UACellBackgroundView.h" +#import "UILinphone.h" @implementation ContactsTableViewController @@ -169,6 +171,10 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf UIContactCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; if (cell == nil) { cell = [[[UIContactCell alloc] initWithIdentifier:kCellId] autorelease]; + // Background View + UACellBackgroundView *selectedBackgroundView = [[[UACellBackgroundView alloc] initWithFrame:CGRectZero] autorelease]; + cell.selectedBackgroundView = selectedBackgroundView; + [selectedBackgroundView setBackgroundColor:LINPHONE_TABLE_CELL_BACKGROUND_COLOR]; } OrderedDictionary *subDic = [addressBookMap objectForKey: [addressBookMap keyAtIndex: [indexPath section]]]; diff --git a/Classes/HistoryTableViewController.m b/Classes/HistoryTableViewController.m index d4e280a3f..4dff3398e 100644 --- a/Classes/HistoryTableViewController.m +++ b/Classes/HistoryTableViewController.m @@ -21,6 +21,8 @@ #import "UIHistoryCell.h" #import "LinphoneManager.h" #import "PhoneMainView.h" +#import "UACellBackgroundView.h" +#import "UILinphone.h" @implementation HistoryTableViewController @@ -95,6 +97,10 @@ UIHistoryCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; if (cell == nil) { cell = [[[UIHistoryCell alloc] initWithIdentifier:kCellId] autorelease]; + // Background View + UACellBackgroundView *selectedBackgroundView = [[[UACellBackgroundView alloc] initWithFrame:CGRectZero] autorelease]; + cell.selectedBackgroundView = selectedBackgroundView; + [selectedBackgroundView setBackgroundColor:LINPHONE_TABLE_CELL_BACKGROUND_COLOR]; } LinphoneCallLog *log = [[callLogs objectAtIndex:[indexPath row]] pointerValue]; diff --git a/Classes/InCallViewController.m b/Classes/InCallViewController.m index f55b992aa..34cecf468 100644 --- a/Classes/InCallViewController.m +++ b/Classes/InCallViewController.m @@ -180,7 +180,6 @@ const NSInteger SECURE_BUTTON_TAG=5; #pragma mark - - - (void)callUpdate:(LinphoneCall *)call state:(LinphoneCallState) state { // Update table [callTableView reloadData]; @@ -373,66 +372,6 @@ const NSInteger SECURE_BUTTON_TAG=5; [[PhoneMainView instance] fullScreen:false]; } -- (void)transferPressed { - /* allow only if call is active */ - if (!linphone_core_get_current_call([LinphoneManager getLc])) - return; - - /* build UIActionSheet */ - if (visibleActionSheet != nil) { - [visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:TRUE]; - } - - CallDelegate* cd = [[CallDelegate alloc] init]; - cd.eventType = CD_TRANSFER_CALL; - cd.delegate = self; - cd.call = linphone_core_get_current_call([LinphoneManager getLc]); - NSString* title = NSLocalizedString(@"Transfer to ...",nil); - visibleActionSheet = [[UIActionSheet alloc] initWithTitle:title - delegate:cd - cancelButtonTitle:nil - destructiveButtonTitle:nil // NSLocalizedString(@"Other...",nil) - otherButtonTitles:nil]; - - // add button for each trasnfer-to valid call - const MSList* calls = linphone_core_get_calls([LinphoneManager getLc]); - while (calls) { - LinphoneCall* call = (LinphoneCall*) calls->data; - LinphoneCallAppData* data = ((LinphoneCallAppData*)linphone_call_get_user_pointer(call)); - if (call != cd.call && !linphone_call_get_current_params(call)->in_conference) { - const LinphoneAddress* addr = linphone_call_get_remote_address(call); - NSString* btnTitle = [NSString stringWithFormat : NSLocalizedString(@"%s",nil), (linphone_address_get_display_name(addr) ?linphone_address_get_display_name(addr):linphone_address_get_username(addr))]; - data->transferButtonIndex = [visibleActionSheet addButtonWithTitle:btnTitle]; - } else { - data->transferButtonIndex = -1; - } - calls = calls->next; - } - - if (visibleActionSheet.numberOfButtons == 0) { - [visibleActionSheet release]; - visibleActionSheet = nil; - - //TODO - /*[UICallButton enableTransforMode:YES];*/ - [[PhoneMainView instance] changeView:PhoneView_Dialer]; - } else { - // add 'Other' option - [visibleActionSheet addButtonWithTitle:NSLocalizedString(@"Other...",nil)]; - - // add cancel button on iphone - if (![LinphoneManager runningOnIpad]) { - [visibleActionSheet addButtonWithTitle:NSLocalizedString(@"Cancel",nil)]; - } - - visibleActionSheet.actionSheetStyle = UIActionSheetStyleDefault; - if ([LinphoneManager runningOnIpad]) { - //[visibleActionSheet showFromRect:transfer.bounds inView:transfer animated:NO]; - } else - [visibleActionSheet showInView:[[UIApplication sharedApplication].delegate window]]; - } -} - - (void)displayVideoCall { [self enableVideoDisplay: TRUE]; } @@ -534,31 +473,6 @@ static void hideSpinner(LinphoneCall* call, void* user_data) { visibleActionSheet = nil; break; } - case CD_TRANSFER_CALL: { - LinphoneCall* call = (LinphoneCall*)datas; - // browse existing call and trasnfer to the one matching the btn id - const MSList* calls = linphone_core_get_calls([LinphoneManager getLc]); - while (calls) { - LinphoneCall* call2 = (LinphoneCall*) calls->data; - LinphoneCallAppData* data = ((LinphoneCallAppData*)linphone_call_get_user_pointer(call2)); - if (data->transferButtonIndex == buttonIndex) { - linphone_core_transfer_call_to_another([LinphoneManager getLc], call, call2); - return; - } - data->transferButtonIndex = -1; - calls = calls->next; - } - if (![LinphoneManager runningOnIpad] && buttonIndex == (actionSheet.numberOfButtons - 1)) { - // cancel button - return; - } - // user must jhave pressed 'other...' button as we did not find a call - // with the correct indice - //TODO - //[UICallButton enableTransforMode:YES]; - [[PhoneMainView instance] changeView:PhoneView_Dialer]; - break; - } default: ms_error("Unhandled CallDelegate event of type: %d received - ignoring", type); } diff --git a/Classes/LinphoneUI/UICallBar.h b/Classes/LinphoneUI/UICallBar.h index ac8019936..e00398c5f 100644 --- a/Classes/LinphoneUI/UICallBar.h +++ b/Classes/LinphoneUI/UICallBar.h @@ -32,12 +32,13 @@ UIVideoButton* videoButton; UIMicroButton* microButton; UISpeakerButton* speakerButton; - UIButton* optionsButton; + UIToggleButton* optionsButton; UIHangUpButton* hangupButton; UIView* padView; UIView* optionsView; UIButton* optionsAddButton; UIButton* optionsTransferButton; + UIToggleButton* dialerButton; //Key pad UIDigitButton* oneButton; @@ -59,13 +60,14 @@ @property (nonatomic, retain) IBOutlet UIVideoButton* videoButton; @property (nonatomic, retain) IBOutlet UIMicroButton* microButton; @property (nonatomic, retain) IBOutlet UISpeakerButton* speakerButton; -@property (nonatomic, retain) IBOutlet UIButton* optionsButton; +@property (nonatomic, retain) IBOutlet UIToggleButton* optionsButton; @property (nonatomic, retain) IBOutlet UIHangUpButton* hangupButton; @property (nonatomic, retain) IBOutlet UIView* padView; @property (nonatomic, retain) IBOutlet UIView* optionsView; @property (nonatomic, retain) IBOutlet UIButton* optionsAddButton; @property (nonatomic, retain) IBOutlet UIButton* optionsTransferButton; +@property (nonatomic, retain) IBOutlet UIToggleButton* dialerButton; @property (nonatomic, retain) IBOutlet UIButton* oneButton; @property (nonatomic, retain) IBOutlet UIButton* twoButton; diff --git a/Classes/LinphoneUI/UICallBar.m b/Classes/LinphoneUI/UICallBar.m index d60e846a9..42a9319c5 100644 --- a/Classes/LinphoneUI/UICallBar.m +++ b/Classes/LinphoneUI/UICallBar.m @@ -39,6 +39,7 @@ @synthesize optionsAddButton; @synthesize optionsTransferButton; +@synthesize dialerButton; @synthesize padView; @synthesize optionsView; @@ -73,6 +74,7 @@ [optionsAddButton release]; [optionsTransferButton release]; + [dialerButton release]; [oneButton release]; [twoButton release]; @@ -156,6 +158,10 @@ // Set selected+over background: IB lack ! [optionsButton setImage:[UIImage imageNamed:@"options_over.png"] forState:(UIControlStateHighlighted | UIControlStateSelected)]; + + // Set selected+over background: IB lack ! + [dialerButton setImage:[UIImage imageNamed:@"dialer_alt_back_over.png"] + forState:(UIControlStateHighlighted | UIControlStateSelected)]; } - (void)viewWillAppear:(BOOL)animated { @@ -245,6 +251,7 @@ #pragma mark - - (void)showPad{ + [dialerButton setOn]; if([padView isHidden]) { CGRect frame = [padView frame]; int original_y = frame.origin.y; @@ -267,6 +274,7 @@ } - (void)hidePad{ + [dialerButton setOff]; if(![padView isHidden]) { CGRect frame = [padView frame]; int original_y = frame.origin.y; @@ -294,7 +302,7 @@ } - (void)showOptions{ - [optionsButton setSelected:TRUE]; + [optionsButton setOn]; if([optionsView isHidden]) { CGRect frame = [optionsView frame]; int original_y = frame.origin.y; @@ -317,7 +325,7 @@ } - (void)hideOptions{ - [optionsButton setSelected:FALSE]; + [optionsButton setOff]; if(![optionsView isHidden]) { CGRect frame = [optionsView frame]; int original_y = frame.origin.y; diff --git a/Classes/LinphoneUI/UICallBar.xib b/Classes/LinphoneUI/UICallBar.xib index ed272ddb2..71d94f926 100644 --- a/Classes/LinphoneUI/UICallBar.xib +++ b/Classes/LinphoneUI/UICallBar.xib @@ -2,10 +2,10 @@ 1296 - 11D50 + 11E53 2182 - 1138.32 - 568.00 + 1138.47 + 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin 1181 @@ -738,6 +738,10 @@ NSImage dialer_alt_over.png + + NSImage + dialer_alt_back_default.png + NSImage dialer_alt_default.png @@ -1261,6 +1265,7 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIToggleButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIMicroButton @@ -1277,8 +1282,9 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIToggleButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin - + UIDigitButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -1372,6 +1378,7 @@ UIButton + UIButton UIButton UIButton UIButton @@ -1400,6 +1407,10 @@ conferenceButton UIButton + + dialerButton + UIButton + eightButton UIButton @@ -1601,6 +1612,7 @@ {209, 136} {209, 136} + {209, 136} {209, 136} {209, 136} {222, 136} diff --git a/Classes/LinphoneUI/UIChatCell.xib b/Classes/LinphoneUI/UIChatCell.xib index dda98e6a6..d64d8a989 100644 --- a/Classes/LinphoneUI/UIChatCell.xib +++ b/Classes/LinphoneUI/UIChatCell.xib @@ -42,6 +42,7 @@ 292 {{10, 8}, {27, 27}} + _NS:9 NO @@ -56,6 +57,7 @@ 274 {{45, 0}, {60, 44}} + _NS:328 NO @@ -91,6 +93,7 @@ 274 {{110, 0}, {170, 44}} + _NS:328 NO @@ -123,6 +126,7 @@ 292 {{276, 0}, {44, 44}} + _NS:9 NO @@ -161,7 +165,7 @@ 292 {{276, 0}, {44, 44}} - + _NS:9 NO IBCocoaTouchFramework @@ -187,39 +191,15 @@ {320, 44} + _NS:9 - + 3 MCAwAA IBCocoaTouchFramework - - - 292 - {320, 44} - - - _NS:9 - NO - IBCocoaTouchFramework - - NSImage - list_highlight.png - - - - - 292 - {320, 44} - - - _NS:9 - - NO - IBCocoaTouchFramework - @@ -239,22 +219,6 @@ 24 - - - backgroundView - - - - 28 - - - - selectedBackgroundView - - - - 29 - avatarImage @@ -353,18 +317,6 @@ chatContentLabel - - 26 - - - selectedBackground - - - 27 - - - background - 32 @@ -385,8 +337,6 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -397,7 +347,61 @@ 37 - + + + + UIChatCell + UITableViewCell + + id + id + + + + onDeleteClick: + id + + + onDetailsClick: + id + + + + UIImageView + UILabel + UIButton + UIButton + UILabel + + + + avatarImage + UIImageView + + + chatContentLabel + UILabel + + + deleteButton + UIButton + + + detailsButton + UIButton + + + displayNameLabel + UILabel + + + + IBProjectSource + ./Classes/UIChatCell.h + + + + 0 IBCocoaTouchFramework @@ -412,7 +416,6 @@ {45, 45} {45, 45} {45, 45} - {640, 88} 1181 diff --git a/Classes/LinphoneUI/UIContactCell.m b/Classes/LinphoneUI/UIContactCell.m index 24a9af109..624db9c53 100644 --- a/Classes/LinphoneUI/UIContactCell.m +++ b/Classes/LinphoneUI/UIContactCell.m @@ -125,4 +125,19 @@ [lastNameLabel setFrame: lastNameFrame]; } +- (void)setHighlighted:(BOOL)highlighted { + [self setHighlighted:highlighted animated:FALSE]; +} + +- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { + [super setHighlighted:highlighted animated:animated]; + if(highlighted) { + [lastNameLabel setTextColor:[UIColor whiteColor]]; + [firstNameLabel setTextColor:[UIColor whiteColor]]; + } else { + [lastNameLabel setTextColor:[UIColor blackColor]]; + [firstNameLabel setTextColor:[UIColor blackColor]]; + } +} + @end diff --git a/Classes/LinphoneUI/UIContactCell.xib b/Classes/LinphoneUI/UIContactCell.xib index 0b696c528..3a2893e5d 100644 --- a/Classes/LinphoneUI/UIContactCell.xib +++ b/Classes/LinphoneUI/UIContactCell.xib @@ -41,6 +41,7 @@ 292 {{6, 6}, {32, 32}} + _NS:9 NO @@ -51,6 +52,7 @@ 274 {{46, 0}, {55, 44}} + _NS:328 NO @@ -63,10 +65,6 @@ IBCocoaTouchFramework John - - 1 - MCAwIDAAA - 1 10 @@ -86,7 +84,7 @@ 274 {{111, 0}, {200, 44}} - + _NS:328 NO YES @@ -98,7 +96,6 @@ IBCocoaTouchFramework Doe - 1 10 @@ -116,39 +113,15 @@ {320, 44} + _NS:9 - + 3 MCAwAA IBCocoaTouchFramework - - - 292 - {320, 44} - - - _NS:9 - NO - IBCocoaTouchFramework - - NSImage - list_highlight.png - - - - - 292 - {320, 44} - - - _NS:9 - - NO - IBCocoaTouchFramework - @@ -168,22 +141,6 @@ 18 - - - selectedBackgroundView - - - - 20 - - - - backgroundView - - - - 22 - avatarImage @@ -234,18 +191,6 @@ lastName - - 19 - - - selectedBackground - - - 21 - - - background - 23 @@ -261,8 +206,6 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -272,7 +215,37 @@ 24 - + + + + UIContactCell + UITableViewCell + + UIImageView + UILabel + UILabel + + + + avatarImage + UIImageView + + + firstNameLabel + UILabel + + + lastNameLabel + UILabel + + + + IBProjectSource + ./Classes/UIContactCell.h + + + + 0 IBCocoaTouchFramework @@ -281,10 +254,6 @@ YES 3 - - list_highlight.png - {640, 88} - 1181 diff --git a/Classes/LinphoneUI/UIHistoryCell.xib b/Classes/LinphoneUI/UIHistoryCell.xib index 4a1efe211..cfca19597 100644 --- a/Classes/LinphoneUI/UIHistoryCell.xib +++ b/Classes/LinphoneUI/UIHistoryCell.xib @@ -129,7 +129,6 @@ {{276, 0}, {44, 44}} - _NS:9 NO IBCocoaTouchFramework @@ -158,39 +157,12 @@ _NS:9 - + 3 MCAwAA IBCocoaTouchFramework - - - 292 - {320, 44} - - - - _NS:9 - NO - IBCocoaTouchFramework - - NSImage - list_highlight.png - - - - - 292 - {320, 44} - - - - _NS:9 - - NO - IBCocoaTouchFramework - @@ -226,22 +198,6 @@ 17 - - - selectedBackgroundView - - - - 22 - - - - backgroundView - - - - 24 - onDetails: @@ -315,18 +271,6 @@ deleteButton - - 21 - - - selectedBackground - - - 23 - - - background - @@ -338,8 +282,6 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -415,7 +357,6 @@ {45, 45} {45, 45} {45, 45} - {640, 88} 1181 diff --git a/Classes/LinphoneUI/UILinphone.h b/Classes/LinphoneUI/UILinphone.h new file mode 100644 index 000000000..42fc6c2ba --- /dev/null +++ b/Classes/LinphoneUI/UILinphone.h @@ -0,0 +1,25 @@ +/* UILinphone.h + * + * Copyright (C) 2012 Belledonne Comunications, Grenoble, France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef UILINPHONE_H +#define UILINPHONE_H + +#define LINPHONE_TABLE_CELL_BACKGROUND_COLOR [UIColor colorWithRed:207.0f/255.0f green:76.0f/255.0f blue:41.0f/255.0f alpha:1.0f] + +#endif diff --git a/Classes/LinphoneUI/UIMainBar.h b/Classes/LinphoneUI/UIMainBar.h index efb58843e..783a29074 100644 --- a/Classes/LinphoneUI/UIMainBar.h +++ b/Classes/LinphoneUI/UIMainBar.h @@ -25,6 +25,8 @@ UIButton *dialerButton; UIButton *settingsButton; UIButton *chatButton; + UIView *historyNotificationView; + UILabel *historyNotificationLabel; } @property (nonatomic, retain) IBOutlet UIButton* historyButton; @@ -32,9 +34,13 @@ @property (nonatomic, retain) IBOutlet UIButton* dialerButton; @property (nonatomic, retain) IBOutlet UIButton* settingsButton; @property (nonatomic, retain) IBOutlet UIButton* chatButton; +@property (nonatomic, retain) IBOutlet UIView *historyNotificationView; +@property (nonatomic, retain) IBOutlet UILabel *historyNotificationLabel; + -(IBAction) onHistoryClick: (id) event; -(IBAction) onContactsClick: (id) event; -(IBAction) onDialerClick: (id) event; -(IBAction) onSettingsClick: (id) event; -(IBAction) onChatClick: (id) event; + @end diff --git a/Classes/LinphoneUI/UIMainBar.m b/Classes/LinphoneUI/UIMainBar.m index 8c498efd1..f7cd3c63e 100644 --- a/Classes/LinphoneUI/UIMainBar.m +++ b/Classes/LinphoneUI/UIMainBar.m @@ -27,7 +27,8 @@ @synthesize dialerButton; @synthesize settingsButton; @synthesize chatButton; - +@synthesize historyNotificationView; +@synthesize historyNotificationLabel; #pragma mark - Lifecycle Functions @@ -43,6 +44,8 @@ [dialerButton release]; [settingsButton release]; [chatButton release]; + [historyNotificationView release]; + [historyNotificationLabel release]; [super dealloc]; } @@ -57,7 +60,16 @@ selector:@selector(changeViewEvent:) name:@"LinphoneMainViewChange" object:nil]; - [self update:[[PhoneMainView instance] currentView]]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(callUpdate:) + name:@"LinphoneCallUpdate" + object:nil]; + [self updateView:[[PhoneMainView instance] currentView]]; + if([LinphoneManager isLcReady]) { + [self updateMissed:linphone_core_get_missed_calls_count([LinphoneManager getLc])]; + } else { + [self updateMissed:0]; + } } - (void)viewWillDisappear:(BOOL)animated { @@ -66,21 +78,83 @@ [[NSNotificationCenter defaultCenter] removeObserver:self name:@"LinphoneMainViewChange" object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self + name:@"LinphoneCallUpdate" + object:nil]; } #pragma mark - Event Functions +- (void)callUpdate: (NSNotification*) notif { + //LinphoneCall *call = [[notif.userInfo objectForKey: @"call"] pointerValue]; + //LinphoneCallState state = [[notif.userInfo objectForKey: @"state"] intValue]; + [self updateMissed:linphone_core_get_missed_calls_count([LinphoneManager getLc])]; +} + - (void)changeViewEvent: (NSNotification*) notif { NSNumber *viewNumber = [notif.userInfo objectForKey: @"view"]; if(viewNumber != nil) - [self update:[viewNumber intValue]]; + [self updateView:[viewNumber intValue]]; } #pragma mark - -- (void)update:(PhoneView) view { +- (void)updateMissed:(int)missedCall { + if (missedCall > 0) { + if([historyNotificationView isHidden]) { + historyNotificationView.transform = CGAffineTransformIdentity; + [self startShakeAnimation:@"Shake" target:historyNotificationView]; + [historyNotificationView setHidden:FALSE]; + } + [historyNotificationLabel setText:[NSString stringWithFormat:@"%i", missedCall]]; + } else { + if(![historyNotificationView isHidden]) { + [self stopShakeAnimation:@"Shake" target:historyNotificationView]; + CGAffineTransform startCGA = [historyNotificationView transform]; + [UIView animateWithDuration:0.4 + delay:0 + options:UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction + animations:^{ + historyNotificationView.transform = CGAffineTransformConcat(startCGA, CGAffineTransformMakeScale(0.01f, 0.01f)); + } + completion:^(BOOL finished){ + [historyNotificationView setHidden:TRUE]; + } + ]; + } + } +} + +- (void)startShakeAnimation:(NSString *)animationID target:(UIView *)target { + [target setTransform:CGAffineTransformMakeTranslation(0, -4)]; + [UIView animateWithDuration: 0.3 + delay: 0 + options: UIViewAnimationOptionRepeat | + UIViewAnimationOptionAutoreverse | + UIViewAnimationOptionAllowUserInteraction | + UIViewAnimationOptionCurveEaseIn + animations:^{ + [target setTransform:CGAffineTransformMakeTranslation(0, 4)]; + } + completion:^(BOOL finished){ + }]; + +} + +- (void)stopShakeAnimation:(NSString *)animationID target:(UIView *)target { + [target.layer removeAnimationForKey:animationID]; +} + +- (void)updateView:(PhoneView) view { + // Reset missed call + if(view == PhoneView_History) { + linphone_core_reset_missed_calls_count([LinphoneManager getLc]); + [self updateMissed:0]; + } + + // Update buttons if(view == PhoneView_History) { historyButton.selected = TRUE; } else { diff --git a/Classes/LinphoneUI/UIMainBar.xib b/Classes/LinphoneUI/UIMainBar.xib index fa4fa09b3..a861b8642 100644 --- a/Classes/LinphoneUI/UIMainBar.xib +++ b/Classes/LinphoneUI/UIMainBar.xib @@ -11,9 +11,11 @@ 1181 - IBProxyObject - IBUIView IBUIButton + IBUIImageView + IBUIView + IBUILabel + IBProxyObject com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -41,7 +43,7 @@ {{0, 11}, {320, 66}} - + _NS:9 1 @@ -96,6 +98,71 @@ 16 + + + -2147483356 + + + + 274 + {21, 21} + + + + _NS:9 + NO + IBCocoaTouchFramework + + NSImage + history_notification.png + + + + + 292 + {21, 21} + + + + _NS:9 + NO + YES + 7 + NO + IBCocoaTouchFramework + 99 + + 3 + MQA + + + 0 + 10 + 1 + + 1 + 14 + + + Helvetica + 14 + 16 + + + + {{38, 5}, {21, 21}} + + + + _NS:9 + + 3 + MCAwAA + + NO + NO + IBCocoaTouchFramework + 292 @@ -198,7 +265,6 @@ {{256, 0}, {64, 77}} - _NS:9 NO @@ -288,6 +354,22 @@ 12 + + + historyNotificationLabel + + + + 35 + + + + historyNotificationView + + + + 36 + onChatClick: @@ -363,6 +445,7 @@ + mainTabBar @@ -404,6 +487,28 @@ dialer + + 32 + + + + + + + historyNotificationView + + + 33 + + + historyNotificationImage + + + 34 + + + historyNotificationLabel + @@ -413,6 +518,9 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -429,7 +537,7 @@ - 29 + 36 @@ -470,6 +578,8 @@ UIButton UIButton UIButton + UILabel + UIView UIButton @@ -489,6 +599,14 @@ historyButton UIButton + + historyNotificationLabel + UILabel + + + historyNotificationView + UIView + settingsButton UIButton @@ -520,6 +638,7 @@ {128, 154} {128, 154} {128, 154} + {43, 43} {128, 154} {128, 154} {128, 154} diff --git a/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h new file mode 100755 index 000000000..262c841c6 --- /dev/null +++ b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h @@ -0,0 +1,17 @@ +// +// TPKeyboardAvoidingScrollView.h +// +// Created by Michael Tyson on 11/04/2011. +// Copyright 2011 A Tasty Pixel. All rights reserved. +// + +@interface TPKeyboardAvoidingScrollView : UIScrollView { + UIEdgeInsets _priorInset; + BOOL _priorInsetSaved; + BOOL _keyboardVisible; + CGRect _keyboardRect; + CGSize _originalContentSize; +} + +- (void)adjustOffsetToIdealIfNeeded; +@end diff --git a/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.m b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.m new file mode 100755 index 000000000..ee0372065 --- /dev/null +++ b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.m @@ -0,0 +1,186 @@ +// +// TPKeyboardAvoidingScrollView.m +// +// Created by Michael Tyson on 11/04/2011. +// Copyright 2011 A Tasty Pixel. All rights reserved. +// + +#import "TPKeyboardAvoidingScrollView.h" + +#define _UIKeyboardFrameEndUserInfoKey (&UIKeyboardFrameEndUserInfoKey != NULL ? UIKeyboardFrameEndUserInfoKey : @"UIKeyboardBoundsUserInfoKey") + +@interface TPKeyboardAvoidingScrollView () +- (UIView*)findFirstResponderBeneathView:(UIView*)view; +- (UIEdgeInsets)contentInsetForKeyboard; +- (CGFloat)idealOffsetForView:(UIView *)view withSpace:(CGFloat)space; +- (CGRect)keyboardRect; +@end + +@implementation TPKeyboardAvoidingScrollView + +- (void)setup { + _priorInsetSaved = NO; + if ( CGSizeEqualToSize(self.contentSize, CGSizeZero) ) { + self.contentSize = self.bounds.size; + } + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; +} + +-(id)initWithFrame:(CGRect)frame { + if ( !(self = [super initWithFrame:frame]) ) return nil; + [self setup]; + return self; +} + +-(void)awakeFromNib { + [self setup]; +} + +-(void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +#if !__has_feature(objc_arc) + [super dealloc]; +#endif +} + +-(void)setFrame:(CGRect)frame { + [super setFrame:frame]; + + CGSize contentSize = _originalContentSize; + contentSize.width = MAX(contentSize.width, self.frame.size.width); + contentSize.height = MAX(contentSize.height, self.frame.size.height); + [super setContentSize:contentSize]; + + if ( _keyboardVisible ) { + self.contentInset = [self contentInsetForKeyboard]; + } +} + +-(void)setContentSize:(CGSize)contentSize { + _originalContentSize = contentSize; + + contentSize.width = MAX(contentSize.width, self.frame.size.width); + contentSize.height = MAX(contentSize.height, self.frame.size.height); + [super setContentSize:contentSize]; + + if ( _keyboardVisible ) { + self.contentInset = [self contentInsetForKeyboard]; + } +} + +- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + [[self findFirstResponderBeneathView:self] resignFirstResponder]; + [super touchesEnded:touches withEvent:event]; +} + +- (void)keyboardWillShow:(NSNotification*)notification { + _keyboardRect = [[[notification userInfo] objectForKey:_UIKeyboardFrameEndUserInfoKey] CGRectValue]; + _keyboardVisible = YES; + + UIView *firstResponder = [self findFirstResponderBeneathView:self]; + if ( !firstResponder ) { + // No child view is the first responder - nothing to do here + return; + } + + if (!_priorInsetSaved) { + _priorInset = self.contentInset; + _priorInsetSaved = YES; + } + + // Shrink view's inset by the keyboard's height, and scroll to show the text field/view being edited + [UIView beginAnimations:nil context:NULL]; + [UIView setAnimationCurve:[[[notification userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]]; + [UIView setAnimationDuration:[[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]]; + + self.contentInset = [self contentInsetForKeyboard]; + [self setContentOffset:CGPointMake(self.contentOffset.x, + [self idealOffsetForView:firstResponder withSpace:[self keyboardRect].origin.y - self.bounds.origin.y]) + animated:YES]; + [self setScrollIndicatorInsets:self.contentInset]; + + [UIView commitAnimations]; +} + +- (void)keyboardWillHide:(NSNotification*)notification { + _keyboardRect = CGRectZero; + _keyboardVisible = NO; + + // Restore dimensions to prior size + [UIView beginAnimations:nil context:NULL]; + [UIView setAnimationCurve:[[[notification userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]]; + [UIView setAnimationDuration:[[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]]; + self.contentInset = _priorInset; + [self setScrollIndicatorInsets:self.contentInset]; + _priorInsetSaved = NO; + [UIView commitAnimations]; +} + +- (UIView*)findFirstResponderBeneathView:(UIView*)view { + // Search recursively for first responder + for ( UIView *childView in view.subviews ) { + if ( [childView respondsToSelector:@selector(isFirstResponder)] && [childView isFirstResponder] ) return childView; + UIView *result = [self findFirstResponderBeneathView:childView]; + if ( result ) return result; + } + return nil; +} + +- (UIEdgeInsets)contentInsetForKeyboard { + UIEdgeInsets newInset = self.contentInset; + CGRect keyboardRect = [self keyboardRect]; + newInset.bottom = keyboardRect.size.height - ((keyboardRect.origin.y+keyboardRect.size.height) - (self.bounds.origin.y+self.bounds.size.height)); + return newInset; +} + +-(CGFloat)idealOffsetForView:(UIView *)view withSpace:(CGFloat)space { + + // Convert the rect to get the view's distance from the top of the scrollView. + CGRect rect = [view convertRect:view.bounds toView:self]; + + // Set starting offset to that point + CGFloat offset = rect.origin.y; + + + if ( self.contentSize.height - offset < space ) { + // Scroll to the bottom + offset = self.contentSize.height - space; + } else { + if ( view.bounds.size.height < space ) { + // Center vertically if there's room + offset -= floor((space-view.bounds.size.height)/2.0); + } + if ( offset + space > self.contentSize.height ) { + // Clamp to content size + offset = self.contentSize.height - space; + } + } + + if (offset < 0) offset = 0; + + return offset; +} + +-(void)adjustOffsetToIdealIfNeeded { + + // Only do this if the keyboard is already visible + if ( !_keyboardVisible ) return; + + CGFloat visibleSpace = self.bounds.size.height - self.contentInset.top - self.contentInset.bottom; + + CGPoint idealOffset = CGPointMake(0, [self idealOffsetForView:[self findFirstResponderBeneathView:self] withSpace:visibleSpace]); + + [self setContentOffset:idealOffset animated:YES]; +} + +- (CGRect)keyboardRect { + CGRect keyboardRect = [self convertRect:_keyboardRect fromView:nil]; + if ( keyboardRect.origin.y == 0 ) { + CGRect screenBounds = [self convertRect:[UIScreen mainScreen].bounds fromView:nil]; + keyboardRect.origin = CGPointMake(0, screenBounds.size.height - keyboardRect.size.height); + } + return keyboardRect; +} + +@end diff --git a/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h new file mode 100755 index 000000000..7485c6005 --- /dev/null +++ b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h @@ -0,0 +1,16 @@ +// +// TPKeyboardAvoidingTableView.h +// +// Created by Michael Tyson on 11/04/2011. +// Copyright 2011 A Tasty Pixel. All rights reserved. +// + +@interface TPKeyboardAvoidingTableView : UITableView { + UIEdgeInsets _priorInset; + BOOL _priorInsetSaved; + BOOL _keyboardVisible; + CGRect _keyboardRect; +} + +- (void)adjustOffsetToIdealIfNeeded; +@end diff --git a/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.m b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.m new file mode 100755 index 000000000..9eea88c74 --- /dev/null +++ b/Classes/Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.m @@ -0,0 +1,173 @@ +// +// TPKeyboardAvoidingTableView.m +// +// Created by Michael Tyson on 11/04/2011. +// Copyright 2011 A Tasty Pixel. All rights reserved. +// + +#import "TPKeyboardAvoidingTableView.h" + +#define _UIKeyboardFrameEndUserInfoKey (&UIKeyboardFrameEndUserInfoKey != NULL ? UIKeyboardFrameEndUserInfoKey : @"UIKeyboardBoundsUserInfoKey") + +@interface TPKeyboardAvoidingTableView () +- (UIView*)findFirstResponderBeneathView:(UIView*)view; +- (UIEdgeInsets)contentInsetForKeyboard; +- (CGFloat)idealOffsetForView:(UIView *)view withSpace:(CGFloat)space; +- (CGRect)keyboardRect; +@end + +@implementation TPKeyboardAvoidingTableView + +- (void)setup { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; +} + +-(id)initWithFrame:(CGRect)frame { + if ( !(self = [super initWithFrame:frame]) ) return nil; + [self setup]; + return self; +} + +-(id)initWithCoder:(NSCoder *)aDecoder { + if ( !(self = [super initWithCoder:aDecoder]) ) return nil; + [self setup]; + return self; +} + +-(void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +#if !__has_feature(objc_arc) + [super dealloc]; +#endif +} + +-(void)setFrame:(CGRect)frame { + [super setFrame:frame]; + if ( _keyboardVisible ) { + self.contentInset = [self contentInsetForKeyboard]; + } +} + +-(void)setContentSize:(CGSize)contentSize { + [super setContentSize:contentSize]; + if ( _keyboardVisible ) { + self.contentInset = [self contentInsetForKeyboard]; + } +} + +- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + [[self findFirstResponderBeneathView:self] resignFirstResponder]; + [super touchesEnded:touches withEvent:event]; +} + +- (void)keyboardWillShow:(NSNotification*)notification { + _keyboardRect = [[[notification userInfo] objectForKey:_UIKeyboardFrameEndUserInfoKey] CGRectValue]; + _keyboardVisible = YES; + + UIView *firstResponder = [self findFirstResponderBeneathView:self]; + if ( !firstResponder ) { + // No child view is the first responder - nothing to do here + return; + } + + if (!_priorInsetSaved) { + _priorInset = self.contentInset; + _priorInsetSaved = YES; + } + + // Shrink view's inset by the keyboard's height, and scroll to show the text field/view being edited + [UIView beginAnimations:nil context:NULL]; + [UIView setAnimationCurve:[[[notification userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]]; + [UIView setAnimationDuration:[[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]]; + + self.contentInset = [self contentInsetForKeyboard]; + [self setContentOffset:CGPointMake(self.contentOffset.x, + [self idealOffsetForView:firstResponder withSpace:[self keyboardRect].origin.y - self.bounds.origin.y]) + animated:YES]; + [self setScrollIndicatorInsets:self.contentInset]; + + [UIView commitAnimations]; +} + +- (void)keyboardWillHide:(NSNotification*)notification { + _keyboardRect = CGRectZero; + _keyboardVisible = NO; + + // Restore dimensions to prior size + [UIView beginAnimations:nil context:NULL]; + [UIView setAnimationCurve:[[[notification userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]]; + [UIView setAnimationDuration:[[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]]; + self.contentInset = _priorInset; + [self setScrollIndicatorInsets:self.contentInset]; + _priorInsetSaved = NO; + [UIView commitAnimations]; +} + +- (UIView*)findFirstResponderBeneathView:(UIView*)view { + // Search recursively for first responder + for ( UIView *childView in view.subviews ) { + if ( [childView respondsToSelector:@selector(isFirstResponder)] && [childView isFirstResponder] ) return childView; + UIView *result = [self findFirstResponderBeneathView:childView]; + if ( result ) return result; + } + return nil; +} + +- (UIEdgeInsets)contentInsetForKeyboard { + UIEdgeInsets newInset = self.contentInset; + CGRect keyboardRect = [self keyboardRect]; + newInset.bottom = keyboardRect.size.height - ((keyboardRect.origin.y+keyboardRect.size.height) - (self.bounds.origin.y+self.bounds.size.height)); + return newInset; +} + +-(CGFloat)idealOffsetForView:(UIView *)view withSpace:(CGFloat)space { + + // Convert the rect to get the view's distance from the top of the scrollView. + CGRect rect = [view convertRect:view.bounds toView:self]; + + // Set starting offset to that point + CGFloat offset = rect.origin.y; + + + if ( self.contentSize.height - offset < space ) { + // Scroll to the bottom + offset = self.contentSize.height - space; + } else { + if ( view.bounds.size.height < space ) { + // Center vertically if there's room + offset -= floor((space-view.bounds.size.height)/2.0); + } + if ( offset + space > self.contentSize.height ) { + // Clamp to content size + offset = self.contentSize.height - space; + } + } + + if (offset < 0) offset = 0; + + return offset; +} + +-(void)adjustOffsetToIdealIfNeeded { + + // Only do this if the keyboard is already visible + if ( !_keyboardVisible ) return; + + CGFloat visibleSpace = self.bounds.size.height - self.contentInset.top - self.contentInset.bottom; + + CGPoint idealOffset = CGPointMake(0, [self idealOffsetForView:[self findFirstResponderBeneathView:self] withSpace:visibleSpace]); + + [self setContentOffset:idealOffset animated:YES]; +} + +- (CGRect)keyboardRect { + CGRect keyboardRect = [self convertRect:_keyboardRect fromView:nil]; + if ( keyboardRect.origin.y == 0 ) { + CGRect screenBounds = [self convertRect:[UIScreen mainScreen].bounds fromView:nil]; + keyboardRect.origin = CGPointMake(0, screenBounds.size.height - keyboardRect.size.height); + } + return keyboardRect; +} + +@end diff --git a/Classes/Utils/UACellBackgroundView/UACellBackgroundView.h b/Classes/Utils/UACellBackgroundView/UACellBackgroundView.h new file mode 100644 index 000000000..a2a397792 --- /dev/null +++ b/Classes/Utils/UACellBackgroundView/UACellBackgroundView.h @@ -0,0 +1,30 @@ +// +// UACellBackgroundView.h +// Ambiance +// +// Created by Matt Coneybeare on 1/31/10. +// Copyright 2010 Urban Apps LLC. All rights reserved. +// +// Modified by Diorcet Yann on 07/12/12 + +#import + +#import + +typedef enum { + UACellBackgroundViewPositionSingle = 0, + UACellBackgroundViewPositionTop, + UACellBackgroundViewPositionBottom, + UACellBackgroundViewPositionMiddle +} UACellBackgroundViewPosition; + +@interface UACellBackgroundView : UIView { + UACellBackgroundViewPosition position; + BOOL automaticPositioning; +} + +@property(nonatomic) UACellBackgroundViewPosition position; +@property(nonatomic, copy) UIColor *backgroundColor; +@property(assign) BOOL automaticPositioning; + +@end diff --git a/Classes/Utils/UACellBackgroundView/UACellBackgroundView.m b/Classes/Utils/UACellBackgroundView/UACellBackgroundView.m new file mode 100644 index 000000000..78cb23633 --- /dev/null +++ b/Classes/Utils/UACellBackgroundView/UACellBackgroundView.m @@ -0,0 +1,274 @@ +// +// UACellBackgroundView.m +// Ambiance +// +// Created by Matt Coneybeare on 1/31/10. +// Copyright 2010 Urban Apps LLC. All rights reserved. +// +// Modified by Diorcet Yann on 07/12/12 + +#define kDefaultMargin 10 + +#import "UACellBackgroundView.h" + +static void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth,float ovalHeight); + +@implementation UACellBackgroundView + +@synthesize position; +@synthesize backgroundColor; +@synthesize automaticPositioning; + +- (void)initUACellBackgroundView { + [super setBackgroundColor:[UIColor clearColor]]; + self->automaticPositioning = TRUE; +} + +- (id)init { + self = [super init]; + if(self != nil) { + [self initUACellBackgroundView]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)aDecoder { + self = [super initWithCoder:aDecoder]; + if(self != nil) { + [self initUACellBackgroundView]; + } + return self; +} + +- (id)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if(self != nil) { + [self initUACellBackgroundView]; + } + return self; +} + +- (BOOL)isOpaque { + return NO; +} + +- (void)setBackgroundColor:(UIColor *)abackgroundColor { + if(self->backgroundColor != nil) { + [self->backgroundColor release]; + } + self->backgroundColor = [[UIColor alloc]initWithCGColor:abackgroundColor.CGColor]; + [self setNeedsDisplay]; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + if(!automaticPositioning) + return; + + // + // Auto found position + // + + UIView *view = [self superview]; + // Find TableViewCell + if(view != nil && ![view isKindOfClass:[UITableView class]]) view = [view superview]; + + UIView *cellView = [self superview]; + // Find TableViewCell + if(cellView != nil && ![cellView isKindOfClass:[UITableViewCell class]]) cellView = [cellView superview]; + + if(view != nil && cellView != nil) { + UITableViewCell *cell = (UITableViewCell*)cellView; + UITableView *tableView = (UITableView*)view; + + if([tableView style] == UITableViewStyleGrouped) { + NSIndexPath *path = [tableView indexPathForCell:cell]; + if(path) { + int count = [tableView numberOfRowsInSection:[path section]]; + // Set Position for background view + if([path row] == 0) { + if([path row] == (count - 1)) { + [self setPosition:UACellBackgroundViewPositionSingle]; + } else { + [self setPosition:UACellBackgroundViewPositionTop]; + } + } else if([path row] == (count - 1)) { + [self setPosition:UACellBackgroundViewPositionBottom]; + } else { + [self setPosition:UACellBackgroundViewPositionMiddle]; + } + } + } else { + [self setPosition:UACellBackgroundViewPositionMiddle]; + } + } + [self setNeedsDisplay]; +} + +- (void)drawRect:(CGRect)aRect { + // Drawing code + + CGContextRef c = UIGraphicsGetCurrentContext(); + + int lineWidth = 1; + + CGRect rect = [self bounds]; + CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect); + CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect); + miny -= 1; + + CGFloat locations[2] = { 0.0, 1.0 }; + CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB(); + CGGradientRef myGradient = nil; + CGFloat redColor, greenColor, blueColor, alphaColor; + [[self backgroundColor] getRed:&redColor green:&greenColor blue:&blueColor alpha:&alphaColor]; + CGFloat components[8] = {redColor, greenColor, blueColor, alphaColor, redColor * 0.766f, greenColor * 0.766f, blueColor * 0.766f, alphaColor}; + CGContextSetStrokeColorWithColor(c, [[UIColor grayColor] CGColor]); + CGContextSetLineWidth(c, lineWidth); + CGContextSetAllowsAntialiasing(c, YES); + CGContextSetShouldAntialias(c, YES); + + if (position == UACellBackgroundViewPositionTop) { + + miny += 1; + + CGMutablePathRef path = CGPathCreateMutable(); + CGPathMoveToPoint(path, NULL, minx, maxy); + CGPathAddArcToPoint(path, NULL, minx, miny, midx, miny, kDefaultMargin); + CGPathAddArcToPoint(path, NULL, maxx, miny, maxx, maxy, kDefaultMargin); + CGPathAddLineToPoint(path, NULL, maxx, maxy); + CGPathAddLineToPoint(path, NULL, minx, maxy); + CGPathCloseSubpath(path); + + // Fill and stroke the path + CGContextSaveGState(c); + CGContextAddPath(c, path); + CGContextClip(c); + + myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, 2); + CGContextDrawLinearGradient(c, myGradient, CGPointMake(minx,miny), CGPointMake(minx,maxy), 0); + + CGContextAddPath(c, path); + CGPathRelease(path); + CGContextStrokePath(c); + CGContextRestoreGState(c); + + } else if (position == UACellBackgroundViewPositionBottom) { + + CGMutablePathRef path = CGPathCreateMutable(); + CGPathMoveToPoint(path, NULL, minx, miny); + CGPathAddArcToPoint(path, NULL, minx, maxy, midx, maxy, kDefaultMargin); + CGPathAddArcToPoint(path, NULL, maxx, maxy, maxx, miny, kDefaultMargin); + CGPathAddLineToPoint(path, NULL, maxx, miny); + CGPathAddLineToPoint(path, NULL, minx, miny); + CGPathCloseSubpath(path); + + // Fill and stroke the path + CGContextSaveGState(c); + CGContextAddPath(c, path); + CGContextClip(c); + + myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, 2); + CGContextDrawLinearGradient(c, myGradient, CGPointMake(minx,miny), CGPointMake(minx,maxy), 0); + + CGContextAddPath(c, path); + CGPathRelease(path); + CGContextStrokePath(c); + CGContextRestoreGState(c); + + + } else if (position == UACellBackgroundViewPositionMiddle) { + + CGMutablePathRef path = CGPathCreateMutable(); + CGPathMoveToPoint(path, NULL, minx, miny); + CGPathAddLineToPoint(path, NULL, maxx, miny); + CGPathAddLineToPoint(path, NULL, maxx, maxy); + CGPathAddLineToPoint(path, NULL, minx, maxy); + CGPathAddLineToPoint(path, NULL, minx, miny); + CGPathCloseSubpath(path); + + // Fill and stroke the path + CGContextSaveGState(c); + CGContextAddPath(c, path); + CGContextClip(c); + + myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, 2); + CGContextDrawLinearGradient(c, myGradient, CGPointMake(minx,miny), CGPointMake(minx,maxy), 0); + + CGContextAddPath(c, path); + CGPathRelease(path); + CGContextStrokePath(c); + CGContextRestoreGState(c); + + } else if (position == UACellBackgroundViewPositionSingle) { + miny += 1; + + CGMutablePathRef path = CGPathCreateMutable(); + CGPathMoveToPoint(path, NULL, minx, midy); + CGPathAddArcToPoint(path, NULL, minx, miny, midx, miny, kDefaultMargin); + CGPathAddArcToPoint(path, NULL, maxx, miny, maxx, midy, kDefaultMargin); + CGPathAddArcToPoint(path, NULL, maxx, maxy, midx, maxy, kDefaultMargin); + CGPathAddArcToPoint(path, NULL, minx, maxy, minx, midy, kDefaultMargin); + CGPathCloseSubpath(path); + + + // Fill and stroke the path + CGContextSaveGState(c); + CGContextAddPath(c, path); + CGContextClip(c); + + + myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, 2); + CGContextDrawLinearGradient(c, myGradient, CGPointMake(minx,miny), CGPointMake(minx,maxy), 0); + + CGContextAddPath(c, path); + CGPathRelease(path); + CGContextStrokePath(c); + CGContextRestoreGState(c); + } + + CGColorSpaceRelease(myColorspace); + CGGradientRelease(myGradient); + return; +} + +- (void)dealloc { + [backgroundColor release]; + [super dealloc]; +} + +- (void)setPosition:(UACellBackgroundViewPosition)newPosition { + if (position != newPosition) { + position = newPosition; + [self setNeedsDisplay]; + } +} + +@end + +static void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth,float ovalHeight) { + float fw, fh; + + if (ovalWidth == 0 || ovalHeight == 0) {// 1 + CGContextAddRect(context, rect); + return; + } + + CGContextSaveGState(context);// 2 + + CGContextTranslateCTM (context, CGRectGetMinX(rect),// 3 + CGRectGetMinY(rect)); + CGContextScaleCTM (context, ovalWidth, ovalHeight);// 4 + fw = CGRectGetWidth (rect) / ovalWidth;// 5 + fh = CGRectGetHeight (rect) / ovalHeight;// 6 + + CGContextMoveToPoint(context, fw, fh/2); // 7 + CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);// 8 + CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);// 9 + CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);// 10 + CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); // 11 + CGContextClosePath(context);// 12 + + CGContextRestoreGState(context);// 13 +} diff --git a/Resources/add_call_default.png b/Resources/add_call_default.png index 0932c749d964806d504320892ec3ae231700510e..81d6c7ed4c20ca2db511af57bdbf029e39a2e9c3 100644 GIT binary patch delta 1048 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 Hl+XkK%MHJ# diff --git a/Resources/add_call_over.png b/Resources/add_call_over.png index 09e5b91978ecd75e57f89e100ab2d39428d8c09b..7561d358b77f8a6ce0e94af0e1a2a1a7ca7c9a59 100644 GIT binary patch delta 1071 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 literal 1570 zcmbW1`9BnB9LFDI$q?l#=eCZKV;!+lOeLvNV{*k{oFTSI!VG4Hki1-LENWaYLd+t{ zl{Pe1nR3;b#yO5AV{%Ncm1D+^{)6p@=llLX&-eRzy*{t!O1)x#K}teN0stTdzi8tK zfUve84-o%J5V1u%wF2zFbrBT-07Q0g2mw;zVZox<9XR5=*ti%(=J+87kF*GY=qtF* zS!c}X;)M70q9E1IWj1ag_^}p(R7thfS^Qw5`nmA82$K|TFG;e|Ss6KY_upUrFxNw7 zU;o%!69TPf zwQd%NT%N#W858`L>vR&cD#XP*a4fS$A*NuC>|Y-1>SAI!j8d`WHO)*_$G#K+ow@&H zD0^iobK@+?VdDiOTSF`q5LA~Rq zPJKq&&wNNsz@htSJX~zL1gL7{@Y}8Se6S^RD9c?|(_N`CkA#8lQdjEM-u&4;I6f#S zC2SIav}(*&hQVf0k!pT2wL!52DQ~a(?uay~AC`cws=o1x!*3G0$}vkt7jmYf&6T7C z1!DFF%*k@Yp1n(9El|UbKtR27pu48h@MP1{j5>b3IU9gW!6UBiFJboD(9v{Z;1)t< z*?1JDXEiH}f_j#(32ami>VK}*RtV^0AEZk)z3y(9R(J$Jo_qL>R;>f-2>Ri@Mi_~l zdaks-R};i*x$5YrAq2;W5|;&M9suwo0KUR|x*x*Nm%r=&ACmTiJ%IqXA}-|{Y6c1e zed0xdd&)lGqb3Ng!NWTeVBFNwSZJ>+-sn3zcYKL>uOIs6t>k@u9e+I34t^f?eLqt)H}{&gX&DH$jM$m-K4J#f`WXW z?y1ZW^60v#qk9b2*PSF#^m3I2?{Tt;eRo*-e$>W=j&l${s)GIY z7vb1};)8_hPf%Jhb1r&a)zq$KKnY5=Q#9rax2;m!U*J#Qm-c zMBRH8Hf;mu7- zpd6wP6~SAY*(OL{O_| zU&hJ+jHp-0f73(M;@7yjG?>=SfP#wvPD&7fF4WObh?cz_&# z%86e7a<6@XwoQnmAB-?CG#%u5B1|ms1QX-YJW1(hXt$p(c6V_g1_Gu&%1t!zxeh9d sWm~VARc&>KWHQ$5**bMOnaQ5~6dq#3ijsID_}>BiyuD4Gwa?xE0A!c4KL7v# diff --git a/Resources/button_alert_background_over.png b/Resources/button_alert_background_over.png index 4c5247427bc9e24dd330f1d7d13b6b7d5c72280f..1781eee3caba2c7321e98f7441050899f94ca1f9 100644 GIT binary patch literal 3479 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 literal 1723 zcmb7FeLT~79RE%ou{w1sajmYaCN$>hhg>$d zuC|DNN=b&HjKsD)O&Qz$y8Gkq^}7DKKfa&$=ktDjp8oiJKHu}-<6Kwi80r83 zR$<(ny#UZaLVDN=O-Lr@@3;$rcC6c>H~`>!A0G_d$lCysTBk4``?dPD;H#|+zBAt! z27u;ajPqWf(<12rIr@15qGhTl;6Tx=4x<67ht7l@&%T*MaPj+1yV_ar*7@f82fH%N zE^V_?Hm<;`V>9j*xol-V#YT(-`lVf}rlGgWzfnco2e(-TRV?bh5DE@|xX6;rCy_)QM zmY>1ll>Px4s)W3`>YaBVY4U#pOBK z0QmaiD=gk_e92>%k&d-}Kw~-^wN6exp-{5)spY-)AXuZEG5mFpnBUeF_fDmz2#S`1 zqV5>XZ-)V-lf|tXQ*XjmC&?6L{V0e0zVltu7Qy6uKQus}(4=kj;P1i77W=g>*bUU* zjwf8$0mb+gi8hjO^BfaqeF8~(!*dvbo~B<$-^c?3gy##^Rp8qd+Mr6)#kvKu9?j16 z|Hyk0S_snc!On3XEn)5%?w6$>tUm{_sLaUAR?Dm|+9kwaxC;YpUR*@UhARNj&Y@x8 zXKj%7zkul1ehHqTSPrUiSS(1x@E$KLu%1)6yo$IppXk ze9}rym@jA91ZZ~1bnDu_ylYV{RQZ7pypr7hof}@^Ywk@fh=@y}lk%^swFrasb zb)pC&Mul(s>3pU9&K^OsJ!r7er5WV&E*O(0e-FTydO`&HH#>KP{f%dbMZKrJwg~K$ zp8@QZSCJuIhee0nsI9g5K;iJRN?lH&dsj>+NYnOmx2%m1fp)dk(=nmtNhN%+e5i-i z_(hQYN`TEgT4D3n=g7#S5y@o!r=)}=vFgpc*9p{Fkv$kPnQ*hLh%cH+QSWe^S)49b zbZ{znst!RuQ}6gJjOY~#0fyd2;WMejnt~aOp^V@)zR(m?rly;Bv*(Zo_p(64E|0b+ z<;5N8VfCm4wW^J;J5g^Mp`x;9HwEU_73}99KwuV*p40&T)m~J^nu`dfB^l!@^%}5Y zOFa56hYDJ_hJ`%^p+CA*uh9Vw`>n$wA3t>vH8M!JrpVG)vTJS^RJJkt)*kfrvzh{5^ngC`$ K&YA5Lock*MvwU1~IZn4Ozw>%Jwz3 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 literal 0 HcmV?d00001 diff --git a/Resources/contact_cancel_default.png b/Resources/contact_cancel_default.png new file mode 100644 index 0000000000000000000000000000000000000000..80809dc957ff533879723294406b37514f156f00 GIT binary patch literal 6587 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 literal 0 HcmV?d00001 diff --git a/Resources/contacts_add_default.png b/Resources/contacts_add_default.png index 7863899300be2a5743a2da209ad9574756ae99d1..e5ccfb54f5f0f846224510b49dfa15b4eba9326a 100644 GIT binary patch delta 5204 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 YRwa?~TSiDZ7tF33W?sM2Q|X2Ea5+c!C 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 diff --git a/Resources/contacts_add_over.png b/Resources/contacts_add_over.png index 24777743051d07c1d45a90e635668493766ce8b0..a858a14062107e7c63de2179ea4a266f7914943f 100644 GIT binary patch delta 4669 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 SSIPfEAWc;rl}{LK$bSGMW&O|q delta 4519 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 literal 0 HcmV?d00001 diff --git a/Resources/dialer_alt_background.png b/Resources/dialer_alt_background.png new file mode 100644 index 0000000000000000000000000000000000000000..5a2a267160f4ce69ffdc6035cfe550cb103f23e5 GIT binary patch literal 3373 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 diff --git a/Resources/micro_on_defauly.png b/Resources/micro_on_defauly.png deleted file mode 100644 index ca63b44ff5fbcfaa19e4ccb8bd62b98170497382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5999 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 diff --git a/Resources/transfer_call_default.png b/Resources/transfer_call_default.png index 8d66dc15e3694a42cb680a8ed319458847712f38..b67e4509ea16cb4a3161b07b7811e11148aa44fd 100644 GIT binary patch delta 4838 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 delta 6955 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 I#WwnX0NI4;4*&oF diff --git a/Resources/transfer_call_disabled.png b/Resources/transfer_call_disabled.png index 3cb5c1db71235c33ed9af524b236dfc3e281f048..0307f6bf8f3b2c7032532d890c0de61b86bf07f5 100644 GIT binary patch delta 4682 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 delta 5685 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 diff --git a/Resources/transfer_call_over.png b/Resources/transfer_call_over.png index dee25606243df09eb08660dc82f04cb166333d54..9f3e9ac36165bda7da5ecb5a17b069716fd378c3 100644 GIT binary patch delta 4828 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 b^v(&L<*FL&n|1;l#oyDy=%K6Bt-}8caM9+| delta 3967 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 Be9iy> diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 60dd6691d..088237180 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -181,8 +181,6 @@ D3128FF415AABE4E00A2147A /* contact_edit_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3128FE915AABE4E00A2147A /* contact_edit_default.png */; }; D3128FF515AABE4E00A2147A /* contact_edit_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3128FEA15AABE4E00A2147A /* contact_edit_over.png */; }; D3128FF615AABE4E00A2147A /* contact_edit_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3128FEA15AABE4E00A2147A /* contact_edit_over.png */; }; - D3196D2D15A3199D007FEEBA /* list_highlight.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D2C15A3199D007FEEBA /* list_highlight.png */; }; - D3196D2E15A3199D007FEEBA /* list_highlight.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D2C15A3199D007FEEBA /* list_highlight.png */; }; D3196D3415A321E3007FEEBA /* options_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3015A321E2007FEEBA /* options_add_default.png */; }; D3196D3515A321E3007FEEBA /* options_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3015A321E2007FEEBA /* options_add_default.png */; }; D3196D3615A321E3007FEEBA /* options_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3115A321E2007FEEBA /* options_add_over.png */; }; @@ -547,6 +545,20 @@ D3D6A3B4159B0EFE005F692C /* options_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D3D6A3A9159B0EFE005F692C /* options_disabled.png */; }; D3D6A3B5159B0EFE005F692C /* options_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3D6A3AA159B0EFE005F692C /* options_over.png */; }; D3D6A3B6159B0EFE005F692C /* options_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3D6A3AA159B0EFE005F692C /* options_over.png */; }; + D3E84F1E15B00F4100420DAC /* cancel_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1715B00F4100420DAC /* cancel_default.png */; }; + D3E84F1F15B00F4100420DAC /* cancel_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1715B00F4100420DAC /* cancel_default.png */; }; + D3E84F2015B00F4100420DAC /* cancel_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1815B00F4100420DAC /* cancel_over.png */; }; + D3E84F2115B00F4100420DAC /* cancel_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1815B00F4100420DAC /* cancel_over.png */; }; + D3E84F2615B00F4100420DAC /* dialer_alt_back_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1B15B00F4100420DAC /* dialer_alt_back_default.png */; }; + D3E84F2715B00F4100420DAC /* dialer_alt_back_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1B15B00F4100420DAC /* dialer_alt_back_default.png */; }; + D3E84F2815B00F4100420DAC /* dialer_alt_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1C15B00F4100420DAC /* dialer_alt_back_over.png */; }; + D3E84F2915B00F4100420DAC /* dialer_alt_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1C15B00F4100420DAC /* dialer_alt_back_over.png */; }; + D3E84F2A15B00F4100420DAC /* dialer_alt_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1D15B00F4100420DAC /* dialer_alt_background.png */; }; + D3E84F2B15B00F4100420DAC /* dialer_alt_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F1D15B00F4100420DAC /* dialer_alt_background.png */; }; + D3E84F3815B011AF00420DAC /* contact_cancel_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F3615B011AF00420DAC /* contact_cancel_default.png */; }; + D3E84F3915B011AF00420DAC /* contact_cancel_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F3615B011AF00420DAC /* contact_cancel_default.png */; }; + D3E84F3A15B011AF00420DAC /* contact_cancel_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F3715B011AF00420DAC /* contact_cancel_over.png */; }; + D3E84F3B15B011AF00420DAC /* contact_cancel_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F3715B011AF00420DAC /* contact_cancel_over.png */; }; D3E8F68615ADE05B0065A226 /* UIContactDetailsFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = D3E8F68415ADE0580065A226 /* UIContactDetailsFooter.m */; }; D3E8F68715ADE05B0065A226 /* UIContactDetailsFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = D3E8F68415ADE0580065A226 /* UIContactDetailsFooter.m */; }; D3E8F68815ADE05B0065A226 /* UIContactDetailsFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3E8F68515ADE05A0065A226 /* UIContactDetailsFooter.xib */; }; @@ -731,6 +743,14 @@ D3F83F8F15822ABE00336684 /* PhoneMainView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83F8D15822ABD00336684 /* PhoneMainView.m */; }; D3F83F9215824D3600336684 /* LinphoneApp.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3F83F9115824D3500336684 /* LinphoneApp.xib */; }; D3F83F9315824D3600336684 /* LinphoneApp.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3F83F9115824D3500336684 /* LinphoneApp.xib */; }; + D3F9A9DB15AEEB940045320F /* history_notification.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F9A9DA15AEEB940045320F /* history_notification.png */; }; + D3F9A9DC15AEEB940045320F /* history_notification.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F9A9DA15AEEB940045320F /* history_notification.png */; }; + D3F9A9E215AF100D0045320F /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9DF15AF100D0045320F /* TPKeyboardAvoidingScrollView.m */; }; + D3F9A9E315AF100D0045320F /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9DF15AF100D0045320F /* TPKeyboardAvoidingScrollView.m */; }; + D3F9A9E415AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9E115AF100D0045320F /* TPKeyboardAvoidingTableView.m */; }; + D3F9A9E515AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9E115AF100D0045320F /* TPKeyboardAvoidingTableView.m */; }; + D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; }; + D3F9A9EF15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; }; F476004B147AAF2800FFF19B /* liblinphone.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB911475562600DEE054 /* liblinphone.a */; }; F476004C147AAF4600FFF19B /* libmediastreamer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB8F147555C800DEE054 /* libmediastreamer.a */; }; /* End PBXBuildFile section */ @@ -1073,7 +1093,6 @@ D3128FE815AABE4E00A2147A /* contact_back_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_back_over.png; path = Resources/contact_back_over.png; sourceTree = ""; }; D3128FE915AABE4E00A2147A /* contact_edit_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_edit_default.png; path = Resources/contact_edit_default.png; sourceTree = ""; }; D3128FEA15AABE4E00A2147A /* contact_edit_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_edit_over.png; path = Resources/contact_edit_over.png; sourceTree = ""; }; - D3196D2C15A3199D007FEEBA /* list_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = list_highlight.png; path = Resources/list_highlight.png; sourceTree = ""; }; D3196D3015A321E2007FEEBA /* options_add_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_add_default.png; path = Resources/options_add_default.png; sourceTree = ""; }; D3196D3115A321E2007FEEBA /* options_add_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_add_over.png; path = Resources/options_add_over.png; sourceTree = ""; }; D3196D3215A321E3007FEEBA /* options_transfer_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_transfer_default.png; path = Resources/options_transfer_default.png; sourceTree = ""; }; @@ -1314,6 +1333,14 @@ D3D6A3A8159B0EFE005F692C /* options_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_default.png; path = Resources/options_default.png; sourceTree = ""; }; D3D6A3A9159B0EFE005F692C /* options_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_disabled.png; path = Resources/options_disabled.png; sourceTree = ""; }; D3D6A3AA159B0EFE005F692C /* options_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_over.png; path = Resources/options_over.png; sourceTree = ""; }; + D3E84F1715B00F4100420DAC /* cancel_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = cancel_default.png; path = Resources/cancel_default.png; sourceTree = ""; }; + D3E84F1815B00F4100420DAC /* cancel_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = cancel_over.png; path = Resources/cancel_over.png; sourceTree = ""; }; + D3E84F1B15B00F4100420DAC /* dialer_alt_back_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_alt_back_default.png; path = Resources/dialer_alt_back_default.png; sourceTree = ""; }; + D3E84F1C15B00F4100420DAC /* dialer_alt_back_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_alt_back_over.png; path = Resources/dialer_alt_back_over.png; sourceTree = ""; }; + D3E84F1D15B00F4100420DAC /* dialer_alt_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_alt_background.png; path = Resources/dialer_alt_background.png; sourceTree = ""; }; + D3E84F3615B011AF00420DAC /* contact_cancel_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_cancel_default.png; path = Resources/contact_cancel_default.png; sourceTree = ""; }; + D3E84F3715B011AF00420DAC /* contact_cancel_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_cancel_over.png; path = Resources/contact_cancel_over.png; sourceTree = ""; }; + D3E84F3C15B018A600420DAC /* UILinphone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UILinphone.h; sourceTree = ""; }; D3E8F68315ADE0570065A226 /* UIContactDetailsFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIContactDetailsFooter.h; sourceTree = ""; }; D3E8F68415ADE0580065A226 /* UIContactDetailsFooter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIContactDetailsFooter.m; sourceTree = ""; }; D3E8F68515ADE05A0065A226 /* UIContactDetailsFooter.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIContactDetailsFooter.xib; sourceTree = ""; }; @@ -1419,6 +1446,13 @@ D3F83F8C158229C500336684 /* PhoneMainView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhoneMainView.h; sourceTree = ""; }; D3F83F8D15822ABD00336684 /* PhoneMainView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhoneMainView.m; sourceTree = ""; }; D3F83F9115824D3500336684 /* LinphoneApp.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LinphoneApp.xib; sourceTree = ""; }; + D3F9A9DA15AEEB940045320F /* history_notification.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_notification.png; path = Resources/history_notification.png; sourceTree = ""; }; + D3F9A9DE15AF100D0045320F /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TPKeyboardAvoidingScrollView.h; path = Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h; sourceTree = ""; }; + D3F9A9DF15AF100D0045320F /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TPKeyboardAvoidingScrollView.m; path = Utils/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.m; sourceTree = ""; }; + D3F9A9E015AF100D0045320F /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TPKeyboardAvoidingTableView.h; path = Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h; sourceTree = ""; }; + D3F9A9E115AF100D0045320F /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TPKeyboardAvoidingTableView.m; path = Utils/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.m; sourceTree = ""; }; + D3F9A9EC15AF277D0045320F /* UACellBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UACellBackgroundView.h; path = Utils/UACellBackgroundView/UACellBackgroundView.h; sourceTree = ""; }; + D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UACellBackgroundView.m; path = Utils/UACellBackgroundView/UACellBackgroundView.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1864,6 +1898,7 @@ D31C9C96158A1CDE00756B45 /* UIHistoryCell.h */, D31C9C97158A1CDE00756B45 /* UIHistoryCell.m */, D31AC4AF158A29C600C2638B /* UIHistoryCell.xib */, + D3E84F3C15B018A600420DAC /* UILinphone.h */, D32409C1158B49A600C8C119 /* UILongTouchButton.h */, D32409C2158B49A600C8C119 /* UILongTouchButton.m */, D3ED3E841586291B006C0DE4 /* UIMainBar.h */, @@ -2092,6 +2127,8 @@ D31C9C8D158A1C1000756B45 /* call_status_incoming.png */, D31C9C8E158A1C1000756B45 /* call_status_missed.png */, D31C9C8F158A1C1000756B45 /* call_status_outgoing.png */, + D3E84F1715B00F4100420DAC /* cancel_default.png */, + D3E84F1815B00F4100420DAC /* cancel_over.png */, D36C43CC158F2F370048BA40 /* cell_call.png */, D3211BB8159C8A820098460B /* cell_call_first.png */, D38D14AD15A30B3D008497E8 /* cell_call_first_highlight.png */, @@ -2121,6 +2158,8 @@ D3128FE715AABE4E00A2147A /* contact_back_default.png */, D3128FE815AABE4E00A2147A /* contact_back_over.png */, D378906915AC37C800BD776C /* contact_bar_background.png */, + D3E84F3615B011AF00420DAC /* contact_cancel_default.png */, + D3E84F3715B011AF00420DAC /* contact_cancel_over.png */, D3128FE915AABE4E00A2147A /* contact_edit_default.png */, D3128FEA15AABE4E00A2147A /* contact_edit_over.png */, D37C638D15AAD251009D0BAC /* contact_number.png */, @@ -2140,6 +2179,9 @@ D3F83F761582253100336684 /* decline_default.png */, D3F83F771582253100336684 /* decline_over.png */, D3ED3E441585FB8C006C0DE4 /* dialer_address_background.png */, + D3E84F1B15B00F4100420DAC /* dialer_alt_back_default.png */, + D3E84F1C15B00F4100420DAC /* dialer_alt_back_over.png */, + D3E84F1D15B00F4100420DAC /* dialer_alt_background.png */, D36C43CF158F2F370048BA40 /* dialer_alt_default.png */, D36C43D0158F2F370048BA40 /* dialer_alt_over.png */, D38327ED1580FE3A00FA0D23 /* dialer_default.png */, @@ -2157,6 +2199,7 @@ D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */, D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */, D3ED3E9615872EF1006C0DE4 /* history_missed_selected.png */, + D3F9A9DA15AEEB940045320F /* history_notification.png */, D3F26BF515986DAD005F9CAB /* history_ok_default.png */, D3F26BF615986DAD005F9CAB /* history_ok_over.png */, D38327FD158100E400FA0D23 /* history_over.png */, @@ -2175,7 +2218,6 @@ D3EA5417159858A80037DC6B /* list_delete_over.png */, D354981815876FE7000081D8 /* list_details_default.png */, D354981915876FE7000081D8 /* list_details_over.png */, - D3196D2C15A3199D007FEEBA /* list_highlight.png */, D3F83EF4158205A100336684 /* micro_off_default.png */, D35EA76115A2DF8D003E025D /* micro_off_disabled.png */, D3F83EF5158205A100336684 /* micro_off_over.png */, @@ -2277,13 +2319,15 @@ D326483415887D4400930C67 /* Utils */ = { isa = PBXGroup; children = ( - D38935F715A6D06800A3A3AA /* CPAnimation */, D3F26BEA159869A6005F9CAB /* AbstractCall.h */, D3F26BEB159869A6005F9CAB /* AbstractCall.m */, + D38935F715A6D06800A3A3AA /* CPAnimation */, D32B9DFA15A2F131000B6DEC /* FastAddressBook.h */, D32B9DFB15A2F131000B6DEC /* FastAddressBook.m */, D326483615887D5200930C67 /* OrderedDictionary.h */, D326483715887D5200930C67 /* OrderedDictionary.m */, + D3F9A9DD15AF0FFE0045320F /* TPKeyboardAvoiding */, + D3F9A9EB15AF27620045320F /* UACellBackgroundView */, ); name = Utils; sourceTree = ""; @@ -2404,6 +2448,26 @@ path = Settings; sourceTree = ""; }; + D3F9A9DD15AF0FFE0045320F /* TPKeyboardAvoiding */ = { + isa = PBXGroup; + children = ( + D3F9A9DE15AF100D0045320F /* TPKeyboardAvoidingScrollView.h */, + D3F9A9DF15AF100D0045320F /* TPKeyboardAvoidingScrollView.m */, + D3F9A9E015AF100D0045320F /* TPKeyboardAvoidingTableView.h */, + D3F9A9E115AF100D0045320F /* TPKeyboardAvoidingTableView.m */, + ); + name = TPKeyboardAvoiding; + sourceTree = ""; + }; + D3F9A9EB15AF27620045320F /* UACellBackgroundView */ = { + isa = PBXGroup; + children = ( + D3F9A9EC15AF277D0045320F /* UACellBackgroundView.h */, + D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */, + ); + name = UACellBackgroundView; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -2684,7 +2748,6 @@ D35EA76515A2DF8D003E025D /* micro_on_disabled.png in Resources */, D38D14AF15A30B3D008497E8 /* cell_call_first_highlight.png in Resources */, D38D14B115A30B3D008497E8 /* cell_call_highlight.png in Resources */, - D3196D2D15A3199D007FEEBA /* list_highlight.png in Resources */, D3196D3415A321E3007FEEBA /* options_add_default.png in Resources */, D3196D3615A321E3007FEEBA /* options_add_over.png in Resources */, D3196D3815A321E3007FEEBA /* options_transfer_default.png in Resources */, @@ -2743,6 +2806,14 @@ C9C8254C15AE207B00D493FA /* options_selected.png in Resources */, C9C8254F15AE256100D493FA /* transfer_call_disabled.png in Resources */, C90FAA7B15AF54E6002091CB /* HistoryDetailsViewController.xib in Resources */, + D3F9A9DB15AEEB940045320F /* history_notification.png in Resources */, + D3E84F1E15B00F4100420DAC /* cancel_default.png in Resources */, + D3E84F2015B00F4100420DAC /* cancel_over.png in Resources */, + D3E84F2615B00F4100420DAC /* dialer_alt_back_default.png in Resources */, + D3E84F2815B00F4100420DAC /* dialer_alt_back_over.png in Resources */, + D3E84F2A15B00F4100420DAC /* dialer_alt_background.png in Resources */, + D3E84F3815B011AF00420DAC /* contact_cancel_default.png in Resources */, + D3E84F3A15B011AF00420DAC /* contact_cancel_over.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2924,7 +2995,6 @@ D35EA76615A2DF8D003E025D /* micro_on_disabled.png in Resources */, D38D14B015A30B3D008497E8 /* cell_call_first_highlight.png in Resources */, D38D14B215A30B3D008497E8 /* cell_call_highlight.png in Resources */, - D3196D2E15A3199D007FEEBA /* list_highlight.png in Resources */, D3196D3515A321E3007FEEBA /* options_add_default.png in Resources */, D3196D3715A321E3007FEEBA /* options_add_over.png in Resources */, D3196D3915A321E3007FEEBA /* options_transfer_default.png in Resources */, @@ -2983,6 +3053,14 @@ C9C8254D15AE207B00D493FA /* options_selected.png in Resources */, C9C8255015AE256100D493FA /* transfer_call_disabled.png in Resources */, C90FAA7C15AF54E6002091CB /* HistoryDetailsViewController.xib in Resources */, + D3F9A9DC15AEEB940045320F /* history_notification.png in Resources */, + D3E84F1F15B00F4100420DAC /* cancel_default.png in Resources */, + D3E84F2115B00F4100420DAC /* cancel_over.png in Resources */, + D3E84F2715B00F4100420DAC /* dialer_alt_back_default.png in Resources */, + D3E84F2915B00F4100420DAC /* dialer_alt_back_over.png in Resources */, + D3E84F2B15B00F4100420DAC /* dialer_alt_background.png in Resources */, + D3E84F3915B011AF00420DAC /* contact_cancel_default.png in Resources */, + D3E84F3B15B011AF00420DAC /* contact_cancel_over.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3073,6 +3151,9 @@ D378907515AC448A00BD776C /* UIView+ModalStack.m in Sources */, D3E8F68615ADE05B0065A226 /* UIContactDetailsFooter.m in Sources */, C90FAA7915AF54E6002091CB /* HistoryDetailsViewController.m in Sources */, + D3F9A9E215AF100D0045320F /* TPKeyboardAvoidingScrollView.m in Sources */, + D3F9A9E415AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */, + D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3160,6 +3241,9 @@ D378907615AC448A00BD776C /* UIView+ModalStack.m in Sources */, D3E8F68715ADE05B0065A226 /* UIContactDetailsFooter.m in Sources */, C90FAA7A15AF54E6002091CB /* HistoryDetailsViewController.m in Sources */, + D3F9A9E315AF100D0045320F /* TPKeyboardAvoidingScrollView.m in Sources */, + D3F9A9E515AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */, + D3F9A9EF15AF277E0045320F /* UACellBackgroundView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };