diff --git a/Classes/AboutView.h b/Classes/AboutView.h new file mode 100644 index 000000000..c46f7f99f --- /dev/null +++ b/Classes/AboutView.h @@ -0,0 +1,39 @@ +/* AboutViewController.h + * + * Copyright (C) 2009 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 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. + */ + +#import + +#import "UICompositeView.h" + +@interface AboutView : UIViewController { +} + +@property(nonatomic, strong) IBOutlet UILabel *linphoneLabel; +@property(nonatomic, strong) IBOutlet UILabel *linphoneIphoneVersionLabel; +@property(nonatomic, strong) IBOutlet UILabel *linphoneCoreVersionLabel; +@property(nonatomic, strong) IBOutlet UIView *contentView; +@property(nonatomic, strong) IBOutlet UILabel *linkLabel; +@property(nonatomic, strong) IBOutlet UILabel *copyrightLabel; +@property(nonatomic, strong) IBOutlet UILabel *licenseLabel; +@property(nonatomic, strong) IBOutlet UIWebView *licensesView; +@property(nonatomic, strong) IBOutlet UITapGestureRecognizer *linkTapGestureRecognizer; + +- (IBAction)onLinkTap:(id)sender; + +@end diff --git a/Classes/AboutViewController.m b/Classes/AboutView.m similarity index 92% rename from Classes/AboutViewController.m rename to Classes/AboutView.m index 0b7733d60..ee0d2a6cc 100644 --- a/Classes/AboutViewController.m +++ b/Classes/AboutView.m @@ -22,7 +22,7 @@ #include "linphone/lpconfig.h" #include "LinphoneIOSVersion.h" -@implementation AboutViewController +@implementation AboutView @synthesize linphoneCoreVersionLabel; @synthesize linphoneLabel; @@ -37,7 +37,7 @@ #pragma mark - Lifecycle Functions - (id)init { - self = [super initWithNibName:@"AboutViewController" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; if (self != nil) { self->linkTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onLinkTap:)]; @@ -72,7 +72,7 @@ [LinphoneUtils adjustFontSize:self.view mult:2.22f]; } - [AboutViewController removeBackground:licensesView]; + [AboutView removeBackground:licensesView]; // Create a request to the resource NSURLRequest *request = @@ -80,7 +80,7 @@ // Load the resource using the request [licensesView setDelegate:self]; [licensesView loadRequest:request]; - [[AboutViewController defaultScrollView:licensesView] setScrollEnabled:FALSE]; + [[AboutView defaultScrollView:licensesView] setScrollEnabled:FALSE]; } #pragma mark - UICompositeViewDelegate Functions @@ -90,9 +90,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"About" - content:@"AboutViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"AboutView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; diff --git a/Classes/AboutViewController.h b/Classes/AboutViewController.h deleted file mode 100644 index 033177e26..000000000 --- a/Classes/AboutViewController.h +++ /dev/null @@ -1,39 +0,0 @@ -/* AboutViewController.h - * - * Copyright (C) 2009 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 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. - */ - -#import - -#import "UICompositeViewController.h" - -@interface AboutViewController : UIViewController { -} - -@property (nonatomic, strong) IBOutlet UILabel *linphoneLabel; -@property (nonatomic, strong) IBOutlet UILabel *linphoneIphoneVersionLabel; -@property (nonatomic, strong) IBOutlet UILabel *linphoneCoreVersionLabel; -@property (nonatomic, strong) IBOutlet UIView *contentView; -@property (nonatomic, strong) IBOutlet UILabel *linkLabel; -@property (nonatomic, strong) IBOutlet UILabel *copyrightLabel; -@property (nonatomic, strong) IBOutlet UILabel *licenseLabel; -@property (nonatomic, strong) IBOutlet UIWebView *licensesView; -@property (nonatomic, strong) IBOutlet UITapGestureRecognizer *linkTapGestureRecognizer; - -- (IBAction)onLinkTap:(id)sender; - -@end diff --git a/Classes/AssistantViewController.h b/Classes/AssistantView.h similarity index 92% rename from Classes/AssistantViewController.h rename to Classes/AssistantView.h index e16ee7284..04aea901a 100644 --- a/Classes/AssistantViewController.h +++ b/Classes/AssistantView.h @@ -19,11 +19,11 @@ #import #import -#import "UICompositeViewController.h" +#import "UICompositeView.h" #import "TPKeyboardAvoidingScrollView.h" -@interface AssistantViewController : TPMultiLayoutViewController { +@interface AssistantView : TPMultiLayoutViewController { @private UITextField *activeTextField; UIView *currentView; diff --git a/Classes/AssistantViewController.m b/Classes/AssistantView.m similarity index 97% rename from Classes/AssistantViewController.m rename to Classes/AssistantView.m index e2ca4376b..58ffc924d 100644 --- a/Classes/AssistantViewController.m +++ b/Classes/AssistantView.m @@ -18,7 +18,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "AssistantViewController.h" +#import "AssistantView.h" #import "LinphoneManager.h" #import "PhoneMainView.h" #import "UITextField+DoneButton.h" @@ -40,12 +40,12 @@ typedef enum _ViewElement { ViewElement_Username_Error = 404, } ViewElement; -@implementation AssistantViewController +@implementation AssistantView #pragma mark - Lifecycle Functions - (id)init { - self = [super initWithNibName:@"AssistantViewController" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; if (self != nil) { [[NSBundle mainBundle] loadNibNamed:@"AssistantViews" owner:self options:nil]; historyViews = [[NSMutableArray alloc] init]; @@ -65,8 +65,8 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"Assistant" - content:@"AssistantViewController" - stateBar:@"UIStateBar" + content:@"AssistantView" + stateBar:@"StatusBarViewController" tabBar:nil fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] @@ -131,7 +131,7 @@ static UICompositeViewDescription *compositeDescription = nil; [(UITextField *)view setText:@""]; } else { for (UIView *subview in view.subviews) { - [AssistantViewController cleanTextField:subview]; + [AssistantView cleanTextField:subview]; } } } @@ -181,12 +181,12 @@ static UICompositeViewDescription *compositeDescription = nil; } - (void)resetTextFields { - [AssistantViewController cleanTextField:_welcomeView]; - [AssistantViewController cleanTextField:_createAccountView]; - [AssistantViewController cleanTextField:_linphoneLoginView]; - [AssistantViewController cleanTextField:_loginView]; - [AssistantViewController cleanTextField:_createAccountActivationView]; - [AssistantViewController cleanTextField:_remoteProvisionningView]; + [AssistantView cleanTextField:_welcomeView]; + [AssistantView cleanTextField:_createAccountView]; + [AssistantView cleanTextField:_linphoneLoginView]; + [AssistantView cleanTextField:_loginView]; + [AssistantView cleanTextField:_createAccountActivationView]; + [AssistantView cleanTextField:_remoteProvisionningView]; } - (void)reset { @@ -479,7 +479,7 @@ static UICompositeViewDescription *compositeDescription = nil; switch (state) { case LinphoneRegistrationOk: { _waitView.hidden = true; - [[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]]; break; } case LinphoneRegistrationNone: @@ -605,7 +605,7 @@ static UICompositeViewDescription *compositeDescription = nil; } - (IBAction)onDialerBackClick:(id)sender { - [[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]]; } - (IBAction)onGotoCreateAccountClick:(id)sender { @@ -690,8 +690,7 @@ static UICompositeViewDescription *compositeDescription = nil; block:^{ _waitView.hidden = true; [self addProxyConfig:username password:password domain:domain withTransport:transport]; - [[PhoneMainView instance] - changeCurrentView:[DialerViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]]; }]; [alert show]; } else { diff --git a/Classes/Base.lproj/AboutViewController.xib b/Classes/Base.lproj/AboutView.xib similarity index 98% rename from Classes/Base.lproj/AboutViewController.xib rename to Classes/Base.lproj/AboutView.xib index e40e0926b..9b6c8fcae 100644 --- a/Classes/Base.lproj/AboutViewController.xib +++ b/Classes/Base.lproj/AboutView.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/Base.lproj/AssistantViewController.xib b/Classes/Base.lproj/AssistantView.xib similarity index 98% rename from Classes/Base.lproj/AssistantViewController.xib rename to Classes/Base.lproj/AssistantView.xib index 492e5ad61..5309592e2 100644 --- a/Classes/Base.lproj/AssistantViewController.xib +++ b/Classes/Base.lproj/AssistantView.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/Base.lproj/AssistantViews.xib b/Classes/Base.lproj/AssistantViews.xib index b40fd8ccb..395cd038b 100644 --- a/Classes/Base.lproj/AssistantViews.xib +++ b/Classes/Base.lproj/AssistantViews.xib @@ -4,7 +4,7 @@ - + diff --git a/Classes/Base.lproj/IncomingCallViewController.xib b/Classes/Base.lproj/CallIncomingView.xib similarity index 99% rename from Classes/Base.lproj/IncomingCallViewController.xib rename to Classes/Base.lproj/CallIncomingView.xib index 0364d5f6d..690005f4a 100644 --- a/Classes/Base.lproj/IncomingCallViewController.xib +++ b/Classes/Base.lproj/CallIncomingView.xib @@ -4,7 +4,7 @@ - + diff --git a/Classes/Base.lproj/OutgoingCallViewController.xib b/Classes/Base.lproj/CallOutgoingView.xib similarity index 99% rename from Classes/Base.lproj/OutgoingCallViewController.xib rename to Classes/Base.lproj/CallOutgoingView.xib index 710706c99..e4c364ceb 100644 --- a/Classes/Base.lproj/OutgoingCallViewController.xib +++ b/Classes/Base.lproj/CallOutgoingView.xib @@ -4,7 +4,7 @@ - + diff --git a/Classes/Base.lproj/InCallViewController.xib b/Classes/Base.lproj/CallView.xib similarity index 99% rename from Classes/Base.lproj/InCallViewController.xib rename to Classes/Base.lproj/CallView.xib index dbfbcebad..0c01439a5 100644 --- a/Classes/Base.lproj/InCallViewController.xib +++ b/Classes/Base.lproj/CallView.xib @@ -1,11 +1,10 @@ - - + @@ -18,7 +17,7 @@ - + @@ -67,7 +66,7 @@ - + diff --git a/Classes/Base.lproj/ChatRoomViewController.xib b/Classes/Base.lproj/ChatConversationView.xib similarity index 99% rename from Classes/Base.lproj/ChatRoomViewController.xib rename to Classes/Base.lproj/ChatConversationView.xib index de363f169..12181a4ff 100644 --- a/Classes/Base.lproj/ChatRoomViewController.xib +++ b/Classes/Base.lproj/ChatConversationView.xib @@ -4,7 +4,7 @@ - + @@ -185,7 +185,7 @@ - + diff --git a/Classes/Base.lproj/ChatViewController.xib b/Classes/Base.lproj/ChatsListView.xib similarity index 98% rename from Classes/Base.lproj/ChatViewController.xib rename to Classes/Base.lproj/ChatsListView.xib index 247ffdac9..ce8c9c3b5 100644 --- a/Classes/Base.lproj/ChatViewController.xib +++ b/Classes/Base.lproj/ChatsListView.xib @@ -1,18 +1,17 @@ - - + - + diff --git a/Classes/Base.lproj/ContactDetailsLabelViewController.xib b/Classes/Base.lproj/ContactDetailsLabelView.xib similarity index 97% rename from Classes/Base.lproj/ContactDetailsLabelViewController.xib rename to Classes/Base.lproj/ContactDetailsLabelView.xib index 137f12a87..b38686d5b 100644 --- a/Classes/Base.lproj/ContactDetailsLabelViewController.xib +++ b/Classes/Base.lproj/ContactDetailsLabelView.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/Base.lproj/ContactDetailsViewController.xib b/Classes/Base.lproj/ContactDetailsView.xib similarity index 98% rename from Classes/Base.lproj/ContactDetailsViewController.xib rename to Classes/Base.lproj/ContactDetailsView.xib index 7d979c7c2..87cd5d5e1 100644 --- a/Classes/Base.lproj/ContactDetailsViewController.xib +++ b/Classes/Base.lproj/ContactDetailsView.xib @@ -1,11 +1,10 @@ - - + @@ -92,7 +91,7 @@ - + diff --git a/Classes/Base.lproj/ContactsViewController.xib b/Classes/Base.lproj/ContactsListView.xib similarity index 99% rename from Classes/Base.lproj/ContactsViewController.xib rename to Classes/Base.lproj/ContactsListView.xib index 50823136a..eedf33809 100644 --- a/Classes/Base.lproj/ContactsViewController.xib +++ b/Classes/Base.lproj/ContactsListView.xib @@ -1,11 +1,10 @@ - - + @@ -19,7 +18,7 @@ - + diff --git a/Classes/Base.lproj/DialerViewController.xib b/Classes/Base.lproj/DialerView.xib similarity index 99% rename from Classes/Base.lproj/DialerViewController.xib rename to Classes/Base.lproj/DialerView.xib index 351f89005..edf9160a3 100644 --- a/Classes/Base.lproj/DialerViewController.xib +++ b/Classes/Base.lproj/DialerView.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/Base.lproj/HistoryDetailsViewController.xib b/Classes/Base.lproj/HistoryDetailsView.xib similarity index 99% rename from Classes/Base.lproj/HistoryDetailsViewController.xib rename to Classes/Base.lproj/HistoryDetailsView.xib index c95b809e4..b2843b6cd 100644 --- a/Classes/Base.lproj/HistoryDetailsViewController.xib +++ b/Classes/Base.lproj/HistoryDetailsView.xib @@ -4,7 +4,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/Classes/Base.lproj/HistoryViewController.xib b/Classes/Base.lproj/HistoryListView.xib similarity index 98% rename from Classes/Base.lproj/HistoryViewController.xib rename to Classes/Base.lproj/HistoryListView.xib index 574286a6c..bca1d7cbd 100644 --- a/Classes/Base.lproj/HistoryViewController.xib +++ b/Classes/Base.lproj/HistoryListView.xib @@ -1,11 +1,10 @@ - - + @@ -112,7 +111,7 @@ - + diff --git a/Classes/Base.lproj/ImageViewController.xib b/Classes/Base.lproj/ImageView.xib similarity index 98% rename from Classes/Base.lproj/ImageViewController.xib rename to Classes/Base.lproj/ImageView.xib index b77debdc4..cb87298f3 100644 --- a/Classes/Base.lproj/ImageViewController.xib +++ b/Classes/Base.lproj/ImageView.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/Base.lproj/PhoneMainView.xib b/Classes/Base.lproj/PhoneMainView.xib index fc4bcf35d..cbd50da04 100644 --- a/Classes/Base.lproj/PhoneMainView.xib +++ b/Classes/Base.lproj/PhoneMainView.xib @@ -1,7 +1,6 @@ - @@ -38,7 +37,7 @@ - + diff --git a/Classes/Base.lproj/SettingsViewController.xib b/Classes/Base.lproj/SettingsView.xib similarity index 96% rename from Classes/Base.lproj/SettingsViewController.xib rename to Classes/Base.lproj/SettingsView.xib index 584610896..a44424f28 100644 --- a/Classes/Base.lproj/SettingsViewController.xib +++ b/Classes/Base.lproj/SettingsView.xib @@ -1,12 +1,11 @@ - - + diff --git a/Classes/CallIncomingView.h b/Classes/CallIncomingView.h new file mode 100644 index 000000000..4303a4a4b --- /dev/null +++ b/Classes/CallIncomingView.h @@ -0,0 +1,45 @@ +/* IncomingCallViewController.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 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. + */ + +#import + +#import "UICompositeView.h" +#import "TPMultiLayoutViewController.h" +#include "LinphoneManager.h" + +@protocol IncomingCallViewDelegate + +- (void)incomingCallAccepted:(LinphoneCall *)call; +- (void)incomingCallDeclined:(LinphoneCall *)call; +- (void)incomingCallAborted:(LinphoneCall *)call; + +@end + +@interface CallIncomingView : TPMultiLayoutViewController { +} +@property(weak, nonatomic) IBOutlet UILabel *nameLabel; +@property(nonatomic, strong) IBOutlet UILabel *addressLabel; +@property(nonatomic, strong) IBOutlet UIImageView *avatarImage; +@property(nonatomic, assign) LinphoneCall *call; +@property(nonatomic, strong) id delegate; + +- (IBAction)onAcceptClick:(id)event; +- (IBAction)onDeclineClick:(id)event; + +@end diff --git a/Classes/IncomingCallViewController.m b/Classes/CallIncomingView.m similarity index 92% rename from Classes/IncomingCallViewController.m rename to Classes/CallIncomingView.m index 85db20a7e..102664011 100644 --- a/Classes/IncomingCallViewController.m +++ b/Classes/CallIncomingView.m @@ -17,13 +17,13 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "IncomingCallViewController.h" +#import "CallIncomingView.h" #import "LinphoneManager.h" #import "FastAddressBook.h" #import "PhoneMainView.h" -#import "UILinphone.h" +#import "Utils.h" -@implementation IncomingCallViewController +@implementation CallIncomingView @synthesize addressLabel; @synthesize avatarImage; @@ -33,7 +33,7 @@ #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"IncomingCallViewController" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } - (void)dealloc { @@ -64,8 +64,8 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"IncomingCall" - content:@"IncomingCallViewController" - stateBar:@"UIStateBar" + content:@"CallIncomingView" + stateBar:@"StatusBarViewController" tabBar:nil fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] @@ -93,7 +93,7 @@ static UICompositeViewDescription *compositeDescription = nil; } - (void)dismiss { - if ([[[PhoneMainView instance] currentView] equal:[IncomingCallViewController compositeViewDescription]]) { + if ([[[PhoneMainView instance] currentView] equal:[CallIncomingView compositeViewDescription]]) { [[PhoneMainView instance] popCurrentView]; } } diff --git a/Classes/OutgoingCallViewController.h b/Classes/CallOutgoingView.h similarity index 89% rename from Classes/OutgoingCallViewController.h rename to Classes/CallOutgoingView.h index 41196e98c..183975da9 100644 --- a/Classes/OutgoingCallViewController.h +++ b/Classes/CallOutgoingView.h @@ -19,12 +19,12 @@ #import -#import "UICompositeViewController.h" +#import "UICompositeView.h" #import "TPMultiLayoutViewController.h" #include "linphone/linphonecore.h" #import "UIRoundedImageView.h" -@interface OutgoingCallViewController : TPMultiLayoutViewController { +@interface CallOutgoingView : TPMultiLayoutViewController { } @property(weak, nonatomic) IBOutlet UIRoundedImageView *avatarImage; @property(weak, nonatomic) IBOutlet UILabel *nameLabel; diff --git a/Classes/OutgoingCallViewController.m b/Classes/CallOutgoingView.m similarity index 92% rename from Classes/OutgoingCallViewController.m rename to Classes/CallOutgoingView.m index a8077639e..a65694a43 100644 --- a/Classes/OutgoingCallViewController.m +++ b/Classes/CallOutgoingView.m @@ -17,10 +17,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "OutgoingCallViewController.h" +#import "CallOutgoingView.h" #import "PhoneMainView.h" -@implementation OutgoingCallViewController +@implementation CallOutgoingView #pragma mark - UICompositeViewDelegate Functions @@ -29,8 +29,8 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"OutgoingCall" - content:@"OutgoingCallViewController" - stateBar:@"UIStateBar" + content:@"CallOutgoingView" + stateBar:@"StatusBarViewController" tabBar:nil fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] diff --git a/Classes/InCallTableViewController.h b/Classes/CallTableView.h similarity index 59% rename from Classes/InCallTableViewController.h rename to Classes/CallTableView.h index c611b370e..3f94397d6 100644 --- a/Classes/InCallTableViewController.h +++ b/Classes/CallTableView.h @@ -4,18 +4,18 @@ * * 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 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 + * 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 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. - */ + */ #import @@ -23,10 +23,10 @@ #include "linphone/linphonecore.h" -@interface InCallTableViewController : UITableViewController { - @private - NSTimer *updateTime; - BOOL minimized; +@interface CallTableView : UITableViewController { + @private + NSTimer *updateTime; + BOOL minimized; } - (void)minimizeAll; diff --git a/Classes/InCallTableViewController.m b/Classes/CallTableView.m similarity index 94% rename from Classes/InCallTableViewController.m rename to Classes/CallTableView.m index 7ce1a7c37..8138dac69 100644 --- a/Classes/InCallTableViewController.m +++ b/Classes/CallTableView.m @@ -17,13 +17,13 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "InCallTableViewController.h" +#import "CallTableView.h" #import "UICallCell.h" #import "UIConferenceHeader.h" #import "LinphoneManager.h" #import "Utils.h" -@implementation InCallTableViewController +@implementation CallTableView static NSString *const kLinphoneInCallCellData = @"LinphoneInCallCellData"; @@ -88,7 +88,7 @@ enum TableSection { ConferenceSection = 0, CallSection = 1 }; const MSList *calls = linphone_core_get_calls(lc); while (calls != 0) { - if (![InCallTableViewController isInConference:((LinphoneCall *)calls->data)]) { + if (![CallTableView isInConference:((LinphoneCall *)calls->data)]) { count++; } calls = calls->next; @@ -100,7 +100,7 @@ enum TableSection { ConferenceSection = 0, CallSection = 1 }; const MSList *calls = linphone_core_get_calls([LinphoneManager getLc]); while (calls != 0) { - if ([InCallTableViewController isInConference:(LinphoneCall *)calls->data] == conf) { + if ([CallTableView isInConference:(LinphoneCall *)calls->data] == conf) { if (index == 0) break; index--; @@ -208,7 +208,7 @@ enum TableSection { ConferenceSection = 0, CallSection = 1 }; LinphoneCore *lc = [LinphoneManager getLc]; LinphoneCall *currentCall = linphone_core_get_current_call(lc); - LinphoneCall *call = [InCallTableViewController retrieveCallAtIndex:indexPath.row inConference:inConference]; + LinphoneCall *call = [CallTableView retrieveCallAtIndex:indexPath.row inConference:inConference]; [cell setData:[self addCallData:call]]; // Update cell @@ -235,7 +235,7 @@ enum TableSection { ConferenceSection = 0, CallSection = 1 }; LinphoneCore *lc = [LinphoneManager getLc]; if (section == CallSection) { - count = [InCallTableViewController callCount:lc]; + count = [CallTableView callCount:lc]; } else { count = linphone_core_get_conference_size(lc); if (linphone_core_is_in_conference(lc)) { @@ -306,7 +306,7 @@ enum TableSection { ConferenceSection = 0, CallSection = 1 }; - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { bool inConference = indexPath.section == ConferenceSection; - LinphoneCall *call = [InCallTableViewController retrieveCallAtIndex:indexPath.row inConference:inConference]; + LinphoneCall *call = [CallTableView retrieveCallAtIndex:indexPath.row inConference:inConference]; UICallCellData *data = [self getCallData:call]; if (data != nil && data->minimize) return [UICallCell getMinimizedHeight]; diff --git a/Classes/CallView.h b/Classes/CallView.h new file mode 100644 index 000000000..ebae472e3 --- /dev/null +++ b/Classes/CallView.h @@ -0,0 +1,50 @@ +/* InCallViewController.h + * + * Copyright (C) 2009 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 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. + */ + +#import + +#import "VideoZoomHandler.h" +#import "UICamSwitch.h" + +#import "UICompositeView.h" +#import "CallTableView.h" + +@class VideoView; + +@interface CallView : UIViewController { + @private + UITapGestureRecognizer *singleFingerTap; + NSTimer *hideControlsTimer; + BOOL videoShown; + VideoZoomHandler *videoZoomHandler; +} + +@property(nonatomic, strong) IBOutlet CallTableView *callTableController; +@property(nonatomic, strong) IBOutlet UITableView *callTableView; + +@property(nonatomic, strong) IBOutlet UIView *videoGroup; +@property(nonatomic, strong) IBOutlet UIView *videoView; +#ifdef TEST_VIDEO_VIEW_CHANGE +@property(nonatomic, retain) IBOutlet UIView *testVideoView; +#endif +@property(nonatomic, strong) IBOutlet UIView *videoPreview; +@property(nonatomic, strong) IBOutlet UICamSwitch *videoCameraSwitch; +@property(nonatomic, strong) IBOutlet UIActivityIndicatorView *videoWaitingForFirstImage; + +@end diff --git a/Classes/InCallViewController.m b/Classes/CallView.m similarity index 83% rename from Classes/InCallViewController.m rename to Classes/CallView.m index 903e609be..3b6bf62e8 100644 --- a/Classes/InCallViewController.m +++ b/Classes/CallView.m @@ -24,17 +24,17 @@ #import #import -#import "IncallViewController.h" +#import "CallView.h" #import "UICallCell.h" #import "LinphoneManager.h" #import "PhoneMainView.h" -#import "UILinphone.h" +#import "Utils.h" #include "linphone/linphonecore.h" const NSInteger SECURE_BUTTON_TAG = 5; -@implementation InCallViewController { +@implementation CallView { BOOL hiddenVolume; } @@ -53,7 +53,7 @@ const NSInteger SECURE_BUTTON_TAG = 5; #pragma mark - Lifecycle Functions - (id)init { - self = [super initWithNibName:@"InCallViewController" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; if (self != nil) { self->singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showControls:)]; self->videoZoomHandler = [[VideoZoomHandler alloc] init]; @@ -75,8 +75,8 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"InCall" - content:@"InCallViewController" - stateBar:@"UIStateBar" + content:@"CallView" + stateBar:@"StatusBarViewController" tabBar:nil fullscreen:false landscapeMode:false @@ -201,68 +201,69 @@ static UICompositeViewDescription *compositeDescription = nil; } switch (state) { - case LinphoneCallIncomingReceived: - case LinphoneCallOutgoingInit: { - if (linphone_core_get_calls_nb(lc) > 1) { - [callTableController minimizeAll]; - } - } - case LinphoneCallConnected: - case LinphoneCallStreamsRunning: { - // check video - if (linphone_call_params_video_enabled(linphone_call_get_current_params(call))) { - [self displayVideoCall:animated]; - } else { - [self displayTableCall:animated]; - const LinphoneCallParams *param = linphone_call_get_current_params(call); - const LinphoneCallAppData *callAppData = - (__bridge const LinphoneCallAppData *)(linphone_call_get_user_pointer(call)); - if (state == LinphoneCallStreamsRunning && callAppData->videoRequested && - linphone_call_params_low_bandwidth_enabled(param)) { - // too bad video was not enabled because low bandwidth - UIAlertView *alert = [[UIAlertView alloc] - initWithTitle:NSLocalizedString(@"Low bandwidth", nil) - message:NSLocalizedString(@"Video cannot be activated because of low bandwidth " - @"condition, only audio is available", - nil) - delegate:nil - cancelButtonTitle:NSLocalizedString(@"Continue", nil) - otherButtonTitles:nil]; - [alert show]; - callAppData->videoRequested = FALSE; /*reset field*/ + case LinphoneCallIncomingReceived: + case LinphoneCallOutgoingInit: { + if (linphone_core_get_calls_nb(lc) > 1) { + [callTableController minimizeAll]; } } - break; - } - case LinphoneCallUpdatedByRemote: { - const LinphoneCallParams *current = linphone_call_get_current_params(call); - const LinphoneCallParams *remote = linphone_call_get_remote_params(call); + case LinphoneCallConnected: + case LinphoneCallStreamsRunning: { + // check video + if (linphone_call_params_video_enabled(linphone_call_get_current_params(call))) { + [self displayVideoCall:animated]; + } else { + [self displayTableCall:animated]; + const LinphoneCallParams *param = linphone_call_get_current_params(call); + const LinphoneCallAppData *callAppData = + (__bridge const LinphoneCallAppData *)(linphone_call_get_user_pointer(call)); + if (state == LinphoneCallStreamsRunning && callAppData->videoRequested && + linphone_call_params_low_bandwidth_enabled(param)) { + // too bad video was not enabled because low bandwidth + UIAlertView *alert = [[UIAlertView alloc] + initWithTitle:NSLocalizedString(@"Low bandwidth", nil) + message:NSLocalizedString(@"Video cannot be activated because of low bandwidth " + @"condition, only audio is available", + nil) + delegate:nil + cancelButtonTitle:NSLocalizedString(@"Continue", nil) + otherButtonTitles:nil]; + [alert show]; + callAppData->videoRequested = FALSE; /*reset field*/ + } + } + break; + } + case LinphoneCallUpdatedByRemote: { + const LinphoneCallParams *current = linphone_call_get_current_params(call); + const LinphoneCallParams *remote = linphone_call_get_remote_params(call); - /* remote wants to add video */ - if (linphone_core_video_enabled(lc) && !linphone_call_params_video_enabled(current) && - linphone_call_params_video_enabled(remote) && !linphone_core_get_video_policy(lc)->automatically_accept) { - linphone_core_defer_call_update(lc, call); - [self displayAskToEnableVideoCall:call]; - } else if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) { + /* remote wants to add video */ + if (linphone_core_video_enabled(lc) && !linphone_call_params_video_enabled(current) && + linphone_call_params_video_enabled(remote) && + !linphone_core_get_video_policy(lc)->automatically_accept) { + linphone_core_defer_call_update(lc, call); + [self displayAskToEnableVideoCall:call]; + } else if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) { + [self displayTableCall:animated]; + } + break; + } + case LinphoneCallPausing: + case LinphoneCallPaused: + case LinphoneCallPausedByRemote: { [self displayTableCall:animated]; + break; } - break; - } - case LinphoneCallPausing: - case LinphoneCallPaused: - case LinphoneCallPausedByRemote: { - [self displayTableCall:animated]; - break; - } - case LinphoneCallEnd: - case LinphoneCallError: { - if (linphone_core_get_calls_nb(lc) <= 2 && !videoShown) { - [callTableController maximizeAll]; + case LinphoneCallEnd: + case LinphoneCallError: { + if (linphone_core_get_calls_nb(lc) <= 2 && !videoShown) { + [callTableController maximizeAll]; + } + break; } - break; - } - default: - break; + default: + break; } } @@ -272,7 +273,7 @@ static UICompositeViewDescription *compositeDescription = nil; hideControlsTimer = nil; } - if ([[[PhoneMainView instance] currentView] equal:[InCallViewController compositeViewDescription]] && videoShown) { + if ([[[PhoneMainView instance] currentView] equal:[CallView compositeViewDescription]] && videoShown) { // show controls [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.3]; @@ -297,7 +298,7 @@ static UICompositeViewDescription *compositeDescription = nil; hideControlsTimer = nil; } - if ([[[PhoneMainView instance] currentView] equal:[InCallViewController compositeViewDescription]] && videoShown) { + if ([[[PhoneMainView instance] currentView] equal:[CallView compositeViewDescription]] && videoShown) { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.3]; [videoCameraSwitch setAlpha:0.0]; @@ -433,7 +434,7 @@ static UICompositeViewDescription *compositeDescription = nil; } static void hideSpinner(LinphoneCall *call, void *user_data) { - InCallViewController *thiz = (__bridge InCallViewController *)user_data; + CallView *thiz = (__bridge CallView *)user_data; [thiz hideSpinnerIndicator:call]; } diff --git a/Classes/ChatConversationTableView.h b/Classes/ChatConversationTableView.h new file mode 100644 index 000000000..a0f5b3f19 --- /dev/null +++ b/Classes/ChatConversationTableView.h @@ -0,0 +1,44 @@ +/* ChatRoomTableViewController.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 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. + */ + +#import +#include "linphone/linphonecore.h" + +@protocol ChatConversationDelegate + +- (BOOL)startImageUpload:(UIImage *)image url:(NSURL *)url; +- (void)resendChat:(NSString *)message withExternalUrl:(NSString *)url; + +@end + +@interface ChatConversationTableView : UITableViewController { + @private + LinphoneChatRoom *chatRoom; + MSList *messageList; +} + +@property(nonatomic, strong) id chatRoomDelegate; + +- (void)addChatEntry:(LinphoneChatMessage *)chat; +- (void)scrollToBottom:(BOOL)animated; +- (void)scrollToLastUnread:(BOOL)animated; +- (void)updateChatEntry:(LinphoneChatMessage *)chat; +- (void)setChatRoom:(LinphoneChatRoom *)room; + +@end diff --git a/Classes/ChatRoomTableViewController.m b/Classes/ChatConversationTableView.m similarity index 94% rename from Classes/ChatRoomTableViewController.m rename to Classes/ChatConversationTableView.m index 27efe2171..b9a8c0f91 100644 --- a/Classes/ChatRoomTableViewController.m +++ b/Classes/ChatConversationTableView.m @@ -18,11 +18,11 @@ */ #import "LinphoneManager.h" -#import "ChatRoomTableViewController.h" -#import "UIChatRoomCell.h" +#import "ChatConversationTableView.h" +#import "UIChatConversationCell.h" #import "PhoneMainView.h" -@implementation ChatRoomTableViewController +@implementation ChatConversationTableView @synthesize chatRoomDelegate; @@ -168,9 +168,9 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *kCellId = @"UIChatRoomCell"; - UIChatRoomCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; + UIChatConversationCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; if (cell == nil) { - cell = [[UIChatRoomCell alloc] initWithIdentifier:kCellId]; + cell = [[UIChatConversationCell alloc] initWithIdentifier:kCellId]; } LinphoneChatMessage *chat = ms_list_nth_data(self->messageList, (int)[indexPath row]); @@ -209,7 +209,7 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { LinphoneChatMessage *message = ms_list_nth_data(self->messageList, (int)[indexPath row]); - return [UIChatRoomCell height:message width:[self.view frame].size.width]; + return [UIChatConversationCell height:message width:[self.view frame].size.width]; } @end diff --git a/Classes/ChatConversationView.h b/Classes/ChatConversationView.h new file mode 100644 index 000000000..11d241a0c --- /dev/null +++ b/Classes/ChatConversationView.h @@ -0,0 +1,63 @@ +/* ChatRoomViewController.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 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. + */ + +#import + +#import "UIToggleButton.h" +#import "UICompositeView.h" +#import "ChatConversationTableView.h" +#import "ImagePickerView.h" +#import "OrderedDictionary.h" + +#include "linphone/linphonecore.h" + +@interface ChatConversationView + : UIViewController { + LinphoneChatRoom *chatRoom; + OrderedDictionary *imageQualities; + BOOL scrollOnGrowingEnabled; + BOOL composingVisible; +} + +@property(nonatomic, strong) IBOutlet ChatConversationTableView *tableController; +@property(nonatomic, strong) IBOutlet UIToggleButton *editButton; +@property(weak, nonatomic) IBOutlet UITextView *messageField; +@property(nonatomic, strong) IBOutlet UIButton *sendButton; +@property(nonatomic, strong) IBOutlet UILabel *addressLabel; +@property(nonatomic, strong) IBOutlet UIImageView *avatarImage; +@property(nonatomic, strong) IBOutlet UIView *headerView; +@property(nonatomic, strong) IBOutlet UIView *chatView; +@property(nonatomic, strong) IBOutlet UIView *messageView; +@property(nonatomic, strong) IBOutlet UITapGestureRecognizer *listTapGestureRecognizer; +@property(nonatomic, strong) IBOutlet UISwipeGestureRecognizer *listSwipeGestureRecognizer; +@property(strong, nonatomic) IBOutlet UILabel *composeLabel; +@property(strong, nonatomic) IBOutlet UIView *composeIndicatorView; + +@property(nonatomic, strong) IBOutlet UIButton *pictureButton; + +- (IBAction)onBackClick:(id)event; +- (IBAction)onEditClick:(id)event; +- (IBAction)onMessageChange:(id)sender; +- (IBAction)onSendClick:(id)event; +- (IBAction)onPictureClick:(id)event; +- (IBAction)onListTap:(id)sender; + +- (void)setChatRoom:(LinphoneChatRoom *)room; + +@end diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatConversationView.m similarity index 95% rename from Classes/ChatRoomViewController.m rename to Classes/ChatConversationView.m index 0a59bd1a0..ebd90b0bd 100644 --- a/Classes/ChatRoomViewController.m +++ b/Classes/ChatConversationView.m @@ -17,13 +17,13 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ChatRoomViewController.h" +#import "ChatConversationView.h" #import "PhoneMainView.h" -#import "UILinphone.h" -#import "Utils/FileTransferDelegate.h" -#import "UIChatRoomCell.h" +#import "Utils.h" +#import "FileTransferDelegate.h" +#import "UIChatConversationCell.h" -@implementation ChatRoomViewController +@implementation ChatConversationView @synthesize messageField; @synthesize tableController; @@ -43,7 +43,7 @@ #pragma mark - Lifecycle Functions - (id)init { - self = [super initWithNibName:@"ChatRoomViewController" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; if (self != nil) { self->scrollOnGrowingEnabled = TRUE; self->chatRoom = NULL; @@ -71,9 +71,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"ChatRoom" - content:@"ChatRoomViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"ChatConversationView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:false portraitMode:true]; @@ -207,7 +207,7 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st ? "photo transfer" : linphone_chat_message_get_text(msg); LOGI(@"Delivery status for [%s] is [%s]", text, linphone_chat_message_state_to_string(state)); - ChatRoomViewController *thiz = (__bridge ChatRoomViewController *)ud; + ChatConversationView *thiz = (__bridge ChatConversationView *)ud; [thiz.tableController updateChatEntry:msg]; } @@ -254,11 +254,11 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st [errorAlert show]; } else { LOGI(@"Image saved to [%@]", [assetURL absoluteString]); - [self chatRoomStartImageUpload:image url:assetURL]; + [self startImageUpload:image url:assetURL]; } }]; } else { - [self chatRoomStartImageUpload:image url:url]; + [self startImageUpload:image url:url]; } } @@ -461,12 +461,12 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st - (IBAction)onPictureClick:(id)event { [messageField resignFirstResponder]; CGRect rect = [self.messageView convertRect:[pictureButton frame] toView:self.view]; - [ImagePickerViewController SelectImageFromDevice:self atPosition:rect inView:self.view]; + [ImagePickerView SelectImageFromDevice:self atPosition:rect inView:self.view]; } #pragma mark ChatRoomDelegate -- (BOOL)chatRoomStartImageUpload:(UIImage *)image url:(NSURL *)url { +- (BOOL)startImageUpload:(UIImage *)image url:(NSURL *)url { FileTransferDelegate *fileTransfer = [[FileTransferDelegate alloc] init]; [fileTransfer upload:image withURL:url forChatRoom:chatRoom]; [tableController addChatEntry:linphone_chat_message_ref(fileTransfer.message)]; @@ -483,10 +483,9 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st - (void)imagePickerDelegateImage:(UIImage *)image info:(NSDictionary *)info { // Dismiss popover on iPad if ([LinphoneManager runningOnIpad]) { - UICompositeViewDescription *description = [ImagePickerViewController compositeViewDescription]; - ImagePickerViewController *controller = - DYNAMIC_CAST([[PhoneMainView instance].mainViewController getCachedController:description.content], - ImagePickerViewController); + UICompositeViewDescription *description = [ImagePickerView compositeViewDescription]; + ImagePickerView *controller = DYNAMIC_CAST( + [[PhoneMainView instance].mainViewController getCachedController:description.content], ImagePickerView); if (controller != nil) { [controller.popoverController dismissPopoverAnimated:TRUE]; } diff --git a/Classes/ChatRoomTableViewController.h b/Classes/ChatRoomTableViewController.h deleted file mode 100644 index f8e317dca..000000000 --- a/Classes/ChatRoomTableViewController.h +++ /dev/null @@ -1,45 +0,0 @@ -/* ChatRoomTableViewController.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 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. - */ - - -#import -#include "linphone/linphonecore.h" - -@protocol ChatRoomDelegate - -- (BOOL)chatRoomStartImageUpload:(UIImage*)image url:(NSURL*)url; -- (void)resendChat:(NSString*)message withExternalUrl:(NSString*)url; - -@end - -@interface ChatRoomTableViewController : UITableViewController { -@private - LinphoneChatRoom* chatRoom; - MSList *messageList; -} - -@property (nonatomic, strong) id chatRoomDelegate; - -- (void)addChatEntry:(LinphoneChatMessage*)chat; -- (void)scrollToBottom:(BOOL)animated; -- (void)scrollToLastUnread:(BOOL)animated; -- (void)updateChatEntry:(LinphoneChatMessage*)chat; -- (void)setChatRoom:(LinphoneChatRoom*)room; - -@end diff --git a/Classes/ChatRoomViewController.h b/Classes/ChatRoomViewController.h deleted file mode 100644 index 36b760ccd..000000000 --- a/Classes/ChatRoomViewController.h +++ /dev/null @@ -1,63 +0,0 @@ -/* ChatRoomViewController.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 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. - */ - -#import - -#import "UIToggleButton.h" -#import "UICompositeViewController.h" -#import "ChatRoomTableViewController.h" -#import "ImagePickerViewController.h" -#import "OrderedDictionary.h" - -#include "linphone/linphonecore.h" - -@interface ChatRoomViewController - : UIViewController { - LinphoneChatRoom *chatRoom; - OrderedDictionary *imageQualities; - BOOL scrollOnGrowingEnabled; - BOOL composingVisible; -} - -@property (nonatomic, strong) IBOutlet ChatRoomTableViewController* tableController; -@property (nonatomic, strong) IBOutlet UIToggleButton *editButton; -@property(weak, nonatomic) IBOutlet UITextView *messageField; -@property (nonatomic, strong) IBOutlet UIButton* sendButton; -@property (nonatomic, strong) IBOutlet UILabel *addressLabel; -@property (nonatomic, strong) IBOutlet UIImageView *avatarImage; -@property (nonatomic, strong) IBOutlet UIView *headerView; -@property (nonatomic, strong) IBOutlet UIView *chatView; -@property (nonatomic, strong) IBOutlet UIView *messageView; -@property (nonatomic, strong) IBOutlet UITapGestureRecognizer *listTapGestureRecognizer; -@property (nonatomic, strong) IBOutlet UISwipeGestureRecognizer *listSwipeGestureRecognizer; -@property (strong, nonatomic) IBOutlet UILabel *composeLabel; -@property (strong, nonatomic) IBOutlet UIView *composeIndicatorView; - -@property (nonatomic, strong) IBOutlet UIButton* pictureButton; - -- (IBAction)onBackClick:(id)event; -- (IBAction)onEditClick:(id)event; -- (IBAction)onMessageChange:(id)sender; -- (IBAction)onSendClick:(id)event; -- (IBAction)onPictureClick:(id)event; -- (IBAction)onListTap:(id)sender; - -- (void)setChatRoom:(LinphoneChatRoom*)room; - -@end diff --git a/Classes/ChatViewController.h b/Classes/ChatViewController.h deleted file mode 100644 index 2c102b4b1..000000000 --- a/Classes/ChatViewController.h +++ /dev/null @@ -1,37 +0,0 @@ -/* ChatViewController.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 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. - */ - -#import - -#import "UIToggleButton.h" - -#import "ChatTableViewController.h" -#import "UICompositeViewController.h" - -@interface ChatViewController : UIViewController { -} - -@property (nonatomic, strong) IBOutlet ChatTableViewController* tableController; -@property (nonatomic, strong) IBOutlet UIToggleButton *editButton; -@property (nonatomic, strong) IBOutlet UITextField *addressField; - -- (IBAction)onAddClick:(id) event; -- (IBAction)onEditClick:(id) event; - -@end diff --git a/Classes/ChatTableViewController.h b/Classes/ChatsListTableView.h similarity index 61% rename from Classes/ChatTableViewController.h rename to Classes/ChatsListTableView.h index 3cc3d9e71..6be0d35ff 100644 --- a/Classes/ChatTableViewController.h +++ b/Classes/ChatsListTableView.h @@ -4,23 +4,23 @@ * * 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 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 + * 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 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. - */ + */ #import #include "linphone/linphonecore.h" -@interface ChatTableViewController : UITableViewController { +@interface ChatsListTableView : UITableViewController { } - (void)loadData; diff --git a/Classes/ChatTableViewController.m b/Classes/ChatsListTableView.m similarity index 95% rename from Classes/ChatTableViewController.m rename to Classes/ChatsListTableView.m index 4f2070bac..b061781b0 100644 --- a/Classes/ChatTableViewController.m +++ b/Classes/ChatsListTableView.m @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ChatTableViewController.h" +#import "ChatsListTableView.h" #import "UIChatCell.h" #import "FileTransferDelegate.h" @@ -25,9 +25,9 @@ #import "linphone/linphonecore.h" #import "PhoneMainView.h" #import "UACellBackgroundView.h" -#import "UILinphone.h" +#import "Utils.h" -@implementation ChatTableViewController { +@implementation ChatsListTableView { MSList *data; } @@ -140,9 +140,9 @@ static void chatTable_free_chatrooms(void *data) { LinphoneChatRoom *chatRoom = (LinphoneChatRoom *)ms_list_nth_data(data, (int)[indexPath row]); // Go to ChatRoom view - ChatRoomViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], - ChatRoomViewController); + ChatConversationView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ChatConversationView compositeViewDescription] push:TRUE], + ChatConversationView); [controller setChatRoom:chatRoom]; } diff --git a/Classes/ChatsListView.h b/Classes/ChatsListView.h new file mode 100644 index 000000000..eeb08f3ce --- /dev/null +++ b/Classes/ChatsListView.h @@ -0,0 +1,37 @@ +/* ChatViewController.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 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. + */ + +#import + +#import "UIToggleButton.h" + +#import "ChatsListTableView.h" +#import "UICompositeView.h" + +@interface ChatsListView : UIViewController { +} + +@property(nonatomic, strong) IBOutlet ChatsListTableView *tableController; +@property(nonatomic, strong) IBOutlet UIToggleButton *editButton; +@property(nonatomic, strong) IBOutlet UITextField *addressField; + +- (IBAction)onAddClick:(id)event; +- (IBAction)onEditClick:(id)event; + +@end diff --git a/Classes/ChatViewController.m b/Classes/ChatsListView.m similarity index 86% rename from Classes/ChatViewController.m rename to Classes/ChatsListView.m index d02d2e408..78fc5230e 100644 --- a/Classes/ChatViewController.m +++ b/Classes/ChatsListView.m @@ -17,10 +17,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ChatViewController.h" +#import "ChatsListView.h" #import "PhoneMainView.h" -@implementation ChatViewController +@implementation ChatsListView @synthesize tableController; @synthesize editButton; @@ -29,7 +29,7 @@ #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"ChatViewController" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } #pragma mark - ViewController Functions @@ -64,9 +64,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"Chat" - content:@"ChatViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"ChatsListView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; @@ -81,9 +81,9 @@ static UICompositeViewDescription *compositeDescription = nil; LinphoneChatRoom *room = linphone_core_get_chat_room_from_uri([LinphoneManager getLc], [addressField.text UTF8String]); if (room != nil) { - ChatRoomViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], - ChatRoomViewController); + ChatConversationView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ChatConversationView compositeViewDescription] push:TRUE], + ChatConversationView); if (controller != nil) { [controller setChatRoom:room]; } @@ -104,7 +104,7 @@ static UICompositeViewDescription *compositeDescription = nil; [ContactSelection setSipFilter:[LinphoneManager instance].contactFilter]; [ContactSelection enableEmailFilter:FALSE]; [ContactSelection setNameOrEmailFilter:nil]; - [[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE]; + [[PhoneMainView instance] changeCurrentView:[ContactsListView compositeViewDescription] push:TRUE]; } else { [self startChatRoom]; } diff --git a/Classes/ContactDetailsLabelView.h b/Classes/ContactDetailsLabelView.h new file mode 100644 index 000000000..c534456ee --- /dev/null +++ b/Classes/ContactDetailsLabelView.h @@ -0,0 +1,40 @@ +/* ContactDetailsLabelViewController.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 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. + */ + +#import +#import "UICompositeView.h" + +@protocol ContactDetailsLabelViewDelegate + +- (void)changeContactDetailsLabel:(NSString *)label; + +@end + +@interface ContactDetailsLabelView + : UIViewController { +} + +@property(nonatomic, copy) NSString *selectedData; +@property(nonatomic, strong) NSDictionary *dataList; +@property(nonatomic, strong) IBOutlet UITableView *tableView; +@property(nonatomic, strong) id delegate; + +- (IBAction)onBackClick:(id)event; + +@end diff --git a/Classes/ContactDetailsLabelViewController.m b/Classes/ContactDetailsLabelView.m similarity index 91% rename from Classes/ContactDetailsLabelViewController.m rename to Classes/ContactDetailsLabelView.m index 30bffd2f3..a30846f32 100644 --- a/Classes/ContactDetailsLabelViewController.m +++ b/Classes/ContactDetailsLabelView.m @@ -17,13 +17,13 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ContactDetailsLabelViewController.h" +#import "ContactDetailsLabelView.h" #import "UACellBackgroundView.h" -#import "UILinphone.h" +#import "Utils.h" #import "PhoneMainView.h" -@implementation ContactDetailsLabelViewController +@implementation ContactDetailsLabelView @synthesize dataList; @synthesize tableView; @@ -37,9 +37,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"ContactDetailsLabel" - content:@"ContactDetailsLabelViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"ContactDetailsLabelView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; @@ -50,7 +50,7 @@ static UICompositeViewDescription *compositeDescription = nil; #pragma mark - - (void)dismiss { - if ([[[PhoneMainView instance] currentView] equal:[ContactDetailsLabelViewController compositeViewDescription]]) { + if ([[[PhoneMainView instance] currentView] equal:[ContactDetailsLabelView compositeViewDescription]]) { [[PhoneMainView instance] popCurrentView]; } } diff --git a/Classes/ContactDetailsLabelViewController.h b/Classes/ContactDetailsLabelViewController.h deleted file mode 100644 index 850cf7fe1..000000000 --- a/Classes/ContactDetailsLabelViewController.h +++ /dev/null @@ -1,39 +0,0 @@ -/* ContactDetailsLabelViewController.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 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. - */ - -#import -#import "UICompositeViewController.h" - -@protocol ContactDetailsLabelViewDelegate - -- (void)changeContactDetailsLabel:(NSString*)label; - -@end - -@interface ContactDetailsLabelViewController : UIViewController { -} - -@property (nonatomic, copy) NSString *selectedData; -@property (nonatomic, strong) NSDictionary *dataList; -@property (nonatomic, strong) IBOutlet UITableView *tableView; -@property (nonatomic, strong) id delegate; - -- (IBAction)onBackClick:(id)event; - -@end diff --git a/Classes/ContactDetailsTableView.h b/Classes/ContactDetailsTableView.h new file mode 100644 index 000000000..b5095d74e --- /dev/null +++ b/Classes/ContactDetailsTableView.h @@ -0,0 +1,50 @@ +/* ContactDetailsTableViewController.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 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. + */ + +#import +#import + +#import "ContactDetailsDelegate.h" +#import "ContactDetailsLabelView.h" + +typedef enum _ContactSections { + ContactSections_None = 0, + ContactSections_Number, + ContactSections_Sip, + ContactSections_Email, + ContactSections_MAX +} ContactSections_e; + +@interface ContactDetailsTableView : UITableViewController { + @private + NSMutableArray *dataCache; + NSMutableArray *labelArray; + NSIndexPath *editingIndexPath; +} + +@property(nonatomic, assign, setter=setContact:) ABRecordRef contact; +@property(nonatomic, strong) IBOutlet id contactDetailsDelegate; + +- (BOOL)isValid; +- (void)addPhoneField:(NSString *)number; +- (void)addSipField:(NSString *)address; +- (void)addEmailField:(NSString *)address; +- (void)setContact:(ABRecordRef)contact; + +@end diff --git a/Classes/ContactDetailsTableViewController.m b/Classes/ContactDetailsTableView.m similarity index 96% rename from Classes/ContactDetailsTableViewController.m rename to Classes/ContactDetailsTableView.m index 03869d127..413abaf57 100644 --- a/Classes/ContactDetailsTableViewController.m +++ b/Classes/ContactDetailsTableView.m @@ -17,11 +17,11 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ContactDetailsTableViewController.h" +#import "ContactDetailsTableView.h" #import "PhoneMainView.h" #import "UIEditableTableViewCell.h" #import "UACellBackgroundView.h" -#import "UILinphone.h" +#import "Utils.h" #import "OrderedDictionary.h" #import "FastAddressBook.h" @@ -47,7 +47,7 @@ @end -@implementation ContactDetailsTableViewController +@implementation ContactDetailsTableView static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSections_None, ContactSections_Number, ContactSections_Sip, ContactSections_Email}; @@ -118,14 +118,14 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe - (ABPropertyID)propertyIDForSection:(ContactSections_e)section { switch (section) { - case ContactSections_Sip: - return kABPersonInstantMessageProperty; - case ContactSections_Number: - return kABPersonPhoneProperty; - case ContactSections_Email: - return kABPersonEmailProperty; - default: - return kABInvalidPropertyType; + case ContactSections_Sip: + return kABPersonInstantMessageProperty; + case ContactSections_Number: + return kABPersonPhoneProperty; + case ContactSections_Email: + return kABPersonEmailProperty; + default: + return kABInvalidPropertyType; } } @@ -610,20 +610,19 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe NSString *displayName = [FastAddressBook getContactDisplayName:contact]; if ([ContactSelection getSelectionMode] != ContactSelectionModeMessage) { // Go to dialer view - DialerViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], - DialerViewController); + DialerView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]], DialerView); if (controller != nil) { [controller call:dest displayName:displayName]; } } else { // Go to Chat room view [[PhoneMainView instance] - popToView:[ChatViewController compositeViewDescription]]; // Got to Chat and push ChatRoom - ChatRoomViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] + popToView:[ChatsListView compositeViewDescription]]; // Got to Chat and push ChatRoom + ChatConversationView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ChatConversationView compositeViewDescription] push:TRUE], - ChatRoomViewController); + ChatConversationView); if (controller != nil) { LinphoneChatRoom *room = linphone_core_get_chat_room_from_uri([LinphoneManager getLc], [dest UTF8String]); @@ -646,10 +645,10 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe } if (key != nil) { editingIndexPath = indexPath; - ContactDetailsLabelViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ContactDetailsLabelViewController compositeViewDescription] + ContactDetailsLabelView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ContactDetailsLabelView compositeViewDescription] push:TRUE], - ContactDetailsLabelViewController); + ContactDetailsLabelView); if (controller != nil) { [controller setDataList:[self getLocalizedLabels]]; [controller setSelectedData:key]; diff --git a/Classes/ContactDetailsTableViewController.h b/Classes/ContactDetailsTableViewController.h deleted file mode 100644 index 4b362e9ea..000000000 --- a/Classes/ContactDetailsTableViewController.h +++ /dev/null @@ -1,50 +0,0 @@ -/* ContactDetailsTableViewController.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 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. - */ - -#import -#import - -#import "ContactDetailsDelegate.h" -#import "ContactDetailsLabelViewController.h" - -typedef enum _ContactSections { - ContactSections_None = 0, - ContactSections_Number, - ContactSections_Sip, - ContactSections_Email, - ContactSections_MAX -} ContactSections_e; - -@interface ContactDetailsTableViewController : UITableViewController { -@private - NSMutableArray *dataCache; - NSMutableArray *labelArray; - NSIndexPath *editingIndexPath; -} - -@property (nonatomic, assign, setter=setContact:) ABRecordRef contact; -@property (nonatomic, strong) IBOutlet id contactDetailsDelegate; - -- (BOOL)isValid; -- (void)addPhoneField:(NSString*)number; -- (void)addSipField:(NSString*)address; -- (void)addEmailField:(NSString*)address; -- (void)setContact:(ABRecordRef)contact; - -@end diff --git a/Classes/ContactDetailsView.h b/Classes/ContactDetailsView.h new file mode 100644 index 000000000..0592bb8cf --- /dev/null +++ b/Classes/ContactDetailsView.h @@ -0,0 +1,47 @@ +/* ContactDetailsViewController.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 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. + */ + +#import +#import + +#import "UICompositeView.h" +#import "UIToggleButton.h" +#import "ContactDetailsTableView.h" + +@interface ContactDetailsView : UIViewController { + ABAddressBookRef addressBook; + BOOL inhibUpdate; +} + +@property(nonatomic, assign, setter=setContact:) ABRecordRef contact; +@property(nonatomic, strong) IBOutlet ContactDetailsTableView *tableController; +@property(nonatomic, strong) IBOutlet UIToggleButton *editButton; +@property(nonatomic, strong) IBOutlet UIButton *backButton; +@property(nonatomic, strong) IBOutlet UIButton *cancelButton; + +- (IBAction)onBackClick:(id)event; +- (IBAction)onCancelClick:(id)event; +- (IBAction)onEditClick:(id)event; + +- (void)newContact; +- (void)newContact:(NSString *)address; +- (void)editContact:(ABRecordRef)contact; +- (void)editContact:(ABRecordRef)contact address:(NSString *)address; +- (void)setContact:(ABRecordRef)contact; +@end diff --git a/Classes/ContactDetailsViewController.m b/Classes/ContactDetailsView.m similarity index 95% rename from Classes/ContactDetailsViewController.m rename to Classes/ContactDetailsView.m index 3f46ef554..561dfba06 100644 --- a/Classes/ContactDetailsViewController.m +++ b/Classes/ContactDetailsView.m @@ -17,10 +17,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ContactDetailsViewController.h" +#import "ContactDetailsView.h" #import "PhoneMainView.h" -@implementation ContactDetailsViewController +@implementation ContactDetailsView @synthesize tableController; @synthesize contact; @@ -33,7 +33,7 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info #pragma mark - Lifecycle Functions - (id)init { - self = [super initWithNibName:@"ContactDetailsViewController" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; if (self != nil) { inhibUpdate = FALSE; addressBook = ABAddressBookCreateWithOptions(nil, nil); @@ -68,7 +68,7 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info } static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void *context) { - ContactDetailsViewController *controller = (__bridge ContactDetailsViewController *)context; + ContactDetailsView *controller = (__bridge ContactDetailsView *)context; if (!controller->inhibUpdate && ![[controller tableController] isEditing]) { [controller resetData]; } @@ -208,9 +208,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"ContactDetails" - content:@"ContactDetailsViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"ContactDetailsView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; diff --git a/Classes/ContactDetailsViewController.h b/Classes/ContactDetailsViewController.h deleted file mode 100644 index f974b3626..000000000 --- a/Classes/ContactDetailsViewController.h +++ /dev/null @@ -1,47 +0,0 @@ -/* ContactDetailsViewController.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 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. - */ - -#import -#import - -#import "UICompositeViewController.h" -#import "UIToggleButton.h" -#import "ContactDetailsTableViewController.h" - -@interface ContactDetailsViewController : UIViewController { - ABAddressBookRef addressBook; - BOOL inhibUpdate; -} - -@property (nonatomic, assign, setter=setContact:) ABRecordRef contact; -@property (nonatomic, strong) IBOutlet ContactDetailsTableViewController *tableController; -@property (nonatomic, strong) IBOutlet UIToggleButton *editButton; -@property (nonatomic, strong) IBOutlet UIButton *backButton; -@property (nonatomic, strong) IBOutlet UIButton *cancelButton; - -- (IBAction)onBackClick:(id)event; -- (IBAction)onCancelClick:(id)event; -- (IBAction)onEditClick:(id)event; - -- (void)newContact; -- (void)newContact:(NSString*)address; -- (void)editContact:(ABRecordRef)contact; -- (void)editContact:(ABRecordRef)contact address:(NSString*)address; -- (void)setContact:(ABRecordRef)contact; -@end diff --git a/Classes/ContactsTableViewController.h b/Classes/ContactsListTableView.h similarity index 56% rename from Classes/ContactsTableViewController.h rename to Classes/ContactsListTableView.h index d1cbd99a0..43b993a8b 100644 --- a/Classes/ContactsTableViewController.h +++ b/Classes/ContactsListTableView.h @@ -4,30 +4,30 @@ * * 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 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 + * 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 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. - */ + */ #import #import #import "OrderedDictionary.h" -@interface ContactsTableViewController : UITableViewController { - @private - OrderedDictionary* addressBookMap; - NSMutableDictionary* avatarMap; - - ABAddressBookRef addressBook; +@interface ContactsListTableView : UITableViewController { + @private + OrderedDictionary *addressBookMap; + NSMutableDictionary *avatarMap; + + ABAddressBookRef addressBook; } - (void)loadData; diff --git a/Classes/ContactsTableViewController.m b/Classes/ContactsListTableView.m similarity index 96% rename from Classes/ContactsTableViewController.m rename to Classes/ContactsListTableView.m index ef0f4166c..2331a3c15 100644 --- a/Classes/ContactsTableViewController.m +++ b/Classes/ContactsListTableView.m @@ -17,14 +17,14 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ContactsTableViewController.h" +#import "ContactsListTableView.h" #import "UIContactCell.h" #import "LinphoneManager.h" #import "PhoneMainView.h" #import "UACellBackgroundView.h" -#import "UILinphone.h" +#import "Utils.h" -@implementation ContactsTableViewController +@implementation ContactsListTableView static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void *context); @@ -163,7 +163,7 @@ static int ms_strcmpfuz(const char *fuzzy_word, const char *sentence) { } static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void *context) { - ContactsTableViewController *controller = (__bridge ContactsTableViewController *)context; + ContactsListTableView *controller = (__bridge ContactsListTableView *)context; ABAddressBookRevert(addressBook); [controller->avatarMap removeAllObjects]; [controller loadData]; @@ -230,9 +230,9 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info ABRecordRef lPerson = (__bridge ABRecordRef)([subDic objectForKey:[subDic keyAtIndex:[indexPath row]]]); // Go to Contact details view - ContactDetailsViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ContactDetailsViewController compositeViewDescription] push:TRUE], - ContactDetailsViewController); + ContactDetailsView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ContactDetailsView compositeViewDescription] push:TRUE], + ContactDetailsView); if (controller != nil) { if ([ContactSelection getSelectionMode] != ContactSelectionModeEdit) { [controller setContact:lPerson]; diff --git a/Classes/ContactsViewController.h b/Classes/ContactsListView.h similarity index 69% rename from Classes/ContactsViewController.h rename to Classes/ContactsListView.h index deb1c612e..1cee8aa41 100644 --- a/Classes/ContactsViewController.h +++ b/Classes/ContactsListView.h @@ -20,14 +20,14 @@ #import #import -#import "UICompositeViewController.h" -#import "ContactsTableViewController.h" +#import "UICompositeView.h" +#import "ContactsListTableView.h" typedef enum _ContactSelectionMode { - ContactSelectionModeNone, - ContactSelectionModeEdit, - ContactSelectionModePhone, - ContactSelectionModeMessage + ContactSelectionModeNone, + ContactSelectionModeEdit, + ContactSelectionModePhone, + ContactSelectionModeMessage } ContactSelectionMode; @interface ContactSelection : NSObject { @@ -35,19 +35,19 @@ typedef enum _ContactSelectionMode { + (void)setSelectionMode:(ContactSelectionMode)selectionMode; + (ContactSelectionMode)getSelectionMode; -+ (void)setAddAddress:(NSString*)address; -+ (NSString*)getAddAddress; ++ (void)setAddAddress:(NSString *)address; ++ (NSString *)getAddAddress; /*! * Filters contacts by SIP domain. * @param domain SIP domain to filter. Use @"*" or nil to disable it. */ -+ (void)setSipFilter:(NSString*) domain; ++ (void)setSipFilter:(NSString *)domain; /*! * Weither contacts are filtered by SIP domain or not. * @return the filter used, or nil if none. */ -+ (NSString*)getSipFilter; ++ (NSString *)getSipFilter; /*! * Weither always keep contacts with an email address or not. @@ -65,27 +65,27 @@ typedef enum _ContactSelectionMode { * Filters contacts by name and/or email fuzzy matching pattern. * @param fuzzyName fuzzy word to match. Use nil to disable it. */ -+ (void)setNameOrEmailFilter:(NSString*)fuzzyName; ++ (void)setNameOrEmailFilter:(NSString *)fuzzyName; /*! * Weither contacts are filtered by name and/or email. * @return the filter used, or nil if none. */ -+ (NSString*)getNameOrEmailFilter; ++ (NSString *)getNameOrEmailFilter; @end -@interface ContactsViewController +@interface ContactsListView : UIViewController -@property(strong, nonatomic) IBOutlet ContactsTableViewController *tableController; -@property (nonatomic, strong) IBOutlet UINavigationController* sysViewController; -@property (strong, nonatomic) IBOutlet UIView *toolBar; -@property (nonatomic, strong) IBOutlet UIButton* allButton; -@property (nonatomic, strong) IBOutlet UIButton* linphoneButton; -@property (nonatomic, strong) IBOutlet UIButton *backButton; -@property (nonatomic, strong) IBOutlet UIButton *addButton; -@property (strong, nonatomic) IBOutlet UISearchBar *searchBar; +@property(strong, nonatomic) IBOutlet ContactsListTableView *tableController; +@property(nonatomic, strong) IBOutlet UINavigationController *sysViewController; +@property(strong, nonatomic) IBOutlet UIView *toolBar; +@property(nonatomic, strong) IBOutlet UIButton *allButton; +@property(nonatomic, strong) IBOutlet UIButton *linphoneButton; +@property(nonatomic, strong) IBOutlet UIButton *backButton; +@property(nonatomic, strong) IBOutlet UIButton *addButton; +@property(strong, nonatomic) IBOutlet UISearchBar *searchBar; @property(weak, nonatomic) IBOutlet UITableView *tableView; - (IBAction)onAllClick:(id)event; diff --git a/Classes/ContactsViewController.m b/Classes/ContactsListView.m similarity index 91% rename from Classes/ContactsViewController.m rename to Classes/ContactsListView.m index 05a20ae67..8049a5ea3 100644 --- a/Classes/ContactsViewController.m +++ b/Classes/ContactsListView.m @@ -75,7 +75,7 @@ static NSString *sNameOrEmailFilter; @end -@implementation ContactsViewController +@implementation ContactsListView @synthesize tableController; @synthesize tableView; @@ -93,7 +93,7 @@ typedef enum _HistoryView { History_All, History_Linphone, History_Search, Histo #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"ContactsViewController" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } #pragma mark - UICompositeViewDelegate Functions @@ -103,9 +103,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"Contacts" - content:@"ContactsViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"ContactsListView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; @@ -158,7 +158,7 @@ static UICompositeViewDescription *compositeDescription = nil; cancelButtonTitle:NSLocalizedString(@"Continue", nil) otherButtonTitles:nil]; [error show]; - [[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]]; } } @@ -199,15 +199,15 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)refreshButtons { switch ([ContactSelection getSelectionMode]) { - case ContactSelectionModePhone: - case ContactSelectionModeMessage: - [addButton setHidden:TRUE]; - [backButton setHidden:FALSE]; - break; - default: - [addButton setHidden:FALSE]; - [backButton setHidden:TRUE]; - break; + case ContactSelectionModePhone: + case ContactSelectionModeMessage: + [addButton setHidden:TRUE]; + [backButton setHidden:FALSE]; + break; + default: + [addButton setHidden:FALSE]; + [backButton setHidden:TRUE]; + break; } if ([ContactSelection getSipFilter]) { allButton.selected = FALSE; @@ -235,9 +235,9 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onAddContactClick:(id)event { // Go to Contact details view - ContactDetailsViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ContactDetailsViewController compositeViewDescription] push:TRUE], - ContactDetailsViewController); + ContactDetailsView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ContactDetailsView compositeViewDescription] push:TRUE], + ContactDetailsView); if (controller != nil) { if ([ContactSelection getAddAddress] == nil) { [controller newContact]; @@ -285,9 +285,8 @@ static UICompositeViewDescription *compositeDescription = nil; CFIndex valueIdx = ABMultiValueGetIndexForIdentifier(multiValue, identifier); NSString *phoneNumber = (NSString *)CFBridgingRelease(ABMultiValueCopyValueAtIndex(multiValue, valueIdx)); // Go to dialer view - DialerViewController *controller = - DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], - DialerViewController); + DialerView *controller = + DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]], DialerView); if (controller != nil) { [controller call:phoneNumber displayName:(NSString *)CFBridgingRelease(ABRecordCopyCompositeName(person))]; } diff --git a/Classes/DialerView.h b/Classes/DialerView.h new file mode 100644 index 000000000..c38a06bb8 --- /dev/null +++ b/Classes/DialerView.h @@ -0,0 +1,68 @@ +/* DialerViewController.h + * + * Copyright (C) 2009 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 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. + */ + +#import + +#import "UICompositeView.h" + +#import "UICamSwitch.h" +#import "UICallButton.h" +#import "UITransferButton.h" +#import "UIDigitButton.h" + +@interface DialerView + : UIViewController { +} + +- (void)setAddress:(NSString *)address; +- (void)call:(NSString *)address displayName:(NSString *)displayName; +- (void)call:(NSString *)address; + +@property(nonatomic, assign) BOOL transferMode; + +@property(nonatomic, strong) IBOutlet UITextField *addressField; +@property(nonatomic, strong) IBOutlet UIButton *addContactButton; +@property(nonatomic, strong) IBOutlet UICallButton *callButton; +@property(nonatomic, strong) IBOutlet UICallButton *addCallButton; +@property(nonatomic, strong) IBOutlet UITransferButton *transferButton; +@property(nonatomic, strong) IBOutlet UIButton *backButton; +@property(weak, nonatomic) IBOutlet UIIconButton *backspaceButton; + +@property(nonatomic, strong) IBOutlet UIDigitButton *oneButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *twoButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *threeButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *fourButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *fiveButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *sixButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *sevenButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *eightButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *nineButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *starButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *zeroButton; +@property(nonatomic, strong) IBOutlet UIDigitButton *sharpButton; +@property(nonatomic, strong) IBOutlet UIView *backgroundView; +@property(nonatomic, strong) IBOutlet UIView *videoPreview; +@property(nonatomic, strong) IBOutlet UICamSwitch *videoCameraSwitch; + +- (IBAction)onAddContactClick:(id)event; +- (IBAction)onBackClick:(id)event; +- (IBAction)onAddressChange:(id)sender; +- (IBAction)onBackspaceClick:(id)sender; + +@end diff --git a/Classes/DialerViewController.m b/Classes/DialerView.m similarity index 93% rename from Classes/DialerViewController.m rename to Classes/DialerView.m index 01edfd875..e65ec0bcc 100644 --- a/Classes/DialerViewController.m +++ b/Classes/DialerView.m @@ -23,7 +23,7 @@ #import "LinphoneManager.h" #import "PhoneMainView.h" -@implementation DialerViewController +@implementation DialerView @synthesize transferMode; @@ -55,7 +55,7 @@ #pragma mark - Lifecycle Functions - (id)init { - self = [super initWithNibName:@"DialerViewController" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; if (self) { self->transferMode = FALSE; } @@ -75,9 +75,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"Dialer" - content:@"DialerViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"DialerView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; @@ -190,20 +190,20 @@ static UICompositeViewDescription *compositeDescription = nil; [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration]; CGRect frame = [videoPreview frame]; switch (toInterfaceOrientation) { - case UIInterfaceOrientationPortrait: - [videoPreview setTransform:CGAffineTransformMakeRotation(0)]; - break; - case UIInterfaceOrientationPortraitUpsideDown: - [videoPreview setTransform:CGAffineTransformMakeRotation(M_PI)]; - break; - case UIInterfaceOrientationLandscapeLeft: - [videoPreview setTransform:CGAffineTransformMakeRotation(M_PI / 2)]; - break; - case UIInterfaceOrientationLandscapeRight: - [videoPreview setTransform:CGAffineTransformMakeRotation(-M_PI / 2)]; - break; - default: - break; + case UIInterfaceOrientationPortrait: + [videoPreview setTransform:CGAffineTransformMakeRotation(0)]; + break; + case UIInterfaceOrientationPortraitUpsideDown: + [videoPreview setTransform:CGAffineTransformMakeRotation(M_PI)]; + break; + case UIInterfaceOrientationLandscapeLeft: + [videoPreview setTransform:CGAffineTransformMakeRotation(M_PI / 2)]; + break; + case UIInterfaceOrientationLandscapeRight: + [videoPreview setTransform:CGAffineTransformMakeRotation(-M_PI / 2)]; + break; + default: + break; } [videoPreview setFrame:frame]; } @@ -399,15 +399,15 @@ static UICompositeViewDescription *compositeDescription = nil; [ContactSelection setSipFilter:nil]; [ContactSelection setNameOrEmailFilter:nil]; [ContactSelection enableEmailFilter:FALSE]; - ContactsViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE], - ContactsViewController); + ContactsListView *controller = + DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ContactsListView compositeViewDescription] push:TRUE], + ContactsListView); if (controller != nil) { } } - (IBAction)onBackClick:(id)event { - [[PhoneMainView instance] changeCurrentView:[InCallViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[CallView compositeViewDescription]]; } - (IBAction)onAddressChange:(id)sender { diff --git a/Classes/DialerViewController.h b/Classes/DialerViewController.h deleted file mode 100644 index 7205259ce..000000000 --- a/Classes/DialerViewController.h +++ /dev/null @@ -1,67 +0,0 @@ -/* DialerViewController.h - * - * Copyright (C) 2009 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 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. - */ - -#import - -#import "UICompositeViewController.h" - -#import "UICamSwitch.h" -#import "UICallButton.h" -#import "UITransferButton.h" -#import "UIDigitButton.h" - -@interface DialerViewController : UIViewController { -} - -- (void)setAddress:(NSString*)address; -- (void)call:(NSString*)address displayName:(NSString *)displayName; -- (void)call:(NSString*)address; - -@property (nonatomic, assign) BOOL transferMode; - -@property (nonatomic, strong) IBOutlet UITextField* addressField; -@property (nonatomic, strong) IBOutlet UIButton* addContactButton; -@property (nonatomic, strong) IBOutlet UICallButton* callButton; -@property (nonatomic, strong) IBOutlet UICallButton* addCallButton; -@property (nonatomic, strong) IBOutlet UITransferButton* transferButton; -@property (nonatomic, strong) IBOutlet UIButton* backButton; -@property(weak, nonatomic) IBOutlet UIIconButton *backspaceButton; - -@property (nonatomic, strong) IBOutlet UIDigitButton* oneButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* twoButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* threeButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* fourButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* fiveButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* sixButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* sevenButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* eightButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* nineButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* starButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* zeroButton; -@property (nonatomic, strong) IBOutlet UIDigitButton* sharpButton; -@property (nonatomic, strong) IBOutlet UIView* backgroundView; -@property (nonatomic, strong) IBOutlet UIView* videoPreview; -@property (nonatomic, strong) IBOutlet UICamSwitch* videoCameraSwitch; - -- (IBAction)onAddContactClick: (id) event; -- (IBAction)onBackClick: (id) event; -- (IBAction)onAddressChange: (id)sender; -- (IBAction)onBackspaceClick:(id)sender; - -@end diff --git a/Classes/HistoryDetailsTableViewController.h b/Classes/HistoryDetailsTableView.h similarity index 74% rename from Classes/HistoryDetailsTableViewController.h rename to Classes/HistoryDetailsTableView.h index 62e335171..5f5537942 100644 --- a/Classes/HistoryDetailsTableViewController.h +++ b/Classes/HistoryDetailsTableView.h @@ -8,7 +8,7 @@ #import -@interface HistoryDetailsTableViewController : UITableViewController { +@interface HistoryDetailsTableView : UITableViewController { @private NSMutableArray *callLogs; } diff --git a/Classes/HistoryDetailsTableViewController.m b/Classes/HistoryDetailsTableView.m similarity index 94% rename from Classes/HistoryDetailsTableViewController.m rename to Classes/HistoryDetailsTableView.m index 707273493..f3a041db9 100644 --- a/Classes/HistoryDetailsTableViewController.m +++ b/Classes/HistoryDetailsTableView.m @@ -6,11 +6,11 @@ // // -#import "HistoryDetailsTableViewController.h" +#import "HistoryDetailsTableView.h" #import "LinphoneManager.h" #import "Utils.h" -@implementation HistoryDetailsTableViewController +@implementation HistoryDetailsTableView - (void)loadData { if (callLogs == nil) { diff --git a/Classes/HistoryDetailsViewController.h b/Classes/HistoryDetailsView.h similarity index 52% rename from Classes/HistoryDetailsViewController.h rename to Classes/HistoryDetailsView.h index b32916592..92b9fe5a1 100644 --- a/Classes/HistoryDetailsViewController.h +++ b/Classes/HistoryDetailsView.h @@ -4,39 +4,39 @@ * * 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 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 + * 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 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. - */ + */ #import #include "linphone/linphonecore.h" #import -#import "UICompositeViewController.h" -#import "HistoryDetailsTableViewController.h" -@interface HistoryDetailsViewController : UIViewController { - @private - ABRecordRef contact; - LinphoneCallLog *callLog; - NSDateFormatter *dateFormatter; +#import "UICompositeView.h" +#import "HistoryDetailsTableView.h" +@interface HistoryDetailsView : UIViewController { + @private + ABRecordRef contact; + LinphoneCallLog *callLog; + NSDateFormatter *dateFormatter; } @property(weak, nonatomic) IBOutlet UILabel *contactLabel; -@property (nonatomic, strong) IBOutlet UIImageView *avatarImage; -@property (nonatomic, strong) IBOutlet UILabel *addressLabel; -@property (nonatomic, strong) IBOutlet UIButton *addContactButton; -@property (nonatomic, copy, setter=setCallLogId:) NSString *callLogId; +@property(nonatomic, strong) IBOutlet UIImageView *avatarImage; +@property(nonatomic, strong) IBOutlet UILabel *addressLabel; +@property(nonatomic, strong) IBOutlet UIButton *addContactButton; +@property(nonatomic, copy, setter=setCallLogId:) NSString *callLogId; @property(weak, nonatomic) IBOutlet UIView *headerView; @property(weak, nonatomic) IBOutlet UITableView *callsTableView; -@property(strong, nonatomic) IBOutlet HistoryDetailsTableViewController *tableView; +@property(strong, nonatomic) IBOutlet HistoryDetailsTableView *tableView; - (IBAction)onBackClick:(id)event; - (IBAction)onAddContactClick:(id)event; diff --git a/Classes/HistoryDetailsViewController.m b/Classes/HistoryDetailsView.m similarity index 86% rename from Classes/HistoryDetailsViewController.m rename to Classes/HistoryDetailsView.m index dd6409418..59f3d696b 100644 --- a/Classes/HistoryDetailsViewController.m +++ b/Classes/HistoryDetailsView.m @@ -17,17 +17,17 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "HistoryDetailsViewController.h" +#import "HistoryDetailsView.h" #import "PhoneMainView.h" #import "FastAddressBook.h" -@implementation HistoryDetailsViewController { +@implementation HistoryDetailsView { } #pragma mark - LifeCycle Functions - (id)init { - self = [super initWithNibName:@"HistoryDetailsViewController" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; if (self != nil) { dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeStyle:NSDateFormatterMediumStyle]; @@ -49,9 +49,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"HistoryDetails" - content:@"HistoryDetailsViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"HistoryDetailsView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; @@ -175,10 +175,9 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onContactClick:(id)event { if (contact) { - ContactDetailsViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ContactDetailsViewController compositeViewDescription] - push:TRUE], - ContactDetailsViewController); + ContactDetailsView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ContactDetailsView compositeViewDescription] push:TRUE], + ContactDetailsView); if (controller != nil) { [ContactSelection setSelectionMode:ContactSelectionModeNone]; [controller setContact:contact]; @@ -199,9 +198,9 @@ static UICompositeViewDescription *compositeDescription = nil; [ContactSelection setSipFilter:nil]; [ContactSelection enableEmailFilter:FALSE]; [ContactSelection setNameOrEmailFilter:nil]; - DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] - push:TRUE], - ContactsViewController); + DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ContactsListView compositeViewDescription] push:TRUE], + ContactsListView); ms_free(lAddress); } } @@ -214,9 +213,8 @@ static UICompositeViewDescription *compositeDescription = nil; return; NSString *displayName = [FastAddressBook displayNameForAddress:addr]; - DialerViewController *controller = - DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], - DialerViewController); + DialerView *controller = + DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]], DialerView); if (controller != nil) { [controller call:[NSString stringWithUTF8String:lAddress] displayName:displayName]; } @@ -228,10 +226,10 @@ static UICompositeViewDescription *compositeDescription = nil; if (addr == NULL) return; // Go to ChatRoom view - [[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]]; - ChatRoomViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], - ChatRoomViewController); + [[PhoneMainView instance] changeCurrentView:[ChatsListView compositeViewDescription]]; + ChatConversationView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ChatConversationView compositeViewDescription] push:TRUE], + ChatConversationView); if (controller != nil) { LinphoneChatRoom *room = linphone_core_get_chat_room([LinphoneManager getLc], addr); [controller setChatRoom:room]; diff --git a/Classes/HistoryTableViewController.h b/Classes/HistoryListTableView.h similarity index 55% rename from Classes/HistoryTableViewController.h rename to Classes/HistoryListTableView.h index ee6fe80c2..6e5891f53 100644 --- a/Classes/HistoryTableViewController.h +++ b/Classes/HistoryListTableView.h @@ -4,27 +4,27 @@ * * 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 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 + * 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 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. - */ + */ #import -@interface HistoryTableViewController : UITableViewController { - @private - NSMutableArray *callLogs; +@interface HistoryListTableView : UITableViewController { + @private + NSMutableArray *callLogs; } - (void)loadData; -@property (nonatomic, assign) BOOL missedFilter; +@property(nonatomic, assign) BOOL missedFilter; @end diff --git a/Classes/HistoryTableViewController.m b/Classes/HistoryListTableView.m similarity index 95% rename from Classes/HistoryTableViewController.m rename to Classes/HistoryListTableView.m index 12648a69b..64b15d42b 100644 --- a/Classes/HistoryTableViewController.m +++ b/Classes/HistoryListTableView.m @@ -17,14 +17,14 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "HistoryTableViewController.h" +#import "HistoryListTableView.h" #import "UIHistoryCell.h" #import "LinphoneManager.h" #import "PhoneMainView.h" #import "UACellBackgroundView.h" -#import "UILinphone.h" +#import "Utils.h" -@implementation HistoryTableViewController +@implementation HistoryListTableView @synthesize missedFilter; @@ -145,9 +145,8 @@ char *uri = linphone_address_as_string(addr); // Go to dialer view - DialerViewController *controller = - DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], - DialerViewController); + DialerView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]], DialerView); if (controller != nil) { [controller call:[NSString stringWithUTF8String:uri] displayName:[FastAddressBook displayNameForAddress:addr]]; diff --git a/Classes/HistoryListView.h b/Classes/HistoryListView.h new file mode 100644 index 000000000..549a7417f --- /dev/null +++ b/Classes/HistoryListView.h @@ -0,0 +1,42 @@ +/* HistoryViewController.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 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. + */ + +#import + +#import "UICompositeView.h" +#import "HistoryListTableView.h" +#import "UIToggleButton.h" + +@interface HistoryListView : UIViewController { +} + +@property(nonatomic, strong) IBOutlet HistoryListTableView *tableController; +@property(nonatomic, strong) IBOutlet UITableView *tableView; + +@property(nonatomic, strong) IBOutlet UIButton *allButton; +@property(nonatomic, strong) IBOutlet UIButton *missedButton; +@property(nonatomic, strong) IBOutlet UIToggleButton *editButton; +@property(nonatomic, strong) IBOutlet UIButton *deleteButton; + +- (IBAction)onAllClick:(id)event; +- (IBAction)onMissedClick:(id)event; +- (IBAction)onEditClick:(id)event; +- (IBAction)onDeleteClick:(id)event; + +@end diff --git a/Classes/HistoryViewController.m b/Classes/HistoryListView.m similarity index 92% rename from Classes/HistoryViewController.m rename to Classes/HistoryListView.m index a48c90a7b..df4101433 100644 --- a/Classes/HistoryViewController.m +++ b/Classes/HistoryListView.m @@ -17,9 +17,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "HistoryViewController.h" +#import "HistoryListView.h" -@implementation HistoryViewController +@implementation HistoryListView @synthesize tableView; @synthesize tableController; @@ -34,7 +34,7 @@ typedef enum _HistoryView { History_All, History_Missed, History_MAX } HistoryVi #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"HistoryViewController" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } #pragma mark - UICompositeViewDelegate Functions @@ -44,9 +44,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"History" - content:@"HistoryViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"HistoryListView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; diff --git a/Classes/HistoryViewController.h b/Classes/HistoryViewController.h deleted file mode 100644 index 55d6cc8bf..000000000 --- a/Classes/HistoryViewController.h +++ /dev/null @@ -1,42 +0,0 @@ -/* HistoryViewController.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 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. - */ - -#import - -#import "UICompositeViewController.h" -#import "HistoryTableViewController.h" -#import "UIToggleButton.h" - -@interface HistoryViewController : UIViewController { -} - -@property (nonatomic, strong) IBOutlet HistoryTableViewController* tableController; -@property (nonatomic, strong) IBOutlet UITableView *tableView; - -@property (nonatomic, strong) IBOutlet UIButton* allButton; -@property (nonatomic, strong) IBOutlet UIButton* missedButton; -@property (nonatomic, strong) IBOutlet UIToggleButton* editButton; -@property (nonatomic, strong) IBOutlet UIButton* deleteButton; - -- (IBAction)onAllClick:(id) event; -- (IBAction)onMissedClick:(id) event; -- (IBAction)onEditClick:(id) event; -- (IBAction)onDeleteClick:(id) event; - -@end diff --git a/Classes/ImagePickerViewController.h b/Classes/ImagePickerView.h similarity index 66% rename from Classes/ImagePickerViewController.h rename to Classes/ImagePickerView.h index ca71b60a9..47a052ba0 100644 --- a/Classes/ImagePickerViewController.h +++ b/Classes/ImagePickerView.h @@ -17,23 +17,24 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "UICompositeViewController.h" +#import "UICompositeView.h" @protocol ImagePickerDelegate -- (void)imagePickerDelegateImage:(UIImage*)image info:(NSDictionary *)info; +- (void)imagePickerDelegateImage:(UIImage *)image info:(NSDictionary *)info; @end -@interface ImagePickerViewController : UIViewController { - @private - UIImagePickerController *pickerController; +@interface ImagePickerView : UIViewController { + @private + UIImagePickerController *pickerController; } @property(nonatomic, strong) id imagePickerDelegate; -@property(nonatomic) UIImagePickerControllerSourceType sourceType; -@property(nonatomic,copy) NSArray *mediaTypes; -@property(nonatomic) BOOL allowsEditing; +@property(nonatomic) UIImagePickerControllerSourceType sourceType; +@property(nonatomic, copy) NSArray *mediaTypes; +@property(nonatomic) BOOL allowsEditing; @property(nonatomic, readonly) UIPopoverController *popoverController; + (void)SelectImageFromDevice:(id)delegate diff --git a/Classes/ImagePickerViewController.m b/Classes/ImagePickerView.m similarity index 91% rename from Classes/ImagePickerViewController.m rename to Classes/ImagePickerView.m index d2cc90ed8..13f2c08a0 100644 --- a/Classes/ImagePickerViewController.m +++ b/Classes/ImagePickerView.m @@ -19,10 +19,10 @@ #import -#import "ImagePickerViewController.h" +#import "ImagePickerView.h" #import "PhoneMainView.h" -@implementation ImagePickerViewController +@implementation ImagePickerView @synthesize imagePickerDelegate; @synthesize sourceType; @@ -50,8 +50,8 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"ImagePicker" - content:@"ImagePickerViewController" - stateBar:@"UIStateBar" + content:@"ImagePickerView" + stateBar:@"StatusBarViewController" tabBar:nil fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] @@ -125,7 +125,7 @@ static UICompositeViewDescription *compositeDescription = nil; #pragma mark - - (void)dismiss { - if ([[[PhoneMainView instance] currentView] equal:[ImagePickerViewController compositeViewDescription]]) { + if ([[[PhoneMainView instance] currentView] equal:[ImagePickerView compositeViewDescription]]) { [[PhoneMainView instance] popCurrentView]; } } @@ -167,15 +167,14 @@ static UICompositeViewDescription *compositeDescription = nil; atPosition:(CGRect)ipadPopoverPosition inView:(UIView *)view { void (^block)(UIImagePickerControllerSourceType) = ^(UIImagePickerControllerSourceType type) { - UICompositeViewDescription *description = [ImagePickerViewController compositeViewDescription]; - ImagePickerViewController *controller; + UICompositeViewDescription *description = [ImagePickerView compositeViewDescription]; + ImagePickerView *controller; if ([LinphoneManager runningOnIpad] && view) { - controller = - DYNAMIC_CAST([[PhoneMainView instance].mainViewController getCachedController:description.content], - ImagePickerViewController); + controller = DYNAMIC_CAST( + [[PhoneMainView instance].mainViewController getCachedController:description.content], ImagePickerView); } else { - controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:description push:TRUE], - ImagePickerViewController); + controller = + DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:description push:TRUE], ImagePickerView); } if (controller != nil) { controller.sourceType = type; diff --git a/Classes/ImageView.h b/Classes/ImageView.h new file mode 100644 index 000000000..6d960b81c --- /dev/null +++ b/Classes/ImageView.h @@ -0,0 +1,40 @@ +/* ImageViewController.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. + */ + +#import + +#import "UICompositeView.h" + +@interface UIImageScrollView : UIScrollView + +@property(nonatomic, strong) UIImage *image; +@property(readonly) IBOutlet UIImageView *imageView; + +@end + +@interface ImageView : UIViewController { +} + +@property(nonatomic, strong) IBOutlet UIImageScrollView *scrollView; +@property(nonatomic, strong) UIImage *image; +@property(nonatomic, strong) IBOutlet UIButton *backButton; + +- (IBAction)onBackClick:(id)sender; + +@end \ No newline at end of file diff --git a/Classes/ImageViewController.m b/Classes/ImageView.m similarity index 91% rename from Classes/ImageViewController.m rename to Classes/ImageView.m index 930b3ab70..86711610e 100644 --- a/Classes/ImageViewController.m +++ b/Classes/ImageView.m @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "ImageViewController.h" +#import "ImageView.h" #import "PhoneMainView.h" @implementation UIImageScrollView @@ -106,7 +106,7 @@ @end -@implementation ImageViewController +@implementation ImageView @synthesize scrollView; @synthesize backButton; @@ -115,7 +115,7 @@ #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"ImageViewController" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } #pragma mark - UICompositeViewDelegate Functions @@ -125,8 +125,8 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"ImageView" - content:@"ImageViewController" - stateBar:@"UIStateBar" + content:@"ImageView" + stateBar:@"StatusBarViewController" tabBar:nil fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] @@ -148,7 +148,7 @@ static UICompositeViewDescription *compositeDescription = nil; #pragma mark - Action Functions - (IBAction)onBackClick:(id)sender { - if ([[[PhoneMainView instance] currentView] equal:[ImageViewController compositeViewDescription]]) { + if ([[[PhoneMainView instance] currentView] equal:[ImageView compositeViewDescription]]) { [[PhoneMainView instance] popCurrentView]; } } diff --git a/Classes/ImageViewController.h b/Classes/ImageViewController.h deleted file mode 100644 index c0de9560f..000000000 --- a/Classes/ImageViewController.h +++ /dev/null @@ -1,41 +0,0 @@ -/* ImageViewController.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. - */ - -#import - -#import "UICompositeViewController.h" - -@interface UIImageScrollView : UIScrollView - -@property (nonatomic, strong) UIImage *image; -@property (readonly) IBOutlet UIImageView *imageView; - -@end - -@interface ImageViewController : UIViewController { - -} - -@property (nonatomic, strong) IBOutlet UIImageScrollView *scrollView; -@property (nonatomic, strong) UIImage *image; -@property (nonatomic, strong) IBOutlet UIButton *backButton; - -- (IBAction)onBackClick:(id)sender; - -@end \ No newline at end of file diff --git a/Classes/InCallViewController.h b/Classes/InCallViewController.h deleted file mode 100644 index d22923990..000000000 --- a/Classes/InCallViewController.h +++ /dev/null @@ -1,50 +0,0 @@ -/* InCallViewController.h - * - * Copyright (C) 2009 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 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. - */ - -#import - -#import "VideoZoomHandler.h" -#import "UICamSwitch.h" - -#import "UICompositeViewController.h" -#import "InCallTableViewController.h" - -@class VideoViewController; - -@interface InCallViewController : UIViewController { - @private - UITapGestureRecognizer* singleFingerTap; - NSTimer* hideControlsTimer; - BOOL videoShown; - VideoZoomHandler* videoZoomHandler; -} - -@property (nonatomic, strong) IBOutlet InCallTableViewController* callTableController; -@property (nonatomic, strong) IBOutlet UITableView* callTableView; - -@property (nonatomic, strong) IBOutlet UIView* videoGroup; -@property (nonatomic, strong) IBOutlet UIView* videoView; -#ifdef TEST_VIDEO_VIEW_CHANGE -@property (nonatomic, retain) IBOutlet UIView* testVideoView; -#endif -@property (nonatomic, strong) IBOutlet UIView* videoPreview; -@property (nonatomic, strong) IBOutlet UICamSwitch* videoCameraSwitch; -@property (nonatomic, strong) IBOutlet UIActivityIndicatorView* videoWaitingForFirstImage; - -@end diff --git a/Classes/IncomingCallViewController.h b/Classes/IncomingCallViewController.h deleted file mode 100644 index 38290f34c..000000000 --- a/Classes/IncomingCallViewController.h +++ /dev/null @@ -1,45 +0,0 @@ -/* IncomingCallViewController.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 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. - */ - -#import - -#import "UICompositeViewController.h" -#import "TPMultiLayoutViewController.h" -#include "LinphoneManager.h" - -@protocol IncomingCallViewDelegate - -- (void)incomingCallAccepted:(LinphoneCall*)call; -- (void)incomingCallDeclined:(LinphoneCall*)call; -- (void)incomingCallAborted:(LinphoneCall*)call; - -@end - -@interface IncomingCallViewController : TPMultiLayoutViewController { -} -@property(weak, nonatomic) IBOutlet UILabel *nameLabel; -@property (nonatomic, strong) IBOutlet UILabel* addressLabel; -@property (nonatomic, strong) IBOutlet UIImageView* avatarImage; -@property (nonatomic, assign) LinphoneCall* call; -@property (nonatomic, strong) id delegate; - -- (IBAction)onAcceptClick:(id) event; -- (IBAction)onDeclineClick:(id) event; - -@end diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 60ce84ba9..643747b60 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -252,9 +252,8 @@ NSString *sipUri = [[url resourceSpecifier] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]]; - DialerViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], - DialerViewController); + DialerView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]], DialerView); if (controller != nil) { [controller setAddress:sipUri]; } @@ -298,7 +297,7 @@ if ([loc_key isEqualToString:@"IM_MSG"]) { - [[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[ChatsListView compositeViewDescription]]; } else if ([loc_key isEqualToString:@"IC_MSG"]) { @@ -349,22 +348,21 @@ } else if ([notification.userInfo objectForKey:@"from_addr"] != nil) { NSString *remoteContact = (NSString *)[notification.userInfo objectForKey:@"from_addr"]; // Go to ChatRoom view - [[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[ChatsListView compositeViewDescription]]; LinphoneChatRoom *room = [self findChatRoomForContact:remoteContact]; - ChatRoomViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], - ChatRoomViewController); + ChatConversationView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ChatConversationView compositeViewDescription] push:TRUE], + ChatConversationView); if (controller != nil && room != nil) { [controller setChatRoom:room]; } } else if ([notification.userInfo objectForKey:@"callLog"] != nil) { NSString *callLog = (NSString *)[notification.userInfo objectForKey:@"callLog"]; // Go to HistoryDetails view - [[PhoneMainView instance] changeCurrentView:[HistoryViewController compositeViewDescription]]; - HistoryDetailsViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[HistoryDetailsViewController compositeViewDescription] - push:TRUE], - HistoryDetailsViewController); + [[PhoneMainView instance] changeCurrentView:[HistoryListView compositeViewDescription]]; + HistoryDetailsView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[HistoryDetailsView compositeViewDescription] push:TRUE], + HistoryDetailsView); if (controller != nil) { [controller setCallLogId:callLog]; } diff --git a/Classes/LinphoneUI/Base.lproj/UIStateBar.xib b/Classes/LinphoneUI/Base.lproj/StatusBarView.xib similarity index 98% rename from Classes/LinphoneUI/Base.lproj/UIStateBar.xib rename to Classes/LinphoneUI/Base.lproj/StatusBarView.xib index a70efa05c..9c1932967 100644 --- a/Classes/LinphoneUI/Base.lproj/UIStateBar.xib +++ b/Classes/LinphoneUI/Base.lproj/StatusBarView.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/LinphoneUI/Base.lproj/UIMainBar.xib b/Classes/LinphoneUI/Base.lproj/TabBarView.xib similarity index 99% rename from Classes/LinphoneUI/Base.lproj/UIMainBar.xib rename to Classes/LinphoneUI/Base.lproj/TabBarView.xib index 12cac23ce..f2002ec11 100644 --- a/Classes/LinphoneUI/Base.lproj/UIMainBar.xib +++ b/Classes/LinphoneUI/Base.lproj/TabBarView.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/LinphoneUI/Base.lproj/UIChatRoomCell.xib b/Classes/LinphoneUI/Base.lproj/UIChatConversationCell.xib similarity index 99% rename from Classes/LinphoneUI/Base.lproj/UIChatRoomCell.xib rename to Classes/LinphoneUI/Base.lproj/UIChatConversationCell.xib index 31add86d0..373a79d8c 100644 --- a/Classes/LinphoneUI/Base.lproj/UIChatRoomCell.xib +++ b/Classes/LinphoneUI/Base.lproj/UIChatConversationCell.xib @@ -1,11 +1,10 @@ - - + diff --git a/Classes/LinphoneUI/Base.lproj/UICompositeViewController.xib b/Classes/LinphoneUI/Base.lproj/UICompositeView.xib similarity index 98% rename from Classes/LinphoneUI/Base.lproj/UICompositeViewController.xib rename to Classes/LinphoneUI/Base.lproj/UICompositeView.xib index d6a132afd..890d013cc 100644 --- a/Classes/LinphoneUI/Base.lproj/UICompositeViewController.xib +++ b/Classes/LinphoneUI/Base.lproj/UICompositeView.xib @@ -1,12 +1,11 @@ - - + diff --git a/Classes/LinphoneUI/UIStateBar.h b/Classes/LinphoneUI/StatusBarView.h similarity index 81% rename from Classes/LinphoneUI/UIStateBar.h rename to Classes/LinphoneUI/StatusBarView.h index b47fd87e3..ec9add23c 100644 --- a/Classes/LinphoneUI/UIStateBar.h +++ b/Classes/LinphoneUI/StatusBarView.h @@ -1,4 +1,4 @@ -/* UIStateBar.h +/* StatusBarViewController.h * * Copyright (C) 2012 Belledonne Comunications, Grenoble, France * @@ -21,13 +21,13 @@ #import "TPMultiLayoutViewController.h" #import "PhoneMainView.h" -@interface UIStateBar : TPMultiLayoutViewController { - DTActionSheet *securitySheet; +@interface StatusBarView : TPMultiLayoutViewController { + DTActionSheet *securitySheet; } @property(weak, nonatomic) IBOutlet UIButton *registrationState; -@property (nonatomic, strong) IBOutlet UIImageView* callQualityImage; -@property (nonatomic, strong) IBOutlet UIButton* callSecurityButton; +@property(nonatomic, strong) IBOutlet UIImageView *callQualityImage; +@property(nonatomic, strong) IBOutlet UIButton *callSecurityButton; @property(weak, nonatomic) IBOutlet UIButton *voicemailButton; @property(weak, nonatomic) IBOutlet UIView *incallView; diff --git a/Classes/LinphoneUI/UIStateBar.m b/Classes/LinphoneUI/StatusBarView.m similarity index 91% rename from Classes/LinphoneUI/UIStateBar.m rename to Classes/LinphoneUI/StatusBarView.m index 1124220b9..d735fad4f 100644 --- a/Classes/LinphoneUI/UIStateBar.m +++ b/Classes/LinphoneUI/StatusBarView.m @@ -1,4 +1,4 @@ -/* UIStateBar.m +/* StatusBarViewController.m * * Copyright (C) 2012 Belledonne Comunications, Grenoble, France * @@ -17,11 +17,11 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "UIStateBar.h" +#import "StatusBarView.h" #import "LinphoneManager.h" #import "PhoneMainView.h" -@implementation UIStateBar { +@implementation StatusBarView { NSTimer *callQualityTimer; NSTimer *callSecurityTimer; @@ -35,7 +35,7 @@ #pragma mark - Lifecycle Functions - (id)init { - self = [super initWithNibName:@"UIStateBar" bundle:[NSBundle mainBundle]]; + self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; return self; } @@ -169,38 +169,38 @@ state = linphone_proxy_config_get_state(config); switch (state) { - case LinphoneRegistrationOk: - message = NSLocalizedString(@"Registered", nil); - break; - case LinphoneRegistrationNone: - case LinphoneRegistrationCleared: - message = NSLocalizedString(@"Not registered", nil); - break; - case LinphoneRegistrationFailed: - message = NSLocalizedString(@"Registration failed", nil); - break; - case LinphoneRegistrationProgress: - message = NSLocalizedString(@"Registration in progress", nil); - break; - default: - break; + case LinphoneRegistrationOk: + message = NSLocalizedString(@"Registered", nil); + break; + case LinphoneRegistrationNone: + case LinphoneRegistrationCleared: + message = NSLocalizedString(@"Not registered", nil); + break; + case LinphoneRegistrationFailed: + message = NSLocalizedString(@"Registration failed", nil); + break; + case LinphoneRegistrationProgress: + message = NSLocalizedString(@"Registration in progress", nil); + break; + default: + break; } } switch (state) { - case LinphoneRegistrationFailed: - image = [UIImage imageNamed:@"led_error.png"]; - break; - case LinphoneRegistrationCleared: - case LinphoneRegistrationNone: - image = [UIImage imageNamed:@"led_disconnected.png"]; - break; - case LinphoneRegistrationProgress: - image = [UIImage imageNamed:@"led_inprogress.png"]; - break; - case LinphoneRegistrationOk: - image = [UIImage imageNamed:@"led_connected.png"]; - break; + case LinphoneRegistrationFailed: + image = [UIImage imageNamed:@"led_error.png"]; + break; + case LinphoneRegistrationCleared: + case LinphoneRegistrationNone: + image = [UIImage imageNamed:@"led_disconnected.png"]; + break; + case LinphoneRegistrationProgress: + image = [UIImage imageNamed:@"led_inprogress.png"]; + break; + case LinphoneRegistrationOk: + image = [UIImage imageNamed:@"led_connected.png"]; + break; } [registrationState setTitle:message forState:UIControlStateNormal]; registrationState.accessibilityValue = message; @@ -307,7 +307,7 @@ linphone_call_get_authentication_token(call)]; } if (securitySheet == nil) { - __block __strong UIStateBar *weakSelf = self; + __block __strong StatusBarView *weakSelf = self; securitySheet = [[DTActionSheet alloc] initWithTitle:message]; [securitySheet setDelegate:self]; [securitySheet addButtonWithTitle:NSLocalizedString(@"Ok", nil) @@ -328,7 +328,7 @@ } - (IBAction)onSideMenuClick:(id)sender { - UICompositeViewController *cvc = PhoneMainView.instance.mainViewController; + UICompositeView *cvc = PhoneMainView.instance.mainViewController; if (cvc.sideMenuView.hidden) { [cvc hideSideMenu:NO]; } else { diff --git a/Classes/LinphoneUI/TabBarView.h b/Classes/LinphoneUI/TabBarView.h new file mode 100644 index 000000000..ccbb4104c --- /dev/null +++ b/Classes/LinphoneUI/TabBarView.h @@ -0,0 +1,41 @@ +/* TabBarViewController.m + * + * 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. + */ + +#import +#import "TPMultiLayoutViewController.h" + +@interface TabBarView : TPMultiLayoutViewController { +} + +@property(nonatomic, strong) IBOutlet UIButton *historyButton; +@property(nonatomic, strong) IBOutlet UIButton *contactsButton; +@property(nonatomic, strong) IBOutlet UIButton *dialerButton; +@property(nonatomic, strong) IBOutlet UIButton *chatButton; +@property(nonatomic, strong) IBOutlet UIView *historyNotificationView; +@property(nonatomic, strong) IBOutlet UILabel *historyNotificationLabel; +@property(nonatomic, strong) IBOutlet UIView *chatNotificationView; +@property(nonatomic, strong) IBOutlet UILabel *chatNotificationLabel; +@property(weak, nonatomic) IBOutlet UIView *selectedBtnView; + +- (IBAction)onHistoryClick:(id)event; +- (IBAction)onContactsClick:(id)event; +- (IBAction)onDialerClick:(id)event; +- (IBAction)onChatClick:(id)event; + +@end diff --git a/Classes/LinphoneUI/UIMainBar.m b/Classes/LinphoneUI/TabBarView.m similarity index 92% rename from Classes/LinphoneUI/UIMainBar.m rename to Classes/LinphoneUI/TabBarView.m index fe2c05088..09eccbcd9 100644 --- a/Classes/LinphoneUI/UIMainBar.m +++ b/Classes/LinphoneUI/TabBarView.m @@ -1,4 +1,4 @@ -/* UIMainBar.m +/* TabBarViewController.m * * Copyright (C) 2012 Belledonne Comunications, Grenoble, France * @@ -17,11 +17,11 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "UIMainBar.h" +#import "TabBarView.h" #import "PhoneMainView.h" #import "CAAnimation+Blocks.h" -@implementation UIMainBar +@implementation TabBarView static NSString *const kBounceAnimation = @"bounce"; static NSString *const kAppearAnimation = @"appear"; @@ -39,7 +39,7 @@ static NSString *const kDisappearAnimation = @"disappear"; #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"UIMainBar" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } #pragma mark - ViewController Functions @@ -218,10 +218,10 @@ static NSString *const kDisappearAnimation = @"disappear"; } - (void)updateSelectedButton:(UICompositeViewDescription *)view { - historyButton.selected = [view equal:[HistoryViewController compositeViewDescription]]; - contactsButton.selected = [view equal:[ContactsViewController compositeViewDescription]]; - dialerButton.selected = [view equal:[DialerViewController compositeViewDescription]]; - chatButton.selected = [view equal:[ChatViewController compositeViewDescription]]; + historyButton.selected = [view equal:[HistoryListView compositeViewDescription]]; + contactsButton.selected = [view equal:[ContactsListView compositeViewDescription]]; + dialerButton.selected = [view equal:[DialerView compositeViewDescription]]; + chatButton.selected = [view equal:[ChatsListView compositeViewDescription]]; CGRect selectedNewFrame = _selectedBtnView.frame; selectedNewFrame.origin.x = (historyButton.selected @@ -236,7 +236,7 @@ static NSString *const kDisappearAnimation = @"disappear"; #pragma mark - Action Functions - (IBAction)onHistoryClick:(id)event { - [[PhoneMainView instance] changeCurrentView:[HistoryViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[HistoryListView compositeViewDescription]]; } - (IBAction)onContactsClick:(id)event { @@ -245,19 +245,19 @@ static NSString *const kDisappearAnimation = @"disappear"; [ContactSelection setSipFilter:nil]; [ContactSelection enableEmailFilter:FALSE]; [ContactSelection setNameOrEmailFilter:nil]; - [[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[ContactsListView compositeViewDescription]]; } - (IBAction)onDialerClick:(id)event { - [[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[DialerView compositeViewDescription]]; } - (IBAction)onSettingsClick:(id)event { - [[PhoneMainView instance] changeCurrentView:[SettingsViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[SettingsView compositeViewDescription]]; } - (IBAction)onChatClick:(id)event { - [[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]]; + [[PhoneMainView instance] changeCurrentView:[ChatsListView compositeViewDescription]]; } #pragma mark - Animation diff --git a/Classes/LinphoneUI/UICallCell.m b/Classes/LinphoneUI/UICallCell.m index 41cc1fde9..d0c75046d 100644 --- a/Classes/LinphoneUI/UICallCell.m +++ b/Classes/LinphoneUI/UICallCell.m @@ -20,7 +20,6 @@ #import #import "UICallCell.h" -#import "UILinphone.h" #import "LinphoneManager.h" #import "FastAddressBook.h" #import "Utils.h" diff --git a/Classes/LinphoneUI/UIChatConversationCell.h b/Classes/LinphoneUI/UIChatConversationCell.h new file mode 100644 index 000000000..af47f3292 --- /dev/null +++ b/Classes/LinphoneUI/UIChatConversationCell.h @@ -0,0 +1,61 @@ +/* UIChatRoomCell.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. + */ + +#import + +#import "ChatConversationTableView.h" +#import "UILoadingImageView.h" +#import "UITransparentTVCell.h" +#import "UITextViewNoDefine.h" +#include "linphone/linphonecore.h" +#import "FileTransferDelegate.h" + +@interface UIChatConversationCell : UITransparentTVCell { + LinphoneChatMessage *chat; +} + +@property(nonatomic, strong) IBOutlet UIView *innerView; +@property(nonatomic, strong) IBOutlet UIView *bubbleView; +@property(nonatomic, strong) IBOutlet UIImageView *backgroundImage; +@property(nonatomic, strong) IBOutlet UITextViewNoDefine *messageText; +@property(nonatomic, strong) IBOutlet UILoadingImageView *messageImageView; +@property(nonatomic, strong) IBOutlet UIButton *deleteButton; +@property(nonatomic, strong) IBOutlet UILabel *dateLabel; +@property(nonatomic, strong) IBOutlet UIImageView *statusImage; +@property(nonatomic, strong) IBOutlet UIButton *downloadButton; +@property(nonatomic, strong) IBOutlet UITapGestureRecognizer *imageTapGestureRecognizer; +@property(nonatomic, strong) IBOutlet UITapGestureRecognizer *resendTapGestureRecognizer; +@property(weak, nonatomic) IBOutlet UIProgressView *fileTransferProgress; +@property(weak, nonatomic) IBOutlet UIButton *cancelButton; + +- (id)initWithIdentifier:(NSString *)identifier; ++ (CGFloat)height:(LinphoneChatMessage *)chatMessage width:(int)width; + +@property(nonatomic, strong) id chatRoomDelegate; + +- (IBAction)onDeleteClick:(id)event; +- (IBAction)onDownloadClick:(id)event; +- (IBAction)onImageClick:(id)event; +- (IBAction)onCancelDownloadClick:(id)sender; + +- (void)setChatMessage:(LinphoneChatMessage *)message; + +- (void)connectToFileDelegate:(FileTransferDelegate *)ftd; + +@end diff --git a/Classes/LinphoneUI/UIChatRoomCell.m b/Classes/LinphoneUI/UIChatConversationCell.m similarity index 95% rename from Classes/LinphoneUI/UIChatRoomCell.m rename to Classes/LinphoneUI/UIChatConversationCell.m index 5bb0ac0d8..7346b1d2e 100644 --- a/Classes/LinphoneUI/UIChatRoomCell.m +++ b/Classes/LinphoneUI/UIChatConversationCell.m @@ -17,8 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "UIChatRoomCell.h" -#import "UILinphone.h" +#import "UIChatConversationCell.h" #import "Utils.h" #import "LinphoneManager.h" #import "PhoneMainView.h" @@ -27,7 +26,7 @@ #import #include "linphone/linphonecore.h" -@implementation UIChatRoomCell { +@implementation UIChatConversationCell { FileTransferDelegate *ftd; } @@ -58,7 +57,7 @@ static UIFont *CELL_FONT = nil; - (id)initWithIdentifier:(NSString *)identifier { if ((self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]) != nil) { - [[NSBundle mainBundle] loadNibNamed:@"UIChatRoomCell" owner:self options:nil]; + [[NSBundle mainBundle] loadNibNamed:@"UIChatConversationCell" owner:self options:nil]; imageTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onImageClick:)]; [messageImageView addGestureRecognizer:imageTapGestureRecognizer]; @@ -194,7 +193,7 @@ static UIFont *CELL_FONT = nil; } else { [messageText setHidden:FALSE]; if (text) { - NSString *nstext = [UIChatRoomCell decodeTextMessage:text]; + NSString *nstext = [UIChatConversationCell decodeTextMessage:text]; /* We need to use an attributed string here so that data detector don't mess * with the text style. See http://stackoverflow.com/a/20669356 */ @@ -273,7 +272,7 @@ static UIFont *CELL_FONT = nil; CGSize messageSize; const char *url = linphone_chat_message_get_external_body_url(chat); const char *text = linphone_chat_message_get_text(chat); - NSString *messageText = text ? [UIChatRoomCell decodeTextMessage:text] : @""; + NSString *messageText = text ? [UIChatConversationCell decodeTextMessage:text] : @""; if (url == nil && linphone_chat_message_get_file_transfer_information(chat) == NULL) { if (CELL_FONT == nil) { CELL_FONT = [UIFont systemFontOfSize:CELL_FONT_SIZE]; @@ -310,7 +309,7 @@ static UIFont *CELL_FONT = nil; } + (CGFloat)height:(LinphoneChatMessage *)chatMessage width:(int)width { - return [UIChatRoomCell viewSize:chatMessage width:width].height; + return [UIChatConversationCell viewSize:chatMessage width:width].height; } #pragma mark - View Functions @@ -321,7 +320,7 @@ static UIFont *CELL_FONT = nil; // Resize inner CGRect innerFrame; BOOL is_outgoing = linphone_chat_message_is_outgoing(chat); - innerFrame.size = [UIChatRoomCell viewSize:chat width:[self frame].size.width]; + innerFrame.size = [UIChatConversationCell viewSize:chat width:[self frame].size.width]; if (!is_outgoing) { // Inverted innerFrame.origin.x = 0.0f; innerFrame.origin.y = 0.0f; @@ -392,9 +391,8 @@ static UIFont *CELL_FONT = nil; [self onResendClick:nil]; } else { if (![messageImageView isLoading]) { - ImageViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[ImageViewController compositeViewDescription] push:TRUE], - ImageViewController); + ImageView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[ImageView compositeViewDescription] push:TRUE], ImageView); if (controller != nil) { CGImageRef fullScreenRef = [[messageImageView.fullImageUrl defaultRepresentation] fullScreenImage]; UIImage *fullScreen = [UIImage imageWithCGImage:fullScreenRef]; @@ -422,7 +420,7 @@ static UIFont *CELL_FONT = nil; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) { UIImage *image = [[UIImage alloc] initWithCGImage:[asset thumbnail]]; - [chatRoomDelegate chatRoomStartImageUpload:image url:imageUrl]; + [chatRoomDelegate startImageUpload:image url:imageUrl]; }); } failureBlock:^(NSError *error) { @@ -444,7 +442,7 @@ static UIFont *CELL_FONT = nil; } #pragma mark - State changed handling static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState state) { - UIChatRoomCell *thiz = (__bridge UIChatRoomCell *)linphone_chat_message_get_user_data(msg); + UIChatConversationCell *thiz = (__bridge UIChatConversationCell *)linphone_chat_message_get_user_data(msg); LOGI(@"State for message [%p] changed to %s", msg, linphone_chat_message_state_to_string(state)); if (linphone_chat_message_get_file_transfer_information(msg) != NULL) { if (state == LinphoneChatMessageStateDelivered || state == LinphoneChatMessageStateNotDelivered) { diff --git a/Classes/LinphoneUI/UIChatRoomCell.h b/Classes/LinphoneUI/UIChatRoomCell.h deleted file mode 100644 index 9502e5e05..000000000 --- a/Classes/LinphoneUI/UIChatRoomCell.h +++ /dev/null @@ -1,61 +0,0 @@ -/* UIChatRoomCell.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. - */ - -#import - -#import "ChatRoomTableViewController.h" -#import "UILoadingImageView.h" -#import "UITransparentTVCell.h" -#import "UITextViewNoDefine.h" -#include "linphone/linphonecore.h" -#import "FileTransferDelegate.h" - -@interface UIChatRoomCell : UITransparentTVCell { - LinphoneChatMessage* chat; -} - -@property (nonatomic, strong) IBOutlet UIView *innerView; -@property (nonatomic, strong) IBOutlet UIView *bubbleView; -@property (nonatomic, strong) IBOutlet UIImageView* backgroundImage; -@property (nonatomic, strong) IBOutlet UITextViewNoDefine *messageText; -@property (nonatomic, strong) IBOutlet UILoadingImageView *messageImageView; -@property (nonatomic, strong) IBOutlet UIButton *deleteButton; -@property (nonatomic, strong) IBOutlet UILabel *dateLabel; -@property (nonatomic, strong) IBOutlet UIImageView* statusImage; -@property (nonatomic, strong) IBOutlet UIButton* downloadButton; -@property (nonatomic, strong) IBOutlet UITapGestureRecognizer* imageTapGestureRecognizer; -@property (nonatomic, strong) IBOutlet UITapGestureRecognizer* resendTapGestureRecognizer; -@property (weak, nonatomic) IBOutlet UIProgressView *fileTransferProgress; -@property (weak, nonatomic) IBOutlet UIButton *cancelButton; - -- (id)initWithIdentifier:(NSString*)identifier; -+ (CGFloat)height:(LinphoneChatMessage*)chatMessage width:(int)width; - -@property (nonatomic, strong) id chatRoomDelegate; - -- (IBAction)onDeleteClick:(id)event; -- (IBAction)onDownloadClick:(id)event; -- (IBAction)onImageClick:(id)event; -- (IBAction)onCancelDownloadClick:(id)sender; - -- (void)setChatMessage:(LinphoneChatMessage*)message; - -- (void)connectToFileDelegate:(FileTransferDelegate*)ftd; - -@end diff --git a/Classes/LinphoneUI/UICompositeView.h b/Classes/LinphoneUI/UICompositeView.h new file mode 100644 index 000000000..19796ad82 --- /dev/null +++ b/Classes/LinphoneUI/UICompositeView.h @@ -0,0 +1,83 @@ +/* UICompositeViewController.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. + */ + +#import +#import + +#import "LinphoneManager.h" +#import "TPMultiLayoutViewController.h" +#import "SideMenuTableView.h" + +@interface UICompositeViewDescription : NSObject { +} + +@property(strong) NSString *name; +@property(strong) NSString *content; +@property(strong) NSString *stateBar; +@property(strong) NSString *tabBar; +@property(assign) BOOL fullscreen; +@property(assign) BOOL landscapeMode; +@property(assign) BOOL portraitMode; +@property(assign) BOOL darkBackground; + +- (id)copy; +- (BOOL)equal:(UICompositeViewDescription *)description; +- (id)init:(NSString *)name + content:(NSString *)content + stateBar:(NSString *)stateBar + tabBar:(NSString *)tabBar + fullscreen:(BOOL)fullscreen + landscapeMode:(BOOL)landscapeMode + portraitMode:(BOOL)portraitMode; + +@end + +@protocol UICompositeViewDelegate + ++ (UICompositeViewDescription *)compositeViewDescription; + +@end + +@interface UICompositeView : TPMultiLayoutViewController { + @private + NSMutableDictionary *viewControllerCache; + UICompositeViewDescription *currentViewDescription; + UIInterfaceOrientation currentOrientation; +} + +@property(strong) CATransition *viewTransition; + +@property(nonatomic, strong) IBOutlet UIView *stateBarView; +@property(nonatomic, strong) IBOutlet UIView *contentView; +@property(nonatomic, strong) IBOutlet UIView *tabBarView; +@property(strong, nonatomic) IBOutlet UIView *sideMenuView; + +- (void)changeView:(UICompositeViewDescription *)description; +- (void)setFullScreen:(BOOL)enabled; +- (void)hideStateBar:(BOOL)hidden; +- (void)hideToolBar:(BOOL)hidden; +- (void)hideSideMenu:(BOOL)hidden; +- (BOOL)currentViewSupportsLandscape; +- (UIViewController *)getCachedController:(NSString *)name; +- (UIViewController *)getCurrentViewController; +- (UIInterfaceOrientation)currentOrientation; +- (void)clearCache:(NSArray *)exclude; +- (IBAction)onRightSwipe:(id)sender; + +@end diff --git a/Classes/LinphoneUI/UICompositeViewController.m b/Classes/LinphoneUI/UICompositeView.m similarity index 94% rename from Classes/LinphoneUI/UICompositeViewController.m rename to Classes/LinphoneUI/UICompositeView.m index cb55ee898..a1bf646ec 100644 --- a/Classes/LinphoneUI/UICompositeViewController.m +++ b/Classes/LinphoneUI/UICompositeView.m @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "UICompositeViewController.h" +#import "UICompositeView.h" #import "LinphoneAppDelegate.h" #import "Utils.h" @@ -49,12 +49,12 @@ } - (id)init:(NSString *)aname - content:(NSString *)acontent - stateBar:(NSString *)astateBar - tabBar:(NSString *)atabBar - fullscreen:(BOOL)afullscreen - landscapeMode:(BOOL)alandscapeMode - portraitMode:(BOOL)aportraitMode { + content:(NSString *)acontent + stateBar:(NSString *)astateBar + tabBar:(NSString *)atabBar + fullscreen:(BOOL)afullscreen + landscapeMode:(BOOL)alandscapeMode + portraitMode:(BOOL)aportraitMode { self.name = aname; self.content = acontent; self.stateBar = astateBar; @@ -68,7 +68,7 @@ } @end -@interface UICompositeViewController () +@interface UICompositeView () @property(nonatomic, strong) UIViewController *stateBarViewController; @property(nonatomic, strong) UIViewController *tabBarViewController; @@ -77,7 +77,7 @@ @end -@implementation UICompositeViewController +@implementation UICompositeView @synthesize stateBarView; @synthesize contentView; @@ -170,7 +170,7 @@ [super viewDidLoad]; _sideMenuViewController = [self getCachedController:@"SideMenuViewController"]; - [UICompositeViewController addSubView:_sideMenuViewController view:_sideMenuView]; + [UICompositeView addSubView:_sideMenuViewController view:_sideMenuView]; } - (void)viewWillAppear:(BOOL)animated { @@ -258,8 +258,7 @@ UIInterfaceOrientation correctOrientation = [self getCorrectInterfaceOrientation:[[UIDevice currentDevice] orientation]]; if (currentOrientation != correctOrientation) { - [UICompositeViewController setOrientation:correctOrientation - animated:currentOrientation != UIDeviceOrientationUnknown]; + [UICompositeView setOrientation:correctOrientation animated:currentOrientation != UIDeviceOrientationUnknown]; } } @@ -288,7 +287,7 @@ }]; if (firstResponder == nil) { - firstResponder = [UICompositeViewController findFirstResponder:controller.view]; + firstResponder = [UICompositeView findFirstResponder:controller.view]; } [[UIApplication sharedApplication] setStatusBarOrientation:orientation animated:animated]; @@ -303,7 +302,7 @@ return view; } for (UIView *subView in view.subviews) { - UIView *ret = [UICompositeViewController findFirstResponder:subView]; + UIView *ret = [UICompositeView findFirstResponder:subView]; if (ret != nil) return ret; } @@ -431,12 +430,12 @@ UIViewController *newStateBarViewController = [self getCachedController:description.stateBar]; UIViewController *newTabBarViewController = [self getCachedController:description.tabBar]; - [UICompositeViewController removeSubView:oldContentViewController]; + [UICompositeView removeSubView:oldContentViewController]; if (oldTabBarViewController != nil && oldTabBarViewController != newTabBarViewController) { - [UICompositeViewController removeSubView:oldTabBarViewController]; + [UICompositeView removeSubView:oldTabBarViewController]; } if (oldStateBarViewController != nil && oldStateBarViewController != newStateBarViewController) { - [UICompositeViewController removeSubView:oldStateBarViewController]; + [UICompositeView removeSubView:oldStateBarViewController]; } self.stateBarViewController = newStateBarViewController; @@ -447,8 +446,8 @@ UIInterfaceOrientation correctOrientation = [self getCorrectInterfaceOrientation:(UIDeviceOrientation)[UIApplication sharedApplication].statusBarOrientation]; if (currentOrientation != correctOrientation) { - [UICompositeViewController setOrientation:correctOrientation - animated:currentOrientation != UIDeviceOrientationUnknown]; + [UICompositeView setOrientation:correctOrientation + animated:currentOrientation != UIDeviceOrientationUnknown]; if (UIInterfaceOrientationIsLandscape(correctOrientation)) { [self.contentViewController willAnimateRotationToInterfaceOrientation:correctOrientation duration:0]; [self.tabBarViewController willAnimateRotationToInterfaceOrientation:correctOrientation duration:0]; @@ -571,12 +570,12 @@ // Change view if (description != nil) { - [UICompositeViewController addSubView:self.contentViewController view:contentView]; + [UICompositeView addSubView:self.contentViewController view:contentView]; if (oldTabBarViewController == nil || oldTabBarViewController != self.tabBarViewController) { - [UICompositeViewController addSubView:self.tabBarViewController view:tabBarView]; + [UICompositeView addSubView:self.tabBarViewController view:tabBarView]; } if (oldStateBarViewController == nil || oldStateBarViewController != self.stateBarViewController) { - [UICompositeViewController addSubView:self.stateBarViewController view:stateBarView]; + [UICompositeView addSubView:self.stateBarViewController view:stateBarView]; } } diff --git a/Classes/LinphoneUI/UICompositeViewController.h b/Classes/LinphoneUI/UICompositeViewController.h deleted file mode 100644 index 42d914fa7..000000000 --- a/Classes/LinphoneUI/UICompositeViewController.h +++ /dev/null @@ -1,81 +0,0 @@ -/* UICompositeViewController.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. - */ - -#import -#import - -#import "LinphoneManager.h" -#import "TPMultiLayoutViewController.h" -#import "SideMenuTableViewController.h" - -@interface UICompositeViewDescription: NSObject{ -} - -@property (strong) NSString *name; -@property (strong) NSString *content; -@property (strong) NSString *stateBar; -@property (strong) NSString *tabBar; -@property (assign) BOOL fullscreen; -@property (assign) BOOL landscapeMode; -@property (assign) BOOL portraitMode; -@property (assign) BOOL darkBackground; - -- (id)copy; -- (BOOL)equal:(UICompositeViewDescription*) description; -- (id)init:(NSString *)name content:(NSString *)content stateBar:(NSString*)stateBar - tabBar:(NSString*)tabBar - fullscreen:(BOOL) fullscreen - landscapeMode:(BOOL) landscapeMode - portraitMode:(BOOL) portraitMode; - -@end - -@protocol UICompositeViewDelegate - -+ (UICompositeViewDescription*) compositeViewDescription; - -@end - -@interface UICompositeViewController : TPMultiLayoutViewController { - @private - NSMutableDictionary *viewControllerCache; - UICompositeViewDescription *currentViewDescription; - UIInterfaceOrientation currentOrientation; -} - -@property (strong) CATransition *viewTransition; - -@property (nonatomic, strong) IBOutlet UIView* stateBarView; -@property (nonatomic, strong) IBOutlet UIView* contentView; -@property (nonatomic, strong) IBOutlet UIView* tabBarView; -@property(strong, nonatomic) IBOutlet UIView *sideMenuView; - -- (void)changeView:(UICompositeViewDescription *)description; -- (void)setFullScreen:(BOOL)enabled; -- (void)hideStateBar:(BOOL)hidden; -- (void)hideToolBar:(BOOL)hidden; -- (void)hideSideMenu:(BOOL)hidden; -- (BOOL)currentViewSupportsLandscape; -- (UIViewController *)getCachedController:(NSString*)name; -- (UIViewController *)getCurrentViewController; -- (UIInterfaceOrientation)currentOrientation; -- (void)clearCache:(NSArray*)exclude; -- (IBAction)onRightSwipe:(id)sender; - -@end diff --git a/Classes/LinphoneUI/UIConferenceHeader.m b/Classes/LinphoneUI/UIConferenceHeader.m index 58c02c318..7385b3c23 100644 --- a/Classes/LinphoneUI/UIConferenceHeader.m +++ b/Classes/LinphoneUI/UIConferenceHeader.m @@ -29,7 +29,7 @@ #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"UIConferenceHeader" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } #pragma mark - ViewController Functions diff --git a/Classes/LinphoneUI/UIHistoryCell.m b/Classes/LinphoneUI/UIHistoryCell.m index d0e1910a2..179599acd 100644 --- a/Classes/LinphoneUI/UIHistoryCell.m +++ b/Classes/LinphoneUI/UIHistoryCell.m @@ -54,10 +54,9 @@ - (IBAction)onDetails:(id)event { if (callLog != NULL && linphone_call_log_get_call_id(callLog) != NULL) { // Go to History details view - HistoryDetailsViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[HistoryDetailsViewController compositeViewDescription] - push:TRUE], - HistoryDetailsViewController); + HistoryDetailsView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[HistoryDetailsView compositeViewDescription] push:TRUE], + HistoryDetailsView); if (controller != nil) { [controller setCallLogId:[NSString stringWithUTF8String:linphone_call_log_get_call_id(callLog)]]; } diff --git a/Classes/LinphoneUI/UILinphone.h b/Classes/LinphoneUI/UILinphone.h deleted file mode 100644 index 7934b6f3d..000000000 --- a/Classes/LinphoneUI/UILinphone.h +++ /dev/null @@ -1,44 +0,0 @@ -/* 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. - */ - -#import -#import - -#define LINPHONE_MAIN_COLOR [UIColor colorWithRed:207.0f/255.0f green:76.0f/255.0f blue:41.0f/255.0f alpha:1.0f] -#define LINPHONE_SETTINGS_BG_IOS7 [UIColor colorWithRed:164/255. green:175/255. blue:183/255. alpha:1.0]//[UIColor colorWithWhite:0.88 alpha:1.0] -#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] - -@interface UIColor (LightAndDark) - -- (UIColor *)adjustHue:(float)hm saturation:(float)sm brightness:(float)bm alpha:(float)am; - -- (UIColor *)lumColor:(float)mult; - -- (UIColor *)lighterColor; - -- (UIColor *)darkerColor; - -@end - - -@interface UIImage (ForceDecode) - -+ (UIImage *)decodedImageWithImage:(UIImage *)image; - -@end diff --git a/Classes/LinphoneUI/UILinphone.m b/Classes/LinphoneUI/UILinphone.m deleted file mode 100644 index 457294e41..000000000 --- a/Classes/LinphoneUI/UILinphone.m +++ /dev/null @@ -1,126 +0,0 @@ -/* UILinphone.m - * - * 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. - */ - -#import "UILinphone.h" -#import "ColorSpaceUtilities.h" -#import "Utils.h" - -#import - -@implementation UIColor (LightAndDark) - -- (UIColor *)lumColor:(float)mult { - float hsbH, hsbS, hsbB; - float rgbaR, rgbaG, rgbaB, rgbaA; - - // Get RGB - CGColorRef cgColor = [self CGColor]; - CGColorSpaceRef cgColorSpace = CGColorGetColorSpace(cgColor); - if (CGColorSpaceGetModel(cgColorSpace) != kCGColorSpaceModelRGB) { - LOGW(@"Can't convert not RGB color"); - return self; - } else { - const CGFloat *colors = CGColorGetComponents(cgColor); - rgbaR = colors[0]; - rgbaG = colors[1]; - rgbaB = colors[2]; - rgbaA = CGColorGetAlpha(cgColor); - } - - RGB2HSL(rgbaR, rgbaG, rgbaB, &hsbH, &hsbS, &hsbB); - - hsbB = MIN(MAX(hsbB * mult, 0.0), 1.0); - - HSL2RGB(hsbH, hsbS, hsbB, &rgbaR, &rgbaG, &rgbaB); - - return [UIColor colorWithRed:rgbaR green:rgbaG blue:rgbaB alpha:rgbaA]; -} - -- (UIColor *)adjustHue:(float)hm saturation:(float)sm brightness:(float)bm alpha:(float)am { - float hsbH, hsbS, hsbB; - float rgbaR, rgbaG, rgbaB, rgbaA; - - // Get RGB - CGColorRef cgColor = [self CGColor]; - CGColorSpaceRef cgColorSpace = CGColorGetColorSpace(cgColor); - if (CGColorSpaceGetModel(cgColorSpace) != kCGColorSpaceModelRGB) { - LOGW(@"Can't convert not RGB color"); - return self; - } else { - const CGFloat *colors = CGColorGetComponents(cgColor); - rgbaR = colors[0]; - rgbaG = colors[1]; - rgbaB = colors[2]; - rgbaA = CGColorGetAlpha(cgColor); - } - - RGB2HSL(rgbaR, rgbaG, rgbaB, &hsbH, &hsbS, &hsbB); - - hsbH = MIN(MAX(hsbH + hm, 0.0), 1.0); - hsbS = MIN(MAX(hsbS + sm, 0.0), 1.0); - hsbB = MIN(MAX(hsbB + bm, 0.0), 1.0); - rgbaA = MIN(MAX(rgbaA + am, 0.0), 1.0); - - HSL2RGB(hsbH, hsbS, hsbB, &rgbaR, &rgbaG, &rgbaB); - - return [UIColor colorWithRed:rgbaR green:rgbaG blue:rgbaB alpha:rgbaA]; -} - -- (UIColor *)lighterColor { - return [self lumColor:1.3]; -} - -- (UIColor *)darkerColor { - return [self lumColor:0.75]; -} - -@end - -@implementation UIImage (ForceDecode) - -+ (UIImage *)decodedImageWithImage:(UIImage *)image { - CGImageRef imageRef = image.CGImage; - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = CGBitmapContextCreate( - NULL, CGImageGetWidth(imageRef), CGImageGetHeight(imageRef), 8, - // Just always return width * 4 will be enough - CGImageGetWidth(imageRef) * 4, - // System only supports RGB, set explicitly - colorSpace, - // Makes system don't need to do extra conversion when displayed. - // NOTE: here we remove the alpha channel for performance. Most of the time, images loaded - // from the network are jpeg with no alpha channel. As a TODO, finding a way to detect - // if alpha channel is necessary would be nice. - kCGImageAlphaNoneSkipLast | kCGBitmapByteOrder32Little); - CGColorSpaceRelease(colorSpace); - if (!context) - return nil; - - CGRect rect = (CGRect){CGPointZero, {CGImageGetWidth(imageRef), CGImageGetHeight(imageRef)}}; - CGContextDrawImage(context, rect, imageRef); - CGImageRef decompressedImageRef = CGBitmapContextCreateImage(context); - CGContextRelease(context); - - UIImage *decompressedImage = - [[UIImage alloc] initWithCGImage:decompressedImageRef scale:image.scale orientation:image.imageOrientation]; - CGImageRelease(decompressedImageRef); - return decompressedImage; -} - -@end diff --git a/Classes/LinphoneUI/UIMainBar.h b/Classes/LinphoneUI/UIMainBar.h deleted file mode 100644 index 4177d4ed5..000000000 --- a/Classes/LinphoneUI/UIMainBar.h +++ /dev/null @@ -1,41 +0,0 @@ -/* UIMainBar.m - * - * 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. - */ - -#import -#import "TPMultiLayoutViewController.h" - -@interface UIMainBar : TPMultiLayoutViewController { -} - -@property (nonatomic, strong) IBOutlet UIButton* historyButton; -@property (nonatomic, strong) IBOutlet UIButton* contactsButton; -@property (nonatomic, strong) IBOutlet UIButton* dialerButton; -@property (nonatomic, strong) IBOutlet UIButton* chatButton; -@property (nonatomic, strong) IBOutlet UIView *historyNotificationView; -@property (nonatomic, strong) IBOutlet UILabel *historyNotificationLabel; -@property (nonatomic, strong) IBOutlet UIView *chatNotificationView; -@property (nonatomic, strong) IBOutlet UILabel *chatNotificationLabel; -@property(weak, nonatomic) IBOutlet UIView *selectedBtnView; - --(IBAction) onHistoryClick: (id) event; --(IBAction) onContactsClick: (id) event; --(IBAction) onDialerClick: (id) event; --(IBAction) onChatClick: (id) event; - -@end diff --git a/Classes/LinphoneUI/ar.lproj/UIStateBar.strings b/Classes/LinphoneUI/ar.lproj/StatusBarView.strings similarity index 100% rename from Classes/LinphoneUI/ar.lproj/UIStateBar.strings rename to Classes/LinphoneUI/ar.lproj/StatusBarView.strings diff --git a/Classes/LinphoneUI/ar.lproj/UIMainBar.strings b/Classes/LinphoneUI/ar.lproj/TabBarView.strings similarity index 100% rename from Classes/LinphoneUI/ar.lproj/UIMainBar.strings rename to Classes/LinphoneUI/ar.lproj/TabBarView.strings diff --git a/Classes/LinphoneUI/ar.lproj/UIChatRoomCell.strings b/Classes/LinphoneUI/ar.lproj/UIChatConversationCell.strings similarity index 100% rename from Classes/LinphoneUI/ar.lproj/UIChatRoomCell.strings rename to Classes/LinphoneUI/ar.lproj/UIChatConversationCell.strings diff --git a/Classes/LinphoneUI/ar.lproj/UICompositeViewController.strings b/Classes/LinphoneUI/ar.lproj/UICompositeView.strings similarity index 100% rename from Classes/LinphoneUI/ar.lproj/UICompositeViewController.strings rename to Classes/LinphoneUI/ar.lproj/UICompositeView.strings diff --git a/Classes/LinphoneUI/fr.lproj/UIMainBar.strings b/Classes/LinphoneUI/fr.lproj/TabBarView.strings similarity index 100% rename from Classes/LinphoneUI/fr.lproj/UIMainBar.strings rename to Classes/LinphoneUI/fr.lproj/TabBarView.strings diff --git a/Classes/LinphoneUI/ru.lproj/UIMainBar.strings b/Classes/LinphoneUI/ru.lproj/TabBarView.strings similarity index 100% rename from Classes/LinphoneUI/ru.lproj/UIMainBar.strings rename to Classes/LinphoneUI/ru.lproj/TabBarView.strings diff --git a/Classes/MainStoryboard.storyboard b/Classes/MainStoryboard.storyboard index bf35d75a5..c7a497b8c 100644 --- a/Classes/MainStoryboard.storyboard +++ b/Classes/MainStoryboard.storyboard @@ -1,7 +1,6 @@ - @@ -32,7 +31,7 @@ - + diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h index dd540593c..dc96ee1ff 100644 --- a/Classes/PhoneMainView.h +++ b/Classes/PhoneMainView.h @@ -20,22 +20,25 @@ #import /* These imports are here so that we can import PhoneMainView.h without bothering to import all the rest of the view headers */ -#import "AboutViewController.h" -#import "ChatRoomViewController.h" -#import "ChatViewController.h" -#import "ContactDetailsLabelViewController.h" -#import "ContactDetailsViewController.h" -#import "ContactsViewController.h" -#import "DialerViewController.h" -#import "HistoryDetailsViewController.h" -#import "HistoryViewController.h" -#import "ImageViewController.h" -#import "InCallViewController.h" -#import "IncomingCallViewController.h" -#import "OutgoingCallViewController.h" -#import "SettingsViewController.h" -#import "SideMenuViewController.h" -#import "AssistantViewController.h" +#import "StatusBarView.h" +#import "TabBarView.h" + +#import "AboutView.h" +#import "ChatConversationView.h" +#import "ChatsListView.h" +#import "ContactDetailsLabelView.h" +#import "ContactDetailsView.h" +#import "ContactsListView.h" +#import "DialerView.h" +#import "HistoryDetailsView.h" +#import "HistoryListView.h" +#import "ImageView.h" +#import "CallView.h" +#import "CallIncomingView.h" +#import "CallOutgoingView.h" +#import "SettingsView.h" +#import "SideMenuView.h" +#import "AssistantView.h" #import "DTAlertView.h" #import "DTActionSheet.h" @@ -61,7 +64,7 @@ } @property (nonatomic, strong) IBOutlet UIView *statusBarBG; -@property (nonatomic, strong) IBOutlet UICompositeViewController *mainViewController; +@property(nonatomic, strong) IBOutlet UICompositeView *mainViewController; @property (nonatomic, strong) NSString* name; @property (weak, readonly) UICompositeViewDescription *currentView; diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index f610c73be..b2c825fa5 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -295,9 +295,8 @@ static RootViewManager *rootViewManagerInstance = nil; linphone_core_get_default_proxy([LinphoneManager getLc], &conf); if ([[LinphoneManager instance] lpConfigBoolForKey:@"show_login_view" forSection:@"app"] && conf == NULL) { already_shown = TRUE; - AssistantViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[AssistantViewController compositeViewDescription]], - AssistantViewController); + AssistantView *controller = DYNAMIC_CAST( + [[PhoneMainView instance] changeCurrentView:[AssistantView compositeViewDescription]], AssistantView); if (controller != nil) { [controller fillDefaultValues]; } @@ -313,8 +312,8 @@ static RootViewManager *rootViewManagerInstance = nil; bool canHideInCallView = (linphone_core_get_calls([LinphoneManager getLc]) == NULL); // Don't handle call state during incoming call view - if ([[self currentView] equal:[IncomingCallViewController compositeViewDescription]] && - state != LinphoneCallError && state != LinphoneCallEnd) { + if ([[self currentView] equal:[CallIncomingView compositeViewDescription]] && state != LinphoneCallError && + state != LinphoneCallEnd) { return; } @@ -325,13 +324,13 @@ static RootViewManager *rootViewManagerInstance = nil; break; } case LinphoneCallOutgoingInit: { - [self changeCurrentView:[OutgoingCallViewController compositeViewDescription]]; + [self changeCurrentView:[CallOutgoingView compositeViewDescription]]; break; } case LinphoneCallPausedByRemote: case LinphoneCallConnected: case LinphoneCallStreamsRunning: { - [self changeCurrentView:[InCallViewController compositeViewDescription]]; + [self changeCurrentView:[CallView compositeViewDescription]]; break; } case LinphoneCallUpdatedByRemote: { @@ -339,7 +338,7 @@ static RootViewManager *rootViewManagerInstance = nil; const LinphoneCallParams *remote = linphone_call_get_remote_params(call); if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) { - [self changeCurrentView:[InCallViewController compositeViewDescription]]; + [self changeCurrentView:[CallView compositeViewDescription]]; } break; } @@ -349,14 +348,14 @@ static RootViewManager *rootViewManagerInstance = nil; case LinphoneCallEnd: { if (canHideInCallView) { // Go to dialer view - DialerViewController *controller = DYNAMIC_CAST( - [self changeCurrentView:[DialerViewController compositeViewDescription]], DialerViewController); + DialerView *controller = + DYNAMIC_CAST([self changeCurrentView:[DialerView compositeViewDescription]], DialerView); if (controller != nil) { [controller setAddress:@""]; [controller setTransferMode:FALSE]; } } else { - [self changeCurrentView:[InCallViewController compositeViewDescription]]; + [self changeCurrentView:[CallView compositeViewDescription]]; } break; } @@ -413,7 +412,7 @@ static RootViewManager *rootViewManagerInstance = nil; core = [LinphoneManager getLc]; LinphoneManager *lm = [LinphoneManager instance]; if (linphone_core_get_global_state(core) != LinphoneGlobalOn) { - [self changeCurrentView:[DialerViewController compositeViewDescription]]; + [self changeCurrentView:[DialerView compositeViewDescription]]; } else if ([[LinphoneManager instance] lpConfigBoolForKey:@"enable_first_login_view_preference"] == true) { // TODO: Change to fist login view } else { @@ -421,11 +420,11 @@ static RootViewManager *rootViewManagerInstance = nil; // Change to default view const MSList *list = linphone_core_get_proxy_config_list(core); if (list != NULL || ([lm lpConfigBoolForKey:@"hide_assistant_preference"] == true) || lm.isTesting) { - [self changeCurrentView:[DialerViewController compositeViewDescription]]; + [self changeCurrentView:[DialerView compositeViewDescription]]; } else { - AssistantViewController *controller = DYNAMIC_CAST( - [[PhoneMainView instance] changeCurrentView:[AssistantViewController compositeViewDescription]], - AssistantViewController); + AssistantView *controller = + DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[AssistantView compositeViewDescription]], + AssistantView); if (controller != nil) { [controller reset]; } @@ -472,26 +471,26 @@ static RootViewManager *rootViewManagerInstance = nil; + (CATransition *)getTransition:(UICompositeViewDescription *)old new:(UICompositeViewDescription *) new { bool left = false; - if ([old equal:[ChatViewController compositeViewDescription]]) { - if ([new equal:[ContactsViewController compositeViewDescription]] || - [new equal:[DialerViewController compositeViewDescription]] || - [new equal:[HistoryViewController compositeViewDescription]]) { + if ([old equal:[ChatsListView compositeViewDescription]]) { + if ([new equal:[ContactsListView compositeViewDescription]] || + [new equal:[DialerView compositeViewDescription]] || + [new equal:[HistoryListView compositeViewDescription]]) { left = true; } - } else if ([old equal:[SettingsViewController compositeViewDescription]]) { - if ([new equal:[DialerViewController compositeViewDescription]] || - [new equal:[ContactsViewController compositeViewDescription]] || - [new equal:[HistoryViewController compositeViewDescription]] || - [new equal:[ChatViewController compositeViewDescription]]) { + } else if ([old equal:[SettingsView compositeViewDescription]]) { + if ([new equal:[DialerView compositeViewDescription]] || + [new equal:[ContactsListView compositeViewDescription]] || + [new equal:[HistoryListView compositeViewDescription]] || + [new equal:[ChatsListView compositeViewDescription]]) { left = true; } - } else if ([old equal:[DialerViewController compositeViewDescription]]) { - if ([new equal:[ContactsViewController compositeViewDescription]] || - [new equal:[HistoryViewController compositeViewDescription]]) { + } else if ([old equal:[DialerView compositeViewDescription]]) { + if ([new equal:[ContactsListView compositeViewDescription]] || + [new equal:[HistoryListView compositeViewDescription]]) { left = true; } - } else if ([old equal:[ContactsViewController compositeViewDescription]]) { - if ([new equal:[HistoryViewController compositeViewDescription]]) { + } else if ([old equal:[ContactsListView compositeViewDescription]]) { + if ([new equal:[HistoryListView compositeViewDescription]]) { left = true; } } @@ -705,15 +704,13 @@ static RootViewManager *rootViewManagerInstance = nil; } else { - IncomingCallViewController *controller = nil; - if (![currentView.name isEqualToString:[IncomingCallViewController compositeViewDescription].name]) { + CallIncomingView *controller = nil; + if (![currentView.name isEqualToString:[CallIncomingView compositeViewDescription].name]) { controller = DYNAMIC_CAST( - [self changeCurrentView:[IncomingCallViewController compositeViewDescription] push:TRUE], - IncomingCallViewController); + [self changeCurrentView:[CallIncomingView compositeViewDescription] push:TRUE], CallIncomingView); } else { // controller is already presented, don't bother animating a transition - controller = - DYNAMIC_CAST([self.mainViewController getCurrentViewController], IncomingCallViewController); + controller = DYNAMIC_CAST([self.mainViewController getCurrentViewController], CallIncomingView); } AudioServicesPlaySystemSound(lm.sounds.vibrate); if (controller != nil) { diff --git a/Classes/SettingsViewController.h b/Classes/SettingsView.h similarity index 55% rename from Classes/SettingsViewController.h rename to Classes/SettingsView.h index 538d3b98c..612249e47 100644 --- a/Classes/SettingsViewController.h +++ b/Classes/SettingsView.h @@ -4,32 +4,32 @@ * * 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 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 + * 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 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. - */ + */ #import -#import "UICompositeViewController.h" +#import "UICompositeView.h" #import "IASKAppSettingsViewController.h" #import "LinphoneCoreSettingsStore.h" -@interface SettingsViewController +@interface SettingsView : UIViewController { - @private - LinphoneCoreSettingsStore* settingsStore; + @private + LinphoneCoreSettingsStore *settingsStore; } -@property (nonatomic, strong) IBOutlet UINavigationController *navigationController; -@property (nonatomic, strong) IBOutlet IASKAppSettingsViewController *settingsController; +@property(nonatomic, strong) IBOutlet UINavigationController *navigationController; +@property(nonatomic, strong) IBOutlet IASKAppSettingsViewController *settingsController; @end diff --git a/Classes/SettingsViewController.m b/Classes/SettingsView.m similarity index 97% rename from Classes/SettingsViewController.m rename to Classes/SettingsView.m index d6a8127fd..bfde5b003 100644 --- a/Classes/SettingsViewController.m +++ b/Classes/SettingsView.m @@ -17,10 +17,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "SettingsViewController.h" +#import "SettingsView.h" #import "LinphoneManager.h" #import "PhoneMainView.h" -#import "UILinphone.h" +#import "Utils.h" #import "UACellBackgroundView.h" #import "DCRoundSwitch.h" @@ -41,7 +41,7 @@ @end #endif -@interface SettingsViewController (private) +@interface SettingsView (private) + (IASKSpecifier *)filterSpecifier:(IASKSpecifier *)specifier; @@ -206,7 +206,7 @@ for (int j = 0; j < [specifiers count]; ++j) { id sp = [specifiers objectAtIndex:j]; if ([sp isKindOfClass:[IASKSpecifier class]]) { - sp = [SettingsViewController filterSpecifier:sp]; + sp = [SettingsView filterSpecifier:sp]; } [specifiers replaceObjectAtIndex:j withObject:sp]; } @@ -266,7 +266,7 @@ } - (IBAction)onAboutClick:(id)sender { - [[PhoneMainView instance] changeCurrentView:[AboutViewController compositeViewDescription] push:TRUE]; + [[PhoneMainView instance] changeCurrentView:[AboutView compositeViewDescription] push:TRUE]; } @end @@ -371,7 +371,7 @@ @end -@implementation SettingsViewController +@implementation SettingsView @synthesize settingsController; @synthesize navigationController; @@ -379,7 +379,7 @@ #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"SettingsViewController" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } - (void)dealloc { @@ -394,9 +394,9 @@ static UICompositeViewDescription *compositeDescription = nil; + (UICompositeViewDescription *)compositeViewDescription { if (compositeDescription == nil) { compositeDescription = [[UICompositeViewDescription alloc] init:@"Settings" - content:@"SettingsViewController" - stateBar:@"UIStateBar" - tabBar:@"UIMainBar" + content:@"SettingsView" + stateBar:@"StatusBarViewController" + tabBar:@"TabBarViewController" fullscreen:false landscapeMode:[LinphoneManager runningOnIpad] portraitMode:true]; @@ -702,7 +702,7 @@ static UICompositeViewDescription *compositeDescription = nil; } #endif if ([key isEqual:@"assistant_button"]) { - [PhoneMainView.instance changeCurrentView:AssistantViewController.compositeViewDescription]; + [PhoneMainView.instance changeCurrentView:AssistantView.compositeViewDescription]; return; } else if ([key isEqual:@"clear_proxy_button"]) { if (linphone_core_get_default_proxy_config(lc) == NULL) { @@ -724,7 +724,7 @@ static UICompositeViewDescription *compositeDescription = nil; [alert show]; } else if ([key isEqual:@"about_button"]) { - [[PhoneMainView instance] changeCurrentView:[AboutViewController compositeViewDescription] push:TRUE]; + [[PhoneMainView instance] changeCurrentView:[AboutView compositeViewDescription] push:TRUE]; } else if ([key isEqualToString:@"reset_logs_button"]) { linphone_core_reset_log_collection(); } else if ([key isEqual:@"send_logs_button"]) { diff --git a/Classes/SideMenuTableViewController.h b/Classes/SideMenuTableView.h similarity index 86% rename from Classes/SideMenuTableViewController.h rename to Classes/SideMenuTableView.h index 0eabedb89..6884e6b1c 100644 --- a/Classes/SideMenuTableViewController.h +++ b/Classes/SideMenuTableView.h @@ -18,7 +18,7 @@ typedef void (^SideMenuEntryBlock)(void); }; @end -@interface SideMenuTableViewController : UITableViewController +@interface SideMenuTableView : UITableViewController @property(nonatomic, retain) NSMutableArray *sideMenuEntries; diff --git a/Classes/SideMenuTableViewController.m b/Classes/SideMenuTableView.m similarity index 81% rename from Classes/SideMenuTableViewController.m rename to Classes/SideMenuTableView.m index 7ffa39cf3..dfc8f2695 100644 --- a/Classes/SideMenuTableViewController.m +++ b/Classes/SideMenuTableView.m @@ -6,11 +6,11 @@ // // -#import "SideMenuTableViewController.h" +#import "SideMenuTableView.h" #import "Utils.h" #import "PhoneMainView.h" -#import "UIStateBar.h" +#import "StatusBarView.h" @implementation SideMenuEntry @@ -24,7 +24,7 @@ @end -@implementation SideMenuTableViewController +@implementation SideMenuTableView - (void)viewDidLoad { _sideMenuEntries = [[NSMutableArray alloc] init]; @@ -33,7 +33,7 @@ addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"Settings", nil) tapBlock:^() { [PhoneMainView.instance - changeCurrentView:SettingsViewController.compositeViewDescription + changeCurrentView:SettingsView.compositeViewDescription push:NO animated:NO]; }]]; @@ -41,19 +41,18 @@ addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"Assistant", nil) tapBlock:^() { [PhoneMainView.instance - changeCurrentView:AssistantViewController.compositeViewDescription + changeCurrentView:AssistantView.compositeViewDescription push:NO animated:NO]; }]]; - [_sideMenuEntries - addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"About", nil) - tapBlock:^() { - [PhoneMainView.instance - changeCurrentView:AboutViewController.compositeViewDescription - push:NO - animated:NO]; + [_sideMenuEntries addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"About", nil) + tapBlock:^() { + [PhoneMainView.instance + changeCurrentView:AboutView.compositeViewDescription + push:NO + animated:NO]; - }]]; + }]]; } #pragma mark - Table View Controller diff --git a/Classes/SideMenuViewController.h b/Classes/SideMenuView.h similarity index 68% rename from Classes/SideMenuViewController.h rename to Classes/SideMenuView.h index b2ef6ad46..3107ac545 100644 --- a/Classes/SideMenuViewController.h +++ b/Classes/SideMenuView.h @@ -8,15 +8,15 @@ #import -#import "SideMenuTableViewController.h" +#import "SideMenuTableView.h" #import "PhoneMainView.h" -@interface SideMenuViewController : UIViewController +@interface SideMenuView : UIViewController @property(weak, nonatomic) IBOutlet UIRoundedImageView *avatarImage; @property(weak, nonatomic) IBOutlet UILabel *nameLabel; @property(weak, nonatomic) IBOutlet UILabel *addressLabel; -@property(strong, nonatomic) IBOutlet SideMenuTableViewController *sideMenuTableViewController; +@property(strong, nonatomic) IBOutlet SideMenuTableView *sideMenuTableViewController; - (IBAction)onLateralSwipe:(id)sender; - (IBAction)onHeaderClick:(id)sender; - (IBAction)onAvatarClick:(id)sender; diff --git a/Classes/SideMenuViewController.m b/Classes/SideMenuView.m similarity index 86% rename from Classes/SideMenuViewController.m rename to Classes/SideMenuView.m index 709de09a8..4b5c7fbd3 100644 --- a/Classes/SideMenuViewController.m +++ b/Classes/SideMenuView.m @@ -8,16 +8,16 @@ #import -#import "SideMenuViewController.h" +#import "SideMenuView.h" #import "LinphoneManager.h" #import "PhoneMainView.h" -@implementation SideMenuViewController +@implementation SideMenuView #pragma mark - Lifecycle Functions - (id)init { - return [super initWithNibName:@"SideMenuViewController" bundle:[NSBundle mainBundle]]; + return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]; } - (void)updateHeader { @@ -59,14 +59,14 @@ } - (IBAction)onHeaderClick:(id)sender { - [PhoneMainView.instance changeCurrentView:SettingsViewController.compositeViewDescription]; + [PhoneMainView.instance changeCurrentView:SettingsView.compositeViewDescription]; [PhoneMainView.instance.mainViewController hideSideMenu:YES]; } - (IBAction)onAvatarClick:(id)sender { // hide ourself because we are on top of image picker [PhoneMainView.instance.mainViewController hideSideMenu:YES]; - [ImagePickerViewController SelectImageFromDevice:self atPosition:CGRectNull inView:nil]; + [ImagePickerView SelectImageFromDevice:self atPosition:CGRectNull inView:nil]; } #pragma mark - Image picker delegate diff --git a/Classes/SideMenuViewController.xib b/Classes/SideMenuView.xib similarity index 98% rename from Classes/SideMenuViewController.xib rename to Classes/SideMenuView.xib index 479d821e8..f9a1846ba 100644 --- a/Classes/SideMenuViewController.xib +++ b/Classes/SideMenuView.xib @@ -1,11 +1,10 @@ - - + @@ -83,7 +82,7 @@ - + diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index c4ee798f3..81c7a17cc 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -19,7 +19,7 @@ #import "FastAddressBook.h" #import "LinphoneManager.h" -#import "ContactsViewController.h" +#import "ContactsListView.h" #import "Utils.h" @implementation FastAddressBook diff --git a/Classes/Utils/Utils.h b/Classes/Utils/Utils.h index 1f0447b5d..b092ca82a 100644 --- a/Classes/Utils/Utils.h +++ b/Classes/Utils/Utils.h @@ -76,3 +76,33 @@ void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); + (void)setDisplayNameLabel:(UILabel *)label forContact:(ABRecordRef)contact; + (void)setDisplayNameLabel:(UILabel *)label forAddress:(const LinphoneAddress *)addr; @end + +#import +#import + +#define LINPHONE_MAIN_COLOR [UIColor colorWithRed:207.0f / 255.0f green:76.0f / 255.0f blue:41.0f / 255.0f alpha:1.0f] +#define LINPHONE_SETTINGS_BG_IOS7 \ + [UIColor colorWithRed:164 / 255. \ + green:175 / 255. \ + blue:183 / 255. \ + alpha:1.0] //[UIColor colorWithWhite:0.88 alpha:1.0] +#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] + +@interface UIColor (LightAndDark) + +- (UIColor *)adjustHue:(float)hm saturation:(float)sm brightness:(float)bm alpha:(float)am; + +- (UIColor *)lumColor:(float)mult; + +- (UIColor *)lighterColor; + +- (UIColor *)darkerColor; + +@end + +@interface UIImage (ForceDecode) + ++ (UIImage *)decodedImageWithImage:(UIImage *)image; + +@end diff --git a/Classes/Utils/Utils.m b/Classes/Utils/Utils.m index 5470198ec..de32a40a6 100644 --- a/Classes/Utils/Utils.m +++ b/Classes/Utils/Utils.m @@ -17,11 +17,14 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "Utils.h" -#include "linphone/linphonecore.h" +#import #import + +#import "Utils.h" +#import "linphone/linphonecore.h" #import "UILabel+Boldify.h" #import "FastAddressBook.h" +#import "ColorSpaceUtilities.h" @implementation LinphoneLogger @@ -380,4 +383,106 @@ void linphone_iphone_log_handler(int lev, const char *fmt, va_list args) { return ret; } +@end + +@implementation UIColor (LightAndDark) + +- (UIColor *)lumColor:(float)mult { + float hsbH, hsbS, hsbB; + float rgbaR, rgbaG, rgbaB, rgbaA; + + // Get RGB + CGColorRef cgColor = [self CGColor]; + CGColorSpaceRef cgColorSpace = CGColorGetColorSpace(cgColor); + if (CGColorSpaceGetModel(cgColorSpace) != kCGColorSpaceModelRGB) { + LOGW(@"Can't convert not RGB color"); + return self; + } else { + const CGFloat *colors = CGColorGetComponents(cgColor); + rgbaR = colors[0]; + rgbaG = colors[1]; + rgbaB = colors[2]; + rgbaA = CGColorGetAlpha(cgColor); + } + + RGB2HSL(rgbaR, rgbaG, rgbaB, &hsbH, &hsbS, &hsbB); + + hsbB = MIN(MAX(hsbB * mult, 0.0), 1.0); + + HSL2RGB(hsbH, hsbS, hsbB, &rgbaR, &rgbaG, &rgbaB); + + return [UIColor colorWithRed:rgbaR green:rgbaG blue:rgbaB alpha:rgbaA]; +} + +- (UIColor *)adjustHue:(float)hm saturation:(float)sm brightness:(float)bm alpha:(float)am { + float hsbH, hsbS, hsbB; + float rgbaR, rgbaG, rgbaB, rgbaA; + + // Get RGB + CGColorRef cgColor = [self CGColor]; + CGColorSpaceRef cgColorSpace = CGColorGetColorSpace(cgColor); + if (CGColorSpaceGetModel(cgColorSpace) != kCGColorSpaceModelRGB) { + LOGW(@"Can't convert not RGB color"); + return self; + } else { + const CGFloat *colors = CGColorGetComponents(cgColor); + rgbaR = colors[0]; + rgbaG = colors[1]; + rgbaB = colors[2]; + rgbaA = CGColorGetAlpha(cgColor); + } + + RGB2HSL(rgbaR, rgbaG, rgbaB, &hsbH, &hsbS, &hsbB); + + hsbH = MIN(MAX(hsbH + hm, 0.0), 1.0); + hsbS = MIN(MAX(hsbS + sm, 0.0), 1.0); + hsbB = MIN(MAX(hsbB + bm, 0.0), 1.0); + rgbaA = MIN(MAX(rgbaA + am, 0.0), 1.0); + + HSL2RGB(hsbH, hsbS, hsbB, &rgbaR, &rgbaG, &rgbaB); + + return [UIColor colorWithRed:rgbaR green:rgbaG blue:rgbaB alpha:rgbaA]; +} + +- (UIColor *)lighterColor { + return [self lumColor:1.3]; +} + +- (UIColor *)darkerColor { + return [self lumColor:0.75]; +} + +@end + +@implementation UIImage (ForceDecode) + ++ (UIImage *)decodedImageWithImage:(UIImage *)image { + CGImageRef imageRef = image.CGImage; + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); + CGContextRef context = CGBitmapContextCreate( + NULL, CGImageGetWidth(imageRef), CGImageGetHeight(imageRef), 8, + // Just always return width * 4 will be enough + CGImageGetWidth(imageRef) * 4, + // System only supports RGB, set explicitly + colorSpace, + // Makes system don't need to do extra conversion when displayed. + // NOTE: here we remove the alpha channel for performance. Most of the time, images loaded + // from the network are jpeg with no alpha channel. As a TODO, finding a way to detect + // if alpha channel is necessary would be nice. + kCGImageAlphaNoneSkipLast | kCGBitmapByteOrder32Little); + CGColorSpaceRelease(colorSpace); + if (!context) + return nil; + + CGRect rect = (CGRect){CGPointZero, {CGImageGetWidth(imageRef), CGImageGetHeight(imageRef)}}; + CGContextDrawImage(context, rect, imageRef); + CGImageRef decompressedImageRef = CGBitmapContextCreateImage(context); + CGContextRelease(context); + + UIImage *decompressedImage = + [[UIImage alloc] initWithCGImage:decompressedImageRef scale:image.scale orientation:image.imageOrientation]; + CGImageRelease(decompressedImageRef); + return decompressedImage; +} + @end \ No newline at end of file diff --git a/Classes/ar.lproj/AboutViewController.strings b/Classes/ar.lproj/AboutView.strings similarity index 100% rename from Classes/ar.lproj/AboutViewController.strings rename to Classes/ar.lproj/AboutView.strings diff --git a/Classes/ar.lproj/AssistantViewController.strings b/Classes/ar.lproj/AssistantView.strings similarity index 100% rename from Classes/ar.lproj/AssistantViewController.strings rename to Classes/ar.lproj/AssistantView.strings diff --git a/Classes/ar.lproj/IncomingCallViewController.strings b/Classes/ar.lproj/CallIncomingView.strings similarity index 100% rename from Classes/ar.lproj/IncomingCallViewController.strings rename to Classes/ar.lproj/CallIncomingView.strings diff --git a/Classes/ar.lproj/InCallViewController.strings b/Classes/ar.lproj/CallView.strings similarity index 100% rename from Classes/ar.lproj/InCallViewController.strings rename to Classes/ar.lproj/CallView.strings diff --git a/Classes/ar.lproj/ChatRoomViewController.strings b/Classes/ar.lproj/ChatConversationView.strings similarity index 100% rename from Classes/ar.lproj/ChatRoomViewController.strings rename to Classes/ar.lproj/ChatConversationView.strings diff --git a/Classes/ar.lproj/ChatViewController.strings b/Classes/ar.lproj/ChatsListView.strings similarity index 100% rename from Classes/ar.lproj/ChatViewController.strings rename to Classes/ar.lproj/ChatsListView.strings diff --git a/Classes/ar.lproj/ContactDetailsLabelViewController.strings b/Classes/ar.lproj/ContactDetailsLabelView.strings similarity index 100% rename from Classes/ar.lproj/ContactDetailsLabelViewController.strings rename to Classes/ar.lproj/ContactDetailsLabelView.strings diff --git a/Classes/ar.lproj/ContactDetailsViewController.strings b/Classes/ar.lproj/ContactDetailsView.strings similarity index 100% rename from Classes/ar.lproj/ContactDetailsViewController.strings rename to Classes/ar.lproj/ContactDetailsView.strings diff --git a/Classes/ar.lproj/ContactsViewController.strings b/Classes/ar.lproj/ContactsListView.strings similarity index 100% rename from Classes/ar.lproj/ContactsViewController.strings rename to Classes/ar.lproj/ContactsListView.strings diff --git a/Classes/ar.lproj/DialerViewController.strings b/Classes/ar.lproj/DialerView.strings similarity index 100% rename from Classes/ar.lproj/DialerViewController.strings rename to Classes/ar.lproj/DialerView.strings diff --git a/Classes/ar.lproj/HistoryDetailsViewController.strings b/Classes/ar.lproj/HistoryDetailsView.strings similarity index 100% rename from Classes/ar.lproj/HistoryDetailsViewController.strings rename to Classes/ar.lproj/HistoryDetailsView.strings diff --git a/Classes/ar.lproj/HistoryViewController.strings b/Classes/ar.lproj/HistoryListView.strings similarity index 100% rename from Classes/ar.lproj/HistoryViewController.strings rename to Classes/ar.lproj/HistoryListView.strings diff --git a/Classes/ar.lproj/ImageViewController.strings b/Classes/ar.lproj/ImageView.strings similarity index 100% rename from Classes/ar.lproj/ImageViewController.strings rename to Classes/ar.lproj/ImageView.strings diff --git a/Classes/ar.lproj/SettingsViewController.strings b/Classes/ar.lproj/SettingsView.strings similarity index 100% rename from Classes/ar.lproj/SettingsViewController.strings rename to Classes/ar.lproj/SettingsView.strings diff --git a/Classes/fr.lproj/AboutViewController.strings b/Classes/fr.lproj/AboutView.strings similarity index 100% rename from Classes/fr.lproj/AboutViewController.strings rename to Classes/fr.lproj/AboutView.strings diff --git a/Classes/fr.lproj/AssistantViewController.strings b/Classes/fr.lproj/AssistantView.strings similarity index 100% rename from Classes/fr.lproj/AssistantViewController.strings rename to Classes/fr.lproj/AssistantView.strings diff --git a/Classes/fr.lproj/IncomingCallViewController.strings b/Classes/fr.lproj/CallIncomingView.strings similarity index 100% rename from Classes/fr.lproj/IncomingCallViewController.strings rename to Classes/fr.lproj/CallIncomingView.strings diff --git a/Classes/fr.lproj/InCallViewController.strings b/Classes/fr.lproj/CallView.strings similarity index 100% rename from Classes/fr.lproj/InCallViewController.strings rename to Classes/fr.lproj/CallView.strings diff --git a/Classes/fr.lproj/ChatRoomViewController.strings b/Classes/fr.lproj/ChatConversationView.strings similarity index 100% rename from Classes/fr.lproj/ChatRoomViewController.strings rename to Classes/fr.lproj/ChatConversationView.strings diff --git a/Classes/fr.lproj/ChatViewController.strings b/Classes/fr.lproj/ChatsListView.strings similarity index 100% rename from Classes/fr.lproj/ChatViewController.strings rename to Classes/fr.lproj/ChatsListView.strings diff --git a/Classes/fr.lproj/ContactDetailsLabelViewController.strings b/Classes/fr.lproj/ContactDetailsLabelView.strings similarity index 100% rename from Classes/fr.lproj/ContactDetailsLabelViewController.strings rename to Classes/fr.lproj/ContactDetailsLabelView.strings diff --git a/Classes/fr.lproj/ContactDetailsViewController.strings b/Classes/fr.lproj/ContactDetailsView.strings similarity index 100% rename from Classes/fr.lproj/ContactDetailsViewController.strings rename to Classes/fr.lproj/ContactDetailsView.strings diff --git a/Classes/fr.lproj/ContactsViewController.strings b/Classes/fr.lproj/ContactsListView.strings similarity index 100% rename from Classes/fr.lproj/ContactsViewController.strings rename to Classes/fr.lproj/ContactsListView.strings diff --git a/Classes/fr.lproj/DialerViewController.strings b/Classes/fr.lproj/DialerView.strings similarity index 100% rename from Classes/fr.lproj/DialerViewController.strings rename to Classes/fr.lproj/DialerView.strings diff --git a/Classes/fr.lproj/HistoryDetailsViewController.strings b/Classes/fr.lproj/HistoryDetailsView.strings similarity index 100% rename from Classes/fr.lproj/HistoryDetailsViewController.strings rename to Classes/fr.lproj/HistoryDetailsView.strings diff --git a/Classes/fr.lproj/HistoryViewController.strings b/Classes/fr.lproj/HistoryListView.strings similarity index 100% rename from Classes/fr.lproj/HistoryViewController.strings rename to Classes/fr.lproj/HistoryListView.strings diff --git a/Classes/fr.lproj/ImageViewController.strings b/Classes/fr.lproj/ImageView.strings similarity index 100% rename from Classes/fr.lproj/ImageViewController.strings rename to Classes/fr.lproj/ImageView.strings diff --git a/Classes/ru.lproj/AssistantViewController.strings b/Classes/ru.lproj/AssistantView.strings similarity index 100% rename from Classes/ru.lproj/AssistantViewController.strings rename to Classes/ru.lproj/AssistantView.strings diff --git a/Classes/ru.lproj/IncomingCallViewController.strings b/Classes/ru.lproj/CallIncomingView.strings similarity index 100% rename from Classes/ru.lproj/IncomingCallViewController.strings rename to Classes/ru.lproj/CallIncomingView.strings diff --git a/Classes/ru.lproj/InCallViewController.strings b/Classes/ru.lproj/CallView.strings similarity index 100% rename from Classes/ru.lproj/InCallViewController.strings rename to Classes/ru.lproj/CallView.strings diff --git a/Classes/ru.lproj/ChatRoomViewController.strings b/Classes/ru.lproj/ChatConversationView.strings similarity index 100% rename from Classes/ru.lproj/ChatRoomViewController.strings rename to Classes/ru.lproj/ChatConversationView.strings diff --git a/Classes/ru.lproj/ChatViewController.strings b/Classes/ru.lproj/ChatsListView.strings similarity index 100% rename from Classes/ru.lproj/ChatViewController.strings rename to Classes/ru.lproj/ChatsListView.strings diff --git a/Classes/ru.lproj/ContactDetailsLabelViewController.strings b/Classes/ru.lproj/ContactDetailsLabelView.strings similarity index 100% rename from Classes/ru.lproj/ContactDetailsLabelViewController.strings rename to Classes/ru.lproj/ContactDetailsLabelView.strings diff --git a/Classes/ru.lproj/ContactDetailsViewController.strings b/Classes/ru.lproj/ContactDetailsView.strings similarity index 100% rename from Classes/ru.lproj/ContactDetailsViewController.strings rename to Classes/ru.lproj/ContactDetailsView.strings diff --git a/Classes/ru.lproj/ContactsViewController.strings b/Classes/ru.lproj/ContactsListView.strings similarity index 100% rename from Classes/ru.lproj/ContactsViewController.strings rename to Classes/ru.lproj/ContactsListView.strings diff --git a/Classes/ru.lproj/DialerViewController.strings b/Classes/ru.lproj/DialerView.strings similarity index 100% rename from Classes/ru.lproj/DialerViewController.strings rename to Classes/ru.lproj/DialerView.strings diff --git a/Classes/ru.lproj/HistoryDetailsViewController.strings b/Classes/ru.lproj/HistoryDetailsView.strings similarity index 100% rename from Classes/ru.lproj/HistoryDetailsViewController.strings rename to Classes/ru.lproj/HistoryDetailsView.strings diff --git a/Classes/ru.lproj/HistoryViewController.strings b/Classes/ru.lproj/HistoryListView.strings similarity index 100% rename from Classes/ru.lproj/HistoryViewController.strings rename to Classes/ru.lproj/HistoryListView.strings diff --git a/Classes/ru.lproj/ImageViewController.strings b/Classes/ru.lproj/ImageView.strings similarity index 100% rename from Classes/ru.lproj/ImageViewController.strings rename to Classes/ru.lproj/ImageView.strings diff --git a/LiblinphoneTester/Base.lproj/Main_iPad.storyboard b/LiblinphoneTester/Base.lproj/Main_iPad.storyboard index 17746dea5..a8dad803a 100644 --- a/LiblinphoneTester/Base.lproj/Main_iPad.storyboard +++ b/LiblinphoneTester/Base.lproj/Main_iPad.storyboard @@ -1,8 +1,7 @@ - + - - + @@ -20,15 +19,14 @@ - + - + - @@ -71,15 +69,14 @@ - + - + - diff --git a/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard b/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard index d2b7677dd..c9b353c45 100644 --- a/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard +++ b/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard @@ -1,8 +1,7 @@ - + - - + @@ -23,7 +22,7 @@ - + @@ -66,7 +65,7 @@ - + diff --git a/LiblinphoneTester/DetailViewController.h b/LiblinphoneTester/DetailView.h similarity index 91% rename from LiblinphoneTester/DetailViewController.h rename to LiblinphoneTester/DetailView.h index db5d001ba..945535107 100644 --- a/LiblinphoneTester/DetailViewController.h +++ b/LiblinphoneTester/DetailView.h @@ -21,7 +21,7 @@ typedef NS_ENUM(int, TestState) { TestStateIdle, TestStatePassed, TestStateInPro @end -@interface DetailViewController : UITableViewController +@interface DetailView : UITableViewController @property(strong, nonatomic) NSString *detailItem; diff --git a/LiblinphoneTester/DetailViewController.m b/LiblinphoneTester/DetailView.m similarity index 93% rename from LiblinphoneTester/DetailViewController.m rename to LiblinphoneTester/DetailView.m index a8423dcd1..47a43d43d 100644 --- a/LiblinphoneTester/DetailViewController.m +++ b/LiblinphoneTester/DetailView.m @@ -6,9 +6,9 @@ // // -#import "DetailViewController.h" -#import "MasterViewController.h" -#import "LogsViewController.h" +#import "DetailView.h" +#import "MasterView.h" +#import "LogsView.h" #include "linphone/liblinphone_tester.h" #import "Utils.h" @@ -36,7 +36,7 @@ static NSString *const kAllTestsName = @"Run All tests"; @end -@interface DetailViewController () { +@interface DetailView () { NSMutableArray *_tests; BOOL in_progress; } @@ -44,7 +44,7 @@ static NSString *const kAllTestsName = @"Run All tests"; - (void)configureView; @end -@implementation DetailViewController +@implementation DetailView #pragma mark - Managing the detail item @@ -119,18 +119,18 @@ static NSString *const kAllTestsName = @"Run All tests"; cell.textLabel.text = [NSString stringWithFormat:@"%@/%@", test.suite, test.name]; NSString *image = nil; switch (test.state) { - case TestStateIdle: - image = nil; - break; - case TestStatePassed: - image = @"test_passed"; - break; - case TestStateInProgress: - image = @"test_inprogress"; - break; - case TestStateFailed: - image = @"test_failed"; - break; + case TestStateIdle: + image = nil; + break; + case TestStatePassed: + image = @"test_passed"; + break; + case TestStateInProgress: + image = @"test_inprogress"; + break; + case TestStateFailed: + image = @"test_failed"; + break; } if (image) { image = [[NSBundle mainBundle] pathForResource:image ofType:@"png"]; diff --git a/LiblinphoneTester/LogsViewController.h b/LiblinphoneTester/LogsView.h similarity index 81% rename from LiblinphoneTester/LogsViewController.h rename to LiblinphoneTester/LogsView.h index 33aff6703..f4c6e163b 100644 --- a/LiblinphoneTester/LogsViewController.h +++ b/LiblinphoneTester/LogsView.h @@ -8,7 +8,7 @@ #import -@interface LogsViewController : UIViewController +@interface LogsView : UIViewController @property(weak, nonatomic) IBOutlet UITextView *tview; - (IBAction)clearLogs:(id)sender; diff --git a/LiblinphoneTester/LogsViewController.m b/LiblinphoneTester/LogsView.m similarity index 87% rename from LiblinphoneTester/LogsViewController.m rename to LiblinphoneTester/LogsView.m index 8bf682d71..38a5995d2 100644 --- a/LiblinphoneTester/LogsViewController.m +++ b/LiblinphoneTester/LogsView.m @@ -6,16 +6,16 @@ // // -#import "LogsViewController.h" -#import "MasterViewController.h" +#import "LogsView.h" +#import "MasterView.h" -@interface LogsViewController () { +@interface LogsView () { NSString *txt; } @end -@implementation LogsViewController +@implementation LogsView - (void)viewDidLoad { [super viewDidLoad]; diff --git a/LiblinphoneTester/MasterViewController.h b/LiblinphoneTester/MasterView.h similarity index 55% rename from LiblinphoneTester/MasterViewController.h rename to LiblinphoneTester/MasterView.h index b9d833721..cbfeb5b27 100644 --- a/LiblinphoneTester/MasterViewController.h +++ b/LiblinphoneTester/MasterView.h @@ -11,10 +11,10 @@ NSMutableArray *lastLogs; NSString *const kLogsUpdateNotification; -@class DetailViewController; +@class DetailView; -@interface MasterViewController : UITableViewController +@interface MasterView : UITableViewController -@property(strong, nonatomic) DetailViewController *detailViewController; +@property(strong, nonatomic) DetailView *detailViewController; @end diff --git a/LiblinphoneTester/MasterViewController.m b/LiblinphoneTester/MasterView.m similarity index 93% rename from LiblinphoneTester/MasterViewController.m rename to LiblinphoneTester/MasterView.m index 66ed6ad15..58df6d562 100644 --- a/LiblinphoneTester/MasterViewController.m +++ b/LiblinphoneTester/MasterView.m @@ -6,22 +6,22 @@ // // -#import "MasterViewController.h" -#import "LogsViewController.h" -#import "DetailViewController.h" +#import "MasterView.h" +#import "LogsView.h" +#import "DetailView.h" #include "linphone/liblinphone_tester.h" #include "mediastreamer2/msutils.h" #import "Utils.h" -@interface MasterViewController () { +@interface MasterView () { NSMutableArray *_objects; NSString *bundlePath; NSString *documentPath; } @end -@implementation MasterViewController +@implementation MasterView - (void)awakeFromNib { if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { @@ -48,8 +48,7 @@ NSString *const kLogsUpdateNotification = @"kLogsUpdateNotification"; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. - self.detailViewController = - (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController]; + self.detailViewController = (DetailView *)[[self.splitViewController.viewControllers lastObject] topViewController]; [self setupLogging]; diff --git a/TestsUI/ContactsTester.m b/TestsUI/ContactsTester.m index 638fe66db..7d07fcdb7 100644 --- a/TestsUI/ContactsTester.m +++ b/TestsUI/ContactsTester.m @@ -8,7 +8,7 @@ #import "ContactsTester.h" -#import "ContactDetailsTableViewController.h" +#import "ContactDetailsTableView.h" @implementation ContactsTester diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 409923e23..113fbc8eb 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -20,7 +20,7 @@ 22276E8713C73D8A00210156 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8613C73D8A00210156 /* CoreVideo.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 22276E8913C73DC000210156 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8813C73DC000210156 /* CoreMedia.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 22405EEE1600B4E400B92522 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EED1600B4E400B92522 /* AssetsLibrary.framework */; }; - 22405F001601C19200B92522 /* ImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22405EFE1601C19100B92522 /* ImageViewController.m */; }; + 22405F001601C19200B92522 /* ImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 22405EFE1601C19100B92522 /* ImageView.m */; }; 224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 224567C1107B968500F10948 /* AVFoundation.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */; }; 2264B6D211200342002C2C53 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2264B6D111200342002C2C53 /* SystemConfiguration.framework */; }; @@ -34,8 +34,8 @@ 22B5F03510CE6B2F00777D97 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22B5F03410CE6B2F00777D97 /* AddressBook.framework */; }; 22C755601317E59C007BC101 /* UIBluetoothButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C7555F1317E59C007BC101 /* UIBluetoothButton.m */; }; 22D1B68112A3E0BE001AE361 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 22D1B68012A3E0BE001AE361 /* libresolv.dylib */; }; - 22E0A822111C44E100B04932 /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81C111C44E100B04932 /* AboutViewController.m */; }; - 22F2508E107141E100AC9B3F /* DialerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F2508C107141E100AC9B3F /* DialerViewController.m */; }; + 22E0A822111C44E100B04932 /* AboutView.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81C111C44E100B04932 /* AboutView.m */; }; + 22F2508E107141E100AC9B3F /* DialerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F2508C107141E100AC9B3F /* DialerView.m */; }; 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; 340751971506459A00B89C47 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 340751961506459A00B89C47 /* CoreTelephony.framework */; }; 340751E7150F38FD00B89C47 /* UIVideoButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 340751E6150F38FD00B89C47 /* UIVideoButton.m */; }; @@ -52,10 +52,10 @@ 63058A271B4E821E00EFAE36 /* Main_iPhone.strings in Resources */ = {isa = PBXBuildFile; fileRef = 63058A131B4E821E00EFAE36 /* Main_iPhone.strings */; }; 63058A281B4E821E00EFAE36 /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63058A151B4E821E00EFAE36 /* Main_iPad.storyboard */; }; 63058A291B4E821E00EFAE36 /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63058A171B4E821E00EFAE36 /* Main_iPhone.storyboard */; }; - 63058A2A1B4E821E00EFAE36 /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A1A1B4E821E00EFAE36 /* DetailViewController.m */; }; - 63058A2C1B4E821E00EFAE36 /* LogsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A1F1B4E821E00EFAE36 /* LogsViewController.m */; }; + 63058A2A1B4E821E00EFAE36 /* DetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A1A1B4E821E00EFAE36 /* DetailView.m */; }; + 63058A2C1B4E821E00EFAE36 /* LogsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A1F1B4E821E00EFAE36 /* LogsView.m */; }; 63058A2D1B4E821E00EFAE36 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A201B4E821E00EFAE36 /* main.m */; }; - 63058A2E1B4E821E00EFAE36 /* MasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A221B4E821E00EFAE36 /* MasterViewController.m */; }; + 63058A2E1B4E821E00EFAE36 /* MasterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A221B4E821E00EFAE36 /* MasterView.m */; }; 63058A2F1B4E821E00EFAE36 /* TesterImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 63058A231B4E821E00EFAE36 /* TesterImages.xcassets */; }; 63058A3B1B4E822F00EFAE36 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 63058A311B4E822F00EFAE36 /* InfoPlist.strings */; }; 63058A3C1B4E822F00EFAE36 /* DTObjectBlockExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A341B4E822F00EFAE36 /* DTObjectBlockExecutor.m */; }; @@ -97,12 +97,12 @@ 63158FAD1B468E0E00969917 /* ImageOptim.sh in Resources */ = {isa = PBXBuildFile; fileRef = 63158FAC1B468E0E00969917 /* ImageOptim.sh */; }; 632DA24D1B43EE9400EB356A /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = D35860D515B549B500513429 /* Utils.m */; }; 632DA24E1B43EEEF00EB356A /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = D35860D515B549B500513429 /* Utils.m */; }; - 633756391B67BAF400E21BAD /* SideMenuTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756381B67BAF400E21BAD /* SideMenuTableViewController.m */; }; - 633756451B67D2B200E21BAD /* SideMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756431B67D2B100E21BAD /* SideMenuViewController.m */; }; - 633756461B67D2B200E21BAD /* SideMenuViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 633756441B67D2B100E21BAD /* SideMenuViewController.xib */; }; + 633756391B67BAF400E21BAD /* SideMenuTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756381B67BAF400E21BAD /* SideMenuTableView.m */; }; + 633756451B67D2B200E21BAD /* SideMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756431B67D2B100E21BAD /* SideMenuView.m */; }; + 633756461B67D2B200E21BAD /* SideMenuView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 633756441B67D2B100E21BAD /* SideMenuView.xib */; }; 634610061B61330300548952 /* UILabel+Boldify.m in Sources */ = {isa = PBXBuildFile; fileRef = 634610051B61330300548952 /* UILabel+Boldify.m */; }; - 6346100F1B61409800548952 /* OutgoingCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6346100E1B61409800548952 /* OutgoingCallViewController.m */; }; - 634610121B6140A500548952 /* OutgoingCallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 634610101B6140A500548952 /* OutgoingCallViewController.xib */; }; + 6346100F1B61409800548952 /* CallOutgoingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6346100E1B61409800548952 /* CallOutgoingView.m */; }; + 634610121B6140A500548952 /* CallOutgoingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 634610101B6140A500548952 /* CallOutgoingView.xib */; }; 634CED931B6630DB00D7A921 /* add_field_default.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED0E1B6630DA00D7A921 /* add_field_default.png */; }; 634CED941B6630DB00D7A921 /* add_field_over.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED0F1B6630DA00D7A921 /* add_field_over.png */; }; 634CED951B6630DB00D7A921 /* avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED101B6630DA00D7A921 /* avatar.png */; }; @@ -236,16 +236,16 @@ 634CEE151B6630DB00D7A921 /* status_disconnected_phone.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED901B6630DB00D7A921 /* status_disconnected_phone.png */; }; 634CEE161B6630DB00D7A921 /* valid.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED911B6630DB00D7A921 /* valid.png */; }; 634CEE171B6630DB00D7A921 /* voicemail.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED921B6630DB00D7A921 /* voicemail.png */; }; - 635775251B6673EC00C8B704 /* HistoryDetailsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 635775241B6673EC00C8B704 /* HistoryDetailsTableViewController.m */; }; - 636316D11A1DEBCB0009B839 /* AboutViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D31A1DEBCB0009B839 /* AboutViewController.xib */; }; - 636316D41A1DEC650009B839 /* SettingsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D61A1DEC650009B839 /* SettingsViewController.xib */; }; + 635775251B6673EC00C8B704 /* HistoryDetailsTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 635775241B6673EC00C8B704 /* HistoryDetailsTableView.m */; }; + 636316D11A1DEBCB0009B839 /* AboutView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D31A1DEBCB0009B839 /* AboutView.xib */; }; + 636316D41A1DEC650009B839 /* SettingsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D61A1DEC650009B839 /* SettingsView.xib */; }; 636316D91A1DECC90009B839 /* PhoneMainView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D71A1DECC90009B839 /* PhoneMainView.xib */; }; 636BC9971B5F921B00C754CE /* UIIconButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 636BC9961B5F921B00C754CE /* UIIconButton.m */; }; 637157A11B283FE200C91677 /* FileTransferDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 637157A01B283FE200C91677 /* FileTransferDelegate.m */; }; - 639CEAFD1A1DF4D9004DE38F /* UIStateBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEAFF1A1DF4D9004DE38F /* UIStateBar.xib */; }; + 639CEAFD1A1DF4D9004DE38F /* StatusBarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEAFF1A1DF4D9004DE38F /* StatusBarView.xib */; }; 639CEB001A1DF4E4004DE38F /* UIHistoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEB021A1DF4E4004DE38F /* UIHistoryCell.xib */; }; - 639CEB031A1DF4EB004DE38F /* UICompositeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEB051A1DF4EB004DE38F /* UICompositeViewController.xib */; }; - 639CEB061A1DF4F1004DE38F /* UIChatRoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEB081A1DF4F1004DE38F /* UIChatRoomCell.xib */; }; + 639CEB031A1DF4EB004DE38F /* UICompositeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEB051A1DF4EB004DE38F /* UICompositeView.xib */; }; + 639CEB061A1DF4F1004DE38F /* UIChatConversationCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEB081A1DF4F1004DE38F /* UIChatConversationCell.xib */; }; 639CEB091A1DF4FA004DE38F /* UIChatCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 639CEB0B1A1DF4FA004DE38F /* UIChatCell.xib */; }; 63AADBE81B6A0FF200AA16FD /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 63AADBC41B6A0FF200AA16FD /* Localizable.strings */; }; 63AADBE91B6A0FF200AA16FD /* hold.wav in Resources */ = {isa = PBXBuildFile; fileRef = 63AADBC91B6A0FF200AA16FD /* hold.wav */; }; @@ -315,38 +315,38 @@ 63FB30351A680E73008CA393 /* UIRoundedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63FB30341A680E73008CA393 /* UIRoundedImageView.m */; }; 70E542F313E147E3002BA2C0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F213E147E3002BA2C0 /* OpenGLES.framework */; }; 70E542F513E147EB002BA2C0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F413E147EB002BA2C0 /* QuartzCore.framework */; }; - C90FAA7915AF54E6002091CB /* HistoryDetailsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C90FAA7715AF54E6002091CB /* HistoryDetailsViewController.m */; }; + C90FAA7915AF54E6002091CB /* HistoryDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = C90FAA7715AF54E6002091CB /* HistoryDetailsView.m */; }; D30562161671DC4900C97967 /* libXMLRPC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3554ED115CA79AA00478841 /* libXMLRPC.a */; }; D306459E1611EC2A00BB571E /* UILoadingImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D306459D1611EC2900BB571E /* UILoadingImageView.m */; }; - D3128FE115AABC7E00A2147A /* ContactDetailsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3128FDF15AABC7E00A2147A /* ContactDetailsViewController.m */; }; + D3128FE115AABC7E00A2147A /* ContactDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3128FDF15AABC7E00A2147A /* ContactDetailsView.m */; }; D3196D3E15A32BD8007FEEBA /* UITransferButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D3196D3D15A32BD8007FEEBA /* UITransferButton.m */; }; - D31AAF5E159B3919002C6B02 /* InCallTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31AAF5D159B3919002C6B02 /* InCallTableViewController.m */; }; - D31B4B21159876C0002E6C72 /* UICompositeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31B4B1F159876C0002E6C72 /* UICompositeViewController.m */; }; + D31AAF5E159B3919002C6B02 /* CallTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D31AAF5D159B3919002C6B02 /* CallTableView.m */; }; + D31B4B21159876C0002E6C72 /* UICompositeView.m in Sources */ = {isa = PBXBuildFile; fileRef = D31B4B1F159876C0002E6C72 /* UICompositeView.m */; }; D31C9C98158A1CDF00756B45 /* UIHistoryCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D31C9C97158A1CDE00756B45 /* UIHistoryCell.m */; }; D3211BB0159C4EF10098460B /* UIConferenceHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = D3211BAE159C4EF00098460B /* UIConferenceHeader.m */; }; D32460E6159D9AAD00BA7F3A /* UITransparentView.m in Sources */ = {isa = PBXBuildFile; fileRef = D32460E5159D9AAD00BA7F3A /* UITransparentView.m */; }; D326483815887D5200930C67 /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = D326483715887D5200930C67 /* OrderedDictionary.m */; }; D32648441588F6FC00930C67 /* UIToggleButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D32648431588F6FB00930C67 /* UIToggleButton.m */; }; - D32B6E2915A5BC440033019F /* ChatRoomTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D32B6E2815A5BC430033019F /* ChatRoomTableViewController.m */; }; + D32B6E2915A5BC440033019F /* ChatConversationTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D32B6E2815A5BC430033019F /* ChatConversationTableView.m */; }; D32B6E2F15A5C0AC0033019F /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D32B6E2E15A5C0AC0033019F /* libsqlite3.dylib */; }; D32B9DFC15A2F131000B6DEC /* FastAddressBook.m in Sources */ = {isa = PBXBuildFile; fileRef = D32B9DFB15A2F131000B6DEC /* FastAddressBook.m */; }; D34F6F9E1594D3FB0095705B /* InAppSettings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D34F6F9D1594D3FB0095705B /* InAppSettings.bundle */; }; - D350F20E15A43BB100149E54 /* AssistantViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D350F20C15A43BB100149E54 /* AssistantViewController.m */; }; - D35497FE15875372000081D8 /* ContactsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D35497FC15875372000081D8 /* ContactsViewController.m */; }; - D3549816158761D0000081D8 /* ContactsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3549815158761D0000081D8 /* ContactsTableViewController.m */; }; - D35498211587716B000081D8 /* UIStateBar.m in Sources */ = {isa = PBXBuildFile; fileRef = D354981F1587716B000081D8 /* UIStateBar.m */; }; + D350F20E15A43BB100149E54 /* AssistantView.m in Sources */ = {isa = PBXBuildFile; fileRef = D350F20C15A43BB100149E54 /* AssistantView.m */; }; + D35497FE15875372000081D8 /* ContactsListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D35497FC15875372000081D8 /* ContactsListView.m */; }; + D3549816158761D0000081D8 /* ContactsListTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3549815158761D0000081D8 /* ContactsListTableView.m */; }; + D35498211587716B000081D8 /* StatusBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = D354981F1587716B000081D8 /* StatusBarView.m */; }; D35860D615B549B500513429 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = D35860D515B549B500513429 /* Utils.m */; }; - D35E7597159460580066B1C1 /* ChatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D35E7595159460560066B1C1 /* ChatViewController.m */; }; - D35E759F159460B70066B1C1 /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D35E759D159460B50066B1C1 /* SettingsViewController.m */; }; + D35E7597159460580066B1C1 /* ChatsListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D35E7595159460560066B1C1 /* ChatsListView.m */; }; + D35E759F159460B70066B1C1 /* SettingsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D35E759D159460B50066B1C1 /* SettingsView.m */; }; D36C43C6158F2E5A0048BA40 /* UICallCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D36C43C5158F2E5A0048BA40 /* UICallCell.m */; }; D36FB2D51589EF7C0036F6F2 /* UIPauseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */; }; - D378906515AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */; }; - D378AB2A15DCDB4A0098505D /* ImagePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D378AB2915DCDB490098505D /* ImagePickerViewController.m */; }; - D37C639B15AADEF6009D0BAC /* ContactDetailsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D37C639A15AADEF5009D0BAC /* ContactDetailsTableViewController.m */; }; + D378906515AC373B00BD776C /* ContactDetailsLabelView.m in Sources */ = {isa = PBXBuildFile; fileRef = D378906315AC373B00BD776C /* ContactDetailsLabelView.m */; }; + D378AB2A15DCDB4A0098505D /* ImagePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D378AB2915DCDB490098505D /* ImagePickerView.m */; }; + D37C639B15AADEF6009D0BAC /* ContactDetailsTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D37C639A15AADEF5009D0BAC /* ContactDetailsTableView.m */; }; D37DC6C11594AE1800B2A5EB /* LinphoneCoreSettingsStore.m in Sources */ = {isa = PBXBuildFile; fileRef = D37DC6C01594AE1800B2A5EB /* LinphoneCoreSettingsStore.m */; }; D37DC7181594AF3400B2A5EB /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D37DC7171594AF3400B2A5EB /* MessageUI.framework */; }; D37E3ECD1619C27A0087659A /* CAAnimation+Blocks.m in Sources */ = {isa = PBXBuildFile; fileRef = D37E3ECC1619C27A0087659A /* CAAnimation+Blocks.m */; }; - D37EE10D16035793003608A6 /* ImageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D37EE11016035793003608A6 /* ImageViewController.xib */; }; + D37EE10D16035793003608A6 /* ImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D37EE11016035793003608A6 /* ImageView.xib */; }; D37EE162160377D7003608A6 /* DTActionSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = D37EE161160377D7003608A6 /* DTActionSheet.m */; }; D3807FBF15C28940005BE9BC /* DCRoundSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = D3807FB815C28940005BE9BC /* DCRoundSwitch.m */; }; D3807FC115C28940005BE9BC /* DCRoundSwitchKnobLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = D3807FBA15C28940005BE9BC /* DCRoundSwitchKnobLayer.m */; }; @@ -366,38 +366,37 @@ D3807FFE15C2894A005BE9BC /* IASKSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = D3807FE315C2894A005BE9BC /* IASKSlider.m */; }; D380800015C2894A005BE9BC /* IASKSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = D3807FE515C2894A005BE9BC /* IASKSwitch.m */; }; D380800215C2894A005BE9BC /* IASKTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = D3807FE715C2894A005BE9BC /* IASKTextField.m */; }; - D380800515C28A7A005BE9BC /* UILinphone.m in Sources */ = {isa = PBXBuildFile; fileRef = D380800415C28A7A005BE9BC /* UILinphone.m */; }; D380801315C299D0005BE9BC /* ColorSpaceUtilites.m in Sources */ = {isa = PBXBuildFile; fileRef = D380801215C299D0005BE9BC /* ColorSpaceUtilites.m */; }; - D38187AD15FE340100C3EDCA /* ChatRoomViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187B015FE340100C3EDCA /* ChatRoomViewController.xib */; }; - D38187B115FE340500C3EDCA /* ChatViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187B415FE340500C3EDCA /* ChatViewController.xib */; }; - D38187B515FE341B00C3EDCA /* ContactDetailsLabelViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187B815FE341B00C3EDCA /* ContactDetailsLabelViewController.xib */; }; - D38187B915FE342200C3EDCA /* ContactDetailsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187BC15FE342200C3EDCA /* ContactDetailsViewController.xib */; }; - D38187BD15FE342800C3EDCA /* ContactsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187C015FE342800C3EDCA /* ContactsViewController.xib */; }; - D38187C115FE345B00C3EDCA /* DialerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187C415FE345B00C3EDCA /* DialerViewController.xib */; }; - D38187CD15FE346700C3EDCA /* HistoryDetailsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187D015FE346700C3EDCA /* HistoryDetailsViewController.xib */; }; - D38187D115FE346B00C3EDCA /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187D415FE346B00C3EDCA /* HistoryViewController.xib */; }; - D38187D915FE347700C3EDCA /* IncomingCallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187DC15FE347700C3EDCA /* IncomingCallViewController.xib */; }; - D38187DD15FE348A00C3EDCA /* AssistantViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187E015FE348A00C3EDCA /* AssistantViewController.xib */; }; + D38187AD15FE340100C3EDCA /* ChatConversationView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187B015FE340100C3EDCA /* ChatConversationView.xib */; }; + D38187B115FE340500C3EDCA /* ChatsListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187B415FE340500C3EDCA /* ChatsListView.xib */; }; + D38187B515FE341B00C3EDCA /* ContactDetailsLabelView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187B815FE341B00C3EDCA /* ContactDetailsLabelView.xib */; }; + D38187B915FE342200C3EDCA /* ContactDetailsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187BC15FE342200C3EDCA /* ContactDetailsView.xib */; }; + D38187BD15FE342800C3EDCA /* ContactsListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187C015FE342800C3EDCA /* ContactsListView.xib */; }; + D38187C115FE345B00C3EDCA /* DialerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187C415FE345B00C3EDCA /* DialerView.xib */; }; + D38187CD15FE346700C3EDCA /* HistoryDetailsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187D015FE346700C3EDCA /* HistoryDetailsView.xib */; }; + D38187D115FE346B00C3EDCA /* HistoryListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187D415FE346B00C3EDCA /* HistoryListView.xib */; }; + D38187D915FE347700C3EDCA /* CallIncomingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187DC15FE347700C3EDCA /* CallIncomingView.xib */; }; + D38187DD15FE348A00C3EDCA /* AssistantView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187E015FE348A00C3EDCA /* AssistantView.xib */; }; D38187F015FE354000C3EDCA /* UIConferenceHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187F315FE354000C3EDCA /* UIConferenceHeader.xib */; }; - D38187F815FE355D00C3EDCA /* UIMainBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187FB15FE355D00C3EDCA /* UIMainBar.xib */; }; + D38187F815FE355D00C3EDCA /* TabBarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D38187FB15FE355D00C3EDCA /* TabBarView.xib */; }; D381881115FE3F0B00C3EDCA /* UICallCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D381881415FE3F0B00C3EDCA /* UICallCell.xib */; }; - D381881915FE3FCA00C3EDCA /* InCallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D381881C15FE3FCA00C3EDCA /* InCallViewController.xib */; }; + D381881915FE3FCA00C3EDCA /* CallView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D381881C15FE3FCA00C3EDCA /* CallView.xib */; }; D3A55FBC15877E5E003FD403 /* UIContactCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A55FBB15877E5E003FD403 /* UIContactCell.m */; }; - D3A8BB7015A6C7D500F96BE5 /* UIChatRoomCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A8BB6F15A6C7D500F96BE5 /* UIChatRoomCell.m */; }; + D3A8BB7015A6C7D500F96BE5 /* UIChatConversationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A8BB6F15A6C7D500F96BE5 /* UIChatConversationCell.m */; }; D3C6526715AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */; }; D3D5126C160B3A8E00946DF8 /* AssistantViews.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3D5126A160B3A8E00946DF8 /* AssistantViews.xib */; }; D3EA53FD159850E80037DC6B /* LinphoneManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA53FC159850E80037DC6B /* LinphoneManager.m */; }; - D3EA540D1598528B0037DC6B /* ChatTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA540C1598528B0037DC6B /* ChatTableViewController.m */; }; + D3EA540D1598528B0037DC6B /* ChatsListTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA540C1598528B0037DC6B /* ChatsListTableView.m */; }; D3EA5411159853750037DC6B /* UIChatCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA5410159853750037DC6B /* UIChatCell.m */; }; - D3ED3E871586291E006C0DE4 /* UIMainBar.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3E851586291B006C0DE4 /* UIMainBar.m */; }; - D3ED3EA71587334E006C0DE4 /* HistoryTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */; }; - D3ED3EB81587392C006C0DE4 /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EB615873929006C0DE4 /* HistoryViewController.m */; }; + D3ED3E871586291E006C0DE4 /* TabBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3E851586291B006C0DE4 /* TabBarView.m */; }; + D3ED3EA71587334E006C0DE4 /* HistoryListTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EA51587334C006C0DE4 /* HistoryListTableView.m */; }; + D3ED3EB81587392C006C0DE4 /* HistoryListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EB615873929006C0DE4 /* HistoryListView.m */; }; D3ED40191602172200BF332B /* HPGrowingTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED40161602172200BF332B /* HPGrowingTextView.m */; }; D3ED401B1602172200BF332B /* HPTextViewInternal.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED40181602172200BF332B /* HPTextViewInternal.m */; }; - D3F26BF115986B73005F9CAB /* IncomingCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F26BEF15986B71005F9CAB /* IncomingCallViewController.m */; }; - D3F795D615A582810077328B /* ChatRoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F795D415A582800077328B /* ChatRoomViewController.m */; }; + D3F26BF115986B73005F9CAB /* CallIncomingView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F26BEF15986B71005F9CAB /* CallIncomingView.m */; }; + D3F795D615A582810077328B /* ChatConversationView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F795D415A582800077328B /* ChatConversationView.m */; }; D3F7998115BD32370018C273 /* TPMultiLayoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */; }; - D3F83EEC1582021700336684 /* InCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83EEA1582021700336684 /* InCallViewController.m */; }; + D3F83EEC1582021700336684 /* CallView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83EEA1582021700336684 /* CallView.m */; }; D3F83F8E15822ABE00336684 /* PhoneMainView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83F8D15822ABD00336684 /* PhoneMainView.m */; }; D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; }; F03CA84318C72F1A0008889D /* UITextViewNoDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = F03CA84218C72F1A0008889D /* UITextViewNoDefine.m */; }; @@ -577,8 +576,8 @@ 22405EE916006F0700B92522 /* libmediastreamer_base.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_base.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer_base.a"; sourceTree = ""; }; 22405EEA16006F0700B92522 /* libmediastreamer_voip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_voip.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer_voip.a"; sourceTree = ""; }; 22405EED1600B4E400B92522 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; - 22405EFD1601C19000B92522 /* ImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageViewController.h; sourceTree = ""; }; - 22405EFE1601C19100B92522 /* ImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageViewController.m; sourceTree = ""; }; + 22405EFD1601C19000B92522 /* ImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageView.h; sourceTree = ""; }; + 22405EFE1601C19100B92522 /* ImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageView.m; sourceTree = ""; }; 224567C1107B968500F10948 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 2248E90C12F7E4CF00220D9C /* UIDigitButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDigitButton.h; sourceTree = ""; }; 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIDigitButton.m; sourceTree = ""; }; @@ -609,10 +608,10 @@ 22C7555E1317E59C007BC101 /* UIBluetoothButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIBluetoothButton.h; sourceTree = ""; }; 22C7555F1317E59C007BC101 /* UIBluetoothButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIBluetoothButton.m; sourceTree = ""; }; 22D1B68012A3E0BE001AE361 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = usr/lib/libresolv.dylib; sourceTree = SDKROOT; }; - 22E0A81C111C44E100B04932 /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutViewController.m; sourceTree = ""; }; - 22E0A81D111C44E100B04932 /* AboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutViewController.h; sourceTree = ""; }; - 22F2508B107141E100AC9B3F /* DialerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DialerViewController.h; sourceTree = ""; }; - 22F2508C107141E100AC9B3F /* DialerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = DialerViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; + 22E0A81C111C44E100B04932 /* AboutView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutView.m; sourceTree = ""; }; + 22E0A81D111C44E100B04932 /* AboutView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutView.h; sourceTree = ""; }; + 22F2508B107141E100AC9B3F /* DialerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DialerView.h; sourceTree = ""; }; + 22F2508C107141E100AC9B3F /* DialerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = DialerView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 32CA4F630368D1EE00C91783 /* linphone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = linphone_Prefix.pch; sourceTree = ""; }; @@ -641,16 +640,16 @@ 63058A141B4E821E00EFAE36 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Main_iPhone.strings; sourceTree = ""; }; 63058A161B4E821E00EFAE36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPad.storyboard; sourceTree = ""; }; 63058A181B4E821E00EFAE36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPhone.storyboard; sourceTree = ""; }; - 63058A191B4E821E00EFAE36 /* DetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailViewController.h; sourceTree = ""; }; - 63058A1A1B4E821E00EFAE36 /* DetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailViewController.m; sourceTree = ""; }; + 63058A191B4E821E00EFAE36 /* DetailView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailView.h; sourceTree = ""; }; + 63058A1A1B4E821E00EFAE36 /* DetailView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailView.m; sourceTree = ""; }; 63058A1B1B4E821E00EFAE36 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 63058A1C1B4E821E00EFAE36 /* LinphoneTester-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "LinphoneTester-Info.plist"; sourceTree = ""; }; 63058A1D1B4E821E00EFAE36 /* LinphoneTester-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "LinphoneTester-Prefix.pch"; sourceTree = ""; }; - 63058A1E1B4E821E00EFAE36 /* LogsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogsViewController.h; sourceTree = ""; }; - 63058A1F1B4E821E00EFAE36 /* LogsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LogsViewController.m; sourceTree = ""; }; + 63058A1E1B4E821E00EFAE36 /* LogsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogsView.h; sourceTree = ""; }; + 63058A1F1B4E821E00EFAE36 /* LogsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LogsView.m; sourceTree = ""; }; 63058A201B4E821E00EFAE36 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 63058A211B4E821E00EFAE36 /* MasterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MasterViewController.h; sourceTree = ""; }; - 63058A221B4E821E00EFAE36 /* MasterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MasterViewController.m; sourceTree = ""; }; + 63058A211B4E821E00EFAE36 /* MasterView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MasterView.h; sourceTree = ""; }; + 63058A221B4E821E00EFAE36 /* MasterView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MasterView.m; sourceTree = ""; }; 63058A231B4E821E00EFAE36 /* TesterImages.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = TesterImages.xcassets; sourceTree = ""; }; 63058A321B4E822F00EFAE36 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InfoPlist.strings; sourceTree = ""; }; 63058A331B4E822F00EFAE36 /* DTObjectBlockExecutor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DTObjectBlockExecutor.h; sourceTree = ""; }; @@ -688,17 +687,17 @@ 631560321B69175F0047F4D3 /* color_K.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = color_K.png; sourceTree = ""; }; 631560331B69175F0047F4D3 /* color_L.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = color_L.png; sourceTree = ""; }; 63158FAC1B468E0E00969917 /* ImageOptim.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = ImageOptim.sh; path = Tools/ImageOptim.sh; sourceTree = ""; }; - 633756371B67BAF400E21BAD /* SideMenuTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenuTableViewController.h; sourceTree = ""; }; - 633756381B67BAF400E21BAD /* SideMenuTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SideMenuTableViewController.m; sourceTree = ""; }; - 633756421B67D2B100E21BAD /* SideMenuViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenuViewController.h; sourceTree = ""; }; - 633756431B67D2B100E21BAD /* SideMenuViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SideMenuViewController.m; sourceTree = ""; }; - 633756441B67D2B100E21BAD /* SideMenuViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SideMenuViewController.xib; sourceTree = ""; }; + 633756371B67BAF400E21BAD /* SideMenuTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenuTableView.h; sourceTree = ""; }; + 633756381B67BAF400E21BAD /* SideMenuTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SideMenuTableView.m; sourceTree = ""; }; + 633756421B67D2B100E21BAD /* SideMenuView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenuView.h; sourceTree = ""; }; + 633756431B67D2B100E21BAD /* SideMenuView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SideMenuView.m; sourceTree = ""; }; + 633756441B67D2B100E21BAD /* SideMenuView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SideMenuView.xib; sourceTree = ""; }; 633E388219FFB0F400936D1C /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 634610041B61330300548952 /* UILabel+Boldify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+Boldify.h"; sourceTree = ""; }; 634610051B61330300548952 /* UILabel+Boldify.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+Boldify.m"; sourceTree = ""; }; - 6346100D1B61409800548952 /* OutgoingCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OutgoingCallViewController.h; sourceTree = ""; }; - 6346100E1B61409800548952 /* OutgoingCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OutgoingCallViewController.m; sourceTree = ""; }; - 634610111B6140A500548952 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/OutgoingCallViewController.xib; sourceTree = ""; }; + 6346100D1B61409800548952 /* CallOutgoingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallOutgoingView.h; sourceTree = ""; }; + 6346100E1B61409800548952 /* CallOutgoingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallOutgoingView.m; sourceTree = ""; }; + 634610111B6140A500548952 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/CallOutgoingView.xib; sourceTree = ""; }; 634CED0E1B6630DA00D7A921 /* add_field_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = add_field_default.png; sourceTree = ""; }; 634CED0F1B6630DA00D7A921 /* add_field_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = add_field_over.png; sourceTree = ""; }; 634CED101B6630DA00D7A921 /* avatar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = avatar.png; sourceTree = ""; }; @@ -832,21 +831,21 @@ 634CED901B6630DB00D7A921 /* status_disconnected_phone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = status_disconnected_phone.png; sourceTree = ""; }; 634CED911B6630DB00D7A921 /* valid.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = valid.png; sourceTree = ""; }; 634CED921B6630DB00D7A921 /* voicemail.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = voicemail.png; sourceTree = ""; }; - 635775231B6673EC00C8B704 /* HistoryDetailsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsTableViewController.h; sourceTree = ""; }; - 635775241B6673EC00C8B704 /* HistoryDetailsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryDetailsTableViewController.m; sourceTree = ""; }; - 636316D21A1DEBCB0009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AboutViewController.xib; sourceTree = ""; }; - 636316D51A1DEC650009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SettingsViewController.xib; sourceTree = ""; }; + 635775231B6673EC00C8B704 /* HistoryDetailsTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsTableView.h; sourceTree = ""; }; + 635775241B6673EC00C8B704 /* HistoryDetailsTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryDetailsTableView.m; sourceTree = ""; }; + 636316D21A1DEBCB0009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AboutView.xib; sourceTree = ""; }; + 636316D51A1DEC650009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SettingsView.xib; sourceTree = ""; }; 636316D81A1DECC90009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PhoneMainView.xib; sourceTree = ""; }; - 636316DA1A1DEDD40009B839 /* fr */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryDetailsViewController.strings; sourceTree = ""; }; - 636316DB1A1DEDD80009B839 /* ru */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/HistoryDetailsViewController.strings; sourceTree = ""; }; + 636316DA1A1DEDD40009B839 /* fr */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryDetailsView.strings; sourceTree = ""; }; + 636316DB1A1DEDD80009B839 /* ru */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/HistoryDetailsView.strings; sourceTree = ""; }; 636BC9951B5F921B00C754CE /* UIIconButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIIconButton.h; sourceTree = ""; }; 636BC9961B5F921B00C754CE /* UIIconButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIIconButton.m; sourceTree = ""; }; 6371579F1B283FE200C91677 /* FileTransferDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileTransferDelegate.h; path = Utils/FileTransferDelegate.h; sourceTree = ""; }; 637157A01B283FE200C91677 /* FileTransferDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FileTransferDelegate.m; path = Utils/FileTransferDelegate.m; sourceTree = ""; }; - 639CEAFE1A1DF4D9004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIStateBar.xib; sourceTree = ""; }; + 639CEAFE1A1DF4D9004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/StatusBarView.xib; sourceTree = ""; }; 639CEB011A1DF4E4004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIHistoryCell.xib; sourceTree = ""; }; - 639CEB041A1DF4EB004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UICompositeViewController.xib; sourceTree = ""; }; - 639CEB071A1DF4F1004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIChatRoomCell.xib; sourceTree = ""; }; + 639CEB041A1DF4EB004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UICompositeView.xib; sourceTree = ""; }; + 639CEB071A1DF4F1004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIChatConversationCell.xib; sourceTree = ""; }; 639CEB0A1A1DF4FA004DE38F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIChatCell.xib; sourceTree = ""; }; 639CEB0C1A1DF528004DE38F /* fr */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UICallCell.strings; sourceTree = ""; }; 639CEB0D1A1DF52C004DE38F /* ru */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/UICallCell.strings; sourceTree = ""; }; @@ -900,27 +899,27 @@ 63E59A3D1ADE6ECB00646FB3 /* InAppProductsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InAppProductsManager.h; sourceTree = ""; }; 63E59A3E1ADE70D900646FB3 /* InAppProductsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InAppProductsManager.m; sourceTree = ""; }; 63EA4C941B50189D00922857 /* libmswebrtc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmswebrtc.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmswebrtc.a"; sourceTree = ""; }; - 63EF7FDC1A24B5810017A416 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AboutViewController.strings; sourceTree = ""; }; + 63EF7FDC1A24B5810017A416 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AboutView.strings; sourceTree = ""; }; 63FB30331A680E73008CA393 /* UIRoundedImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIRoundedImageView.h; sourceTree = ""; }; 63FB30341A680E73008CA393 /* UIRoundedImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIRoundedImageView.m; sourceTree = ""; }; 7066FC0B13E830E400EFC6DC /* libvpx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvpx.a; path = "liblinphone-sdk/apple-darwin/lib/libvpx.a"; sourceTree = ""; }; 70E542F213E147E3002BA2C0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 70E542F413E147EB002BA2C0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - C90FAA7615AF54E6002091CB /* HistoryDetailsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsViewController.h; sourceTree = ""; }; - C90FAA7715AF54E6002091CB /* HistoryDetailsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryDetailsViewController.m; sourceTree = ""; }; + C90FAA7615AF54E6002091CB /* HistoryDetailsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsView.h; sourceTree = ""; }; + C90FAA7715AF54E6002091CB /* HistoryDetailsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryDetailsView.m; sourceTree = ""; }; C9B3A6FD15B485DB006F52EE /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = Utils/Utils.h; sourceTree = ""; }; D306459C1611EC2900BB571E /* UILoadingImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UILoadingImageView.h; sourceTree = ""; }; D306459D1611EC2900BB571E /* UILoadingImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UILoadingImageView.m; sourceTree = ""; }; D30BBD1215D3EFEB000F93DD /* ContactDetailsDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsDelegate.h; sourceTree = ""; }; D30BF33216A427BC00AF0026 /* libtunnel.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtunnel.a; path = "liblinphone-sdk/apple-darwin/lib/libtunnel.a"; sourceTree = ""; }; - D3128FDE15AABC7E00A2147A /* ContactDetailsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsViewController.h; sourceTree = ""; }; - D3128FDF15AABC7E00A2147A /* ContactDetailsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsViewController.m; sourceTree = ""; }; + D3128FDE15AABC7E00A2147A /* ContactDetailsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsView.h; sourceTree = ""; }; + D3128FDF15AABC7E00A2147A /* ContactDetailsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsView.m; sourceTree = ""; }; D3196D3C15A32BD7007FEEBA /* UITransferButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UITransferButton.h; sourceTree = ""; }; D3196D3D15A32BD8007FEEBA /* UITransferButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UITransferButton.m; sourceTree = ""; }; - D31AAF5C159B3919002C6B02 /* InCallTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InCallTableViewController.h; sourceTree = ""; }; - D31AAF5D159B3919002C6B02 /* InCallTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InCallTableViewController.m; sourceTree = ""; }; - D31B4B1E159876C0002E6C72 /* UICompositeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICompositeViewController.h; sourceTree = ""; }; - D31B4B1F159876C0002E6C72 /* UICompositeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICompositeViewController.m; sourceTree = ""; }; + D31AAF5C159B3919002C6B02 /* CallTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallTableView.h; sourceTree = ""; }; + D31AAF5D159B3919002C6B02 /* CallTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallTableView.m; sourceTree = ""; }; + D31B4B1E159876C0002E6C72 /* UICompositeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICompositeView.h; sourceTree = ""; }; + D31B4B1F159876C0002E6C72 /* UICompositeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICompositeView.m; sourceTree = ""; }; D31C9C96158A1CDE00756B45 /* UIHistoryCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIHistoryCell.h; sourceTree = ""; }; D31C9C97158A1CDE00756B45 /* UIHistoryCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIHistoryCell.m; sourceTree = ""; }; D3211BAD159C4EF00098460B /* UIConferenceHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIConferenceHeader.h; sourceTree = ""; }; @@ -931,36 +930,36 @@ D326483715887D5200930C67 /* OrderedDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderedDictionary.m; path = Utils/OrderedDictionary.m; sourceTree = ""; }; D32648421588F6FA00930C67 /* UIToggleButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIToggleButton.h; sourceTree = ""; }; D32648431588F6FB00930C67 /* UIToggleButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIToggleButton.m; sourceTree = ""; }; - D32B6E2715A5BC430033019F /* ChatRoomTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatRoomTableViewController.h; sourceTree = ""; }; - D32B6E2815A5BC430033019F /* ChatRoomTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatRoomTableViewController.m; sourceTree = ""; }; + D32B6E2715A5BC430033019F /* ChatConversationTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatConversationTableView.h; sourceTree = ""; }; + D32B6E2815A5BC430033019F /* ChatConversationTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatConversationTableView.m; sourceTree = ""; }; D32B6E2E15A5C0AC0033019F /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; D32B9DFA15A2F131000B6DEC /* FastAddressBook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FastAddressBook.h; path = Utils/FastAddressBook.h; sourceTree = ""; }; D32B9DFB15A2F131000B6DEC /* FastAddressBook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FastAddressBook.m; path = Utils/FastAddressBook.m; sourceTree = ""; }; D34F6F9D1594D3FB0095705B /* InAppSettings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = InAppSettings.bundle; sourceTree = ""; }; - D350F20B15A43BB100149E54 /* AssistantViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssistantViewController.h; sourceTree = ""; }; - D350F20C15A43BB100149E54 /* AssistantViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AssistantViewController.m; sourceTree = ""; }; - D35497FB15875372000081D8 /* ContactsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsViewController.h; sourceTree = ""; }; - D35497FC15875372000081D8 /* ContactsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ContactsViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - D3549814158761CF000081D8 /* ContactsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsTableViewController.h; sourceTree = ""; }; - D3549815158761D0000081D8 /* ContactsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ContactsTableViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - D354981E1587716B000081D8 /* UIStateBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIStateBar.h; sourceTree = ""; }; - D354981F1587716B000081D8 /* UIStateBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIStateBar.m; sourceTree = ""; }; + D350F20B15A43BB100149E54 /* AssistantView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssistantView.h; sourceTree = ""; }; + D350F20C15A43BB100149E54 /* AssistantView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AssistantView.m; sourceTree = ""; }; + D35497FB15875372000081D8 /* ContactsListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsListView.h; sourceTree = ""; }; + D35497FC15875372000081D8 /* ContactsListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ContactsListView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; + D3549814158761CF000081D8 /* ContactsListTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsListTableView.h; sourceTree = ""; }; + D3549815158761D0000081D8 /* ContactsListTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ContactsListTableView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; + D354981E1587716B000081D8 /* StatusBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatusBarView.h; path = LinphoneUI/StatusBarView.h; sourceTree = ""; }; + D354981F1587716B000081D8 /* StatusBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatusBarView.m; path = LinphoneUI/StatusBarView.m; sourceTree = ""; }; D3554EC515CA79A900478841 /* XMLRPC.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = XMLRPC.xcodeproj; path = Utils/XMLRPC/XMLRPC.xcodeproj; sourceTree = ""; }; D35860D515B549B500513429 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = Utils/Utils.m; sourceTree = ""; }; - D35E7594159460560066B1C1 /* ChatViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatViewController.h; sourceTree = ""; }; - D35E7595159460560066B1C1 /* ChatViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatViewController.m; sourceTree = ""; }; - D35E759C159460B50066B1C1 /* SettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsViewController.h; sourceTree = ""; }; - D35E759D159460B50066B1C1 /* SettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsViewController.m; sourceTree = ""; }; + D35E7594159460560066B1C1 /* ChatsListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatsListView.h; sourceTree = ""; }; + D35E7595159460560066B1C1 /* ChatsListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatsListView.m; sourceTree = ""; }; + D35E759C159460B50066B1C1 /* SettingsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsView.h; sourceTree = ""; }; + D35E759D159460B50066B1C1 /* SettingsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsView.m; sourceTree = ""; }; D36C43C4158F2E5A0048BA40 /* UICallCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICallCell.h; sourceTree = ""; }; D36C43C5158F2E5A0048BA40 /* UICallCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICallCell.m; sourceTree = ""; }; D36FB2D31589EF7C0036F6F2 /* UIPauseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIPauseButton.h; sourceTree = ""; }; D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIPauseButton.m; sourceTree = ""; }; - D378906215AC373B00BD776C /* ContactDetailsLabelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsLabelViewController.h; sourceTree = ""; }; - D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsLabelViewController.m; sourceTree = ""; }; - D378AB2815DCDB480098505D /* ImagePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImagePickerViewController.h; sourceTree = ""; }; - D378AB2915DCDB490098505D /* ImagePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImagePickerViewController.m; sourceTree = ""; }; - D37C639915AADEF4009D0BAC /* ContactDetailsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsTableViewController.h; sourceTree = ""; }; - D37C639A15AADEF5009D0BAC /* ContactDetailsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsTableViewController.m; sourceTree = ""; }; + D378906215AC373B00BD776C /* ContactDetailsLabelView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsLabelView.h; sourceTree = ""; }; + D378906315AC373B00BD776C /* ContactDetailsLabelView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsLabelView.m; sourceTree = ""; }; + D378AB2815DCDB480098505D /* ImagePickerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImagePickerView.h; sourceTree = ""; }; + D378AB2915DCDB490098505D /* ImagePickerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImagePickerView.m; sourceTree = ""; }; + D37C639915AADEF4009D0BAC /* ContactDetailsTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsTableView.h; sourceTree = ""; }; + D37C639A15AADEF5009D0BAC /* ContactDetailsTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsTableView.m; sourceTree = ""; }; D37DC6BF1594AE1800B2A5EB /* LinphoneCoreSettingsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneCoreSettingsStore.h; sourceTree = ""; }; D37DC6C01594AE1800B2A5EB /* LinphoneCoreSettingsStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneCoreSettingsStore.m; sourceTree = ""; }; D37DC7171594AF3400B2A5EB /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; @@ -1005,40 +1004,38 @@ D3807FE515C2894A005BE9BC /* IASKSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSwitch.m; sourceTree = ""; }; D3807FE615C2894A005BE9BC /* IASKTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKTextField.h; sourceTree = ""; }; D3807FE715C2894A005BE9BC /* IASKTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKTextField.m; sourceTree = ""; }; - D380800415C28A7A005BE9BC /* UILinphone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UILinphone.m; sourceTree = ""; }; D380801115C29984005BE9BC /* ColorSpaceUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ColorSpaceUtilities.h; path = Utils/ColorSpaceUtilities.h; sourceTree = ""; }; D380801215C299D0005BE9BC /* ColorSpaceUtilites.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ColorSpaceUtilites.m; path = Utils/ColorSpaceUtilites.m; sourceTree = ""; }; D3A55FBA15877E5E003FD403 /* UIContactCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIContactCell.h; sourceTree = ""; }; D3A55FBB15877E5E003FD403 /* UIContactCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIContactCell.m; sourceTree = ""; }; - D3A8BB6E15A6C7D500F96BE5 /* UIChatRoomCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIChatRoomCell.h; sourceTree = ""; }; - D3A8BB6F15A6C7D500F96BE5 /* UIChatRoomCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIChatRoomCell.m; sourceTree = ""; }; + D3A8BB6E15A6C7D500F96BE5 /* UIChatConversationCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIChatConversationCell.h; sourceTree = ""; }; + D3A8BB6F15A6C7D500F96BE5 /* UIChatConversationCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIChatConversationCell.m; sourceTree = ""; }; D3C6526515AC1A8F0092A874 /* UIEditableTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIEditableTableViewCell.h; sourceTree = ""; }; D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIEditableTableViewCell.m; sourceTree = ""; }; - D3E84F3C15B018A600420DAC /* UILinphone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UILinphone.h; sourceTree = ""; }; D3EA53FB159850E80037DC6B /* LinphoneManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneManager.h; sourceTree = ""; }; D3EA53FC159850E80037DC6B /* LinphoneManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneManager.m; sourceTree = ""; }; - D3EA540B1598528B0037DC6B /* ChatTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatTableViewController.h; sourceTree = ""; }; - D3EA540C1598528B0037DC6B /* ChatTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatTableViewController.m; sourceTree = ""; }; + D3EA540B1598528B0037DC6B /* ChatsListTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatsListTableView.h; sourceTree = ""; }; + D3EA540C1598528B0037DC6B /* ChatsListTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatsListTableView.m; sourceTree = ""; }; D3EA540F159853750037DC6B /* UIChatCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIChatCell.h; sourceTree = ""; }; D3EA5410159853750037DC6B /* UIChatCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIChatCell.m; sourceTree = ""; }; - D3ED3E841586291B006C0DE4 /* UIMainBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIMainBar.h; sourceTree = ""; }; - D3ED3E851586291B006C0DE4 /* UIMainBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIMainBar.m; sourceTree = ""; }; - D3ED3EA41587334B006C0DE4 /* HistoryTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryTableViewController.h; sourceTree = ""; }; - D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = HistoryTableViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - D3ED3EB515873928006C0DE4 /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = ""; }; - D3ED3EB615873929006C0DE4 /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = HistoryViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; + D3ED3E841586291B006C0DE4 /* TabBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TabBarView.h; path = LinphoneUI/TabBarView.h; sourceTree = ""; }; + D3ED3E851586291B006C0DE4 /* TabBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TabBarView.m; path = LinphoneUI/TabBarView.m; sourceTree = ""; }; + D3ED3EA41587334B006C0DE4 /* HistoryListTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableView.h; sourceTree = ""; }; + D3ED3EA51587334C006C0DE4 /* HistoryListTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = HistoryListTableView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; + D3ED3EB515873928006C0DE4 /* HistoryListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListView.h; sourceTree = ""; }; + D3ED3EB615873929006C0DE4 /* HistoryListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = HistoryListView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; D3ED40151602172200BF332B /* HPGrowingTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HPGrowingTextView.h; sourceTree = ""; }; D3ED40161602172200BF332B /* HPGrowingTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HPGrowingTextView.m; sourceTree = ""; }; D3ED40171602172200BF332B /* HPTextViewInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HPTextViewInternal.h; sourceTree = ""; }; D3ED40181602172200BF332B /* HPTextViewInternal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HPTextViewInternal.m; sourceTree = ""; }; - D3F26BEE15986B71005F9CAB /* IncomingCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IncomingCallViewController.h; sourceTree = ""; }; - D3F26BEF15986B71005F9CAB /* IncomingCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IncomingCallViewController.m; sourceTree = ""; }; - D3F795D315A582800077328B /* ChatRoomViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatRoomViewController.h; sourceTree = ""; }; - D3F795D415A582800077328B /* ChatRoomViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatRoomViewController.m; sourceTree = ""; }; + D3F26BEE15986B71005F9CAB /* CallIncomingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallIncomingView.h; sourceTree = ""; }; + D3F26BEF15986B71005F9CAB /* CallIncomingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallIncomingView.m; sourceTree = ""; }; + D3F795D315A582800077328B /* ChatConversationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatConversationView.h; sourceTree = ""; }; + D3F795D415A582800077328B /* ChatConversationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatConversationView.m; sourceTree = ""; }; D3F7997F15BD32370018C273 /* TPMultiLayoutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TPMultiLayoutViewController.h; path = Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.h; sourceTree = ""; }; D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TPMultiLayoutViewController.m; path = Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m; sourceTree = ""; }; - D3F83EE91582021700336684 /* InCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InCallViewController.h; sourceTree = ""; }; - D3F83EEA1582021700336684 /* InCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InCallViewController.m; sourceTree = ""; }; + D3F83EE91582021700336684 /* CallView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallView.h; sourceTree = ""; }; + D3F83EEA1582021700336684 /* CallView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallView.m; sourceTree = ""; }; 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 = ""; }; D3F9A9EC15AF277D0045320F /* UACellBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UACellBackgroundView.h; path = Utils/UACellBackgroundView/UACellBackgroundView.h; sourceTree = ""; }; @@ -1058,74 +1055,74 @@ F088488F19FF8C44007FFCF3 /* fr */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIContactCell.strings; sourceTree = ""; }; F08F118419C09C6A007D70C2 /* liblinphoneTesterTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = liblinphoneTesterTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; F0938158188E629800A55DFA /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = ""; }; - F09548181883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ChatRoomViewController.xib; sourceTree = ""; }; - F09548191883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ChatViewController.xib; sourceTree = ""; }; - F095481A1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ContactDetailsLabelViewController.xib; sourceTree = ""; }; - F095481B1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ContactDetailsViewController.xib; sourceTree = ""; }; - F095481C1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ContactsViewController.xib; sourceTree = ""; }; - F095481D1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DialerViewController.xib; sourceTree = ""; }; - F09548201883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/HistoryDetailsViewController.xib; sourceTree = ""; }; - F09548211883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/HistoryViewController.xib; sourceTree = ""; }; - F09548221883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ImageViewController.xib; sourceTree = ""; }; - F09548231883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/InCallViewController.xib; sourceTree = ""; }; - F09548241883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/IncomingCallViewController.xib; sourceTree = ""; }; + F09548181883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ChatConversationView.xib; sourceTree = ""; }; + F09548191883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ChatsListView.xib; sourceTree = ""; }; + F095481A1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ContactDetailsLabelView.xib; sourceTree = ""; }; + F095481B1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ContactDetailsView.xib; sourceTree = ""; }; + F095481C1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ContactsListView.xib; sourceTree = ""; }; + F095481D1883F15300E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DialerView.xib; sourceTree = ""; }; + F09548201883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/HistoryDetailsView.xib; sourceTree = ""; }; + F09548211883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/HistoryListView.xib; sourceTree = ""; }; + F09548221883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ImageView.xib; sourceTree = ""; }; + F09548231883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/CallView.xib; sourceTree = ""; }; + F09548241883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/CallIncomingView.xib; sourceTree = ""; }; F09548281883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UICallCell.xib; sourceTree = ""; }; F09548291883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIConferenceHeader.xib; sourceTree = ""; }; - F095482C1883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIMainBar.xib; sourceTree = ""; }; - F095482E1883F15500E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AssistantViewController.xib; sourceTree = ""; }; + F095482C1883F15400E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/TabBarView.xib; sourceTree = ""; }; + F095482E1883F15500E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AssistantView.xib; sourceTree = ""; }; F09548301883F15500E8A69B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AssistantViews.xib; sourceTree = ""; }; - F09548311883F1EB00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatRoomViewController.strings; sourceTree = ""; }; - F09548321883F20A00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ChatRoomViewController.strings; sourceTree = ""; }; - F09548331883F25C00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatViewController.strings; sourceTree = ""; }; - F09548341883F25F00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ChatViewController.strings; sourceTree = ""; }; - F09548351883F28100E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactDetailsLabelViewController.strings; sourceTree = ""; }; - F09548361883F28400E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ContactDetailsLabelViewController.strings; sourceTree = ""; }; - F09548371883F29500E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactDetailsViewController.strings; sourceTree = ""; }; - F09548381883F29C00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ContactDetailsViewController.strings; sourceTree = ""; }; - F09548391883F2C500E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactsViewController.strings; sourceTree = ""; }; - F095483A1883F2CA00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ContactsViewController.strings; sourceTree = ""; }; - F095483B1883F2DE00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/DialerViewController.strings; sourceTree = ""; }; - F095483C1883F2E300E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/DialerViewController.strings; sourceTree = ""; }; - F09548411883F51600E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryViewController.strings; sourceTree = ""; }; - F09548421883F51B00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/HistoryViewController.strings; sourceTree = ""; }; - F09548431883F52600E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ImageViewController.strings; sourceTree = ""; }; - F09548441883F52900E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ImageViewController.strings; sourceTree = ""; }; - F09548451883F53F00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InCallViewController.strings; sourceTree = ""; }; - F09548461883F54200E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InCallViewController.strings; sourceTree = ""; }; - F09548471883F55300E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/IncomingCallViewController.strings; sourceTree = ""; }; - F09548481883F55800E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/IncomingCallViewController.strings; sourceTree = ""; }; + F09548311883F1EB00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatConversationView.strings; sourceTree = ""; }; + F09548321883F20A00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ChatConversationView.strings; sourceTree = ""; }; + F09548331883F25C00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatsListView.strings; sourceTree = ""; }; + F09548341883F25F00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ChatsListView.strings; sourceTree = ""; }; + F09548351883F28100E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactDetailsLabelView.strings; sourceTree = ""; }; + F09548361883F28400E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ContactDetailsLabelView.strings; sourceTree = ""; }; + F09548371883F29500E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactDetailsView.strings; sourceTree = ""; }; + F09548381883F29C00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ContactDetailsView.strings; sourceTree = ""; }; + F09548391883F2C500E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactsListView.strings; sourceTree = ""; }; + F095483A1883F2CA00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ContactsListView.strings; sourceTree = ""; }; + F095483B1883F2DE00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/DialerView.strings; sourceTree = ""; }; + F095483C1883F2E300E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/DialerView.strings; sourceTree = ""; }; + F09548411883F51600E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryListView.strings; sourceTree = ""; }; + F09548421883F51B00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/HistoryListView.strings; sourceTree = ""; }; + F09548431883F52600E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ImageView.strings; sourceTree = ""; }; + F09548441883F52900E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/ImageView.strings; sourceTree = ""; }; + F09548451883F53F00E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallView.strings; sourceTree = ""; }; + F09548461883F54200E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/CallView.strings; sourceTree = ""; }; + F09548471883F55300E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallIncomingView.strings; sourceTree = ""; }; + F09548481883F55800E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/CallIncomingView.strings; sourceTree = ""; }; F095484F1883F5D500E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIConferenceHeader.strings; sourceTree = ""; }; F09548501883F5D900E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/UIConferenceHeader.strings; sourceTree = ""; }; - F09548551883F61300E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIMainBar.strings; sourceTree = ""; }; - F09548561883F61600E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/UIMainBar.strings; sourceTree = ""; }; - F09548591883F67800E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantViewController.strings; sourceTree = ""; }; - F095485A1883F67B00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AssistantViewController.strings; sourceTree = ""; }; + F09548551883F61300E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/TabBarView.strings; sourceTree = ""; }; + F09548561883F61600E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/TabBarView.strings; sourceTree = ""; }; + F09548591883F67800E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantView.strings; sourceTree = ""; }; + F095485A1883F67B00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AssistantView.strings; sourceTree = ""; }; F095485D1883F6E700E8A69B /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantViews.strings; sourceTree = ""; }; F095485E1883F6EA00E8A69B /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AssistantViews.strings; sourceTree = ""; }; - F0AF06F01A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AboutViewController.strings; sourceTree = ""; }; - F0AF06F11A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ChatRoomViewController.strings; sourceTree = ""; }; - F0AF06F21A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ChatViewController.strings; sourceTree = ""; }; - F0AF06F31A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ContactDetailsLabelViewController.strings; sourceTree = ""; }; - F0AF06F41A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ContactDetailsViewController.strings; sourceTree = ""; }; - F0AF06F51A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ContactsViewController.strings; sourceTree = ""; }; - F0AF06F61A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/DialerViewController.strings; sourceTree = ""; }; - F0AF06F91A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/HistoryDetailsViewController.strings; sourceTree = ""; }; - F0AF06FA1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/HistoryViewController.strings; sourceTree = ""; }; - F0AF06FB1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ImageViewController.strings; sourceTree = ""; }; - F0AF06FC1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/InCallViewController.strings; sourceTree = ""; }; - F0AF06FD1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/IncomingCallViewController.strings; sourceTree = ""; }; + F0AF06F01A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AboutView.strings; sourceTree = ""; }; + F0AF06F11A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ChatConversationView.strings; sourceTree = ""; }; + F0AF06F21A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ChatsListView.strings; sourceTree = ""; }; + F0AF06F31A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ContactDetailsLabelView.strings; sourceTree = ""; }; + F0AF06F41A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ContactDetailsView.strings; sourceTree = ""; }; + F0AF06F51A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ContactsListView.strings; sourceTree = ""; }; + F0AF06F61A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/DialerView.strings; sourceTree = ""; }; + F0AF06F91A24BA760086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/HistoryDetailsView.strings; sourceTree = ""; }; + F0AF06FA1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/HistoryListView.strings; sourceTree = ""; }; + F0AF06FB1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/ImageView.strings; sourceTree = ""; }; + F0AF06FC1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/CallView.strings; sourceTree = ""; }; + F0AF06FD1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/CallIncomingView.strings; sourceTree = ""; }; F0AF07011A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UICallCell.strings; sourceTree = ""; }; F0AF07021A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIChatCell.strings; sourceTree = ""; }; - F0AF07031A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIChatRoomCell.strings; sourceTree = ""; }; - F0AF07041A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UICompositeViewController.strings; sourceTree = ""; }; + F0AF07031A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIChatConversationCell.strings; sourceTree = ""; }; + F0AF07041A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UICompositeView.strings; sourceTree = ""; }; F0AF07051A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIConferenceHeader.strings; sourceTree = ""; }; F0AF07061A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIContactCell.strings; sourceTree = ""; }; F0AF07091A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIHistoryCell.strings; sourceTree = ""; }; - F0AF070A1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIMainBar.strings; sourceTree = ""; }; - F0AF070C1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/UIStateBar.strings; sourceTree = ""; }; + F0AF070A1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/TabBarView.strings; sourceTree = ""; }; + F0AF070C1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/StatusBarView.strings; sourceTree = ""; }; F0AF070D1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/PhoneMainView.strings; sourceTree = ""; }; - F0AF070E1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/SettingsViewController.strings; sourceTree = ""; }; - F0AF070F1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AssistantViewController.strings; sourceTree = ""; }; + F0AF070E1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/SettingsView.strings; sourceTree = ""; }; + F0AF070F1A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AssistantView.strings; sourceTree = ""; }; F0AF07111A24BA770086C9C1 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AssistantViews.strings; sourceTree = ""; }; F0B026F21AA710AF00FF49F7 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; }; F0B89C2118DC89E30050B60E /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; @@ -1279,65 +1276,68 @@ 080E96DDFE201D6D7F000001 /* Classes */ = { isa = PBXGroup; children = ( - 22E0A81D111C44E100B04932 /* AboutViewController.h */, - 22E0A81C111C44E100B04932 /* AboutViewController.m */, - 636316D31A1DEBCB0009B839 /* AboutViewController.xib */, - D350F20B15A43BB100149E54 /* AssistantViewController.h */, - D350F20C15A43BB100149E54 /* AssistantViewController.m */, - D38187E015FE348A00C3EDCA /* AssistantViewController.xib */, + 22E0A81D111C44E100B04932 /* AboutView.h */, + 22E0A81C111C44E100B04932 /* AboutView.m */, + 636316D31A1DEBCB0009B839 /* AboutView.xib */, + D350F20B15A43BB100149E54 /* AssistantView.h */, + D350F20C15A43BB100149E54 /* AssistantView.m */, + D38187E015FE348A00C3EDCA /* AssistantView.xib */, D3D5126A160B3A8E00946DF8 /* AssistantViews.xib */, - D32B6E2715A5BC430033019F /* ChatRoomTableViewController.h */, - D32B6E2815A5BC430033019F /* ChatRoomTableViewController.m */, - D3F795D315A582800077328B /* ChatRoomViewController.h */, - D3F795D415A582800077328B /* ChatRoomViewController.m */, - D38187B015FE340100C3EDCA /* ChatRoomViewController.xib */, - D3EA540B1598528B0037DC6B /* ChatTableViewController.h */, - D3EA540C1598528B0037DC6B /* ChatTableViewController.m */, - D35E7594159460560066B1C1 /* ChatViewController.h */, - D35E7595159460560066B1C1 /* ChatViewController.m */, - D38187B415FE340500C3EDCA /* ChatViewController.xib */, + D3F26BEE15986B71005F9CAB /* CallIncomingView.h */, + D3F26BEF15986B71005F9CAB /* CallIncomingView.m */, + D38187DC15FE347700C3EDCA /* CallIncomingView.xib */, + 6346100D1B61409800548952 /* CallOutgoingView.h */, + 6346100E1B61409800548952 /* CallOutgoingView.m */, + 634610101B6140A500548952 /* CallOutgoingView.xib */, + D31AAF5C159B3919002C6B02 /* CallTableView.h */, + D31AAF5D159B3919002C6B02 /* CallTableView.m */, + D3F83EE91582021700336684 /* CallView.h */, + D3F83EEA1582021700336684 /* CallView.m */, + D381881C15FE3FCA00C3EDCA /* CallView.xib */, + D32B6E2715A5BC430033019F /* ChatConversationTableView.h */, + D32B6E2815A5BC430033019F /* ChatConversationTableView.m */, + D3F795D315A582800077328B /* ChatConversationView.h */, + D3F795D415A582800077328B /* ChatConversationView.m */, + D38187B015FE340100C3EDCA /* ChatConversationView.xib */, + D3EA540B1598528B0037DC6B /* ChatsListTableView.h */, + D3EA540C1598528B0037DC6B /* ChatsListTableView.m */, + D35E7594159460560066B1C1 /* ChatsListView.h */, + D35E7595159460560066B1C1 /* ChatsListView.m */, + D38187B415FE340500C3EDCA /* ChatsListView.xib */, D30BBD1215D3EFEB000F93DD /* ContactDetailsDelegate.h */, - D378906215AC373B00BD776C /* ContactDetailsLabelViewController.h */, - D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */, - D38187B815FE341B00C3EDCA /* ContactDetailsLabelViewController.xib */, - D37C639915AADEF4009D0BAC /* ContactDetailsTableViewController.h */, - D37C639A15AADEF5009D0BAC /* ContactDetailsTableViewController.m */, - D3128FDE15AABC7E00A2147A /* ContactDetailsViewController.h */, - D3128FDF15AABC7E00A2147A /* ContactDetailsViewController.m */, - D38187BC15FE342200C3EDCA /* ContactDetailsViewController.xib */, - D3549814158761CF000081D8 /* ContactsTableViewController.h */, - D3549815158761D0000081D8 /* ContactsTableViewController.m */, - D35497FB15875372000081D8 /* ContactsViewController.h */, - D35497FC15875372000081D8 /* ContactsViewController.m */, - D38187C015FE342800C3EDCA /* ContactsViewController.xib */, - 22F2508B107141E100AC9B3F /* DialerViewController.h */, - 22F2508C107141E100AC9B3F /* DialerViewController.m */, - D38187C415FE345B00C3EDCA /* DialerViewController.xib */, - 635775231B6673EC00C8B704 /* HistoryDetailsTableViewController.h */, - 635775241B6673EC00C8B704 /* HistoryDetailsTableViewController.m */, - C90FAA7615AF54E6002091CB /* HistoryDetailsViewController.h */, - C90FAA7715AF54E6002091CB /* HistoryDetailsViewController.m */, - D38187D015FE346700C3EDCA /* HistoryDetailsViewController.xib */, - D3ED3EA41587334B006C0DE4 /* HistoryTableViewController.h */, - D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */, - D3ED3EB515873928006C0DE4 /* HistoryViewController.h */, - D3ED3EB615873929006C0DE4 /* HistoryViewController.m */, - D38187D415FE346B00C3EDCA /* HistoryViewController.xib */, - D378AB2815DCDB480098505D /* ImagePickerViewController.h */, - D378AB2915DCDB490098505D /* ImagePickerViewController.m */, - 22405EFD1601C19000B92522 /* ImageViewController.h */, - 22405EFE1601C19100B92522 /* ImageViewController.m */, - D37EE11016035793003608A6 /* ImageViewController.xib */, + D378906215AC373B00BD776C /* ContactDetailsLabelView.h */, + D378906315AC373B00BD776C /* ContactDetailsLabelView.m */, + D38187B815FE341B00C3EDCA /* ContactDetailsLabelView.xib */, + D37C639915AADEF4009D0BAC /* ContactDetailsTableView.h */, + D37C639A15AADEF5009D0BAC /* ContactDetailsTableView.m */, + D3128FDE15AABC7E00A2147A /* ContactDetailsView.h */, + D3128FDF15AABC7E00A2147A /* ContactDetailsView.m */, + D38187BC15FE342200C3EDCA /* ContactDetailsView.xib */, + D3549814158761CF000081D8 /* ContactsListTableView.h */, + D3549815158761D0000081D8 /* ContactsListTableView.m */, + D35497FB15875372000081D8 /* ContactsListView.h */, + D35497FC15875372000081D8 /* ContactsListView.m */, + D38187C015FE342800C3EDCA /* ContactsListView.xib */, + 22F2508B107141E100AC9B3F /* DialerView.h */, + 22F2508C107141E100AC9B3F /* DialerView.m */, + D38187C415FE345B00C3EDCA /* DialerView.xib */, + 635775231B6673EC00C8B704 /* HistoryDetailsTableView.h */, + 635775241B6673EC00C8B704 /* HistoryDetailsTableView.m */, + C90FAA7615AF54E6002091CB /* HistoryDetailsView.h */, + C90FAA7715AF54E6002091CB /* HistoryDetailsView.m */, + D38187D015FE346700C3EDCA /* HistoryDetailsView.xib */, + D3ED3EA41587334B006C0DE4 /* HistoryListTableView.h */, + D3ED3EA51587334C006C0DE4 /* HistoryListTableView.m */, + D3ED3EB515873928006C0DE4 /* HistoryListView.h */, + D3ED3EB615873929006C0DE4 /* HistoryListView.m */, + D38187D415FE346B00C3EDCA /* HistoryListView.xib */, + D378AB2815DCDB480098505D /* ImagePickerView.h */, + D378AB2915DCDB490098505D /* ImagePickerView.m */, + 22405EFD1601C19000B92522 /* ImageView.h */, + 22405EFE1601C19100B92522 /* ImageView.m */, + D37EE11016035793003608A6 /* ImageView.xib */, 63E59A3D1ADE6ECB00646FB3 /* InAppProductsManager.h */, 63E59A3E1ADE70D900646FB3 /* InAppProductsManager.m */, - D31AAF5C159B3919002C6B02 /* InCallTableViewController.h */, - D31AAF5D159B3919002C6B02 /* InCallTableViewController.m */, - D3F83EE91582021700336684 /* InCallViewController.h */, - D3F83EEA1582021700336684 /* InCallViewController.m */, - D381881C15FE3FCA00C3EDCA /* InCallViewController.xib */, - D3F26BEE15986B71005F9CAB /* IncomingCallViewController.h */, - D3F26BEF15986B71005F9CAB /* IncomingCallViewController.m */, - D38187DC15FE347700C3EDCA /* IncomingCallViewController.xib */, F0C1F8EA1A277ADA009402C9 /* LaunchScreen.xib */, 1D3623240D0F684500981E51 /* LinphoneAppDelegate.h */, 1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */, @@ -1347,20 +1347,23 @@ D3EA53FC159850E80037DC6B /* LinphoneManager.m */, 2214EB7012F84668002A5394 /* LinphoneUI */, F0642EF019DAC891009DB336 /* MainStoryboard.storyboard */, - 6346100D1B61409800548952 /* OutgoingCallViewController.h */, - 6346100E1B61409800548952 /* OutgoingCallViewController.m */, - 634610101B6140A500548952 /* OutgoingCallViewController.xib */, D3F83F8C158229C500336684 /* PhoneMainView.h */, D3F83F8D15822ABD00336684 /* PhoneMainView.m */, 636316D71A1DECC90009B839 /* PhoneMainView.xib */, - D35E759C159460B50066B1C1 /* SettingsViewController.h */, - D35E759D159460B50066B1C1 /* SettingsViewController.m */, - 636316D61A1DEC650009B839 /* SettingsViewController.xib */, - 633756371B67BAF400E21BAD /* SideMenuTableViewController.h */, - 633756381B67BAF400E21BAD /* SideMenuTableViewController.m */, - 633756421B67D2B100E21BAD /* SideMenuViewController.h */, - 633756431B67D2B100E21BAD /* SideMenuViewController.m */, - 633756441B67D2B100E21BAD /* SideMenuViewController.xib */, + D35E759C159460B50066B1C1 /* SettingsView.h */, + D35E759D159460B50066B1C1 /* SettingsView.m */, + 636316D61A1DEC650009B839 /* SettingsView.xib */, + 633756371B67BAF400E21BAD /* SideMenuTableView.h */, + 633756381B67BAF400E21BAD /* SideMenuTableView.m */, + 633756421B67D2B100E21BAD /* SideMenuView.h */, + 633756431B67D2B100E21BAD /* SideMenuView.m */, + 633756441B67D2B100E21BAD /* SideMenuView.xib */, + D354981E1587716B000081D8 /* StatusBarView.h */, + D354981F1587716B000081D8 /* StatusBarView.m */, + 639CEAFF1A1DF4D9004DE38F /* StatusBarView.xib */, + D3ED3E841586291B006C0DE4 /* TabBarView.h */, + D3ED3E851586291B006C0DE4 /* TabBarView.m */, + D38187FB15FE355D00C3EDCA /* TabBarView.xib */, D326483415887D4400930C67 /* Utils */, 34216F3E1547EBCD00EA9777 /* VideoZoomHandler.h */, 34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */, @@ -1394,12 +1397,12 @@ D3EA540F159853750037DC6B /* UIChatCell.h */, D3EA5410159853750037DC6B /* UIChatCell.m */, 639CEB0B1A1DF4FA004DE38F /* UIChatCell.xib */, - D3A8BB6E15A6C7D500F96BE5 /* UIChatRoomCell.h */, - D3A8BB6F15A6C7D500F96BE5 /* UIChatRoomCell.m */, - 639CEB081A1DF4F1004DE38F /* UIChatRoomCell.xib */, - D31B4B1E159876C0002E6C72 /* UICompositeViewController.h */, - D31B4B1F159876C0002E6C72 /* UICompositeViewController.m */, - 639CEB051A1DF4EB004DE38F /* UICompositeViewController.xib */, + D3A8BB6E15A6C7D500F96BE5 /* UIChatConversationCell.h */, + D3A8BB6F15A6C7D500F96BE5 /* UIChatConversationCell.m */, + 639CEB081A1DF4F1004DE38F /* UIChatConversationCell.xib */, + D31B4B1E159876C0002E6C72 /* UICompositeView.h */, + D31B4B1F159876C0002E6C72 /* UICompositeView.m */, + 639CEB051A1DF4EB004DE38F /* UICompositeView.xib */, D3211BAD159C4EF00098460B /* UIConferenceHeader.h */, D3211BAE159C4EF00098460B /* UIConferenceHeader.m */, D38187F315FE354000C3EDCA /* UIConferenceHeader.xib */, @@ -1417,24 +1420,20 @@ 639CEB021A1DF4E4004DE38F /* UIHistoryCell.xib */, 636BC9951B5F921B00C754CE /* UIIconButton.h */, 636BC9961B5F921B00C754CE /* UIIconButton.m */, - D3E84F3C15B018A600420DAC /* UILinphone.h */, - D380800415C28A7A005BE9BC /* UILinphone.m */, + 634610041B61330300548952 /* UILabel+Boldify.h */, + 634610051B61330300548952 /* UILabel+Boldify.m */, D306459C1611EC2900BB571E /* UILoadingImageView.h */, D306459D1611EC2900BB571E /* UILoadingImageView.m */, - D3ED3E841586291B006C0DE4 /* UIMainBar.h */, - D3ED3E851586291B006C0DE4 /* UIMainBar.m */, - D38187FB15FE355D00C3EDCA /* UIMainBar.xib */, 2214EBF112F86360002A5394 /* UIMicroButton.h */, 2214EBF212F86360002A5394 /* UIMicroButton.m */, D36FB2D31589EF7C0036F6F2 /* UIPauseButton.h */, D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */, + 6313482E1B6F7B6600C6BDCB /* UIRoundBorderedButton.h */, + 6313482F1B6F7B6600C6BDCB /* UIRoundBorderedButton.m */, 63FB30331A680E73008CA393 /* UIRoundedImageView.h */, 63FB30341A680E73008CA393 /* UIRoundedImageView.m */, 22968A5D12F875C600588287 /* UISpeakerButton.h */, 22968A5E12F875C600588287 /* UISpeakerButton.m */, - D354981E1587716B000081D8 /* UIStateBar.h */, - D354981F1587716B000081D8 /* UIStateBar.m */, - 639CEAFF1A1DF4D9004DE38F /* UIStateBar.xib */, 630CF5551AF7CE1500539F7A /* UITextField+DoneButton.h */, 630CF5561AF7CE1500539F7A /* UITextField+DoneButton.m */, F03CA84118C72F1A0008889D /* UITextViewNoDefine.h */, @@ -1449,10 +1448,6 @@ D32460E5159D9AAD00BA7F3A /* UITransparentView.m */, 340751E5150F38FC00B89C47 /* UIVideoButton.h */, 340751E6150F38FD00B89C47 /* UIVideoButton.m */, - 634610041B61330300548952 /* UILabel+Boldify.h */, - 634610051B61330300548952 /* UILabel+Boldify.m */, - 6313482E1B6F7B6600C6BDCB /* UIRoundBorderedButton.h */, - 6313482F1B6F7B6600C6BDCB /* UIRoundBorderedButton.m */, ); path = LinphoneUI; sourceTree = ""; @@ -1615,15 +1610,15 @@ 63058A131B4E821E00EFAE36 /* Main_iPhone.strings */, 63058A151B4E821E00EFAE36 /* Main_iPad.storyboard */, 63058A171B4E821E00EFAE36 /* Main_iPhone.storyboard */, - 63058A191B4E821E00EFAE36 /* DetailViewController.h */, - 63058A1A1B4E821E00EFAE36 /* DetailViewController.m */, + 63058A191B4E821E00EFAE36 /* DetailView.h */, + 63058A1A1B4E821E00EFAE36 /* DetailView.m */, 63058A1C1B4E821E00EFAE36 /* LinphoneTester-Info.plist */, 63058A1D1B4E821E00EFAE36 /* LinphoneTester-Prefix.pch */, - 63058A1E1B4E821E00EFAE36 /* LogsViewController.h */, - 63058A1F1B4E821E00EFAE36 /* LogsViewController.m */, + 63058A1E1B4E821E00EFAE36 /* LogsView.h */, + 63058A1F1B4E821E00EFAE36 /* LogsView.m */, 63058A201B4E821E00EFAE36 /* main.m */, - 63058A211B4E821E00EFAE36 /* MasterViewController.h */, - 63058A221B4E821E00EFAE36 /* MasterViewController.m */, + 63058A211B4E821E00EFAE36 /* MasterView.h */, + 63058A221B4E821E00EFAE36 /* MasterView.m */, 63058A231B4E821E00EFAE36 /* TesterImages.xcassets */, ); path = LiblinphoneTester; @@ -2244,7 +2239,7 @@ files = ( 634CEE161B6630DB00D7A921 /* valid.png in Resources */, 634CEDC71B6630DB00D7A921 /* delete.png in Resources */, - 636316D11A1DEBCB0009B839 /* AboutViewController.xib in Resources */, + 636316D11A1DEBCB0009B839 /* AboutView.xib in Resources */, 634CEDF31B6630DB00D7A921 /* options_start_conference.png in Resources */, 634CEE071B6630DB00D7A921 /* speaker_default.png in Resources */, 634CEDD51B6630DB00D7A921 /* history_chat_indicator.png in Resources */, @@ -2261,7 +2256,7 @@ 634CEE051B6630DB00D7A921 /* security_pending.png in Resources */, 636316D91A1DECC90009B839 /* PhoneMainView.xib in Resources */, 634CEDC91B6630DB00D7A921 /* delete_field_over.png in Resources */, - 634610121B6140A500548952 /* OutgoingCallViewController.xib in Resources */, + 634610121B6140A500548952 /* CallOutgoingView.xib in Resources */, 634CEE021B6630DB00D7A921 /* resizable_textfield.png in Resources */, 634CEE081B6630DB00D7A921 /* speaker_selected.png in Resources */, 634CEDFE1B6630DB00D7A921 /* resizable_cancel_button.png in Resources */, @@ -2272,18 +2267,18 @@ 634CEDF51B6630DB00D7A921 /* pause_big_default.png in Resources */, 634CEDBB1B6630DB00D7A921 /* chat_start_body_disabled.png in Resources */, 63AADBEF1B6A0FF200AA16FD /* corner-right-top.png in Resources */, - D38187F815FE355D00C3EDCA /* UIMainBar.xib in Resources */, - D38187D115FE346B00C3EDCA /* HistoryViewController.xib in Resources */, + D38187F815FE355D00C3EDCA /* TabBarView.xib in Resources */, + D38187D115FE346B00C3EDCA /* HistoryListView.xib in Resources */, 634CEDA51B6630DB00D7A921 /* call_start_body_disabled.png in Resources */, - D38187BD15FE342800C3EDCA /* ContactsViewController.xib in Resources */, - 633756461B67D2B200E21BAD /* SideMenuViewController.xib in Resources */, + D38187BD15FE342800C3EDCA /* ContactsListView.xib in Resources */, + 633756461B67D2B200E21BAD /* SideMenuView.xib in Resources */, 634CED9B1B6630DB00D7A921 /* call_alt_start.png in Resources */, 631560351B69175F0047F4D3 /* color_B.png in Resources */, 634CEE031B6630DB00D7A921 /* security_ko.png in Resources */, 634CEDAE1B6630DB00D7A921 /* camera_switch_default.png in Resources */, 634CEDA11B6630DB00D7A921 /* call_quality_indicator_2.png in Resources */, 63AADBEC1B6A0FF200AA16FD /* corner-left-bottom.png in Resources */, - 639CEAFD1A1DF4D9004DE38F /* UIStateBar.xib in Resources */, + 639CEAFD1A1DF4D9004DE38F /* StatusBarView.xib in Resources */, 634CEE0F1B6630DB00D7A921 /* status_away_phone.png in Resources */, 634CEDA71B6630DB00D7A921 /* call_status_incoming.png in Resources */, 634CED9D1B6630DB00D7A921 /* call_back.png in Resources */, @@ -2305,7 +2300,7 @@ 634CEDAC1B6630DB00D7A921 /* camera_default.png in Resources */, 634CEDB61B6630DB00D7A921 /* chat_picture_default.png in Resources */, 634CEE0E1B6630DB00D7A921 /* status_away_desktop.png in Resources */, - D38187B115FE340500C3EDCA /* ChatViewController.xib in Resources */, + D38187B115FE340500C3EDCA /* ChatsListView.xib in Resources */, 631560381B69175F0047F4D3 /* color_E.png in Resources */, 63AADBFA1B6A0FF200AA16FD /* msg.wav in Resources */, 634CEDCE1B6630DB00D7A921 /* edit_list.png in Resources */, @@ -2314,7 +2309,7 @@ 634CED9E1B6630DB00D7A921 /* call_hangup.png in Resources */, 63AADC011B6A0FF200AA16FD /* assistant_linphone_existing.rc in Resources */, 631560341B69175F0047F4D3 /* color_A.png in Resources */, - 636316D41A1DEC650009B839 /* SettingsViewController.xib in Resources */, + 636316D41A1DEC650009B839 /* SettingsView.xib in Resources */, 63AADBFC1B6A0FF200AA16FD /* ring.wav in Resources */, D34F6F9E1594D3FB0095705B /* InAppSettings.bundle in Resources */, 634CEDFC1B6630DB00D7A921 /* quit_over.png in Resources */, @@ -2322,8 +2317,8 @@ 639CEB091A1DF4FA004DE38F /* UIChatCell.xib in Resources */, 634CEDE21B6630DB00D7A921 /* micro_default.png in Resources */, 63AADBF61B6A0FF200AA16FD /* linphonerc-factory in Resources */, - D38187D915FE347700C3EDCA /* IncomingCallViewController.xib in Resources */, - 639CEB031A1DF4EB004DE38F /* UICompositeViewController.xib in Resources */, + D38187D915FE347700C3EDCA /* CallIncomingView.xib in Resources */, + 639CEB031A1DF4EB004DE38F /* UICompositeView.xib in Resources */, 634CEE0D1B6630DB00D7A921 /* status_away.png in Resources */, 631560391B69175F0047F4D3 /* color_F.png in Resources */, 63AADBF21B6A0FF200AA16FD /* strech-top.png in Resources */, @@ -2334,22 +2329,22 @@ 63AADBF81B6A0FF200AA16FD /* linphonerc~ipad in Resources */, 634CEDFF1B6630DB00D7A921 /* resizable_chat_bubble_incoming.png in Resources */, 634CEDF21B6630DB00D7A921 /* options_selected.png in Resources */, - D38187DD15FE348A00C3EDCA /* AssistantViewController.xib in Resources */, + D38187DD15FE348A00C3EDCA /* AssistantView.xib in Resources */, 634CEDE61B6630DB00D7A921 /* numpad_2.png in Resources */, 634CEDC21B6630DB00D7A921 /* contact_add.png in Resources */, 634CEE111B6630DB00D7A921 /* status_busy_desktop.png in Resources */, 634CEE091B6630DB00D7A921 /* splashscreen.png in Resources */, - D38187AD15FE340100C3EDCA /* ChatRoomViewController.xib in Resources */, + D38187AD15FE340100C3EDCA /* ChatConversationView.xib in Resources */, 634CEDD91B6630DB00D7A921 /* incoming_call_unlock.png in Resources */, 634CEDD21B6630DB00D7A921 /* footer_history.png in Resources */, 634CEDD31B6630DB00D7A921 /* history_all_default.png in Resources */, 634CEDE11B6630DB00D7A921 /* menu.png in Resources */, 634CEDAB1B6630DB00D7A921 /* call_video_start.png in Resources */, - 639CEB061A1DF4F1004DE38F /* UIChatRoomCell.xib in Resources */, + 639CEB061A1DF4F1004DE38F /* UIChatConversationCell.xib in Resources */, 63AADBF71B6A0FF200AA16FD /* linphonerc-factory~ipad in Resources */, 634CEDD11B6630DB00D7A921 /* footer_dialer.png in Resources */, - D38187B915FE342200C3EDCA /* ContactDetailsViewController.xib in Resources */, - D38187B515FE341B00C3EDCA /* ContactDetailsLabelViewController.xib in Resources */, + D38187B915FE342200C3EDCA /* ContactDetailsView.xib in Resources */, + D38187B515FE341B00C3EDCA /* ContactDetailsLabelView.xib in Resources */, 634CEDF41B6630DB00D7A921 /* options_transfer_call.png in Resources */, 634CEDA41B6630DB00D7A921 /* call_start_body_default.png in Resources */, 6315603B1B69175F0047F4D3 /* color_H.png in Resources */, @@ -2368,7 +2363,7 @@ 63AADC001B6A0FF200AA16FD /* assistant_linphone_create.rc in Resources */, 63AADBEE1B6A0FF200AA16FD /* corner-right-bottom.png in Resources */, 634CEDE41B6630DB00D7A921 /* numpad_0.png in Resources */, - D38187CD15FE346700C3EDCA /* HistoryDetailsViewController.xib in Resources */, + D38187CD15FE346700C3EDCA /* HistoryDetailsView.xib in Resources */, 634CEDA21B6630DB00D7A921 /* call_quality_indicator_3.png in Resources */, 634CEDEF1B6630DB00D7A921 /* numpad_star.png in Resources */, 634CEDB01B6630DB00D7A921 /* camera_switch_over.png in Resources */, @@ -2390,15 +2385,15 @@ 634CEDDD1B6630DB00D7A921 /* led_inprogress.png in Resources */, 63AADBEB1B6A0FF200AA16FD /* background-launch.png in Resources */, 634CEDEE1B6630DB00D7A921 /* numpad_sharp.png in Resources */, - D38187C115FE345B00C3EDCA /* DialerViewController.xib in Resources */, + D38187C115FE345B00C3EDCA /* DialerView.xib in Resources */, 634CEDD61B6630DB00D7A921 /* history_missed_default.png in Resources */, - D37EE10D16035793003608A6 /* ImageViewController.xib in Resources */, + D37EE10D16035793003608A6 /* ImageView.xib in Resources */, 63AADBE81B6A0FF200AA16FD /* Localizable.strings in Resources */, D381881115FE3F0B00C3EDCA /* UICallCell.xib in Resources */, 634CEDCA1B6630DB00D7A921 /* deselect_all.png in Resources */, 631348321B6FA53300C6BDCB /* rootca.pem in Resources */, 634CEDC51B6630DB00D7A921 /* contacts_sip_default.png in Resources */, - D381881915FE3FCA00C3EDCA /* InCallViewController.xib in Resources */, + D381881915FE3FCA00C3EDCA /* CallView.xib in Resources */, 634CEDFA1B6630DB00D7A921 /* pause_small_over_selected.png in Resources */, D3D5126C160B3A8E00946DF8 /* AssistantViews.xib in Resources */, 634CEDA01B6630DB00D7A921 /* call_quality_indicator_1.png in Resources */, @@ -2547,12 +2542,12 @@ 63B81A0F1B57DA33009604A6 /* TPKeyboardAvoidingTableView.m in Sources */, 1D60589B0D05DD56006BFB54 /* main.m in Sources */, 1D3623260D0F684500981E51 /* LinphoneAppDelegate.m in Sources */, - 22F2508E107141E100AC9B3F /* DialerViewController.m in Sources */, - 633756451B67D2B200E21BAD /* SideMenuViewController.m in Sources */, - 22E0A822111C44E100B04932 /* AboutViewController.m in Sources */, + 22F2508E107141E100AC9B3F /* DialerView.m in Sources */, + 633756451B67D2B200E21BAD /* SideMenuView.m in Sources */, + 22E0A822111C44E100B04932 /* AboutView.m in Sources */, 634610061B61330300548952 /* UILabel+Boldify.m in Sources */, 2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */, - 633756391B67BAF400E21BAD /* SideMenuTableViewController.m in Sources */, + 633756391B67BAF400E21BAD /* SideMenuTableView.m in Sources */, 2214EB7A12F846B1002A5394 /* UICallButton.m in Sources */, 2214EB8912F84EBB002A5394 /* UIHangUpButton.m in Sources */, 630CF5571AF7CE1500539F7A /* UITextField+DoneButton.m in Sources */, @@ -2563,22 +2558,22 @@ 636BC9971B5F921B00C754CE /* UIIconButton.m in Sources */, 340751E7150F38FD00B89C47 /* UIVideoButton.m in Sources */, 34216F401547EBCD00EA9777 /* VideoZoomHandler.m in Sources */, - D3F83EEC1582021700336684 /* InCallViewController.m in Sources */, + D3F83EEC1582021700336684 /* CallView.m in Sources */, D3F83F8E15822ABE00336684 /* PhoneMainView.m in Sources */, - D3ED3E871586291E006C0DE4 /* UIMainBar.m in Sources */, - D3ED3EA71587334E006C0DE4 /* HistoryTableViewController.m in Sources */, - D3ED3EB81587392C006C0DE4 /* HistoryViewController.m in Sources */, - D35497FE15875372000081D8 /* ContactsViewController.m in Sources */, - D3549816158761D0000081D8 /* ContactsTableViewController.m in Sources */, - D35498211587716B000081D8 /* UIStateBar.m in Sources */, + D3ED3E871586291E006C0DE4 /* TabBarView.m in Sources */, + D3ED3EA71587334E006C0DE4 /* HistoryListTableView.m in Sources */, + D3ED3EB81587392C006C0DE4 /* HistoryListView.m in Sources */, + D35497FE15875372000081D8 /* ContactsListView.m in Sources */, + D3549816158761D0000081D8 /* ContactsListTableView.m in Sources */, + D35498211587716B000081D8 /* StatusBarView.m in Sources */, D3A55FBC15877E5E003FD403 /* UIContactCell.m in Sources */, D326483815887D5200930C67 /* OrderedDictionary.m in Sources */, D32648441588F6FC00930C67 /* UIToggleButton.m in Sources */, D36FB2D51589EF7C0036F6F2 /* UIPauseButton.m in Sources */, D31C9C98158A1CDF00756B45 /* UIHistoryCell.m in Sources */, D36C43C6158F2E5A0048BA40 /* UICallCell.m in Sources */, - D35E7597159460580066B1C1 /* ChatViewController.m in Sources */, - D35E759F159460B70066B1C1 /* SettingsViewController.m in Sources */, + D35E7597159460580066B1C1 /* ChatsListView.m in Sources */, + D35E759F159460B70066B1C1 /* SettingsView.m in Sources */, 63B81A101B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, F03CA84318C72F1A0008889D /* UITextViewNoDefine.m in Sources */, 63B81A0D1B57DA33009604A6 /* TPKeyboardAvoidingCollectionView.m in Sources */, @@ -2586,31 +2581,31 @@ 63CD4B4F1A5AAC8C00B84282 /* DTAlertView.m in Sources */, D3EA53FD159850E80037DC6B /* LinphoneManager.m in Sources */, 63B81A0E1B57DA33009604A6 /* TPKeyboardAvoidingScrollView.m in Sources */, - D3EA540D1598528B0037DC6B /* ChatTableViewController.m in Sources */, + D3EA540D1598528B0037DC6B /* ChatsListTableView.m in Sources */, D3EA5411159853750037DC6B /* UIChatCell.m in Sources */, - D3F26BF115986B73005F9CAB /* IncomingCallViewController.m in Sources */, - D31B4B21159876C0002E6C72 /* UICompositeViewController.m in Sources */, - D31AAF5E159B3919002C6B02 /* InCallTableViewController.m in Sources */, + D3F26BF115986B73005F9CAB /* CallIncomingView.m in Sources */, + D31B4B21159876C0002E6C72 /* UICompositeView.m in Sources */, + D31AAF5E159B3919002C6B02 /* CallTableView.m in Sources */, D3211BB0159C4EF10098460B /* UIConferenceHeader.m in Sources */, D32460E6159D9AAD00BA7F3A /* UITransparentView.m in Sources */, D32B9DFC15A2F131000B6DEC /* FastAddressBook.m in Sources */, D3196D3E15A32BD8007FEEBA /* UITransferButton.m in Sources */, - D350F20E15A43BB100149E54 /* AssistantViewController.m in Sources */, - D3F795D615A582810077328B /* ChatRoomViewController.m in Sources */, - D32B6E2915A5BC440033019F /* ChatRoomTableViewController.m in Sources */, - D3A8BB7015A6C7D500F96BE5 /* UIChatRoomCell.m in Sources */, - D3128FE115AABC7E00A2147A /* ContactDetailsViewController.m in Sources */, - D37C639B15AADEF6009D0BAC /* ContactDetailsTableViewController.m in Sources */, + D350F20E15A43BB100149E54 /* AssistantView.m in Sources */, + D3F795D615A582810077328B /* ChatConversationView.m in Sources */, + D32B6E2915A5BC440033019F /* ChatConversationTableView.m in Sources */, + D3A8BB7015A6C7D500F96BE5 /* UIChatConversationCell.m in Sources */, + D3128FE115AABC7E00A2147A /* ContactDetailsView.m in Sources */, + D37C639B15AADEF6009D0BAC /* ContactDetailsTableView.m in Sources */, 63E59A3F1ADE70D900646FB3 /* InAppProductsManager.m in Sources */, D3C6526715AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */, - D378906515AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */, + D378906515AC373B00BD776C /* ContactDetailsLabelView.m in Sources */, 631348301B6F7B6600C6BDCB /* UIRoundBorderedButton.m in Sources */, - C90FAA7915AF54E6002091CB /* HistoryDetailsViewController.m in Sources */, + C90FAA7915AF54E6002091CB /* HistoryDetailsView.m in Sources */, 63FB30351A680E73008CA393 /* UIRoundedImageView.m in Sources */, - 635775251B6673EC00C8B704 /* HistoryDetailsTableViewController.m in Sources */, + 635775251B6673EC00C8B704 /* HistoryDetailsTableView.m in Sources */, F066515517F9A02E0064280C /* UITransparentTVCell.m in Sources */, D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */, - 6346100F1B61409800548952 /* OutgoingCallViewController.m in Sources */, + 6346100F1B61409800548952 /* CallOutgoingView.m in Sources */, D35860D615B549B500513429 /* Utils.m in Sources */, D3F7998115BD32370018C273 /* TPMultiLayoutViewController.m in Sources */, D3807FBF15C28940005BE9BC /* DCRoundSwitch.m in Sources */, @@ -2631,11 +2626,10 @@ D3807FFE15C2894A005BE9BC /* IASKSlider.m in Sources */, D380800015C2894A005BE9BC /* IASKSwitch.m in Sources */, D380800215C2894A005BE9BC /* IASKTextField.m in Sources */, - D380800515C28A7A005BE9BC /* UILinphone.m in Sources */, D380801315C299D0005BE9BC /* ColorSpaceUtilites.m in Sources */, 637157A11B283FE200C91677 /* FileTransferDelegate.m in Sources */, - D378AB2A15DCDB4A0098505D /* ImagePickerViewController.m in Sources */, - 22405F001601C19200B92522 /* ImageViewController.m in Sources */, + D378AB2A15DCDB4A0098505D /* ImagePickerView.m in Sources */, + 22405F001601C19200B92522 /* ImageView.m in Sources */, D3ED40191602172200BF332B /* HPGrowingTextView.m in Sources */, D3ED401B1602172200BF332B /* HPTextViewInternal.m in Sources */, D37EE162160377D7003608A6 /* DTActionSheet.m in Sources */, @@ -2662,9 +2656,9 @@ 63058A2D1B4E821E00EFAE36 /* main.m in Sources */, 63058A241B4E821E00EFAE36 /* AppDelegate.m in Sources */, 632DA24D1B43EE9400EB356A /* Utils.m in Sources */, - 63058A2A1B4E821E00EFAE36 /* DetailViewController.m in Sources */, - 63058A2E1B4E821E00EFAE36 /* MasterViewController.m in Sources */, - 63058A2C1B4E821E00EFAE36 /* LogsViewController.m in Sources */, + 63058A2A1B4E821E00EFAE36 /* DetailView.m in Sources */, + 63058A2E1B4E821E00EFAE36 /* MasterView.m in Sources */, + 63058A2C1B4E821E00EFAE36 /* LogsView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2755,31 +2749,31 @@ name = InfoPlist.strings; sourceTree = ""; }; - 634610101B6140A500548952 /* OutgoingCallViewController.xib */ = { + 634610101B6140A500548952 /* CallOutgoingView.xib */ = { isa = PBXVariantGroup; children = ( 634610111B6140A500548952 /* Base */, ); - name = OutgoingCallViewController.xib; + name = CallOutgoingView.xib; sourceTree = ""; }; - 636316D31A1DEBCB0009B839 /* AboutViewController.xib */ = { + 636316D31A1DEBCB0009B839 /* AboutView.xib */ = { isa = PBXVariantGroup; children = ( 636316D21A1DEBCB0009B839 /* Base */, 63EF7FDC1A24B5810017A416 /* fr */, F0AF06F01A24BA760086C9C1 /* ar */, ); - name = AboutViewController.xib; + name = AboutView.xib; sourceTree = ""; }; - 636316D61A1DEC650009B839 /* SettingsViewController.xib */ = { + 636316D61A1DEC650009B839 /* SettingsView.xib */ = { isa = PBXVariantGroup; children = ( 636316D51A1DEC650009B839 /* Base */, F0AF070E1A24BA770086C9C1 /* ar */, ); - name = SettingsViewController.xib; + name = SettingsView.xib; sourceTree = ""; }; 636316D71A1DECC90009B839 /* PhoneMainView.xib */ = { @@ -2791,13 +2785,14 @@ name = PhoneMainView.xib; sourceTree = ""; }; - 639CEAFF1A1DF4D9004DE38F /* UIStateBar.xib */ = { + 639CEAFF1A1DF4D9004DE38F /* StatusBarView.xib */ = { isa = PBXVariantGroup; children = ( 639CEAFE1A1DF4D9004DE38F /* Base */, F0AF070C1A24BA770086C9C1 /* ar */, ); - name = UIStateBar.xib; + name = StatusBarView.xib; + path = LinphoneUI; sourceTree = ""; }; 639CEB021A1DF4E4004DE38F /* UIHistoryCell.xib */ = { @@ -2809,22 +2804,22 @@ name = UIHistoryCell.xib; sourceTree = ""; }; - 639CEB051A1DF4EB004DE38F /* UICompositeViewController.xib */ = { + 639CEB051A1DF4EB004DE38F /* UICompositeView.xib */ = { isa = PBXVariantGroup; children = ( 639CEB041A1DF4EB004DE38F /* Base */, F0AF07041A24BA770086C9C1 /* ar */, ); - name = UICompositeViewController.xib; + name = UICompositeView.xib; sourceTree = ""; }; - 639CEB081A1DF4F1004DE38F /* UIChatRoomCell.xib */ = { + 639CEB081A1DF4F1004DE38F /* UIChatConversationCell.xib */ = { isa = PBXVariantGroup; children = ( 639CEB071A1DF4F1004DE38F /* Base */, F0AF07031A24BA770086C9C1 /* ar */, ); - name = UIChatRoomCell.xib; + name = UIChatConversationCell.xib; sourceTree = ""; }; 639CEB0B1A1DF4FA004DE38F /* UIChatCell.xib */ = { @@ -2851,7 +2846,7 @@ name = Localizable.strings; sourceTree = ""; }; - D37EE11016035793003608A6 /* ImageViewController.xib */ = { + D37EE11016035793003608A6 /* ImageView.xib */ = { isa = PBXVariantGroup; children = ( F09548221883F15400E8A69B /* Base */, @@ -2859,10 +2854,10 @@ F09548441883F52900E8A69B /* ru */, F0AF06FB1A24BA770086C9C1 /* ar */, ); - name = ImageViewController.xib; + name = ImageView.xib; sourceTree = ""; }; - D38187B015FE340100C3EDCA /* ChatRoomViewController.xib */ = { + D38187B015FE340100C3EDCA /* ChatConversationView.xib */ = { isa = PBXVariantGroup; children = ( F09548181883F15300E8A69B /* Base */, @@ -2870,10 +2865,10 @@ F09548321883F20A00E8A69B /* ru */, F0AF06F11A24BA760086C9C1 /* ar */, ); - name = ChatRoomViewController.xib; + name = ChatConversationView.xib; sourceTree = ""; }; - D38187B415FE340500C3EDCA /* ChatViewController.xib */ = { + D38187B415FE340500C3EDCA /* ChatsListView.xib */ = { isa = PBXVariantGroup; children = ( F09548191883F15300E8A69B /* Base */, @@ -2881,10 +2876,10 @@ F09548341883F25F00E8A69B /* ru */, F0AF06F21A24BA760086C9C1 /* ar */, ); - name = ChatViewController.xib; + name = ChatsListView.xib; sourceTree = ""; }; - D38187B815FE341B00C3EDCA /* ContactDetailsLabelViewController.xib */ = { + D38187B815FE341B00C3EDCA /* ContactDetailsLabelView.xib */ = { isa = PBXVariantGroup; children = ( F095481A1883F15300E8A69B /* Base */, @@ -2892,10 +2887,10 @@ F09548361883F28400E8A69B /* ru */, F0AF06F31A24BA760086C9C1 /* ar */, ); - name = ContactDetailsLabelViewController.xib; + name = ContactDetailsLabelView.xib; sourceTree = ""; }; - D38187BC15FE342200C3EDCA /* ContactDetailsViewController.xib */ = { + D38187BC15FE342200C3EDCA /* ContactDetailsView.xib */ = { isa = PBXVariantGroup; children = ( F095481B1883F15300E8A69B /* Base */, @@ -2903,10 +2898,10 @@ F09548381883F29C00E8A69B /* ru */, F0AF06F41A24BA760086C9C1 /* ar */, ); - name = ContactDetailsViewController.xib; + name = ContactDetailsView.xib; sourceTree = ""; }; - D38187C015FE342800C3EDCA /* ContactsViewController.xib */ = { + D38187C015FE342800C3EDCA /* ContactsListView.xib */ = { isa = PBXVariantGroup; children = ( F095481C1883F15300E8A69B /* Base */, @@ -2914,10 +2909,10 @@ F095483A1883F2CA00E8A69B /* ru */, F0AF06F51A24BA760086C9C1 /* ar */, ); - name = ContactsViewController.xib; + name = ContactsListView.xib; sourceTree = ""; }; - D38187C415FE345B00C3EDCA /* DialerViewController.xib */ = { + D38187C415FE345B00C3EDCA /* DialerView.xib */ = { isa = PBXVariantGroup; children = ( F095481D1883F15300E8A69B /* Base */, @@ -2925,10 +2920,10 @@ F095483C1883F2E300E8A69B /* ru */, F0AF06F61A24BA760086C9C1 /* ar */, ); - name = DialerViewController.xib; + name = DialerView.xib; sourceTree = ""; }; - D38187D015FE346700C3EDCA /* HistoryDetailsViewController.xib */ = { + D38187D015FE346700C3EDCA /* HistoryDetailsView.xib */ = { isa = PBXVariantGroup; children = ( F09548201883F15400E8A69B /* Base */, @@ -2936,10 +2931,10 @@ 636316DB1A1DEDD80009B839 /* ru */, F0AF06F91A24BA760086C9C1 /* ar */, ); - name = HistoryDetailsViewController.xib; + name = HistoryDetailsView.xib; sourceTree = ""; }; - D38187D415FE346B00C3EDCA /* HistoryViewController.xib */ = { + D38187D415FE346B00C3EDCA /* HistoryListView.xib */ = { isa = PBXVariantGroup; children = ( F09548211883F15400E8A69B /* Base */, @@ -2947,10 +2942,10 @@ F09548421883F51B00E8A69B /* ru */, F0AF06FA1A24BA770086C9C1 /* ar */, ); - name = HistoryViewController.xib; + name = HistoryListView.xib; sourceTree = ""; }; - D38187DC15FE347700C3EDCA /* IncomingCallViewController.xib */ = { + D38187DC15FE347700C3EDCA /* CallIncomingView.xib */ = { isa = PBXVariantGroup; children = ( F09548241883F15400E8A69B /* Base */, @@ -2958,10 +2953,10 @@ F09548481883F55800E8A69B /* ru */, F0AF06FD1A24BA770086C9C1 /* ar */, ); - name = IncomingCallViewController.xib; + name = CallIncomingView.xib; sourceTree = ""; }; - D38187E015FE348A00C3EDCA /* AssistantViewController.xib */ = { + D38187E015FE348A00C3EDCA /* AssistantView.xib */ = { isa = PBXVariantGroup; children = ( F095482E1883F15500E8A69B /* Base */, @@ -2969,7 +2964,7 @@ F095485A1883F67B00E8A69B /* ru */, F0AF070F1A24BA770086C9C1 /* ar */, ); - name = AssistantViewController.xib; + name = AssistantView.xib; sourceTree = ""; }; D38187F315FE354000C3EDCA /* UIConferenceHeader.xib */ = { @@ -2983,7 +2978,7 @@ name = UIConferenceHeader.xib; sourceTree = ""; }; - D38187FB15FE355D00C3EDCA /* UIMainBar.xib */ = { + D38187FB15FE355D00C3EDCA /* TabBarView.xib */ = { isa = PBXVariantGroup; children = ( F095482C1883F15400E8A69B /* Base */, @@ -2991,7 +2986,8 @@ F09548561883F61600E8A69B /* ru */, F0AF070A1A24BA770086C9C1 /* ar */, ); - name = UIMainBar.xib; + name = TabBarView.xib; + path = LinphoneUI; sourceTree = ""; }; D381881415FE3F0B00C3EDCA /* UICallCell.xib */ = { @@ -3005,7 +3001,7 @@ name = UICallCell.xib; sourceTree = ""; }; - D381881C15FE3FCA00C3EDCA /* InCallViewController.xib */ = { + D381881C15FE3FCA00C3EDCA /* CallView.xib */ = { isa = PBXVariantGroup; children = ( F09548231883F15400E8A69B /* Base */, @@ -3013,7 +3009,7 @@ F09548461883F54200E8A69B /* ru */, F0AF06FC1A24BA770086C9C1 /* ar */, ); - name = InCallViewController.xib; + name = CallView.xib; sourceTree = ""; }; D3D5126A160B3A8E00946DF8 /* AssistantViews.xib */ = {