Merge branch 'new_ui' of git://git.linphone.org/linphone-iphone
Conflicts: Classes/LinphoneUI/UICallBar.m Classes/LinphoneUI/UICallBar.xib linphone.xcodeproj/project.pbxproj
|
|
@ -71,7 +71,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar:@"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
@ -186,6 +188,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
// Save message in database
|
||||
ChatModel *chat = [[ChatModel alloc] init];
|
||||
[chat setRemoteContact:remoteAddress];
|
||||
[chat setLocalContact:@""];
|
||||
[chat setMessage:message];
|
||||
[chat setDirection:[NSNumber numberWithInt:0]];
|
||||
[chat setTime:[NSDate date]];
|
||||
|
|
@ -207,12 +210,16 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
LinphoneAddress *from = [[[notif userInfo] objectForKey:@"from"] pointerValue];
|
||||
ChatModel *chat = [[notif userInfo] objectForKey:@"chat"];
|
||||
if(from != NULL && chat != NULL) {
|
||||
if([[NSString stringWithUTF8String:linphone_address_as_string_uri_only(from)]
|
||||
caseInsensitiveCompare:remoteAddress] == NSOrderedSame) {
|
||||
[chat setRead:[NSNumber numberWithInt:1]];
|
||||
[chat update];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneTextReceived" object:self];
|
||||
[tableController addChatEntry:chat];
|
||||
char *fromStr = linphone_address_as_string_uri_only(from);
|
||||
if(fromStr != NULL) {
|
||||
if([[NSString stringWithUTF8String:fromStr]
|
||||
caseInsensitiveCompare:remoteAddress] == NSOrderedSame) {
|
||||
[chat setRead:[NSNumber numberWithInt:1]];
|
||||
[chat update];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneTextReceived" object:self];
|
||||
[tableController addChatEntry:chat];
|
||||
}
|
||||
ms_free(fromStr);
|
||||
}
|
||||
} else {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Invalid textReceivedEvent"];
|
||||
|
|
|
|||
|
|
@ -92,7 +92,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar: @"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -256,7 +256,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar:@"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,7 +108,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar:@"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,7 +106,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:true
|
||||
tabBar:@"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
@ -123,9 +125,11 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
name:@"LinphoneCallUpdate"
|
||||
object:nil];
|
||||
// Update on show
|
||||
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
|
||||
LinphoneCallState state = (call != NULL)?linphone_call_get_state(call): 0;
|
||||
[self callUpdate:call state:state];
|
||||
if([LinphoneManager isLcReady]) {
|
||||
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
|
||||
LinphoneCallState state = (call != NULL)?linphone_call_get_state(call): 0;
|
||||
[self callUpdate:call state:state];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
|
|
|
|||
|
|
@ -62,7 +62,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar:nil
|
||||
tabBarEnabled:false
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar:@"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
@ -155,7 +157,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
if(addr != NULL) {
|
||||
BOOL useLinphoneAddress = true;
|
||||
// contact name
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress) {
|
||||
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
|
||||
contact = [[[LinphoneManager instance] fastAddressBook] getContact:normalizedSipAddress];
|
||||
|
|
@ -164,6 +166,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
address = [FastAddressBook getContactDisplayName:contact];
|
||||
useLinphoneAddress = false;
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
if(useLinphoneAddress) {
|
||||
const char* lDisplayName = linphone_address_get_display_name(addr);
|
||||
|
|
@ -232,10 +235,11 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
if (addr != NULL) {
|
||||
// contact name
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress != NULL) {
|
||||
[addressButton setTitle:[NSString stringWithUTF8String:lAddress] forState:UIControlStateNormal];
|
||||
[addressButton setHidden:FALSE];
|
||||
ms_free(lAddress);
|
||||
} else {
|
||||
[addressButton setHidden:TRUE];
|
||||
}
|
||||
|
|
@ -278,7 +282,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
addr = callLog->to;
|
||||
}
|
||||
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress == NULL)
|
||||
return;
|
||||
|
||||
NSString *displayName = nil;
|
||||
if(contact != nil) {
|
||||
|
|
@ -301,6 +307,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[controller call:[NSString stringWithUTF8String:lAddress]];
|
||||
}
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@
|
|||
if(addr != NULL) {
|
||||
BOOL useLinphoneAddress = true;
|
||||
// contact name
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress) {
|
||||
address = [NSString stringWithUTF8String:lAddress];
|
||||
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:address];
|
||||
|
|
@ -146,6 +146,7 @@
|
|||
displayName = [FastAddressBook getContactDisplayName:contact];
|
||||
useLinphoneAddress = false;
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
if(useLinphoneAddress) {
|
||||
const char* lDisplayName = linphone_address_get_display_name(addr);
|
||||
|
|
|
|||
|
|
@ -65,7 +65,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar:@"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -219,11 +219,11 @@ enum TableSection {
|
|||
[cell setConferenceCell:inConference];
|
||||
[cell update];
|
||||
|
||||
if (linphone_core_get_calls_nb(lc) > 1 || linphone_core_get_conference_size(lc) > 0) {
|
||||
/*if (linphone_core_get_calls_nb(lc) > 1 || linphone_core_get_conference_size(lc) > 0) {
|
||||
tableView.scrollEnabled = true;
|
||||
} else {
|
||||
tableView.scrollEnabled = false;
|
||||
}
|
||||
}*/
|
||||
return cell;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -91,7 +91,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:true
|
||||
tabBar:@"UICallBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:true
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
@ -125,6 +127,10 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:@"LinphoneCallUpdate"
|
||||
object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:UIDeviceOrientationDidChangeNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
|
@ -139,10 +145,16 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
name:@"LinphoneCallUpdate"
|
||||
object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(orientationChanged:)
|
||||
name:UIDeviceOrientationDidChangeNotification
|
||||
object:nil];
|
||||
|
||||
// Update on show
|
||||
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
|
||||
LinphoneCallState state = (call != NULL)?linphone_call_get_state(call): 0;
|
||||
[self callUpdate:call state:state animated:FALSE];
|
||||
[self orientationUpdate];
|
||||
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[callTableController viewDidAppear:animated];
|
||||
|
|
@ -184,6 +196,30 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
#pragma mark -
|
||||
|
||||
- (void)orientationUpdate {
|
||||
int oldLinphoneOrientation = linphone_core_get_device_rotation([LinphoneManager getLc]);
|
||||
UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
|
||||
int newRotation = 0;
|
||||
switch (orientation) {
|
||||
case UIInterfaceOrientationLandscapeRight:
|
||||
newRotation = 270;
|
||||
break;
|
||||
case UIInterfaceOrientationLandscapeLeft:
|
||||
newRotation = 90;
|
||||
break;
|
||||
default:
|
||||
newRotation = 0;
|
||||
}
|
||||
if (oldLinphoneOrientation != newRotation) {
|
||||
linphone_core_set_device_rotation([LinphoneManager getLc], newRotation);
|
||||
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
|
||||
if (call && linphone_call_params_video_enabled(linphone_call_get_current_params(call))) {
|
||||
//Orientation has changed, must call update call
|
||||
linphone_core_update_call([LinphoneManager getLc], call, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)callUpdate:(LinphoneCall *)call state:(LinphoneCallState)state animated:(BOOL)animated {
|
||||
// Update table
|
||||
[callTableView reloadData];
|
||||
|
|
@ -312,8 +348,8 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
}
|
||||
#endif
|
||||
|
||||
- (void)enableVideoDisplay:(BOOL)animation {
|
||||
if(videoShown)
|
||||
- (void)enableVideoDisplay:(BOOL)animation {
|
||||
if(videoShown && animation)
|
||||
return;
|
||||
|
||||
videoShown = true;
|
||||
|
|
@ -366,7 +402,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
}
|
||||
|
||||
- (void)disableVideoDisplay:(BOOL)animation {
|
||||
if(!videoShown)
|
||||
if(!videoShown && animation)
|
||||
return;
|
||||
|
||||
videoShown = false;
|
||||
|
|
@ -416,6 +452,10 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
|
|||
|
||||
#pragma mark - Event Functions
|
||||
|
||||
- (void)orientationChanged:(NSNotification*) notif {
|
||||
[self orientationUpdate];
|
||||
}
|
||||
|
||||
- (void)callUpdateEvent: (NSNotification*) notif {
|
||||
LinphoneCall *call = [[notif.userInfo objectForKey: @"call"] pointerValue];
|
||||
LinphoneCallState state = [[notif.userInfo objectForKey: @"state"] intValue];
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@
|
|||
</object>
|
||||
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>IBUITableViewController</string>
|
||||
<string>IBUITableView</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIActivityIndicatorView</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUITableViewController</string>
|
||||
<string>IBProxyObject</string>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
|
|
@ -44,13 +44,13 @@
|
|||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIView" id="1009068048">
|
||||
<reference key="NSNextResponder" ref="858247959"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIView" id="1017044170">
|
||||
<reference key="NSNextResponder" ref="1009068048"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{1000, 1000}, {320, 460}}</string>
|
||||
<reference key="NSSuperview" ref="1009068048"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="69034748"/>
|
||||
|
|
@ -63,18 +63,18 @@
|
|||
</object>
|
||||
<object class="IBUIView" id="673568144">
|
||||
<reference key="NSNextResponder" ref="1009068048"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{240, 354}, {80, 106}}</string>
|
||||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{1214, 1354}, {106, 106}}</string>
|
||||
<reference key="NSSuperview" ref="1009068048"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="972197710"/>
|
||||
<reference key="NSNextKeyView" ref="662692377"/>
|
||||
<reference key="IBUIBackgroundColor" ref="95762599"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIActivityIndicatorView" id="69034748">
|
||||
<reference key="NSNextResponder" ref="1009068048"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{141, 212}, {37, 37}}</string>
|
||||
<int key="NSvFlags">301</int>
|
||||
<string key="NSFrame">{{1137, 1214}, {37, 37}}</string>
|
||||
<reference key="NSSuperview" ref="1009068048"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="673568144"/>
|
||||
|
|
@ -86,7 +86,7 @@
|
|||
<int key="IBUIStyle">0</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<string key="NSFrame">{{-1000, -1000}, {2320, 2460}}</string>
|
||||
<reference key="NSSuperview" ref="858247959"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1017044170"/>
|
||||
|
|
@ -103,6 +103,7 @@
|
|||
<string key="NSFrame">{{0, -10}, {320, 480}}</string>
|
||||
<reference key="NSSuperview" ref="858247959"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="972197710"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:418</string>
|
||||
<reference key="IBUIBackgroundColor" ref="95762599"/>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
|
|
@ -133,6 +134,7 @@
|
|||
<string key="NSFrameSize">{85, 33}</string>
|
||||
<reference key="NSSuperview" ref="858247959"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
|
|
@ -166,7 +168,7 @@
|
|||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="662692377"/>
|
||||
<reference key="NSNextKeyView" ref="1009068048"/>
|
||||
<reference key="IBUIBackgroundColor" ref="95762599"/>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
|
|
@ -224,14 +226,6 @@
|
|||
</object>
|
||||
<int key="connectionID">130</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">callTableView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="662692377"/>
|
||||
</object>
|
||||
<int key="connectionID">109</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">videoCameraSwitch</string>
|
||||
|
|
@ -248,6 +242,14 @@
|
|||
</object>
|
||||
<int key="connectionID">167</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">callTableView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="662692377"/>
|
||||
</object>
|
||||
<int key="connectionID">109</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dataSource</string>
|
||||
|
|
@ -347,12 +349,6 @@
|
|||
<reference key="parent" ref="1009068048"/>
|
||||
<string key="objectName">preview</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">106</int>
|
||||
<reference key="object" ref="662692377"/>
|
||||
<reference key="parent" ref="858247959"/>
|
||||
<string key="objectName">callTableView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">160</int>
|
||||
<reference key="object" ref="972197710"/>
|
||||
|
|
@ -368,6 +364,12 @@
|
|||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">callTableController</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">106</int>
|
||||
<reference key="object" ref="662692377"/>
|
||||
<reference key="parent" ref="858247959"/>
|
||||
<string key="objectName">callTableView</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@
|
|||
if (addr != NULL) {
|
||||
BOOL useLinphoneAddress = true;
|
||||
// contact name
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress) {
|
||||
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
|
||||
ABRecordRef contact = [[[LinphoneManager instance] fastAddressBook] getContact:normalizedSipAddress];
|
||||
|
|
@ -106,6 +106,7 @@
|
|||
address = [FastAddressBook getContactDisplayName:contact];
|
||||
useLinphoneAddress = false;
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
if(useLinphoneAddress) {
|
||||
const char* lDisplayName = linphone_address_get_display_name(addr);
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
@interface LinphoneAppDelegate : NSObject <UIApplicationDelegate,UIAlertViewDelegate> {
|
||||
UIWindow *window;
|
||||
CTCallCenter* callCenter;
|
||||
BOOL started;
|
||||
}
|
||||
|
||||
- (void)loadDefaultSettings:(NSDictionary *) appDefaults;
|
||||
|
|
@ -35,6 +36,7 @@
|
|||
- (void)startApplication;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UIWindow *window;
|
||||
@property (assign) BOOL started;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,26 @@ int __aeabi_idiv(int a, int b) {
|
|||
@implementation LinphoneAppDelegate
|
||||
|
||||
@synthesize window;
|
||||
@synthesize started;
|
||||
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (id)init {
|
||||
self = [super init];
|
||||
if(self != nil) {
|
||||
self->started = FALSE;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[window release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)handleGSMCallInteration: (id) cCenter {
|
||||
CTCallCenter* ct = (CTCallCenter*) cCenter;
|
||||
|
|
@ -97,10 +117,10 @@ int __aeabi_idiv(int a, int b) {
|
|||
&& ![[NSUserDefaults standardUserDefaults] boolForKey:@"start_at_boot_preference"]) {
|
||||
// autoboot disabled, doing nothing
|
||||
return;
|
||||
} else if ([LinphoneManager instance] == nil) {
|
||||
[self startApplication];
|
||||
}
|
||||
|
||||
[self startApplication];
|
||||
|
||||
[[LinphoneManager instance] becomeActive];
|
||||
|
||||
if (callCenter == nil) {
|
||||
|
|
@ -187,10 +207,11 @@ int __aeabi_idiv(int a, int b) {
|
|||
}
|
||||
|
||||
- (void)startApplication {
|
||||
/* explicitely instanciate LinphoneManager */
|
||||
LinphoneManager* lm = [[LinphoneManager alloc] init];
|
||||
assert(lm == [LinphoneManager instance]);
|
||||
|
||||
if(started)
|
||||
return;
|
||||
|
||||
started = TRUE;
|
||||
|
||||
[[LinphoneManager instance] startLibLinphone];
|
||||
|
||||
[self setupUI];
|
||||
|
|
@ -204,11 +225,6 @@ int __aeabi_idiv(int a, int b) {
|
|||
- (void)applicationWillTerminate:(UIApplication *)application {
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[window release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
|
||||
if([notification.userInfo objectForKey:@"call"] != nil) {
|
||||
LinphoneCall* call;
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
}
|
||||
|
||||
- (BOOL)valueChangedForKey:(NSString*)key {
|
||||
return [ [changedDict valueForKey:key] boolValue];
|
||||
return [[changedDict valueForKey:key] boolValue];
|
||||
}
|
||||
|
||||
- (void)synchronizeAccount {
|
||||
|
|
|
|||
|
|
@ -139,6 +139,10 @@ struct codec_name_pref_table codec_pref_table[]={
|
|||
}
|
||||
|
||||
+ (LinphoneManager*)instance {
|
||||
if(theLinphoneManager == nil) {
|
||||
theLinphoneManager = [LinphoneManager alloc];
|
||||
[theLinphoneManager init];
|
||||
}
|
||||
return theLinphoneManager;
|
||||
}
|
||||
|
||||
|
|
@ -146,11 +150,9 @@ struct codec_name_pref_table codec_pref_table[]={
|
|||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (id)init {
|
||||
assert (!theLinphoneManager);
|
||||
if ((self = [super init])) {
|
||||
fastAddressBook = [[FastAddressBook alloc] init];
|
||||
database = NULL;
|
||||
theLinphoneManager = self;
|
||||
settingsStore = nil;
|
||||
self.defaultExpires = 600;
|
||||
[self openDatabase];
|
||||
|
|
@ -161,6 +163,7 @@ struct codec_name_pref_table codec_pref_table[]={
|
|||
- (void)dealloc {
|
||||
[fastAddressBook release];
|
||||
[self closeDatabase];
|
||||
[settingsStore release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
|
@ -219,11 +222,12 @@ struct codec_name_pref_table codec_pref_table[]={
|
|||
|
||||
//generic log handler for debug version
|
||||
void linphone_iphone_log_handler(int lev, const char *fmt, va_list args){
|
||||
NSString* format = [NSString stringWithUTF8String:fmt];
|
||||
NSString* format = [[NSString alloc] initWithUTF8String:fmt];
|
||||
NSLogv(format, args);
|
||||
NSString* formatedString = [[NSString alloc] initWithFormat:format arguments:args];
|
||||
//[[LinphoneManager instance] addLog:formatedString];
|
||||
[formatedString release];
|
||||
[format release];
|
||||
}
|
||||
|
||||
//Error/warning log handler
|
||||
|
|
@ -329,15 +333,22 @@ static void linphone_iphone_registration_state(LinphoneCore *lc, LinphoneProxyCo
|
|||
|
||||
- (void)onTextReceived:(LinphoneCore *)lc room:(LinphoneChatRoom *)room from:(const LinphoneAddress *)from message:(const char *)message {
|
||||
|
||||
char *fromStr = linphone_address_as_string_uri_only(from);
|
||||
if(fromStr == NULL)
|
||||
return;
|
||||
|
||||
// Save message in database
|
||||
ChatModel *chat = [[ChatModel alloc] init];
|
||||
[chat setRemoteContact:[NSString stringWithUTF8String:linphone_address_as_string_uri_only(from)]];
|
||||
[chat setLocalContact:@""];
|
||||
[chat setRemoteContact:[NSString stringWithUTF8String:fromStr]];
|
||||
[chat setMessage:[NSString stringWithUTF8String:message]];
|
||||
[chat setDirection:[NSNumber numberWithInt:1]];
|
||||
[chat setTime:[NSDate date]];
|
||||
[chat setRead:[NSNumber numberWithInt:0]];
|
||||
[chat create];
|
||||
|
||||
ms_free(fromStr);
|
||||
|
||||
// Post event
|
||||
NSDictionary* dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[NSValue valueWithPointer:room], @"room",
|
||||
|
|
@ -635,11 +646,6 @@ static LinphoneCoreVTable linphonec_vtable = {
|
|||
proxyReachability=nil;
|
||||
|
||||
}
|
||||
|
||||
if(settingsStore != nil) {
|
||||
[settingsStore release];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (BOOL)enterBackgroundMode {
|
||||
|
|
|
|||
|
|
@ -25,8 +25,9 @@
|
|||
#import "UIVideoButton.h"
|
||||
#import "UIHangUpButton.h"
|
||||
#import "UIDigitButton.h"
|
||||
#import "TPMultiLayoutViewController.h"
|
||||
|
||||
@interface UICallBar: UIViewController {
|
||||
@interface UICallBar: TPMultiLayoutViewController {
|
||||
UIPauseButton* pauseButton;
|
||||
UIButton* conferenceButton;
|
||||
UIVideoButton* videoButton;
|
||||
|
|
|
|||
|
|
@ -141,35 +141,70 @@
|
|||
// Set selected+disabled background: IB lack !
|
||||
[videoButton setImage:[UIImage imageNamed:@"video_on_disabled.png"]
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[videoButton tag]]
|
||||
setImage:[UIImage imageNamed:@"video_on_disabled_landscape.png"]
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[videoButton setImage:[UIImage imageNamed:@"video_on_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[videoButton tag]]
|
||||
setImage:[UIImage imageNamed:@"video_on_over_landscape.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
||||
|
||||
// Set selected+disabled background: IB lack !
|
||||
[speakerButton setImage:[UIImage imageNamed:@"speaker_on_disabled.png"]
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[speakerButton tag]]
|
||||
setImage:[UIImage imageNamed:@"speaker_on_disabled_landscape.png"]
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[speakerButton setImage:[UIImage imageNamed:@"speaker_on_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[speakerButton tag]]
|
||||
setImage:[UIImage imageNamed:@"sspeaker_on_over_landscape.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
||||
|
||||
// Set selected+disabled background: IB lack !
|
||||
[microButton setImage:[UIImage imageNamed:@"micro_on_disabled.png"]
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[microButton tag]]
|
||||
setImage:[UIImage imageNamed:@"micro_on_disabled_landscape.png"]
|
||||
forState:(UIControlStateDisabled | UIControlStateSelected)];
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[microButton setImage:[UIImage imageNamed:@"micro_on_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[microButton tag]]
|
||||
setImage:[UIImage imageNamed:@"micro_on_over_landscape.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[pauseButton setImage:[UIImage imageNamed:@"pause_on_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[pauseButton tag]]
|
||||
setImage:[UIImage imageNamed:@"pause_on_over_landscape.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[optionsButton setImage:[UIImage imageNamed:@"options_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[optionsButton tag]]
|
||||
setImage:[UIImage imageNamed:@"options_over_landscape.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[dialerButton setImage:[UIImage imageNamed:@"dialer_alt_back_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
[(UIButton*) [landscapeView viewWithTag:[dialerButton tag]]
|
||||
setImage:[UIImage imageNamed:@"dialer_alt_back_over_landscape.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
||||
// Set label multilines: IB lack !
|
||||
[option1Button.titleLabel setLineBreakMode:UILineBreakModeWordWrap];
|
||||
|
|
@ -182,6 +217,9 @@
|
|||
// Set label multilines: IB lack !
|
||||
[option3Button.titleLabel setLineBreakMode:UILineBreakModeWordWrap];
|
||||
[option3Button.titleLabel setTextAlignment:UITextAlignmentCenter];
|
||||
|
||||
[optionsView setHidden:TRUE];
|
||||
[padView setHidden:TRUE];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
|
@ -433,4 +471,43 @@
|
|||
linphone_core_add_all_to_conference([LinphoneManager getLc]);
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - TPMultiLayoutViewController Functions
|
||||
|
||||
- (NSDictionary*)attributesForView:(UIView*)view {
|
||||
NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
|
||||
|
||||
[attributes setObject:[NSValue valueWithCGRect:view.frame] forKey:@"frame"];
|
||||
[attributes setObject:[NSValue valueWithCGRect:view.bounds] forKey:@"bounds"];
|
||||
if([view isKindOfClass:[UIButton class]]) {
|
||||
UIButton *button = (UIButton *)view;
|
||||
[attributes setObject:[button imageForState:UIControlStateNormal]forKey:@"image-normal"];
|
||||
[attributes setObject:[button imageForState:UIControlStateHighlighted]forKey:@"image-highlighted"];
|
||||
[attributes setObject:[button imageForState:UIControlStateDisabled]forKey:@"image-disabled"];
|
||||
[attributes setObject:[button imageForState:UIControlStateSelected]forKey:@"image-selected"];
|
||||
[attributes setObject:[button imageForState:UIControlStateDisabled | UIControlStateHighlighted]forKey:@"image-disabled-highlighted"];
|
||||
[attributes setObject:[button imageForState:UIControlStateSelected | UIControlStateHighlighted]forKey:@"image-selected-highlighted"];
|
||||
[attributes setObject:[button imageForState:UIControlStateSelected | UIControlStateDisabled]forKey:@"image-selected-disabled"];
|
||||
}
|
||||
[attributes setObject:[NSNumber numberWithInteger:view.autoresizingMask] forKey:@"autoresizingMask"];
|
||||
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (void)applyAttributes:(NSDictionary*)attributes toView:(UIView*)view {
|
||||
view.frame = [[attributes objectForKey:@"frame"] CGRectValue];
|
||||
view.bounds = [[attributes objectForKey:@"bounds"] CGRectValue];
|
||||
if([view isKindOfClass:[UIButton class]]) {
|
||||
UIButton *button = (UIButton *)view;
|
||||
[button setImage:[attributes objectForKey:@"image-normal"] forState:UIControlStateNormal];
|
||||
[button setImage:[attributes objectForKey:@"image-highlighted"] forState:UIControlStateHighlighted];
|
||||
[button setImage:[attributes objectForKey:@"image-disabled"] forState:UIControlStateDisabled];
|
||||
[button setImage:[attributes objectForKey:@"image-selected"] forState:UIControlStateSelected];
|
||||
[button setImage:[attributes objectForKey:@"image-disabled-highlighted"] forState:UIControlStateDisabled | UIControlStateHighlighted];
|
||||
[button setImage:[attributes objectForKey:@"image-selected-highlighted"] forState:UIControlStateSelected | UIControlStateHighlighted];
|
||||
[button setImage:[attributes objectForKey:@"image-selected-disabled"] forState:UIControlStateSelected | UIControlStateDisabled];
|
||||
}
|
||||
view.autoresizingMask = [[attributes objectForKey:@"autoresizingMask"] integerValue];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@
|
|||
if(addr != NULL) {
|
||||
BOOL useLinphoneAddress = true;
|
||||
// contact name
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress) {
|
||||
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
|
||||
ABRecordRef contact = [[[LinphoneManager instance] fastAddressBook] getContact:normalizedSipAddress];
|
||||
|
|
@ -180,6 +180,7 @@
|
|||
address = [FastAddressBook getContactDisplayName:contact];
|
||||
useLinphoneAddress = false;
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
if(useLinphoneAddress) {
|
||||
const char* lDisplayName = linphone_address_get_display_name(addr);
|
||||
|
|
|
|||
|
|
@ -35,15 +35,15 @@
|
|||
</object>
|
||||
<object class="IBUIView" id="675878782">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">288</int>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIView" id="176711572">
|
||||
<reference key="NSNextResponder" ref="675878782"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIButton" id="846233730">
|
||||
<reference key="NSNextResponder" ref="176711572"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrame">{{0, 63}, {320, 250}}</string>
|
||||
<reference key="NSSuperview" ref="176711572"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
</object>
|
||||
<object class="IBUIImageView" id="942473668">
|
||||
<reference key="NSNextResponder" ref="176711572"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{0, 48}, {320, 262}}</string>
|
||||
<reference key="NSSuperview" ref="176711572"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -97,7 +97,7 @@
|
|||
</object>
|
||||
<object class="IBUIImageView" id="617455101">
|
||||
<reference key="NSNextResponder" ref="176711572"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{80, 65}, {160, 170}}</string>
|
||||
<reference key="NSSuperview" ref="176711572"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -119,16 +119,15 @@
|
|||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="293312528"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="227927177">
|
||||
<reference key="NSNextResponder" ref="675878782"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="1067290601">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrameSize">{320, 63}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -143,7 +142,7 @@
|
|||
</object>
|
||||
<object class="IBUIImageView" id="174867822">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrameSize">{320, 63}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -155,7 +154,7 @@
|
|||
</object>
|
||||
<object class="IBUILabel" id="1040042446">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">294</int>
|
||||
<string key="NSFrame">{{10, 0}, {206, 51}}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -4573,7 +4572,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
</object>
|
||||
<object class="IBUIImageView" id="256572861">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{224, 14}, {25, 25}}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -4584,7 +4583,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
</object>
|
||||
<object class="IBUIButton" id="349911861">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">-2147483356</int>
|
||||
<int key="NSvFlags">-2147483359</int>
|
||||
<string key="NSFrame">{{216, 6}, {41, 41}}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -4614,7 +4613,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
</object>
|
||||
<object class="IBUIButton" id="874892962">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">-2147483356</int>
|
||||
<int key="NSvFlags">-2147483359</int>
|
||||
<string key="NSFrame">{{216, 6}, {41, 41}}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -4648,10 +4647,11 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
</object>
|
||||
<object class="IBUILabel" id="932476762">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{262, 12}, {50, 29}}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
|
|
@ -4676,7 +4676,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
</object>
|
||||
<object class="IBUIButton" id="544229628">
|
||||
<reference key="NSNextResponder" ref="227927177"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<int key="NSvFlags">294</int>
|
||||
<string key="NSFrame">{{0, 5}, {200, 40}}</string>
|
||||
<reference key="NSSuperview" ref="227927177"/>
|
||||
<reference key="NSWindow"/>
|
||||
|
|
@ -4699,7 +4699,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<reference key="NSNextKeyView" ref="1067290601"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="293312528"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
|
|
@ -4709,7 +4708,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<reference key="NSNextKeyView" ref="176711572"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="293312528"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="260763535">
|
||||
|
|
@ -4718,6 +4716,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="293312528"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
|
|
@ -4999,7 +4998,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">59</int>
|
||||
<int key="maxID">75</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#import <QuartzCore/QuartzCore.h>
|
||||
|
||||
#import "LinphoneManager.h"
|
||||
#import "TPMultiLayoutViewController.h"
|
||||
|
||||
@interface UICompositeViewDescription: NSObject{
|
||||
NSString *name;
|
||||
|
|
@ -30,6 +31,8 @@
|
|||
NSString *tabBar;
|
||||
BOOL tabBarEnabled;
|
||||
BOOL fullscreen;
|
||||
BOOL landscapeMode;
|
||||
BOOL portraitMode;
|
||||
}
|
||||
|
||||
@property (retain) NSString *name;
|
||||
|
|
@ -39,6 +42,8 @@
|
|||
@property (retain) NSString *tabBar;
|
||||
@property (assign) BOOL tabBarEnabled;
|
||||
@property (assign) BOOL fullscreen;
|
||||
@property (assign) BOOL landscapeMode;
|
||||
@property (assign) BOOL portraitMode;
|
||||
|
||||
- (id)copy;
|
||||
- (BOOL)equal:(UICompositeViewDescription*) description;
|
||||
|
|
@ -46,7 +51,9 @@
|
|||
stateBarEnabled:(BOOL) stateBarEnabled
|
||||
tabBar:(NSString*)tabBar
|
||||
tabBarEnabled:(BOOL) tabBarEnabled
|
||||
fullscreen:(BOOL) fullscreen;
|
||||
fullscreen:(BOOL) fullscreen
|
||||
landscapeMode:(BOOL) landscapeMode
|
||||
portraitMode:(BOOL) portraitMode;
|
||||
|
||||
@end
|
||||
|
||||
|
|
@ -56,7 +63,7 @@
|
|||
|
||||
@end
|
||||
|
||||
@interface UICompositeViewController : UIViewController {
|
||||
@interface UICompositeViewController : TPMultiLayoutViewController {
|
||||
@private
|
||||
UIView *stateBarView;
|
||||
UIViewController *stateBarViewController;
|
||||
|
|
@ -69,6 +76,7 @@
|
|||
|
||||
UICompositeViewDescription *currentViewDescription;
|
||||
CATransition *viewTransition;
|
||||
UIDeviceOrientation currentOrientation;
|
||||
}
|
||||
|
||||
@property (retain) CATransition *viewTransition;
|
||||
|
|
@ -77,10 +85,9 @@
|
|||
@property (nonatomic, retain) IBOutlet UIView* contentView;
|
||||
@property (nonatomic, retain) IBOutlet UIView* tabBarView;
|
||||
|
||||
- (void) changeView:(UICompositeViewDescription *)description;
|
||||
- (void) setFullScreen:(BOOL) enabled;
|
||||
- (void) setToolBarHidden:(BOOL) hidden;
|
||||
|
||||
- (UIViewController *) getCurrentViewController;
|
||||
- (void)changeView:(UICompositeViewDescription *)description;
|
||||
- (void)setFullScreen:(BOOL) enabled;
|
||||
- (void)setToolBarHidden:(BOOL) hidden;
|
||||
- (UIViewController *)getCurrentViewController;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
@synthesize tabBar;
|
||||
@synthesize tabBarEnabled;
|
||||
@synthesize fullscreen;
|
||||
@synthesize landscapeMode;
|
||||
@synthesize portraitMode;
|
||||
|
||||
- (id)copy {
|
||||
UICompositeViewDescription *copy = [UICompositeViewDescription alloc];
|
||||
|
|
@ -37,6 +39,8 @@
|
|||
copy.tabBar = self.tabBar;
|
||||
copy.tabBarEnabled = self.tabBarEnabled;
|
||||
copy.fullscreen = self.fullscreen;
|
||||
copy.landscapeMode = self.landscapeMode;
|
||||
copy.portraitMode = self.portraitMode;
|
||||
return copy;
|
||||
}
|
||||
|
||||
|
|
@ -48,7 +52,9 @@
|
|||
stateBarEnabled:(BOOL) astateBarEnabled
|
||||
tabBar:(NSString*)atabBar
|
||||
tabBarEnabled:(BOOL) atabBarEnabled
|
||||
fullscreen:(BOOL) afullscreen {
|
||||
fullscreen:(BOOL) afullscreen
|
||||
landscapeMode:(BOOL) alandscapeMode
|
||||
portraitMode:(BOOL) aportraitMode {
|
||||
self.name = aname;
|
||||
self.content = acontent;
|
||||
self.stateBar = astateBar;
|
||||
|
|
@ -56,6 +62,8 @@
|
|||
self.tabBar = atabBar;
|
||||
self.tabBarEnabled = atabBarEnabled;
|
||||
self.fullscreen = afullscreen;
|
||||
self.landscapeMode = alandscapeMode;
|
||||
self.portraitMode = aportraitMode;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
|
@ -83,6 +91,7 @@
|
|||
|
||||
- (void)initUICompositeViewController {
|
||||
self->viewControllerCache = [[NSMutableDictionary alloc] init];
|
||||
self->currentOrientation = UIDeviceOrientationUnknown;
|
||||
}
|
||||
|
||||
- (id)init{
|
||||
|
|
@ -110,11 +119,14 @@
|
|||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
|
||||
[contentView release];
|
||||
[stateBarView release];
|
||||
[tabBarView release];
|
||||
[viewControllerCache removeAllObjects];
|
||||
[currentViewDescription release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
@ -126,6 +138,12 @@
|
|||
[contentViewController viewWillAppear:animated];
|
||||
[tabBarViewController viewWillAppear:animated];
|
||||
[stateBarViewController viewWillAppear:animated];
|
||||
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(orientationChanged:)
|
||||
name:UIDeviceOrientationDidChangeNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
|
|
@ -140,6 +158,11 @@
|
|||
[contentViewController viewWillDisappear:animated];
|
||||
[tabBarViewController viewWillDisappear:animated];
|
||||
[stateBarViewController viewWillDisappear:animated];
|
||||
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:UIDeviceOrientationDidChangeNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
|
|
@ -149,6 +172,47 @@
|
|||
[stateBarViewController viewDidDisappear:animated];
|
||||
}
|
||||
|
||||
- (void)orientationChanged:(NSNotification *)notification {
|
||||
currentOrientation = [[UIDevice currentDevice] orientation];
|
||||
}
|
||||
|
||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
UIDeviceOrientation correctOrientation = [self getCorrectInterfaceOrientation:toInterfaceOrientation];
|
||||
[super willRotateToInterfaceOrientation:correctOrientation duration:duration];
|
||||
[contentViewController willRotateToInterfaceOrientation:correctOrientation duration:duration];
|
||||
[tabBarViewController willRotateToInterfaceOrientation:correctOrientation duration:duration];
|
||||
[stateBarViewController willRotateToInterfaceOrientation:correctOrientation duration:duration];
|
||||
[self update:nil tabBar:nil fullscreen:nil];
|
||||
}
|
||||
|
||||
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
UIDeviceOrientation correctOrientation = [self getCorrectInterfaceOrientation:toInterfaceOrientation];
|
||||
[super willAnimateRotationToInterfaceOrientation:correctOrientation duration:duration];
|
||||
[contentViewController willAnimateRotationToInterfaceOrientation:correctOrientation duration:duration];
|
||||
[tabBarViewController willAnimateRotationToInterfaceOrientation:correctOrientation duration:duration];
|
||||
[stateBarViewController willAnimateRotationToInterfaceOrientation:correctOrientation duration:duration];
|
||||
}
|
||||
|
||||
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
|
||||
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
||||
[contentViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
||||
[tabBarViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
||||
[stateBarViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
||||
if(currentViewDescription != nil) {
|
||||
if (UIInterfaceOrientationIsPortrait(interfaceOrientation) && [currentViewDescription portraitMode]) {
|
||||
return YES;
|
||||
}
|
||||
if (UIInterfaceOrientationIsLandscape(interfaceOrientation) && [currentViewDescription landscapeMode]) {
|
||||
return YES;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
|
|
@ -189,14 +253,55 @@
|
|||
return controller;
|
||||
}
|
||||
|
||||
- (UIInterfaceOrientation)getCorrectInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
||||
if(currentViewDescription != nil) {
|
||||
if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
|
||||
if ([currentViewDescription portraitMode]) {
|
||||
return interfaceOrientation;
|
||||
} else {
|
||||
return UIInterfaceOrientationLandscapeLeft;
|
||||
}
|
||||
}
|
||||
if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
|
||||
if ([currentViewDescription landscapeMode]) {
|
||||
return interfaceOrientation;
|
||||
} else {
|
||||
return UIInterfaceOrientationPortrait;
|
||||
}
|
||||
}
|
||||
}
|
||||
return UIInterfaceOrientationPortrait;
|
||||
}
|
||||
|
||||
- (void)updateInterfaceOrientation:(UIInterfaceOrientation)correctOrientation {
|
||||
UIInterfaceOrientation orientation;
|
||||
|
||||
orientation = self.interfaceOrientation;
|
||||
[super willRotateToInterfaceOrientation:correctOrientation duration:0];
|
||||
[super didRotateFromInterfaceOrientation:orientation];
|
||||
|
||||
orientation = contentViewController.interfaceOrientation;
|
||||
[contentViewController willRotateToInterfaceOrientation:correctOrientation duration:0];
|
||||
[contentViewController didRotateFromInterfaceOrientation:orientation];
|
||||
|
||||
orientation = tabBarViewController.interfaceOrientation;
|
||||
[tabBarViewController willRotateToInterfaceOrientation:correctOrientation duration:0];
|
||||
[contentViewController didRotateFromInterfaceOrientation:orientation];
|
||||
|
||||
orientation = stateBarViewController.interfaceOrientation;
|
||||
[stateBarViewController willRotateToInterfaceOrientation:correctOrientation duration:0];
|
||||
[stateBarViewController didRotateFromInterfaceOrientation:orientation];
|
||||
}
|
||||
|
||||
#define IPHONE_STATUSBAR_HEIGHT 20
|
||||
|
||||
- (void)update: (UICompositeViewDescription*) description tabBar:(NSNumber*)tabBar fullscreen:(NSNumber*)fullscreen {
|
||||
|
||||
// Copy view description
|
||||
UICompositeViewDescription *oldViewDescription = (currentViewDescription != nil)? [currentViewDescription copy]: nil;
|
||||
UICompositeViewDescription *oldViewDescription = nil;
|
||||
|
||||
if(description != nil) {
|
||||
oldViewDescription = currentViewDescription;
|
||||
currentViewDescription = [description copy];
|
||||
|
||||
// Animate only with a previous screen
|
||||
|
|
@ -222,6 +327,22 @@
|
|||
stateBarViewController = [self getCachedController:description.stateBar];
|
||||
contentViewController = [self getCachedController:description.content];
|
||||
tabBarViewController = [self getCachedController:description.tabBar];
|
||||
|
||||
// Update rotation
|
||||
UIDeviceOrientation correctOrientation = [self getCorrectInterfaceOrientation:currentOrientation];
|
||||
if([UIApplication sharedApplication].statusBarOrientation != correctOrientation) {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:UIDeviceOrientationDidChangeNotification
|
||||
object:nil];
|
||||
[[UIDevice currentDevice] performSelector:NSSelectorFromString(@"setOrientation:") withObject:(id)correctOrientation];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(orientationChanged:)
|
||||
name:UIDeviceOrientationDidChangeNotification
|
||||
object:nil];
|
||||
}
|
||||
[self updateInterfaceOrientation:correctOrientation];
|
||||
} else {
|
||||
oldViewDescription = (currentViewDescription != nil)? [currentViewDescription copy]: nil;
|
||||
}
|
||||
|
||||
if(currentViewDescription == nil) {
|
||||
|
|
|
|||
|
|
@ -32,12 +32,12 @@
|
|||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<int key="NSvFlags">301</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIView" id="481442126">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">303</int>
|
||||
<string key="NSFrame">{{0, 23}, {320, 380}}</string>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{0, 23}, {320, 389}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="548578981"/>
|
||||
|
|
@ -46,39 +46,101 @@
|
|||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<int key="IBUITag">1</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="256276698">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">303</int>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrameSize">{320, 23}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="481442126"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="572758541"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUITag">2</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="548578981">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">303</int>
|
||||
<string key="NSFrame">{{0, 400}, {320, 60}}</string>
|
||||
<int key="NSvFlags">266</int>
|
||||
<string key="NSFrame">{{0, 420}, {320, 60}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="572758541"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUITag">3</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="256276698"/>
|
||||
<reference key="IBUIBackgroundColor" ref="572758541"/>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="915565391">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">301</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIView" id="575003184">
|
||||
<reference key="NSNextResponder" ref="915565391"/>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{0, 24}, {480, 231}}</string>
|
||||
<reference key="NSSuperview" ref="915565391"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="872119935"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="572758541"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<int key="IBUITag">1</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="1051455928">
|
||||
<reference key="NSNextResponder" ref="915565391"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrameSize">{480, 23}</string>
|
||||
<reference key="NSSuperview" ref="915565391"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="575003184"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="572758541"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUITag">2</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="872119935">
|
||||
<reference key="NSNextResponder" ref="915565391"/>
|
||||
<int key="NSvFlags">266</int>
|
||||
<string key="NSFrame">{{0, 260}, {480, 60}}</string>
|
||||
<reference key="NSSuperview" ref="915565391"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="572758541"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUITag">3</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{480, 320}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1051455928"/>
|
||||
<reference key="IBUIBackgroundColor" ref="572758541"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="IBUIInterfaceOrientation">3</int>
|
||||
<int key="interfaceOrientation">3</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
|
|
@ -116,6 +178,22 @@
|
|||
</object>
|
||||
<int key="connectionID">19</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">portraitView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">landscapeView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="915565391"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
|
|
@ -134,6 +212,7 @@
|
|||
<reference ref="548578981"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">Portrait View</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
|
|
@ -164,6 +243,36 @@
|
|||
<reference key="parent" ref="191373211"/>
|
||||
<string key="objectName">tabBar</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="915565391"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1051455928"/>
|
||||
<reference ref="575003184"/>
|
||||
<reference ref="872119935"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">Landscape View</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="1051455928"/>
|
||||
<reference key="parent" ref="915565391"/>
|
||||
<string key="objectName">stateBar</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="575003184"/>
|
||||
<array class="NSMutableArray" key="children"/>
|
||||
<reference key="parent" ref="915565391"/>
|
||||
<string key="objectName">content</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="872119935"/>
|
||||
<reference key="parent" ref="915565391"/>
|
||||
<string key="objectName">tabBar</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
|
|
@ -177,18 +286,46 @@
|
|||
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="16.CustomClassName">UITransparentView</string>
|
||||
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="21.CustomClassName">UITransparentView</string>
|
||||
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="22.CustomClassName">UITransparentView</string>
|
||||
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">19</int>
|
||||
<int key="maxID">25</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UICompositeViewController</string>
|
||||
<string key="className">TPMultiLayoutViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="landscapeView">UIView</string>
|
||||
<string key="portraitView">UIView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="landscapeView">
|
||||
<string key="name">landscapeView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="portraitView">
|
||||
<string key="name">portraitView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/TPMultiLayoutViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UICompositeViewController</string>
|
||||
<string key="superclassName">TPMultiLayoutViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="contentView">UIView</string>
|
||||
<string key="stateBarView">UIView</string>
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@
|
|||
if(addr != NULL) {
|
||||
BOOL useLinphoneAddress = true;
|
||||
// contact name
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress) {
|
||||
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
|
||||
ABRecordRef contact = [[[LinphoneManager instance] fastAddressBook] getContact:normalizedSipAddress];
|
||||
|
|
@ -126,6 +126,7 @@
|
|||
address = [FastAddressBook getContactDisplayName:contact];
|
||||
useLinphoneAddress = false;
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
if(useLinphoneAddress) {
|
||||
const char* lDisplayName = linphone_address_get_display_name(addr);
|
||||
|
|
|
|||
|
|
@ -18,8 +18,9 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "TPMultiLayoutViewController.h"
|
||||
|
||||
@interface UIStateBar : UIViewController {
|
||||
@interface UIStateBar : TPMultiLayoutViewController {
|
||||
UIImageView* registrationStateImage;
|
||||
UILabel* registrationStateLabel;
|
||||
UIImageView* callQualityImage;
|
||||
|
|
|
|||
|
|
@ -242,4 +242,23 @@ NSTimer *callSecurityTimer;
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - TPMultiLayoutViewController Functions
|
||||
|
||||
- (NSDictionary*)attributesForView:(UIView*)view {
|
||||
NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
|
||||
|
||||
[attributes setObject:[NSValue valueWithCGRect:view.frame] forKey:@"frame"];
|
||||
[attributes setObject:[NSValue valueWithCGRect:view.bounds] forKey:@"bounds"];
|
||||
[attributes setObject:[NSNumber numberWithInteger:view.autoresizingMask] forKey:@"autoresizingMask"];
|
||||
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (void)applyAttributes:(NSDictionary*)attributes toView:(UIView*)view {
|
||||
view.frame = [[attributes objectForKey:@"frame"] CGRectValue];
|
||||
view.bounds = [[attributes objectForKey:@"bounds"] CGRectValue];
|
||||
view.autoresizingMask = [[attributes objectForKey:@"autoresizingMask"] integerValue];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -44,9 +44,10 @@
|
|||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="332800514"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="IBUITag">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<object class="NSCustomResource" key="IBUIImage" id="534509476">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">statebar_background.png</string>
|
||||
</object>
|
||||
|
|
@ -59,9 +60,10 @@
|
|||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="200467549"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<object class="NSCustomResource" key="IBUIImage" id="1048926494">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">led_disconnected.png</string>
|
||||
</object>
|
||||
|
|
@ -77,21 +79,22 @@
|
|||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">3</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">CARAMBA</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<object class="NSColor" key="IBUITextColor" id="511295248">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="745016149">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<object class="NSFont" key="IBUIFont" id="588587366">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
|
|
@ -100,22 +103,25 @@
|
|||
<object class="IBUIImageView" id="327031870">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{219, 3}, {27, 17}}</string>
|
||||
<string key="NSFrame">{{252, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="522045680"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">4</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="522045680">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{254, 3}, {27, 17}}</string>
|
||||
<string key="NSFrame">{{287, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<int key="IBUITag">5</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
|
|
@ -125,12 +131,98 @@
|
|||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="393098359"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:196</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="139297653">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="572911811">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="274257756">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{480, 23}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="404338830"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="IBUITag">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="534509476"/>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="404338830">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{6, 6}, {10, 10}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="314750323"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="1048926494"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="314750323">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{22, 0}, {189, 20}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="408451884"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:328</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">3</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">CARAMBA</string>
|
||||
<reference key="IBUITextColor" ref="511295248"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<reference key="IBUIFontDescription" ref="745016149"/>
|
||||
<reference key="IBUIFont" ref="588587366"/>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="408451884">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{412, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="695121572"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">4</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="695121572">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{447, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<int key="IBUITag">5</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{480, 23}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="274257756"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:196</string>
|
||||
<reference key="IBUIBackgroundColor" ref="139297653"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
|
|
@ -174,6 +266,22 @@
|
|||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">portraitView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="848661322"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">landscapeView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="572911811"/>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
|
|
@ -236,6 +344,48 @@
|
|||
<reference key="parent" ref="848661322"/>
|
||||
<string key="objectName">callSecurityImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="572911811"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="274257756"/>
|
||||
<reference ref="314750323"/>
|
||||
<reference ref="404338830"/>
|
||||
<reference ref="408451884"/>
|
||||
<reference ref="695121572"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="695121572"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">callSecurityImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="408451884"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">callQualityImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="274257756"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">background</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="314750323"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">registrationStateLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">24</int>
|
||||
<reference key="object" ref="404338830"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">registrationStateImage</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
|
|
@ -246,6 +396,12 @@
|
|||
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
|
@ -254,13 +410,35 @@
|
|||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">18</int>
|
||||
<int key="maxID">26</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIStateBar</string>
|
||||
<string key="className">TPMultiLayoutViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="landscapeView">UIView</string>
|
||||
<string key="portraitView">UIView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="landscapeView">
|
||||
<string key="name">landscapeView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="portraitView">
|
||||
<string key="name">portraitView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/TPMultiLayoutViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIStateBar</string>
|
||||
<string key="superclassName">TPMultiLayoutViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="callQualityImage">UIImageView</string>
|
||||
<string key="callSecurityImage">UIImageView</string>
|
||||
|
|
|
|||
|
|
@ -68,14 +68,22 @@
|
|||
[LinphoneLogger logc:LinphoneLoggerError format:"Database not ready"];
|
||||
return;
|
||||
}
|
||||
const char *sql = [[NSString stringWithFormat:@"INSERT INTO chat (localContact, remoteContact, direction, message, time, read) VALUES (\"%@\", \"%@\", %i, \"%@\", %f, %i)",
|
||||
localContact, remoteContact, [direction intValue], message, [time timeIntervalSince1970], [read intValue]] UTF8String];
|
||||
|
||||
const char *sql = "INSERT INTO chat (localContact, remoteContact, direction, message, time, read) VALUES (@LOCALCONTACT, @REMOTECONTACT, @DIRECTION, @MESSAGE, @TIME, @READ)";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't prepare the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
sqlite3_bind_text(sqlStatement, 1, [localContact UTF8String], -1, SQLITE_STATIC);
|
||||
sqlite3_bind_text(sqlStatement, 2, [remoteContact UTF8String], -1, SQLITE_STATIC);
|
||||
sqlite3_bind_int(sqlStatement, 3, [direction intValue]);
|
||||
sqlite3_bind_text(sqlStatement, 4, [message UTF8String], -1, SQLITE_STATIC);
|
||||
sqlite3_bind_double(sqlStatement, 5, [time timeIntervalSince1970]);
|
||||
sqlite3_bind_int(sqlStatement, 6, [read intValue]);
|
||||
|
||||
if (sqlite3_step(sqlStatement) != SQLITE_DONE) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Error during execution of query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
sqlite3_finalize(sqlStatement);
|
||||
|
|
@ -95,14 +103,16 @@
|
|||
return nil;
|
||||
}
|
||||
|
||||
const char *sql = [[NSString stringWithFormat:@"SELECT id, localContact, remoteContact, direction, message, time, read FROM chat WHERE id=%i",
|
||||
[chatId intValue]] UTF8String];
|
||||
const char *sql = "SELECT id, localContact, remoteContact, direction, message, time, read FROM chat WHERE id=@ID";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't prepare the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return nil;
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
sqlite3_bind_int(sqlStatement, 1, [chatId intValue]);
|
||||
|
||||
ChatModel* line = nil;
|
||||
int err = sqlite3_step(sqlStatement);
|
||||
if (err == SQLITE_ROW) {
|
||||
|
|
@ -124,14 +134,22 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const char *sql = [[NSString stringWithFormat:@"UPDATE chat SET localContact=\"%@\", remoteContact=\"%@\", direction=%i, message=\"%@\", time=%f, read=%i WHERE id=%i",
|
||||
localContact, remoteContact, [direction intValue], message, [time timeIntervalSince1970], [read intValue], [chatId intValue]] UTF8String];
|
||||
const char *sql = "UPDATE chat SET localContact=@LOCALCONTACT, remoteContact=@REMOTECONTACT, direction=@DIRECTION, message=@MESSAGE, time=@TIME, read=@READ WHERE id=@ID";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't prepare the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
sqlite3_bind_text(sqlStatement, 1, [localContact UTF8String], -1, SQLITE_STATIC);
|
||||
sqlite3_bind_text(sqlStatement, 2, [remoteContact UTF8String], -1, SQLITE_STATIC);
|
||||
sqlite3_bind_int(sqlStatement, 3, [direction intValue]);
|
||||
sqlite3_bind_text(sqlStatement, 4, [message UTF8String], -1, SQLITE_STATIC);
|
||||
sqlite3_bind_double(sqlStatement, 5, [time timeIntervalSince1970]);
|
||||
sqlite3_bind_int(sqlStatement, 6, [read intValue]);
|
||||
sqlite3_bind_int(sqlStatement, 7, [chatId intValue]);
|
||||
|
||||
if (sqlite3_step(sqlStatement) != SQLITE_DONE) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Error during execution of query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
sqlite3_finalize(sqlStatement);
|
||||
|
|
@ -148,14 +166,16 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const char *sql = [[NSString stringWithFormat:@"DELETE FROM chat WHERE id=%i",
|
||||
[chatId intValue]] UTF8String];
|
||||
const char *sql = "DELETE FROM chat WHERE id=@ID";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't prepare the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
sqlite3_bind_int(sqlStatement, 1, [chatId intValue]);
|
||||
|
||||
if (sqlite3_step(sqlStatement) != SQLITE_DONE) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Error during execution of query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
sqlite3_finalize(sqlStatement);
|
||||
|
|
@ -178,7 +198,7 @@
|
|||
|
||||
const char *sql = "SELECT id, localContact, remoteContact, direction, message, time, read FROM chat GROUP BY remoteContact ORDER BY time DESC";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't execute the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return array;
|
||||
}
|
||||
|
|
@ -208,14 +228,16 @@
|
|||
return array;
|
||||
}
|
||||
|
||||
const char *sql = [[NSString stringWithFormat:@"SELECT id, localContact, remoteContact, direction, message, time, read FROM chat WHERE remoteContact=\"%@\" ORDER BY time ASC",
|
||||
contact] UTF8String];
|
||||
const char *sql = "SELECT id, localContact, remoteContact, direction, message, time, read FROM chat WHERE remoteContact=@REMOTECONTACT ORDER BY time ASC";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't execute the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return array;
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
sqlite3_bind_text(sqlStatement, 1, [contact UTF8String], -1, SQLITE_STATIC);
|
||||
|
||||
int err;
|
||||
while ((err = sqlite3_step(sqlStatement)) == SQLITE_ROW) {
|
||||
ChatModel *line = [[ChatModel alloc] initWithData:sqlStatement];
|
||||
|
|
@ -240,14 +262,16 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const char *sql = [[NSString stringWithFormat:@"DELETE FROM chat WHERE remoteContact=\"%@\"",
|
||||
contact] UTF8String];
|
||||
const char *sql = "DELETE FROM chat WHERE remoteContact=@REMOTECONTACT";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't prepare the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
sqlite3_bind_text(sqlStatement, 1, [contact UTF8String], -1, SQLITE_STATIC);
|
||||
|
||||
if (sqlite3_step(sqlStatement) != SQLITE_DONE) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Error during execution of query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
sqlite3_finalize(sqlStatement);
|
||||
|
|
@ -265,9 +289,9 @@
|
|||
return count;
|
||||
}
|
||||
|
||||
const char *sql = [[NSString stringWithFormat:@"SELECT count(*) FROM chat WHERE read=0"] UTF8String];
|
||||
const char *sql = "SELECT count(*) FROM chat WHERE read=0";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't prepare the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return count;
|
||||
}
|
||||
|
|
@ -291,14 +315,16 @@
|
|||
return;
|
||||
}
|
||||
|
||||
const char *sql = [[NSString stringWithFormat:@"UPDATE chat SET read=1 WHERE remoteContact=\"%@\"",
|
||||
contact] UTF8String];
|
||||
const char *sql = "UPDATE chat SET read=1 WHERE remoteContact=@REMOTECONTACT";
|
||||
sqlite3_stmt *sqlStatement;
|
||||
if (sqlite3_prepare(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
if (sqlite3_prepare_v2(database, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Can't prepare the query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare statement
|
||||
sqlite3_bind_text(sqlStatement, 1, [contact UTF8String], -1, SQLITE_STATIC);
|
||||
|
||||
if (sqlite3_step(sqlStatement) != SQLITE_DONE) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Error during execution of query: %s (%s)", sql, sqlite3_errmsg(database)];
|
||||
sqlite3_finalize(sqlStatement);
|
||||
|
|
|
|||
|
|
@ -86,7 +86,11 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
[super viewDidLoad];
|
||||
|
||||
[self.view addSubview: mainViewController.view];
|
||||
[mainViewController.view setFrame:[self.view frame]];
|
||||
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 5.0) {
|
||||
UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
|
||||
[self willRotateToInterfaceOrientation:interfaceOrientation duration:0.2f];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
|
@ -162,6 +166,25 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
self->loadCount--;
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
||||
return [mainViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
|
||||
}
|
||||
|
||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
||||
[mainViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
||||
}
|
||||
|
||||
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
||||
[mainViewController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
||||
}
|
||||
|
||||
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
|
||||
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
||||
[mainViewController didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Event Functions
|
||||
|
||||
|
|
@ -434,6 +457,7 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - ActionSheet Functions
|
||||
|
||||
/* MODIFICATION disable chat
|
||||
|
|
@ -478,7 +502,7 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
if(addr != NULL) {
|
||||
BOOL useLinphoneAddress = true;
|
||||
// contact name
|
||||
const char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
char* lAddress = linphone_address_as_string_uri_only(addr);
|
||||
if(lAddress) {
|
||||
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
|
||||
ABRecordRef contact = [[[LinphoneManager instance] fastAddressBook] getContact:normalizedSipAddress];
|
||||
|
|
@ -486,6 +510,7 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
address = [FastAddressBook getContactDisplayName:contact];
|
||||
useLinphoneAddress = false;
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
if(useLinphoneAddress) {
|
||||
const char* lDisplayName = linphone_address_get_display_name(addr);
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
<reference key="NSSuperview" ref="891400674"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="IBUITag">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
|
|
@ -180,7 +181,7 @@
|
|||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">212</int>
|
||||
<int key="maxID">216</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
|
@ -205,8 +206,48 @@
|
|||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UICompositeViewController</string>
|
||||
<string key="className">TPMultiLayoutViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>landscapeView</string>
|
||||
<string>portraitView</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIView</string>
|
||||
<string>UIView</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>landscapeView</string>
|
||||
<string>portraitView</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">landscapeView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">portraitView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/TPMultiLayoutViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UICompositeViewController</string>
|
||||
<string key="superclassName">TPMultiLayoutViewController</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
|
|
|
|||
|
|
@ -51,7 +51,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar: @"UIMainBar"
|
||||
tabBarEnabled:true
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
@ -73,6 +75,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
settingsController.showDoneButton = FALSE;
|
||||
settingsController.delegate = self;
|
||||
settingsController.showCreditsFooter = FALSE;
|
||||
settingsController.hiddenKeys = [self findHiddenKeys];
|
||||
|
|
|
|||
27
Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.h
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
//
|
||||
// TPMultiLayoutViewController.h
|
||||
//
|
||||
// Created by Michael Tyson on 14/08/2011.
|
||||
// Copyright 2011 A Tasty Pixel. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface TPMultiLayoutViewController : UIViewController {
|
||||
UIView *portraitView;
|
||||
UIView *landscapeView;
|
||||
|
||||
@private
|
||||
NSDictionary *portraitAttributes;
|
||||
NSDictionary *landscapeAttributes;
|
||||
BOOL viewIsCurrentlyPortrait;
|
||||
}
|
||||
|
||||
// Call directly to use with custom animation (override willRotateToInterfaceOrientation to disable the switch there)
|
||||
- (void)applyLayoutForInterfaceOrientation:(UIInterfaceOrientation)newOrientation;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UIView *landscapeView;
|
||||
@property (nonatomic, retain) IBOutlet UIView *portraitView;
|
||||
@property (assign) BOOL viewIsCurrentlyPortrait;
|
||||
|
||||
@end
|
||||
238
Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m
Executable file
|
|
@ -0,0 +1,238 @@
|
|||
//
|
||||
// TPMultiLayoutViewController.m
|
||||
//
|
||||
// Created by Michael Tyson on 14/08/2011.
|
||||
// Copyright 2011 A Tasty Pixel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TPMultiLayoutViewController.h"
|
||||
|
||||
#define VERBOSE_MATCH_FAIL 1 // Comment this out to be less verbose when associated views can't be found
|
||||
|
||||
@interface TPMultiLayoutViewController ()
|
||||
- (NSDictionary*)attributeTableForViewHierarchy:(UIView*)rootView associateWithViewHierarchy:(UIView*)associatedRootView;
|
||||
- (void)addAttributesForSubviewHierarchy:(UIView*)view associatedWithSubviewHierarchy:(UIView*)associatedView toTable:(NSMutableDictionary*)table;
|
||||
- (UIView*)findAssociatedViewForView:(UIView*)view amongViews:(NSArray*)views;
|
||||
- (void)applyAttributeTable:(NSDictionary*)table toViewHierarchy:(UIView*)view;
|
||||
- (NSDictionary*)attributesForView:(UIView*)view;
|
||||
- (void)applyAttributes:(NSDictionary*)attributes toView:(UIView*)view;
|
||||
- (BOOL)shouldDescendIntoSubviewsOfView:(UIView*)view;
|
||||
@end
|
||||
|
||||
@implementation TPMultiLayoutViewController
|
||||
@synthesize portraitView, landscapeView, viewIsCurrentlyPortrait;
|
||||
|
||||
#pragma mark - View lifecycle
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
// Construct attribute tables
|
||||
portraitAttributes = [[self attributeTableForViewHierarchy:portraitView associateWithViewHierarchy:self.view] retain];
|
||||
landscapeAttributes = [[self attributeTableForViewHierarchy:landscapeView associateWithViewHierarchy:self.view] retain];
|
||||
viewIsCurrentlyPortrait = (self.view == portraitView);
|
||||
|
||||
// Don't need to retain the original template view hierarchies any more
|
||||
self.portraitView = nil;
|
||||
self.landscapeView = nil;
|
||||
}
|
||||
|
||||
- (void)viewDidUnload {
|
||||
[super viewDidUnload];
|
||||
|
||||
[portraitAttributes release];
|
||||
portraitAttributes = nil;
|
||||
[landscapeAttributes release];
|
||||
landscapeAttributes = nil;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[portraitAttributes release];
|
||||
portraitAttributes = nil;
|
||||
[landscapeAttributes release];
|
||||
landscapeAttributes = nil;
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
// Display correct layout for orientation
|
||||
/*if ( (UIInterfaceOrientationIsPortrait(self.interfaceOrientation) && !viewIsCurrentlyPortrait) ||
|
||||
(UIInterfaceOrientationIsLandscape(self.interfaceOrientation) && viewIsCurrentlyPortrait) ) {
|
||||
[self applyLayoutForInterfaceOrientation:self.interfaceOrientation];
|
||||
}*/
|
||||
[super viewWillAppear:animated];
|
||||
}
|
||||
|
||||
#pragma mark - Rotation
|
||||
|
||||
- (void)applyLayoutForInterfaceOrientation:(UIInterfaceOrientation)newOrientation {
|
||||
NSDictionary *table = UIInterfaceOrientationIsPortrait(newOrientation) ? portraitAttributes : landscapeAttributes;
|
||||
[self applyAttributeTable:table toViewHierarchy:self.view];
|
||||
viewIsCurrentlyPortrait = UIInterfaceOrientationIsPortrait(newOrientation);
|
||||
}
|
||||
|
||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
||||
if ( (UIInterfaceOrientationIsPortrait(toInterfaceOrientation) && !viewIsCurrentlyPortrait) ||
|
||||
(UIInterfaceOrientationIsLandscape(toInterfaceOrientation) && viewIsCurrentlyPortrait) ) {
|
||||
[self applyLayoutForInterfaceOrientation:toInterfaceOrientation];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Helpers
|
||||
|
||||
- (NSDictionary*)attributeTableForViewHierarchy:(UIView*)rootView associateWithViewHierarchy:(UIView*)associatedRootView {
|
||||
NSMutableDictionary *table = [NSMutableDictionary dictionary];
|
||||
[self addAttributesForSubviewHierarchy:rootView associatedWithSubviewHierarchy:associatedRootView toTable:table];
|
||||
return table;
|
||||
}
|
||||
|
||||
- (void)addAttributesForSubviewHierarchy:(UIView*)view associatedWithSubviewHierarchy:(UIView*)associatedView toTable:(NSMutableDictionary*)table {
|
||||
[table setObject:[self attributesForView:view] forKey:[NSValue valueWithPointer:associatedView]];
|
||||
|
||||
if ( ![self shouldDescendIntoSubviewsOfView:view] ) return;
|
||||
|
||||
for ( UIView *subview in view.subviews ) {
|
||||
UIView *associatedSubView = (view == associatedView ? subview : [self findAssociatedViewForView:subview amongViews:associatedView.subviews]);
|
||||
if ( associatedSubView ) {
|
||||
[self addAttributesForSubviewHierarchy:subview associatedWithSubviewHierarchy:associatedSubView toTable:table];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (UIView*)findAssociatedViewForView:(UIView*)view amongViews:(NSArray*)views {
|
||||
// First try to match tag
|
||||
if ( view.tag != 0 ) {
|
||||
UIView *associatedView = [[views filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"tag = %d", view.tag]] lastObject];
|
||||
if ( associatedView ) return associatedView;
|
||||
}
|
||||
|
||||
// Next, try to match class, targets and actions, if it's a control
|
||||
if ( [view isKindOfClass:[UIControl class]] && [[(UIControl*)view allTargets] count] > 0 ) {
|
||||
for ( UIView *otherView in views ) {
|
||||
if ( [otherView isKindOfClass:[view class]]
|
||||
&& [[(UIControl*)otherView allTargets] isEqualToSet:[(UIControl*)view allTargets]]
|
||||
&& [(UIControl*)otherView allControlEvents] == [(UIControl*)view allControlEvents] ) {
|
||||
// Try to match all actions and targets for each associated control event
|
||||
BOOL allActionsMatch = YES;
|
||||
UIControlEvents controlEvents = [(UIControl*)otherView allControlEvents];
|
||||
for ( id target in [(UIControl*)otherView allTargets] ) {
|
||||
// Iterate over each bit in the UIControlEvents bitfield
|
||||
for ( NSInteger i=0; i<sizeof(UIControlEvents)*8; i++ ) {
|
||||
UIControlEvents event = 1 << i;
|
||||
if ( !(controlEvents & event) ) continue;
|
||||
if ( ![[(UIControl*)otherView actionsForTarget:target forControlEvent:event] isEqualToArray:[(UIControl*)view actionsForTarget:target forControlEvent:event]] ) {
|
||||
allActionsMatch = NO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( !allActionsMatch ) break;
|
||||
}
|
||||
|
||||
if ( allActionsMatch ) {
|
||||
return otherView;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Next, try to match title or image, if it's a button
|
||||
if ( [view isKindOfClass:[UIButton class]] ) {
|
||||
for ( UIView *otherView in views ) {
|
||||
if ( [otherView isKindOfClass:[view class]] && [[(UIButton*)otherView titleForState:UIControlStateNormal] isEqualToString:[(UIButton*)view titleForState:UIControlStateNormal]] ) {
|
||||
return otherView;
|
||||
}
|
||||
}
|
||||
|
||||
for ( UIView *otherView in views ) {
|
||||
if ( [otherView isKindOfClass:[view class]] && [(UIButton*)otherView imageForState:UIControlStateNormal] == [(UIButton*)view imageForState:UIControlStateNormal] ) {
|
||||
return otherView;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Try to match by title if it's a label
|
||||
if ( [view isKindOfClass:[UILabel class]] ) {
|
||||
for ( UIView *otherView in views ) {
|
||||
if ( [otherView isKindOfClass:[view class]] && [[(UILabel*)otherView text] isEqualToString:[(UILabel*)view text]] ) {
|
||||
return otherView;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Try to match by text/placeholder if it's a text field
|
||||
if ( [view isKindOfClass:[UITextField class]] ) {
|
||||
for ( UIView *otherView in views ) {
|
||||
if ( [otherView isKindOfClass:[view class]] && ([(UITextField*)view text] || [(UITextField*)view placeholder]) &&
|
||||
((![(UITextField*)view text] && ![(UITextField*)otherView text]) || [[(UITextField*)otherView text] isEqualToString:[(UITextField*)view text]]) &&
|
||||
((![(UITextField*)view placeholder] && ![(UITextField*)otherView placeholder]) || [[(UITextField*)otherView placeholder] isEqualToString:[(UITextField*)view placeholder]]) ) {
|
||||
return otherView;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Finally, try to match by class
|
||||
NSArray *matches = [views filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"class = %@", [view class]]];
|
||||
if ( [matches count] == 1 ) return [matches lastObject];
|
||||
|
||||
#if VERBOSE_MATCH_FAIL
|
||||
NSMutableString *path = [NSMutableString string];
|
||||
for ( UIView *v = view.superview; v != nil; v = v.superview ) {
|
||||
[path insertString:[NSString stringWithFormat:@"%@ => ", NSStringFromClass([v class])] atIndex:0];
|
||||
}
|
||||
NSLog(@"Couldn't find match for %@%@", path, NSStringFromClass([view class]));
|
||||
|
||||
#endif
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)applyAttributeTable:(NSDictionary*)table toViewHierarchy:(UIView*)view {
|
||||
NSDictionary *attributes = [table objectForKey:[NSValue valueWithPointer:view]];
|
||||
if ( attributes ) {
|
||||
[self applyAttributes:attributes toView:view];
|
||||
}
|
||||
|
||||
//if ( view.hidden ) return;
|
||||
|
||||
if ( ![self shouldDescendIntoSubviewsOfView:view] ) return;
|
||||
|
||||
for ( UIView *subview in view.subviews ) {
|
||||
[self applyAttributeTable:table toViewHierarchy:subview];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSDictionary*)attributesForView:(UIView*)view {
|
||||
NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
|
||||
|
||||
[attributes setObject:[NSValue valueWithCGRect:view.frame] forKey:@"frame"];
|
||||
[attributes setObject:[NSValue valueWithCGRect:view.bounds] forKey:@"bounds"];
|
||||
[attributes setObject:[NSNumber numberWithBool:view.hidden] forKey:@"hidden"];
|
||||
[attributes setObject:[NSNumber numberWithInteger:view.autoresizingMask] forKey:@"autoresizingMask"];
|
||||
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (void)applyAttributes:(NSDictionary*)attributes toView:(UIView*)view {
|
||||
view.frame = [[attributes objectForKey:@"frame"] CGRectValue];
|
||||
view.bounds = [[attributes objectForKey:@"bounds"] CGRectValue];
|
||||
view.hidden = [[attributes objectForKey:@"hidden"] boolValue];
|
||||
view.autoresizingMask = [[attributes objectForKey:@"autoresizingMask"] integerValue];
|
||||
}
|
||||
|
||||
- (BOOL)shouldDescendIntoSubviewsOfView:(UIView*)view {
|
||||
if ( [view isKindOfClass:[UISlider class]] ||
|
||||
[view isKindOfClass:[UISwitch class]] ||
|
||||
[view isKindOfClass:[UITextField class]] ||
|
||||
[view isKindOfClass:[UIWebView class]] ||
|
||||
[view isKindOfClass:[UITableView class]] ||
|
||||
[view isKindOfClass:[UIPickerView class]] ||
|
||||
[view isKindOfClass:[UIDatePicker class]] ||
|
||||
[view isKindOfClass:[UITextView class]] ||
|
||||
[view isKindOfClass:[UIProgressView class]] ||
|
||||
[view isKindOfClass:[UISegmentedControl class]] ) return NO;
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -88,7 +88,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
stateBarEnabled:false
|
||||
tabBar:nil
|
||||
tabBarEnabled:false
|
||||
fullscreen:false];
|
||||
fullscreen:false
|
||||
landscapeMode:false
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
|
|
|||
BIN
Resources/conference_default_landscape.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
Resources/conference_over_landscape.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
Resources/dialer_alt_back_default_landscape.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
Resources/dialer_alt_back_over_landscape.png
Normal file
|
After Width: | Height: | Size: 5 KiB |
BIN
Resources/dialer_alt_default_landscape.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
Resources/dialer_alt_over_landscape.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
Resources/hangup_default_landscape.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
Resources/hangup_over_landscape.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
Resources/micro_off_default_landscape.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Resources/micro_off_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
Resources/micro_off_over_landscape.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Resources/micro_on_default_landscape.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
Resources/micro_on_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
Resources/micro_on_over_landscape.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
Resources/options_add_default_landscape.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
Resources/options_add_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
Resources/options_add_over_landscape.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
Resources/options_default_landscape.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
Resources/options_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 8 KiB |
BIN
Resources/options_over_landscape.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
Resources/options_selected_landscape.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
Resources/options_transfer_default_landscape.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
Resources/options_transfer_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
Resources/options_transfer_over_landscape.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
Resources/pause_off_default_landscape.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
Resources/pause_off_over_landscape.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
Resources/pause_on_default_landscape.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
Resources/pause_on_over_landscape.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
Resources/speaker_off_default_landscape.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Resources/speaker_off_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
Resources/speaker_off_over_landscape.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Resources/speaker_on_default_landscape.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
Resources/speaker_on_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
Resources/speaker_on_over_landscape.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
Resources/statebar_background_landscape.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Resources/transfer_default_landscape.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
Resources/transfer_over_landscape.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
Resources/video_off_default_landscape.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Resources/video_off_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
Resources/video_off_over_landscape.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Resources/video_on_default_landscape.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
Resources/video_on_disabled_landscape.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
Resources/video_on_over_landscape.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
|
|
@ -139,8 +139,6 @@
|
|||
34216F411547EBCD00EA9777 /* VideoZoomHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */; };
|
||||
3422AA5014975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA4F14975EC9000D4E8A /* InCallViewController-ipad.xib */; };
|
||||
3422AA5114975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA4F14975EC9000D4E8A /* InCallViewController-ipad.xib */; };
|
||||
3422AA5314978352000D4E8A /* PhoneViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */; };
|
||||
3422AA5414978352000D4E8A /* PhoneViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */; };
|
||||
344ABDE81484E723007420B6 /* libzrtpcpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDE71484E723007420B6 /* libzrtpcpp.a */; };
|
||||
344ABDF114850AE9007420B6 /* libc++.1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDEF14850AE9007420B6 /* libc++.1.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
344ABDF214850AE9007420B6 /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
|
|
@ -498,6 +496,92 @@
|
|||
D3C2814C15A2D38D0098AA42 /* dialer_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C2814A15A2D38D0098AA42 /* dialer_selected.png */; };
|
||||
D3C2815215A2D64A0098AA42 /* numpad_star_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C2815115A2D64A0098AA42 /* numpad_star_over.png */; };
|
||||
D3C2815315A2D64A0098AA42 /* numpad_star_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C2815115A2D64A0098AA42 /* numpad_star_over.png */; };
|
||||
D3C31A3215BD8DED008ED271 /* conference_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0715BD8DED008ED271 /* conference_default_landscape.png */; };
|
||||
D3C31A3315BD8DED008ED271 /* conference_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0715BD8DED008ED271 /* conference_default_landscape.png */; };
|
||||
D3C31A3415BD8DED008ED271 /* conference_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0815BD8DED008ED271 /* conference_over_landscape.png */; };
|
||||
D3C31A3515BD8DED008ED271 /* conference_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0815BD8DED008ED271 /* conference_over_landscape.png */; };
|
||||
D3C31A3615BD8DED008ED271 /* dialer_alt_back_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0915BD8DED008ED271 /* dialer_alt_back_default_landscape.png */; };
|
||||
D3C31A3715BD8DED008ED271 /* dialer_alt_back_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0915BD8DED008ED271 /* dialer_alt_back_default_landscape.png */; };
|
||||
D3C31A3815BD8DED008ED271 /* dialer_alt_back_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0A15BD8DED008ED271 /* dialer_alt_back_over_landscape.png */; };
|
||||
D3C31A3915BD8DED008ED271 /* dialer_alt_back_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0A15BD8DED008ED271 /* dialer_alt_back_over_landscape.png */; };
|
||||
D3C31A3A15BD8DED008ED271 /* dialer_alt_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0B15BD8DED008ED271 /* dialer_alt_default_landscape.png */; };
|
||||
D3C31A3B15BD8DED008ED271 /* dialer_alt_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0B15BD8DED008ED271 /* dialer_alt_default_landscape.png */; };
|
||||
D3C31A3C15BD8DED008ED271 /* dialer_alt_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0C15BD8DED008ED271 /* dialer_alt_over_landscape.png */; };
|
||||
D3C31A3D15BD8DED008ED271 /* dialer_alt_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0C15BD8DED008ED271 /* dialer_alt_over_landscape.png */; };
|
||||
D3C31A3E15BD8DED008ED271 /* hangup_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0D15BD8DED008ED271 /* hangup_default_landscape.png */; };
|
||||
D3C31A3F15BD8DED008ED271 /* hangup_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0D15BD8DED008ED271 /* hangup_default_landscape.png */; };
|
||||
D3C31A4015BD8DED008ED271 /* hangup_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0E15BD8DED008ED271 /* hangup_over_landscape.png */; };
|
||||
D3C31A4115BD8DED008ED271 /* hangup_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0E15BD8DED008ED271 /* hangup_over_landscape.png */; };
|
||||
D3C31A4215BD8DED008ED271 /* micro_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0F15BD8DED008ED271 /* micro_off_default_landscape.png */; };
|
||||
D3C31A4315BD8DED008ED271 /* micro_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A0F15BD8DED008ED271 /* micro_off_default_landscape.png */; };
|
||||
D3C31A4415BD8DED008ED271 /* micro_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1015BD8DED008ED271 /* micro_off_disabled_landscape.png */; };
|
||||
D3C31A4515BD8DED008ED271 /* micro_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1015BD8DED008ED271 /* micro_off_disabled_landscape.png */; };
|
||||
D3C31A4615BD8DED008ED271 /* micro_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1115BD8DED008ED271 /* micro_off_over_landscape.png */; };
|
||||
D3C31A4715BD8DED008ED271 /* micro_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1115BD8DED008ED271 /* micro_off_over_landscape.png */; };
|
||||
D3C31A4815BD8DED008ED271 /* micro_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1215BD8DED008ED271 /* micro_on_default_landscape.png */; };
|
||||
D3C31A4915BD8DED008ED271 /* micro_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1215BD8DED008ED271 /* micro_on_default_landscape.png */; };
|
||||
D3C31A4A15BD8DED008ED271 /* micro_on_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1315BD8DED008ED271 /* micro_on_disabled_landscape.png */; };
|
||||
D3C31A4B15BD8DED008ED271 /* micro_on_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1315BD8DED008ED271 /* micro_on_disabled_landscape.png */; };
|
||||
D3C31A4C15BD8DED008ED271 /* micro_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1415BD8DED008ED271 /* micro_on_over_landscape.png */; };
|
||||
D3C31A4D15BD8DED008ED271 /* micro_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1415BD8DED008ED271 /* micro_on_over_landscape.png */; };
|
||||
D3C31A4E15BD8DED008ED271 /* options_add_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1515BD8DED008ED271 /* options_add_default_landscape.png */; };
|
||||
D3C31A4F15BD8DED008ED271 /* options_add_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1515BD8DED008ED271 /* options_add_default_landscape.png */; };
|
||||
D3C31A5015BD8DED008ED271 /* options_add_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1615BD8DED008ED271 /* options_add_disabled_landscape.png */; };
|
||||
D3C31A5115BD8DED008ED271 /* options_add_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1615BD8DED008ED271 /* options_add_disabled_landscape.png */; };
|
||||
D3C31A5215BD8DED008ED271 /* options_add_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1715BD8DED008ED271 /* options_add_over_landscape.png */; };
|
||||
D3C31A5315BD8DED008ED271 /* options_add_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1715BD8DED008ED271 /* options_add_over_landscape.png */; };
|
||||
D3C31A5415BD8DED008ED271 /* options_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1815BD8DED008ED271 /* options_default_landscape.png */; };
|
||||
D3C31A5515BD8DED008ED271 /* options_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1815BD8DED008ED271 /* options_default_landscape.png */; };
|
||||
D3C31A5615BD8DED008ED271 /* options_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1915BD8DED008ED271 /* options_disabled_landscape.png */; };
|
||||
D3C31A5715BD8DED008ED271 /* options_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1915BD8DED008ED271 /* options_disabled_landscape.png */; };
|
||||
D3C31A5815BD8DED008ED271 /* options_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1A15BD8DED008ED271 /* options_over_landscape.png */; };
|
||||
D3C31A5915BD8DED008ED271 /* options_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1A15BD8DED008ED271 /* options_over_landscape.png */; };
|
||||
D3C31A5A15BD8DED008ED271 /* options_selected_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1B15BD8DED008ED271 /* options_selected_landscape.png */; };
|
||||
D3C31A5B15BD8DED008ED271 /* options_selected_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1B15BD8DED008ED271 /* options_selected_landscape.png */; };
|
||||
D3C31A5C15BD8DED008ED271 /* options_transfer_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1C15BD8DED008ED271 /* options_transfer_default_landscape.png */; };
|
||||
D3C31A5D15BD8DED008ED271 /* options_transfer_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1C15BD8DED008ED271 /* options_transfer_default_landscape.png */; };
|
||||
D3C31A5E15BD8DED008ED271 /* options_transfer_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1D15BD8DED008ED271 /* options_transfer_disabled_landscape.png */; };
|
||||
D3C31A5F15BD8DED008ED271 /* options_transfer_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1D15BD8DED008ED271 /* options_transfer_disabled_landscape.png */; };
|
||||
D3C31A6015BD8DED008ED271 /* options_transfer_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1E15BD8DED008ED271 /* options_transfer_over_landscape.png */; };
|
||||
D3C31A6115BD8DED008ED271 /* options_transfer_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1E15BD8DED008ED271 /* options_transfer_over_landscape.png */; };
|
||||
D3C31A6215BD8DED008ED271 /* pause_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1F15BD8DED008ED271 /* pause_off_default_landscape.png */; };
|
||||
D3C31A6315BD8DED008ED271 /* pause_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A1F15BD8DED008ED271 /* pause_off_default_landscape.png */; };
|
||||
D3C31A6415BD8DED008ED271 /* pause_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2015BD8DED008ED271 /* pause_off_over_landscape.png */; };
|
||||
D3C31A6515BD8DED008ED271 /* pause_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2015BD8DED008ED271 /* pause_off_over_landscape.png */; };
|
||||
D3C31A6615BD8DED008ED271 /* pause_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2115BD8DED008ED271 /* pause_on_default_landscape.png */; };
|
||||
D3C31A6715BD8DED008ED271 /* pause_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2115BD8DED008ED271 /* pause_on_default_landscape.png */; };
|
||||
D3C31A6815BD8DED008ED271 /* pause_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2215BD8DED008ED271 /* pause_on_over_landscape.png */; };
|
||||
D3C31A6915BD8DED008ED271 /* pause_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2215BD8DED008ED271 /* pause_on_over_landscape.png */; };
|
||||
D3C31A6A15BD8DED008ED271 /* speaker_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2315BD8DED008ED271 /* speaker_off_default_landscape.png */; };
|
||||
D3C31A6B15BD8DED008ED271 /* speaker_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2315BD8DED008ED271 /* speaker_off_default_landscape.png */; };
|
||||
D3C31A6C15BD8DED008ED271 /* speaker_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2415BD8DED008ED271 /* speaker_off_disabled_landscape.png */; };
|
||||
D3C31A6D15BD8DED008ED271 /* speaker_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2415BD8DED008ED271 /* speaker_off_disabled_landscape.png */; };
|
||||
D3C31A6E15BD8DED008ED271 /* speaker_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2515BD8DED008ED271 /* speaker_off_over_landscape.png */; };
|
||||
D3C31A6F15BD8DED008ED271 /* speaker_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2515BD8DED008ED271 /* speaker_off_over_landscape.png */; };
|
||||
D3C31A7015BD8DED008ED271 /* speaker_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2615BD8DED008ED271 /* speaker_on_default_landscape.png */; };
|
||||
D3C31A7115BD8DED008ED271 /* speaker_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2615BD8DED008ED271 /* speaker_on_default_landscape.png */; };
|
||||
D3C31A7215BD8DED008ED271 /* speaker_on_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2715BD8DED008ED271 /* speaker_on_disabled_landscape.png */; };
|
||||
D3C31A7315BD8DED008ED271 /* speaker_on_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2715BD8DED008ED271 /* speaker_on_disabled_landscape.png */; };
|
||||
D3C31A7415BD8DED008ED271 /* speaker_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2815BD8DED008ED271 /* speaker_on_over_landscape.png */; };
|
||||
D3C31A7515BD8DED008ED271 /* speaker_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2815BD8DED008ED271 /* speaker_on_over_landscape.png */; };
|
||||
D3C31A7615BD8DED008ED271 /* statebar_background_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2915BD8DED008ED271 /* statebar_background_landscape.png */; };
|
||||
D3C31A7715BD8DED008ED271 /* statebar_background_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2915BD8DED008ED271 /* statebar_background_landscape.png */; };
|
||||
D3C31A7815BD8DED008ED271 /* transfer_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2A15BD8DED008ED271 /* transfer_default_landscape.png */; };
|
||||
D3C31A7915BD8DED008ED271 /* transfer_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2A15BD8DED008ED271 /* transfer_default_landscape.png */; };
|
||||
D3C31A7A15BD8DED008ED271 /* transfer_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2B15BD8DED008ED271 /* transfer_over_landscape.png */; };
|
||||
D3C31A7B15BD8DED008ED271 /* transfer_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2B15BD8DED008ED271 /* transfer_over_landscape.png */; };
|
||||
D3C31A7C15BD8DED008ED271 /* video_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2C15BD8DED008ED271 /* video_off_default_landscape.png */; };
|
||||
D3C31A7D15BD8DED008ED271 /* video_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2C15BD8DED008ED271 /* video_off_default_landscape.png */; };
|
||||
D3C31A7E15BD8DED008ED271 /* video_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2D15BD8DED008ED271 /* video_off_disabled_landscape.png */; };
|
||||
D3C31A7F15BD8DED008ED271 /* video_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2D15BD8DED008ED271 /* video_off_disabled_landscape.png */; };
|
||||
D3C31A8015BD8DED008ED271 /* video_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2E15BD8DED008ED271 /* video_off_over_landscape.png */; };
|
||||
D3C31A8115BD8DED008ED271 /* video_off_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2E15BD8DED008ED271 /* video_off_over_landscape.png */; };
|
||||
D3C31A8215BD8DED008ED271 /* video_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2F15BD8DED008ED271 /* video_on_default_landscape.png */; };
|
||||
D3C31A8315BD8DED008ED271 /* video_on_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A2F15BD8DED008ED271 /* video_on_default_landscape.png */; };
|
||||
D3C31A8415BD8DED008ED271 /* video_on_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A3015BD8DED008ED271 /* video_on_disabled_landscape.png */; };
|
||||
D3C31A8515BD8DED008ED271 /* video_on_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A3015BD8DED008ED271 /* video_on_disabled_landscape.png */; };
|
||||
D3C31A8615BD8DED008ED271 /* video_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A3115BD8DED008ED271 /* video_on_over_landscape.png */; };
|
||||
D3C31A8715BD8DED008ED271 /* video_on_over_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C31A3115BD8DED008ED271 /* video_on_over_landscape.png */; };
|
||||
D3C6526715AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */; };
|
||||
D3C6526815AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */; };
|
||||
D3C6526B15AC228A0092A874 /* contact_ok_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C6526915AC228A0092A874 /* contact_ok_default.png */; };
|
||||
|
|
@ -618,6 +702,8 @@
|
|||
D3F795DE15A5831C0077328B /* chat_back_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F795DB15A5831C0077328B /* chat_back_default.png */; };
|
||||
D3F795DF15A5831C0077328B /* chat_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F795DC15A5831C0077328B /* chat_back_over.png */; };
|
||||
D3F795E015A5831C0077328B /* chat_back_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F795DC15A5831C0077328B /* chat_back_over.png */; };
|
||||
D3F7998115BD32370018C273 /* TPMultiLayoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */; };
|
||||
D3F7998215BD32370018C273 /* TPMultiLayoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */; };
|
||||
D3F83EEC1582021700336684 /* InCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83EEA1582021700336684 /* InCallViewController.m */; };
|
||||
D3F83EED1582021700336684 /* InCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83EEA1582021700336684 /* InCallViewController.m */; };
|
||||
D3F83EEE1582021700336684 /* InCallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3F83EEB1582021700336684 /* InCallViewController.xib */; };
|
||||
|
|
@ -734,6 +820,10 @@
|
|||
D3F9A9E515AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9E115AF100D0045320F /* TPKeyboardAvoidingTableView.m */; };
|
||||
D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; };
|
||||
D3F9A9EF15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; };
|
||||
D3FF9F7F15BFDE1A00EBD584 /* dialer_alt_button_options_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F5115B0265600420DAC /* dialer_alt_button_options_default.png */; };
|
||||
D3FF9F8015BFDE1A00EBD584 /* dialer_alt_button_options_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F5215B0265600420DAC /* dialer_alt_button_options_over.png */; };
|
||||
D3FF9F8115BFDE1A00EBD584 /* dialer_alt_button_options_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F5115B0265600420DAC /* dialer_alt_button_options_default.png */; };
|
||||
D3FF9F8215BFDE1A00EBD584 /* dialer_alt_button_options_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3E84F5215B0265600420DAC /* dialer_alt_button_options_over.png */; };
|
||||
F476004B147AAF2800FFF19B /* liblinphone.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB911475562600DEE054 /* liblinphone.a */; };
|
||||
F476004C147AAF4600FFF19B /* libmediastreamer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB8F147555C800DEE054 /* libmediastreamer.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
|
@ -1023,7 +1113,7 @@
|
|||
22C7564A13265C6A007BC101 /* x509_vfy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509_vfy.h; sourceTree = "<group>"; };
|
||||
22C7564B13265C6A007BC101 /* x509v3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509v3.h; sourceTree = "<group>"; };
|
||||
22D1B68012A3E0BE001AE361 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = usr/lib/libresolv.dylib; sourceTree = SDKROOT; };
|
||||
22D8F187147548E2008C97DB /* linphone-no-gpl-thirdparties.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "linphone-no-gpl-thirdparties.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
22D8F187147548E2008C97DB /* castel-no-gpl-thirdparties.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "castel-no-gpl-thirdparties.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
22E0A81B111C44E100B04932 /* MoreViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MoreViewController.xib; sourceTree = "<group>"; };
|
||||
22E0A81C111C44E100B04932 /* MoreViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MoreViewController.m; sourceTree = "<group>"; };
|
||||
22E0A81D111C44E100B04932 /* MoreViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoreViewController.h; sourceTree = "<group>"; };
|
||||
|
|
@ -1048,7 +1138,6 @@
|
|||
34216F3E1547EBCD00EA9777 /* VideoZoomHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VideoZoomHandler.h; path = LinphoneUI/VideoZoomHandler.h; sourceTree = "<group>"; };
|
||||
34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VideoZoomHandler.m; path = LinphoneUI/VideoZoomHandler.m; sourceTree = "<group>"; };
|
||||
3422AA4F14975EC9000D4E8A /* InCallViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "InCallViewController-ipad.xib"; sourceTree = "<group>"; };
|
||||
3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "PhoneViewController-ipad.xib"; sourceTree = "<group>"; };
|
||||
344ABDE71484E723007420B6 /* libzrtpcpp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzrtpcpp.a; path = "liblinphone-sdk/apple-darwin/lib/libzrtpcpp.a"; sourceTree = "<group>"; };
|
||||
344ABDEF14850AE9007420B6 /* libc++.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.1.dylib"; path = "usr/lib/libc++.1.dylib"; sourceTree = SDKROOT; };
|
||||
344ABDF014850AE9007420B6 /* libstdc++.6.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.6.dylib"; path = "usr/lib/libstdc++.6.dylib"; sourceTree = SDKROOT; };
|
||||
|
|
@ -1295,6 +1384,49 @@
|
|||
D3B9A3DE15A58C450096EA4E /* chat_send_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_send_over.png; path = Resources/chat_send_over.png; sourceTree = "<group>"; };
|
||||
D3C2814A15A2D38D0098AA42 /* dialer_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_selected.png; path = Resources/dialer_selected.png; sourceTree = "<group>"; };
|
||||
D3C2815115A2D64A0098AA42 /* numpad_star_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = numpad_star_over.png; path = Resources/numpad_star_over.png; sourceTree = "<group>"; };
|
||||
D3C31A0715BD8DED008ED271 /* conference_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = conference_default_landscape.png; path = Resources/conference_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0815BD8DED008ED271 /* conference_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = conference_over_landscape.png; path = Resources/conference_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0915BD8DED008ED271 /* dialer_alt_back_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_alt_back_default_landscape.png; path = Resources/dialer_alt_back_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0A15BD8DED008ED271 /* dialer_alt_back_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_alt_back_over_landscape.png; path = Resources/dialer_alt_back_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0B15BD8DED008ED271 /* dialer_alt_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_alt_default_landscape.png; path = Resources/dialer_alt_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0C15BD8DED008ED271 /* dialer_alt_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_alt_over_landscape.png; path = Resources/dialer_alt_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0D15BD8DED008ED271 /* hangup_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = hangup_default_landscape.png; path = Resources/hangup_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0E15BD8DED008ED271 /* hangup_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = hangup_over_landscape.png; path = Resources/hangup_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A0F15BD8DED008ED271 /* micro_off_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = micro_off_default_landscape.png; path = Resources/micro_off_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1015BD8DED008ED271 /* micro_off_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = micro_off_disabled_landscape.png; path = Resources/micro_off_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1115BD8DED008ED271 /* micro_off_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = micro_off_over_landscape.png; path = Resources/micro_off_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1215BD8DED008ED271 /* micro_on_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = micro_on_default_landscape.png; path = Resources/micro_on_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1315BD8DED008ED271 /* micro_on_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = micro_on_disabled_landscape.png; path = Resources/micro_on_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1415BD8DED008ED271 /* micro_on_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = micro_on_over_landscape.png; path = Resources/micro_on_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1515BD8DED008ED271 /* options_add_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_add_default_landscape.png; path = Resources/options_add_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1615BD8DED008ED271 /* options_add_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_add_disabled_landscape.png; path = Resources/options_add_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1715BD8DED008ED271 /* options_add_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_add_over_landscape.png; path = Resources/options_add_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1815BD8DED008ED271 /* options_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_default_landscape.png; path = Resources/options_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1915BD8DED008ED271 /* options_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_disabled_landscape.png; path = Resources/options_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1A15BD8DED008ED271 /* options_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_over_landscape.png; path = Resources/options_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1B15BD8DED008ED271 /* options_selected_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_selected_landscape.png; path = Resources/options_selected_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1C15BD8DED008ED271 /* options_transfer_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_transfer_default_landscape.png; path = Resources/options_transfer_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1D15BD8DED008ED271 /* options_transfer_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_transfer_disabled_landscape.png; path = Resources/options_transfer_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1E15BD8DED008ED271 /* options_transfer_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_transfer_over_landscape.png; path = Resources/options_transfer_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A1F15BD8DED008ED271 /* pause_off_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_off_default_landscape.png; path = Resources/pause_off_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2015BD8DED008ED271 /* pause_off_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_off_over_landscape.png; path = Resources/pause_off_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2115BD8DED008ED271 /* pause_on_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_on_default_landscape.png; path = Resources/pause_on_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2215BD8DED008ED271 /* pause_on_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pause_on_over_landscape.png; path = Resources/pause_on_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2315BD8DED008ED271 /* speaker_off_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = speaker_off_default_landscape.png; path = Resources/speaker_off_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2415BD8DED008ED271 /* speaker_off_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = speaker_off_disabled_landscape.png; path = Resources/speaker_off_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2515BD8DED008ED271 /* speaker_off_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = speaker_off_over_landscape.png; path = Resources/speaker_off_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2615BD8DED008ED271 /* speaker_on_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = speaker_on_default_landscape.png; path = Resources/speaker_on_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2715BD8DED008ED271 /* speaker_on_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = speaker_on_disabled_landscape.png; path = Resources/speaker_on_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2815BD8DED008ED271 /* speaker_on_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = speaker_on_over_landscape.png; path = Resources/speaker_on_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2915BD8DED008ED271 /* statebar_background_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = statebar_background_landscape.png; path = Resources/statebar_background_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2A15BD8DED008ED271 /* transfer_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = transfer_default_landscape.png; path = Resources/transfer_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2B15BD8DED008ED271 /* transfer_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = transfer_over_landscape.png; path = Resources/transfer_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2C15BD8DED008ED271 /* video_off_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_off_default_landscape.png; path = Resources/video_off_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2D15BD8DED008ED271 /* video_off_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_off_disabled_landscape.png; path = Resources/video_off_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2E15BD8DED008ED271 /* video_off_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_off_over_landscape.png; path = Resources/video_off_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A2F15BD8DED008ED271 /* video_on_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_on_default_landscape.png; path = Resources/video_on_default_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A3015BD8DED008ED271 /* video_on_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_on_disabled_landscape.png; path = Resources/video_on_disabled_landscape.png; sourceTree = "<group>"; };
|
||||
D3C31A3115BD8DED008ED271 /* video_on_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_on_over_landscape.png; path = Resources/video_on_over_landscape.png; sourceTree = "<group>"; };
|
||||
D3C6526515AC1A8F0092A874 /* UIEditableTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIEditableTableViewCell.h; sourceTree = "<group>"; };
|
||||
D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIEditableTableViewCell.m; sourceTree = "<group>"; };
|
||||
D3C6526915AC228A0092A874 /* contact_ok_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_ok_default.png; path = Resources/contact_ok_default.png; sourceTree = "<group>"; };
|
||||
|
|
@ -1374,6 +1506,8 @@
|
|||
D3F795D515A582800077328B /* ChatRoomViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatRoomViewController.xib; sourceTree = "<group>"; };
|
||||
D3F795DB15A5831C0077328B /* chat_back_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_back_default.png; path = Resources/chat_back_default.png; sourceTree = "<group>"; };
|
||||
D3F795DC15A5831C0077328B /* chat_back_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_back_over.png; path = Resources/chat_back_over.png; sourceTree = "<group>"; };
|
||||
D3F7997F15BD32370018C273 /* TPMultiLayoutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TPMultiLayoutViewController.h; path = Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.h; sourceTree = "<group>"; };
|
||||
D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TPMultiLayoutViewController.m; path = Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m; sourceTree = "<group>"; };
|
||||
D3F83EE91582021700336684 /* InCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InCallViewController.h; sourceTree = "<group>"; };
|
||||
D3F83EEA1582021700336684 /* InCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InCallViewController.m; sourceTree = "<group>"; };
|
||||
D3F83EEB1582021700336684 /* InCallViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = InCallViewController.xib; sourceTree = "<group>"; };
|
||||
|
|
@ -1610,7 +1744,6 @@
|
|||
D3F83F8C158229C500336684 /* PhoneMainView.h */,
|
||||
D3F83F8D15822ABD00336684 /* PhoneMainView.m */,
|
||||
D34734791580DDF1003C7B8C /* PhoneMainView.xib */,
|
||||
3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */,
|
||||
D35E759C159460B50066B1C1 /* SettingsViewController.h */,
|
||||
D35E759D159460B50066B1C1 /* SettingsViewController.m */,
|
||||
D32942A31594C94200556A1C /* SettingsViewController.xib */,
|
||||
|
|
@ -1628,7 +1761,7 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
1D6058910D05DD3D006BFB54 /* castel.app */,
|
||||
22D8F187147548E2008C97DB /* linphone-no-gpl-thirdparties.app */,
|
||||
22D8F187147548E2008C97DB /* castel-no-gpl-thirdparties.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -2138,7 +2271,9 @@
|
|||
D32B6E2315A5B2020033019F /* chat_send_disabled.png */,
|
||||
D3B9A3DE15A58C450096EA4E /* chat_send_over.png */,
|
||||
D31AAF61159B5B6E002C6B02 /* conference_default.png */,
|
||||
D3C31A0715BD8DED008ED271 /* conference_default_landscape.png */,
|
||||
D31AAF62159B5B6E002C6B02 /* conference_over.png */,
|
||||
D3C31A0815BD8DED008ED271 /* conference_over_landscape.png */,
|
||||
D3128FE715AABE4E00A2147A /* contact_back_default.png */,
|
||||
D3128FE815AABE4E00A2147A /* contact_back_over.png */,
|
||||
D378906915AC37C800BD776C /* contact_bar_background.png */,
|
||||
|
|
@ -2167,27 +2302,33 @@
|
|||
D3F83F771582253100336684 /* decline_over.png */,
|
||||
D3ED3E441585FB8C006C0DE4 /* dialer_address_background.png */,
|
||||
D3E84F1B15B00F4100420DAC /* dialer_alt_back_default.png */,
|
||||
D3C31A0915BD8DED008ED271 /* dialer_alt_back_default_landscape.png */,
|
||||
D3E84F1C15B00F4100420DAC /* dialer_alt_back_over.png */,
|
||||
D3C31A0A15BD8DED008ED271 /* dialer_alt_back_over_landscape.png */,
|
||||
D3E84F1D15B00F4100420DAC /* dialer_alt_background.png */,
|
||||
D3E84F5115B0265600420DAC /* dialer_alt_button_options_default.png */,
|
||||
D3E84F5215B0265600420DAC /* dialer_alt_button_options_over.png */,
|
||||
D36C43CF158F2F370048BA40 /* dialer_alt_default.png */,
|
||||
D3C31A0B15BD8DED008ED271 /* dialer_alt_default_landscape.png */,
|
||||
D36C43D0158F2F370048BA40 /* dialer_alt_over.png */,
|
||||
D3C31A0C15BD8DED008ED271 /* dialer_alt_over_landscape.png */,
|
||||
D38327ED1580FE3A00FA0D23 /* dialer_default.png */,
|
||||
D38327EE1580FE3A00FA0D23 /* dialer_over.png */,
|
||||
D3C2814A15A2D38D0098AA42 /* dialer_selected.png */,
|
||||
D350F21715A43D3400149E54 /* field_background.png */,
|
||||
D3F83EFA158205A100336684 /* hangup_default.png */,
|
||||
D3C31A0D15BD8DED008ED271 /* hangup_default_landscape.png */,
|
||||
D3F83EFB158205A100336684 /* hangup_over.png */,
|
||||
D3C31A0E15BD8DED008ED271 /* hangup_over_landscape.png */,
|
||||
D36C43CE158F2F370048BA40 /* header_conference.png */,
|
||||
D3F26BFB15987083005F9CAB /* header_incoming.png */,
|
||||
D3157A8815B4466F00DD8C4C /* history_details_add_default.png */,
|
||||
D3157A8915B4466F00DD8C4C /* history_details_add_over.png */,
|
||||
D3ED3E9315872EF1006C0DE4 /* history_all_default.png */,
|
||||
D3ED3E9215872EF1006C0DE4 /* history_all_selected.png */,
|
||||
D347347C1580E5F8003C7B8C /* history_default.png */,
|
||||
D3157A8815B4466F00DD8C4C /* history_details_add_default.png */,
|
||||
D3157A8915B4466F00DD8C4C /* history_details_add_over.png */,
|
||||
D3157A8E15B446CB00DD8C4C /* history_details_back_default.png */,
|
||||
D3157A8F15B446CB00DD8C4C /* history_details_back_over.png */,
|
||||
D347347C1580E5F8003C7B8C /* history_default.png */,
|
||||
D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */,
|
||||
D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */,
|
||||
D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */,
|
||||
|
|
@ -2209,14 +2350,20 @@
|
|||
D354981815876FE7000081D8 /* list_details_default.png */,
|
||||
D354981915876FE7000081D8 /* list_details_over.png */,
|
||||
D3F83EF4158205A100336684 /* micro_off_default.png */,
|
||||
D3C31A0F15BD8DED008ED271 /* micro_off_default_landscape.png */,
|
||||
D35EA76115A2DF8D003E025D /* micro_off_disabled.png */,
|
||||
D3C31A1015BD8DED008ED271 /* micro_off_disabled_landscape.png */,
|
||||
D3F83EF5158205A100336684 /* micro_off_over.png */,
|
||||
D3C31A1115BD8DED008ED271 /* micro_off_over_landscape.png */,
|
||||
D3F83EF6158205A100336684 /* micro_on_default.png */,
|
||||
D3C31A1215BD8DED008ED271 /* micro_on_default_landscape.png */,
|
||||
D35EA76215A2DF8D003E025D /* micro_on_disabled.png */,
|
||||
D3C31A1315BD8DED008ED271 /* micro_on_disabled_landscape.png */,
|
||||
D3F83EF7158205A100336684 /* micro_on_over.png */,
|
||||
D3F9A9AC15AEBC060045320F /* more_default.png */,
|
||||
D3F9A9AD15AEBC060045320F /* more_over.png */,
|
||||
D3F9A9AE15AEBC060045320F /* more_selected.png */,
|
||||
D3C31A1415BD8DED008ED271 /* micro_on_over_landscape.png */,
|
||||
D3F83F3C1582223B00336684 /* numpad_eight_default.png */,
|
||||
D3F83F3D1582223B00336684 /* numpad_eight_over.png */,
|
||||
D3F83F361582223B00336684 /* numpad_five_default.png */,
|
||||
|
|
@ -2244,19 +2391,33 @@
|
|||
2242E312125235120061DDCE /* oldphone-mono-30s.caf */,
|
||||
2237D4081084D7A9001383EE /* oldphone-mono.wav */,
|
||||
D3196D3015A321E2007FEEBA /* options_add_default.png */,
|
||||
D3C31A1515BD8DED008ED271 /* options_add_default_landscape.png */,
|
||||
C9C8253F15AE204D00D493FA /* options_add_disabled.png */,
|
||||
D3C31A1615BD8DED008ED271 /* options_add_disabled_landscape.png */,
|
||||
D3196D3115A321E2007FEEBA /* options_add_over.png */,
|
||||
D3C31A1715BD8DED008ED271 /* options_add_over_landscape.png */,
|
||||
D3D6A3A8159B0EFE005F692C /* options_default.png */,
|
||||
D3C31A1815BD8DED008ED271 /* options_default_landscape.png */,
|
||||
D3D6A3A9159B0EFE005F692C /* options_disabled.png */,
|
||||
D3C31A1915BD8DED008ED271 /* options_disabled_landscape.png */,
|
||||
D3D6A3AA159B0EFE005F692C /* options_over.png */,
|
||||
D3C31A1A15BD8DED008ED271 /* options_over_landscape.png */,
|
||||
C9C8254B15AE207B00D493FA /* options_selected.png */,
|
||||
D3C31A1B15BD8DED008ED271 /* options_selected_landscape.png */,
|
||||
D3196D3215A321E3007FEEBA /* options_transfer_default.png */,
|
||||
D3C31A1C15BD8DED008ED271 /* options_transfer_default_landscape.png */,
|
||||
C9C8254015AE204D00D493FA /* options_transfer_disabled.png */,
|
||||
D3C31A1D15BD8DED008ED271 /* options_transfer_disabled_landscape.png */,
|
||||
D3196D3315A321E3007FEEBA /* options_transfer_over.png */,
|
||||
D3C31A1E15BD8DED008ED271 /* options_transfer_over_landscape.png */,
|
||||
D3F83EF8158205A100336684 /* pause_off_default.png */,
|
||||
D3C31A1F15BD8DED008ED271 /* pause_off_default_landscape.png */,
|
||||
D3F83EF9158205A100336684 /* pause_off_over.png */,
|
||||
D3C31A2015BD8DED008ED271 /* pause_off_over_landscape.png */,
|
||||
D36C43E7158F3F7E0048BA40 /* pause_on_default.png */,
|
||||
D3C31A2115BD8DED008ED271 /* pause_on_default_landscape.png */,
|
||||
D36C43E8158F3F7E0048BA40 /* pause_on_over.png */,
|
||||
D3C31A2215BD8DED008ED271 /* pause_on_over_landscape.png */,
|
||||
22F254801073D99800AC9B3F /* ringback.wav */,
|
||||
70571E1913FABCB000CDD3C2 /* rootca.pem */,
|
||||
D3D6A3A5159B0EFE005F692C /* security_ko.png */,
|
||||
|
|
@ -2277,24 +2438,39 @@
|
|||
D350F21A15A43D3400149E54 /* setup_title_assistant.png */,
|
||||
D350F21B15A43D3400149E54 /* setup_welcome_logo.png */,
|
||||
D3F83EFC158205A100336684 /* speaker_off_default.png */,
|
||||
D3C31A2315BD8DED008ED271 /* speaker_off_default_landscape.png */,
|
||||
D365AA7915A2DE7500CAFE3F /* speaker_off_disabled.png */,
|
||||
D3C31A2415BD8DED008ED271 /* speaker_off_disabled_landscape.png */,
|
||||
D3F83EFD158205A100336684 /* speaker_off_over.png */,
|
||||
D3C31A2515BD8DED008ED271 /* speaker_off_over_landscape.png */,
|
||||
D3F83EFE158205A100336684 /* speaker_on_default.png */,
|
||||
D3C31A2615BD8DED008ED271 /* speaker_on_default_landscape.png */,
|
||||
D365AA7A15A2DE7500CAFE3F /* speaker_on_disabled.png */,
|
||||
D3C31A2715BD8DED008ED271 /* speaker_on_disabled_landscape.png */,
|
||||
D3F83EFF158205A100336684 /* speaker_on_over.png */,
|
||||
D3C31A2815BD8DED008ED271 /* speaker_on_over_landscape.png */,
|
||||
D3ED3E511585FFFD006C0DE4 /* statebar_background.png */,
|
||||
D3C31A2915BD8DED008ED271 /* statebar_background_landscape.png */,
|
||||
D35E757515931E5D0066B1C1 /* switch_camera_default.png */,
|
||||
D35E757615931E5D0066B1C1 /* switch_camera_over.png */,
|
||||
D3C714B2159DB84400705B8E /* toy-mono.wav */,
|
||||
C9C8254115AE204D00D493FA /* transfer_call_default.png */,
|
||||
C9C8254E15AE256100D493FA /* transfer_call_disabled.png */,
|
||||
C9C8254215AE204D00D493FA /* transfer_call_over.png */,
|
||||
D3C31A2A15BD8DED008ED271 /* transfer_default_landscape.png */,
|
||||
D3C31A2B15BD8DED008ED271 /* transfer_over_landscape.png */,
|
||||
D3F83F00158205A100336684 /* video_off_default.png */,
|
||||
D3C31A2C15BD8DED008ED271 /* video_off_default_landscape.png */,
|
||||
D37295DA158B3C9600D2C0C7 /* video_off_disabled.png */,
|
||||
D3C31A2D15BD8DED008ED271 /* video_off_disabled_landscape.png */,
|
||||
D3F83F01158205A100336684 /* video_off_over.png */,
|
||||
D3C31A2E15BD8DED008ED271 /* video_off_over_landscape.png */,
|
||||
D3F83F02158205A100336684 /* video_on_default.png */,
|
||||
D3C31A2F15BD8DED008ED271 /* video_on_default_landscape.png */,
|
||||
D377BBF915A19DA6002B696B /* video_on_disabled.png */,
|
||||
D3C31A3015BD8DED008ED271 /* video_on_disabled_landscape.png */,
|
||||
D3F83F03158205A100336684 /* video_on_over.png */,
|
||||
D3C31A3115BD8DED008ED271 /* video_on_over_landscape.png */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -2318,6 +2494,7 @@
|
|||
D326483615887D5200930C67 /* OrderedDictionary.h */,
|
||||
D326483715887D5200930C67 /* OrderedDictionary.m */,
|
||||
D3F9A9DD15AF0FFE0045320F /* TPKeyboardAvoiding */,
|
||||
D3F7997E15BD31EC0018C273 /* TPMultiLayoutViewController */,
|
||||
D3F9A9EB15AF27620045320F /* UACellBackgroundView */,
|
||||
C9B3A6FD15B485DB006F52EE /* Utils.h */,
|
||||
D35860D515B549B500513429 /* Utils.m */,
|
||||
|
|
@ -2424,6 +2601,15 @@
|
|||
path = Settings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D3F7997E15BD31EC0018C273 /* TPMultiLayoutViewController */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D3F7997F15BD32370018C273 /* TPMultiLayoutViewController.h */,
|
||||
D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */,
|
||||
);
|
||||
name = TPMultiLayoutViewController;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D3F9A9DD15AF0FFE0045320F /* TPKeyboardAvoiding */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -2481,7 +2667,7 @@
|
|||
);
|
||||
name = "linphone-no-gpl-thirdparties";
|
||||
productName = linphone;
|
||||
productReference = 22D8F187147548E2008C97DB /* linphone-no-gpl-thirdparties.app */;
|
||||
productReference = 22D8F187147548E2008C97DB /* castel-no-gpl-thirdparties.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
|
@ -2546,7 +2732,6 @@
|
|||
2214783D1386A2030020F8B8 /* Localizable.strings in Resources */,
|
||||
70571E1A13FABCB000CDD3C2 /* rootca.pem in Resources */,
|
||||
3422AA5014975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */,
|
||||
3422AA5314978352000D4E8A /* PhoneViewController-ipad.xib in Resources */,
|
||||
341FCA8E149798210084BC26 /* linphonerc-ipad in Resources */,
|
||||
D347347A1580DDF1003C7B8C /* PhoneMainView.xib in Resources */,
|
||||
D347347E1580E5F8003C7B8C /* history_default.png in Resources */,
|
||||
|
|
@ -2789,6 +2974,51 @@
|
|||
D3157A9215B446CB00DD8C4C /* history_details_back_over.png in Resources */,
|
||||
D3119E7215B6A4710005D4A4 /* contacts_back_default.png in Resources */,
|
||||
D3119E7415B6A4710005D4A4 /* contacts_back_over.png in Resources */,
|
||||
D3C31A3215BD8DED008ED271 /* conference_default_landscape.png in Resources */,
|
||||
D3C31A3415BD8DED008ED271 /* conference_over_landscape.png in Resources */,
|
||||
D3C31A3615BD8DED008ED271 /* dialer_alt_back_default_landscape.png in Resources */,
|
||||
D3C31A3815BD8DED008ED271 /* dialer_alt_back_over_landscape.png in Resources */,
|
||||
D3C31A3A15BD8DED008ED271 /* dialer_alt_default_landscape.png in Resources */,
|
||||
D3C31A3C15BD8DED008ED271 /* dialer_alt_over_landscape.png in Resources */,
|
||||
D3C31A3E15BD8DED008ED271 /* hangup_default_landscape.png in Resources */,
|
||||
D3C31A4015BD8DED008ED271 /* hangup_over_landscape.png in Resources */,
|
||||
D3C31A4215BD8DED008ED271 /* micro_off_default_landscape.png in Resources */,
|
||||
D3C31A4415BD8DED008ED271 /* micro_off_disabled_landscape.png in Resources */,
|
||||
D3C31A4615BD8DED008ED271 /* micro_off_over_landscape.png in Resources */,
|
||||
D3C31A4815BD8DED008ED271 /* micro_on_default_landscape.png in Resources */,
|
||||
D3C31A4A15BD8DED008ED271 /* micro_on_disabled_landscape.png in Resources */,
|
||||
D3C31A4C15BD8DED008ED271 /* micro_on_over_landscape.png in Resources */,
|
||||
D3C31A4E15BD8DED008ED271 /* options_add_default_landscape.png in Resources */,
|
||||
D3C31A5015BD8DED008ED271 /* options_add_disabled_landscape.png in Resources */,
|
||||
D3C31A5215BD8DED008ED271 /* options_add_over_landscape.png in Resources */,
|
||||
D3C31A5415BD8DED008ED271 /* options_default_landscape.png in Resources */,
|
||||
D3C31A5615BD8DED008ED271 /* options_disabled_landscape.png in Resources */,
|
||||
D3C31A5815BD8DED008ED271 /* options_over_landscape.png in Resources */,
|
||||
D3C31A5A15BD8DED008ED271 /* options_selected_landscape.png in Resources */,
|
||||
D3C31A5C15BD8DED008ED271 /* options_transfer_default_landscape.png in Resources */,
|
||||
D3C31A5E15BD8DED008ED271 /* options_transfer_disabled_landscape.png in Resources */,
|
||||
D3C31A6015BD8DED008ED271 /* options_transfer_over_landscape.png in Resources */,
|
||||
D3C31A6215BD8DED008ED271 /* pause_off_default_landscape.png in Resources */,
|
||||
D3C31A6415BD8DED008ED271 /* pause_off_over_landscape.png in Resources */,
|
||||
D3C31A6615BD8DED008ED271 /* pause_on_default_landscape.png in Resources */,
|
||||
D3C31A6815BD8DED008ED271 /* pause_on_over_landscape.png in Resources */,
|
||||
D3C31A6A15BD8DED008ED271 /* speaker_off_default_landscape.png in Resources */,
|
||||
D3C31A6C15BD8DED008ED271 /* speaker_off_disabled_landscape.png in Resources */,
|
||||
D3C31A6E15BD8DED008ED271 /* speaker_off_over_landscape.png in Resources */,
|
||||
D3C31A7015BD8DED008ED271 /* speaker_on_default_landscape.png in Resources */,
|
||||
D3C31A7215BD8DED008ED271 /* speaker_on_disabled_landscape.png in Resources */,
|
||||
D3C31A7415BD8DED008ED271 /* speaker_on_over_landscape.png in Resources */,
|
||||
D3C31A7615BD8DED008ED271 /* statebar_background_landscape.png in Resources */,
|
||||
D3C31A7815BD8DED008ED271 /* transfer_default_landscape.png in Resources */,
|
||||
D3C31A7A15BD8DED008ED271 /* transfer_over_landscape.png in Resources */,
|
||||
D3C31A7C15BD8DED008ED271 /* video_off_default_landscape.png in Resources */,
|
||||
D3C31A7E15BD8DED008ED271 /* video_off_disabled_landscape.png in Resources */,
|
||||
D3C31A8015BD8DED008ED271 /* video_off_over_landscape.png in Resources */,
|
||||
D3C31A8215BD8DED008ED271 /* video_on_default_landscape.png in Resources */,
|
||||
D3C31A8415BD8DED008ED271 /* video_on_disabled_landscape.png in Resources */,
|
||||
D3C31A8615BD8DED008ED271 /* video_on_over_landscape.png in Resources */,
|
||||
D3FF9F7F15BFDE1A00EBD584 /* dialer_alt_button_options_default.png in Resources */,
|
||||
D3FF9F8015BFDE1A00EBD584 /* dialer_alt_button_options_over.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -2809,7 +3039,6 @@
|
|||
22D8F142147548E2008C97DB /* rootca.pem in Resources */,
|
||||
2211DB95147564B400DEE054 /* Settings.bundle in Resources */,
|
||||
3422AA5114975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */,
|
||||
3422AA5414978352000D4E8A /* PhoneViewController-ipad.xib in Resources */,
|
||||
341FCA8F149798210084BC26 /* linphonerc-ipad in Resources */,
|
||||
D3F83EEF1582021700336684 /* InCallViewController.xib in Resources */,
|
||||
D3F83F0D158205A100336684 /* micro_off_default.png in Resources */,
|
||||
|
|
@ -3036,6 +3265,51 @@
|
|||
D3157A9315B446CB00DD8C4C /* history_details_back_over.png in Resources */,
|
||||
D3119E7315B6A4710005D4A4 /* contacts_back_default.png in Resources */,
|
||||
D3119E7515B6A4710005D4A4 /* contacts_back_over.png in Resources */,
|
||||
D3C31A3315BD8DED008ED271 /* conference_default_landscape.png in Resources */,
|
||||
D3C31A3515BD8DED008ED271 /* conference_over_landscape.png in Resources */,
|
||||
D3C31A3715BD8DED008ED271 /* dialer_alt_back_default_landscape.png in Resources */,
|
||||
D3C31A3915BD8DED008ED271 /* dialer_alt_back_over_landscape.png in Resources */,
|
||||
D3C31A3B15BD8DED008ED271 /* dialer_alt_default_landscape.png in Resources */,
|
||||
D3C31A3D15BD8DED008ED271 /* dialer_alt_over_landscape.png in Resources */,
|
||||
D3C31A3F15BD8DED008ED271 /* hangup_default_landscape.png in Resources */,
|
||||
D3C31A4115BD8DED008ED271 /* hangup_over_landscape.png in Resources */,
|
||||
D3C31A4315BD8DED008ED271 /* micro_off_default_landscape.png in Resources */,
|
||||
D3C31A4515BD8DED008ED271 /* micro_off_disabled_landscape.png in Resources */,
|
||||
D3C31A4715BD8DED008ED271 /* micro_off_over_landscape.png in Resources */,
|
||||
D3C31A4915BD8DED008ED271 /* micro_on_default_landscape.png in Resources */,
|
||||
D3C31A4B15BD8DED008ED271 /* micro_on_disabled_landscape.png in Resources */,
|
||||
D3C31A4D15BD8DED008ED271 /* micro_on_over_landscape.png in Resources */,
|
||||
D3C31A4F15BD8DED008ED271 /* options_add_default_landscape.png in Resources */,
|
||||
D3C31A5115BD8DED008ED271 /* options_add_disabled_landscape.png in Resources */,
|
||||
D3C31A5315BD8DED008ED271 /* options_add_over_landscape.png in Resources */,
|
||||
D3C31A5515BD8DED008ED271 /* options_default_landscape.png in Resources */,
|
||||
D3C31A5715BD8DED008ED271 /* options_disabled_landscape.png in Resources */,
|
||||
D3C31A5915BD8DED008ED271 /* options_over_landscape.png in Resources */,
|
||||
D3C31A5B15BD8DED008ED271 /* options_selected_landscape.png in Resources */,
|
||||
D3C31A5D15BD8DED008ED271 /* options_transfer_default_landscape.png in Resources */,
|
||||
D3C31A5F15BD8DED008ED271 /* options_transfer_disabled_landscape.png in Resources */,
|
||||
D3C31A6115BD8DED008ED271 /* options_transfer_over_landscape.png in Resources */,
|
||||
D3C31A6315BD8DED008ED271 /* pause_off_default_landscape.png in Resources */,
|
||||
D3C31A6515BD8DED008ED271 /* pause_off_over_landscape.png in Resources */,
|
||||
D3C31A6715BD8DED008ED271 /* pause_on_default_landscape.png in Resources */,
|
||||
D3C31A6915BD8DED008ED271 /* pause_on_over_landscape.png in Resources */,
|
||||
D3C31A6B15BD8DED008ED271 /* speaker_off_default_landscape.png in Resources */,
|
||||
D3C31A6D15BD8DED008ED271 /* speaker_off_disabled_landscape.png in Resources */,
|
||||
D3C31A6F15BD8DED008ED271 /* speaker_off_over_landscape.png in Resources */,
|
||||
D3C31A7115BD8DED008ED271 /* speaker_on_default_landscape.png in Resources */,
|
||||
D3C31A7315BD8DED008ED271 /* speaker_on_disabled_landscape.png in Resources */,
|
||||
D3C31A7515BD8DED008ED271 /* speaker_on_over_landscape.png in Resources */,
|
||||
D3C31A7715BD8DED008ED271 /* statebar_background_landscape.png in Resources */,
|
||||
D3C31A7915BD8DED008ED271 /* transfer_default_landscape.png in Resources */,
|
||||
D3C31A7B15BD8DED008ED271 /* transfer_over_landscape.png in Resources */,
|
||||
D3C31A7D15BD8DED008ED271 /* video_off_default_landscape.png in Resources */,
|
||||
D3C31A7F15BD8DED008ED271 /* video_off_disabled_landscape.png in Resources */,
|
||||
D3C31A8115BD8DED008ED271 /* video_off_over_landscape.png in Resources */,
|
||||
D3C31A8315BD8DED008ED271 /* video_on_default_landscape.png in Resources */,
|
||||
D3C31A8515BD8DED008ED271 /* video_on_disabled_landscape.png in Resources */,
|
||||
D3C31A8715BD8DED008ED271 /* video_on_over_landscape.png in Resources */,
|
||||
D3FF9F8115BFDE1A00EBD584 /* dialer_alt_button_options_default.png in Resources */,
|
||||
D3FF9F8215BFDE1A00EBD584 /* dialer_alt_button_options_over.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -3121,6 +3395,7 @@
|
|||
D3F9A9E415AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */,
|
||||
D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */,
|
||||
D35860D615B549B500513429 /* Utils.m in Sources */,
|
||||
D3F7998115BD32370018C273 /* TPMultiLayoutViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -3203,6 +3478,7 @@
|
|||
D3F9A9E515AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */,
|
||||
D3F9A9EF15AF277E0045320F /* UACellBackgroundView.m in Sources */,
|
||||
D35860D715B549B500513429 /* Utils.m in Sources */,
|
||||
D3F7998215BD32370018C273 /* TPMultiLayoutViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -3400,7 +3676,7 @@
|
|||
"-l",
|
||||
mediastreamer,
|
||||
);
|
||||
PRODUCT_NAME = "linphone-no-gpl-thirdparties";
|
||||
PRODUCT_NAME = "castel-no-gpl-thirdparties";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SDKROOT = iphoneos;
|
||||
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
|
||||
|
|
@ -3452,7 +3728,7 @@
|
|||
"-l",
|
||||
mediastreamer,
|
||||
);
|
||||
PRODUCT_NAME = "linphone-no-gpl-thirdparties";
|
||||
PRODUCT_NAME = "castel-no-gpl-thirdparties";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SDKROOT = iphoneos;
|
||||
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
|
||||
|
|
@ -3505,7 +3781,7 @@
|
|||
"-l",
|
||||
mediastreamer,
|
||||
);
|
||||
PRODUCT_NAME = "linphone-no-gpl-thirdparties";
|
||||
PRODUCT_NAME = "castel-no-gpl-thirdparties";
|
||||
PROVISIONING_PROFILE = "075921BC-C7D8-42E1-B864-F05FD9BF841C";
|
||||
SDKROOT = iphoneos;
|
||||
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
|
||||
|
|
@ -3558,7 +3834,7 @@
|
|||
"-l",
|
||||
mediastreamer,
|
||||
);
|
||||
PRODUCT_NAME = "linphone-no-gpl-thirdparties";
|
||||
PRODUCT_NAME = "castel-no-gpl-thirdparties";
|
||||
PROVISIONING_PROFILE = "7EBE410C-11B9-4346-9977-2C3BEE43ED16";
|
||||
SDKROOT = iphoneos;
|
||||
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
|
||||
|
|
|
|||
2
submodules/externals/exosip
vendored
|
|
@ -1 +1 @@
|
|||
Subproject commit dfe434328c0b0cbbaee669d40b27e09fea5f49ab
|
||||
Subproject commit 8c42924ae9009f6003e98d29638e078ca1bd7c71
|
||||