From 79f0cb5fd4cfad0ee78c69fb8079d4e13d71427e Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 21 Aug 2012 11:10:35 +0200 Subject: [PATCH] Improve incoming call --- Classes/BuschJaegerCallView.h | 2 + Classes/BuschJaegerCallView.m | 30 ++++++++ Classes/BuschJaegerCallView.xib | 124 ++++++++++++++++++++++++++++---- 3 files changed, 143 insertions(+), 13 deletions(-) diff --git a/Classes/BuschJaegerCallView.h b/Classes/BuschJaegerCallView.h index dbb4c481d..cfff1135e 100644 --- a/Classes/BuschJaegerCallView.h +++ b/Classes/BuschJaegerCallView.h @@ -33,6 +33,8 @@ VideoZoomHandler* videoZoomHandler; } +@property (nonatomic, retain) IBOutlet UIView* incomingView; +@property (nonatomic, retain) IBOutlet UILabel* contactLabel; @property (nonatomic, retain) IBOutlet UIView* videoView; @property (nonatomic, retain) IBOutlet UIButton* startCallButton; @property (nonatomic, retain) IBOutlet UIButton* takeCallButton; diff --git a/Classes/BuschJaegerCallView.m b/Classes/BuschJaegerCallView.m index d681e5eaf..628c62f60 100644 --- a/Classes/BuschJaegerCallView.m +++ b/Classes/BuschJaegerCallView.m @@ -25,6 +25,8 @@ @implementation BuschJaegerCallView +@synthesize incomingView; +@synthesize contactLabel; @synthesize videoView; @synthesize startCallButton; @synthesize takeCallButton; @@ -123,6 +125,7 @@ name:kLinphoneCallUpdate object:nil]; + [incomingView setHidden:YES]; [startCallButton setHidden:NO]; [takeCallButton setHidden:YES]; [microButton setHidden:NO]; @@ -178,6 +181,7 @@ case LinphoneCallIncomingReceived: { [self displayIncomingCall:call]; + break; } case LinphoneCallOutgoingInit: case LinphoneCallConnected: @@ -199,15 +203,40 @@ } - (void)displayIncomingCall:(LinphoneCall *)call { + [incomingView setHidden:NO]; [startCallButton setHidden:YES]; [takeCallButton setHidden:NO]; [microButton setHidden:YES]; [declineButton setHidden:NO]; [endOrRejectCallButton setHidden:YES]; [videoView setHidden:NO]; + + + NSString *contactName = NSLocalizedString(@"Unknown", nil); + + // Extract caller address + const LinphoneAddress* addr = linphone_call_get_remote_address(call); + if(addr) { + char *address = linphone_address_as_string_uri_only(addr); + if(address != NULL) { + contactName = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:address]]; + ms_free(address); + } + } + + // Find caller in outdoor stations + NSSet *outstations = [[LinphoneManager instance] configuration].outdoorStations; + for(OutdoorStation *os in outstations) { + if([[FastAddressBook normalizeSipURI:os.address] isEqualToString:contactName]) { + contactName = os.name; + break; + } + } + [contactLabel setText:contactName]; } - (void)displayInCall { + [incomingView setHidden:YES]; [startCallButton setHidden:YES]; [takeCallButton setHidden:YES]; [microButton setHidden:NO]; @@ -217,6 +246,7 @@ } - (void)displayVideoCall { + [incomingView setHidden:YES]; [startCallButton setHidden:YES]; [takeCallButton setHidden:YES]; [microButton setHidden:NO]; diff --git a/Classes/BuschJaegerCallView.xib b/Classes/BuschJaegerCallView.xib index e38409768..288fab755 100644 --- a/Classes/BuschJaegerCallView.xib +++ b/Classes/BuschJaegerCallView.xib @@ -13,6 +13,7 @@ IBProxyObject IBUIButton + IBUILabel IBUIView @@ -41,7 +42,7 @@ {320, 480} - + _NS:196 3 @@ -177,6 +178,7 @@ {{207, 0}, {73, 58}} + _NS:225 NO @@ -265,6 +267,57 @@ IBCocoaTouchFramework + + + 290 + + + + 274 + {320, 42} + + + + _NS:9 + NO + YES + 7 + NO + IBCocoaTouchFramework + Outdoor 1 + + 3 + MQA + + 2 + + + + 0 + 10 + 1 + + 2 + 20 + + + Helvetica-Bold + 20 + 16 + + + + {320, 42} + + + + _NS:9 + + 3 + MSAwLjQAA + + IBCocoaTouchFramework + {{0, 20}, {320, 480}} @@ -352,6 +405,22 @@ 84 + + + incomingView + + + + 87 + + + + contactLabel + + + + 88 + startCall: @@ -396,6 +465,7 @@ + @@ -412,12 +482,7 @@ - - - 4 - - - VideoView + ToolsView 8 @@ -461,6 +526,27 @@ Stop Call Button + + 85 + + + + + + IncomingView + + + 4 + + + VideoView + + + 86 + + + contactLabel + @@ -492,6 +578,8 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin IBBuiltInLabel-Red + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIMicroButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -501,7 +589,7 @@ - 84 + 88 @@ -523,16 +611,22 @@ + UILabel UIHangUpButton UIHangUpButton + UIView UIDigitButton + UIToggleButton UIDigitButton - UIToggleButton UIButton UIButton UIView + + contactLabel + UILabel + declineButton UIHangUpButton @@ -541,18 +635,22 @@ endOrRejectCallButton UIHangUpButton + + incomingView + UIView + lightsButton UIDigitButton + + microButton + UIToggleButton + openDoorButton UIDigitButton - - speakerButton - UIToggleButton - startCallButton UIButton