Continue iPad work

Clean & fix memory leaks
This commit is contained in:
Yann Diorcet 2012-07-31 11:24:04 +02:00
parent 7984dc6931
commit af863e6e8e
25 changed files with 258 additions and 411 deletions

View file

@ -74,7 +74,7 @@ static UICompositeViewDescription *compositeDescription = nil;
tabBar:@"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:false
landscapeMode:[LinphoneManager runningOnIpad]
portraitMode:true];
}
return compositeDescription;

View file

@ -93,7 +93,7 @@ static UICompositeViewDescription *compositeDescription = nil;
tabBar: @"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:false
landscapeMode:[LinphoneManager runningOnIpad]
portraitMode:true];
}
return compositeDescription;

View file

@ -18,18 +18,25 @@
*/
#import <UIKit/UIKit.h>
#import "UICompositeViewController.h"
#import "UIModalViewController.h"
@protocol ContactDetailsLabelViewDelegate <NSObject>
@interface ContactDetailsLabelViewController : UIModalViewController<UITableViewDelegate, UITableViewDataSource> {
- (void)changeContactDetailsLabel:(NSString*)label;
@end
@interface ContactDetailsLabelViewController : UIViewController<UITableViewDelegate, UITableViewDataSource, UICompositeViewDelegate> {
NSDictionary *dataList;
UITableView *tableView;
NSString *selectedData;
id<ContactDetailsLabelViewDelegate> delegate;
}
@property (nonatomic, copy) NSString *selectedData;
@property (nonatomic, retain) NSDictionary *dataList;
@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) id<ContactDetailsLabelViewDelegate> delegate;
- (IBAction)onBackClick:(id)event;

View file

@ -21,12 +21,26 @@
#import "UACellBackgroundView.h"
#import "UILinphone.h"
#import "PhoneMainView.h"
@implementation ContactDetailsLabelViewController
@synthesize dataList;
@synthesize tableView;
@synthesize selectedData;
@synthesize delegate;
#pragma mark - Lifecycle Functions
- (void)dealloc {
[selectedData release];
[dataList release];
[tableView release];
[delegate release];
[super dealloc];
}
#pragma mark - ViewController Functions
@ -37,6 +51,34 @@
}
#pragma mark - UICompositeViewDelegate Functions
static UICompositeViewDescription *compositeDescription = nil;
+ (UICompositeViewDescription *)compositeViewDescription {
if(compositeDescription == nil) {
compositeDescription = [[UICompositeViewDescription alloc] init:@"ContactDetailsLabel"
content:@"ContactDetailsLabelViewController"
stateBar:nil
stateBarEnabled:false
tabBar:@"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:true
portraitMode:true];
}
return compositeDescription;
}
#pragma mark -
- (void)dismiss {
if([[[PhoneMainView instance] currentView] equal:[ContactDetailsLabelViewController compositeViewDescription]]) {
[[PhoneMainView instance] popCurrentView];
}
}
#pragma mark - Property Functions
- (void)setDataList:(NSDictionary *)adatalist {
@ -56,6 +98,7 @@
[tableView reloadData];
}
#pragma mark - UITableViewDataSource Functions
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
@ -90,7 +133,8 @@
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString* key = [[dataList allKeys] objectAtIndex:[indexPath row]];
[self setSelectedData:key];
[self dismiss:key];
[delegate changeContactDetailsLabel:key];
[self dismiss];
}

View file

@ -61,7 +61,7 @@
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="868223268">
<reference key="NSNextResponder" ref="786589861"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">290</int>
<string key="NSFrameSize">{320, 58}</string>
<reference key="NSSuperview" ref="786589861"/>
<reference key="NSWindow"/>
@ -133,7 +133,6 @@
<string key="NSFrame">{{0, 59}, {320, 401}}</string>
<reference key="NSSuperview" ref="1031663480"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">10</int>

View file

