diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatRoomViewController.m
index d4ee8b7fe..d4d2ab6bc 100644
--- a/Classes/ChatRoomViewController.m
+++ b/Classes/ChatRoomViewController.m
@@ -71,7 +71,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar:@"UIMainBar"
tabBarEnabled:true
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/ChatViewController.m b/Classes/ChatViewController.m
index 16dca20f8..390b91d5d 100644
--- a/Classes/ChatViewController.m
+++ b/Classes/ChatViewController.m
@@ -92,7 +92,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar: @"UIMainBar"
tabBarEnabled:true
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/ContactDetailsViewController.m b/Classes/ContactDetailsViewController.m
index ca7d9f787..0c120384f 100644
--- a/Classes/ContactDetailsViewController.m
+++ b/Classes/ContactDetailsViewController.m
@@ -256,7 +256,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar:@"UIMainBar"
tabBarEnabled:true
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/ContactsViewController.m b/Classes/ContactsViewController.m
index 2c4ebc9b4..c23b5967c 100644
--- a/Classes/ContactsViewController.m
+++ b/Classes/ContactsViewController.m
@@ -108,7 +108,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar:@"UIMainBar"
tabBarEnabled:true
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/DialerViewController.m b/Classes/DialerViewController.m
index 41fba484b..251f90687 100644
--- a/Classes/DialerViewController.m
+++ b/Classes/DialerViewController.m
@@ -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 {
diff --git a/Classes/FirstLoginViewController.m b/Classes/FirstLoginViewController.m
index 2e88af89f..47a4c9ebe 100644
--- a/Classes/FirstLoginViewController.m
+++ b/Classes/FirstLoginViewController.m
@@ -62,7 +62,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar:nil
tabBarEnabled:false
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/HistoryDetailsViewController.m b/Classes/HistoryDetailsViewController.m
index f8f0aef89..be5d45d32 100644
--- a/Classes/HistoryDetailsViewController.m
+++ b/Classes/HistoryDetailsViewController.m
@@ -68,7 +68,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar:@"UIMainBar"
tabBarEnabled:true
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/HistoryViewController.m b/Classes/HistoryViewController.m
index 0cdae5baf..ad45dd5f3 100644
--- a/Classes/HistoryViewController.m
+++ b/Classes/HistoryViewController.m
@@ -65,7 +65,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar:@"UIMainBar"
tabBarEnabled:true
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/InCallTableViewController.m b/Classes/InCallTableViewController.m
index 155fbc632..9b0e9f7d2 100644
--- a/Classes/InCallTableViewController.m
+++ b/Classes/InCallTableViewController.m
@@ -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;
}
diff --git a/Classes/InCallViewController.m b/Classes/InCallViewController.m
index 3a17abc5e..5c06b7af4 100644
--- a/Classes/InCallViewController.m
+++ b/Classes/InCallViewController.m
@@ -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];
@@ -405,6 +441,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];
diff --git a/Classes/InCallViewController.xib b/Classes/InCallViewController.xib
index 8f79f3993..2e36e4b97 100644
--- a/Classes/InCallViewController.xib
+++ b/Classes/InCallViewController.xib
@@ -12,11 +12,11 @@
-
-
- callTableView
-
-
-
- 109
-
videoCameraSwitch
@@ -248,6 +242,14 @@
167
+
+
+ callTableView
+
+
+
+ 109
+
dataSource
@@ -347,12 +349,6 @@
preview
-
- 106
-
-
- callTableView
-
160
@@ -368,6 +364,12 @@
callTableController
+
+ 106
+
+
+ callTableView
+
diff --git a/Classes/LinphoneUI/UICallBar.h b/Classes/LinphoneUI/UICallBar.h
index e00398c5f..580fa2751 100644
--- a/Classes/LinphoneUI/UICallBar.h
+++ b/Classes/LinphoneUI/UICallBar.h
@@ -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;
diff --git a/Classes/LinphoneUI/UICallBar.m b/Classes/LinphoneUI/UICallBar.m
index 06d1e4148..d8567a044 100644
--- a/Classes/LinphoneUI/UICallBar.m
+++ b/Classes/LinphoneUI/UICallBar.m
@@ -134,35 +134,74 @@
// 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)];
+
+
+ [optionsView setHidden:TRUE];
+ [padView setHidden:TRUE];
}
- (void)viewWillAppear:(BOOL)animated {
@@ -400,4 +439,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
diff --git a/Classes/LinphoneUI/UICallBar.xib b/Classes/LinphoneUI/UICallBar.xib
index 1bda79f29..d5b86f993 100644
--- a/Classes/LinphoneUI/UICallBar.xib
+++ b/Classes/LinphoneUI/UICallBar.xib
@@ -35,7 +35,7 @@
- 292
+ 301
@@ -43,7 +43,6 @@
{{0, 335}, {320, 125}}
-
_NS:9
1
@@ -58,7 +57,7 @@
- -2147483360
+ 288
@@ -68,9 +67,10 @@
_NS:9
+ 2
NO
IBCocoaTouchFramework
-
+
NSImage
dialer_alt_background.png
@@ -88,6 +88,7 @@
NO
NO
+ 3
IBCocoaTouchFramework
0
0
@@ -95,11 +96,11 @@
3
MC41AA
-
+
NSImage
numpad_one_over.png
-
+
NSImage
numpad_one_default.png
@@ -124,15 +125,16 @@
NO
NO
+ 4
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_two_over.png
-
+
NSImage
numpad_two_default.png
@@ -148,15 +150,16 @@
NO
NO
+ 5
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_three_over.png
-
+
NSImage
numpad_three_default.png
@@ -172,15 +175,16 @@
NO
NO
+ 6
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_four_over.png
-
+
NSImage
numpad_four_default.png
@@ -196,15 +200,16 @@
NO
NO
+ 7
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_five_over.png
-
+
NSImage
numpad_five_default.png
@@ -220,15 +225,16 @@
NO
NO
+ 8
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_six_over.png
-
+
NSImage
numpad_six_default.png
@@ -244,15 +250,16 @@
NO
NO
+ 9
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_seven_over.png
-
+
NSImage
numpad_seven_default.png
@@ -268,15 +275,16 @@
NO
NO
+ 10
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_eight_over.png
-
+
NSImage
numpad_eight_default.png
@@ -292,15 +300,16 @@
NO
NO
+ 11
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_nine_over.png
-
+
NSImage
numpad_nine_default.png
@@ -316,15 +325,16 @@
NO
NO
+ 12
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_star_over.png
-
+
NSImage
numpad_star_default.png
@@ -340,15 +350,16 @@
NO
NO
+ 13
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_zero_over.png
-
+
NSImage
numpad_zero_default.png
@@ -364,15 +375,16 @@
NO
NO
+ 14
IBCocoaTouchFramework
0
0
-
+
NSImage
numpad_sharp_over.png
-
+
NSImage
numpad_sharp_default.png
@@ -389,11 +401,12 @@
3
MCAwAA
+ 1
IBCocoaTouchFramework
- -2147483356
+ 292
@@ -404,6 +417,7 @@
_NS:9
NO
+ 16
Add call
@@ -439,6 +453,7 @@
_NS:9
NO
+ 17
Add call
@@ -469,6 +484,7 @@
_NS:9
+ 15
IBCocoaTouchFramework
@@ -484,6 +500,7 @@
_NS:9
NO
+ 19
Video
@@ -521,6 +538,7 @@
_NS:9
NO
+ 20
IBCocoaTouchFramework
0
@@ -533,6 +551,7 @@
_NS:9
NO
+ 21
Micro
@@ -570,6 +589,7 @@
_NS:9
NO
+ 22
Speaker
@@ -607,6 +627,7 @@
_NS:9
NO
+ 23
Add call
@@ -644,6 +665,7 @@
_NS:9
NO
+ 24
Pause
@@ -677,6 +699,7 @@
_NS:9
NO
+ 25
Start Conference
@@ -706,6 +729,7 @@
_NS:9
NO
+ 26
Hangup
@@ -735,6 +759,7 @@
_NS:9
NO
+ 27
Back
@@ -766,6 +791,7 @@
_NS:9
+ 18
IBCocoaTouchFramework
@@ -778,6 +804,688 @@
NO
IBCocoaTouchFramework
+
+
+ 301
+
+
+
+ -2147483356
+ {{0, 248}, {480, 72}}
+
+
+
+ _NS:9
+
+ 1
+ MCAxIDAuMTkxOTQ1NDc1NQA
+
+ NO
+ NO
+ NO
+ -1
+ NO
+ IBCocoaTouchFramework
+
+
+
+ 288
+
+
+
+ 274
+ {281, 260}
+
+
+
+ _NS:9
+ 2
+ NO
+ IBCocoaTouchFramework
+
+
+
+
+ 292
+ {{-20, 10}, {107, 54}}
+
+
+
+
+ 1
+ MC40MDAwMDAwMSAxIDEgMAA
+
+ NO
+ NO
+ 3
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{87, 10}, {106, 54}}
+
+
+
+ NO
+ NO
+ 4
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{193, 10}, {107, 54}}
+
+
+
+ NO
+ NO
+ 5
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{-20, 72}, {107, 54}}
+
+
+
+ NO
+ NO
+ 6
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{87, 72}, {106, 54}}
+
+
+
+ NO
+ NO
+ 7
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{193, 72}, {107, 54}}
+
+
+
+ NO
+ NO
+ 8
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{-20, 134}, {107, 54}}
+
+
+
+ NO
+ NO
+ 9
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{87, 134}, {106, 54}}
+
+
+
+ NO
+ NO
+ 10
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{193, 134}, {107, 54}}
+
+
+
+ NO
+ NO
+ 11
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{-20, 196}, {107, 54}}
+
+
+
+ NO
+ NO
+ 12
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{87, 196}, {106, 54}}
+
+
+
+ NO
+ NO
+ 13
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 292
+ {{193, 196}, {107, 54}}
+
+
+
+ NO
+ NO
+ 14
+ IBCocoaTouchFramework
+ 0
+ 0
+
+
+
+
+
+
+
+ {{91, 0}, {281, 260}}
+
+
+
+ _NS:9
+
+ 1
+ IBCocoaTouchFramework
+
+
+
+ 292
+
+
+
+ 292
+ {65, 55}
+
+
+
+ _NS:9
+ NO
+ 16
+
+ Add call
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+
+
+ NSImage
+ options_transfer_over_landscape.png
+
+
+ NSImage
+ options_transfer_disabled_landscape.png
+
+
+ NSImage
+ options_transfer_default_landscape.png
+
+
+
+
+
+
+ 292
+ {{0, 51}, {65, 55}}
+
+
+ _NS:9
+ NO
+ 17
+
+ Add call
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+
+
+ NSImage
+ options_add_over_landscape.png
+
+
+ NSImage
+ options_add_disabled_landscape.png
+
+
+ NSImage
+ options_add_default_landscape.png
+
+
+
+
+
+ {{415, 140}, {65, 105}}
+
+
+
+ _NS:9
+
+ 15
+ IBCocoaTouchFramework
+
+
+
+ 292
+
+
+
+ 292
+ {{65, 0}, {65, 82}}
+
+
+
+ _NS:9
+ NO
+ 19
+
+ Video
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ video_off_over_landscape.png
+
+
+ NSImage
+ video_off_disabled_landscape.png
+
+
+ NSImage
+ video_on_default_landscape.png
+
+
+ NSImage
+ video_off_default_landscape.png
+
+
+
+
+
+
+ -2147483356
+ {{79, 20}, {37, 37}}
+
+
+
+ _NS:9
+ NO
+ 20
+ IBCocoaTouchFramework
+ 0
+
+
+
+ 292
+ {{130, 0}, {65, 82}}
+
+
+
+ _NS:9
+ NO
+ 21
+
+ Micro
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ micro_off_over_landscape.png
+
+
+ NSImage
+ micro_off_disabled_landscape.png
+
+
+ NSImage
+ micro_on_default_landscape.png
+
+
+ NSImage
+ micro_off_default_landscape.png
+
+
+
+
+
+
+ 292
+ {{285, 0}, {65, 82}}
+
+
+
+ _NS:9
+ NO
+ 22
+
+ Speaker
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ speaker_off_over_landscape.png
+
+
+ NSImage
+ speaker_off_disabled_landscape.png
+
+
+ NSImage
+ speaker_on_default_landscape.png
+
+
+ NSImage
+ speaker_off_default_landscape.png
+
+
+
+
+
+
+ 292
+ {{350, 0}, {65, 82}}
+
+
+
+ _NS:9
+ NO
+ 23
+
+ Add call
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ options_over_landscape.png
+
+
+ NSImage
+ options_disabled_landscape.png
+
+
+ NSImage
+ options_selected_landscape.png
+
+
+ NSImage
+ options_default_landscape.png
+
+
+
+
+
+
+ 264
+ {65, 82}
+
+
+
+ _NS:9
+ NO
+ 24
+
+ Pause
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ pause_off_over_landscape.png
+
+
+ NSImage
+ pause_on_default_landscape.png
+
+
+ NSImage
+ pause_off_default_landscape.png
+
+
+
+
+
+
+ -2147483384
+ {65, 82}
+
+
+
+ _NS:9
+ NO
+ 25
+
+ Start Conference
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ conference_over_landscape.png
+
+
+ NSImage
+ conference_default_landscape.png
+
+
+
+
+
+
+ 264
+ {{195, 0}, {90, 82}}
+
+
+
+ _NS:9
+ NO
+ 26
+
+ Hangup
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ hangup_over_landscape.png
+
+
+ NSImage
+ hangup_default_landscape.png
+
+
+
+
+
+
+ 264
+ {{415, 0}, {65, 82}}
+
+
+
+ _NS:9
+ NO
+ 27
+
+ Back
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+ NO
+
+
+ NSImage
+ dialer_alt_over_landscape.png
+
+
+ NSImage
+ dialer_alt_back_default_landscape.png
+
+
+ NSImage
+ dialer_alt_default_landscape.png
+
+
+
+
+
+ {{0, 238}, {480, 82}}
+
+
+
+ _NS:9
+
+ 18
+ IBCocoaTouchFramework
+
+
+ {480, 320}
+
+
+
+ _NS:9
+
+ NO
+
+ 3
+ 3
+
+ IBCocoaTouchFramework
+
@@ -973,6 +1681,22 @@
97
+
+
+ landscapeView
+
+
+
+ 137
+
+
+
+ portraitView
+
+
+
+ 138
+
onPadClick:
@@ -1044,6 +1768,77 @@
98
+
+
+ onPadClick:
+
+
+ 7
+
+ 132
+
+
+
+ onConferenceClick:
+
+
+ 7
+
+ 135
+
+
+
+ onOptionsClick:
+
+
+ 7
+
+ 134
+
+
+
+ waitView
+
+
+
+ 129
+
+
+
+ onOptionsAddClick:
+
+
+ 7
+
+ 130
+
+
+
+ onOptionsClick:
+
+
+ 7
+
+ 136
+
+
+
+ onOptionsClick:
+
+
+ 7
+
+ 131
+
+
+
+ onOptionsTransferClick:
+
+
+ 7
+
+ 133
+
@@ -1074,7 +1869,7 @@
- callTabBar
+ Portrait View
5
@@ -1275,6 +2070,216 @@
background
+
+ 100
+
+
+
+
+
+
+
+
+ Landscape View
+
+
+ 101
+
+
+
+
+
+
+ optionsView
+
+
+ 102
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pad
+
+
+ 114
+
+
+ background
+
+
+ 115
+
+
+ 1
+
+
+ 116
+
+
+ 2
+
+
+ 117
+
+
+ 3
+
+
+ 118
+
+
+ 4
+
+
+ 119
+
+
+ 5
+
+
+ 120
+
+
+ 6
+
+
+ 121
+
+
+ 7
+
+
+ 122
+
+
+ 8
+
+
+ 123
+
+
+ 9
+
+
+ 124
+
+
+ *
+
+
+ 125
+
+
+ 0
+
+
+ 126
+
+
+ #
+
+
+ 127
+
+
+ optionsAddButton
+
+
+ 128
+
+
+ optionsTansferButton
+
+
+ 103
+
+
+
+
+
+
+
+
+
+
+
+
+
+ buttons
+
+
+ 106
+
+
+ dialerButton
+
+
+ 110
+
+
+ optionsButton
+
+
+ 113
+
+
+ videoButton
+
+
+ 112
+
+
+ microButton
+
+
+ 111
+
+
+ speakerButton
+
+
+ 109
+
+
+ pauseButton
+
+
+ 108
+
+
+ conferenceButton
+
+
+ 107
+
+
+ hangupButton
+
+
+ 105
+
+
+ videoWaitView
+
+
+ 104
+
+
+ mask
+
@@ -1285,12 +2290,83 @@
UIToggleButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UITransparentView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIToggleButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIHangUpButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIPauseButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
UIMicroButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIToggleButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UISpeakerButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIMicroButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIVideoButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
UIVideoButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ UIDigitButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -1358,13 +2434,35 @@
- 99
+ 138
- UICallBar
+ TPMultiLayoutViewController
UIViewController
+
+ UIView
+ UIView
+
+
+
+ landscapeView
+ UIView
+
+
+ portraitView
+ UIView
+
+
+
+ IBProjectSource
+ ./Classes/TPMultiLayoutViewController.h
+
+
+
+ UICallBar
+ TPMultiLayoutViewController
id
id
@@ -1629,17 +2727,28 @@
3
{209, 136}
+ {130, 163}
{209, 136}
+ {130, 163}
{209, 136}
+ {130, 163}
{530, 526}
{209, 136}
+ {130, 163}
{209, 136}
+ {130, 163}
{222, 136}
+ {180, 163}
{222, 136}
+ {180, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{220, 113}
{220, 113}
{220, 113}
@@ -1665,26 +2774,47 @@
{220, 113}
{220, 113}
{155, 137}
+ {129, 109}
{155, 137}
+ {129, 109}
{155, 137}
+ {129, 109}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{155, 137}
+ {129, 109}
{155, 137}
+ {129, 109}
{155, 137}
+ {129, 109}
{209, 136}
+ {130, 163}
{209, 136}
+ {130, 163}
{209, 136}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
{160, 134}
+ {130, 163}
1181
diff --git a/Classes/LinphoneUI/UICallCell.xib b/Classes/LinphoneUI/UICallCell.xib
index c3a0437e7..5a1b8a9c6 100644
--- a/Classes/LinphoneUI/UICallCell.xib
+++ b/Classes/LinphoneUI/UICallCell.xib
@@ -35,15 +35,15 @@
- 288
+ 290
- 292
+ 290
- 292
+ 290
{{0, 63}, {320, 250}}
@@ -81,7 +81,7 @@
- 292
+ 293
{{0, 48}, {320, 262}}
@@ -97,7 +97,7 @@
- 292
+ 293
{{80, 65}, {160, 170}}
@@ -119,16 +119,15 @@
_NS:9
NO
- NO
IBCocoaTouchFramework
- 292
+ 290
- 292
+ 290
{320, 63}
@@ -143,7 +142,7 @@
- 292
+ 290
{320, 63}
@@ -155,7 +154,7 @@
- 292
+ 294
{{10, 0}, {206, 51}}
@@ -4573,7 +4572,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
- 292
+ 289
{{224, 14}, {25, 25}}
@@ -4584,7 +4583,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
- -2147483356
+ -2147483359
{{216, 6}, {41, 41}}
@@ -4614,7 +4613,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
- -2147483356
+ -2147483359
{{216, 6}, {41, 41}}
@@ -4648,10 +4647,11 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
- 292
+ 289
{{262, 12}, {50, 29}}
+
_NS:9
NO
YES
@@ -4676,7 +4676,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
- 292
+ 294
{{0, 5}, {200, 40}}
@@ -4699,7 +4699,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
_NS:9
- NO
IBCocoaTouchFramework
@@ -4709,7 +4708,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
_NS:9
- NO
IBCocoaTouchFramework
@@ -4718,6 +4716,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
{320, 460}
+
_NS:9
NO
@@ -4999,7 +4998,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
- 59
+ 75
diff --git a/Classes/LinphoneUI/UICompositeViewController.h b/Classes/LinphoneUI/UICompositeViewController.h
index ee472f99b..d19634296 100644
--- a/Classes/LinphoneUI/UICompositeViewController.h
+++ b/Classes/LinphoneUI/UICompositeViewController.h
@@ -21,6 +21,7 @@
#import
#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
diff --git a/Classes/LinphoneUI/UICompositeViewController.m b/Classes/LinphoneUI/UICompositeViewController.m
index 990d30c22..f10acbc78 100644
--- a/Classes/LinphoneUI/UICompositeViewController.m
+++ b/Classes/LinphoneUI/UICompositeViewController.m
@@ -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,39 @@
[stateBarViewController viewDidDisappear:animated];
}
+- (void)orientationChanged:(NSNotification *)notification {
+ currentOrientation = [[UIDevice currentDevice] orientation];
+
+}
+
+- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
+ UIDeviceOrientation correctOrientation = [self getCorrectInterfaceOrientation:currentOrientation];
+ [UIView beginAnimations:@"Rotation" context:nil];
+ [UIView setAnimationDuration:duration];
+ [self applySubLayoutsForInterfaceOrientation:correctOrientation];
+ [self update:nil tabBar:nil fullscreen:nil];
+ [UIView commitAnimations];
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ if(currentViewDescription != nil) {
+ if (interfaceOrientation == UIInterfaceOrientationPortrait ||
+ interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
+ if ([currentViewDescription portraitMode]) {
+ return YES;
+ }
+ }
+ if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
+ interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
+ if ([currentViewDescription landscapeMode]) {
+ return YES;
+ }
+ }
+ return NO;
+ }
+ return YES;
+}
+
#pragma mark -
@@ -189,6 +245,50 @@
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)applySubLayoutsForInterfaceOrientation:(UIInterfaceOrientation)newOrientation {
+ [self applyLayoutForInterfaceOrientation:newOrientation];
+ [contentViewController willRotateToInterfaceOrientation:newOrientation duration:0];
+ [contentViewController willAnimateRotationToInterfaceOrientation:newOrientation duration:0];
+ if ([contentViewController isKindOfClass:[TPMultiLayoutViewController class]]) {
+ [(TPMultiLayoutViewController*)contentViewController applyLayoutForInterfaceOrientation:newOrientation];
+ }
+ [contentViewController didRotateFromInterfaceOrientation: newOrientation];
+
+ [tabBarViewController willRotateToInterfaceOrientation:newOrientation duration:0];
+ [tabBarViewController willAnimateRotationToInterfaceOrientation:newOrientation duration:0];
+ if ([tabBarViewController isKindOfClass:[TPMultiLayoutViewController class]]) {
+ [(TPMultiLayoutViewController*)tabBarViewController applyLayoutForInterfaceOrientation:newOrientation];
+ }
+ [tabBarViewController didRotateFromInterfaceOrientation: newOrientation];
+
+ [stateBarViewController willRotateToInterfaceOrientation:newOrientation duration:0];
+ [stateBarViewController willAnimateRotationToInterfaceOrientation:newOrientation duration:0];
+ if ([stateBarViewController isKindOfClass:[TPMultiLayoutViewController class]]) {
+ [(TPMultiLayoutViewController*)stateBarViewController applyLayoutForInterfaceOrientation:newOrientation];
+ }
+ [stateBarViewController didRotateFromInterfaceOrientation: newOrientation];
+}
+
#define IPHONE_STATUSBAR_HEIGHT 20
- (void)update: (UICompositeViewDescription*) description tabBar:(NSNumber*)tabBar fullscreen:(NSNumber*)fullscreen {
@@ -222,6 +322,15 @@
stateBarViewController = [self getCachedController:description.stateBar];
contentViewController = [self getCachedController:description.content];
tabBarViewController = [self getCachedController:description.tabBar];
+
+ // Update rotation
+ UIDeviceOrientation correctOrientation = [self getCorrectInterfaceOrientation:currentOrientation];
+ UIDeviceOrientation screenOrientation = [[UIApplication sharedApplication] statusBarOrientation];
+ if(screenOrientation != correctOrientation) {
+ // Force the screen in correct rotation
+ [[UIDevice currentDevice] performSelector:NSSelectorFromString(@"setOrientation:") withObject:(id)correctOrientation];
+ }
+ [self applySubLayoutsForInterfaceOrientation:correctOrientation];
}
if(currentViewDescription == nil) {
diff --git a/Classes/LinphoneUI/UICompositeViewController.xib b/Classes/LinphoneUI/UICompositeViewController.xib
index 9ee7c0b65..a2e27d760 100644
--- a/Classes/LinphoneUI/UICompositeViewController.xib
+++ b/Classes/LinphoneUI/UICompositeViewController.xib
@@ -32,12 +32,12 @@
- 274
+ 301
- 303
- {{0, 23}, {320, 380}}
+ 314
+ {{0, 23}, {320, 389}}
@@ -46,39 +46,101 @@
3
MCAwAA
- YES
+ NO
+ 1
IBCocoaTouchFramework
- 303
+ 290
{320, 23}
_NS:9
+ NO
YES
+ 2
IBCocoaTouchFramework
- 303
- {{0, 400}, {320, 60}}
+ 266
+ {{0, 420}, {320, 60}}
_NS:9
+ NO
YES
+ 3
IBCocoaTouchFramework
- {{0, 20}, {320, 460}}
+ {320, 480}
-
+ NO
+ IBCocoaTouchFramework
+
+
+
+ 301
+
+
+
+ 314
+ {{0, 24}, {480, 231}}
+
+
+
+ _NS:9
+
+ NO
+ 1
+ IBCocoaTouchFramework
+
+
+
+ 290
+ {480, 23}
+
+
+
+ _NS:9
+
+ NO
+ YES
+ 2
+ IBCocoaTouchFramework
+
+
+
+ 266
+ {{0, 260}, {480, 60}}
+
+
+ _NS:9
+
+ NO
+ YES
+ 3
+ IBCocoaTouchFramework
+
+
+ {480, 320}
+
+
+
+
+ NO
+
+ 3
+ 3
+
IBCocoaTouchFramework
@@ -116,6 +178,22 @@
19
+
+
+ portraitView
+
+
+
+ 24
+
+
+
+ landscapeView
+
+
+
+ 25
+
@@ -134,6 +212,7 @@
+ Portrait View
-1
@@ -164,6 +243,36 @@
tabBar
+
+ 20
+
+
+
+
+
+
+
+ Landscape View
+
+
+ 22
+
+
+ stateBar
+
+
+ 23
+
+
+
+ content
+
+
+ 21
+
+
+ tabBar
+
@@ -177,18 +286,46 @@
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
UITransparentView
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UITransparentView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UITransparentView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 19
+ 25
- UICompositeViewController
+ TPMultiLayoutViewController
UIViewController
+
+ UIView
+ UIView
+
+
+
+ landscapeView
+ UIView
+
+
+ portraitView
+ UIView
+
+
+
+ IBProjectSource
+ ./Classes/TPMultiLayoutViewController.h
+
+
+
+ UICompositeViewController
+ TPMultiLayoutViewController
UIView
UIView
diff --git a/Classes/LinphoneUI/UIStateBar.h b/Classes/LinphoneUI/UIStateBar.h
index 76be85a2c..5d0806b0d 100644
--- a/Classes/LinphoneUI/UIStateBar.h
+++ b/Classes/LinphoneUI/UIStateBar.h
@@ -18,8 +18,9 @@
*/
#import
+#import "TPMultiLayoutViewController.h"
-@interface UIStateBar : UIViewController {
+@interface UIStateBar : TPMultiLayoutViewController {
UIImageView* registrationStateImage;
UILabel* registrationStateLabel;
UIImageView* callQualityImage;
diff --git a/Classes/LinphoneUI/UIStateBar.xib b/Classes/LinphoneUI/UIStateBar.xib
index 23f0c3c49..0b3c3d9af 100644
--- a/Classes/LinphoneUI/UIStateBar.xib
+++ b/Classes/LinphoneUI/UIStateBar.xib
@@ -44,9 +44,10 @@
_NS:9
+ 1
NO
IBCocoaTouchFramework
-
+
NSImage
statebar_background.png
@@ -59,9 +60,10 @@
_NS:567
+ 2
NO
IBCocoaTouchFramework
-
+
NSImage
led_disconnected.png
@@ -77,21 +79,22 @@
NO
YES
7
+ 3
NO
IBCocoaTouchFramework
CARAMBA
-
+
3
MC42NjY2NjY2NjY3AA
1
10
-
+
1
17
-
+
Helvetica
17
16
@@ -105,6 +108,7 @@
_NS:567
+ 4
NO
IBCocoaTouchFramework
@@ -114,8 +118,10 @@
{{254, 3}, {27, 17}}
+
_NS:567
1
+ 5
NO
IBCocoaTouchFramework
@@ -125,12 +131,98 @@
_NS:196
-
+
3
MCAwAA
IBCocoaTouchFramework
+
+
+ 292
+
+
+
+ 292
+ {480, 23}
+
+
+
+ _NS:9
+ 1
+ NO
+ IBCocoaTouchFramework
+
+
+
+
+ 292
+ {{6, 6}, {10, 10}}
+
+
+
+ _NS:567
+ 2
+ NO
+ IBCocoaTouchFramework
+
+
+
+
+ 292
+ {{22, 0}, {189, 20}}
+
+
+
+ _NS:328
+ NO
+ YES
+ 7
+ 3
+ NO
+ IBCocoaTouchFramework
+ CARAMBA
+
+
+ 1
+ 10
+
+
+
+
+
+ 292
+ {{378, 3}, {27, 17}}
+
+
+
+ _NS:567
+ 4
+ NO
+ IBCocoaTouchFramework
+
+
+
+ 292
+ {{413, 3}, {27, 17}}
+
+
+
+ _NS:567
+ 1
+ 5
+ NO
+ IBCocoaTouchFramework
+
+
+ {480, 23}
+
+
+
+ _NS:196
+
+ IBCocoaTouchFramework
+
@@ -174,6 +266,22 @@
18
+
+
+ portraitView
+
+
+
+ 25
+
+
+
+ landscapeView
+
+
+
+ 26
+
@@ -236,6 +344,48 @@
callSecurityImage
+
+ 19
+
+
+
+
+
+
+
+
+
+
+
+ 20
+
+
+ callSecurityImage
+
+
+ 21
+
+
+ callQualityImage
+
+
+ 22
+
+
+ background
+
+
+ 23
+
+
+ registrationStateLabel
+
+
+ 24
+
+
+ registrationStateImage
+
@@ -246,6 +396,12 @@
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -254,13 +410,35 @@
- 18
+ 26
- UIStateBar
+ TPMultiLayoutViewController
UIViewController
+
+ UIView
+ UIView
+
+
+
+ landscapeView
+ UIView
+
+
+ portraitView
+ UIView
+
+
+
+ IBProjectSource
+ ./Classes/TPMultiLayoutViewController.h
+
+
+
+ UIStateBar
+ TPMultiLayoutViewController
UIImageView
UIImageView
diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m
index 2d0fc94df..cf89a8ac8 100644
--- a/Classes/PhoneMainView.m
+++ b/Classes/PhoneMainView.m
@@ -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 {
@@ -158,6 +162,15 @@ 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];
+}
+
#pragma mark - Event Functions
@@ -427,6 +440,7 @@ static PhoneMainView* phoneMainViewInstance=nil;
}
}
+
#pragma mark - ActionSheet Functions
- (void)displayMessage:(ChatModel*)chat {
diff --git a/Classes/PhoneMainView.xib b/Classes/PhoneMainView.xib
index 801b7f18d..6ff46115c 100644
--- a/Classes/PhoneMainView.xib
+++ b/Classes/PhoneMainView.xib
@@ -47,6 +47,7 @@
_NS:9
+ 1
NO
IBCocoaTouchFramework
@@ -180,7 +181,7 @@
- 212
+ 216
@@ -205,8 +206,48 @@
- UICompositeViewController
+ TPMultiLayoutViewController
UIViewController
+
+ YES
+
+ YES
+ landscapeView
+ portraitView
+
+
+ YES
+ UIView
+ UIView
+
+
+
+ YES
+
+ YES
+ landscapeView
+ portraitView
+
+
+ YES
+
+ landscapeView
+ UIView
+
+
+ portraitView
+ UIView
+
+
+
+
+ IBProjectSource
+ ./Classes/TPMultiLayoutViewController.h
+
+
+
+ UICompositeViewController
+ TPMultiLayoutViewController
YES
diff --git a/Classes/PhoneViewController-ipad.xib b/Classes/PhoneViewController-ipad.xib
deleted file mode 100644
index 0b5db5b31..000000000
--- a/Classes/PhoneViewController-ipad.xib
+++ /dev/null
@@ -1,1140 +0,0 @@
-
-
-
- 1296
- 11E53
- 2182
- 1138.47
- 569.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1181
-
-
- IBUIViewController
- IBUIButton
- IBUIView
- IBUITextField
- IBProxyObject
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
-
- 274
-
-
-
- 292
-
-
-
- 292
- {{34, 20}, {699, 78}}
-
-
-
-
- 3
- MQA
-
- NO
- NO
- IBIPadFramework
- 0
-
- sip:
-
- 3
- MAA
-
- 2
-
-
- YES
- 15
-
- 1
- 3
- IBCocoaTouchFramework
-
- 1
-
- Helvetica
- Helvetica
- 0
- 36
-
-
- Helvetica
- 36
- 16
-
-
-
-
- 292
- {{660, 25}, {66, 68}}
-
-
-
- NO
- IBIPadFramework
- 0
- 0
-
-
- 1
- MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
-
-
- 3
- MC41AA
-
-
- NSImage
- effacer.png
-
-
- Helvetica-Bold
- Helvetica
- 2
- 15
-
-
- Helvetica-Bold
- 15
- 16
-
-
-
-
- 292
- {{413, 277}, {322, 66}}
-
-
-
- _NS:241
- NO
- IBIPadFramework
- 0
- 0
- Switch camera
-
-
- 1
- MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
-
-
-
- NSImage
- clavier-01-108px.png
-
-
- 2
- 15
-
-
-
-
-
- -2147483356
- {{573, 112.5}, {160, 231}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- Back
-
-
- 1
- MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA
-
-
-
- NSImage
- clavier-01-160px.png
-
-
- 2
- 2
-
-
- Helvetica-Bold
- 18
- 16
-
-
-
-
- -2147483356
- {{415, 112}, {160, 231}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
- NSImage
- startcall-green.png
-
-
-
-
-
-
-
- 292
- {{413, 111}, {320, 167}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
- NSImage
- startcall-gray.png
-
-
-
-
-
-
-
-
- 292
- {{32, 112}, {107, 66}}
-
-
-
-
- 1
- MC40MDAwMDAwMSAxIDEgMAA
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 1
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
- NSImage
- clavier-01-106px.png
-
-
-
-
-
-
- 292
- {{139, 112}, {106, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 2
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{245, 112}, {107, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 3
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{245, 178}, {107, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 6
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{139, 178}, {106, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 5
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{32, 178}, {107, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 4
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{32, 244}, {107, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 7
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{139, 244}, {106, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 8
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{245, 244}, {107, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 9
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{139, 309}, {106, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- 0+
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{32, 309}, {107, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- *
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{245, 309}, {107, 66}}
-
-
-
- NO
- NO
- IBIPadFramework
- 0
- 0
- #
-
-
- 1
- MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA
-
-
-
-
-
-
-
-
- 292
- {{415, 351}, {320, 20}}
-
-
- _NS:212
-
- 3
- MCAwAA
-
- IBIPadFramework
-
-
- {{0, 569}, {768, 386}}
-
-
-
- _NS:212
-
- 3
- MC4zMzMzMzMzMzMzIDAuNQA
-
- IBIPadFramework
-
-
- {{0, 20}, {768, 1004}}
-
-
-
- _NS:212
-
- IBIPadFramework
-
-
- 2
-
-
- 1
- 1
-
- IBIPadFramework
- NO
-
-
-
-
-
-
- eight
-
-
-
- 45
-
-
-
- five
-
-
-
- 47
-
-
-
- hash
-
-
-
- 49
-
-
-
- nine
-
-
-
- 50
-
-
-
- one
-
-
-
- 51
-
-
-
- seven
-
-
-
- 52
-
-
-
- star
-
-
-
- 54
-
-
-
- three
-
-
-
- 57
-
-
-
- two
-
-
-
- 58
-
-
-
- view
-
-
-
- 59
-
-
-
- zero
-
-
-
- 60
-
-
-
- address
-
-
-
- 39
-
-
-
- erase
-
-
-
- 46
-
-
-
- backToCallView
-
-
-
- 40
-
-
-
- switchCamera
-
-
-
- 56
-
-
-
- callShort
-
-
-
- 42
-
-
-
- callLarge
-
-
-
- 41
-
-
-
- statusViewHolder
-
-
-
- 62
-
-
-
- four
-
-
-
- 63
-
-
-
- six
-
-
-
- 64
-
-
-
-
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 3
-
-
-
-
-
-
-
- 4
-
-
-
-
-
-
-
- 24
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 33
-
-
-
-
- 28
-
-
-
-
- 34
-
-
-
-
- 27
-
-
-
-
- 26
-
-
-
-
- 35
-
-
-
-
- 29
-
-
-
-
- 36
-
-
-
-
- 32
-
-
-
-
- 31
-
-
-
-
- 25
-
-
-
-
- 30
-
-
-
-
- 23
-
-
- Address
-
-
- 22
-
-
- Erase
-
-
- 18
-
-
- back
-
-
- 38
-
-
-
-
- 19
-
-
- Call-short
-
-
- 20
-
-
- Call-large
-
-
- 61
-
-
- status_holder
-
-
-
-
- PhoneViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UICallButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UICallButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- UIEraseButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIDigitButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 64
-
-
-
-
- MainScreenWithVideoPreview
- UIViewController
-
- PhoneViewController
- UIWindow
-
-
-
- phoneMainView
- PhoneViewController
-
-
- window
- UIWindow
-
-
-
- IBProjectSource
- ./Classes/MainScreenWithVideoPreview.h
-
-
-
- PhoneViewController
- UIViewController
-
- UITextField
- UIButton
- UIButton
- UIButton
- UIView
- UIButton
- UIEraseButton
- UIButton
- UIButton
- UIButton
- MainScreenWithVideoPreview
- UITabBarController
- UIButton
- UIButton
- UIButton
- UIButton
- UIButton
- UILabel
- UIView
- UIButton
- UIButton
- UIButton
- UIButton
-
-
-
- address
- UITextField
-
-
- backToCallView
- UIButton
-
-
- callLarge
- UIButton
-
-
- callShort
- UIButton
-
-
- dialerView
- UIView
-
-
- eight
- UIButton
-
-
- erase
- UIEraseButton
-
-
- five
- UIButton
-
-
- four
- UIButton
-
-
- hash
- UIButton
-
-
- mMainScreenWithVideoPreview
- MainScreenWithVideoPreview
-
-
- myTabBarController
- UITabBarController
-
-
- nine
- UIButton
-
-
- one
- UIButton
-
-
- seven
- UIButton
-
-
- six
- UIButton
-
-
- star
- UIButton
-
-
- status
- UILabel
-
-
- statusViewHolder
- UIView
-
-
- switchCamera
- UIButton
-
-
- three
- UIButton
-
-
- two
- UIButton
-
-
- zero
- UIButton
-
-
-
- IBProjectSource
- ./Classes/PhoneViewController.h
-
-
-
- UICallButton
- UIButton
-
- IBProjectSource
- ./Classes/UICallButton.h
-
-
-
- UIDigitButton
- UIButton
-
- IBProjectSource
- ./Classes/UIDigitButton.h
-
-
-
- UIEraseButton
- UIButton
-
- IBProjectSource
- ./Classes/UIEraseButton.h
-
-
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
- YES
- 3
-
- {106, 60}
- {108, 60}
- {160, 60}
- {66, 65}
- {60, 52}
- {60, 52}
-
- 1181
-
-
diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m
index c2d268efb..c097ce526 100644
--- a/Classes/SettingsViewController.m
+++ b/Classes/SettingsViewController.m
@@ -51,7 +51,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar: @"UIMainBar"
tabBarEnabled:true
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.h b/Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.h
new file mode 100755
index 000000000..460480c33
--- /dev/null
+++ b/Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.h
@@ -0,0 +1,27 @@
+//
+// TPMultiLayoutViewController.h
+//
+// Created by Michael Tyson on 14/08/2011.
+// Copyright 2011 A Tasty Pixel. All rights reserved.
+//
+
+#import
+
+@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
diff --git a/Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m b/Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m
new file mode 100755
index 000000000..76fccb14c
--- /dev/null
+++ b/Classes/Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m
@@ -0,0 +1,241 @@
+//
+// 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];
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
+ return TRUE;
+}
+
+-(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 {
+ 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 ", 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
\ No newline at end of file
diff --git a/Classes/WizardViewController.m b/Classes/WizardViewController.m
index 348e2022f..3f452c51d 100644
--- a/Classes/WizardViewController.m
+++ b/Classes/WizardViewController.m
@@ -88,7 +88,9 @@ static UICompositeViewDescription *compositeDescription = nil;
stateBarEnabled:false
tabBar:nil
tabBarEnabled:false
- fullscreen:false];
+ fullscreen:false
+ landscapeMode:false
+ portraitMode:true];
}
return compositeDescription;
}
diff --git a/Resources/conference_default_landscape.png b/Resources/conference_default_landscape.png
new file mode 100644
index 000000000..c3f3c62b6
Binary files /dev/null and b/Resources/conference_default_landscape.png differ
diff --git a/Resources/conference_over_landscape.png b/Resources/conference_over_landscape.png
new file mode 100644
index 000000000..cb6ff9a91
Binary files /dev/null and b/Resources/conference_over_landscape.png differ
diff --git a/Resources/dialer_alt_back_default_landscape.png b/Resources/dialer_alt_back_default_landscape.png
new file mode 100644
index 000000000..b662db31f
Binary files /dev/null and b/Resources/dialer_alt_back_default_landscape.png differ
diff --git a/Resources/dialer_alt_back_over_landscape.png b/Resources/dialer_alt_back_over_landscape.png
new file mode 100644
index 000000000..50d9d1753
Binary files /dev/null and b/Resources/dialer_alt_back_over_landscape.png differ
diff --git a/Resources/dialer_alt_default_landscape.png b/Resources/dialer_alt_default_landscape.png
new file mode 100644
index 000000000..f1b2d39cf
Binary files /dev/null and b/Resources/dialer_alt_default_landscape.png differ
diff --git a/Resources/dialer_alt_over_landscape.png b/Resources/dialer_alt_over_landscape.png
new file mode 100644
index 000000000..d07a14243
Binary files /dev/null and b/Resources/dialer_alt_over_landscape.png differ
diff --git a/Resources/hangup_default_landscape.png b/Resources/hangup_default_landscape.png
new file mode 100644
index 000000000..e7f49a1c6
Binary files /dev/null and b/Resources/hangup_default_landscape.png differ
diff --git a/Resources/hangup_over_landscape.png b/Resources/hangup_over_landscape.png
new file mode 100644
index 000000000..ffc1fb469
Binary files /dev/null and b/Resources/hangup_over_landscape.png differ
diff --git a/Resources/micro_off_default_landscape.png b/Resources/micro_off_default_landscape.png
new file mode 100644
index 000000000..abb1dcef6
Binary files /dev/null and b/Resources/micro_off_default_landscape.png differ
diff --git a/Resources/micro_off_disabled_landscape.png b/Resources/micro_off_disabled_landscape.png
new file mode 100644
index 000000000..fadfcbafa
Binary files /dev/null and b/Resources/micro_off_disabled_landscape.png differ
diff --git a/Resources/micro_off_over_landscape.png b/Resources/micro_off_over_landscape.png
new file mode 100644
index 000000000..d19bfcad5
Binary files /dev/null and b/Resources/micro_off_over_landscape.png differ
diff --git a/Resources/micro_on_default_landscape.png b/Resources/micro_on_default_landscape.png
new file mode 100644
index 000000000..2a551232d
Binary files /dev/null and b/Resources/micro_on_default_landscape.png differ
diff --git a/Resources/micro_on_disabled_landscape.png b/Resources/micro_on_disabled_landscape.png
new file mode 100644
index 000000000..d3632a238
Binary files /dev/null and b/Resources/micro_on_disabled_landscape.png differ
diff --git a/Resources/micro_on_over_landscape.png b/Resources/micro_on_over_landscape.png
new file mode 100644
index 000000000..bafe54db7
Binary files /dev/null and b/Resources/micro_on_over_landscape.png differ
diff --git a/Resources/options_add_default_landscape.png b/Resources/options_add_default_landscape.png
new file mode 100644
index 000000000..9da363493
Binary files /dev/null and b/Resources/options_add_default_landscape.png differ
diff --git a/Resources/options_add_disabled_landscape.png b/Resources/options_add_disabled_landscape.png
new file mode 100644
index 000000000..bc55521e0
Binary files /dev/null and b/Resources/options_add_disabled_landscape.png differ
diff --git a/Resources/options_add_over_landscape.png b/Resources/options_add_over_landscape.png
new file mode 100644
index 000000000..d0e991647
Binary files /dev/null and b/Resources/options_add_over_landscape.png differ
diff --git a/Resources/options_default_landscape.png b/Resources/options_default_landscape.png
new file mode 100644
index 000000000..7667b014a
Binary files /dev/null and b/Resources/options_default_landscape.png differ
diff --git a/Resources/options_disabled_landscape.png b/Resources/options_disabled_landscape.png
new file mode 100644
index 000000000..ba6b19454
Binary files /dev/null and b/Resources/options_disabled_landscape.png differ
diff --git a/Resources/options_over_landscape.png b/Resources/options_over_landscape.png
new file mode 100644
index 000000000..56f739db5
Binary files /dev/null and b/Resources/options_over_landscape.png differ
diff --git a/Resources/options_selected_landscape.png b/Resources/options_selected_landscape.png
new file mode 100644
index 000000000..d25a73d2d
Binary files /dev/null and b/Resources/options_selected_landscape.png differ
diff --git a/Resources/options_transfer_default_landscape.png b/Resources/options_transfer_default_landscape.png
new file mode 100644
index 000000000..9ba3017f4
Binary files /dev/null and b/Resources/options_transfer_default_landscape.png differ
diff --git a/Resources/options_transfer_disabled_landscape.png b/Resources/options_transfer_disabled_landscape.png
new file mode 100644
index 000000000..179f16614
Binary files /dev/null and b/Resources/options_transfer_disabled_landscape.png differ
diff --git a/Resources/options_transfer_over_landscape.png b/Resources/options_transfer_over_landscape.png
new file mode 100644
index 000000000..1f5950fca
Binary files /dev/null and b/Resources/options_transfer_over_landscape.png differ
diff --git a/Resources/pause_off_default_landscape.png b/Resources/pause_off_default_landscape.png
new file mode 100644
index 000000000..4c73470f8
Binary files /dev/null and b/Resources/pause_off_default_landscape.png differ
diff --git a/Resources/pause_off_over_landscape.png b/Resources/pause_off_over_landscape.png
new file mode 100644
index 000000000..66545c2d4
Binary files /dev/null and b/Resources/pause_off_over_landscape.png differ
diff --git a/Resources/pause_on_default_landscape.png b/Resources/pause_on_default_landscape.png
new file mode 100644
index 000000000..58c98a583
Binary files /dev/null and b/Resources/pause_on_default_landscape.png differ
diff --git a/Resources/pause_on_over_landscape.png b/Resources/pause_on_over_landscape.png
new file mode 100644
index 000000000..37b2875db
Binary files /dev/null and b/Resources/pause_on_over_landscape.png differ
diff --git a/Resources/speaker_off_default_landscape.png b/Resources/speaker_off_default_landscape.png
new file mode 100644
index 000000000..b77b4ef25
Binary files /dev/null and b/Resources/speaker_off_default_landscape.png differ
diff --git a/Resources/speaker_off_disabled_landscape.png b/Resources/speaker_off_disabled_landscape.png
new file mode 100644
index 000000000..4c844e33f
Binary files /dev/null and b/Resources/speaker_off_disabled_landscape.png differ
diff --git a/Resources/speaker_off_over_landscape.png b/Resources/speaker_off_over_landscape.png
new file mode 100644
index 000000000..4049e7b75
Binary files /dev/null and b/Resources/speaker_off_over_landscape.png differ
diff --git a/Resources/speaker_on_default_landscape.png b/Resources/speaker_on_default_landscape.png
new file mode 100644
index 000000000..90f75c124
Binary files /dev/null and b/Resources/speaker_on_default_landscape.png differ
diff --git a/Resources/speaker_on_disabled_landscape.png b/Resources/speaker_on_disabled_landscape.png
new file mode 100644
index 000000000..1235ab82b
Binary files /dev/null and b/Resources/speaker_on_disabled_landscape.png differ
diff --git a/Resources/speaker_on_over_landscape.png b/Resources/speaker_on_over_landscape.png
new file mode 100644
index 000000000..e3ff2f8fd
Binary files /dev/null and b/Resources/speaker_on_over_landscape.png differ
diff --git a/Resources/statebar_background_landscape.png b/Resources/statebar_background_landscape.png
new file mode 100644
index 000000000..26f042d99
Binary files /dev/null and b/Resources/statebar_background_landscape.png differ
diff --git a/Resources/transfer_default_landscape.png b/Resources/transfer_default_landscape.png
new file mode 100644
index 000000000..dc18399b4
Binary files /dev/null and b/Resources/transfer_default_landscape.png differ
diff --git a/Resources/transfer_over_landscape.png b/Resources/transfer_over_landscape.png
new file mode 100644
index 000000000..17740ee06
Binary files /dev/null and b/Resources/transfer_over_landscape.png differ
diff --git a/Resources/video_off_default_landscape.png b/Resources/video_off_default_landscape.png
new file mode 100644
index 000000000..037a41397
Binary files /dev/null and b/Resources/video_off_default_landscape.png differ
diff --git a/Resources/video_off_disabled_landscape.png b/Resources/video_off_disabled_landscape.png
new file mode 100644
index 000000000..80cc968b9
Binary files /dev/null and b/Resources/video_off_disabled_landscape.png differ
diff --git a/Resources/video_off_over_landscape.png b/Resources/video_off_over_landscape.png
new file mode 100644
index 000000000..afdbe9e4e
Binary files /dev/null and b/Resources/video_off_over_landscape.png differ
diff --git a/Resources/video_on_default_landscape.png b/Resources/video_on_default_landscape.png
new file mode 100644
index 000000000..46a88e074
Binary files /dev/null and b/Resources/video_on_default_landscape.png differ
diff --git a/Resources/video_on_disabled_landscape.png b/Resources/video_on_disabled_landscape.png
new file mode 100644
index 000000000..3074faae3
Binary files /dev/null and b/Resources/video_on_disabled_landscape.png differ
diff --git a/Resources/video_on_over_landscape.png b/Resources/video_on_over_landscape.png
new file mode 100644
index 000000000..665973f26
Binary files /dev/null and b/Resources/video_on_over_landscape.png differ
diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj
index a82fa9517..2e82bea69 100755
--- a/linphone.xcodeproj/project.pbxproj
+++ b/linphone.xcodeproj/project.pbxproj
@@ -143,8 +143,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, ); }; };
@@ -513,6 +511,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 */; };
@@ -643,6 +727,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 */; };
@@ -1061,7 +1147,6 @@
34216F3E1547EBCD00EA9777 /* VideoZoomHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VideoZoomHandler.h; path = LinphoneUI/VideoZoomHandler.h; sourceTree = ""; };
34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VideoZoomHandler.m; path = LinphoneUI/VideoZoomHandler.m; sourceTree = ""; };
3422AA4F14975EC9000D4E8A /* InCallViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "InCallViewController-ipad.xib"; sourceTree = ""; };
- 3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "PhoneViewController-ipad.xib"; sourceTree = ""; };
344ABDE71484E723007420B6 /* libzrtpcpp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzrtpcpp.a; path = "liblinphone-sdk/apple-darwin/lib/libzrtpcpp.a"; sourceTree = ""; };
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; };
@@ -1309,6 +1394,49 @@
D3B9A3DE15A58C450096EA4E /* chat_send_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_send_over.png; path = Resources/chat_send_over.png; sourceTree = ""; };
D3C2814A15A2D38D0098AA42 /* dialer_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_selected.png; path = Resources/dialer_selected.png; sourceTree = ""; };
D3C2815115A2D64A0098AA42 /* numpad_star_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = numpad_star_over.png; path = Resources/numpad_star_over.png; sourceTree = ""; };
+ D3C31A0715BD8DED008ED271 /* conference_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = conference_default_landscape.png; path = Resources/conference_default_landscape.png; sourceTree = ""; };
+ D3C31A0815BD8DED008ED271 /* conference_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = conference_over_landscape.png; path = Resources/conference_over_landscape.png; sourceTree = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ D3C31A0D15BD8DED008ED271 /* hangup_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = hangup_default_landscape.png; path = Resources/hangup_default_landscape.png; sourceTree = ""; };
+ D3C31A0E15BD8DED008ED271 /* hangup_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = hangup_over_landscape.png; path = Resources/hangup_over_landscape.png; sourceTree = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ D3C31A1815BD8DED008ED271 /* options_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_default_landscape.png; path = Resources/options_default_landscape.png; sourceTree = ""; };
+ D3C31A1915BD8DED008ED271 /* options_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_disabled_landscape.png; path = Resources/options_disabled_landscape.png; sourceTree = ""; };
+ D3C31A1A15BD8DED008ED271 /* options_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_over_landscape.png; path = Resources/options_over_landscape.png; sourceTree = ""; };
+ D3C31A1B15BD8DED008ED271 /* options_selected_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_selected_landscape.png; path = Resources/options_selected_landscape.png; sourceTree = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ D3C31A2915BD8DED008ED271 /* statebar_background_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = statebar_background_landscape.png; path = Resources/statebar_background_landscape.png; sourceTree = ""; };
+ D3C31A2A15BD8DED008ED271 /* transfer_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = transfer_default_landscape.png; path = Resources/transfer_default_landscape.png; sourceTree = ""; };
+ D3C31A2B15BD8DED008ED271 /* transfer_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = transfer_over_landscape.png; path = Resources/transfer_over_landscape.png; sourceTree = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
+ 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 = ""; };
D3C6526515AC1A8F0092A874 /* UIEditableTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIEditableTableViewCell.h; sourceTree = ""; };
D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIEditableTableViewCell.m; sourceTree = ""; };
D3C6526915AC228A0092A874 /* contact_ok_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_ok_default.png; path = Resources/contact_ok_default.png; sourceTree = ""; };
@@ -1386,6 +1514,8 @@
D3F795D515A582800077328B /* ChatRoomViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatRoomViewController.xib; sourceTree = ""; };
D3F795DB15A5831C0077328B /* chat_back_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_back_default.png; path = Resources/chat_back_default.png; sourceTree = ""; };
D3F795DC15A5831C0077328B /* chat_back_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_back_over.png; path = Resources/chat_back_over.png; sourceTree = ""; };
+ D3F7997F15BD32370018C273 /* TPMultiLayoutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TPMultiLayoutViewController.h; path = Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.h; sourceTree = ""; };
+ D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TPMultiLayoutViewController.m; path = Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m; sourceTree = ""; };
D3F83EE91582021700336684 /* InCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InCallViewController.h; sourceTree = ""; };
D3F83EEA1582021700336684 /* InCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InCallViewController.m; sourceTree = ""; };
D3F83EEB1582021700336684 /* InCallViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = InCallViewController.xib; sourceTree = ""; };
@@ -1615,7 +1745,6 @@
D3F83F8C158229C500336684 /* PhoneMainView.h */,
D3F83F8D15822ABD00336684 /* PhoneMainView.m */,
D34734791580DDF1003C7B8C /* PhoneMainView.xib */,
- 3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */,
D35E759C159460B50066B1C1 /* SettingsViewController.h */,
D35E759D159460B50066B1C1 /* SettingsViewController.m */,
D32942A31594C94200556A1C /* SettingsViewController.xib */,
@@ -2140,7 +2269,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 */,
@@ -2168,25 +2299,31 @@
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 */,
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 */,
@@ -2211,11 +2348,17 @@
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 */,
+ D3C31A1415BD8DED008ED271 /* micro_on_over_landscape.png */,
D3F83F3C1582223B00336684 /* numpad_eight_default.png */,
D3F83F3D1582223B00336684 /* numpad_eight_over.png */,
D3F83F361582223B00336684 /* numpad_five_default.png */,
@@ -2243,19 +2386,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 */,
@@ -2276,24 +2433,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 = "";
@@ -2311,6 +2483,7 @@
D326483415887D4400930C67 /* Utils */ = {
isa = PBXGroup;
children = (
+ D3F7997E15BD31EC0018C273 /* TPMultiLayoutViewController */,
D38935F715A6D06800A3A3AA /* CPAnimation */,
D32B9DFA15A2F131000B6DEC /* FastAddressBook.h */,
D32B9DFB15A2F131000B6DEC /* FastAddressBook.m */,
@@ -2423,6 +2596,15 @@
path = Settings;
sourceTree = "";
};
+ D3F7997E15BD31EC0018C273 /* TPMultiLayoutViewController */ = {
+ isa = PBXGroup;
+ children = (
+ D3F7997F15BD32370018C273 /* TPMultiLayoutViewController.h */,
+ D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */,
+ );
+ name = TPMultiLayoutViewController;
+ sourceTree = "";
+ };
D3F9A9DD15AF0FFE0045320F /* TPKeyboardAvoiding */ = {
isa = PBXGroup;
children = (
@@ -2547,7 +2729,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 */,
34A6ECEB14CF13CB00460C04 /* linphone_icon_72.png in Resources */,
D347347A1580DDF1003C7B8C /* PhoneMainView.xib in Resources */,
@@ -2788,6 +2969,49 @@
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 */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2810,7 +3034,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 */,
@@ -3034,6 +3257,49 @@
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 */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -3125,6 +3391,7 @@
D3F9A9E415AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */,
D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */,
D35860D615B549B500513429 /* Utils.m in Sources */,
+ D3F7998115BD32370018C273 /* TPMultiLayoutViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -3213,6 +3480,7 @@
D3F9A9E515AF100D0045320F /* TPKeyboardAvoidingTableView.m in Sources */,
D3F9A9EF15AF277E0045320F /* UACellBackgroundView.m in Sources */,
D35860D715B549B500513429 /* Utils.m in Sources */,
+ D3F7998215BD32370018C273 /* TPMultiLayoutViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};