mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 11:08:06 +00:00
Add animation
Continue new ui Fix some issues
This commit is contained in:
parent
4b9ae080cd
commit
2443f37b9c
34 changed files with 5474 additions and 401 deletions
|
|
@ -17,9 +17,9 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "ContactTableViewController.h"
|
||||
#import "FastAddressBook.h"
|
||||
#import "ContactTableViewController.h"
|
||||
#import "UIContactCell.h"
|
||||
#import "LinphoneManager.h"
|
||||
|
||||
@implementation ContactTableViewController
|
||||
|
||||
|
|
@ -37,24 +37,35 @@ void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef info,
|
|||
NSArray *lContacts = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
|
||||
for (id lPerson in lContacts) {
|
||||
CFStringRef lFirstName = ABRecordCopyValue((ABRecordRef)lPerson, kABPersonFirstNameProperty);
|
||||
CFStringRef lLocalizedFirstName = ABAddressBookCopyLocalizedLabel(lFirstName);
|
||||
CFStringRef lLocalizedFirstName = (lFirstName != nil)? ABAddressBookCopyLocalizedLabel(lFirstName): nil;
|
||||
CFStringRef lLastName = ABRecordCopyValue((ABRecordRef)lPerson, kABPersonLastNameProperty);
|
||||
CFStringRef lLocalizedLastName = ABAddressBookCopyLocalizedLabel(lLastName);
|
||||
NSString *name =[NSString stringWithFormat:@"%@%@", [(NSString *)lLocalizedFirstName retain], [(NSString *)lLocalizedLastName retain]];
|
||||
|
||||
// Put in correct subDic
|
||||
NSString *firstChar = [[name substringToIndex:1] uppercaseString];
|
||||
OrderedDictionary *subDic =[lAddressBookMap objectForKey: firstChar];
|
||||
if(subDic == nil) {
|
||||
subDic = [[OrderedDictionary alloc] init];
|
||||
[lAddressBookMap insertObject:subDic forKey:firstChar selector:@selector(caseInsensitiveCompare:)];
|
||||
CFStringRef lLocalizedLastName = (lLastName != nil)? ABAddressBookCopyLocalizedLabel(lLastName): nil;
|
||||
NSString *name = nil;
|
||||
if(lLocalizedFirstName != nil && lLocalizedLastName != nil) {
|
||||
name=[NSString stringWithFormat:@"%@%@", [(NSString *)lLocalizedFirstName retain], [(NSString *)lLocalizedLastName retain]];
|
||||
} else if(lLocalizedLastName != nil) {
|
||||
name=[NSString stringWithFormat:@"%@",[(NSString *)lLocalizedLastName retain]];
|
||||
} else if(lLocalizedFirstName != nil) {
|
||||
name=[NSString stringWithFormat:@"%@",[(NSString *)lLocalizedFirstName retain]];
|
||||
}
|
||||
[subDic insertObject:lPerson forKey:name selector:@selector(caseInsensitiveCompare:)];
|
||||
|
||||
CFRelease(lLocalizedLastName);
|
||||
CFRelease(lLastName);
|
||||
CFRelease(lLocalizedFirstName);
|
||||
CFRelease(lFirstName);
|
||||
if(name != nil) {
|
||||
// Put in correct subDic
|
||||
NSString *firstChar = [[name substringToIndex:1] uppercaseString];
|
||||
OrderedDictionary *subDic =[lAddressBookMap objectForKey: firstChar];
|
||||
if(subDic == nil) {
|
||||
subDic = [[OrderedDictionary alloc] init];
|
||||
[lAddressBookMap insertObject:subDic forKey:firstChar selector:@selector(caseInsensitiveCompare:)];
|
||||
}
|
||||
[subDic insertObject:lPerson forKey:name selector:@selector(caseInsensitiveCompare:)];
|
||||
}
|
||||
if(lLocalizedLastName != nil)
|
||||
CFRelease(lLocalizedLastName);
|
||||
if(lLastName != nil)
|
||||
CFRelease(lLastName);
|
||||
if(lLocalizedFirstName != nil)
|
||||
CFRelease(lLocalizedFirstName);
|
||||
if(lFirstName != nil)
|
||||
CFRelease(lFirstName);
|
||||
}
|
||||
CFRelease(lContacts);
|
||||
}
|
||||
|
|
@ -86,20 +97,9 @@ void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef info,
|
|||
|
||||
NSString *key = [[subDic allKeys] objectAtIndex:[indexPath row]];
|
||||
ABRecordRef record = [subDic objectForKey:key];
|
||||
|
||||
[cell update: record];
|
||||
|
||||
CFStringRef lFirstName = ABRecordCopyValue(record, kABPersonFirstNameProperty);
|
||||
CFStringRef lLocalizedFirstName = ABAddressBookCopyLocalizedLabel(lFirstName);
|
||||
CFStringRef lLastName = ABRecordCopyValue(record, kABPersonLastNameProperty);
|
||||
CFStringRef lLocalizedLastName = ABAddressBookCopyLocalizedLabel(lLastName);
|
||||
|
||||
[cell.firstName setText: [(NSString *)lLocalizedFirstName retain]];
|
||||
[cell.lastName setText: [(NSString *)lLocalizedLastName retain]];
|
||||
[cell update];
|
||||
|
||||
CFRelease(lLocalizedLastName);
|
||||
CFRelease(lLastName);
|
||||
CFRelease(lLocalizedFirstName);
|
||||
CFRelease(lFirstName);
|
||||
return cell;
|
||||
}
|
||||
|
||||
|
|
@ -111,6 +111,26 @@ void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef info,
|
|||
OrderedDictionary *subDic = [addressBookMap objectForKey: [addressBookMap keyAtIndex: [indexPath section]]];
|
||||
ABRecordRef lPerson = [subDic objectForKey: [subDic keyAtIndex:[indexPath row]]];
|
||||
// TODO
|
||||
ABMultiValueRef lPhoneNumbers = ABRecordCopyValue((ABRecordRef)lPerson, kABPersonPhoneProperty);
|
||||
for(CFIndex i = 0; i < ABMultiValueGetCount(lPhoneNumbers); i++) {
|
||||
CFStringRef lLabel = ABMultiValueCopyLabelAtIndex(lPhoneNumbers, i);
|
||||
if ([(NSString*)lLabel isEqualToString:(NSString*)kABPersonPhoneMainLabel]) {
|
||||
CFStringRef lNumber = ABMultiValueCopyValueAtIndex(lPhoneNumbers,i);
|
||||
NSString *number = [(NSString *)lNumber retain];
|
||||
|
||||
// Go to dialer view
|
||||
NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[[NSArray alloc] initWithObjects: number, nil] autorelease]
|
||||
, @"setAddress:",
|
||||
nil] autorelease];
|
||||
[[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
|
||||
|
||||
CFRelease(lNumber);
|
||||
break;
|
||||
}
|
||||
CFRelease(lLabel);
|
||||
}
|
||||
CFRelease(lPhoneNumbers);
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
@private
|
||||
//Buttons
|
||||
UITextField* addressField;
|
||||
UIButton* addContact;
|
||||
UIEraseButton* eraseButton;
|
||||
UICallButton* callButton;
|
||||
|
||||
|
|
@ -47,6 +48,7 @@
|
|||
- (void)setAddress:(NSString*) address;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UITextField* addressField;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* addContact;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* callButton;
|
||||
@property (nonatomic, retain) IBOutlet UIEraseButton* eraseButton;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* oneButton;
|
||||
|
|
@ -63,5 +65,6 @@
|
|||
@property (nonatomic, retain) IBOutlet UIButton* hashButton;
|
||||
|
||||
- (IBAction)onAddContact: (id) event;
|
||||
- (IBAction)onAddressChange: (id)sender;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@
|
|||
#import <AudioToolbox/AudioToolbox.h>
|
||||
|
||||
#import "DialerViewController.h"
|
||||
#import "linphoneAppDelegate.h"
|
||||
#import "IncallViewController.h"
|
||||
#import "LinphoneManager.h"
|
||||
#import "PhoneMainView.h"
|
||||
|
|
@ -32,6 +31,7 @@
|
|||
@implementation DialerViewController
|
||||
|
||||
@synthesize addressField;
|
||||
@synthesize addContact;
|
||||
@synthesize callButton;
|
||||
@synthesize eraseButton;
|
||||
|
||||
|
|
@ -87,7 +87,10 @@
|
|||
|
||||
- (void)dealloc {
|
||||
[addressField release];
|
||||
[addContact release];
|
||||
[eraseButton release];
|
||||
[callButton release];
|
||||
|
||||
[oneButton release];
|
||||
[twoButton release];
|
||||
[threeButton release];
|
||||
|
|
@ -114,4 +117,16 @@
|
|||
|
||||
}
|
||||
|
||||
- (IBAction)onAddressChange: (id)sender {
|
||||
if([[addressField text] length] > 0) {
|
||||
[addContact setEnabled:TRUE];
|
||||
[eraseButton setEnabled:TRUE];
|
||||
[callButton setEnabled:TRUE];
|
||||
} else {
|
||||
[addContact setEnabled:FALSE];
|
||||
[eraseButton setEnabled:FALSE];
|
||||
[callButton setEnabled:FALSE];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -529,6 +529,7 @@
|
|||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIEnabled">NO</bool>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
|
|
@ -562,6 +563,7 @@
|
|||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIEnabled">NO</bool>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
|
|
@ -571,6 +573,10 @@
|
|||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">appeler-over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIDisabledBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">appeler-disabled.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">appeler-actif.png</string>
|
||||
|
|
@ -584,9 +590,11 @@
|
|||
<string key="NSFrame">{{214, 0}, {106, 69}}</string>
|
||||
<reference key="NSSuperview" ref="32193173"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIEnabled">NO</bool>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
|
|
@ -601,6 +609,10 @@
|
|||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">backspace-over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIDisabledBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">backspace-disabled.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">backspace-actif.png</string>
|
||||
|
|
@ -765,6 +777,14 @@
|
|||
</object>
|
||||
<int key="connectionID">205</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">addContact</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="617539638"/>
|
||||
</object>
|
||||
<int key="connectionID">206</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
|
|
@ -773,6 +793,15 @@
|
|||
</object>
|
||||
<int key="connectionID">190</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onAddressChange:</string>
|
||||
<reference key="source" ref="751637181"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">18</int>
|
||||
</object>
|
||||
<int key="connectionID">208</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onAddContact:</string>
|
||||
|
|
@ -822,8 +851,8 @@
|
|||
<reference key="object" ref="312750714"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="751637181"/>
|
||||
<reference ref="874403835"/>
|
||||
<reference ref="751637181"/>
|
||||
</object>
|
||||
<reference key="parent" ref="542426306"/>
|
||||
<string key="objectName">dialer</string>
|
||||
|
|
@ -850,7 +879,6 @@
|
|||
<reference ref="607229252"/>
|
||||
<reference ref="1070392235"/>
|
||||
<reference ref="539781036"/>
|
||||
<reference ref="573280603"/>
|
||||
<reference ref="539158319"/>
|
||||
<reference ref="150499342"/>
|
||||
<reference ref="616388880"/>
|
||||
|
|
@ -858,6 +886,7 @@
|
|||
<reference ref="310945439"/>
|
||||
<reference ref="602859574"/>
|
||||
<reference ref="465571136"/>
|
||||
<reference ref="573280603"/>
|
||||
</object>
|
||||
<reference key="parent" ref="542426306"/>
|
||||
<string key="objectName">pad</string>
|
||||
|
|
@ -1023,6 +1052,7 @@
|
|||
<string>39.CustomClassName</string>
|
||||
<string>39.IBPluginDependency</string>
|
||||
<string>39.IBUIButtonInspectorSelectedStateConfigurationMetadataKey</string>
|
||||
<string>4.CustomClassName</string>
|
||||
<string>4.IBPluginDependency</string>
|
||||
<string>40.CustomClassName</string>
|
||||
<string>40.IBPluginDependency</string>
|
||||
|
|
@ -1047,10 +1077,10 @@
|
|||
<real value="3"/>
|
||||
<string>UICallButton</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1"/>
|
||||
<real value="3"/>
|
||||
<string>UIEraseButton</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1"/>
|
||||
<real value="3"/>
|
||||
<string>UIDigitButton</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>UIDigitButton</string>
|
||||
|
|
@ -1080,6 +1110,7 @@
|
|||
<string>UIDigitButton</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1"/>
|
||||
<string>UIAddressTextField</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>UIDigitButton</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
|
@ -1101,7 +1132,7 @@
|
|||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">205</int>
|
||||
<int key="maxID">221</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
|
@ -1110,20 +1141,42 @@
|
|||
<string key="className">DialerViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">onAddContact:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>onAddContact:</string>
|
||||
<string>onAddressChange:</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">onAddContact:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">onAddContact:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>onAddContact:</string>
|
||||
<string>onAddressChange:</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBActionInfo">
|
||||
<string key="name">onAddContact:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo">
|
||||
<string key="name">onAddressChange:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>addContact</string>
|
||||
<string>addressField</string>
|
||||
<string>callButton</string>
|
||||
<string>eightButton</string>
|
||||
|
|
@ -1142,6 +1195,7 @@
|
|||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIButton</string>
|
||||
<string>UITextField</string>
|
||||
<string>UIButton</string>
|
||||
<string>UIButton</string>
|
||||
|
|
@ -1163,6 +1217,7 @@
|
|||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>addContact</string>
|
||||
<string>addressField</string>
|
||||
<string>callButton</string>
|
||||
<string>eightButton</string>
|
||||
|
|
@ -1181,6 +1236,10 @@
|
|||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">addContact</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">addressField</string>
|
||||
<string key="candidateClassName">UITextField</string>
|
||||
|
|
@ -1248,6 +1307,14 @@
|
|||
<string key="minorKey">./Classes/DialerViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIAddressTextField</string>
|
||||
<string key="superclassName">UITextField</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIAddressTextField.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UICallButton</string>
|
||||
<string key="superclassName">UIButton</string>
|
||||
|
|
@ -1258,7 +1325,7 @@
|
|||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIDigitButton</string>
|
||||
<string key="superclassName">UIButton</string>
|
||||
<string key="superclassName">UILongTouchButton</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIDigitButton.h</string>
|
||||
|
|
@ -1325,8 +1392,10 @@
|
|||
<string>add-contact-inactif.png</string>
|
||||
<string>add-contact-over.png</string>
|
||||
<string>appeler-actif.png</string>
|
||||
<string>appeler-disabled.png</string>
|
||||
<string>appeler-over.png</string>
|
||||
<string>backspace-actif.png</string>
|
||||
<string>backspace-disabled.png</string>
|
||||
<string>backspace-over.png</string>
|
||||
<string>champ-saisie-numero.png</string>
|
||||
<string>diese-actif.png</string>
|
||||
|
|
@ -1361,6 +1430,8 @@
|
|||
<string>{213, 138}</string>
|
||||
<string>{214, 138}</string>
|
||||
<string>{214, 138}</string>
|
||||
<string>{214, 138}</string>
|
||||
<string>{213, 138}</string>
|
||||
<string>{213, 138}</string>
|
||||
<string>{213, 138}</string>
|
||||
<string>{640, 135}</string>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "LinphoneAppDelegate.h"
|
||||
|
||||
@interface FirstLoginViewController : UIViewController <UITextFieldDelegate>{
|
||||
UIButton* ok;
|
||||
|
|
|
|||
|
|
@ -45,35 +45,10 @@
|
|||
cell = [[UIHistoryCell alloc] init];
|
||||
}
|
||||
|
||||
// Set up the cell...
|
||||
LinphoneAddress* partyToDisplay;
|
||||
const MSList * logs = linphone_core_get_call_logs([LinphoneManager getLc]);
|
||||
LinphoneCallLog* callLogs = ms_list_nth_data(logs, indexPath.row) ;
|
||||
|
||||
NSString *path;
|
||||
if (callLogs->dir == LinphoneCallIncoming) {
|
||||
if (callLogs->status == LinphoneCallSuccess) {
|
||||
path = [[NSBundle mainBundle] pathForResource:callLogs->video_enabled?@"appel-entrant":@"appel-entrant" ofType:@"png"];
|
||||
} else {
|
||||
//missed call
|
||||
path = [[NSBundle mainBundle] pathForResource:@"appel-manque" ofType:@"png"];
|
||||
}
|
||||
partyToDisplay=callLogs->from;
|
||||
|
||||
} else {
|
||||
path = [[NSBundle mainBundle] pathForResource:callLogs->video_enabled?@"appel-sortant":@"appel-sortant" ofType:@"png"];
|
||||
partyToDisplay=callLogs->to;
|
||||
|
||||
}
|
||||
UIImage *image = [UIImage imageWithContentsOfFile:path];
|
||||
|
||||
const char* username = linphone_address_get_username(partyToDisplay)!=0?linphone_address_get_username(partyToDisplay):"";
|
||||
LinphoneCallLog* callLogs = ms_list_nth_data(logs, indexPath.row);
|
||||
|
||||
//TODO
|
||||
//const char* displayName = linphone_address_get_display_name(partyToDisplay);
|
||||
|
||||
[cell.displayName setText:[NSString stringWithFormat:@"%s", username]];
|
||||
cell.imageView.image = image;
|
||||
[cell update:callLogs];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
|
@ -109,10 +84,10 @@
|
|||
NSString* dispName = [[NSString alloc] initWithCString:displayName encoding:[NSString defaultCStringEncoding]];
|
||||
|
||||
// Go to dialer view
|
||||
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[NSArray alloc] initWithObjects: phoneNumber, nil]
|
||||
NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[[NSArray alloc] initWithObjects: phoneNumber, nil] autorelease]
|
||||
, @"setAddress:",
|
||||
nil];
|
||||
nil] autorelease];
|
||||
[[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
|
||||
|
||||
[phoneNumber release];
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
@class VideoViewController;
|
||||
|
||||
@interface InCallViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, CallActionSheetDelegate> {
|
||||
@interface InCallViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, CallActionSheetDelegate, UIGestureRecognizerDelegate> {
|
||||
|
||||
UITableView* callTableView;
|
||||
|
||||
|
|
@ -43,8 +43,6 @@
|
|||
UICamSwitch* videoCameraSwitch;
|
||||
UIActivityIndicatorView* videoWaitingForFirstImage;
|
||||
|
||||
bool dismissed;
|
||||
|
||||
NSTimer *durationRefreasher;
|
||||
NSTimer *glowingTimer;
|
||||
|
||||
|
|
@ -69,7 +67,7 @@
|
|||
}
|
||||
|
||||
+ (LinphoneCall*)retrieveCallAtIndex: (NSInteger) index inConference:(bool) conf;
|
||||
+ (void)updateCellImageView:(UIImageView*)imageView Label:(UILabel*)label DetailLabel:(UILabel*)detailLabel AndAccessoryView:(UIView*)accessoryView withCall:(LinphoneCall*) call;
|
||||
//+ (void)updateCellImageView:(UIImageView*)imageView Label:(UILabel*)label DetailLabel:(UILabel*)detailLabel AndAccessoryView:(UIView*)accessoryView withCall:(LinphoneCall*) call;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UIViewController* conferenceDetail;
|
||||
@property (nonatomic, retain) IBOutlet UITableView* callTableView;
|
||||
|
|
|
|||
|
|
@ -175,16 +175,22 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
}
|
||||
#endif
|
||||
|
||||
- (void)enableVideoDisplay {
|
||||
- (void)enableVideoDisplay:(BOOL)animation {
|
||||
[self orientationChanged:nil];
|
||||
|
||||
[videoZoomHandler resetZoom];
|
||||
|
||||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:1.0];
|
||||
if(animation) {
|
||||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:1.0];
|
||||
}
|
||||
|
||||
[videoGroup setAlpha:1.0];
|
||||
[callTableView setAlpha:0.0];
|
||||
[UIView commitAnimations];
|
||||
|
||||
if(animation) {
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
|
||||
videoView.alpha = 1.0;
|
||||
videoView.hidden = FALSE;
|
||||
|
|
@ -195,30 +201,36 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
[[LinphoneManager instance] fullScreen: true];
|
||||
[[LinphoneManager instance] showTabBar: false];
|
||||
|
||||
// This is a bit hacky: take into account toolbar removal (only once).
|
||||
// It's probably possible to do this from the Xib file (?)
|
||||
static bool done = false;
|
||||
if (!done) {
|
||||
ms_message("old center: %f %f", videoView.center.x, videoView.center.y);
|
||||
videoView.center = CGPointMake(videoView.center.x, videoView.center.y + (self.view.frame.size.height - videoView.window.frame.size.height));
|
||||
ms_message("new center: %f %f", videoView.center.x, videoView.center.y);
|
||||
done = true;
|
||||
}
|
||||
|
||||
#ifdef TEST_VIDEO_VIEW_CHANGE
|
||||
[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(_debugChangeVideoView) userInfo:nil repeats:YES];
|
||||
#endif
|
||||
// [self batteryLevelChanged:nil];
|
||||
|
||||
[self updateUIFromLinphoneState: YES];
|
||||
videoWaitingForFirstImage.hidden = NO;
|
||||
[videoWaitingForFirstImage startAnimating];
|
||||
|
||||
// TODO
|
||||
LinphoneCall *call = linphone_core_get_current_call([LinphoneManager getLc]);
|
||||
if (call != NULL && call->videostream) {
|
||||
linphone_call_set_next_video_frame_decoded_callback(call, hideSpinner, self);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)disableVideoDisplay {
|
||||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:1.0];
|
||||
- (void)disableVideoDisplay:(BOOL)animation {
|
||||
if(animation) {
|
||||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:1.0];
|
||||
}
|
||||
|
||||
[videoGroup setAlpha:0.0];
|
||||
[[LinphoneManager instance] showTabBar: true];
|
||||
[callTableView setAlpha:1.0];
|
||||
[videoCameraSwitch setAlpha:0.0];
|
||||
[UIView commitAnimations];
|
||||
|
||||
if(animation) {
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
|
||||
if (hideControlsTimer != nil) {
|
||||
[hideControlsTimer invalidate];
|
||||
|
|
@ -306,7 +318,8 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
|
||||
UITapGestureRecognizer* singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showControls:)];
|
||||
[singleFingerTap setNumberOfTapsRequired:1];
|
||||
[videoGroup addGestureRecognizer:singleFingerTap];
|
||||
[singleFingerTap setCancelsTouchesInView: FALSE];
|
||||
[[[UIApplication sharedApplication].delegate window] addGestureRecognizer:singleFingerTap];
|
||||
[singleFingerTap release];
|
||||
|
||||
videoZoomHandler = [[VideoZoomHandler alloc] init];
|
||||
|
|
@ -408,40 +421,34 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
|
||||
[super viewDidAppear:animated];
|
||||
if (dismissed) {
|
||||
[self dismissModalViewControllerAnimated:true];
|
||||
|
||||
[self updateCallsDurations];
|
||||
durationRefreasher = [NSTimer scheduledTimerWithTimeInterval:1
|
||||
target:self
|
||||
selector:@selector(updateCallsDurations)
|
||||
userInfo:nil
|
||||
repeats:YES];
|
||||
glowingTimer = [NSTimer scheduledTimerWithTimeInterval:0.1
|
||||
target:self
|
||||
selector:@selector(updateGlow)
|
||||
userInfo:nil
|
||||
repeats:YES];
|
||||
glow = 0;
|
||||
mIncallViewIsReady=TRUE;
|
||||
if (mVideoIsPending) {
|
||||
mVideoIsPending=FALSE;
|
||||
[self enableVideoDisplay: FALSE];
|
||||
} else {
|
||||
[self updateCallsDurations];
|
||||
durationRefreasher = [NSTimer scheduledTimerWithTimeInterval:1
|
||||
target:self
|
||||
selector:@selector(updateCallsDurations)
|
||||
userInfo:nil
|
||||
repeats:YES];
|
||||
glowingTimer = [NSTimer scheduledTimerWithTimeInterval:0.1
|
||||
target:self
|
||||
selector:@selector(updateGlow)
|
||||
userInfo:nil
|
||||
repeats:YES];
|
||||
glow = 0;
|
||||
mIncallViewIsReady=TRUE;
|
||||
if (mVideoIsPending) {
|
||||
mVideoIsPending=FALSE;
|
||||
[self displayVideoCall:nil FromUI:self
|
||||
forUser:nil
|
||||
withDisplayName:nil];
|
||||
|
||||
}
|
||||
|
||||
|
||||
UIDevice* device = [UIDevice currentDevice];
|
||||
if ([device respondsToSelector:@selector(isMultitaskingSupported)]
|
||||
&& [device isMultitaskingSupported]) {
|
||||
//bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"];
|
||||
|
||||
//[LinphoneManager set:contacts hidden:enableVideo withName:"CONTACT button" andReason:AT];
|
||||
//[LinphoneManager set:addVideo hidden:!contacts.hidden withName:"ADD_VIDEO button" andReason:AT];
|
||||
}
|
||||
[self disableVideoDisplay: FALSE];
|
||||
}
|
||||
|
||||
UIDevice* device = [UIDevice currentDevice];
|
||||
if ([device respondsToSelector:@selector(isMultitaskingSupported)]
|
||||
&& [device isMultitaskingSupported]) {
|
||||
//bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"];
|
||||
//[LinphoneManager set:contacts hidden:enableVideo withName:"CONTACT button" andReason:AT];
|
||||
//[LinphoneManager set:addVideo hidden:!contacts.hidden withName:"ADD_VIDEO button" andReason:AT];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
|
|
@ -451,15 +458,20 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
if (hideControlsTimer != nil) {
|
||||
[hideControlsTimer invalidate];
|
||||
hideControlsTimer = nil;
|
||||
}
|
||||
if (durationRefreasher != nil) {
|
||||
[durationRefreasher invalidate];
|
||||
durationRefreasher=nil;
|
||||
}
|
||||
if (glowingTimer != nil) {
|
||||
[glowingTimer invalidate];
|
||||
glowingTimer = nil;
|
||||
}
|
||||
if (!mVideoShown) [[UIApplication sharedApplication] setIdleTimerDisabled:false];
|
||||
mIncallViewIsReady=FALSE;
|
||||
dismissed = false;
|
||||
}
|
||||
|
||||
- (void)viewDidUnload {
|
||||
|
|
@ -478,7 +490,6 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
- (void)displayCall:(LinphoneCall*) call InProgressFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
|
||||
//restore view
|
||||
[self displayPad:false];
|
||||
dismissed = false;
|
||||
UIDevice *device = [UIDevice currentDevice];
|
||||
device.proximityMonitoringEnabled = YES;
|
||||
//if ([speaker isOn])
|
||||
|
|
@ -487,7 +498,6 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
}
|
||||
|
||||
- (void)displayInCall:(LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
|
||||
dismissed = false;
|
||||
UIDevice *device = [UIDevice currentDevice];
|
||||
device.proximityMonitoringEnabled = YES;
|
||||
if (call !=nil && linphone_call_get_dir(call)==LinphoneCallIncoming) {
|
||||
|
|
@ -495,15 +505,14 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
}
|
||||
[self updateUIFromLinphoneState: YES];
|
||||
|
||||
[self disableVideoDisplay];
|
||||
[self disableVideoDisplay: TRUE];
|
||||
}
|
||||
|
||||
- (void)displayDialerFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
|
||||
[self disableVideoDisplay];
|
||||
[self disableVideoDisplay: TRUE];
|
||||
UIViewController* modalVC = self.modalViewController;
|
||||
UIDevice *device = [UIDevice currentDevice];
|
||||
device.proximityMonitoringEnabled = NO;
|
||||
dismissed = true;
|
||||
if (modalVC != nil) {
|
||||
mVideoIsPending=FALSE;
|
||||
// clear previous native window ids
|
||||
|
|
@ -513,10 +522,10 @@ void addAnimationFadeTransition(UIView* view, float duration) {
|
|||
linphone_core_set_native_preview_window_id([LinphoneManager getLc],0);
|
||||
}*/
|
||||
[[LinphoneManager instance] fullScreen:false];
|
||||
[self dismissModalViewControllerAnimated:FALSE];//just in case
|
||||
//[self dismissModalViewControllerAnimated:FALSE];//just in case
|
||||
}
|
||||
|
||||
[self dismissModalViewControllerAnimated:FALSE]; //disable animation to avoid blanc bar just below status bar*/
|
||||
//[self dismissModalViewControllerAnimated:FALSE]; //disable animation to avoid blanc bar just below status bar*/
|
||||
[self updateUIFromLinphoneState: YES];
|
||||
}
|
||||
|
||||
|
|
@ -525,12 +534,11 @@ static void hideSpinner(LinphoneCall* lc, void* user_data);
|
|||
- (void)hideSpinnerIndicator: (LinphoneCall*)call {
|
||||
if (!videoWaitingForFirstImage.hidden) {
|
||||
videoWaitingForFirstImage.hidden = TRUE;
|
||||
} /*else {
|
||||
} else {
|
||||
linphone_call_set_next_video_frame_decoded_callback(call, hideSpinner, self);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)callUpdate: (NSNotification*) notif {
|
||||
LinphoneCallWrapper *callWrapper = [notif.userInfo objectForKey: @"call"];
|
||||
LinphoneCall *call = callWrapper->call;
|
||||
|
|
@ -541,7 +549,7 @@ static void hideSpinner(LinphoneCall* lc, void* user_data);
|
|||
const char* lDisplayNameChars = linphone_address_get_display_name(linphone_call_get_remote_address(call));
|
||||
NSString* lDisplayName = [lDisplayNameChars?[[NSString alloc] initWithUTF8String:lDisplayNameChars]:@"" autorelease];
|
||||
|
||||
bool canHideInCallView = (linphone_core_get_calls([LinphoneManager getLc]) == NULL);
|
||||
//bool canHideInCallView = (linphone_core_get_calls([LinphoneManager getLc]) == NULL);
|
||||
|
||||
switch (state) {
|
||||
/*case LinphoneCallIncomingReceived:
|
||||
|
|
@ -584,7 +592,7 @@ static void hideSpinner(LinphoneCall* lc, void* user_data);
|
|||
{
|
||||
const LinphoneCallParams* current = linphone_call_get_current_params(call);
|
||||
if (linphone_call_params_video_enabled(current)) {
|
||||
[self displayVideoCall:call FromUI:nil forUser:lUserName withDisplayName:lDisplayName];
|
||||
[self enableVideoDisplay:TRUE];
|
||||
} else {
|
||||
[self displayInCall:call FromUI:nil forUser:lUserName withDisplayName:lDisplayName];
|
||||
}
|
||||
|
|
@ -594,15 +602,13 @@ static void hideSpinner(LinphoneCall* lc, void* user_data);
|
|||
case LinphoneCallPausing:
|
||||
case LinphoneCallPaused:
|
||||
{
|
||||
[self disableVideoDisplay];
|
||||
[self disableVideoDisplay: TRUE];
|
||||
break;
|
||||
}
|
||||
case LinphoneCallStreamsRunning:
|
||||
//check video
|
||||
if (linphone_call_params_video_enabled(linphone_call_get_current_params(call))) {
|
||||
[self displayVideoCall:call FromUI:nil
|
||||
forUser:lUserName
|
||||
withDisplayName:lDisplayName];
|
||||
[self enableVideoDisplay:TRUE];
|
||||
} else {
|
||||
[self displayInCall:call FromUI:nil forUser:lUserName withDisplayName:lDisplayName];
|
||||
}
|
||||
|
|
@ -618,19 +624,6 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
[thiz hideSpinnerIndicator:call];
|
||||
}
|
||||
|
||||
- (void)displayVideoCall:(LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
|
||||
|
||||
[self enableVideoDisplay];
|
||||
|
||||
[self updateUIFromLinphoneState: YES];
|
||||
videoWaitingForFirstImage.hidden = NO;
|
||||
[videoWaitingForFirstImage startAnimating];
|
||||
|
||||
if (call->videostream) {
|
||||
linphone_call_set_next_video_frame_decoded_callback(call, hideSpinner, self);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)dismissActionSheet: (id)o {
|
||||
if (visibleActionSheet != nil) {
|
||||
[visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:TRUE];
|
||||
|
|
@ -672,8 +665,19 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[super dealloc];
|
||||
[videoGroup release];
|
||||
[callTableView release];
|
||||
[videoView release];
|
||||
[videoPreview release];
|
||||
#ifdef TEST_VIDEO_VIEW_CHANGE
|
||||
[testVideoView release];
|
||||
#endif
|
||||
[videoCameraSwitch release];
|
||||
[videoWaitingForFirstImage release];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
+ (LinphoneCall*)retrieveCallAtIndex: (NSInteger) index inConference:(bool) conf{
|
||||
|
|
@ -732,6 +736,7 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
[self updateActive:(cell == activeCallCell) cell:cell];
|
||||
}
|
||||
|
||||
/*
|
||||
+ (void)updateCellImageView:(UIImageView*)imageView Label:(UILabel*)label DetailLabel:(UILabel*)detailLabel AndAccessoryView:(UIView*)accessoryView withCall:(LinphoneCall*) call {
|
||||
if (call == NULL) {
|
||||
ms_warning("UpdateCell called with null call");
|
||||
|
|
@ -746,7 +751,7 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
const char* lUserNameChars=linphone_address_get_username(addr);
|
||||
NSString* lUserName = lUserNameChars?[[[NSString alloc] initWithUTF8String:lUserNameChars] autorelease]:NSLocalizedString(@"Unknown",nil);
|
||||
NSMutableString* mss = [[NSMutableString alloc] init];
|
||||
/* contact name */
|
||||
// contact name
|
||||
const char* n = linphone_address_get_display_name(addr);
|
||||
if (n)
|
||||
[mss appendFormat:@"%s", n, nil];
|
||||
|
|
@ -815,8 +820,7 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
[detailLabel setText:ms];
|
||||
[ms release];
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
- (void)updateConferenceCell:(UITableViewCell*) cell at:(NSIndexPath*)indexPath {
|
||||
LinphoneCore* lc = [LinphoneManager getLc];
|
||||
|
|
@ -847,7 +851,6 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
|
||||
}
|
||||
|
||||
// UITableViewDataSource (required)
|
||||
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
UICallCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UICallCell"];
|
||||
if (cell == nil) {
|
||||
|
|
@ -861,18 +864,25 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
}
|
||||
|
||||
LinphoneCore* lc = [LinphoneManager getLc];
|
||||
|
||||
LinphoneCall* call = [InCallViewController retrieveCallAtIndex:indexPath.row inConference:NO];
|
||||
[cell updateCell:call];
|
||||
if(linphone_core_get_conference_size(lc) > 0) {
|
||||
tableView.scrollEnabled = TRUE;
|
||||
} else {
|
||||
tableView.scrollEnabled = FALSE;
|
||||
}
|
||||
/*
|
||||
if (indexPath.row == 0 && linphone_core_get_conference_size(lc) > 0) {
|
||||
/* [self updateConferenceCell:cell at:indexPath];
|
||||
[self updateConferenceCell:cell at:indexPath];
|
||||
if (linphone_core_is_in_conference(lc))
|
||||
activeCallCell = cell;
|
||||
cell.accessoryView = nil;
|
||||
if (linphone_core_is_in_conference(lc))
|
||||
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
|
||||
else
|
||||
cell.accessoryType = UITableViewCellAccessoryNone;*/
|
||||
cell.accessoryType = UITableViewCellAccessoryNone;
|
||||
} else {
|
||||
/*LinphoneCall* call = [InCallViewController retrieveCallAtIndex:indexPath.row inConference:NO];
|
||||
LinphoneCall* call = [InCallViewController retrieveCallAtIndex:indexPath.row inConference:NO];
|
||||
if (call == nil)
|
||||
return cell; // return dummy cell
|
||||
|
||||
|
|
@ -887,12 +897,12 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
}
|
||||
[InCallViewController updateCellImageView:cell.imageView Label:cell.textLabel DetailLabel:cell.detailTextLabel AndAccessoryView:(UIView*)cell.accessoryView withCall:call];
|
||||
if (linphone_core_get_current_call(lc) == call)
|
||||
activeCallCell = cell;*/
|
||||
activeCallCell = cell;
|
||||
//cell.accessoryType = UITableViewCellAccessoryNone;
|
||||
|
||||
// Call Quality Indicator
|
||||
//TODO
|
||||
/*UIImageView* callquality = [UIImageView new];
|
||||
UIImageView* callquality = [UIImageView new];
|
||||
[callquality setFrame:CGRectMake(0, 0, 28, 28)];
|
||||
if (call->state == LinphoneCallStreamsRunning)
|
||||
{
|
||||
|
|
@ -900,9 +910,9 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
}
|
||||
else {
|
||||
[callquality setImage:nil];
|
||||
}*/
|
||||
}
|
||||
|
||||
/*LinphoneMediaEncryption enc = linphone_call_params_get_media_encryption(linphone_call_get_current_params(call));
|
||||
LinphoneMediaEncryption enc = linphone_call_params_get_media_encryption(linphone_call_get_current_params(call));
|
||||
if (enc != LinphoneMediaEncryptionNone) {
|
||||
cell.accessoryView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 60, 28)] autorelease];
|
||||
UIButton* accessoryBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
|
|
@ -922,12 +932,12 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
if (((UIButton*)accessoryBtn).imageView.image != nil && linphone_call_params_get_media_encryption(linphone_call_get_current_params(call)) == LinphoneMediaEncryptionZRTP) {
|
||||
[((UIButton*)accessoryBtn) addTarget:self action:@selector(secureIconPressed:withEvent:) forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
} */
|
||||
}
|
||||
|
||||
//[cell.accessoryView addSubview:callquality];
|
||||
//[callquality release];
|
||||
}
|
||||
|
||||
*/
|
||||
/*cell.userInteractionEnabled = YES;
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;*/
|
||||
return cell;
|
||||
|
|
|
|||
|
|
@ -12,10 +12,10 @@
|
|||
</object>
|
||||
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUITableView</string>
|
||||
<string>IBUIActivityIndicatorView</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUITableView</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBProxyObject</string>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
<object class="IBUIView" id="1017044170">
|
||||
<reference key="NSNextResponder" ref="1009068048"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview" ref="1009068048"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="69034748"/>
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
<string key="NSFrame">{{240, 354}, {80, 106}}</string>
|
||||
<reference key="NSSuperview" ref="1009068048"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="585808525"/>
|
||||
<reference key="NSNextKeyView" ref="662692377"/>
|
||||
<reference key="IBUIBackgroundColor" ref="95762599"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
|
|
@ -91,69 +91,26 @@
|
|||
<reference key="NSNextKeyView" ref="1017044170"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:196</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC4wNTQ5MDE5NjA3OCAwLjA4MjM1Mjk0MTE4IDAuMTI5NDExNzY0NwA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIButton" id="585808525">
|
||||
<reference key="NSNextResponder" ref="858247959"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 66}</string>
|
||||
<reference key="NSSuperview" ref="858247959"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="662692377"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAwIDAuMDgyMzIwMjU5MDQgMC4xOAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<float key="IBUIAlpha">0.0</float>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<string key="IBUINormalTitle">Change camera</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">clavier-01-106px.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<string key="name">Helvetica-Bold</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
<bytes key="NSWhite">MAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUITableView" id="662692377">
|
||||
<reference key="NSNextResponder" ref="858247959"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 251}</string>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview" ref="858247959"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<reference key="NSNextKeyView" ref="972197710"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:418</string>
|
||||
<reference key="IBUIBackgroundColor" ref="95762599"/>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<double key="IBUIContentInset.top">0.0</double>
|
||||
<double key="IBUIContentInset.bottom">10</double>
|
||||
<double key="IBUIContentInset.left">0.0</double>
|
||||
<double key="IBUIContentInset.right">0.0</double>
|
||||
<bool key="IBUIAlwaysBounceVertical">YES</bool>
|
||||
<bool key="IBUIShowsHorizontalScrollIndicator">NO</bool>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
|
|
@ -162,6 +119,41 @@
|
|||
<float key="IBUISectionHeaderHeight">22</float>
|
||||
<float key="IBUISectionFooterHeight">22</float>
|
||||
</object>
|
||||
<object class="IBUIButton" id="972197710">
|
||||
<reference key="NSNextResponder" ref="858247959"/>
|
||||
<int key="NSvFlags">-2147483356</int>
|
||||
<string key="NSFrameSize">{84, 61}</string>
|
||||
<reference key="NSSuperview" ref="858247959"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<bool key="IBUIAdjustsImageWhenDisabled">NO</bool>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">switch_camera_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">switch_camera_default.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
|
|
@ -178,14 +170,6 @@
|
|||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">videoCameraSwitch</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="585808525"/>
|
||||
</object>
|
||||
<int key="connectionID">141</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
|
|
@ -234,6 +218,14 @@
|
|||
</object>
|
||||
<int key="connectionID">109</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">videoCameraSwitch</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="972197710"/>
|
||||
</object>
|
||||
<int key="connectionID">161</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dataSource</string>
|
||||
|
|
@ -278,18 +270,12 @@
|
|||
<reference key="object" ref="858247959"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="585808525"/>
|
||||
<reference ref="1009068048"/>
|
||||
<reference ref="662692377"/>
|
||||
<reference ref="972197710"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">140</int>
|
||||
<reference key="object" ref="585808525"/>
|
||||
<reference key="parent" ref="858247959"/>
|
||||
<string key="objectName">camSwitch</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">126</int>
|
||||
<reference key="object" ref="1009068048"/>
|
||||
|
|
@ -329,6 +315,12 @@
|
|||
<reference key="parent" ref="858247959"/>
|
||||
<string key="objectName">tableView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">160</int>
|
||||
<reference key="object" ref="972197710"/>
|
||||
<reference key="parent" ref="858247959"/>
|
||||
<string key="objectName">camSwitch</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
|
|
@ -343,9 +335,10 @@
|
|||
<string>126.IBPluginDependency</string>
|
||||
<string>127.IBPluginDependency</string>
|
||||
<string>132.IBPluginDependency</string>
|
||||
<string>140.CustomClassName</string>
|
||||
<string>140.IBPluginDependency</string>
|
||||
<string>144.IBPluginDependency</string>
|
||||
<string>160.CustomClassName</string>
|
||||
<string>160.IBPluginDependency</string>
|
||||
<string>160.IBUIButtonInspectorSelectedStateConfigurationMetadataKey</string>
|
||||
<string>9.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
|
|
@ -358,9 +351,10 @@
|
|||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>UICamSwitch</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1"/>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
|
|
@ -376,7 +370,7 @@
|
|||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">159</int>
|
||||
<int key="maxID">161</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
|
@ -508,8 +502,17 @@
|
|||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="NS.key.0">clavier-01-106px.png</string>
|
||||
<string key="NS.object.0">{106, 60}</string>
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>switch_camera_default.png</string>
|
||||
<string>switch_camera_over.png</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>{167, 122}</string>
|
||||
<string>{167, 122}</string>
|
||||
</object>
|
||||
</object>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
|
|
|
|||
|
|
@ -72,8 +72,7 @@ typedef struct _LinphoneCallAppData {
|
|||
NSTimer* mIterateTimer;
|
||||
id<LogView> mLogView;
|
||||
bool isbackgroundModeEnabled;
|
||||
|
||||
UIViewController* mCurrentViewController;
|
||||
|
||||
Connectivity connectivity;
|
||||
FastAddressBook* mFastAddressBook;
|
||||
const char* frontCamId;
|
||||
|
|
|
|||
|
|
@ -63,11 +63,13 @@ extern void libmsbcg729_init();
|
|||
|
||||
@implementation LinphoneManager
|
||||
|
||||
PhoneView currentView = -1;
|
||||
|
||||
@synthesize connectivity;
|
||||
@synthesize frontCamId;
|
||||
@synthesize backCamId;
|
||||
|
||||
-(id) init {
|
||||
- (id)init {
|
||||
assert (!theLinphoneManager);
|
||||
if ((self= [super init])) {
|
||||
mFastAddressBook = [[FastAddressBook alloc] init];
|
||||
|
|
@ -76,7 +78,7 @@ extern void libmsbcg729_init();
|
|||
return self;
|
||||
}
|
||||
|
||||
+(LinphoneManager*) instance {
|
||||
+ (LinphoneManager*)instance {
|
||||
return theLinphoneManager;
|
||||
}
|
||||
|
||||
|
|
@ -86,10 +88,6 @@ extern void libmsbcg729_init();
|
|||
}
|
||||
|
||||
- (void)fullScreen:(BOOL) enabled {
|
||||
if(enabled)
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:enabled withAnimation:UIStatusBarAnimationSlide];
|
||||
else
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:enabled withAnimation:UIStatusBarAnimationNone];
|
||||
NSMutableDictionary* mdict = [NSMutableDictionary dictionaryWithObject: [NSNumber numberWithBool:enabled] forKey:@"fullscreen"];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneMainViewChange" object:self userInfo:mdict];
|
||||
}
|
||||
|
|
@ -203,11 +201,10 @@ extern void libmsbcg729_init();
|
|||
}
|
||||
|
||||
// Post event
|
||||
NSDictionary* dict = [[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
NSDictionary* dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[[LinphoneCallWrapper alloc] initWithCall: call] autorelease], @"call",
|
||||
[NSNumber numberWithInt:new_state], @"state",
|
||||
[[NSString stringWithFormat:@"%c", message] autorelease], @"message",
|
||||
nil];
|
||||
[NSString stringWithUTF8String:message], @"message", nil] autorelease];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneCallUpdate" object:self userInfo:dict];
|
||||
}
|
||||
|
||||
|
|
@ -228,9 +225,9 @@ extern void libmsbcg729_init();
|
|||
|
||||
- (void)displayStatus:(NSString*) message {
|
||||
// Post event
|
||||
NSDictionary* dict = [[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
NSDictionary* dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
message, @"message",
|
||||
nil];
|
||||
nil] autorelease];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneDisplayStatus" object:self userInfo:dict];
|
||||
}
|
||||
|
||||
|
|
@ -289,10 +286,10 @@ static void linphone_iphone_transfer_state_changed(LinphoneCore* lc, LinphoneCal
|
|||
ms_warning("NEW REGISTRATION STATE: '%s' (message: '%s')", linphone_registration_state_to_string(state), message);
|
||||
|
||||
// Post event
|
||||
NSDictionary* dict = [[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
NSDictionary* dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[NSNumber numberWithInt:state], @"state",
|
||||
[[NSString stringWithFormat:@"%c", message] autorelease], @"message",
|
||||
nil];
|
||||
[NSString stringWithFormat:@"%c", message], @"message",
|
||||
nil] autorelease];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneRegistrationUpdate" object:self userInfo:dict];
|
||||
|
||||
// Show error
|
||||
|
|
@ -344,7 +341,7 @@ static LinphoneCoreVTable linphonec_vtable = {
|
|||
};
|
||||
|
||||
|
||||
-(void) configurePayloadType:(const char*) type fromPrefKey: (NSString*)key withRate:(int)rate {
|
||||
- (void)configurePayloadType:(const char*) type fromPrefKey: (NSString*)key withRate:(int)rate {
|
||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:key]) {
|
||||
PayloadType* pt;
|
||||
if((pt = linphone_core_find_payload_type(theLinphoneCore,type,rate))) {
|
||||
|
|
@ -352,11 +349,13 @@ static LinphoneCoreVTable linphonec_vtable = {
|
|||
}
|
||||
}
|
||||
}
|
||||
-(void) kickOffNetworkConnection {
|
||||
|
||||
- (void)kickOffNetworkConnection {
|
||||
/*start a new thread to avoid blocking the main ui in case of peer host failure*/
|
||||
[NSThread detachNewThreadSelector:@selector(runNetworkConnection) toTarget:self withObject:nil];
|
||||
}
|
||||
-(void) runNetworkConnection {
|
||||
|
||||
- (void)runNetworkConnection {
|
||||
CFWriteStreamRef writeStream;
|
||||
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.0.200"/*"linphone.org"*/, 15000, nil, &writeStream);
|
||||
CFWriteStreamOpen (writeStream);
|
||||
|
|
@ -437,7 +436,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
}
|
||||
}
|
||||
|
||||
-(BOOL) reconfigureLinphoneIfNeeded:(NSDictionary *)settings {
|
||||
- (BOOL)reconfigureLinphoneIfNeeded:(NSDictionary *)settings {
|
||||
if (theLinphoneCore==nil) {
|
||||
ms_warning("cannot configure linphone because not initialized yet");
|
||||
return NO;
|
||||
|
|
@ -708,7 +707,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"check_config_disable_preference"];
|
||||
}
|
||||
}
|
||||
-(void) destroyLibLinphone {
|
||||
- (void)destroyLibLinphone {
|
||||
[mIterateTimer invalidate];
|
||||
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
|
||||
[audioSession setDelegate:nil];
|
||||
|
|
@ -726,7 +725,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
}
|
||||
|
||||
//**********************BG mode management*************************///////////
|
||||
-(BOOL) enterBackgroundMode {
|
||||
- (BOOL)enterBackgroundMode {
|
||||
LinphoneProxyConfig* proxyCfg;
|
||||
linphone_core_get_default_proxy(theLinphoneCore, &proxyCfg);
|
||||
linphone_core_stop_dtmf_stream(theLinphoneCore);
|
||||
|
|
@ -777,11 +776,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
|
||||
|
||||
//scheduling loop
|
||||
-(void) iterate {
|
||||
- (void)iterate {
|
||||
linphone_core_iterate(theLinphoneCore);
|
||||
}
|
||||
|
||||
-(void) setupNetworkReachabilityCallback {
|
||||
- (void)setupNetworkReachabilityCallback {
|
||||
SCNetworkReachabilityContext *ctx=NULL;
|
||||
const char *nodeName="linphone.org";
|
||||
|
||||
|
|
@ -816,7 +815,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
/*************
|
||||
*lib linphone init method
|
||||
*/
|
||||
-(void)startLibLinphone {
|
||||
- (void)startLibLinphone {
|
||||
|
||||
//get default config from bundle
|
||||
NSBundle* myBundle = [NSBundle mainBundle];
|
||||
|
|
@ -928,7 +927,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
|
||||
}
|
||||
|
||||
-(void) refreshRegisters{
|
||||
- (void)refreshRegisters{
|
||||
/*first check if network is available*/
|
||||
if (proxyReachability){
|
||||
SCNetworkReachabilityFlags flags=0;
|
||||
|
|
@ -947,7 +946,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
linphone_core_refresh_registers(theLinphoneCore);//just to make sure REGISTRATION is up to date
|
||||
}
|
||||
|
||||
-(void) becomeActive {
|
||||
- (void)becomeActive {
|
||||
if (theLinphoneCore == nil) {
|
||||
//back from standby and background mode is disabled
|
||||
[self startLibLinphone];
|
||||
|
|
@ -961,11 +960,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
linphone_core_start_dtmf_stream(theLinphoneCore);
|
||||
|
||||
}
|
||||
-(void) registerLogView:(id<LogView>) view {
|
||||
- (void)registerLogView:(id<LogView>) view {
|
||||
mLogView = view;
|
||||
}
|
||||
|
||||
-(void) beginInterruption {
|
||||
- (void)beginInterruption {
|
||||
LinphoneCall* c = linphone_core_get_current_call(theLinphoneCore);
|
||||
ms_message("Sound interruption detected!");
|
||||
if (c) {
|
||||
|
|
@ -973,32 +972,32 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
}
|
||||
}
|
||||
|
||||
-(void) endInterruption {
|
||||
- (void)endInterruption {
|
||||
ms_message("Sound interruption ended!");
|
||||
//let the user resume the call manually.
|
||||
}
|
||||
+(BOOL) runningOnIpad {
|
||||
+ (BOOL)runningOnIpad {
|
||||
#ifdef UI_USER_INTERFACE_IDIOM
|
||||
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
|
||||
#endif
|
||||
return NO;
|
||||
}
|
||||
|
||||
+(void) set:(UIButton*)view enabled: (BOOL) enabled withName:(const char*)name andReason:(const char*) reason{
|
||||
+ (void)set:(UIButton*)view enabled: (BOOL) enabled withName:(const char*)name andReason:(const char*) reason{
|
||||
if (view.enabled != enabled) {
|
||||
ms_message("UI - '%s' is now '%s' ('%s')", name, enabled ? "ENABLED" : "DISABLED", reason);
|
||||
[view setEnabled:enabled];
|
||||
}
|
||||
}
|
||||
|
||||
+(void) set:(UIView*)view hidden: (BOOL) hidden withName:(const char*)name andReason:(const char*) reason{
|
||||
+ (void)set:(UIView*)view hidden: (BOOL) hidden withName:(const char*)name andReason:(const char*) reason{
|
||||
if (view.hidden != hidden) {
|
||||
ms_message("UI - '%s' is now '%s' ('%s')", name, hidden ? "HIDDEN" : "SHOWN", reason);
|
||||
[view setHidden:hidden];
|
||||
}
|
||||
}
|
||||
|
||||
+(void) logUIElementPressed:(const char*) name {
|
||||
+ (void)logUIElementPressed:(const char*) name {
|
||||
ms_message("UI - '%s' pressed", name);
|
||||
}
|
||||
|
||||
|
|
@ -1024,4 +1023,5 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
24
Classes/LinphoneUI/UIAddressTextField.h
Normal file
24
Classes/LinphoneUI/UIAddressTextField.h
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
/* UIAddressTextField.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>
|
||||
|
||||
@interface UIAddressTextField : UITextField
|
||||
|
||||
@end
|
||||
29
Classes/LinphoneUI/UIAddressTextField.m
Normal file
29
Classes/LinphoneUI/UIAddressTextField.m
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/* UIAddressTextField.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 "UIAddressTextField.h"
|
||||
|
||||
@implementation UIAddressTextField
|
||||
|
||||
- (void) setText:(NSString *)text {
|
||||
[super setText:text];
|
||||
[self sendActionsForControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -19,11 +19,13 @@
|
|||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#include "linphonecore.h"
|
||||
|
||||
@interface UICallCell : UITableViewCell {
|
||||
UIView *firstBackground;
|
||||
UIView *otherBackground;
|
||||
|
||||
UILabel *numberLabel;
|
||||
UILabel *addressLabel;
|
||||
UILabel *timeLabel;
|
||||
UIImageView *stateView;
|
||||
}
|
||||
|
|
@ -31,11 +33,12 @@
|
|||
@property (nonatomic, retain) IBOutlet UIView* firstBackground;
|
||||
@property (nonatomic, retain) IBOutlet UIView* otherBackground;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UILabel* numberLabel;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* addressLabel;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* timeLabel;
|
||||
@property (nonatomic, retain) IBOutlet UIImageView* stateView;
|
||||
|
||||
- (void)firstCell;
|
||||
- (void)otherCell;
|
||||
- (void)updateCell:(LinphoneCall *)call;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
@synthesize firstBackground;
|
||||
@synthesize otherBackground;
|
||||
@synthesize stateView;
|
||||
@synthesize numberLabel;
|
||||
@synthesize addressLabel;
|
||||
@synthesize timeLabel;
|
||||
|
||||
- (id)init {
|
||||
|
|
@ -50,4 +50,37 @@
|
|||
[otherBackground setHidden:false];
|
||||
}
|
||||
|
||||
- (void)updateCell:(LinphoneCall *)call {
|
||||
const LinphoneAddress* addr = linphone_call_get_remote_address(call);
|
||||
|
||||
if (addr) {
|
||||
const char* lUserNameChars=linphone_address_get_username(addr);
|
||||
NSString* lUserName = lUserNameChars?[[[NSString alloc] initWithUTF8String:lUserNameChars] autorelease]:NSLocalizedString(@"Unknown",nil);
|
||||
NSMutableString* mss = [[NSMutableString alloc] init];
|
||||
// contact name
|
||||
const char* n = linphone_address_get_display_name(addr);
|
||||
if (n)
|
||||
[mss appendFormat:@"%s", n, nil];
|
||||
else
|
||||
[mss appendFormat:@"%@",lUserName , nil];
|
||||
|
||||
[addressLabel setText:mss];
|
||||
|
||||
// TODO
|
||||
//imageView.image = [[LinphoneManager instance] getImageFromAddressBook:lUserName];
|
||||
[mss release];
|
||||
} else {
|
||||
[addressLabel setText:@"Unknown"];
|
||||
//TODO
|
||||
//imageView.image = nil;
|
||||
}
|
||||
|
||||
|
||||
NSMutableString* msDuration = [[NSMutableString alloc] init ];
|
||||
int duration = linphone_call_get_duration(call);
|
||||
[msDuration appendFormat:@"%02i:%02i", (duration/60), duration - 60 * (duration / 60), nil];
|
||||
[timeLabel setText:msDuration];
|
||||
[msDuration release];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
4744
Classes/LinphoneUI/UICallCell.xib
Normal file
4744
Classes/LinphoneUI/UICallCell.xib
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <AddressBook/AddressBook.h>
|
||||
|
||||
@interface UIContactCell : UITableViewCell {
|
||||
UILabel *firstName;
|
||||
|
|
@ -27,5 +28,5 @@
|
|||
@property (nonatomic, retain) IBOutlet UILabel* firstName;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* lastName;
|
||||
|
||||
- (void) update;
|
||||
- (void)update:(ABRecordRef) record;
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -45,7 +45,31 @@
|
|||
[self setHighlighted:false animated:true];
|
||||
}
|
||||
|
||||
- (void) update {
|
||||
- (void) update:(ABRecordRef) record {
|
||||
CFStringRef lFirstName = ABRecordCopyValue(record, kABPersonFirstNameProperty);
|
||||
CFStringRef lLocalizedFirstName = (lFirstName != nil)?ABAddressBookCopyLocalizedLabel(lFirstName):nil;
|
||||
CFStringRef lLastName = ABRecordCopyValue(record, kABPersonLastNameProperty);
|
||||
CFStringRef lLocalizedLastName = (lFirstName != nil)?ABAddressBookCopyLocalizedLabel(lLastName):nil;
|
||||
|
||||
if(lLocalizedFirstName != nil)
|
||||
[firstName setText: [(NSString *)lLocalizedFirstName retain]];
|
||||
else
|
||||
[firstName setText: @""];
|
||||
|
||||
if(lLocalizedLastName != nil)
|
||||
[lastName setText: [(NSString *)lLocalizedLastName retain]];
|
||||
else
|
||||
[lastName setText: @""];
|
||||
|
||||
if(lLocalizedLastName != nil)
|
||||
CFRelease(lLocalizedLastName);
|
||||
if(lLastName != nil)
|
||||
CFRelease(lLastName);
|
||||
if(lLocalizedFirstName != nil)
|
||||
CFRelease(lLocalizedFirstName);
|
||||
if(lFirstName != nil)
|
||||
CFRelease(lFirstName);
|
||||
|
||||
CGRect firstNameFrame = [firstName frame];
|
||||
CGRect lastNameFrame = [lastName frame];
|
||||
|
||||
|
|
|
|||
|
|
@ -16,21 +16,24 @@
|
|||
* 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>
|
||||
#include "linphonecore.h"
|
||||
|
||||
@interface UIDigitButton : UIButton {
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "UILongTouchButton.h"
|
||||
|
||||
|
||||
@interface UIDigitButton : UILongTouchButton<UILongTouchButtonDelegate> {
|
||||
@private
|
||||
char mDigit;
|
||||
UITextField* mAddress;
|
||||
|
||||
bool_t sendDtmfDuringCall;
|
||||
bool sendDtmfDuringCall;
|
||||
|
||||
}
|
||||
-(void) initWithNumber:(char)digit ;
|
||||
-(void) initWithNumber:(char)digit addressField:(UITextField*) address dtmf:(bool_t)send;
|
||||
-(void) initWithNumber:(char)digit addressField:(UITextField*) address dtmf:(bool)send;
|
||||
|
||||
|
||||
@property bool_t sendDtmfDuringCall;
|
||||
@property bool sendDtmfDuringCall;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -25,58 +25,43 @@
|
|||
|
||||
@synthesize sendDtmfDuringCall;
|
||||
|
||||
|
||||
|
||||
-(void) touchDown:(id) sender {
|
||||
- (void)touchDown:(id) sender {
|
||||
if (mAddress && (!sendDtmfDuringCall || !linphone_core_in_call([LinphoneManager getLc]))) {
|
||||
NSString* newAddress = [NSString stringWithFormat:@"%@%c",mAddress.text,mDigit];
|
||||
[mAddress setText:newAddress];
|
||||
linphone_core_play_dtmf([LinphoneManager getLc], mDigit, -1);
|
||||
if (mDigit == '0') {
|
||||
//start timer for +
|
||||
[self performSelector:@selector(doKeyZeroLongPress) withObject:nil afterDelay:0.5];
|
||||
}
|
||||
} else {
|
||||
linphone_core_send_dtmf([LinphoneManager getLc],mDigit);
|
||||
linphone_core_send_dtmf([LinphoneManager getLc], mDigit);
|
||||
linphone_core_play_dtmf([LinphoneManager getLc], mDigit, 100);
|
||||
}
|
||||
}
|
||||
|
||||
-(void) touchUp:(id) sender {
|
||||
- (void)touchUp:(id) sender {
|
||||
linphone_core_stop_dtmf([LinphoneManager getLc]);
|
||||
if (mDigit == '0') {
|
||||
//cancel timer for +
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget:self
|
||||
selector:@selector(doKeyZeroLongPress)
|
||||
object:nil];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(void)doKeyZeroLongPress {
|
||||
NSString* newAddress = [[mAddress.text substringToIndex: [mAddress.text length]-1] stringByAppendingString:@"+"];
|
||||
[mAddress setText:newAddress];
|
||||
|
||||
- (void)onRepeatTouch {
|
||||
}
|
||||
|
||||
-(void) initWithNumber:(char)digit {
|
||||
- (void)onLongTouch {
|
||||
if (mDigit == '0') {
|
||||
NSString* newAddress = [[mAddress.text substringToIndex: [mAddress.text length]-1] stringByAppendingString:@"+"];
|
||||
[mAddress setText:newAddress];
|
||||
[mAddress sendActionsForControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)initWithNumber:(char)digit {
|
||||
[self initWithNumber:digit addressField:nil dtmf:true];
|
||||
}
|
||||
-(void) initWithNumber:(char)digit addressField:(UITextField*) address dtmf:(bool_t)sendDtmf{
|
||||
|
||||
- (void)initWithNumber:(char)digit addressField:(UITextField*) address dtmf:(bool)sendDtmf{
|
||||
sendDtmfDuringCall = sendDtmf;
|
||||
mDigit=digit ;
|
||||
mDigit=digit;
|
||||
mAddress=address?[address retain]:nil;
|
||||
[self addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
|
||||
[self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside|UIControlEventTouchUpOutside];
|
||||
}
|
||||
/*
|
||||
// Only override drawRect: if you perform custom drawing.
|
||||
// An empty implementation adversely affects performance during animation.
|
||||
- (void)drawRect:(CGRect)rect {
|
||||
// Drawing code.
|
||||
}
|
||||
*/
|
||||
|
||||
- (void)dealloc {
|
||||
[super dealloc];
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
|
||||
@implementation UIEraseButton
|
||||
|
||||
-(void) touchDown:(id) sender {
|
||||
if ([mAddress.text length] > 0) {
|
||||
[mAddress setText:[mAddress.text substringToIndex:[mAddress.text length]-1]];
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@
|
|||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#include "linphonecore.h"
|
||||
|
||||
@interface UIHistoryCell : UITableViewCell {
|
||||
UIImageView* imageView;
|
||||
UILabel* displayName;
|
||||
|
|
@ -28,5 +30,6 @@
|
|||
@property (nonatomic, retain) IBOutlet UILabel* displayName;
|
||||
|
||||
-(IBAction) onDetails: (id) event;
|
||||
- (void)update:(LinphoneCallLog*) callLogs;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -37,10 +37,39 @@
|
|||
return self;
|
||||
}
|
||||
|
||||
-(IBAction) onDetails: (id) event {
|
||||
- (IBAction)onDetails: (id) event {
|
||||
|
||||
}
|
||||
|
||||
- (void)update:(LinphoneCallLog*) callLogs {
|
||||
// Set up the cell...
|
||||
LinphoneAddress* partyToDisplay;
|
||||
NSString *path;
|
||||
if (callLogs->dir == LinphoneCallIncoming) {
|
||||
if (callLogs->status == LinphoneCallSuccess) {
|
||||
path = [[NSBundle mainBundle] pathForResource:callLogs->video_enabled?@"appel-entrant":@"appel-entrant" ofType:@"png"];
|
||||
} else {
|
||||
//missed call
|
||||
path = [[NSBundle mainBundle] pathForResource:@"appel-manque" ofType:@"png"];
|
||||
}
|
||||
partyToDisplay=callLogs->from;
|
||||
|
||||
} else {
|
||||
path = [[NSBundle mainBundle] pathForResource:callLogs->video_enabled?@"appel-sortant":@"appel-sortant" ofType:@"png"];
|
||||
partyToDisplay=callLogs->to;
|
||||
|
||||
}
|
||||
UIImage *image = [UIImage imageWithContentsOfFile:path];
|
||||
|
||||
const char* username = linphone_address_get_username(partyToDisplay)!=0?linphone_address_get_username(partyToDisplay):"";
|
||||
|
||||
//TODO
|
||||
//const char* displayName = linphone_address_get_display_name(partyToDisplay);
|
||||
|
||||
[displayName setText:[NSString stringWithFormat:@"%s", username]];
|
||||
[imageView setImage: image];
|
||||
}
|
||||
|
||||
- (void) dealloc {
|
||||
[displayName release];
|
||||
[imageView release];
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
<object class="IBUIButton" id="364135044">
|
||||
<reference key="NSNextResponder" ref="702431052"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{289, 11}, {22, 22}}</string>
|
||||
<string key="NSFrame">{{276, 0}, {44, 44}}</string>
|
||||
<reference key="NSSuperview" ref="702431052"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
|
|
@ -97,6 +97,10 @@
|
|||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUIImageEdgeInsets.top">11</double>
|
||||
<double key="IBUIImageEdgeInsets.bottom">11</double>
|
||||
<double key="IBUIImageEdgeInsets.left">11</double>
|
||||
<double key="IBUIImageEdgeInsets.right">11</double>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
|
|
@ -109,11 +113,11 @@
|
|||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">bouton-detail-contact-over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">bouton-detail-contact-actif.png</string>
|
||||
</object>
|
||||
|
|
@ -131,7 +135,7 @@
|
|||
<string key="NSFrameSize">{320, 44}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<reference key="NSNextKeyView" ref="811339934"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
|
|
@ -185,9 +189,9 @@
|
|||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="702431052"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="364135044"/>
|
||||
<reference ref="123093962"/>
|
||||
<reference ref="811339934"/>
|
||||
<reference ref="364135044"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
|
|
@ -207,7 +211,7 @@
|
|||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="364135044"/>
|
||||
<reference key="parent" ref="702431052"/>
|
||||
<string key="objectName">details</string>
|
||||
<string key="objectName">detailsButton</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
|
|
@ -220,13 +224,14 @@
|
|||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="2" key="7.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="1" key="7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">12</int>
|
||||
<int key="maxID">13</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
|
|
|||
|
|
@ -18,10 +18,6 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#include "linphoneAppDelegate.h"
|
||||
|
||||
|
||||
|
||||
|
||||
@class ConsoleViewController;
|
||||
@interface MoreViewController : UITableViewController {
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
bool tabBarEnabled;
|
||||
bool statusEnabled;
|
||||
bool fullscreen;
|
||||
PhoneView viewId;
|
||||
}
|
||||
-(id) copy;
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
|
||||
#import "PhoneMainView.h"
|
||||
#import "DialerViewController.h"
|
||||
#import "HistoryViewController.h"
|
||||
|
|
@ -25,13 +27,14 @@
|
|||
|
||||
@implementation ViewsDescription
|
||||
|
||||
-(id) copy {
|
||||
- (id)copy {
|
||||
ViewsDescription *copy = [ViewsDescription alloc];
|
||||
copy->content = self->content;
|
||||
copy->tabBar = self->tabBar;
|
||||
copy->tabBarEnabled = self->tabBarEnabled;
|
||||
copy->statusEnabled = self->statusEnabled;
|
||||
copy->fullscreen = self->fullscreen;
|
||||
copy->viewId = self->viewId;
|
||||
return copy;
|
||||
}
|
||||
@end
|
||||
|
|
@ -48,54 +51,105 @@
|
|||
@synthesize mainTabBarController;
|
||||
@synthesize incomingCallTabBarController;
|
||||
|
||||
+ (void)addSubView:(UIViewController*)controller view:(UIView*)view {
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[controller viewWillAppear:NO];
|
||||
}
|
||||
[view addSubview: controller.view];
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[controller viewDidAppear:NO];
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)removeSubView:(UIViewController*)controller {
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[controller viewWillDisappear:NO];
|
||||
}
|
||||
[controller.view removeFromSuperview];
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[controller viewDidDisappear:NO];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)changeView: (NSNotification*) notif {
|
||||
NSNumber *viewId = [notif.userInfo objectForKey: @"view"];
|
||||
NSNumber *tabBar = [notif.userInfo objectForKey: @"tabBar"];
|
||||
NSNumber *fullscreen = [notif.userInfo objectForKey: @"fullscreen"];
|
||||
|
||||
// Copy view description
|
||||
ViewsDescription *oldViewDescription = (currentViewDescription != nil)? [currentViewDescription copy]: nil;
|
||||
|
||||
// Check view change
|
||||
if(viewId != nil) {
|
||||
PhoneView view = [viewId intValue];
|
||||
currentViewDescription = [[viewDescriptions objectForKey:[NSNumber numberWithInt: view]] copy];
|
||||
ViewsDescription* description = [viewDescriptions objectForKey:[NSNumber numberWithInt: view]];
|
||||
if(description == nil)
|
||||
return;
|
||||
description->viewId = view; // Auto-set viewId
|
||||
if(currentViewDescription == nil || description->viewId != currentViewDescription->viewId) {
|
||||
if(currentViewDescription != nil)
|
||||
[currentViewDescription dealloc];
|
||||
currentViewDescription = [description copy];
|
||||
} else {
|
||||
viewId = nil;
|
||||
}
|
||||
}
|
||||
|
||||
ViewsDescription *description = currentViewDescription;
|
||||
if(description == nil) {
|
||||
|
||||
if(currentViewDescription == nil) {
|
||||
return;
|
||||
}
|
||||
|
||||
UIView *innerView = description->content.view;
|
||||
|
||||
// Change view
|
||||
if(viewId != nil) {
|
||||
for (UIView *view in contentView.subviews) {
|
||||
[view removeFromSuperview];
|
||||
}
|
||||
for (UIView *view in tabBarView.subviews) {
|
||||
[view removeFromSuperview];
|
||||
}
|
||||
|
||||
[contentView addSubview: innerView];
|
||||
[tabBarView addSubview: description->tabBar.view];
|
||||
}
|
||||
|
||||
if(tabBar != nil) {
|
||||
description->tabBarEnabled = [tabBar boolValue];
|
||||
currentViewDescription->tabBarEnabled = [tabBar boolValue];
|
||||
}
|
||||
|
||||
if(fullscreen != nil) {
|
||||
description->fullscreen = [fullscreen boolValue];
|
||||
currentViewDescription->fullscreen = [fullscreen boolValue];
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:currentViewDescription->fullscreen withAnimation:UIStatusBarAnimationSlide ];
|
||||
} else {
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:currentViewDescription->fullscreen withAnimation:UIStatusBarAnimationNone];
|
||||
}
|
||||
|
||||
// View Transitions
|
||||
if(viewId != nil) {
|
||||
if(oldViewDescription != nil) {
|
||||
CATransition* trans = [CATransition animation];
|
||||
[trans setType:kCATransitionPush];
|
||||
[trans setDuration:0.35];
|
||||
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
|
||||
[trans setSubtype:kCATransitionFromRight];
|
||||
[contentView.layer addAnimation:trans forKey:@"Transition"];
|
||||
if((oldViewDescription->statusEnabled == true && currentViewDescription->statusEnabled == false) ||
|
||||
(oldViewDescription->statusEnabled == false && currentViewDescription->statusEnabled == true)) {
|
||||
[stateBarView.layer addAnimation:trans forKey:@"Transition"];
|
||||
}
|
||||
if(oldViewDescription->tabBar != currentViewDescription->tabBar) {
|
||||
[tabBarView.layer addAnimation:trans forKey:@"Transition"];
|
||||
}
|
||||
[PhoneMainView removeSubView: oldViewDescription->content];
|
||||
[PhoneMainView removeSubView: oldViewDescription->tabBar];
|
||||
}
|
||||
}
|
||||
|
||||
// Start animation
|
||||
if(tabBar != nil || fullscreen != nil) {
|
||||
[UIView beginAnimations:@"resize" context:nil];
|
||||
[UIView setAnimationDuration:0.35];
|
||||
[UIView setAnimationBeginsFromCurrentState:TRUE];
|
||||
}
|
||||
|
||||
UIView *innerView = currentViewDescription->content.view;
|
||||
|
||||
CGRect contentFrame = contentView.frame;
|
||||
|
||||
// Resize StateBar
|
||||
CGRect stateBarFrame = stateBarView.frame;
|
||||
if(description->fullscreen)
|
||||
if(currentViewDescription->fullscreen)
|
||||
stateBarFrame.origin.y = -20;
|
||||
else
|
||||
stateBarFrame.origin.y = 0;
|
||||
|
||||
if(description->statusEnabled) {
|
||||
if(currentViewDescription->statusEnabled) {
|
||||
stateBarView.hidden = false;
|
||||
[stateBarView setFrame: stateBarFrame];
|
||||
contentFrame.origin.y = stateBarFrame.size.height + stateBarFrame.origin.y;
|
||||
|
|
@ -106,39 +160,57 @@
|
|||
|
||||
// Resize TabBar
|
||||
CGRect tabFrame = tabBarView.frame;
|
||||
if(description->tabBar != nil && description->tabBarEnabled) {
|
||||
tabBarView.hidden = false;
|
||||
tabFrame.origin.y += tabFrame.size.height;
|
||||
tabFrame.origin.x += tabFrame.size.width;
|
||||
tabFrame.size.height = description->tabBar.view.frame.size.height;
|
||||
tabFrame.size.width = description->tabBar.view.frame.size.width;
|
||||
if(currentViewDescription->tabBar != nil && currentViewDescription->tabBarEnabled) {
|
||||
tabFrame.origin.y = [[UIScreen mainScreen] bounds].size.height - 20;
|
||||
tabFrame.origin.x = [[UIScreen mainScreen] bounds].size.width;
|
||||
tabFrame.size.height = currentViewDescription->tabBar.view.frame.size.height;
|
||||
tabFrame.size.width = currentViewDescription->tabBar.view.frame.size.width;
|
||||
tabFrame.origin.y -= tabFrame.size.height;
|
||||
tabFrame.origin.x -= tabFrame.size.width;
|
||||
[tabBarView setFrame: tabFrame];
|
||||
contentFrame.size.height = tabFrame.origin.y - contentFrame.origin.y;
|
||||
for (UIView *view in description->tabBar.view.subviews) {
|
||||
for (UIView *view in currentViewDescription->tabBar.view.subviews) {
|
||||
if(view.tag == -1) {
|
||||
contentFrame.size.height += view.frame.origin.y;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
tabBarView.hidden = true;
|
||||
contentFrame.size.height = tabFrame.origin.y + tabFrame.size.height;
|
||||
if(description->fullscreen)
|
||||
if(currentViewDescription->fullscreen)
|
||||
contentFrame.size.height += 20;
|
||||
tabFrame.origin.y = [[UIScreen mainScreen] bounds].size.height - 20;
|
||||
}
|
||||
|
||||
// Resize innerView
|
||||
[contentView setFrame: contentFrame];
|
||||
CGRect innerContentFrame = innerView.frame;
|
||||
innerContentFrame.size = contentFrame.size;
|
||||
|
||||
|
||||
// Set frames
|
||||
[contentView setFrame: contentFrame];
|
||||
[innerView setFrame: innerContentFrame];
|
||||
[tabBarView setFrame: tabFrame];
|
||||
|
||||
// Commit animation
|
||||
if(tabBar != nil || fullscreen != nil) {
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
|
||||
// Change view
|
||||
if(viewId != nil) {
|
||||
[PhoneMainView addSubView: currentViewDescription->content view:contentView];
|
||||
[PhoneMainView addSubView: currentViewDescription->tabBar view:tabBarView];
|
||||
}
|
||||
|
||||
// Call abstractCall
|
||||
NSDictionary *dict = [notif.userInfo objectForKey: @"args"];
|
||||
if(dict != nil)
|
||||
[LinphoneManager abstractCall:description->content dict:dict];
|
||||
[LinphoneManager abstractCall:currentViewDescription->content dict:dict];
|
||||
|
||||
// Dealloc old view description
|
||||
if(oldViewDescription != nil) {
|
||||
[oldViewDescription dealloc];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
|
|
@ -290,10 +362,10 @@
|
|||
if (canHideInCallView) {
|
||||
if ([[LinphoneManager instance] currentView] != PhoneView_Dialer) {
|
||||
// Go to dialer view
|
||||
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[NSArray alloc] initWithObjects: @"", nil]
|
||||
NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[[NSArray alloc] initWithObjects: @"", nil] autorelease]
|
||||
, @"setAddress:",
|
||||
nil];
|
||||
nil] autorelease];
|
||||
[[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -59,9 +59,9 @@
|
|||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="813768660"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAxIDAuMDkwOTI0NTczOTEAA</bytes>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="197650205">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
|
|
@ -74,8 +74,8 @@
|
|||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAwLjI4MzE1ODM3MjYgMC4wNTY3ODY4OTE2MSAwAA</bytes>
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
|
|
@ -132,10 +132,7 @@
|
|||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="197650205">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="197650205"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
|
|
@ -935,38 +932,38 @@
|
|||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>image</string>
|
||||
<string>label</string>
|
||||
<string>spinner</string>
|
||||
<string>callQualityImage</string>
|
||||
<string>registrationStateImage</string>
|
||||
<string>registrationStateLabel</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIImageView</string>
|
||||
<string>UIImageView</string>
|
||||
<string>UILabel</string>
|
||||
<string>UIActivityIndicatorView</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>image</string>
|
||||
<string>label</string>
|
||||
<string>spinner</string>
|
||||
<string>callQualityImage</string>
|
||||
<string>registrationStateImage</string>
|
||||
<string>registrationStateLabel</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">image</string>
|
||||
<string key="name">callQualityImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">label</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
<string key="name">registrationStateImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">spinner</string>
|
||||
<string key="candidateClassName">UIActivityIndicatorView</string>
|
||||
<string key="name">registrationStateLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
|
|
|
|||
BIN
Resources/appeler-disabled.png
Normal file
BIN
Resources/appeler-disabled.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
BIN
Resources/backspace-disabled.png
Normal file
BIN
Resources/backspace-disabled.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Resources/switch_camera_default.png
Normal file
BIN
Resources/switch_camera_default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
BIN
Resources/switch_camera_over.png
Normal file
BIN
Resources/switch_camera_over.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
|
|
@ -255,6 +255,16 @@
|
|||
D35498221587716B000081D8 /* UIStateBar.m in Sources */ = {isa = PBXBuildFile; fileRef = D354981F1587716B000081D8 /* UIStateBar.m */; };
|
||||
D35498231587716B000081D8 /* UIStateBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = D35498201587716B000081D8 /* UIStateBar.xib */; };
|
||||
D35498241587716B000081D8 /* UIStateBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = D35498201587716B000081D8 /* UIStateBar.xib */; };
|
||||
D35E757815931E5D0066B1C1 /* switch_camera_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E757515931E5D0066B1C1 /* switch_camera_default.png */; };
|
||||
D35E757915931E5D0066B1C1 /* switch_camera_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E757515931E5D0066B1C1 /* switch_camera_default.png */; };
|
||||
D35E757A15931E5D0066B1C1 /* switch_camera_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E757615931E5D0066B1C1 /* switch_camera_over.png */; };
|
||||
D35E757B15931E5D0066B1C1 /* switch_camera_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E757615931E5D0066B1C1 /* switch_camera_over.png */; };
|
||||
D35E7581159328EB0066B1C1 /* UIAddressTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = D35E7580159328EB0066B1C1 /* UIAddressTextField.m */; };
|
||||
D35E7582159328EB0066B1C1 /* UIAddressTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = D35E7580159328EB0066B1C1 /* UIAddressTextField.m */; };
|
||||
D35E758915932DE60066B1C1 /* backspace-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E758815932DE60066B1C1 /* backspace-disabled.png */; };
|
||||
D35E758A15932DE60066B1C1 /* backspace-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E758815932DE60066B1C1 /* backspace-disabled.png */; };
|
||||
D35E758D15934F360066B1C1 /* appeler-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E758C15934F360066B1C1 /* appeler-disabled.png */; };
|
||||
D35E758E15934F360066B1C1 /* appeler-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D35E758C15934F360066B1C1 /* appeler-disabled.png */; };
|
||||
D36C43C6158F2E5A0048BA40 /* UICallCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D36C43C5158F2E5A0048BA40 /* UICallCell.m */; };
|
||||
D36C43C7158F2E5A0048BA40 /* UICallCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D36C43C5158F2E5A0048BA40 /* UICallCell.m */; };
|
||||
D36C43CA158F2EE50048BA40 /* UICallCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D36C43C9158F2EE50048BA40 /* UICallCell.xib */; };
|
||||
|
|
@ -833,6 +843,12 @@
|
|||
D354981E1587716B000081D8 /* UIStateBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIStateBar.h; sourceTree = "<group>"; };
|
||||
D354981F1587716B000081D8 /* UIStateBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIStateBar.m; sourceTree = "<group>"; };
|
||||
D35498201587716B000081D8 /* UIStateBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIStateBar.xib; sourceTree = "<group>"; };
|
||||
D35E757515931E5D0066B1C1 /* switch_camera_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = switch_camera_default.png; path = Resources/switch_camera_default.png; sourceTree = "<group>"; };
|
||||
D35E757615931E5D0066B1C1 /* switch_camera_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = switch_camera_over.png; path = Resources/switch_camera_over.png; sourceTree = "<group>"; };
|
||||
D35E757F159328EA0066B1C1 /* UIAddressTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIAddressTextField.h; sourceTree = "<group>"; };
|
||||
D35E7580159328EB0066B1C1 /* UIAddressTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIAddressTextField.m; sourceTree = "<group>"; };
|
||||
D35E758815932DE60066B1C1 /* backspace-disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "backspace-disabled.png"; path = "Resources/backspace-disabled.png"; sourceTree = "<group>"; };
|
||||
D35E758C15934F360066B1C1 /* appeler-disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "appeler-disabled.png"; path = "Resources/appeler-disabled.png"; sourceTree = "<group>"; };
|
||||
D36C43C4158F2E5A0048BA40 /* UICallCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICallCell.h; sourceTree = "<group>"; };
|
||||
D36C43C5158F2E5A0048BA40 /* UICallCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICallCell.m; sourceTree = "<group>"; };
|
||||
D36C43C9158F2EE50048BA40 /* UICallCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UICallCell.xib; sourceTree = "<group>"; };
|
||||
|
|
@ -1315,6 +1331,8 @@
|
|||
2248E99D12F801C200220D9C /* LinphoneManager.h */,
|
||||
2248E99E12F801C200220D9C /* LinphoneManager.m */,
|
||||
2218A5CE12F973450088A667 /* LogView.h */,
|
||||
D35E757F159328EA0066B1C1 /* UIAddressTextField.h */,
|
||||
D35E7580159328EB0066B1C1 /* UIAddressTextField.m */,
|
||||
22C7555E1317E59C007BC101 /* UIBluetoothButton.h */,
|
||||
22C7555F1317E59C007BC101 /* UIBluetoothButton.m */,
|
||||
D326483B1588950F00930C67 /* UICallBar.h */,
|
||||
|
|
@ -1554,8 +1572,10 @@
|
|||
D31C9C8E158A1C1000756B45 /* appel-manque.png */,
|
||||
D31C9C8F158A1C1000756B45 /* appel-sortant.png */,
|
||||
D3ED3E7015861ABD006C0DE4 /* appeler-actif.png */,
|
||||
D35E758C15934F360066B1C1 /* appeler-disabled.png */,
|
||||
D3ED3E7115861ABD006C0DE4 /* appeler-over.png */,
|
||||
D3ED3E7615861B1B006C0DE4 /* backspace-actif.png */,
|
||||
D35E758815932DE60066B1C1 /* backspace-disabled.png */,
|
||||
D3ED3E7715861B1B006C0DE4 /* backspace-over.png */,
|
||||
D3ED3E511585FFFD006C0DE4 /* barre-noire-top.png */,
|
||||
D354981815876FE7000081D8 /* bouton-detail-contact-actif.png */,
|
||||
|
|
@ -1642,6 +1662,8 @@
|
|||
D3432A5D158A4446001C6B0B /* status_error.png */,
|
||||
D3432A6F158A45AF001C6B0B /* status_inprogress.png */,
|
||||
22226C13118197EC000CA27B /* stopcall-red.png */,
|
||||
D35E757515931E5D0066B1C1 /* switch_camera_default.png */,
|
||||
D35E757615931E5D0066B1C1 /* switch_camera_over.png */,
|
||||
D38327F11580FE3A00FA0D23 /* tchat-actif.png */,
|
||||
D38327FF158100E400FA0D23 /* tchat-over.png */,
|
||||
D38327F21580FE3A00FA0D23 /* tchat-selectionne.png */,
|
||||
|
|
@ -1902,6 +1924,10 @@
|
|||
D36C43F3158F61EA0048BA40 /* pause-champ-numero-over.png in Resources */,
|
||||
D36C43F5158F61EA0048BA40 /* play-champ-numero-actif.png in Resources */,
|
||||
D36C43F7158F61EA0048BA40 /* play-champ-numero-over.png in Resources */,
|
||||
D35E757815931E5D0066B1C1 /* switch_camera_default.png in Resources */,
|
||||
D35E757A15931E5D0066B1C1 /* switch_camera_over.png in Resources */,
|
||||
D35E758915932DE60066B1C1 /* backspace-disabled.png in Resources */,
|
||||
D35E758D15934F360066B1C1 /* appeler-disabled.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -2049,6 +2075,10 @@
|
|||
D36C43F4158F61EA0048BA40 /* pause-champ-numero-over.png in Resources */,
|
||||
D36C43F6158F61EA0048BA40 /* play-champ-numero-actif.png in Resources */,
|
||||
D36C43F8158F61EA0048BA40 /* play-champ-numero-over.png in Resources */,
|
||||
D35E757915931E5D0066B1C1 /* switch_camera_default.png in Resources */,
|
||||
D35E757B15931E5D0066B1C1 /* switch_camera_over.png in Resources */,
|
||||
D35E758A15932DE60066B1C1 /* backspace-disabled.png in Resources */,
|
||||
D35E758E15934F360066B1C1 /* appeler-disabled.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -2097,6 +2127,7 @@
|
|||
D31C9C98158A1CDF00756B45 /* UIHistoryCell.m in Sources */,
|
||||
D32409C3158B49A600C8C119 /* UILongTouchButton.m in Sources */,
|
||||
D36C43C6158F2E5A0048BA40 /* UICallCell.m in Sources */,
|
||||
D35E7581159328EB0066B1C1 /* UIAddressTextField.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -2142,6 +2173,7 @@
|
|||
D31C9C99158A1CDF00756B45 /* UIHistoryCell.m in Sources */,
|
||||
D32409C4158B49A600C8C119 /* UILongTouchButton.m in Sources */,
|
||||
D36C43C7158F2E5A0048BA40 /* UICallCell.m in Sources */,
|
||||
D35E7582159328EB0066B1C1 /* UIAddressTextField.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
2
main.m
2
main.m
|
|
@ -18,8 +18,6 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "LinphoneAppDelegate.h"
|
||||
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue