diff --git a/Classes/ContactsViewController.xib b/Classes/ContactsViewController.xib
index d95d9e6ab..6b6098c90 100644
--- a/Classes/ContactsViewController.xib
+++ b/Classes/ContactsViewController.xib
@@ -156,11 +156,10 @@
{{0, 58}, {320, 402}}
-
_NS:10
NO
YES
diff --git a/Classes/DialerViewController.h b/Classes/DialerViewController.h
index e5436109a..10fa19e33 100644
--- a/Classes/DialerViewController.h
+++ b/Classes/DialerViewController.h
@@ -21,10 +21,10 @@
#import "UIEraseButton.h"
#import "UICallButton.h"
+#import "UITransferButton.h"
#import "UIDigitButton.h"
@interface DialerViewController : UIViewController {
-
@private
//Buttons
UITextField* addressField;
@@ -33,6 +33,7 @@
UIEraseButton* eraseButton;
UICallButton* callButton;
UICallButton* addCallButton;
+ UITransferButton* transferButton;
//Key pad
UIDigitButton* oneButton;
@@ -47,14 +48,18 @@
UIDigitButton* starButton;
UIDigitButton* zeroButton;
UIDigitButton* sharpButton;
+
+ BOOL transferMode;
}
- (void)setAddress:(NSString*) address;
+- (void)setTransferMode:(NSNumber*) enable;
@property (nonatomic, retain) IBOutlet UITextField* addressField;
@property (nonatomic, retain) IBOutlet UIButton* addContactButton;
@property (nonatomic, retain) IBOutlet UICallButton* callButton;
@property (nonatomic, retain) IBOutlet UICallButton* addCallButton;
+@property (nonatomic, retain) IBOutlet UITransferButton* transferButton;
@property (nonatomic, retain) IBOutlet UIButton* cancelButton;
@property (nonatomic, retain) IBOutlet UIEraseButton* eraseButton;
@@ -73,7 +78,6 @@
- (IBAction)onAddContactClick: (id) event;
- (IBAction)onBackClick: (id) event;
-- (IBAction)onAddCallClick: (id) event;
- (IBAction)onAddressChange: (id)sender;
@end
diff --git a/Classes/DialerViewController.m b/Classes/DialerViewController.m
index 5c2f9269e..a8774c35f 100644
--- a/Classes/DialerViewController.m
+++ b/Classes/DialerViewController.m
@@ -34,6 +34,7 @@
@synthesize addContactButton;
@synthesize cancelButton;
@synthesize addCallButton;
+@synthesize transferButton;
@synthesize callButton;
@synthesize eraseButton;
@@ -53,7 +54,11 @@
#pragma mark - Lifecycle Functions
- (id)init {
- return [super initWithNibName:@"DialerViewController" bundle:[NSBundle mainBundle]];
+ self = [super initWithNibName:@"DialerViewController" bundle:[NSBundle mainBundle]];
+ if(self) {
+ self->transferMode = FALSE;
+ }
+ return self;
}
- (void)dealloc {
@@ -63,6 +68,7 @@
[eraseButton release];
[callButton release];
[addCallButton release];
+ [transferButton release];
[oneButton release];
[twoButton release];
@@ -93,21 +99,18 @@
- (void)viewDidLoad {
[super viewDidLoad];
- [zeroButton initWithNumber:'0' addressField:addressField dtmf:false];
- [oneButton initWithNumber:'1' addressField:addressField dtmf:false];
- [twoButton initWithNumber:'2' addressField:addressField dtmf:false];
- [threeButton initWithNumber:'3' addressField:addressField dtmf:false];
- [fourButton initWithNumber:'4' addressField:addressField dtmf:false];
- [fiveButton initWithNumber:'5' addressField:addressField dtmf:false];
- [sixButton initWithNumber:'6' addressField:addressField dtmf:false];
- [sevenButton initWithNumber:'7' addressField:addressField dtmf:false];
- [eightButton initWithNumber:'8' addressField:addressField dtmf:false];
- [nineButton initWithNumber:'9' addressField:addressField dtmf:false];
- [starButton initWithNumber:'*' addressField:addressField dtmf:false];
- [sharpButton initWithNumber:'#' addressField:addressField dtmf:false];
- [callButton initWithAddress:addressField];
- [addCallButton initWithAddress:addressField];
- [eraseButton initWithAddressField:addressField];
+ [zeroButton setDigit:'0'];
+ [oneButton setDigit:'1'];
+ [twoButton setDigit:'2'];
+ [threeButton setDigit:'3'];
+ [fourButton setDigit:'4'];
+ [fiveButton setDigit:'5'];
+ [sixButton setDigit:'6'];
+ [sevenButton setDigit:'7'];
+ [eightButton setDigit:'8'];
+ [nineButton setDigit:'9'];
+ [starButton setDigit:'*'];
+ [sharpButton setDigit:'#'];
// Set observer
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callUpdate:) name:@"LinphoneCallUpdate" object:nil];
@@ -131,7 +134,13 @@
if([LinphoneManager isLcReady]) {
LinphoneCore *lc = [LinphoneManager getLc];
if(linphone_core_get_calls_nb(lc) > 0) {
- [addCallButton setHidden:false];
+ if(transferMode) {
+ [addCallButton setHidden:true];
+ [transferButton setHidden:false];
+ } else {
+ [addCallButton setHidden:false];
+ [transferButton setHidden:true];
+ }
[callButton setHidden:true];
[cancelButton setHidden:false];
[addContactButton setHidden:true];
@@ -140,15 +149,20 @@
[callButton setHidden:false];
[cancelButton setHidden:true];
[addContactButton setHidden:false];
+ [transferButton setHidden:true];
}
}
}
-
- (void)setAddress:(NSString*) address {
[addressField setText:address];
}
+- (void)setTransferMode:(NSNumber*) n {
+ transferMode = [n boolValue];
+ [self update];
+}
+
#pragma mark - UITextFieldDelegate Functions
@@ -170,21 +184,19 @@
[[LinphoneManager instance] changeView:PhoneView_InCall];
}
-- (IBAction)onAddCallClick: (id) event {
-
-}
-
- (IBAction)onAddressChange: (id)sender {
if([[addressField text] length] > 0) {
[addContactButton setEnabled:TRUE];
[eraseButton setEnabled:TRUE];
[callButton setEnabled:TRUE];
[addCallButton setEnabled:TRUE];
+ [transferButton setEnabled:TRUE];
} else {
[addContactButton setEnabled:FALSE];
[eraseButton setEnabled:FALSE];
[callButton setEnabled:FALSE];
[addCallButton setEnabled:FALSE];
+ [transferButton setEnabled:FALSE];
}
}
diff --git a/Classes/DialerViewController.xib b/Classes/DialerViewController.xib
index 371cd5d74..dfe28c0d4 100644
--- a/Classes/DialerViewController.xib
+++ b/Classes/DialerViewController.xib
@@ -558,6 +558,37 @@
+
-2147483356
{{106, 0}, {108, 69}}
@@ -573,18 +604,9 @@
NO
NO
-
- NSImage
- add_call_over.png
-
-
- NSImage
- add_call_disabled.png
-
-
- NSImage
- add_call_default.png
-
+
+
+
@@ -800,6 +822,14 @@
232
+
+
+ transferButton
+
+
+
+ 253
+
delegate
@@ -817,6 +847,102 @@
208
+
+
+ addressField
+
+
+
+ 242
+
+
+
+ addressField
+
+
+
+ 243
+
+
+
+ addressField
+
+
+
+ 244
+
+
+
+ addressField
+
+
+
+ 245
+
+
+
+ addressField
+
+
+
+ 246
+
+
+
+ addressField
+
+
+
+ 247
+
+
+
+ addressField
+
+
+
+ 248
+
+
+
+ addressField
+
+
+
+ 241
+
+
+
+ addressField
+
+
+
+ 240
+
+
+
+ addressField
+
+
+
+ 249
+
+
+
+ addressField
+
+
+
+ 250
+
+
+
+ addressField
+
+
+
+ 251
+
onBackClick:
@@ -827,13 +953,20 @@
233
-
- onAddCallClick:
+
+ addressField
-
- 7
+
- 228
+ 234
+
+
+
+ addressField
+
+
+
+ 252
@@ -844,6 +977,22 @@
230
+
+
+ addressField
+
+
+
+ 235
+
+
+
+ addressField
+
+
+
+ 237
+
@@ -1012,6 +1161,7 @@
+
toolBar
@@ -1046,6 +1196,12 @@
callButton
+
+ 236
+
+
+ transferButton
+
@@ -1075,6 +1231,9 @@
224.CustomClassName
224.IBPluginDependency
224.IBUIButtonInspectorSelectedStateConfigurationMetadataKey
+ 236.CustomClassName
+ 236.IBPluginDependency
+ 236.IBUIButtonInspectorSelectedStateConfigurationMetadataKey
29.CustomClassName
29.IBPluginDependency
29.IBUIButtonInspectorSelectedStateConfigurationMetadataKey
@@ -1139,6 +1298,9 @@
UICallButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UITransferButton
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
UIDigitButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -1191,7 +1353,7 @@
- 233
+ 253
@@ -1203,7 +1365,6 @@
YES
YES
- onAddCallClick:
onAddContactClick:
onAddressChange:
onBackClick:
@@ -1213,24 +1374,18 @@
id
id
id
- id
YES
YES
- onAddCallClick:
onAddContactClick:
onAddressChange:
onBackClick:
YES
-
- onAddCallClick:
- id
-
onAddContactClick:
id
@@ -1265,6 +1420,7 @@
sixButton
starButton
threeButton
+ transferButton
twoButton
zeroButton
@@ -1286,6 +1442,7 @@
UIButton
UIButton
UIButton
+ UITransferButton
UIButton
UIButton
@@ -1310,6 +1467,7 @@
sixButton
starButton
threeButton
+ transferButton
twoButton
zeroButton
@@ -1379,6 +1537,10 @@
threeButton
UIButton
+
+ transferButton
+ UITransferButton
+
twoButton
UIButton
@@ -1405,6 +1567,17 @@
UICallButton
UIButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
IBProjectSource
./Classes/UICallButton.h
@@ -1413,6 +1586,17 @@
UIDigitButton
UILongTouchButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
IBProjectSource
./Classes/UIDigitButton.h
@@ -1421,6 +1605,17 @@
UIEraseButton
UILongTouchButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
IBProjectSource
./Classes/UIEraseButton.h
@@ -1434,6 +1629,25 @@
./Classes/UILongTouchButton.h
+
+ UITransferButton
+ UIButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
+
+ IBProjectSource
+ ./Classes/UITransferButton.h
+
+
0
diff --git a/Classes/HistoryViewController.xib b/Classes/HistoryViewController.xib
index b08c9fb4d..446e0a4ac 100644
--- a/Classes/HistoryViewController.xib
+++ b/Classes/HistoryViewController.xib
@@ -160,11 +160,10 @@
{{0, 58}, {320, 402}}
-
_NS:9
- 3
- MQA
+ 1
+ MC45NDExNzY0NzA2IDAuOTY0NzA1ODgyNCAwLjk2NDcwNTg4MjQAA
YES
IBCocoaTouchFramework
diff --git a/Classes/InCallViewController.xib b/Classes/InCallViewController.xib
index 48ce96c59..b72909f8b 100644
--- a/Classes/InCallViewController.xib
+++ b/Classes/InCallViewController.xib
@@ -12,12 +12,13 @@
YES
- IBUITableViewController
- IBUITableView
- IBUIActivityIndicatorView
- IBUIView
IBUIButton
IBProxyObject
+ IBUIImageView
+ IBUIActivityIndicatorView
+ IBUITableViewController
+ IBUITableView
+ IBUIView
YES
@@ -42,6 +43,24 @@
274
YES
+
+
+ 274
+ {320, 460}
+
+
+
+ _NS:9
+ NO
+
+
+
+ IBCocoaTouchFramework
+
+ NSImage
+ numpad_background.png
+
+
292
@@ -103,7 +122,7 @@
{{0, -10}, {320, 480}}
-
+
_NS:418
YES
@@ -134,6 +153,7 @@
{85, 33}
+
_NS:9
NO
IBCocoaTouchFramework
@@ -307,6 +327,7 @@
+
@@ -353,7 +374,7 @@
160
- camSwitch
+ videoCameraSwitch
162
@@ -364,6 +385,12 @@
callTableController
+
+ 171
+
+
+ background
+
@@ -384,6 +411,7 @@
160.IBUIButtonInspectorSelectedStateConfigurationMetadataKey
162.CustomClassName
162.IBPluginDependency
+ 171.IBPluginDependency
9.IBPluginDependency
@@ -403,6 +431,7 @@
InCallTableViewController
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -417,7 +446,7 @@
- 169
+ 171
@@ -553,11 +582,13 @@
YES
YES
+ numpad_background.png
switch_camera_default.png
switch_camera_over.png
YES
+ {640, 523}
{170, 65}
{170, 65}
diff --git a/Classes/IncomingCallViewController.xib b/Classes/IncomingCallViewController.xib
index 69ca84bb3..30cd717ea 100644
--- a/Classes/IncomingCallViewController.xib
+++ b/Classes/IncomingCallViewController.xib
@@ -37,54 +37,56 @@
274
+
+
+ 274
+ {320, 460}
+
+
+
+ _NS:9
+ NO
+
+
+
+ IBCocoaTouchFramework
+
+ NSImage
+ numpad_background.png
+
+
288
+
+
+ 292
+ {{0, 49}, {320, 63}}
+
+
+
+ _NS:9
+ NO
+ IBCocoaTouchFramework
+
+ NSImage
+ cell_call_first.png
+
+
292
{320, 68}
-
+
_NS:9
NO
IBCocoaTouchFramework
NSImage
- champ-titre-incoming.png
-
-
-
-
- 292
- {{0, 47}, {320, 63}}
-
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 0
- 0
- NO
-
- 3
- MC41AA
-
-
- NSImage
- champ-courbe-autres-numeros.png
-
-
- 2
- 15
-
-
- Helvetica-Bold
- 15
- 16
+ header_incoming.png
@@ -4585,7 +4587,10 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
IBCocoaTouchFramework
0
0
-
+
+ 3
+ MC41AA
+
NSImage
accept_over.png
@@ -4594,8 +4599,15 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
NSImage
accept_default.png
-
-
+
+ 2
+ 15
+
+
+ Helvetica-Bold
+ 15
+ 16
+
@@ -4622,7 +4634,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
decline_default.png
-
+
{{0, 383}, {320, 77}}
@@ -4641,7 +4653,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
{{0, 20}, {320, 460}}
-
+
1
MC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEgMC45Njg2Mjc0NTEAA
@@ -4710,6 +4722,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
+
@@ -4752,10 +4765,10 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
-
+
@@ -4771,12 +4784,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
headerBackground
-
- 10
-
-
- otherBackground
-
18
@@ -4795,6 +4802,18 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
mask
+
+ 21
+
+
+ addressBackgroundImage
+
+
+ 22
+
+
+ background
+
@@ -4803,11 +4822,11 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
UIResponder
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
@@ -4821,7 +4840,7 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
- 20
+ 22
@@ -4882,12 +4901,13 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE
{320, 154}
{320, 154}
- {16, 16}
+ {640, 523}
{320, 339}
- {640, 125}
- {640, 135}
+ {640, 125}
{320, 154}
{320, 154}
+ {640, 135}
+ {640, 523}
1181
diff --git a/Classes/LinphoneUI/UICallBar.h b/Classes/LinphoneUI/UICallBar.h
index 6bc9c0f1b..ac8019936 100644
--- a/Classes/LinphoneUI/UICallBar.h
+++ b/Classes/LinphoneUI/UICallBar.h
@@ -35,6 +35,9 @@
UIButton* optionsButton;
UIHangUpButton* hangupButton;
UIView* padView;
+ UIView* optionsView;
+ UIButton* optionsAddButton;
+ UIButton* optionsTransferButton;
//Key pad
UIDigitButton* oneButton;
@@ -59,6 +62,10 @@
@property (nonatomic, retain) IBOutlet UIButton* optionsButton;
@property (nonatomic, retain) IBOutlet UIHangUpButton* hangupButton;
@property (nonatomic, retain) IBOutlet UIView* padView;
+@property (nonatomic, retain) IBOutlet UIView* optionsView;
+
+@property (nonatomic, retain) IBOutlet UIButton* optionsAddButton;
+@property (nonatomic, retain) IBOutlet UIButton* optionsTransferButton;
@property (nonatomic, retain) IBOutlet UIButton* oneButton;
@property (nonatomic, retain) IBOutlet UIButton* twoButton;
@@ -74,6 +81,8 @@
@property (nonatomic, retain) IBOutlet UIButton* sharpButton;
- (IBAction)onOptionsClick:(id)sender;
+- (IBAction)onOptionsTransferClick:(id)sender;
+- (IBAction)onOptionsAddClick:(id)sender;
- (IBAction)onConferenceClick:(id)sender;
- (IBAction)onPadClick:(id)sender;
diff --git a/Classes/LinphoneUI/UICallBar.m b/Classes/LinphoneUI/UICallBar.m
index 2efde062e..4e0b4d8b7 100644
--- a/Classes/LinphoneUI/UICallBar.m
+++ b/Classes/LinphoneUI/UICallBar.m
@@ -35,7 +35,12 @@
@synthesize speakerButton;
@synthesize optionsButton;
@synthesize hangupButton;
+
+@synthesize optionsAddButton;
+@synthesize optionsTransferButton;
+
@synthesize padView;
+@synthesize optionsView;
@synthesize oneButton;
@synthesize twoButton;
@@ -65,6 +70,9 @@
[speakerButton release];
[optionsButton release];
+ [optionsAddButton release];
+ [optionsTransferButton release];
+
[oneButton release];
[twoButton release];
[threeButton release];
@@ -78,6 +86,9 @@
[zeroButton release];
[sharpButton release];
+ [padView release];
+ [optionsView release];
+
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
@@ -89,18 +100,30 @@
- (void)viewDidLoad {
[pauseButton setType:UIPauseButtonType_CurrentCall call:nil];
- [zeroButton initWithNumber:'0' addressField:nil dtmf:true];
- [oneButton initWithNumber:'1' addressField:nil dtmf:true];
- [twoButton initWithNumber:'2' addressField:nil dtmf:true];
- [threeButton initWithNumber:'3' addressField:nil dtmf:true];
- [fourButton initWithNumber:'4' addressField:nil dtmf:true];
- [fiveButton initWithNumber:'5' addressField:nil dtmf:true];
- [sixButton initWithNumber:'6' addressField:nil dtmf:true];
- [sevenButton initWithNumber:'7' addressField:nil dtmf:true];
- [eightButton initWithNumber:'8' addressField:nil dtmf:true];
- [nineButton initWithNumber:'9' addressField:nil dtmf:true];
- [starButton initWithNumber:'*' addressField:nil dtmf:true];
- [sharpButton initWithNumber:'#' addressField:nil dtmf:true];
+ [zeroButton setDigit:'0'];
+ [zeroButton setDtmf:true];
+ [oneButton setDigit:'1'];
+ [oneButton setDtmf:true];
+ [twoButton setDigit:'2'];
+ [twoButton setDtmf:true];
+ [threeButton setDigit:'3'];
+ [threeButton setDtmf:true];
+ [fourButton setDigit:'4'];
+ [fourButton setDtmf:true];
+ [fiveButton setDigit:'5'];
+ [fiveButton setDtmf:true];
+ [sixButton setDigit:'6'];
+ [sixButton setDtmf:true];
+ [sevenButton setDigit:'7'];
+ [sevenButton setDtmf:true];
+ [eightButton setDigit:'8'];
+ [eightButton setDtmf:true];
+ [nineButton setDigit:'9'];
+ [nineButton setDtmf:true];
+ [starButton setDigit:'*'];
+ [starButton setDtmf:true];
+ [sharpButton setDigit:'#'];
+ [sharpButton setDtmf:true];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callUpdate:) name:@"LinphoneCallUpdate" object:nil];
@@ -141,13 +164,7 @@
//LinphoneCall *call = [[notif.userInfo objectForKey: @"call"] pointerValue];
LinphoneCallState state = [[notif.userInfo objectForKey: @"state"] intValue];
- // check LinphoneCore is initialized
- LinphoneCore* lc = nil;
- if([LinphoneManager isLcReady])
- lc = [LinphoneManager getLc];
-
- //TODO
- //[LinphoneManager set:mergeCalls hidden:!pause.hidden withName:"MERGE button" andReason:"call count"];
+ LinphoneCore* lc = [LinphoneManager getLc];
[speakerButton update];
[microButton update];
@@ -155,6 +172,8 @@
[videoButton update];
[hangupButton update];
+
+ // Show Pause/Conference button following call count
if(linphone_core_get_calls_nb(lc) > 1) {
if(![pauseButton isHidden]) {
[pauseButton setHidden:true];
@@ -167,16 +186,29 @@
}
}
- if(linphone_core_get_current_call(lc) == NULL) {
+ // Disable menu when no call & no conference
+ if(linphone_core_get_current_call(lc) == NULL && linphone_core_is_in_conference(lc) == FALSE) {
[self hidePad];
+ [self hideOptions];
+ [optionsButton setEnabled:FALSE];
+ } else {
+ [optionsButton setEnabled:TRUE];
}
+ // Disable transfert in conference
+ if(linphone_core_is_in_conference(lc)) {
+ [optionsTransferButton setEnabled:FALSE];
+ } else {
+ [optionsTransferButton setEnabled:TRUE];
+ }
+
switch(state) {
LinphoneCallEnd:
LinphoneCallError:
LinphoneCallIncoming:
LinphoneCallOutgoing:
[self hidePad];
+ [self hideOptions];
default:
break;
}
@@ -193,7 +225,10 @@
[padView setFrame:frame];
[padView setHidden:FALSE];
CPAnimationSequence* move = [[CPAnimationSequence sequenceWithSteps:
- [[CPAnimationStep for:0.5 animate:^{
+ [[CPAnimationStep after:0.0
+ for:0.5
+ options:UIViewAnimationOptionCurveEaseOut
+ animate:^{
CGRect frame = [padView frame];
frame.origin.y = original_y;
[padView setFrame:frame];
@@ -210,12 +245,16 @@
int original_y = frame.origin.y;
CPAnimationSequence* move = [[CPAnimationSequence sequenceWithSteps:
- [[CPAnimationStep for:0.5 animate:^{
+ [[CPAnimationStep after:0.0
+ for:0.5
+ options:UIViewAnimationOptionCurveEaseIn
+ animate:^{
CGRect frame = [padView frame];
frame.origin.y = [[self view] frame].size.height;
[padView setFrame:frame];
}] autorelease],
- [[CPAnimationStep after:0.0 animate:^{
+ [[CPAnimationStep after:0.0
+ animate:^{
CGRect frame = [padView frame];
frame.origin.y = original_y;
[padView setHidden:TRUE];
@@ -227,6 +266,55 @@
}
}
+- (void)showOptions{
+ if([optionsView isHidden]) {
+ CGRect frame = [optionsView frame];
+ int original_y = frame.origin.y;
+ frame.origin.y = [[self view] frame].size.height;
+ [optionsView setFrame:frame];
+ [optionsView setHidden:FALSE];
+ CPAnimationSequence* move = [[CPAnimationSequence sequenceWithSteps:
+ [[CPAnimationStep after:0.0
+ for:0.5
+ options:UIViewAnimationOptionCurveEaseOut
+ animate:^{
+ CGRect frame = [optionsView frame];
+ frame.origin.y = original_y;
+ [optionsView setFrame:frame];
+ }] autorelease],
+ nil
+ ] autorelease];
+ [move run];
+ }
+}
+
+- (void)hideOptions{
+ if(![optionsView isHidden]) {
+ CGRect frame = [optionsView frame];
+ int original_y = frame.origin.y;
+
+ CPAnimationSequence* move = [[CPAnimationSequence sequenceWithSteps:
+ [[CPAnimationStep after:0.0
+ for:0.5
+ options:UIViewAnimationOptionCurveEaseIn
+ animate:^{
+ CGRect frame = [optionsView frame];
+ frame.origin.y = [[self view] frame].size.height;
+ [optionsView setFrame:frame];
+ }] autorelease],
+ [[CPAnimationStep after:0.0
+ animate:^{
+ CGRect frame = [optionsView frame];
+ frame.origin.y = original_y;
+ [optionsView setHidden:TRUE];
+ [optionsView setFrame:frame];
+ }] autorelease],
+ nil
+ ] autorelease];
+ [move run];
+ }
+}
+
#pragma mark - Action Functions
@@ -238,15 +326,38 @@
}
}
-- (IBAction)onOptionsClick:(id)sender {
+- (IBAction)onOptionsTransferClick:(id)sender {
+ [self hideOptions];
// Go to dialer view
NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
[[[NSArray alloc] initWithObjects: @"", nil] autorelease]
, @"setAddress:",
+ [[[NSArray alloc] initWithObjects: [NSNumber numberWithInt: TRUE], nil] autorelease]
+ , @"setTransferMode:",
nil] autorelease];
[[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
}
+- (IBAction)onOptionsAddClick:(id)sender {
+ [self hideOptions];
+ // Go to dialer view
+ NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
+ [[[NSArray alloc] initWithObjects: @"", nil] autorelease]
+ , @"setAddress:",
+ [[[NSArray alloc] initWithObjects: [NSNumber numberWithInt: FALSE], nil] autorelease]
+ , @"setTransferMode:",
+ nil] autorelease];
+ [[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
+}
+
+- (IBAction)onOptionsClick:(id)sender {
+ if([optionsView isHidden]) {
+ [self showOptions];
+ } else {
+ [self hideOptions];
+ }
+}
+
- (IBAction)onConferenceClick:(id)sender {
linphone_core_add_all_to_conference([LinphoneManager getLc]);
}
diff --git a/Classes/LinphoneUI/UICallBar.xib b/Classes/LinphoneUI/UICallBar.xib
index 5773c1431..0936438fe 100644
--- a/Classes/LinphoneUI/UICallBar.xib
+++ b/Classes/LinphoneUI/UICallBar.xib
@@ -42,6 +42,7 @@
{{0, 335}, {320, 125}}
+
_NS:9
1
@@ -377,6 +378,81 @@
IBCocoaTouchFramework
+
+
+ -2147483356
+
+
+
+ 292
+ {80, 67}
+
+
+
+ _NS:9
+ NO
+
+ Add call
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+
+
+ NSImage
+ options_transfer_over.png
+
+
+ NSImage
+ options_transfer_default.png
+
+
+ 2
+ 15
+
+
+
+
+
+ 292
+ {{0, 58}, {80, 75}}
+
+
+
+ _NS:9
+ NO
+
+ Add call
+
+ IBCocoaTouchFramework
+ 0
+ 0
+ NO
+
+
+ NSImage
+ options_add_over.png
+
+
+ NSImage
+ options_add_default.png
+
+
+
+
+
+ {{240, 201}, {80, 134}}
+
+
+
+ _NS:9
+
+ 3
+ MCAwAA
+
+ IBCocoaTouchFramework
+
292
@@ -415,10 +491,7 @@
NSImage
video_off_default.png
-
- 2
- 15
-
+
@@ -526,6 +599,10 @@
NSImage
options_over.png
+
+ NSImage
+ options_disabled.png
+
NSImage
options_default.png
@@ -628,7 +705,7 @@
{{215, 67}, {105, 68}}
-
+
_NS:9
NO
@@ -656,10 +733,7 @@
_NS:9
-
- 3
- MCAwAA
-
+
IBCocoaTouchFramework
@@ -843,6 +917,30 @@
86
+
+
+ optionsView
+
+
+
+ 92
+
+
+
+ optionsAddButton
+
+
+
+ 96
+
+
+
+ optionsTransferButton
+
+
+
+ 97
+
onPadClick:
@@ -878,6 +976,42 @@
28
+
+
+ onOptionsClick:
+
+
+ 7
+
+ 89
+
+
+
+ onOptionsAddClick:
+
+
+ 7
+
+ 93
+
+
+
+ onOptionsClick:
+
+
+ 7
+
+ 91
+
+
+
+ onOptionsTransferClick:
+
+
+ 7
+
+ 98
+
@@ -905,6 +1039,7 @@
+
callTabBar
@@ -1079,6 +1214,28 @@
#
+
+ 87
+
+
+
+
+
+
+ optionsView
+
+
+ 88
+
+
+ optionsAddButton
+
+
+ 90
+
+
+ optionsTansferButton
+
@@ -1087,7 +1244,7 @@
UIResponder
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
+
UIMicroButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -1146,15 +1303,20 @@
UIPauseButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
UISpeakerButton
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
- 86
+ 98
@@ -1163,7 +1325,9 @@
UIViewController
id
+ id
id
+ id
id
@@ -1171,10 +1335,18 @@
onConferenceClick:
id
+
+ onOptionsAddClick:
+ id
+
onOptionsClick:
id
+
+ onOptionsTransferClick:
+ id
+
onPadClick:
id
@@ -1189,7 +1361,10 @@
UIMicroButton
UIButton
UIButton
+ UIButton
UIButton
+ UIButton
+ UIView
UIView
UIPauseButton
UIButton
@@ -1235,10 +1410,22 @@
oneButton
UIButton
+
+ optionsAddButton
+ UIButton
+
optionsButton
UIButton
+
+ optionsTransferButton
+ UIButton
+
+
+ optionsView
+ UIView
+
padView
UIView
@@ -1292,6 +1479,17 @@
UIDigitButton
UILongTouchButton
+
+ addressField
+ UITextField
+
+
+ addressField
+
+ addressField
+ UITextField
+
+
IBProjectSource
./Classes/UIDigitButton.h
@@ -1417,8 +1615,13 @@
{220, 113}
{220, 113}
{220, 113}
+ {160, 134}
+ {160, 134}
{160, 134}
+ {160, 134}
{160, 134}
+ {16, 16}
+ {16, 16}
{209, 136}
{209, 136}
{209, 136}
diff --git a/Classes/LinphoneUI/UICallButton.h b/Classes/LinphoneUI/UICallButton.h
index 5fc1547fb..955d9a4ee 100644
--- a/Classes/LinphoneUI/UICallButton.h
+++ b/Classes/LinphoneUI/UICallButton.h
@@ -22,11 +22,9 @@
@interface UICallButton : UIButton {
@private
- UITextField* mAddress;
+ UITextField* addressField;
}
--(void) initWithAddress:(UITextField*) address;
-+(void) enableTransforMode:(BOOL) enable;
-+(BOOL) transforModeEnabled;
+@property (nonatomic, retain) IBOutlet UITextField* addressField;
@end
diff --git a/Classes/LinphoneUI/UICallButton.m b/Classes/LinphoneUI/UICallButton.m
index 56d34fd18..12d647da7 100644
--- a/Classes/LinphoneUI/UICallButton.m
+++ b/Classes/LinphoneUI/UICallButton.m
@@ -19,38 +19,49 @@
#import "UICallButton.h"
#import "LinphoneManager.h"
-#import "CoreTelephony/CTCallCenter.h"
+
+#import
@implementation UICallButton
-static BOOL transferMode = NO;
+@synthesize addressField;
#pragma mark - Lifecycle Functions
--(void) initWithAddress:(UITextField*) address{
- mAddress=[address retain];
- transferMode = NO;
- [self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
+- (void)initUICallButton {
+ [self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
}
+- (id)init {
+ self = [super init];
+ if (self) {
+ [self initUICallButton];
+ }
+ return self;
+}
+
+- (id)initWithFrame:(CGRect)frame {
+ self = [super initWithFrame:frame];
+ if (self) {
+ [self initUICallButton];
+ }
+ return self;
+}
+
+- (id)initWithCoder:(NSCoder *)decoder {
+ self = [super initWithCoder:decoder];
+ if (self) {
+ [self initUICallButton];
+ }
+ return self;
+}
+
- (void)dealloc {
+ [addressField release];
+
[super dealloc];
- [mAddress release];
-
}
-
-#pragma mark - Statics Functions
-
-+(void) enableTransforMode:(BOOL) enable {
- transferMode = enable;
-}
-
-+(BOOL) transforModeEnabled {
- return transferMode;
-}
-
-
#pragma mark -
-(void) touchUp:(id) sender {
@@ -86,14 +97,9 @@ static BOOL transferMode = NO;
linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg);
LinphoneCallParams* lcallParams = linphone_core_create_default_call_parameters([LinphoneManager getLc]);
- if ([mAddress.text length] == 0) return; //just return
- if ([mAddress.text hasPrefix:@"sip:"]) {
- if (transferMode) {
- linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), [mAddress.text cStringUsingEncoding:[NSString defaultCStringEncoding]]);
- } else {
- linphone_core_invite_with_params([LinphoneManager getLc],[mAddress.text cStringUsingEncoding:[NSString defaultCStringEncoding]],lcallParams);
- }
- [UICallButton enableTransforMode:NO];
+ if ([addressField.text length] == 0) return; //just return
+ if ([addressField.text hasPrefix:@"sip:"]) {
+ linphone_core_invite_with_params([LinphoneManager getLc],[addressField.text cStringUsingEncoding:[NSString defaultCStringEncoding]],lcallParams);
} else if ( proxyCfg==nil){
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Invalid sip address",nil)
message:NSLocalizedString(@"Either configure a SIP proxy server from settings prior to place a call or use a valid sip address (I.E sip:john@example.net)",nil)
@@ -104,7 +110,7 @@ static BOOL transferMode = NO;
[error release];
} else {
char normalizedUserName[256];
- NSString* toUserName = [NSString stringWithString:[mAddress text]];
+ NSString* toUserName = [NSString stringWithString:[addressField text]];
NSString* lDisplayName = [[LinphoneManager instance] getDisplayNameFromAddressBook:toUserName andUpdateCallLog:nil];
linphone_proxy_config_normalize_number(proxyCfg,[toUserName cStringUsingEncoding:[NSString defaultCStringEncoding]],normalizedUserName,sizeof(normalizedUserName));
@@ -113,20 +119,14 @@ static BOOL transferMode = NO;
linphone_address_set_display_name(tmpAddress,(lDisplayName)?[lDisplayName cStringUsingEncoding:[NSString defaultCStringEncoding]]:nil);
- if (transferMode) {
- linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), normalizedUserName);
- } else {
- linphone_core_invite_address_with_params([LinphoneManager getLc],tmpAddress,lcallParams) ;
- }
+ linphone_core_invite_address_with_params([LinphoneManager getLc],tmpAddress,lcallParams) ;
linphone_address_destroy(tmpAddress);
}
linphone_call_params_destroy(lcallParams);
- [UICallButton enableTransforMode:NO];
} else if (linphone_core_inc_invite_pending([LinphoneManager getLc])) {
linphone_core_accept_call([LinphoneManager getLc],linphone_core_get_current_call([LinphoneManager getLc]));
}
-
}
@end
diff --git a/Classes/LinphoneUI/UICallCell.m b/Classes/LinphoneUI/UICallCell.m
index 49800f98f..083b7ba3a 100644
--- a/Classes/LinphoneUI/UICallCell.m
+++ b/Classes/LinphoneUI/UICallCell.m
@@ -117,21 +117,17 @@
return 54;
}
-- (void)startBlinkAnimation:(NSString *)animationID target:(UIView *)target
-{
+- (void)startBlinkAnimation:(NSString *)animationID target:(UIView *)target {
[UIView animateWithDuration:1.0
delay: 0.0
- options: ([target alpha] == 1.0f)? UIViewAnimationOptionCurveEaseIn: UIViewAnimationOptionCurveEaseOut
+ options: UIViewAnimationOptionRepeat |
+ UIViewAnimationOptionAutoreverse |
+ UIViewAnimationOptionAllowUserInteraction |
+ UIViewAnimationOptionCurveEaseIn
animations:^{
- if([target alpha] == 1.0f)
- [target setAlpha:0.0f];
- else
[target setAlpha:1.0f];
}
completion:^(BOOL finished){
- if(finished) {
- [self startBlinkAnimation: animationID target:target];
- }
}];
}
diff --git a/Classes/LinphoneUI/UIContactCell.xib b/Classes/LinphoneUI/UIContactCell.xib
index f31f32511..0b24a4a60 100644
--- a/Classes/LinphoneUI/UIContactCell.xib
+++ b/Classes/LinphoneUI/UIContactCell.xib
@@ -78,7 +78,6 @@
{{75, 0}, {200, 44}}
-
_NS:328
NO
YES
@@ -109,14 +108,10 @@
{320, 44}
-
_NS:9
-
+
3
- MQA
-
- 2
-
+ MCAwAA
IBCocoaTouchFramework
@@ -126,7 +121,6 @@
{320, 44}
-
_NS:9
NO
IBCocoaTouchFramework
@@ -141,8 +135,8 @@
{320, 44}
-
_NS:9
+
NO
IBCocoaTouchFramework
diff --git a/Classes/LinphoneUI/UIDigitButton.h b/Classes/LinphoneUI/UIDigitButton.h
index bb4cf415e..65f2d20a5 100644
--- a/Classes/LinphoneUI/UIDigitButton.h
+++ b/Classes/LinphoneUI/UIDigitButton.h
@@ -24,16 +24,13 @@
@interface UIDigitButton : UILongTouchButton {
@private
- char mDigit;
- UITextField* mAddress;
-
- bool sendDtmfDuringCall;
-
+ char digit;
+ bool dtmf;
+ UITextField* addressField;
}
--(void) initWithNumber:(char)digit ;
--(void) initWithNumber:(char)digit addressField:(UITextField*) address dtmf:(bool)send;
-
-@property bool sendDtmfDuringCall;
+@property (nonatomic, retain) IBOutlet UITextField* addressField;
+@property char digit;
+@property bool dtmf;
@end
diff --git a/Classes/LinphoneUI/UIDigitButton.m b/Classes/LinphoneUI/UIDigitButton.m
index 7136b6cfc..a93fc5080 100644
--- a/Classes/LinphoneUI/UIDigitButton.m
+++ b/Classes/LinphoneUI/UIDigitButton.m
@@ -23,39 +23,59 @@
@implementation UIDigitButton
-@synthesize sendDtmfDuringCall;
+@synthesize dtmf;
+@synthesize digit;
+@synthesize addressField;
#pragma mark - Lifecycle Functions
-- (void)initWithNumber:(char)digit {
- [self initWithNumber:digit addressField:nil dtmf:true];
-}
-
-- (void)initWithNumber:(char)digit addressField:(UITextField*) address dtmf:(bool)sendDtmf{
- sendDtmfDuringCall = sendDtmf;
- mDigit=digit;
- mAddress=address?[address retain]:nil;
+- (void)initUIDigitButton {
+ self->dtmf = FALSE;
[self addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
[self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside|UIControlEventTouchUpOutside];
}
+- (id)init {
+ self = [super init];
+ if (self) {
+ [self initUIDigitButton];
+ }
+ return self;
+}
+
+- (id)initWithFrame:(CGRect)frame {
+ self = [super initWithFrame:frame];
+ if (self) {
+ [self initUIDigitButton];
+ }
+ return self;
+}
+
+- (id)initWithCoder:(NSCoder *)decoder {
+ self = [super initWithCoder:decoder];
+ if (self) {
+ [self initUIDigitButton];
+ }
+ return self;
+}
+
- (void)dealloc {
[super dealloc];
- [mAddress release];
+ [addressField release];
}
#pragma mark - Actions Functions
- (void)touchDown:(id) sender {
- if (mAddress && (!sendDtmfDuringCall || !linphone_core_in_call([LinphoneManager getLc]))) {
- NSString* newAddress = [NSString stringWithFormat:@"%@%c",mAddress.text,mDigit];
- [mAddress setText:newAddress];
- linphone_core_play_dtmf([LinphoneManager getLc], mDigit, -1);
+ if (addressField && (!dtmf || !linphone_core_in_call([LinphoneManager getLc]))) {
+ NSString* newAddress = [NSString stringWithFormat:@"%@%c",addressField.text, digit];
+ [addressField setText:newAddress];
+ linphone_core_play_dtmf([LinphoneManager getLc], digit, -1);
} else {
- linphone_core_send_dtmf([LinphoneManager getLc], mDigit);
- linphone_core_play_dtmf([LinphoneManager getLc], mDigit, 100);
+ linphone_core_send_dtmf([LinphoneManager getLc], digit);
+ linphone_core_play_dtmf([LinphoneManager getLc], digit, 100);
}
}
@@ -70,10 +90,10 @@
}
- (void)onLongTouch {
- if (mDigit == '0') {
- NSString* newAddress = [[mAddress.text substringToIndex: [mAddress.text length]-1] stringByAppendingString:@"+"];
- [mAddress setText:newAddress];
- [mAddress sendActionsForControlEvents:UIControlEventEditingChanged];
+ if (digit == '0') {
+ NSString* newAddress = [[addressField.text substringToIndex: [addressField.text length]-1] stringByAppendingString:@"+"];
+ [addressField setText:newAddress];
+ [addressField sendActionsForControlEvents:UIControlEventEditingChanged];
}
}
diff --git a/Classes/LinphoneUI/UIEraseButton.h b/Classes/LinphoneUI/UIEraseButton.h
index 44eebd84e..0e9e2af51 100644
--- a/Classes/LinphoneUI/UIEraseButton.h
+++ b/Classes/LinphoneUI/UIEraseButton.h
@@ -23,8 +23,9 @@
@interface UIEraseButton : UILongTouchButton {
@private
- UITextField* mAddress;
-
+ UITextField* addressField;
}
--(void) initWithAddressField:(UITextField*) address;
+
+@property (nonatomic, retain) IBOutlet UITextField* addressField;
+
@end
diff --git a/Classes/LinphoneUI/UIEraseButton.m b/Classes/LinphoneUI/UIEraseButton.m
index 5a4b58e22..9b4e96eb4 100644
--- a/Classes/LinphoneUI/UIEraseButton.m
+++ b/Classes/LinphoneUI/UIEraseButton.m
@@ -22,23 +22,49 @@
@implementation UIEraseButton
+@synthesize addressField;
+
+
#pragma mark - Lifecycle Functions
--(void) initWithAddressField:(UITextField*) address {
- mAddress = address;
+- (void)initUIEraseButton {
[self addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
}
-- (void)dealloc {
- [super dealloc];
+- (id)init {
+ self = [super init];
+ if (self) {
+ [self initUIEraseButton];
+ }
+ return self;
}
+- (id)initWithFrame:(CGRect)frame {
+ self = [super initWithFrame:frame];
+ if (self) {
+ [self initUIEraseButton];
+ }
+ return self;
+}
+
+- (id)initWithCoder:(NSCoder *)decoder {
+ self = [super initWithCoder:decoder];
+ if (self) {
+ [self initUIEraseButton];
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [super dealloc];
+ [addressField release];
+}
#pragma mark - Action Functions
-(void) touchDown:(id) sender {
- if ([mAddress.text length] > 0) {
- [mAddress setText:[mAddress.text substringToIndex:[mAddress.text length]-1]];
+ if ([addressField.text length] > 0) {
+ [addressField setText:[addressField.text substringToIndex:[addressField.text length]-1]];
}
}
@@ -49,7 +75,7 @@
}
- (void)onLongTouch {
- [mAddress setText:@""];
+ [addressField setText:@""];
}
@end
diff --git a/Classes/LinphoneUI/UIHistoryCell.xib b/Classes/LinphoneUI/UIHistoryCell.xib
index c978fbc8e..bba065224 100644
--- a/Classes/LinphoneUI/UIHistoryCell.xib
+++ b/Classes/LinphoneUI/UIHistoryCell.xib
@@ -129,7 +129,6 @@
{{276, 0}, {44, 44}}
-
_NS:9
NO
IBCocoaTouchFramework
@@ -158,12 +157,9 @@
_NS:9
-
+
3
- MQA
-
- 2
-
+ MCAwAA
IBCocoaTouchFramework
@@ -173,7 +169,6 @@
{320, 44}
-
_NS:9
NO
IBCocoaTouchFramework
@@ -189,6 +184,7 @@
_NS:9
+
NO
IBCocoaTouchFramework
diff --git a/Classes/LinphoneUI/UITransferButton.h b/Classes/LinphoneUI/UITransferButton.h
new file mode 100644
index 000000000..f6178358e
--- /dev/null
+++ b/Classes/LinphoneUI/UITransferButton.h
@@ -0,0 +1,29 @@
+/* UITransferButton.h
+ *
+ * Copyright (C) 2012 Belledonne Comunications, Grenoble, France
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import
+
+@interface UITransferButton : UIButton {
+@private
+ UITextField* addressField;
+}
+
+@property (nonatomic, retain) IBOutlet UITextField* addressField;
+
+@end
diff --git a/Classes/LinphoneUI/UITransferButton.m b/Classes/LinphoneUI/UITransferButton.m
new file mode 100644
index 000000000..6a105db9b
--- /dev/null
+++ b/Classes/LinphoneUI/UITransferButton.m
@@ -0,0 +1,131 @@
+/* UITransferButton.m
+ *
+ * Copyright (C) 2012 Belledonne Comunications, Grenoble, France
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+#import "UITransferButton.h"
+#import "LinphoneManager.h"
+
+#import
+
+@implementation UITransferButton
+
+@synthesize addressField;
+
+#pragma mark - Lifecycle Functions
+
+- (void)initUICallButton {
+ [self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
+}
+
+- (id)init {
+ self = [super init];
+ if (self) {
+ [self initUICallButton];
+ }
+ return self;
+}
+
+- (id)initWithFrame:(CGRect)frame {
+ self = [super initWithFrame:frame];
+ if (self) {
+ [self initUICallButton];
+ }
+ return self;
+}
+
+- (id)initWithCoder:(NSCoder *)decoder {
+ self = [super initWithCoder:decoder];
+ if (self) {
+ [self initUICallButton];
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [addressField release];
+
+ [super dealloc];
+}
+
+#pragma mark -
+
+-(void) touchUp:(id) sender {
+ if (!linphone_core_is_network_reachabled([LinphoneManager getLc])) {
+ UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Network Error",nil)
+ message:NSLocalizedString(@"There is no network connection available, enable WIFI or WWAN prior to place a call",nil)
+ delegate:nil
+ cancelButtonTitle:NSLocalizedString(@"Continue",nil)
+ otherButtonTitles:nil];
+ [error show];
+ [error release];
+ return;
+ }
+
+ CTCallCenter* ct = [[CTCallCenter alloc] init];
+ if ([ct.currentCalls count] > 0) {
+ ms_error("GSM call in progress, cancelling outgoing SIP call request");
+ UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Cannot make call",nil)
+ message:NSLocalizedString(@"Please terminate GSM call",nil)
+ delegate:nil
+ cancelButtonTitle:NSLocalizedString(@"Continue",nil)
+ otherButtonTitles:nil];
+ [error show];
+ [error release];
+ [ct release];
+ return;
+ }
+ [ct release];
+
+ if (TRUE /*!linphone_core_in_call([LinphoneManager getLc])*/) {
+ LinphoneProxyConfig* proxyCfg;
+ //get default proxy
+ linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg);
+ LinphoneCallParams* lcallParams = linphone_core_create_default_call_parameters([LinphoneManager getLc]);
+
+ if ([addressField.text length] == 0) return; //just return
+ if ([addressField.text hasPrefix:@"sip:"]) {
+ linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), [addressField.text cStringUsingEncoding:[NSString defaultCStringEncoding]]);
+ } else if ( proxyCfg==nil){
+ UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Invalid sip address",nil)
+ message:NSLocalizedString(@"Either configure a SIP proxy server from settings prior to place a call or use a valid sip address (I.E sip:john@example.net)",nil)
+ delegate:nil
+ cancelButtonTitle:NSLocalizedString(@"Continue",nil)
+ otherButtonTitles:nil];
+ [error show];
+ [error release];
+ } else {
+ char normalizedUserName[256];
+ NSString* toUserName = [NSString stringWithString:[addressField text]];
+ NSString* lDisplayName = [[LinphoneManager instance] getDisplayNameFromAddressBook:toUserName andUpdateCallLog:nil];
+
+ linphone_proxy_config_normalize_number(proxyCfg,[toUserName cStringUsingEncoding:[NSString defaultCStringEncoding]],normalizedUserName,sizeof(normalizedUserName));
+ LinphoneAddress* tmpAddress = linphone_address_new(linphone_core_get_identity([LinphoneManager getLc]));
+ linphone_address_set_username(tmpAddress,normalizedUserName);
+ linphone_address_set_display_name(tmpAddress,(lDisplayName)?[lDisplayName cStringUsingEncoding:[NSString defaultCStringEncoding]]:nil);
+
+
+ linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), normalizedUserName);
+
+ linphone_address_destroy(tmpAddress);
+ }
+ linphone_call_params_destroy(lcallParams);
+ } else if (linphone_core_inc_invite_pending([LinphoneManager getLc])) {
+ linphone_core_accept_call([LinphoneManager getLc],linphone_core_get_current_call([LinphoneManager getLc]));
+ }
+}
+
+@end
diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m
index 8d9e26959..43be2d8cd 100644
--- a/Classes/PhoneMainView.m
+++ b/Classes/PhoneMainView.m
@@ -259,9 +259,7 @@
case LinphoneCallConnected:
case LinphoneCallUpdated:
{
- if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
- [[LinphoneManager instance] changeView:PhoneView_InCall];
- }
+ [[LinphoneManager instance] changeView:PhoneView_InCall];
break;
}
case LinphoneCallUpdatedByRemote:
@@ -270,9 +268,7 @@
const LinphoneCallParams* remote = linphone_call_get_remote_params(call);
if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) {
- if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
- [[LinphoneManager instance] changeView:PhoneView_InCall];
- }
+ [[LinphoneManager instance] changeView:PhoneView_InCall];
}
break;
}
@@ -284,32 +280,27 @@
{
[self dismissIncomingCall:call];
if (canHideInCallView) {
- if ([[LinphoneManager instance] currentView] != PhoneView_Dialer) {
- // Go to dialer view
- NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
- [[[NSArray alloc] initWithObjects: @"", nil] autorelease]
- , @"setAddress:",
- nil] autorelease];
- [[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
- }
+ // Go to dialer view
+ NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
+ [[[NSArray alloc] initWithObjects: @"", nil] autorelease]
+ , @"setAddress:",
+ [[[NSArray alloc] initWithObjects: [NSNumber numberWithInt: FALSE], nil] autorelease]
+ , @"setTransferMode:",
+ nil] autorelease];
+ [[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
} else {
- if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
- [[LinphoneManager instance] changeView:PhoneView_InCall];
- }
+ [[LinphoneManager instance] changeView:PhoneView_InCall];
}
break;
}
case LinphoneCallStreamsRunning:
{
- if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
- [[LinphoneManager instance] changeView:PhoneView_InCall];
- }
+ [[LinphoneManager instance] changeView:PhoneView_InCall];
break;
}
default:
break;
}
-
}
diff --git a/Classes/Utils/CPAnimationStep.m b/Classes/Utils/CPAnimationStep.m
index ba99bbfd9..4ad40220f 100755
--- a/Classes/Utils/CPAnimationStep.m
+++ b/Classes/Utils/CPAnimationStep.m
@@ -74,7 +74,7 @@
self.consumableSteps = nil;
return; // we're done
}
- AnimationStep completionStep = ^{
+ void (^completionStep)(BOOL) = ^(BOOL animated){
[self.consumableSteps removeLastObject];
[self runAnimated:animated]; // recurse!
};
@@ -87,13 +87,15 @@
animations:currentStep.step
completion:^(BOOL finished) {
if (finished) {
- completionStep();
- }
+ completionStep(TRUE);
+ } else {
+ completionStep(FALSE);
+ }
}];
} else {
void (^execution)(void) = ^{
currentStep.step();
- completionStep();
+ completionStep(FALSE);
};
if (animated && currentStep.delay) {
diff --git a/Resources/contacts_all_default.png b/Resources/contacts_all_default.png
index 18e7eebd4..d062ce11c 100644
Binary files a/Resources/contacts_all_default.png and b/Resources/contacts_all_default.png differ
diff --git a/Resources/contacts_all_selected.png b/Resources/contacts_all_selected.png
index d062ce11c..18e7eebd4 100644
Binary files a/Resources/contacts_all_selected.png and b/Resources/contacts_all_selected.png differ
diff --git a/Resources/contacts_linphone_default.png b/Resources/contacts_linphone_default.png
index 9d240afeb..0a75d15f0 100644
Binary files a/Resources/contacts_linphone_default.png and b/Resources/contacts_linphone_default.png differ
diff --git a/Resources/contacts_linphone_selected.png b/Resources/contacts_linphone_selected.png
index 0a75d15f0..9d240afeb 100644
Binary files a/Resources/contacts_linphone_selected.png and b/Resources/contacts_linphone_selected.png differ
diff --git a/Resources/history_all_default.png b/Resources/history_all_default.png
index fe9f61f2f..9790cc945 100644
Binary files a/Resources/history_all_default.png and b/Resources/history_all_default.png differ
diff --git a/Resources/history_all_selected.png b/Resources/history_all_selected.png
index 9790cc945..fe9f61f2f 100644
Binary files a/Resources/history_all_selected.png and b/Resources/history_all_selected.png differ
diff --git a/Resources/history_missed_default.png b/Resources/history_missed_default.png
index 0f2f99b4e..cb413d997 100644
Binary files a/Resources/history_missed_default.png and b/Resources/history_missed_default.png differ
diff --git a/Resources/history_missed_selected.png b/Resources/history_missed_selected.png
index cb413d997..0f2f99b4e 100644
Binary files a/Resources/history_missed_selected.png and b/Resources/history_missed_selected.png differ
diff --git a/Resources/options_add_default.png b/Resources/options_add_default.png
new file mode 100644
index 000000000..9466db7a0
Binary files /dev/null and b/Resources/options_add_default.png differ
diff --git a/Resources/options_add_over.png b/Resources/options_add_over.png
new file mode 100644
index 000000000..efbda4690
Binary files /dev/null and b/Resources/options_add_over.png differ
diff --git a/Resources/options_transfer_default.png b/Resources/options_transfer_default.png
new file mode 100644
index 000000000..0fb0981f9
Binary files /dev/null and b/Resources/options_transfer_default.png differ
diff --git a/Resources/options_transfer_over.png b/Resources/options_transfer_over.png
new file mode 100644
index 000000000..019918329
Binary files /dev/null and b/Resources/options_transfer_over.png differ
diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj
index 7b6a1fd9a..0765ea3eb 100755
--- a/linphone.xcodeproj/project.pbxproj
+++ b/linphone.xcodeproj/project.pbxproj
@@ -155,6 +155,16 @@
70E542F513E147EB002BA2C0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F413E147EB002BA2C0 /* QuartzCore.framework */; };
D3196D2D15A3199D007FEEBA /* list_hightlight.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D2C15A3199D007FEEBA /* list_hightlight.png */; };
D3196D2E15A3199D007FEEBA /* list_hightlight.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D2C15A3199D007FEEBA /* list_hightlight.png */; };
+ D3196D3415A321E3007FEEBA /* options_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3015A321E2007FEEBA /* options_add_default.png */; };
+ D3196D3515A321E3007FEEBA /* options_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3015A321E2007FEEBA /* options_add_default.png */; };
+ D3196D3615A321E3007FEEBA /* options_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3115A321E2007FEEBA /* options_add_over.png */; };
+ D3196D3715A321E3007FEEBA /* options_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3115A321E2007FEEBA /* options_add_over.png */; };
+ D3196D3815A321E3007FEEBA /* options_transfer_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3215A321E3007FEEBA /* options_transfer_default.png */; };
+ D3196D3915A321E3007FEEBA /* options_transfer_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3215A321E3007FEEBA /* options_transfer_default.png */; };
+ D3196D3A15A321E3007FEEBA /* options_transfer_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3315A321E3007FEEBA /* options_transfer_over.png */; };
+ D3196D3B15A321E3007FEEBA /* options_transfer_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3196D3315A321E3007FEEBA /* options_transfer_over.png */; };
+ D3196D3E15A32BD8007FEEBA /* UITransferButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D3196D3D15A32BD8007FEEBA /* UITransferButton.m */; };
+ D3196D3F15A32BD8007FEEBA /* UITransferButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D3196D3D15A32BD8007FEEBA /* UITransferButton.m */; };
D31AAF5E159B3919002C6B02 /* InCallTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31AAF5D159B3919002C6B02 /* InCallTableViewController.m */; };
D31AAF5F159B3919002C6B02 /* InCallTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31AAF5D159B3919002C6B02 /* InCallTableViewController.m */; };
D31AAF63159B5B6F002C6B02 /* conference_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D31AAF61159B5B6E002C6B02 /* conference_default.png */; };
@@ -240,14 +250,14 @@
D35497FF15875372000081D8 /* ContactsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D35497FC15875372000081D8 /* ContactsViewController.m */; };
D354980015875372000081D8 /* ContactsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D35497FD15875372000081D8 /* ContactsViewController.xib */; };
D354980115875372000081D8 /* ContactsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D35497FD15875372000081D8 /* ContactsViewController.xib */; };
- D354980615875534000081D8 /* contacts_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980215875534000081D8 /* contacts_all_default.png */; };
- D354980715875534000081D8 /* contacts_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980215875534000081D8 /* contacts_all_default.png */; };
- D354980815875534000081D8 /* contacts_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980315875534000081D8 /* contacts_all_selected.png */; };
- D354980915875534000081D8 /* contacts_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980315875534000081D8 /* contacts_all_selected.png */; };
- D354980A15875534000081D8 /* contacts_linphone_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980415875534000081D8 /* contacts_linphone_default.png */; };
- D354980B15875534000081D8 /* contacts_linphone_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980415875534000081D8 /* contacts_linphone_default.png */; };
- D354980C15875534000081D8 /* contacts_linphone_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980515875534000081D8 /* contacts_linphone_selected.png */; };
- D354980D15875534000081D8 /* contacts_linphone_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980515875534000081D8 /* contacts_linphone_selected.png */; };
+ D354980615875534000081D8 /* contacts_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980215875534000081D8 /* contacts_all_selected.png */; };
+ D354980715875534000081D8 /* contacts_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980215875534000081D8 /* contacts_all_selected.png */; };
+ D354980815875534000081D8 /* contacts_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980315875534000081D8 /* contacts_all_default.png */; };
+ D354980915875534000081D8 /* contacts_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980315875534000081D8 /* contacts_all_default.png */; };
+ D354980A15875534000081D8 /* contacts_linphone_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980415875534000081D8 /* contacts_linphone_selected.png */; };
+ D354980B15875534000081D8 /* contacts_linphone_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980415875534000081D8 /* contacts_linphone_selected.png */; };
+ D354980C15875534000081D8 /* contacts_linphone_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980515875534000081D8 /* contacts_linphone_default.png */; };
+ D354980D15875534000081D8 /* contacts_linphone_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980515875534000081D8 /* contacts_linphone_default.png */; };
D354981015875608000081D8 /* contacts_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980E15875608000081D8 /* contacts_add_default.png */; };
D354981115875608000081D8 /* contacts_add_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980E15875608000081D8 /* contacts_add_default.png */; };
D354981215875608000081D8 /* contacts_add_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980F15875608000081D8 /* contacts_add_over.png */; };
@@ -455,18 +465,18 @@
D3ED3E881586291E006C0DE4 /* UIMainBar.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3E851586291B006C0DE4 /* UIMainBar.m */; };
D3ED3E891586291E006C0DE4 /* UIMainBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E861586291C006C0DE4 /* UIMainBar.xib */; };
D3ED3E8A1586291E006C0DE4 /* UIMainBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E861586291C006C0DE4 /* UIMainBar.xib */; };
- D3ED3E9815872EF1006C0DE4 /* history_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9215872EF1006C0DE4 /* history_all_default.png */; };
- D3ED3E9915872EF1006C0DE4 /* history_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9215872EF1006C0DE4 /* history_all_default.png */; };
- D3ED3E9A15872EF1006C0DE4 /* history_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9315872EF1006C0DE4 /* history_all_selected.png */; };
- D3ED3E9B15872EF1006C0DE4 /* history_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9315872EF1006C0DE4 /* history_all_selected.png */; };
+ D3ED3E9815872EF1006C0DE4 /* history_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9215872EF1006C0DE4 /* history_all_selected.png */; };
+ D3ED3E9915872EF1006C0DE4 /* history_all_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9215872EF1006C0DE4 /* history_all_selected.png */; };
+ D3ED3E9A15872EF1006C0DE4 /* history_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9315872EF1006C0DE4 /* history_all_default.png */; };
+ D3ED3E9B15872EF1006C0DE4 /* history_all_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9315872EF1006C0DE4 /* history_all_default.png */; };
D3ED3E9C15872EF1006C0DE4 /* history_edit_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */; };
D3ED3E9D15872EF1006C0DE4 /* history_edit_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */; };
D3ED3E9E15872EF1006C0DE4 /* history_edit_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */; };
D3ED3E9F15872EF1006C0DE4 /* history_edit_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */; };
- D3ED3EA015872EF1006C0DE4 /* history_missed_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9615872EF1006C0DE4 /* history_missed_default.png */; };
- D3ED3EA115872EF1006C0DE4 /* history_missed_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9615872EF1006C0DE4 /* history_missed_default.png */; };
- D3ED3EA215872EF1006C0DE4 /* history_missed_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9715872EF1006C0DE4 /* history_missed_selected.png */; };
- D3ED3EA315872EF1006C0DE4 /* history_missed_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9715872EF1006C0DE4 /* history_missed_selected.png */; };
+ D3ED3EA015872EF1006C0DE4 /* history_missed_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9615872EF1006C0DE4 /* history_missed_selected.png */; };
+ D3ED3EA115872EF1006C0DE4 /* history_missed_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9615872EF1006C0DE4 /* history_missed_selected.png */; };
+ D3ED3EA215872EF1006C0DE4 /* history_missed_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */; };
+ D3ED3EA315872EF1006C0DE4 /* history_missed_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */; };
D3ED3EA71587334E006C0DE4 /* HistoryTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */; };
D3ED3EA81587334E006C0DE4 /* HistoryTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */; };
D3ED3EB3158738FB006C0DE4 /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3EB2158738FA006C0DE4 /* HistoryViewController.xib */; };
@@ -897,6 +907,12 @@
70E542F413E147EB002BA2C0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
8D1107310486CEB800E47090 /* linphone-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "linphone-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; };
D3196D2C15A3199D007FEEBA /* list_hightlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = list_hightlight.png; path = Resources/list_hightlight.png; sourceTree = ""; };
+ D3196D3015A321E2007FEEBA /* options_add_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_add_default.png; path = Resources/options_add_default.png; sourceTree = ""; };
+ D3196D3115A321E2007FEEBA /* options_add_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_add_over.png; path = Resources/options_add_over.png; sourceTree = ""; };
+ D3196D3215A321E3007FEEBA /* options_transfer_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_transfer_default.png; path = Resources/options_transfer_default.png; sourceTree = ""; };
+ D3196D3315A321E3007FEEBA /* options_transfer_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = options_transfer_over.png; path = Resources/options_transfer_over.png; sourceTree = ""; };
+ D3196D3C15A32BD7007FEEBA /* UITransferButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UITransferButton.h; sourceTree = ""; };
+ D3196D3D15A32BD8007FEEBA /* UITransferButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UITransferButton.m; sourceTree = ""; };
D31AAF5C159B3919002C6B02 /* InCallTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InCallTableViewController.h; sourceTree = ""; };
D31AAF5D159B3919002C6B02 /* InCallTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InCallTableViewController.m; sourceTree = ""; };
D31AAF61159B5B6E002C6B02 /* conference_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = conference_default.png; path = Resources/conference_default.png; sourceTree = ""; };
@@ -954,10 +970,10 @@
D35497FB15875372000081D8 /* ContactsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsViewController.h; sourceTree = ""; };
D35497FC15875372000081D8 /* ContactsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactsViewController.m; sourceTree = ""; };
D35497FD15875372000081D8 /* ContactsViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ContactsViewController.xib; sourceTree = ""; };
- D354980215875534000081D8 /* contacts_all_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_all_default.png; path = Resources/contacts_all_default.png; sourceTree = ""; };
- D354980315875534000081D8 /* contacts_all_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_all_selected.png; path = Resources/contacts_all_selected.png; sourceTree = ""; };
- D354980415875534000081D8 /* contacts_linphone_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_linphone_default.png; path = Resources/contacts_linphone_default.png; sourceTree = ""; };
- D354980515875534000081D8 /* contacts_linphone_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_linphone_selected.png; path = Resources/contacts_linphone_selected.png; sourceTree = ""; };
+ D354980215875534000081D8 /* contacts_all_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_all_selected.png; path = Resources/contacts_all_selected.png; sourceTree = ""; };
+ D354980315875534000081D8 /* contacts_all_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_all_default.png; path = Resources/contacts_all_default.png; sourceTree = ""; };
+ D354980415875534000081D8 /* contacts_linphone_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_linphone_selected.png; path = Resources/contacts_linphone_selected.png; sourceTree = ""; };
+ D354980515875534000081D8 /* contacts_linphone_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_linphone_default.png; path = Resources/contacts_linphone_default.png; sourceTree = ""; };
D354980E15875608000081D8 /* contacts_add_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_add_default.png; path = Resources/contacts_add_default.png; sourceTree = ""; };
D354980F15875608000081D8 /* contacts_add_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_add_over.png; path = Resources/contacts_add_over.png; sourceTree = ""; };
D3549814158761CF000081D8 /* ContactsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsTableViewController.h; sourceTree = ""; };
@@ -1097,12 +1113,12 @@
D3ED3E841586291B006C0DE4 /* UIMainBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIMainBar.h; sourceTree = ""; };
D3ED3E851586291B006C0DE4 /* UIMainBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIMainBar.m; sourceTree = ""; };
D3ED3E861586291C006C0DE4 /* UIMainBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIMainBar.xib; sourceTree = ""; };
- D3ED3E9215872EF1006C0DE4 /* history_all_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_all_default.png; path = Resources/history_all_default.png; sourceTree = ""; };
- D3ED3E9315872EF1006C0DE4 /* history_all_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_all_selected.png; path = Resources/history_all_selected.png; sourceTree = ""; };
+ D3ED3E9215872EF1006C0DE4 /* history_all_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_all_selected.png; path = Resources/history_all_selected.png; sourceTree = ""; };
+ D3ED3E9315872EF1006C0DE4 /* history_all_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_all_default.png; path = Resources/history_all_default.png; sourceTree = ""; };
D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_edit_default.png; path = Resources/history_edit_default.png; sourceTree = ""; };
D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_edit_over.png; path = Resources/history_edit_over.png; sourceTree = ""; };
- D3ED3E9615872EF1006C0DE4 /* history_missed_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_missed_default.png; path = Resources/history_missed_default.png; sourceTree = ""; };
- D3ED3E9715872EF1006C0DE4 /* history_missed_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_missed_selected.png; path = Resources/history_missed_selected.png; sourceTree = ""; };
+ D3ED3E9615872EF1006C0DE4 /* history_missed_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_missed_selected.png; path = Resources/history_missed_selected.png; sourceTree = ""; };
+ D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_missed_default.png; path = Resources/history_missed_default.png; sourceTree = ""; };
D3ED3EA41587334B006C0DE4 /* HistoryTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryTableViewController.h; sourceTree = ""; };
D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryTableViewController.m; sourceTree = ""; };
D3ED3EB2158738FA006C0DE4 /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = ""; };
@@ -1601,6 +1617,8 @@
D32648431588F6FB00930C67 /* UIToggleButton.m */,
340751E5150F38FC00B89C47 /* UIVideoButton.h */,
340751E6150F38FD00B89C47 /* UIVideoButton.m */,
+ D3196D3C15A32BD7007FEEBA /* UITransferButton.h */,
+ D3196D3D15A32BD8007FEEBA /* UITransferButton.m */,
);
path = LinphoneUI;
sourceTree = "";
@@ -1760,7 +1778,6 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
- D3196D2C15A3199D007FEEBA /* list_hightlight.png */,
D3F83F741582253100336684 /* accept_default.png */,
D3F83F751582253100336684 /* accept_over.png */,
D3D6A39B159B0EEF005F692C /* add_call_default.png */,
@@ -1814,11 +1831,11 @@
D31AAF62159B5B6E002C6B02 /* conference_over.png */,
D354980E15875608000081D8 /* contacts_add_default.png */,
D354980F15875608000081D8 /* contacts_add_over.png */,
- D354980215875534000081D8 /* contacts_all_default.png */,
- D354980315875534000081D8 /* contacts_all_selected.png */,
+ D354980215875534000081D8 /* contacts_all_selected.png */,
+ D354980315875534000081D8 /* contacts_all_default.png */,
D38327EB1580FE3A00FA0D23 /* contacts_default.png */,
- D354980415875534000081D8 /* contacts_linphone_default.png */,
- D354980515875534000081D8 /* contacts_linphone_selected.png */,
+ D354980415875534000081D8 /* contacts_linphone_selected.png */,
+ D354980515875534000081D8 /* contacts_linphone_default.png */,
D38327FC158100E400FA0D23 /* contacts_over.png */,
D38327EC1580FE3A00FA0D23 /* contacts_selected.png */,
D3F83F761582253100336684 /* decline_default.png */,
@@ -1833,13 +1850,13 @@
D3F83EFB158205A100336684 /* hangup_over.png */,
D36C43CE158F2F370048BA40 /* header_conference.png */,
D3F26BFB15987083005F9CAB /* header_incoming.png */,
- D3ED3E9215872EF1006C0DE4 /* history_all_default.png */,
- D3ED3E9315872EF1006C0DE4 /* history_all_selected.png */,
+ D3ED3E9215872EF1006C0DE4 /* history_all_selected.png */,
+ D3ED3E9315872EF1006C0DE4 /* history_all_default.png */,
D347347C1580E5F8003C7B8C /* history_default.png */,
D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */,
D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */,
- D3ED3E9615872EF1006C0DE4 /* history_missed_default.png */,
- D3ED3E9715872EF1006C0DE4 /* history_missed_selected.png */,
+ D3ED3E9615872EF1006C0DE4 /* history_missed_selected.png */,
+ D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */,
D3F26BF515986DAD005F9CAB /* history_ok_default.png */,
D3F26BF615986DAD005F9CAB /* history_ok_over.png */,
D38327FD158100E400FA0D23 /* history_over.png */,
@@ -1858,6 +1875,7 @@
D3EA5417159858A80037DC6B /* list_delete_over.png */,
D354981815876FE7000081D8 /* list_details_default.png */,
D354981915876FE7000081D8 /* list_details_over.png */,
+ D3196D2C15A3199D007FEEBA /* list_hightlight.png */,
D3F83EF4158205A100336684 /* micro_off_default.png */,
D35EA76115A2DF8D003E025D /* micro_off_disabled.png */,
D3F83EF5158205A100336684 /* micro_off_over.png */,
@@ -1891,9 +1909,13 @@
D3F83F2D1582223B00336684 /* numpad_zero_over.png */,
2242E312125235120061DDCE /* oldphone-mono-30s.caf */,
2237D4081084D7A9001383EE /* oldphone-mono.wav */,
+ D3196D3015A321E2007FEEBA /* options_add_default.png */,
+ D3196D3115A321E2007FEEBA /* options_add_over.png */,
D3D6A3A8159B0EFE005F692C /* options_default.png */,
D3D6A3A9159B0EFE005F692C /* options_disabled.png */,
D3D6A3AA159B0EFE005F692C /* options_over.png */,
+ D3196D3215A321E3007FEEBA /* options_transfer_default.png */,
+ D3196D3315A321E3007FEEBA /* options_transfer_over.png */,
D3F83EF8158205A100336684 /* pause_off_default.png */,
D3F83EF9158205A100336684 /* pause_off_over.png */,
D36C43E7158F3F7E0048BA40 /* pause_on_default.png */,
@@ -2204,18 +2226,18 @@
D3ED3E7815861B1B006C0DE4 /* backspace_default.png in Resources */,
D3ED3E7A15861B1B006C0DE4 /* backspace_over.png in Resources */,
D3ED3E891586291E006C0DE4 /* UIMainBar.xib in Resources */,
- D3ED3E9815872EF1006C0DE4 /* history_all_default.png in Resources */,
- D3ED3E9A15872EF1006C0DE4 /* history_all_selected.png in Resources */,
+ D3ED3E9815872EF1006C0DE4 /* history_all_selected.png in Resources */,
+ D3ED3E9A15872EF1006C0DE4 /* history_all_default.png in Resources */,
D3ED3E9C15872EF1006C0DE4 /* history_edit_default.png in Resources */,
D3ED3E9E15872EF1006C0DE4 /* history_edit_over.png in Resources */,
- D3ED3EA015872EF1006C0DE4 /* history_missed_default.png in Resources */,
- D3ED3EA215872EF1006C0DE4 /* history_missed_selected.png in Resources */,
+ D3ED3EA015872EF1006C0DE4 /* history_missed_selected.png in Resources */,
+ D3ED3EA215872EF1006C0DE4 /* history_missed_default.png in Resources */,
D3ED3EB3158738FB006C0DE4 /* HistoryViewController.xib in Resources */,
D354980015875372000081D8 /* ContactsViewController.xib in Resources */,
- D354980615875534000081D8 /* contacts_all_default.png in Resources */,
- D354980815875534000081D8 /* contacts_all_selected.png in Resources */,
- D354980A15875534000081D8 /* contacts_linphone_default.png in Resources */,
- D354980C15875534000081D8 /* contacts_linphone_selected.png in Resources */,
+ D354980615875534000081D8 /* contacts_all_selected.png in Resources */,
+ D354980815875534000081D8 /* contacts_all_default.png in Resources */,
+ D354980A15875534000081D8 /* contacts_linphone_selected.png in Resources */,
+ D354980C15875534000081D8 /* contacts_linphone_default.png in Resources */,
D354981015875608000081D8 /* contacts_add_default.png in Resources */,
D354981215875608000081D8 /* contacts_add_over.png in Resources */,
D354981A15876FE7000081D8 /* list_details_default.png in Resources */,
@@ -2307,6 +2329,10 @@
D38D14AF15A30B3D008497E8 /* cell_call_first_hightlight.png in Resources */,
D38D14B115A30B3D008497E8 /* cell_call_hightlight.png in Resources */,
D3196D2D15A3199D007FEEBA /* list_hightlight.png in Resources */,
+ D3196D3415A321E3007FEEBA /* options_add_default.png in Resources */,
+ D3196D3615A321E3007FEEBA /* options_add_over.png in Resources */,
+ D3196D3815A321E3007FEEBA /* options_transfer_default.png in Resources */,
+ D3196D3A15A321E3007FEEBA /* options_transfer_over.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2389,18 +2415,18 @@
D3ED3E7915861B1B006C0DE4 /* backspace_default.png in Resources */,
D3ED3E7B15861B1B006C0DE4 /* backspace_over.png in Resources */,
D3ED3E8A1586291E006C0DE4 /* UIMainBar.xib in Resources */,
- D3ED3E9915872EF1006C0DE4 /* history_all_default.png in Resources */,
- D3ED3E9B15872EF1006C0DE4 /* history_all_selected.png in Resources */,
+ D3ED3E9915872EF1006C0DE4 /* history_all_selected.png in Resources */,
+ D3ED3E9B15872EF1006C0DE4 /* history_all_default.png in Resources */,
D3ED3E9D15872EF1006C0DE4 /* history_edit_default.png in Resources */,
D3ED3E9F15872EF1006C0DE4 /* history_edit_over.png in Resources */,
- D3ED3EA115872EF1006C0DE4 /* history_missed_default.png in Resources */,
- D3ED3EA315872EF1006C0DE4 /* history_missed_selected.png in Resources */,
+ D3ED3EA115872EF1006C0DE4 /* history_missed_selected.png in Resources */,
+ D3ED3EA315872EF1006C0DE4 /* history_missed_default.png in Resources */,
D3ED3EB4158738FB006C0DE4 /* HistoryViewController.xib in Resources */,
D354980115875372000081D8 /* ContactsViewController.xib in Resources */,
- D354980715875534000081D8 /* contacts_all_default.png in Resources */,
- D354980915875534000081D8 /* contacts_all_selected.png in Resources */,
- D354980B15875534000081D8 /* contacts_linphone_default.png in Resources */,
- D354980D15875534000081D8 /* contacts_linphone_selected.png in Resources */,
+ D354980715875534000081D8 /* contacts_all_selected.png in Resources */,
+ D354980915875534000081D8 /* contacts_all_default.png in Resources */,
+ D354980B15875534000081D8 /* contacts_linphone_selected.png in Resources */,
+ D354980D15875534000081D8 /* contacts_linphone_default.png in Resources */,
D354981115875608000081D8 /* contacts_add_default.png in Resources */,
D354981315875608000081D8 /* contacts_add_over.png in Resources */,
D354981B15876FE7000081D8 /* list_details_default.png in Resources */,
@@ -2491,6 +2517,10 @@
D38D14B015A30B3D008497E8 /* cell_call_first_hightlight.png in Resources */,
D38D14B215A30B3D008497E8 /* cell_call_hightlight.png in Resources */,
D3196D2E15A3199D007FEEBA /* list_hightlight.png in Resources */,
+ D3196D3515A321E3007FEEBA /* options_add_default.png in Resources */,
+ D3196D3715A321E3007FEEBA /* options_add_over.png in Resources */,
+ D3196D3915A321E3007FEEBA /* options_transfer_default.png in Resources */,
+ D3196D3B15A321E3007FEEBA /* options_transfer_over.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2566,6 +2596,7 @@
D32460ED159DA47700BA7F3A /* CPAnimationSequence.m in Sources */,
D32460EF159DA47700BA7F3A /* CPAnimationStep.m in Sources */,
D32B9DFC15A2F131000B6DEC /* FastAddressBook.m in Sources */,
+ D3196D3E15A32BD8007FEEBA /* UITransferButton.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2638,6 +2669,7 @@
D32460EE159DA47700BA7F3A /* CPAnimationSequence.m in Sources */,
D32460F0159DA47700BA7F3A /* CPAnimationStep.m in Sources */,
D32B9DFD15A2F131000B6DEC /* FastAddressBook.m in Sources */,
+ D3196D3F15A32BD8007FEEBA /* UITransferButton.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};