@ -24,11 +24,10 @@
#import "UIContactDetailsHeader.h"
#import "UIContactDetailsFooter.h"
@interface ContactDetailsTableViewController : UITableViewController<UIModalViewDelegate, UITextFieldDelegate> {
@interface ContactDetailsTableViewController : UITableViewController<ContactDetailsLabelViewDelegate, UITextFieldDelegate> {
@private
ABRecordRef contact;
NSMutableArray *dataCache;
ContactDetailsLabelViewController *contactDetailsLabelViewController;
NSMutableArray *labelArray;
NSIndexPath *editingIndexPath;
@public

View file

@ -20,7 +20,6 @@
#import "ContactDetailsTableViewController.h"
#import "PhoneMainView.h"
#import "UIEditableTableViewCell.h"
#import "UIView+ModalStack.h"
#import "UACellBackgroundView.h"
#import "UILinphone.h"
#import "OrderedDictionary.h"
@ -61,7 +60,6 @@
#pragma mark - Lifecycle Functions
- (void)initContactDetailsTableViewController {
dataCache = [[NSMutableArray alloc] init];
labelArray = [[NSMutableArray alloc] initWithObjects:
@"Linphone",
@ -70,6 +68,7 @@
[NSString stringWithString:(NSString*)kABPersonPhoneMainLabel], nil];
headerController = [[UIContactDetailsHeader alloc] init];
footerController = [[UIContactDetailsFooter alloc] init];
editingIndexPath = nil;
}
- (id)init {
@ -88,7 +87,13 @@
return self;
}
- (void)dealloc {
- (void)dealloc {
if(contact != nil && ABRecordGetRecordID(contact) == kABRecordInvalidID) {
CFRelease(contact);
}
if(editingIndexPath != nil) {
[editingIndexPath release];
}
[labelArray release];
[dataCache release];
[headerController release];
@ -105,27 +110,8 @@
[self.tableView setBackgroundColor:[UIColor clearColor]]; // Can't do it in Xib: issue with ios4
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if(contactDetailsLabelViewController != nil) {
[[[self view] superview] removeModalView:[contactDetailsLabelViewController view]];
[editingIndexPath release];
editingIndexPath = nil;
[contactDetailsLabelViewController release];
contactDetailsLabelViewController = nil;
}
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
if(contact != nil && ABRecordGetRecordID(contact) == kABRecordInvalidID) {
CFRelease(contact);
}
contact = nil;
}
@ -344,6 +330,9 @@
#pragma mark - Property Functions
- (void)setContact:(ABRecordRef)acontact {
if(contact != nil && ABRecordGetRecordID(contact) == kABRecordInvalidID) {
CFRelease(contact);
}
self->contact = acontact;
[self loadData];
}
@ -490,13 +479,16 @@
CFRelease(lMap);
}
if(key != nil) {
contactDetailsLabelViewController = [[ContactDetailsLabelViewController alloc] initWithNibName:@"ContactDetailsLabelViewController"
bundle:[NSBundle mainBundle]];
[contactDetailsLabelViewController setSelectedData:key];
[contactDetailsLabelViewController setDataList:[self getLocalizedLabels]];
[contactDetailsLabelViewController setModalDelegate:self];
if(editingIndexPath != nil) {
[editingIndexPath release];
}
editingIndexPath = [indexPath copy];
[[[self view] superview] addModalView:[contactDetailsLabelViewController view]];
ContactDetailsLabelViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ContactDetailsLabelViewController compositeViewDescription] push:TRUE], ContactDetailsLabelViewController);
if(controller != nil) {
[controller setDataList:[self getLocalizedLabels]];
[controller setSelectedData:key];
[controller setDelegate:self];
}
}
}
}
@ -604,11 +596,9 @@
}
#pragma mark - UIModalViewDeletage Functions
#pragma mark - ContactDetailsLabelDelegate Functions
- (void)modalViewDismiss:(UIModalViewController*)controller value:(id)value {
[[[self view]superview] removeModalView:[contactDetailsLabelViewController view]];
contactDetailsLabelViewController = nil;
- (void)changeContactDetailsLabel:(NSString *)value {
if(value != nil) {
NSMutableArray *sectionDict = [dataCache objectAtIndex:[editingIndexPath section]];
Entry *entry = [sectionDict objectAtIndex:[editingIndexPath row]];
@ -617,7 +607,7 @@
ABMutableMultiValueRef lMap = ABMultiValueCreateMutableCopy(lcMap);
CFRelease(lcMap);
int index = ABMultiValueGetIndexForIdentifier(lMap, [entry identifier]);
ABMultiValueReplaceLabelAtIndex(lMap, (CFStringRef)((NSString*)value), index);
ABMultiValueReplaceLabelAtIndex(lMap, (CFStringRef)(value), index);
ABRecordSetValue(contact, kABPersonPhoneProperty, lMap, nil);
CFRelease(lMap);
} else if([editingIndexPath section] == 1) {
@ -625,7 +615,7 @@
ABMutableMultiValueRef lMap = ABMultiValueCreateMutableCopy(lcMap);
CFRelease(lcMap);
int index = ABMultiValueGetIndexForIdentifier(lMap, [entry identifier]);
ABMultiValueReplaceLabelAtIndex(lMap, (CFStringRef)((NSString*)value), index);
ABMultiValueReplaceLabelAtIndex(lMap, (CFStringRef)(value), index);
ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, nil);
CFRelease(lMap);
}

View file

@ -141,6 +141,8 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
- (void)newContact {
[LinphoneLogger logc:LinphoneLoggerLog format:"New contact"];
self->contact = NULL;
[self resetData];
self->contact = ABPersonCreate();
[tableController setContact:self->contact];
[self enableEdit:FALSE];
@ -149,6 +151,8 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
- (void)newContact:(NSString*)address {
[LinphoneLogger logc:LinphoneLoggerLog format:"New contact"];
self->contact = NULL;
[self resetData];
self->contact = ABPersonCreate();
[tableController setContact:self->contact];
[tableController addSipField:address];
@ -158,6 +162,8 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
- (void)editContact:(ABRecordRef)acontact {
[LinphoneLogger logc:LinphoneLoggerLog format:"Edit contact %p", acontact];
self->contact = NULL;
[self resetData];
self->contact = ABAddressBookGetPersonWithRecordID(addressBook, ABRecordGetRecordID(acontact));
[tableController setContact:self->contact];
[self enableEdit:FALSE];
@ -166,6 +172,8 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
- (void)editContact:(ABRecordRef)acontact address:(NSString*)address {
[LinphoneLogger logc:LinphoneLoggerLog format:"Edit contact %p", acontact];
self->contact = NULL;
[self resetData];
self->contact = ABAddressBookGetPersonWithRecordID(addressBook, ABRecordGetRecordID(acontact));
[tableController setContact:self->contact];
[tableController addSipField:address];
@ -178,6 +186,8 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
- (void)setContact:(ABRecordRef)acontact {
[LinphoneLogger logc:LinphoneLoggerLog format:"Set contact %p", acontact];
self->contact = NULL;
[self resetData];
self->contact = ABAddressBookGetPersonWithRecordID(addressBook, ABRecordGetRecordID(acontact));
[tableController setContact:self->contact];
[self disableEdit:FALSE];
@ -211,9 +221,6 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
[tableController viewWillDisappear:animated];
}
[self disableEdit:FALSE];
self->contact = NULL;
[self resetData];
}
- (void)viewWillAppear:(BOOL)animated {
@ -257,7 +264,7 @@ static UICompositeViewDescription *compositeDescription = nil;
tabBar:@"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:false
landscapeMode:[LinphoneManager runningOnIpad]
portraitMode:true];
}
return compositeDescription;

View file

@ -109,7 +109,7 @@ static UICompositeViewDescription *compositeDescription = nil;
tabBar:@"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:false
landscapeMode:[LinphoneManager runningOnIpad]
portraitMode:true];
}
return compositeDescription;

View file

@ -69,7 +69,7 @@ static UICompositeViewDescription *compositeDescription = nil;
tabBar:@"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:false
landscapeMode:[LinphoneManager runningOnIpad]
portraitMode:true];
}
return compositeDescription;

