From d8438aa74234bd9f8a0b8f05ffef6efdc94b9477 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 18 Jul 2012 16:49:55 +0200 Subject: [PATCH 1/6] Show Mainbar in ChatRoom view --- Classes/ChatRoomViewController.m | 16 ++++++++-------- Classes/LinphoneUI/UICallCell.m | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatRoomViewController.m index b231298b1..d4ee8b7fe 100644 --- a/Classes/ChatRoomViewController.m +++ b/Classes/ChatRoomViewController.m @@ -69,8 +69,8 @@ static UICompositeViewDescription *compositeDescription = nil; content:@"ChatRoomViewController" stateBar:nil stateBarEnabled:false - tabBar:nil - tabBarEnabled:false + tabBar:@"UIMainBar" + tabBarEnabled:true fullscreen:false]; } return compositeDescription; @@ -255,7 +255,8 @@ static UICompositeViewDescription *compositeDescription = nil; #pragma mark - Keyboard Event Functions - (void)keyboardWillHide:(NSNotification *)notif { - CGRect beginFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; + //CGRect beginFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; + //CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; UIViewAnimationCurve curve = [[[notif userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]; NSTimeInterval duration = [[[notif userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; [UIView beginAnimations:@"resize" context:nil]; @@ -264,9 +265,8 @@ static UICompositeViewDescription *compositeDescription = nil; [UIView setAnimationBeginsFromCurrentState:TRUE]; // Move view - CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; CGRect frame = [[self view] frame]; - frame.origin.y += endFrame.origin.y - beginFrame.origin.y; + frame.origin.y = 0; [[self view] setFrame:frame]; // Resize table view @@ -279,7 +279,8 @@ static UICompositeViewDescription *compositeDescription = nil; } - (void)keyboardWillShow:(NSNotification *)notif { - CGRect beginFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; + //CGRect beginFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; + CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; UIViewAnimationCurve curve = [[[notif userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]; NSTimeInterval duration = [[[notif userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; [UIView beginAnimations:@"resize" context:nil]; @@ -288,9 +289,8 @@ static UICompositeViewDescription *compositeDescription = nil; [UIView setAnimationBeginsFromCurrentState:TRUE]; // Move view - CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; CGRect frame = [[self view] frame]; - frame.origin.y += endFrame.origin.y - beginFrame.origin.y; + frame.origin.y = [self.view convertPoint:endFrame.origin fromView:nil].y - frame.size.height; [[self view] setFrame:frame]; // Resize table view diff --git a/Classes/LinphoneUI/UICallCell.m b/Classes/LinphoneUI/UICallCell.m index fe0d5445d..ea2b481a3 100644 --- a/Classes/LinphoneUI/UICallCell.m +++ b/Classes/LinphoneUI/UICallCell.m @@ -57,6 +57,7 @@ @synthesize conferenceCell; @synthesize currentCall; + #pragma mark - Lifecycle Functions - (id)initWithIdentifier:(NSString*)identifier { @@ -97,6 +98,7 @@ data = nil; } + #pragma mark - Properties Functions - (void)setData:(UICallCellData *)adata { From 4d42d182c10cc81ce670858d2e73628f88d8378d Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 18 Jul 2012 17:20:29 +0200 Subject: [PATCH 2/6] Improve filter & fix view change (same description) --- Classes/ChatViewController.m | 2 ++ Classes/ContactsTableViewController.h | 3 +-- Classes/ContactsTableViewController.m | 18 ++++--------- Classes/ContactsViewController.h | 2 ++ Classes/ContactsViewController.m | 26 ++++++++++++++++--- Classes/DialerViewController.m | 1 + Classes/HistoryDetailsViewController.m | 1 + .../LinphoneUI/UICompositeViewController.m | 8 ++---- Classes/LinphoneUI/UIMainBar.m | 1 + Classes/PhoneMainView.m | 12 +++++---- 10 files changed, 45 insertions(+), 29 deletions(-) diff --git a/Classes/ChatViewController.m b/Classes/ChatViewController.m index ff63f4884..16dca20f8 100644 --- a/Classes/ChatViewController.m +++ b/Classes/ChatViewController.m @@ -102,6 +102,8 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onAddClick:(id)event { [ContactSelection setSelectionMode:ContactSelectionModeMessage]; + [ContactSelection setAddAddress:nil]; + [ContactSelection setSipFilter:TRUE]; [[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE]; } diff --git a/Classes/ContactsTableViewController.h b/Classes/ContactsTableViewController.h index 7ae506cb8..529a97d07 100644 --- a/Classes/ContactsTableViewController.h +++ b/Classes/ContactsTableViewController.h @@ -26,9 +26,8 @@ OrderedDictionary* addressBookMap; ABAddressBookRef addressBook; - BOOL sipFilter; } -@property (nonatomic, assign) BOOL sipFilter; +- (void)loadData; @end diff --git a/Classes/ContactsTableViewController.m b/Classes/ContactsTableViewController.m index bb32853fd..d0c4d935c 100644 --- a/Classes/ContactsTableViewController.m +++ b/Classes/ContactsTableViewController.m @@ -27,8 +27,6 @@ @implementation ContactsTableViewController -@synthesize sipFilter; - #pragma mark - Lifecycle Functions - (void)initContactsTableViewController { @@ -62,17 +60,9 @@ } -#pragma mark - Property Functions - -- (void)setSipFilter:(BOOL)asipFilter { - self->sipFilter = asipFilter; - [self reloadData]; -} - - #pragma mark - -- (void)reloadData { +- (void)loadData { [LinphoneLogger logc:LinphoneLoggerLog format:"Load contact list"]; @synchronized (addressBookMap) { @@ -82,7 +72,7 @@ NSArray *lContacts = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook); for (id lPerson in lContacts) { BOOL add = true; - if(sipFilter) { + if([ContactSelection getSipFilter]) { add = false; ABMultiValueRef lMap = ABRecordCopyValue((ABRecordRef)lPerson, kABPersonInstantMessageProperty); for(int i = 0; i < ABMultiValueGetCount(lMap); ++i) { @@ -91,6 +81,8 @@ if(CFStringCompare((CFStringRef)@"SIP", CFDictionaryGetValue(lDict, @"service"), kCFCompareCaseInsensitive) == 0) { add = true; } + } else { + add = true; } CFRelease(lDict); } @@ -141,7 +133,7 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef info, void *context) { ContactsTableViewController* controller = (ContactsTableViewController*)context; ABAddressBookRevert(addressBook); - [controller reloadData]; + [controller loadData]; } diff --git a/Classes/ContactsViewController.h b/Classes/ContactsViewController.h index e818ccc3f..2b14e492c 100644 --- a/Classes/ContactsViewController.h +++ b/Classes/ContactsViewController.h @@ -36,6 +36,8 @@ typedef enum _ContactSelectionMode { + (ContactSelectionMode)getSelectionMode; + (void)setAddAddress:(NSString*)address; + (NSString*)getAddAddress; ++ (void)setSipFilter:(BOOL)enable; ++ (BOOL)getSipFilter; @end diff --git a/Classes/ContactsViewController.m b/Classes/ContactsViewController.m index 4d7778927..2c4ebc9b4 100644 --- a/Classes/ContactsViewController.m +++ b/Classes/ContactsViewController.m @@ -27,6 +27,7 @@ static ContactSelectionMode sSelectionMode = ContactSelectionModeNone; static NSString* sAddAddress = nil; +static BOOL sSipFilter = FALSE; + (void)setSelectionMode:(ContactSelectionMode)selectionMode { sSelectionMode = selectionMode; @@ -50,6 +51,14 @@ static NSString* sAddAddress = nil; return sAddAddress; } ++ (void)setSipFilter:(BOOL)enable { + sSipFilter = enable; +} + ++ (BOOL)getSipFilter { + return sSipFilter; +} + @end @implementation ContactsViewController @@ -120,7 +129,6 @@ static UICompositeViewDescription *compositeDescription = nil; [tableController viewWillAppear:animated]; } - [self changeView:History_All]; [self update]; } @@ -141,6 +149,8 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)viewDidLoad { [super viewDidLoad]; + [self changeView:History_All]; + // Set selected+over background: IB lack ! [linphoneButton setImage:[UIImage imageNamed:@"contacts_linphone_selected.png"] forState:(UIControlStateHighlighted | UIControlStateSelected)]; @@ -155,14 +165,16 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)changeView: (HistoryView) view { if(view == History_All) { - [tableController setSipFilter:FALSE]; + [ContactSelection setSipFilter:FALSE]; + [tableController loadData]; allButton.selected = TRUE; } else { allButton.selected = FALSE; } if(view == History_Linphone) { - [tableController setSipFilter:TRUE]; + [ContactSelection setSipFilter:TRUE]; + [tableController loadData]; linphoneButton.selected = TRUE; } else { linphoneButton.selected = FALSE; @@ -181,6 +193,14 @@ static UICompositeViewDescription *compositeDescription = nil; [backButton setHidden:TRUE]; break; } + if([ContactSelection getSipFilter]) { + allButton.selected = FALSE; + linphoneButton.selected = TRUE; + } else { + allButton.selected = TRUE; + linphoneButton.selected = FALSE; + } + [tableController loadData]; } diff --git a/Classes/DialerViewController.m b/Classes/DialerViewController.m index 96b3e64c8..41fba484b 100644 --- a/Classes/DialerViewController.m +++ b/Classes/DialerViewController.m @@ -229,6 +229,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onAddContactClick: (id) event { [ContactSelection setSelectionMode:ContactSelectionModeEdit]; [ContactSelection setAddAddress:[addressField text]]; + [ContactSelection setSipFilter:FALSE]; ContactsViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE], ContactsViewController); if(controller != nil) { diff --git a/Classes/HistoryDetailsViewController.m b/Classes/HistoryDetailsViewController.m index 9ceee4f95..f8f0aef89 100644 --- a/Classes/HistoryDetailsViewController.m +++ b/Classes/HistoryDetailsViewController.m @@ -264,6 +264,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onAddContactClick:(id)event { [ContactSelection setSelectionMode:ContactSelectionModeEdit]; [ContactSelection setAddAddress:[[addressButton titleLabel] text]]; + [ContactSelection setSipFilter:FALSE]; ContactsViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE], ContactsViewController); if(controller != nil) { } diff --git a/Classes/LinphoneUI/UICompositeViewController.m b/Classes/LinphoneUI/UICompositeViewController.m index b12ad3052..c7e3b4030 100644 --- a/Classes/LinphoneUI/UICompositeViewController.m +++ b/Classes/LinphoneUI/UICompositeViewController.m @@ -211,9 +211,7 @@ } } - if(oldViewDescription != nil && contentViewController != nil && oldViewDescription.content != currentViewDescription.content) { - [UICompositeViewController removeSubView: contentViewController]; - } + [UICompositeViewController removeSubView: contentViewController]; if(oldViewDescription != nil && tabBarViewController != nil && oldViewDescription.tabBar != currentViewDescription.tabBar) { [UICompositeViewController removeSubView: tabBarViewController]; } @@ -311,9 +309,7 @@ // Change view if(description != nil) { - if(oldViewDescription == nil || oldViewDescription.content != currentViewDescription.content) { - [UICompositeViewController addSubView: contentViewController view:contentView]; - } + [UICompositeViewController addSubView: contentViewController view:contentView]; if(oldViewDescription == nil || oldViewDescription.tabBar != currentViewDescription.tabBar) { [UICompositeViewController addSubView: tabBarViewController view:tabBarView]; } diff --git a/Classes/LinphoneUI/UIMainBar.m b/Classes/LinphoneUI/UIMainBar.m index db5742e92..6ffeae521 100644 --- a/Classes/LinphoneUI/UIMainBar.m +++ b/Classes/LinphoneUI/UIMainBar.m @@ -273,6 +273,7 @@ - (IBAction)onContactsClick: (id) event { [ContactSelection setSelectionMode:ContactSelectionModeNone]; [ContactSelection setAddAddress:nil]; + [ContactSelection setSipFilter:FALSE]; [[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription]]; } diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index 5c14d68b2..2d0fc94df 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -334,17 +334,19 @@ static PhoneMainView* phoneMainViewInstance=nil; } - (UIViewController*)changeCurrentView:(UICompositeViewDescription*)view push:(BOOL)push { + BOOL force = push; if(!push) { + force = [viewStack count] > 1; [viewStack removeAllObjects]; } [viewStack addObject:view]; - return [self _changeCurrentView:view transition:nil]; + return [self _changeCurrentView:view transition:nil force:force]; } -- (UIViewController*)_changeCurrentView:(UICompositeViewDescription*)view transition:(CATransition*)transition { +- (UIViewController*)_changeCurrentView:(UICompositeViewDescription*)view transition:(CATransition*)transition force:(BOOL)force { [LinphoneLogger logc:LinphoneLoggerLog format:"PhoneMainView: change view %d", [view name]]; - if(![view equal: currentView]) { + if(force || ![view equal: currentView]) { if(transition == nil) transition = [PhoneMainView getTransition:currentView new:view]; [mainViewController setViewTransition:transition]; @@ -362,7 +364,7 @@ static PhoneMainView* phoneMainViewInstance=nil; while([viewStack count] > 1 && ![[viewStack lastObject] equal:view]) { [viewStack removeLastObject]; } - [self _changeCurrentView:[viewStack lastObject] transition:[PhoneMainView getBackwardTransition]]; + [self _changeCurrentView:[viewStack lastObject] transition:[PhoneMainView getBackwardTransition] force:TRUE]; } - (UICompositeViewDescription *)firstView { @@ -377,7 +379,7 @@ static PhoneMainView* phoneMainViewInstance=nil; [LinphoneLogger logc:LinphoneLoggerLog format:"PhoneMainView: Pop view"]; if([viewStack count] > 0) { [viewStack removeLastObject]; - [self _changeCurrentView:[viewStack lastObject] transition:[PhoneMainView getBackwardTransition]]; + [self _changeCurrentView:[viewStack lastObject] transition:[PhoneMainView getBackwardTransition] force:TRUE]; return [mainViewController getCurrentViewController]; } return nil; From 2163aac96db8ac1a2d4faa2996a31f61fcd6b593 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 18 Jul 2012 18:03:08 +0200 Subject: [PATCH 3/6] Adjust ChatRoom cells --- Classes/ChatRoomViewController.xib | 2 +- Classes/LinphoneUI/UIChatRoomCell.m | 64 ++++++++++++++------------- Classes/LinphoneUI/UIChatRoomCell.xib | 15 +++---- 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/Classes/ChatRoomViewController.xib b/Classes/ChatRoomViewController.xib index 6ed84a132..c8b9c4f6b 100644 --- a/Classes/ChatRoomViewController.xib +++ b/Classes/ChatRoomViewController.xib @@ -238,7 +238,6 @@ {{250, 0}, {70, 59}} - _NS:9 NO @@ -303,6 +302,7 @@ YES 17 + 2 IBCocoaTouchFramework diff --git a/Classes/LinphoneUI/UIChatRoomCell.m b/Classes/LinphoneUI/UIChatRoomCell.m index ceb4ec040..98f355cc5 100644 --- a/Classes/LinphoneUI/UIChatRoomCell.m +++ b/Classes/LinphoneUI/UIChatRoomCell.m @@ -32,8 +32,11 @@ @synthesize dateLabel; @synthesize chat; -static const CGFloat CELL_MIN_HEIGHT = 65.0f; -static const CGFloat CELL_MESSAGE_MAX_WIDTH = 280.0f; +static const CGFloat CELL_MIN_HEIGHT = 40.0f; +static const CGFloat CELL_MIN_WIDTH = 150.0f; +static const CGFloat CELL_MAX_WIDTH = 320.0f; +static const CGFloat CELL_MESSAGE_X_MARGIN = 26.0f; +static const CGFloat CELL_MESSAGE_Y_MARGIN = 33.0f; static const CGFloat CELL_FONT_SIZE = 17.0f; static UIFont *CELL_FONT = nil; @@ -115,53 +118,52 @@ static UIFont *CELL_FONT = nil; } - (void)resizeContent { - // Resize content - { - CGRect frame = [contentView frame]; - frame.origin.x = 0.0f; - frame.origin.y = 0.0f; - frame.size = [self frame].size; - [ contentView setFrame:frame]; - } - if(chat != nil) { - CGPoint center = [contentView center]; - if(![[chat direction] intValue]) { // Inverted + // Resize Content + CGRect contentFrame = [contentView frame]; + contentFrame.size = [UIChatRoomCell viewSize:[chat message]]; + if([[chat direction] intValue]) { // Inverted + contentFrame.origin.x = 0.0f; + contentFrame.origin.y = 0.0f; + } else { + contentFrame.origin.x = CELL_MAX_WIDTH - contentFrame.size.width; + contentFrame.origin.y = 0.0f; + } + [contentView setFrame:contentFrame]; + + CGRect messageFrame = [messageView frame]; + messageFrame.origin.y = ([contentView frame].size.height - messageFrame.size.height)/2; + if([[chat direction] intValue]) { // Inverted [backgroundImage setImage:[TUNinePatchCache imageOfSize:[backgroundImage bounds].size forNinePatchNamed:@"chat_bubble_incoming"]]; - center.y += 6; + messageFrame.origin.y += 5; } else { [backgroundImage setImage:[TUNinePatchCache imageOfSize:[backgroundImage bounds].size forNinePatchNamed:@"chat_bubble_outgoing"]]; - center.y -= 6; + messageFrame.origin.y -= 5; } - [messageView setCenter:center]; - } - - // Resize messageView - { - CGRect frame = [messageView frame]; - frame.size.height = [UIChatRoomCell messageHeight:[chat message]] + 10; - [messageView setFrame:frame]; + [messageView setFrame:messageFrame]; } } -+ (CGFloat)messageHeight:(NSString*)message { ++ (CGSize)viewSize:(NSString*)message { if(CELL_FONT == nil) { CELL_FONT = [UIFont systemFontOfSize:CELL_FONT_SIZE]; } CGSize messageSize = [message sizeWithFont: CELL_FONT - constrainedToSize: CGSizeMake(CELL_MESSAGE_MAX_WIDTH, 10000.0f) + constrainedToSize: CGSizeMake(CELL_MAX_WIDTH - CELL_MESSAGE_X_MARGIN, 10000.0f) lineBreakMode: UILineBreakModeTailTruncation]; - return messageSize.height; + messageSize.height += CELL_MESSAGE_Y_MARGIN; + if(messageSize.height < CELL_MIN_HEIGHT) + messageSize.height = CELL_MIN_HEIGHT; + messageSize.width += CELL_MESSAGE_X_MARGIN; + if(messageSize.width < CELL_MIN_WIDTH) + messageSize.width = CELL_MIN_WIDTH; + return messageSize; } + (CGFloat)height:(ChatModel*)chat { - CGFloat height = [UIChatRoomCell messageHeight:[chat message]]; - height += 40; - if(height < CELL_MIN_HEIGHT) - height = CELL_MIN_HEIGHT; - return height; + return [UIChatRoomCell viewSize:[chat message]].height; } diff --git a/Classes/LinphoneUI/UIChatRoomCell.xib b/Classes/LinphoneUI/UIChatRoomCell.xib index 3939cee62..822ed6cc6 100644 --- a/Classes/LinphoneUI/UIChatRoomCell.xib +++ b/Classes/LinphoneUI/UIChatRoomCell.xib @@ -40,7 +40,7 @@ 274 - {{10, 10}, {300, 120}} + {{5, 5}, {310, 130}} @@ -59,7 +59,7 @@ 274 - {280, 90} + {294, 107} @@ -92,7 +92,7 @@ 289 - {{236, 0}, {44, 44}} + {{250, 0}, {44, 44}} @@ -131,10 +131,9 @@ 265 - {{0, 90}, {280, 10}} + {{14, 107}, {280, 7}} - _NS:9 NO YES @@ -149,16 +148,16 @@ 2 1 - 12 + 10 Helvetica - 12 + 10 16 - {{20, 20}, {280, 100}} + {{13, 13}, {294, 114}} From 7d36ea76c90842800d21669c8cbf8e75d38d202b Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Thu, 19 Jul 2012 09:55:49 +0200 Subject: [PATCH 4/6] Add incall dial background/ update call states images --- Classes/LinphoneUI/UICallBar.xib | 41 ++++++++++++++++------ Resources/call_state_outgoing_default.png | Bin 1502 -> 1752 bytes Resources/call_state_ringing_default.png | Bin 2431 -> 2260 bytes Resources/dialer_alt_background.png | Bin 3373 -> 4450 bytes 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/Classes/LinphoneUI/UICallBar.xib b/Classes/LinphoneUI/UICallBar.xib index 325eef4d5..1bda79f29 100644 --- a/Classes/LinphoneUI/UICallBar.xib +++ b/Classes/LinphoneUI/UICallBar.xib @@ -14,6 +14,7 @@ IBUIButton IBUIActivityIndicatorView IBUIView + IBUIImageView IBProxyObject @@ -59,13 +60,28 @@ -2147483360 + + + 274 + {281, 260} + + + + _NS:9 + NO + IBCocoaTouchFramework + + NSImage + dialer_alt_background.png + + 292 {{-20, 10}, {107, 54}} - + 1 MC40MDAwMDAwMSAxIDEgMAA @@ -369,12 +385,9 @@ _NS:9 - + 3 - MSAwLjQAA - - 2 - + MCAwAA IBCocoaTouchFramework @@ -455,10 +468,7 @@ _NS:9 - - 3 - MCAwAA - + IBCocoaTouchFramework @@ -1154,6 +1164,7 @@ + pad @@ -1258,6 +1269,12 @@ optionsTansferButton + + 99 + + + background + @@ -1335,12 +1352,13 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 98 + 99 @@ -1613,6 +1631,7 @@ {209, 136} {209, 136} {209, 136} + {530, 526} {209, 136} {209, 136} {222, 136} diff --git a/Resources/call_state_outgoing_default.png b/Resources/call_state_outgoing_default.png index ca1f8f99b8248338a1c65030b4ecd62f6ebd45fd..df3aa5e7ee553af524ca55dc6acbde935ddf6471 100644 GIT binary patch literal 1752 zcmaJ?Yfuwc6y9VLo}xS|g-CRX6_7%n5RyP7NWf&8U<^1?AC){7lR~mfvPg8C5&bjB# z?ogzy@bRK}0RZ45m57!2m+pE!+yH<8wJ)&YK`@q*iKQdiSb@p}14&v$4MS3cY7?x4 zRoX3i4mbe-K$<=y6U&s#1RBIZSGh2Bivh*i0FaPqK~<76C3`fH4(hG2|M}0*jC~sVl(Ou5AVl znuK6ELfU&%nQ{e`jF@03md=dUFu6>K%c8S5F>!HmQ4pKSVltR)28$idiW6|y0wxoh zdT4kylQvtR6sJz*!XqI~hheCI!6+ywpcioHh-njp#pm-~8fJo%~Nf{8^*AxPzH<6bd@v>l*|7gYB0>8 z&6pDY;P*d;%^6!zn4yHtNWMvfA6)igS1MGHY=Tu7V#+{}-03bVbO?r+bqES2r^iBa zl}2xL#gllsTp%@?F_lpROT|JOu0Yr8wRks^_}thOelnlWW3f_LN!(a*GM|^qjAL@S zsa)nXSBz-#4X_cL=4wB1lV;_*M!|sMnZ>Y4zZur1nh*mtS+YPsyO+3G^`^Mm*}d>) z!7E%@ab_aXT}x}W(FTN;?r)z#~NXZHTZ3jNySMSmiy|r6BCIb_Xy4)?AHiJSdSPSCp@cU1672j+Tv!B|7D_+<2(}rS%Y@u-6@317C3^wJ-Dmo z_eK44vvXV2#F1ZsbD)DE6HzDf*3R`6@s^;3z+78VnBB8&%>BXXZjkhOMZQ6x${d{_5WZv|*lFyQ;*Il0>@L69z|Pbd_&bZtft*@PhlYeD`~u+;%U*C(t{@+1XENuimSA z;PLn1JZQLM&Ct6NZev7iZY1-q`E+pF$$FBhk=9?kqD@i>jV~lpFV-|QO2R6@wdl^h z2Xxfv_3wOxhP~Q6#?k#9q@C-t&i4`Sl#7GBMovAsdF0_37+m#5x1WZ$?9HwI&K&P+ zS;{~A-9nt#MY*Yx#L%vdL{>!9DZ*&DBAGgJzoemzXXD<`Q7h*Iq#$_-+*8)u)aB6o z`RQ(3&ph4;{X}%qATCi&*U2YBDsB)*bD{RqC7*Vct$zF*g?!zeT@sD3M+8<-i_VjJ zej9=JNOyZHur*fYx%Po`Lp6)0_P%+gn} z!3~b4x%>Yr@ZV5uXM%E#-7;Y4p(2 zFOLI0^<)EKS@+SW-k`QxRzqO#Q@FnbS_9S`-EeMI`7TL02n>nW37gMiEZ4tAnvy1N IS)Nt=4=BEZ4gdfE delta 1492 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 bzUwO#WZgW>{9*6n0>Bx&Z)~4f`z8DnsQFSc delta 730 zcmaE)v{q_@IF}Fy8v_I5J1a5Gjf$#FF@^@_7EX?i&dw&L&W47rhE68trcTD@rY1(l zuEqwgE=md&xdpzyRxbI;rManjC7v#}Ns9qObdM7VpGJsj&h)a=@LUBn@ zYMNCFZVQ}n>7A^{>{Q>X9qz%vz`4-V#WAGf)|(5AybJ~$%o~dTTWvHHN|_Mmr0r>c zEnLC5jYrZb<-`Oii3yEZb)1uAys)Lx2^=L9kGST^L~s>^Kkj$xdKkIAFl@_+RZkxAl)Fcu1rMua*2DH2EW|10xHN zw4XeQO?$F1oA~5FHc{Dw=IRX9r2#Aq42KNfe0VP`eUyE=$Bo6av(7S9@J`}To$SY9 zJvo6x6NZ^x4zWx=z~wD_z*(JPcWD4KP@{v+kMEtmhuJe#-xS^q$!0q+d2#`}>SRlf z0GKWyEym=-FnJAE^5nf-K|m}#S%%AcvL2Tv6syYpDPY`E9 B<#hl6 From 36d144156fa054dba9bb107b6847de3e16dfbdb8 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Thu, 19 Jul 2012 11:28:38 +0200 Subject: [PATCH 5/6] Rename history details images --- Classes/HistoryDetailsViewController.xib | 25 ++++----- ...lt.png => history_details_add_default.png} | Bin ..._over.png => history_details_add_over.png} | Bin ...t.png => history_details_back_default.png} | Bin ...over.png => history_details_back_over.png} | Bin linphone.xcodeproj/project.pbxproj | 48 +++++++++--------- 6 files changed, 37 insertions(+), 36 deletions(-) rename Resources/{history_add_default.png => history_details_add_default.png} (100%) rename Resources/{history_add_over.png => history_details_add_over.png} (100%) rename Resources/{history_back_default.png => history_details_back_default.png} (100%) rename Resources/{history_back_over.png => history_details_back_over.png} (100%) diff --git a/Classes/HistoryDetailsViewController.xib b/Classes/HistoryDetailsViewController.xib index ef9273c73..7deedb7e5 100644 --- a/Classes/HistoryDetailsViewController.xib +++ b/Classes/HistoryDetailsViewController.xib @@ -78,11 +78,11 @@ NSImage - history_back_over.png + history_details_back_over.png NSImage - history_back_default.png + history_details_back_default.png 2 @@ -113,11 +113,11 @@ NSImage - history_add_over.png + history_details_add_over.png NSImage - history_add_default.png + history_details_add_default.png @@ -417,6 +417,7 @@ {{33, 273}, {255, 50}} + _NS:9 NO IBCocoaTouchFramework @@ -633,7 +634,7 @@ 8 - barBackground + background 9 @@ -753,7 +754,7 @@ 50 - backButton + addButton @@ -780,11 +781,11 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - + @@ -896,10 +897,10 @@ {550, 101} {550, 101} {5, 117} - {320, 117} - {320, 117} - {320, 117} - {320, 117} + {320, 117} + {320, 117} + {320, 117} + {320, 117} 1181 diff --git a/Resources/history_add_default.png b/Resources/history_details_add_default.png similarity index 100% rename from Resources/history_add_default.png rename to Resources/history_details_add_default.png diff --git a/Resources/history_add_over.png b/Resources/history_details_add_over.png similarity index 100% rename from Resources/history_add_over.png rename to Resources/history_details_add_over.png diff --git a/Resources/history_back_default.png b/Resources/history_details_back_default.png similarity index 100% rename from Resources/history_back_default.png rename to Resources/history_details_back_default.png diff --git a/Resources/history_back_over.png b/Resources/history_details_back_over.png similarity index 100% rename from Resources/history_back_over.png rename to Resources/history_details_back_over.png diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 603f1d2a0..d4a3740c7 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -185,14 +185,14 @@ 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 */; }; - D3157A8A15B4466F00DD8C4C /* history_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8815B4466F00DD8C4C /* history_add_default.png */; }; - D3157A8B15B4466F00DD8C4C /* history_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8815B4466F00DD8C4C /* history_add_default.png */; }; - D3157A8C15B4466F00DD8C4C /* history_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8915B4466F00DD8C4C /* history_add_over.png */; }; - D3157A8D15B4466F00DD8C4C /* history_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8915B4466F00DD8C4C /* history_add_over.png */; }; - D3157A9015B446CB00DD8C4C /* history_back_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8E15B446CB00DD8C4C /* history_back_default.png */; }; - D3157A9115B446CB00DD8C4C /* history_back_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8E15B446CB00DD8C4C /* history_back_default.png */; }; - D3157A9215B446CB00DD8C4C /* history_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8F15B446CB00DD8C4C /* history_back_over.png */; }; - D3157A9315B446CB00DD8C4C /* history_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8F15B446CB00DD8C4C /* history_back_over.png */; }; + D3157A8A15B4466F00DD8C4C /* history_details_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8815B4466F00DD8C4C /* history_details_add_default.png */; }; + D3157A8B15B4466F00DD8C4C /* history_details_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8815B4466F00DD8C4C /* history_details_add_default.png */; }; + D3157A8C15B4466F00DD8C4C /* history_details_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8915B4466F00DD8C4C /* history_details_add_over.png */; }; + D3157A8D15B4466F00DD8C4C /* history_details_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8915B4466F00DD8C4C /* history_details_add_over.png */; }; + D3157A9015B446CB00DD8C4C /* history_details_back_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8E15B446CB00DD8C4C /* history_details_back_default.png */; }; + D3157A9115B446CB00DD8C4C /* history_details_back_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8E15B446CB00DD8C4C /* history_details_back_default.png */; }; + D3157A9215B446CB00DD8C4C /* history_details_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8F15B446CB00DD8C4C /* history_details_back_over.png */; }; + D3157A9315B446CB00DD8C4C /* history_details_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3157A8F15B446CB00DD8C4C /* history_details_back_over.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 */; }; @@ -1104,10 +1104,10 @@ 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 = ""; }; - D3157A8815B4466F00DD8C4C /* history_add_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_add_default.png; path = Resources/history_add_default.png; sourceTree = ""; }; - D3157A8915B4466F00DD8C4C /* history_add_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_add_over.png; path = Resources/history_add_over.png; sourceTree = ""; }; - D3157A8E15B446CB00DD8C4C /* history_back_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_back_default.png; path = Resources/history_back_default.png; sourceTree = ""; }; - D3157A8F15B446CB00DD8C4C /* history_back_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_back_over.png; path = Resources/history_back_over.png; sourceTree = ""; }; + D3157A8815B4466F00DD8C4C /* history_details_add_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_details_add_default.png; path = Resources/history_details_add_default.png; sourceTree = ""; }; + D3157A8915B4466F00DD8C4C /* history_details_add_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_details_add_over.png; path = Resources/history_details_add_over.png; sourceTree = ""; }; + D3157A8E15B446CB00DD8C4C /* history_details_back_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_details_back_default.png; path = Resources/history_details_back_default.png; sourceTree = ""; }; + D3157A8F15B446CB00DD8C4C /* history_details_back_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_details_back_over.png; path = Resources/history_details_back_over.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 = ""; }; @@ -2202,12 +2202,12 @@ D3F83EFB158205A100336684 /* hangup_over.png */, D36C43CE158F2F370048BA40 /* header_conference.png */, D3F26BFB15987083005F9CAB /* header_incoming.png */, - D3157A8815B4466F00DD8C4C /* history_add_default.png */, - D3157A8915B4466F00DD8C4C /* history_add_over.png */, + D3157A8815B4466F00DD8C4C /* history_details_add_default.png */, + D3157A8915B4466F00DD8C4C /* history_details_add_over.png */, D3ED3E9315872EF1006C0DE4 /* history_all_default.png */, D3ED3E9215872EF1006C0DE4 /* history_all_selected.png */, - D3157A8E15B446CB00DD8C4C /* history_back_default.png */, - D3157A8F15B446CB00DD8C4C /* history_back_over.png */, + D3157A8E15B446CB00DD8C4C /* history_details_back_default.png */, + D3157A8F15B446CB00DD8C4C /* history_details_back_over.png */, D347347C1580E5F8003C7B8C /* history_default.png */, D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */, D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */, @@ -2827,10 +2827,10 @@ D3E84F2A15B00F4100420DAC /* dialer_alt_background.png in Resources */, D3E84F3815B011AF00420DAC /* contact_cancel_default.png in Resources */, D3E84F3A15B011AF00420DAC /* contact_cancel_over.png in Resources */, - D3157A8A15B4466F00DD8C4C /* history_add_default.png in Resources */, - D3157A8C15B4466F00DD8C4C /* history_add_over.png in Resources */, - D3157A9015B446CB00DD8C4C /* history_back_default.png in Resources */, - D3157A9215B446CB00DD8C4C /* history_back_over.png in Resources */, + D3157A8A15B4466F00DD8C4C /* history_details_add_default.png in Resources */, + D3157A8C15B4466F00DD8C4C /* history_details_add_over.png in Resources */, + D3157A9015B446CB00DD8C4C /* history_details_back_default.png in Resources */, + D3157A9215B446CB00DD8C4C /* history_details_back_over.png in Resources */, D3119E7215B6A4710005D4A4 /* contacts_back_default.png in Resources */, D3119E7415B6A4710005D4A4 /* contacts_back_over.png in Resources */, ); @@ -3079,10 +3079,10 @@ D3E84F2B15B00F4100420DAC /* dialer_alt_background.png in Resources */, D3E84F3915B011AF00420DAC /* contact_cancel_default.png in Resources */, D3E84F3B15B011AF00420DAC /* contact_cancel_over.png in Resources */, - D3157A8B15B4466F00DD8C4C /* history_add_default.png in Resources */, - D3157A8D15B4466F00DD8C4C /* history_add_over.png in Resources */, - D3157A9115B446CB00DD8C4C /* history_back_default.png in Resources */, - D3157A9315B446CB00DD8C4C /* history_back_over.png in Resources */, + D3157A8B15B4466F00DD8C4C /* history_details_add_default.png in Resources */, + D3157A8D15B4466F00DD8C4C /* history_details_add_over.png in Resources */, + D3157A9115B446CB00DD8C4C /* history_details_back_default.png in Resources */, + D3157A9315B446CB00DD8C4C /* history_details_back_over.png in Resources */, D3119E7315B6A4710005D4A4 /* contacts_back_default.png in Resources */, D3119E7515B6A4710005D4A4 /* contacts_back_over.png in Resources */, ); From c11f21a63f0ed79a26398841a9cd75517980a3cd Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Thu, 19 Jul 2012 11:30:08 +0200 Subject: [PATCH 6/6] Fix media encryption choose issue Add security state image --- Classes/LinphoneCoreSettingsStore.m | 4 +- Classes/LinphoneUI/UIStateBar.h | 2 + Classes/LinphoneUI/UIStateBar.m | 64 ++++++++++++++++++++++++++++- Classes/LinphoneUI/UIStateBar.xib | 38 +++++++++++++++-- 4 files changed, 101 insertions(+), 7 deletions(-) diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index 7a57b6f42..a26823e82 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -361,9 +361,9 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); linphone_core_enable_video(lc, enableVideo, enableVideo); NSString *menc = [self stringForKey:@"media_encryption_preference"]; - if (menc && [menc compare:@"SRTP"]) + if (menc && [menc compare:@"SRTP"] == NSOrderedSame) linphone_core_set_media_encryption(lc, LinphoneMediaEncryptionSRTP); - else if (menc && [menc compare:@"ZRTP"]) + else if (menc && [menc compare:@"ZRTP"] == NSOrderedSame) linphone_core_set_media_encryption(lc, LinphoneMediaEncryptionZRTP); else linphone_core_set_media_encryption(lc, LinphoneMediaEncryptionNone); diff --git a/Classes/LinphoneUI/UIStateBar.h b/Classes/LinphoneUI/UIStateBar.h index e9033cb53..76be85a2c 100644 --- a/Classes/LinphoneUI/UIStateBar.h +++ b/Classes/LinphoneUI/UIStateBar.h @@ -23,10 +23,12 @@ UIImageView* registrationStateImage; UILabel* registrationStateLabel; UIImageView* callQualityImage; + UIImageView* callSecurityImage; } @property (nonatomic, retain) IBOutlet UIImageView* registrationStateImage; @property (nonatomic, retain) IBOutlet UILabel* registrationStateLabel; @property (nonatomic, retain) IBOutlet UIImageView* callQualityImage; +@property (nonatomic, retain) IBOutlet UIImageView* callSecurityImage; @end diff --git a/Classes/LinphoneUI/UIStateBar.m b/Classes/LinphoneUI/UIStateBar.m index 1b14f74e5..da0d611c3 100644 --- a/Classes/LinphoneUI/UIStateBar.m +++ b/Classes/LinphoneUI/UIStateBar.m @@ -27,14 +27,21 @@ @synthesize registrationStateImage; @synthesize registrationStateLabel; @synthesize callQualityImage; +@synthesize callSecurityImage; NSTimer *callQualityTimer; +NSTimer *callSecurityTimer; #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"UIStateBar" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:@"UIStateBar" bundle:[NSBundle mainBundle]]; + if(self != nil) { + self->callSecurityImage = nil; + self->callQualityImage = nil; + } + return self; } - (void) dealloc { @@ -57,6 +64,13 @@ NSTimer *callQualityTimer; userInfo:nil repeats:YES]; + // Set callQualityTimer + callSecurityTimer = [NSTimer scheduledTimerWithTimeInterval:1 + target:self + selector:@selector(callSecurityUpdate) + userInfo:nil + repeats:YES]; + // Set observer [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(registrationUpdate:) @@ -65,6 +79,7 @@ NSTimer *callQualityTimer; [callQualityImage setHidden: true]; + [callSecurityImage setHidden: true]; // Update to default state LinphoneProxyConfig* config = NULL; @@ -81,7 +96,14 @@ NSTimer *callQualityTimer; name:@"LinphoneRegistrationUpdate" object:nil]; - [callQualityTimer invalidate]; + if(callQualityTimer != nil) { + [callQualityTimer invalidate]; + callQualityTimer = nil; + } + if(callQualityTimer != nil) { + [callSecurityTimer invalidate]; + callSecurityTimer = nil; + } } @@ -157,6 +179,44 @@ NSTimer *callQualityTimer; #pragma mark - +- (void)callSecurityUpdate { + BOOL pending = false; + BOOL security = true; + + if(![LinphoneManager isLcReady]) { + [callSecurityImage setHidden: true]; + return; + } + const MSList *list = linphone_core_get_calls([LinphoneManager getLc]); + if(list == NULL) { + [callSecurityImage setHidden: true]; + return; + } + while(list != NULL) { + LinphoneCall *call = (LinphoneCall*) list->data; + LinphoneMediaEncryption enc = linphone_call_params_get_media_encryption(linphone_call_get_current_params(call)); + if(enc == LinphoneMediaEncryptionNone) + security = false; + else if(enc == LinphoneMediaEncryptionZRTP) { + if(!linphone_call_get_authentication_token_verified(call)) { + pending = true; + } + } + list = list->next; + } + + if(security) { + if(pending) { + [callSecurityImage setImage:[UIImage imageNamed:@"security_pending.png"]]; + } else { + [callSecurityImage setImage:[UIImage imageNamed:@"security_ok.png"]]; + } + } else { + [callSecurityImage setImage:[UIImage imageNamed:@"security_ko.png"]]; + } + [callSecurityImage setHidden: false]; +} + - (void)callQualityUpdate { UIImage *image = nil; if([LinphoneManager isLcReady]) { diff --git a/Classes/LinphoneUI/UIStateBar.xib b/Classes/LinphoneUI/UIStateBar.xib index ff171f256..23f0c3c49 100644 --- a/Classes/LinphoneUI/UIStateBar.xib +++ b/Classes/LinphoneUI/UIStateBar.xib @@ -103,11 +103,22 @@ {{219, 3}, {27, 17}} - + _NS:567 NO IBCocoaTouchFramework + + + 292 + {{254, 3}, {27, 17}} + + + _NS:567 + 1 + NO + IBCocoaTouchFramework + {320, 23} @@ -155,6 +166,14 @@ 16 + + + callSecurityImage + + + + 18 + @@ -183,6 +202,7 @@ + @@ -208,7 +228,13 @@ 13 - callQualityIndicatorImage + callQualityImage + + + 17 + + + callSecurityImage @@ -219,6 +245,7 @@ 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 @@ -227,7 +254,7 @@ - 16 + 18 @@ -236,6 +263,7 @@ UIViewController UIImageView + UIImageView UIImageView UILabel @@ -244,6 +272,10 @@ callQualityImage UIImageView + + callSecurityImage + UIImageView + registrationStateImage UIImageView