View file

@ -65,7 +65,7 @@ static UICompositeViewDescription *compositeDescription = nil;
tabBar:@"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:false
landscapeMode:[LinphoneManager runningOnIpad]
portraitMode:true];
}
return compositeDescription;

View file

@ -19,26 +19,29 @@
#import <UIKit/UIKit.h>
#import "UIModalViewController.h"
#import "UICompositeViewController.h"
#include "linphonecore.h"
typedef enum _IncomingCallStates {
IncomingCall_Accepted,
IncomingCall_Decline,
IncomingCall_Aborted
} IncomingCallStats;
@protocol IncomingCallViewDelegate <NSObject>
@interface IncomingCallViewController : UIModalViewController {
- (void)incomingCallAccepted:(LinphoneCall*)call;
- (void)incomingCallDeclined:(LinphoneCall*)call;
- (void)incomingCallAborted:(LinphoneCall*)call;
@end
@interface IncomingCallViewController : UIViewController <UICompositeViewDelegate> {
@private
UILabel* addressLabel;
UIImageView* avatarImage;
LinphoneCall *call;
id<IncomingCallViewDelegate> delegate;
}
@property (nonatomic, retain) IBOutlet UILabel* addressLabel;
@property (nonatomic, retain) IBOutlet UIImageView* avatarImage;
@property (nonatomic, assign) LinphoneCall* call;
@property (nonatomic, retain) id<IncomingCallViewDelegate> delegate;
- (IBAction)onAcceptClick:(id) event;
- (IBAction)onDeclineClick:(id) event;

View file

@ -20,13 +20,14 @@
#import "IncomingCallViewController.h"
#import "LinphoneManager.h"
#import "FastAddressBook.h"
#import "PhoneMainView.h"
@implementation IncomingCallViewController
@synthesize addressLabel;
@synthesize avatarImage;
@synthesize call;
@synthesize delegate;
#pragma mark - Lifecycle Functions
@ -37,6 +38,9 @@
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[avatarImage release];
[addressLabel release];
[delegate release];
[super dealloc];
}
@ -50,7 +54,6 @@
selector:@selector(callUpdateEvent:)
name:@"LinphoneCallUpdate"
object:nil];
[self callUpdate:call state:linphone_call_get_state(call)];
}
- (void)viewWillDisappear:(BOOL)animated {
@ -62,6 +65,25 @@
}
#pragma mark - UICompositeViewDelegate Functions
static UICompositeViewDescription *compositeDescription = nil;
+ (UICompositeViewDescription *)compositeViewDescription {
if(compositeDescription == nil) {
compositeDescription = [[UICompositeViewDescription alloc] init:@"IncomingCall"
content:@"IncomingCallViewController"
stateBar:nil
stateBarEnabled:false
tabBar:nil
tabBarEnabled:false
fullscreen:false
landscapeMode:true
portraitMode:true];
}
return compositeDescription;
}
#pragma mark - Event Functions
@ -76,16 +98,16 @@
- (void)callUpdate:(LinphoneCall *)acall state:(LinphoneCallState)astate {
if(call == acall && (astate == LinphoneCallEnd || astate == LinphoneCallError)) {
[self dismiss: [NSNumber numberWithInt: IncomingCall_Aborted]];
[delegate incomingCallAborted:call];
[self dismiss];
}
}
#pragma mark - Property Functions
- (void)setCall:(LinphoneCall*)acall {
call = acall;
[self update];
- (void)dismiss {
if([[[PhoneMainView instance] currentView] equal:[IncomingCallViewController compositeViewDescription]]) {
[[PhoneMainView instance] popCurrentView];
}
}
- (void)update {
@ -131,21 +153,26 @@
[addressLabel setText:address];
}
- (LinphoneCall*) getCall {
return call;
#pragma mark - Property Functions
- (void)setCall:(LinphoneCall*)acall {
call = acall;
[self update];
[self callUpdate:call state:linphone_call_get_state(call)];
}
#pragma mark - Action Functions
- (IBAction)onAcceptClick:(id)event {
linphone_core_accept_call([LinphoneManager getLc], call);
[self dismiss: [NSNumber numberWithInt:IncomingCall_Accepted]];
[self dismiss];
[delegate incomingCallAccepted:call];
}
- (IBAction)onDeclineClick:(id)event {
linphone_core_terminate_call([LinphoneManager getLc], call);
[self dismiss: [NSNumber numberWithInt:IncomingCall_Decline]];
[self dismiss];
[delegate incomingCallDeclined:call];
}
@end

View file

@ -33,15 +33,15 @@
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="191373211">
<object class="IBUIView" id="311908381">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="915319957">
<reference key="NSNextResponder" ref="191373211"/>
<reference key="NSNextResponder" ref="311908381"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
<reference key="NSSuperview" ref="191373211"/>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview" ref="311908381"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="735497316"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
@ -56,12 +56,12 @@
</object>
</object>
<object class="IBUIView" id="735497316">
<reference key="NSNextResponder" ref="191373211"/>
<reference key="NSNextResponder" ref="311908381"/>
<int key="NSvFlags">290</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="131610915">
<reference key="NSNextResponder" ref="735497316"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">290</int>
<string key="NSFrame">{{0, 49}, {320, 63}}</string>
<reference key="NSSuperview" ref="735497316"/>
<reference key="NSWindow"/>
@ -76,7 +76,7 @@
</object>
<object class="IBUIImageView" id="1023112121">
<reference key="NSNextResponder" ref="735497316"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">290</int>
<string key="NSFrameSize">{320, 68}</string>
<reference key="NSSuperview" ref="735497316"/>
<reference key="NSWindow"/>
@ -4512,7 +4512,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
</object>
<object class="IBUIImageView" id="651495339">
<reference key="NSNextResponder" ref="735497316"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<string key="NSFrame">{{0, 96}, {320, 262}}</string>
<reference key="NSSuperview" ref="735497316"/>
<reference key="NSWindow"/>
@ -4527,7 +4527,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
</object>
<object class="IBUIImageView" id="632401698">
<reference key="NSNextResponder" ref="735497316"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<string key="NSFrame">{{80, 113}, {160, 170}}</string>
<reference key="NSSuperview" ref="735497316"/>
<reference key="NSWindow"/>
@ -4541,8 +4541,8 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
</object>
</object>
</array>
<string key="NSFrame">{{0, 20}, {320, 395}}</string>
<reference key="NSSuperview" ref="191373211"/>
<string key="NSFrameSize">{320, 395}</string>
<reference key="NSSuperview" ref="311908381"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1023112121"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
@ -4550,7 +4550,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="442322210">
<reference key="NSNextResponder" ref="191373211"/>
<reference key="NSNextResponder" ref="311908381"/>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="299451957">
@ -4591,11 +4591,11 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">accept_over.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">accept_default.png</string>
</object>
@ -4615,6 +4615,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string key="NSFrame">{{160, 0}, {160, 77}}</string>
<reference key="NSSuperview" ref="442322210"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
@ -4624,11 +4625,11 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUINormalTitleShadowColor" ref="365714543"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">decline_over.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">decline_default.png</string>
</object>
@ -4636,41 +4637,26 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<reference key="IBUIFont" ref="246253541"/>
</object>
</array>
<string key="NSFrame">{{0, 403}, {320, 77}}</string>
<reference key="NSSuperview" ref="191373211"/>
<string key="NSFrame">{{0, 383}, {320, 77}}</string>
<reference key="NSSuperview" ref="311908381"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="908036430"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAxIDAuMTkxOTQ1NDc1NSAwAA</bytes>
</object>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<reference key="IBUIBackgroundColor" ref="84179139"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</array>
<string key="NSFrameSize">{320, 480}</string>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="915319957"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="84179139"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">3</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">avatarImage</string>
@ -4687,6 +4673,14 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
</object>
<int key="connectionID">14</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="311908381"/>
</object>
<int key="connectionID">26</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onDeclineClick:</string>
@ -4726,55 +4720,32 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<int key="objectID">25</int>
<reference key="object" ref="311908381"/>
<array class="NSMutableArray" key="children">
<reference ref="915319957"/>
<reference ref="735497316"/>
<reference ref="442322210"/>
<reference ref="735497316"/>
<reference ref="915319957"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="442322210"/>
<array class="NSMutableArray" key="children">
<reference ref="908036430"/>
<reference ref="348909292"/>
<reference ref="299451957"/>
</array>
<reference key="parent" ref="191373211"/>
<string key="objectName">tabBar</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="299451957"/>
<reference key="parent" ref="442322210"/>
<string key="objectName">mask</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="348909292"/>
<reference key="parent" ref="442322210"/>
<string key="objectName">declineButton</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="908036430"/>
<reference key="parent" ref="442322210"/>
<string key="objectName">acceptButton</string>
<int key="objectID">22</int>
<reference key="object" ref="915319957"/>
<reference key="parent" ref="311908381"/>
<string key="objectName">background</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="735497316"/>
<array class="NSMutableArray" key="children">
<reference ref="1023112121"/>
<reference ref="402572557"/>
<reference ref="651495339"/>
<reference ref="632401698"/>
<reference ref="131610915"/>
<reference ref="632401698"/>
<reference ref="651495339"/>
<reference ref="402572557"/>
<reference ref="1023112121"/>
</array>
<reference key="parent" ref="191373211"/>
<reference key="parent" ref="311908381"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
@ -4807,10 +4778,33 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string key="objectName">headerBackground</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">22</int>
<reference key="object" ref="915319957"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">background</string>
<int key="objectID">4</int>
<reference key="object" ref="442322210"/>
<array class="NSMutableArray" key="children">
<reference ref="299451957"/>
<reference ref="348909292"/>
<reference ref="908036430"/>
</array>
<reference key="parent" ref="311908381"/>
<string key="objectName">tabBar</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="299451957"/>
<reference key="parent" ref="442322210"/>
<string key="objectName">mask</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="348909292"/>
<reference key="parent" ref="442322210"/>
<string key="objectName">declineButton</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="908036430"/>
<reference key="parent" ref="442322210"/>
<string key="objectName">acceptButton</string>
</object>
</array>
</object>
@ -4819,18 +4813,18 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="1" key="6.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<real value="0.0" key="6.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="1" key="7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<real value="0.0" key="7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
@ -4838,13 +4832,13 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">24</int>
<int key="maxID">30</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">IncomingCallViewController</string>
<string key="superclassName">UIModalViewController</string>
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="onAcceptClick:">id</string>
<string key="onDeclineClick:">id</string>
@ -4878,14 +4872,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
<string key="minorKey">./Classes/IncomingCallViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIModalViewController</string>
<string key="superclassName">UIViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIModalViewController.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>

View file

@ -119,11 +119,12 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
}
}
{
LinphoneAddress *parsed=linphone_core_get_primary_contact_parsed(lc);
LinphoneAddress *parsed = linphone_core_get_primary_contact_parsed(lc);
if(parsed != NULL) {
[self setString: linphone_address_get_display_name(parsed) forKey:@"primary_displayname_preference"];
[self setString: linphone_address_get_username(parsed) forKey:@"primary_username_preference"];
}
linphone_address_destroy(parsed);
}
{
LCSipTransports tp;
@ -320,11 +321,11 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
// add username password
LinphoneAddress *from = linphone_address_new(identity);
LinphoneAuthInfo *info;
if (from !=0){
if (from != 0){
info=linphone_auth_info_new(linphone_address_get_username(from),NULL,password,NULL,NULL);
linphone_core_add_auth_info(lc,info);
linphone_address_destroy(from);
}
linphone_address_destroy(from);
// configure proxy entries
linphone_proxy_config_set_identity(proxyCfg,identity);
@ -425,12 +426,14 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
// Primary contact
NSString* displayname = [self stringForKey:@"primary_displayname_preference"];
NSString* username = [self stringForKey:@"primary_username_preference"];
LinphoneAddress *parsed=linphone_core_get_primary_contact_parsed(lc);
LinphoneAddress *parsed = linphone_core_get_primary_contact_parsed(lc);
if(parsed != NULL) {
linphone_address_set_display_name(parsed,[displayname cStringUsingEncoding:[NSString defaultCStringEncoding]]);
linphone_address_set_username(parsed,[username cStringUsingEncoding:[NSString defaultCStringEncoding]]);
char *contact = linphone_address_as_string(parsed);
linphone_core_set_primary_contact(lc, contact);
ms_free(contact);
linphone_address_destroy(parsed);
}

View file

@ -837,8 +837,9 @@ static LinphoneCoreVTable linphonec_vtable = {
if(transfer) {
linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), normalizedUserName);
} else {
linphone_core_invite_address_with_params([LinphoneManager getLc], linphoneAddress,lcallParams);
linphone_core_invite_address_with_params([LinphoneManager getLc], linphoneAddress, lcallParams);
}
linphone_address_destroy(linphoneAddress);
}
linphone_call_params_destroy(lcallParams);
}

View file

@ -198,7 +198,7 @@
[self startBounceAnimation:@"Bounce" target:historyNotificationView];
}];
} else {
[self startBounceAnimation:@"Bounce" target:chatNotificationView];
[self startBounceAnimation:@"Bounce" target:historyNotificationView];
}
}
[historyNotificationLabel setText:[NSString stringWithFormat:@"%i", missedCall]];

View file

@ -1,39 +0,0 @@
/* UIModalViewController.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 <UIKit/UIKit.h>
@class UIModalViewController;
@protocol UIModalViewDelegate <NSObject>
- (void)modalViewDismiss:(UIModalViewController*)controller value:(id)value;
@end
@interface UIModalViewController : UIViewController {
BOOL dismissed;
id<UIModalViewDelegate> modalDelegate;
}
- (void)setModalDelegate:(id<UIModalViewDelegate>)delegate;
- (void)dismiss:(id)value;
- (void)dismiss;
@end

View file

@ -1,90 +0,0 @@
/* UIModalViewController.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 "UIModalViewController.h"
@implementation UIModalViewController
- (void)initUIModalViewController {
dismissed = FALSE;
}
- (id)init {
self = [super init];
if (self) {
[self initUIModalViewController];
}
return self;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
[self initUIModalViewController];
}
return self;
}
- (id)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
[self initUIModalViewController];
}
return self;
}
- (void)hideView {
if([self.view superview] !=nil) {
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
[self viewWillDisappear:NO];
}
[self.view removeFromSuperview];
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
[self viewDidDisappear:NO];
}
}
}
- (void)dismiss:(id)value {
if(modalDelegate != nil)
[modalDelegate modalViewDismiss:self value:value];
if(!dismissed) {
[self hideView];
dismissed = true;
[self autorelease];
}
}
- (void)dismiss{
if(modalDelegate != nil)
[modalDelegate modalViewDismiss:self value:nil];
if(!dismissed) {
[self hideView];
dismissed = true;
[self autorelease];
}
}
- (void)setModalDelegate:(id<UIModalViewDelegate>)delegate {
modalDelegate = delegate;
}
@end

View file

@ -1,29 +0,0 @@
/* UIView+ModalStack.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 <UIKit/UIKit.h>
#import "UIModalViewController.h"
@interface UIView (ModalStack)
- (void)addModalView:(UIView*)view;
- (void)removeModalView:(UIView*)view;
@end

View file

@ -1,49 +0,0 @@
/* UIView+ModalStack.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 <QuartzCore/QuartzCore.h>
#import "UIView+ModalStack.h"
@implementation UIView (ModalStack)
- (void)addModalView:(UIView*)view {
CATransition* trans = [CATransition animation];
[trans setType:kCATransitionFade];
[trans setDuration:0.35];
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[trans setSubtype:kCATransitionFromRight];
[self.layer addAnimation:trans forKey:@"Appear"];
[self addSubview:view];
[self bringSubviewToFront:view];
}
- (void)removeModalView:(UIView*)view {
CATransition* trans = [CATransition animation];
[trans setType:kCATransitionFade];
[trans setDuration:0.35];
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[trans setSubtype:kCATransitionFromRight];
[self.layer addAnimation:trans forKey:@"Disappear"];
[view removeFromSuperview];
}
@end

View file

@ -21,7 +21,6 @@
#import "LinphoneManager.h"
#import "UICompositeViewController.h"
#import "UIModalViewController.h"
#import "FirstLoginViewController.h"
#import "IncomingCallViewController.h"
@ -36,8 +35,9 @@
#import "SettingsViewController.h"
#import "FirstLoginViewController.h"
#import "WizardViewController.h"
#import "IncomingCallViewController.h"
@interface PhoneMainView : UIViewController<CallActionSheetDelegate,UIModalViewDelegate> {
@interface PhoneMainView : UIViewController<CallActionSheetDelegate, IncomingCallViewDelegate> {
@private
UICompositeViewController *mainViewController;

View file

@ -22,7 +22,6 @@
#import "PhoneMainView.h"
#import "Utils.h"
#import "UIView+ModalStack.h"
static PhoneMainView* phoneMainViewInstance=nil;
@ -232,6 +231,11 @@ static PhoneMainView* phoneMainViewInstance=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) {
return;
}
switch (state) {
case LinphoneCallIncomingReceived:
{
@ -529,18 +533,12 @@ static PhoneMainView* phoneMainViewInstance=nil;
[[UIApplication sharedApplication] presentLocalNotificationNow:appData->notification];
}
} else {
IncomingCallViewController *controller = [[IncomingCallViewController alloc] init];
[controller setWantsFullScreenLayout:TRUE];
[controller setCall:call];
[controller setModalDelegate:self];
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
[controller viewWillAppear:NO];
}
[[self view] addModalView:[controller view]];
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
[controller viewDidAppear:NO];
}
} else {
IncomingCallViewController *controller = DYNAMIC_CAST([self changeCurrentView:[IncomingCallViewController compositeViewDescription] push:TRUE],IncomingCallViewController);
if(controller != nil) {
[controller setCall:call];
[controller setDelegate:self];
}
}
}
@ -599,11 +597,17 @@ static PhoneMainView* phoneMainViewInstance=nil;
}
#pragma mark - Modal Functions
#pragma mark - IncomingCallDelegate Functions
- (void)modalViewDismiss:(UIModalViewController*)controller value:(id)value {
[controller setModalDelegate:nil];
[[self view] removeModalView:[controller view]];
- (void)incomingCallAborted:(LinphoneCall*)call {
}
- (void)incomingCallAccepted:(LinphoneCall*)call {
linphone_core_accept_call([LinphoneManager getLc], call);
}
- (void)incomingCallDeclined:(LinphoneCall*)call {
linphone_core_terminate_call([LinphoneManager getLc], call);
}
@end

View file

@ -345,7 +345,7 @@ static UICompositeViewDescription *compositeDescription = nil;
tabBar: @"UIMainBar"
tabBarEnabled:true
fullscreen:false
landscapeMode:false
landscapeMode:[LinphoneManager runningOnIpad]
portraitMode:true];
}
return compositeDescription;

View file

@ -670,8 +670,6 @@
D378906515AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */; };
D378906615AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */; };
D378906715AC373B00BD776C /* ContactDetailsLabelViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D378906415AC373B00BD776C /* ContactDetailsLabelViewController.xib */; };
D378907515AC448A00BD776C /* UIView+ModalStack.m in Sources */ = {isa = PBXBuildFile; fileRef = D378907415AC448A00BD776C /* UIView+ModalStack.m */; };
D378907615AC448A00BD776C /* UIView+ModalStack.m in Sources */ = {isa = PBXBuildFile; fileRef = D378907415AC448A00BD776C /* UIView+ModalStack.m */; };
D37B96B715A1A6F20005CCD2 /* call_state_delete_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D37B96B515A1A6F20005CCD2 /* call_state_delete_default.png */; };
D37B96B915A1A6F20005CCD2 /* call_state_delete_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D37B96B615A1A6F20005CCD2 /* call_state_delete_over.png */; };
D37C638E15AAD251009D0BAC /* contact_number_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D37C638C15AAD251009D0BAC /* contact_number_over.png */; };
@ -1061,8 +1059,6 @@
D3F26BF915986DAD005F9CAB /* history_ok_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BF615986DAD005F9CAB /* history_ok_over.png */; };
D3F26BFC15987083005F9CAB /* header_incoming.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BFB15987083005F9CAB /* header_incoming.png */; };
D3F34F301599B008005BE94F /* avatar_shadow.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F34F2F1599B008005BE94F /* avatar_shadow.png */; };
D3F34F351599C354005BE94F /* UIModalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F34F341599C354005BE94F /* UIModalViewController.m */; };
D3F34F361599C354005BE94F /* UIModalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F34F341599C354005BE94F /* UIModalViewController.m */; };
D3F795D615A582810077328B /* ChatRoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F795D415A582800077328B /* ChatRoomViewController.m */; };
D3F795D715A582810077328B /* ChatRoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F795D415A582800077328B /* ChatRoomViewController.m */; };
D3F795D815A582810077328B /* ChatRoomViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3F795D515A582800077328B /* ChatRoomViewController.xib */; };
@ -1653,8 +1649,6 @@
D378906215AC373B00BD776C /* ContactDetailsLabelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsLabelViewController.h; sourceTree = "<group>"; };
D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsLabelViewController.m; sourceTree = "<group>"; };
D378906415AC373B00BD776C /* ContactDetailsLabelViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ContactDetailsLabelViewController.xib; sourceTree = "<group>"; };
D378907415AC448A00BD776C /* UIView+ModalStack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+ModalStack.m"; sourceTree = "<group>"; };
D378907715AC44A300BD776C /* UIView+ModalStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+ModalStack.h"; sourceTree = "<group>"; };
D37B96B515A1A6F20005CCD2 /* call_state_delete_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = call_state_delete_default.png; path = Resources/call_state_delete_default.png; sourceTree = "<group>"; };
D37B96B615A1A6F20005CCD2 /* call_state_delete_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = call_state_delete_over.png; path = Resources/call_state_delete_over.png; sourceTree = "<group>"; };
D37C638C15AAD251009D0BAC /* contact_number_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_number_over.png; path = Resources/contact_number_over.png; sourceTree = "<group>"; };
@ -1952,8 +1946,6 @@
D3F26BF615986DAD005F9CAB /* history_ok_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_ok_over.png; path = Resources/history_ok_over.png; sourceTree = "<group>"; };
D3F26BFB15987083005F9CAB /* header_incoming.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = header_incoming.png; path = Resources/header_incoming.png; sourceTree = "<group>"; };
D3F34F2F1599B008005BE94F /* avatar_shadow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = avatar_shadow.png; path = Resources/avatar_shadow.png; sourceTree = "<group>"; };
D3F34F331599C354005BE94F /* UIModalViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIModalViewController.h; sourceTree = "<group>"; };
D3F34F341599C354005BE94F /* UIModalViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIModalViewController.m; sourceTree = "<group>"; };
D3F795D315A582800077328B /* ChatRoomViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatRoomViewController.h; sourceTree = "<group>"; };
D3F795D415A582800077328B /* ChatRoomViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatRoomViewController.m; sourceTree = "<group>"; };
D3F795D515A582800077328B /* ChatRoomViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatRoomViewController.xib; sourceTree = "<group>"; };
@ -2462,8 +2454,6 @@
D3A74E5B15C6922A001500B9 /* UIMainBar~ipad.xib */,
2214EBF112F86360002A5394 /* UIMicroButton.h */,
2214EBF212F86360002A5394 /* UIMicroButton.m */,
D3F34F331599C354005BE94F /* UIModalViewController.h */,
D3F34F341599C354005BE94F /* UIModalViewController.m */,
D36FB2D31589EF7C0036F6F2 /* UIPauseButton.h */,
D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */,
22968A5D12F875C600588287 /* UISpeakerButton.h */,
@ -2479,8 +2469,6 @@
D32460E5159D9AAD00BA7F3A /* UITransparentView.m */,
340751E5150F38FC00B89C47 /* UIVideoButton.h */,
340751E6150F38FD00B89C47 /* UIVideoButton.m */,
D378907715AC44A300BD776C /* UIView+ModalStack.h */,
D378907415AC448A00BD776C /* UIView+ModalStack.m */,
);
path = LinphoneUI;
sourceTree = "<group>";
@ -4223,7 +4211,6 @@
D3EA5411159853750037DC6B /* UIChatCell.m in Sources */,
D3F26BF115986B73005F9CAB /* IncomingCallViewController.m in Sources */,
D31B4B21159876C0002E6C72 /* UICompositeViewController.m in Sources */,
D3F34F351599C354005BE94F /* UIModalViewController.m in Sources */,
D31AAF5E159B3919002C6B02 /* InCallTableViewController.m in Sources */,
D3211BB0159C4EF10098460B /* UIConferenceHeader.m in Sources */,
D32460E6159D9AAD00BA7F3A /* UITransparentView.m in Sources */,
@ -4241,7 +4228,6 @@
D37C639B15AADEF6009D0BAC /* ContactDetailsTableViewController.m in Sources */,
D3C6526715AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */,
D378906515AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */,
D378907515AC448A00BD776C /* UIView+ModalStack.m in Sources */,
D3E8F68615ADE05B0065A226 /* UIContactDetailsFooter.m in Sources */,
C90FAA7915AF54E6002091CB /* HistoryDetailsViewController.m in Sources */,
D3F9A9E215AF100D0045320F /* TPKeyboardAvoidingScrollView.m in Sources */,
@ -4318,7 +4304,6 @@
D3EA5412159853750037DC6B /* UIChatCell.m in Sources */,
D3F26BF215986B73005F9CAB /* IncomingCallViewController.m in Sources */,
D31B4B22159876C0002E6C72 /* UICompositeViewController.m in Sources */,
D3F34F361599C354005BE94F /* UIModalViewController.m in Sources */,
D31AAF5F159B3919002C6B02 /* InCallTableViewController.m in Sources */,
D3211BB1159C4EF10098460B /* UIConferenceHeader.m in Sources */,
D32460E7159D9AAD00BA7F3A /* UITransparentView.m in Sources */,
@ -4336,7 +4321,6 @@
D37C639C15AADEF6009D0BAC /* ContactDetailsTableViewController.m in Sources */,
D3C6526815AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */,
D378906615AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */,
D378907615AC448A00BD776C /* UIView+ModalStack.m in Sources */,
D3E8F68715ADE05B0065A226 /* UIContactDetailsFooter.m in Sources */,
C90FAA7A15AF54E6002091CB /* HistoryDetailsViewController.m in Sources */,
D3F9A9E315AF100D0045320F /* TPKeyboardAvoidingScrollView.m in Sources */,