diff --git a/Classes/ChatRoomTableViewController.m b/Classes/ChatRoomTableViewController.m index 1555b96f2..1234b40a6 100644 --- a/Classes/ChatRoomTableViewController.m +++ b/Classes/ChatRoomTableViewController.m @@ -138,8 +138,6 @@ } self->remoteAddress = [aremoteAddress copy]; [self loadData]; - [ChatModel readConversation:remoteAddress]; - [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self]; } diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatRoomViewController.m index 552be969f..0915a4abe 100644 --- a/Classes/ChatRoomViewController.m +++ b/Classes/ChatRoomViewController.m @@ -143,7 +143,11 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - [[NSNotificationCenter defaultCenter] addObserver:self + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(applicationWillEnterForeground:) + name:UIApplicationDidBecomeActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; @@ -186,6 +190,10 @@ static UICompositeViewDescription *compositeDescription = nil; linphone_chat_room_destroy(chatRoom); chatRoom = NULL; } + [[NSNotificationCenter defaultCenter] removeObserver:self + name:UIApplicationDidBecomeActiveNotification + object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; @@ -226,6 +234,15 @@ static UICompositeViewDescription *compositeDescription = nil; [messageField setText:@""]; [self update]; [tableController setRemoteAddress: remoteAddress]; + [ChatModel readConversation:remoteAddress]; + [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self]; +} + +- (void)applicationWillEnterForeground:(NSNotification*)notif { + if(remoteAddress != nil) { + [ChatModel readConversation:remoteAddress]; + [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self]; + } } - (void)update { @@ -398,16 +415,16 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta } char *fromStr = linphone_address_as_string_uri_only(from); if(fromStr != NULL) { - if (![[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] - || [UIApplication sharedApplication].applicationState == UIApplicationStateActive) { - if([[NSString stringWithUTF8String:fromStr] - caseInsensitiveCompare:remoteAddress] == NSOrderedSame) { + if([[NSString stringWithUTF8String:fromStr] + caseInsensitiveCompare:remoteAddress] == NSOrderedSame) { + if (![[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] + || [UIApplication sharedApplication].applicationState == UIApplicationStateActive) { [chat setRead:[NSNumber numberWithInt:1]]; [chat update]; [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self]; - [tableController addChatEntry:chat]; - [tableController scrollToLastUnread:TRUE]; } + [tableController addChatEntry:chat]; + [tableController scrollToLastUnread:TRUE]; } ms_free(fromStr); } diff --git a/Classes/ContactDetailsTableViewController.m b/Classes/ContactDetailsTableViewController.m index d2e0ef476..74a47a6fe 100644 --- a/Classes/ContactDetailsTableViewController.m +++ b/Classes/ContactDetailsTableViewController.m @@ -588,10 +588,11 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { if(section == (ContactSections_MAX - 1)) { - return [footerController view]; - } else { - return nil; + if(ABRecordGetRecordID(contact) != kABRecordInvalidID) { + return [footerController view]; + } } + return nil; } - (NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { @@ -619,9 +620,13 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C } } -- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { if(section == (ContactSections_MAX - 1)) { - return [UIContactDetailsFooter height:[footerController isEditing]]; + if(ABRecordGetRecordID(contact) != kABRecordInvalidID) { + return [UIContactDetailsFooter height:[footerController isEditing]]; + } else { + return 0.000001f; // Hack UITableView = 0 + } } else if(section == ContactSections_None) { return 0.000001f; // Hack UITableView = 0 } diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index 1eb1715f1..6985dbd50 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -122,8 +122,30 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); linphone_address_destroy(parsed); } { - [self setInteger: linphone_core_get_audio_port(lc) forKey:@"audio_port_preference"]; - [self setInteger: linphone_core_get_video_port(lc) forKey:@"video_port_preference"]; + { + int minPort, maxPort; + linphone_core_get_audio_port_range(lc, &minPort, &maxPort); + if(minPort != maxPort) + [self setObject:[NSString stringWithFormat:@"%d-%d", minPort, maxPort] forKey:@"audio_port_preference"]; + else + [self setObject:[NSString stringWithFormat:@"%d", minPort] forKey:@"audio_port_preference"]; + } + { + int minPort, maxPort; + linphone_core_get_video_port_range(lc, &minPort, &maxPort); + if(minPort != maxPort) + [self setObject:[NSString stringWithFormat:@"%d-%d", minPort, maxPort] forKey:@"video_port_preference"]; + else + [self setObject:[NSString stringWithFormat:@"%d", minPort] forKey:@"video_port_preference"]; + } + } + { + [self setInteger: linphone_core_get_upload_bandwidth(lc) forKey:@"upload_bandwidth_preference"]; + [self setInteger: linphone_core_get_download_bandwidth(lc) forKey:@"download_bandwidth_preference"]; + } + { + [self setFloat:linphone_core_get_playback_gain_db(lc) forKey:@"playback_gain_preference"]; + [self setFloat:linphone_core_get_mic_gain_db(lc) forKey:@"microphone_gain_preference"]; } { LCSipTransports tp; @@ -212,8 +234,11 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [self setBool:linphone_core_video_preview_enabled(lc) forKey:@"preview_preference"]; } { - [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "sipinfo_dtmf_preference", 0) forKey:@"sipinfo_dtmf_preference"]; - [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "rfc_dtmf_preference", 1) forKey:@"rfc_dtmf_preference"]; + [self setBool:linphone_core_get_use_info_for_dtmf(lc) forKey:@"sipinfo_dtmf_preference"]; + [self setBool:linphone_core_get_use_rfc2833_for_dtmf(lc) forKey:@"rfc_dtmf_preference"]; + + [self setInteger:linphone_core_get_inc_timeout(lc) forKey:@"incoming_call_timeout_preference"]; + [self setInteger:linphone_core_get_in_call_timeout(lc) forKey:@"in_call_timeout_preference"]; } @@ -385,6 +410,47 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [[[LinphoneManager instance] fastAddressBook] reload]; } ++ (int)validPort:(int)port { + if(port < 0) { + return 0; + } + if(port > 65535) { + return 65535; + } + return port; +} + ++ (BOOL)parsePortRange:(NSString*)text minPort:(int*)minPort maxPort:(int*)maxPort { + NSError* error = nil; + *minPort = -1; + *maxPort = -1; + NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"([0-9]+)(([^0-9]+)([0-9]+))?" options:0 error:&error]; + if(error != NULL) + return FALSE; + NSArray* matches = [regex matchesInString:text options:0 range:NSMakeRange(0, [text length])]; + if([matches count] == 1) { + NSTextCheckingResult *match = [matches objectAtIndex:0]; + NSLog(@"%d", [match numberOfRanges]); + bool range = [match rangeAtIndex:2].length > 0; + if(!range) { + NSRange rangeMinPort = [match rangeAtIndex:1]; + *minPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMinPort] integerValue]]; + *maxPort = *minPort; + return TRUE; + } else { + NSRange rangeMinPort = [match rangeAtIndex:1]; + *minPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMinPort] integerValue]]; + NSRange rangeMaxPort = [match rangeAtIndex:4]; + *maxPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMaxPort] integerValue]]; + if(*minPort > *maxPort) { + *minPort = *maxPort; + } + return TRUE; + } + } + return FALSE; +} + - (BOOL)synchronize { if (![LinphoneManager isLcReady]) return YES; LinphoneCore *lc=[LinphoneManager getLc]; @@ -425,6 +491,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); linphone_core_set_use_info_for_dtmf(lc, [self boolForKey:@"sipinfo_dtmf_preference"]); linphone_core_set_use_rfc2833_for_dtmf(lc, [self boolForKey:@"rfc_dtmf_preference"]); + linphone_core_set_inc_timeout(lc, [self integerForKey:@"incoming_call_timeout_preference"]); + linphone_core_set_in_call_timeout(lc, [self integerForKey:@"in_call_timeout_preference"]); bool enableVideo = [self boolForKey:@"enable_video_preference"]; linphone_core_enable_video(lc, enableVideo, enableVideo); @@ -472,10 +540,30 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); // Audio & Video Port - int audio_port_preference = [self integerForKey:@"audio_port_preference"]; - linphone_core_set_audio_port(lc, audio_port_preference); - int video_port_preference = [self integerForKey:@"video_port_preference"]; - linphone_core_set_video_port(lc, video_port_preference); + { + NSString *audio_port_preference = [self stringForKey:@"audio_port_preference"]; + int minPort, maxPort; + [LinphoneCoreSettingsStore parsePortRange:audio_port_preference minPort:&minPort maxPort:&maxPort]; + linphone_core_set_audio_port_range(lc, minPort, maxPort); + } + { + NSString *video_port_preference = [self stringForKey:@"video_port_preference"]; + int minPort, maxPort; + [LinphoneCoreSettingsStore parsePortRange:video_port_preference minPort:&minPort maxPort:&maxPort]; + linphone_core_set_video_port_range(lc, minPort, maxPort); + } + + int upload_bandwidth = [self integerForKey:@"upload_bandwidth_preference"]; + linphone_core_set_upload_bandwidth(lc, upload_bandwidth); + + int download_bandwidth = [self integerForKey:@"download_bandwidth_preference"]; + linphone_core_set_download_bandwidth(lc, download_bandwidth); + + float playback_gain = [self floatForKey:@"playback_gain_preference"]; + linphone_core_set_playback_gain_db(lc, playback_gain); + + float mic_gain = [self floatForKey:@"microphone_gain_preference"]; + linphone_core_set_mic_gain_db(lc, mic_gain); UIDevice* device = [UIDevice currentDevice]; bool backgroundSupported = false; @@ -503,6 +591,13 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); BOOL animations = [self boolForKey:@"animations_preference"]; lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "animations_preference", animations); + + BOOL wifiOnly = [self boolForKey:@"wifi_only_preference"]; + lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "wifi_only_preference", wifiOnly); + if([self valueChangedForKey:@"wifi_only_preference"]) { + [[LinphoneManager instance] setupNetworkReachabilityCallback]; + } + NSString* sharing_server = [self stringForKey:@"sharing_server_preference"]; [[LinphoneManager instance] lpConfigSetString:sharing_server forKey:@"sharing_server_preference"]; diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h index 4e7cb15c4..5a9d5491d 100644 --- a/Classes/LinphoneManager.h +++ b/Classes/LinphoneManager.h @@ -90,7 +90,7 @@ typedef struct _LinphoneManagerSounds { BOOL stopWaitingRegisters; UIBackgroundTaskIdentifier pausedCallBgTask; UIBackgroundTaskIdentifier incallBgTask; - CTCallCenter* callCenter; + CTCallCenter* mCallCenter; @public CallContext currentCallContextBeforeGoingBackground; diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 6490e6962..a20cb47c0 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -387,70 +387,73 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char } - if (state == LinphoneCallIncomingReceived - &&[[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] - && [UIApplication sharedApplication].applicationState != UIApplicationStateActive) { + if (state == LinphoneCallIncomingReceived) { /*first step is to re-enable ctcall center*/ - [self setupGSMInteraction]; + CTCallCenter* lCTCallCenter = [[CTCallCenter alloc] init]; /*should we reject this call ?*/ - if ([callCenter currentCalls]!=nil) { + if ([lCTCallCenter currentCalls]!=nil) { [LinphoneLogger logc:LinphoneLoggerLog format:"Mobile call ongoing... rejecting call from [%s]",linphone_address_get_username(linphone_call_get_call_log(call)->from)]; linphone_core_decline_call([LinphoneManager getLc], call,LinphoneReasonBusy); + [lCTCallCenter release]; return; } + [lCTCallCenter release]; - - LinphoneCallLog* callLog=linphone_call_get_call_log(call); - NSString* callId=[NSString stringWithUTF8String:callLog->call_id]; - const LinphoneAddress *addr = linphone_call_get_remote_address(call); - NSString* address = nil; - if(addr != NULL) { - BOOL useLinphoneAddress = true; - // contact name - char* lAddress = linphone_address_as_string_uri_only(addr); - if(lAddress) { - NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]]; - ABRecordRef contact = [fastAddressBook getContact:normalizedSipAddress]; - if(contact) { - address = [FastAddressBook getContactDisplayName:contact]; - useLinphoneAddress = false; - } - ms_free(lAddress); - } - if(useLinphoneAddress) { - const char* lDisplayName = linphone_address_get_display_name(addr); - const char* lUserName = linphone_address_get_username(addr); - if (lDisplayName) - address = [NSString stringWithUTF8String:lDisplayName]; - else if(lUserName) - address = [NSString stringWithUTF8String:lUserName]; - } - } - if(address == nil) { - address = @"Unknown"; - } - - if (![[LinphoneManager instance] shouldAutoAcceptCallForCallId:callId]){ - // case where a remote notification is not already received - // Create a new local notification - data->notification = [[UILocalNotification alloc] init]; - if (data->notification) { - data->notification.repeatInterval = 0; - data->notification.alertBody =[NSString stringWithFormat:NSLocalizedString(@"IC_MSG",nil), address]; - data->notification.alertAction = NSLocalizedString(@"Answer", nil); - data->notification.soundName = @"ring.caf"; - data->notification.userInfo = [NSDictionary dictionaryWithObject:callId forKey:@"callId"]; - - [[UIApplication sharedApplication] presentLocalNotificationNow:data->notification]; - - if (!incallBgTask){ - incallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{ - [LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot ring any more, too late"]; - }]; + if( [[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] + && [UIApplication sharedApplication].applicationState != UIApplicationStateActive) { + + LinphoneCallLog* callLog=linphone_call_get_call_log(call); + NSString* callId=[NSString stringWithUTF8String:callLog->call_id]; + const LinphoneAddress *addr = linphone_call_get_remote_address(call); + NSString* address = nil; + if(addr != NULL) { + BOOL useLinphoneAddress = true; + // contact name + char* lAddress = linphone_address_as_string_uri_only(addr); + if(lAddress) { + NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]]; + ABRecordRef contact = [fastAddressBook getContact:normalizedSipAddress]; + if(contact) { + address = [FastAddressBook getContactDisplayName:contact]; + useLinphoneAddress = false; + } + ms_free(lAddress); + } + if(useLinphoneAddress) { + const char* lDisplayName = linphone_address_get_display_name(addr); + const char* lUserName = linphone_address_get_username(addr); + if (lDisplayName) + address = [NSString stringWithUTF8String:lDisplayName]; + else if(lUserName) + address = [NSString stringWithUTF8String:lUserName]; + } + } + if(address == nil) { + address = @"Unknown"; + } + + if (![[LinphoneManager instance] shouldAutoAcceptCallForCallId:callId]){ + // case where a remote notification is not already received + // Create a new local notification + data->notification = [[UILocalNotification alloc] init]; + if (data->notification) { + data->notification.repeatInterval = 0; + data->notification.alertBody =[NSString stringWithFormat:NSLocalizedString(@"IC_MSG",nil), address]; + data->notification.alertAction = NSLocalizedString(@"Answer", nil); + data->notification.soundName = @"ring.caf"; + data->notification.userInfo = [NSDictionary dictionaryWithObject:callId forKey:@"callId"]; + + [[UIApplication sharedApplication] presentLocalNotificationNow:data->notification]; + + if (!incallBgTask){ + incallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{ + [LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot ring any more, too late"]; + }]; + } + } - } } } @@ -466,8 +469,10 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char // Disable speaker when no more call if ((state == LinphoneCallEnd || state == LinphoneCallError)) { - if(linphone_core_get_calls_nb([LinphoneManager getLc]) == 0) + if(linphone_core_get_calls_nb([LinphoneManager getLc]) == 0) { [self setSpeakerEnabled:FALSE]; + [self removeCTCallCenterCb]; + } if (incallBgTask) { [[UIApplication sharedApplication] endBackgroundTask:incallBgTask]; incallBgTask=0; @@ -483,7 +488,10 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char [self setSpeakerEnabled:TRUE]; } } - + if (state == LinphoneCallConnected && !mCallCenter) { + /*only register CT call center CB for connected call*/ + [self setupGSMInteraction]; + } // Post event NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys: [NSValue valueWithPointer:call], @"call", @@ -682,7 +690,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach - (void)setupNetworkReachabilityCallback { SCNetworkReachabilityContext *ctx=NULL; - const char *nodeName="linphone.org"; + //any internet cnx + struct sockaddr_in zeroAddress; + bzero(&zeroAddress, sizeof(zeroAddress)); + zeroAddress.sin_len = sizeof(zeroAddress); + zeroAddress.sin_family = AF_INET; if (proxyReachability) { [LinphoneLogger logc:LinphoneLoggerLog format:"Cancelling old network reachability"]; @@ -691,8 +703,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach proxyReachability = nil; } - proxyReachability = SCNetworkReachabilityCreateWithName(nil, nodeName); - + proxyReachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)&zeroAddress); if (!SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack, ctx)){ [LinphoneLogger logc:LinphoneLoggerError format:"Cannot register reachability cb: %s", SCErrorString(SCError())]; @@ -702,6 +713,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach [LinphoneLogger logc:LinphoneLoggerError format:"Cannot register schedule reachability cb: %s", SCErrorString(SCError())]; return; } + // this check is to know network connectivity right now without waiting for a change. Don'nt remove it unless you have good reason. Jehan + SCNetworkReachabilityFlags flags; + if (SCNetworkReachabilityGetFlags(proxyReachability, &flags)) { + networkReachabilityCallBack(proxyReachability,flags,nil); + } } @@ -730,6 +746,10 @@ static LinphoneCoreVTable linphonec_vtable = { } - (void)startLibLinphone { + if (theLinphoneCore != nil) { + [LinphoneLogger logc:LinphoneLoggerLog format:"linphonecore is already created"]; + return; + } //get default config from bundle NSString* factoryConfig = [LinphoneManager bundleFile:[LinphoneManager runningOnIpad]?@"linphonerc-factory~ipad":@"linphonerc-factory"]; @@ -754,7 +774,6 @@ static LinphoneCoreVTable linphonec_vtable = { #if HAVE_G729 libmsbcg729_init(); // load g729 plugin #endif - [self setupGSMInteraction]; /* Initialize linphone core*/ /*to make sure we don't loose debug trace*/ @@ -762,6 +781,8 @@ static LinphoneCoreVTable linphonec_vtable = { linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler); } [LinphoneLogger logc:LinphoneLoggerLog format:"Create linphonecore"]; + linphone_core_set_user_agent([@"LinphoneIPhone" UTF8String], + [[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey] UTF8String]); theLinphoneCore = linphone_core_new (&linphonec_vtable , [confiFileName cStringUsingEncoding:[NSString defaultCStringEncoding]] , [factoryConfig cStringUsingEncoding:[NSString defaultCStringEncoding]] @@ -859,13 +880,8 @@ static LinphoneCoreVTable linphonec_vtable = { - (void)destroyLibLinphone { [mIterateTimer invalidate]; - // destroying eventHandler if app cannot go in background. - // Otherwise if a GSM call happen and Linphone is resumed, - // the handler will be called before LinphoneCore is built. - // Then handler will be restored in appDidBecomeActive cb - callCenter.callEventHandler = nil; - [callCenter release]; - callCenter = nil; + //just in case + [self removeCTCallCenterCb]; AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setDelegate:nil]; @@ -956,6 +972,13 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param) return linphone_call_get_state(call) != LinphoneCallPaused; } +- (void) startCallPausedLongRunningTask { + pausedCallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{ + [LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot be paused any more, too late"]; + }]; + [LinphoneLogger log:LinphoneLoggerLog format:@"Long running task started, remaining [%g s] because at least one call is paused" + ,[[UIApplication sharedApplication] backgroundTimeRemaining]]; +} - (BOOL)enterBackgroundMode { LinphoneProxyConfig* proxyCfg; linphone_core_get_default_proxy(theLinphoneCore, &proxyCfg); @@ -983,13 +1006,6 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param) return; } //kick up network cnx, just in case - [LinphoneManager kickOffNetworkConnection]; - - [self setupGSMInteraction]; - //to make sure presence status is correct - if ([callCenter currentCalls]==nil) - linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService); - [self refreshRegisters]; linphone_core_iterate(theLinphoneCore); } @@ -1005,13 +1021,8 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param) if (!currentCall //no active call && callList // at least one call in a non active state && ms_list_find_custom((MSList*)callList, (MSCompareFunc) comp_call_state_paused, NULL)) { - pausedCallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{ - [LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot be paused any more, too late"]; - }]; - [LinphoneLogger log:LinphoneLoggerLog format:@"Long running task started, remaining [%fs] because at least one call is paused" - ,[[UIApplication sharedApplication] backgroundTimeRemaining]]; + [self startCallPausedLongRunningTask]; } - return YES; } else { @@ -1035,14 +1046,6 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param) /*IOS specific*/ linphone_core_start_dtmf_stream(theLinphoneCore); - - //call center is unrelialable on the long run, so we change it each time the application is resumed. To avoid zombie GSM call - [self setupGSMInteraction]; - - //to make sure presence status is correct - if ([callCenter currentCalls]==nil) - linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService); - } @@ -1130,7 +1133,7 @@ static void audioRouteChangeListenerCallback ( return; } - + CTCallCenter* callCenter = [[CTCallCenter alloc] init]; if ([callCenter currentCalls]!=nil) { [LinphoneLogger logc:LinphoneLoggerError format:"GSM call in progress, cancelling outgoing SIP call request"]; UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Cannot make call",nil) @@ -1140,9 +1143,11 @@ static void audioRouteChangeListenerCallback ( otherButtonTitles:nil]; [error show]; [error release]; + [callCenter release]; return; } - + [callCenter release]; + LinphoneProxyConfig* proxyCfg; //get default proxy linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg); @@ -1338,18 +1343,24 @@ static void audioRouteChangeListenerCallback ( } #pragma GSM management +-(void) removeCTCallCenterCb { + if (mCallCenter != nil) { + [LinphoneLogger log:LinphoneLoggerLog format:@"Removing CT call center listener [%p]",mCallCenter]; + mCallCenter.callEventHandler=NULL; + [mCallCenter release]; + } + mCallCenter=nil; +} - (void)setupGSMInteraction { - if (callCenter != nil) { - callCenter.callEventHandler=NULL; - [callCenter release]; - } - callCenter = [[CTCallCenter alloc] init]; - callCenter.callEventHandler = ^(CTCall* call) { + [self removeCTCallCenterCb]; + mCallCenter = [[CTCallCenter alloc] init]; + [LinphoneLogger log:LinphoneLoggerLog format:@"Adding CT call center listener [%p]",mCallCenter]; + mCallCenter.callEventHandler = ^(CTCall* call) { // post on main thread [self performSelectorOnMainThread:@selector(handleGSMCallInteration:) - withObject:callCenter + withObject:mCallCenter waitUntilDone:YES]; }; @@ -1360,12 +1371,15 @@ static void audioRouteChangeListenerCallback ( /* pause current call, if any */ LinphoneCall* call = linphone_core_get_current_call(theLinphoneCore); if ([ct currentCalls]!=nil) { - if (call) {[LinphoneLogger logc:LinphoneLoggerLog format:"Pausing SIP call"]; + if (call) { + [LinphoneLogger log:LinphoneLoggerLog format:@"Pausing SIP call because GSM call"]; linphone_core_pause_call(theLinphoneCore, call); + [self startCallPausedLongRunningTask]; + } else if (linphone_core_is_in_conference(theLinphoneCore)) { + [LinphoneLogger log:LinphoneLoggerLog format:@"Leaving conference call because GSM call"]; + linphone_core_leave_conference(theLinphoneCore); + [self startCallPausedLongRunningTask]; } - //set current status to busy - linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusBusy); - } else - linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService); + } //else nop, keep call in paused state } @end diff --git a/Classes/LinphoneUI/UICallBar.m b/Classes/LinphoneUI/UICallBar.m index eda89bc0e..c1848ad14 100644 --- a/Classes/LinphoneUI/UICallBar.m +++ b/Classes/LinphoneUI/UICallBar.m @@ -277,6 +277,22 @@ [pauseButton setHidden:true]; [conferenceButton setHidden:false]; } + bool enabled = true; + const MSList *list = linphone_core_get_calls(lc); + while(list != NULL) { + LinphoneCall *call = (LinphoneCall*) list->data; + LinphoneCallState state = linphone_call_get_state(call); + if(state == LinphoneCallIncomingReceived || + state == LinphoneCallOutgoingInit || + state == LinphoneCallOutgoingProgress || + state == LinphoneCallOutgoingRinging || + state == LinphoneCallOutgoingEarlyMedia || + state == LinphoneCallConnected) { + enabled = false; + } + list = list->next; + } + [conferenceButton setEnabled:enabled]; } else { if([pauseButton isHidden]) { [pauseButton setHidden:false]; diff --git a/Classes/LinphoneUI/UIChatCell.xib b/Classes/LinphoneUI/UIChatCell.xib index b3d2fd18f..b6b7f94a0 100644 --- a/Classes/LinphoneUI/UIChatCell.xib +++ b/Classes/LinphoneUI/UIChatCell.xib @@ -35,7 +35,7 @@ - 256 + 274 @@ -196,7 +196,6 @@ {{276, 8}, {44, 44}} - _NS:9 NO IBCocoaTouchFramework diff --git a/Classes/LinphoneUI/UICompositeViewController.h b/Classes/LinphoneUI/UICompositeViewController.h index ec1a1cbfb..faef77352 100644 --- a/Classes/LinphoneUI/UICompositeViewController.h +++ b/Classes/LinphoneUI/UICompositeViewController.h @@ -74,8 +74,6 @@ - (UIViewController *)getCachedController:(NSString*)name; - (UIViewController *)getCurrentViewController; - (UIInterfaceOrientation)currentOrientation; -#ifdef DEBUG -- (void)clearCache; -#endif +- (void)clearCache:(NSArray*)exclude; @end diff --git a/Classes/LinphoneUI/UICompositeViewController.m b/Classes/LinphoneUI/UICompositeViewController.m index a415343f0..593f85a82 100644 --- a/Classes/LinphoneUI/UICompositeViewController.m +++ b/Classes/LinphoneUI/UICompositeViewController.m @@ -19,7 +19,7 @@ #import "UICompositeViewController.h" -#import "PhoneMainView.h" +#import "LinphoneAppDelegate.h" @implementation UICompositeViewDescription @@ -244,11 +244,6 @@ return NO; } -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - [self clearCache]; -} - #pragma mark - Event Functions @@ -257,7 +252,7 @@ // Update rotation UIInterfaceOrientation correctOrientation = [self getCorrectInterfaceOrientation:[[UIDevice currentDevice] orientation]]; if(currentOrientation != correctOrientation) { - [PhoneMainView setOrientation:correctOrientation animated:currentOrientation != UIDeviceOrientationUnknown]; + [UICompositeViewController setOrientation:correctOrientation animated:currentOrientation != UIDeviceOrientationUnknown]; } } } @@ -265,18 +260,104 @@ #pragma mark - -- (void)clearCache { +/* + Will simulate a device rotation + */ ++ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated { + UIView *firstResponder = nil; + for(UIWindow *window in [[UIApplication sharedApplication] windows]) { + if([NSStringFromClass(window.class) isEqualToString:@"UITextEffectsWindow"] || + [NSStringFromClass(window.class) isEqualToString:@"_UIAlertOverlayWindow"] ) { + continue; + } + UIView *view = window; + UIViewController *controller = nil; + CGRect frame = [view frame]; + if([window isKindOfClass:[UILinphoneWindow class]]) { + controller = window.rootViewController; + view = controller.view; + } + UIInterfaceOrientation oldOrientation = controller.interfaceOrientation; + + NSTimeInterval animationDuration = 0.0; + if(animated) { + animationDuration = 0.3f; + } + [controller willRotateToInterfaceOrientation:orientation duration:animationDuration]; + if(animated) { + [UIView beginAnimations:nil context:nil]; + [UIView setAnimationDuration:animationDuration]; + } + switch (orientation) { + case UIInterfaceOrientationPortrait: + [view setTransform: CGAffineTransformMakeRotation(0)]; + break; + case UIInterfaceOrientationPortraitUpsideDown: + [view setTransform: CGAffineTransformMakeRotation(M_PI)]; + break; + case UIInterfaceOrientationLandscapeLeft: + [view setTransform: CGAffineTransformMakeRotation(-M_PI / 2)]; + break; + case UIInterfaceOrientationLandscapeRight: + [view setTransform: CGAffineTransformMakeRotation(M_PI / 2)]; + break; + default: + break; + } + if([window isKindOfClass:[UILinphoneWindow class]]) { + [view setFrame:frame]; + } + [controller willAnimateRotationToInterfaceOrientation:orientation duration:animationDuration]; + if(animated) { + [UIView commitAnimations]; + } + [controller didRotateFromInterfaceOrientation:oldOrientation]; + if(firstResponder == nil) { + firstResponder = [UICompositeViewController findFirstResponder:view]; + } + } + [[UIApplication sharedApplication] setStatusBarOrientation:orientation animated:animated]; + if(firstResponder) { + [firstResponder resignFirstResponder]; + [firstResponder becomeFirstResponder]; + } +} + ++ (UIView*)findFirstResponder:(UIView*)view { + if (view.isFirstResponder) { + return view; + } + for (UIView *subView in view.subviews) { + UIView *ret = [UICompositeViewController findFirstResponder:subView]; + if (ret != nil) + return ret; + } + return nil; +} + +- (void)clearCache:(NSArray *)exclude { for(NSString *key in [viewControllerCache allKeys]) { - UIViewController *vc = [viewControllerCache objectForKey:key]; - if(vc != self.stateBarViewController && - vc != self.tabBarViewController && - vc != self.contentViewController) { + bool remove = true; + if(exclude != nil) { + for (UICompositeViewDescription *description in exclude) { + if([key isEqualToString:description.content] || + [key isEqualToString:description.stateBar] || + [key isEqualToString:description.tabBar] + ) { + remove = false; + break; + } + } + } + if(remove) { + [LinphoneLogger log:LinphoneLoggerDebug format:@"Free cached view: %@", key]; + UIViewController *vc = [viewControllerCache objectForKey:key]; if ([[UIDevice currentDevice].systemVersion doubleValue] >= 5.0) { [vc viewWillUnload]; } [vc viewDidUnload]; + [viewControllerCache removeObjectForKey:key]; } - [viewControllerCache removeObjectForKey:key]; } } @@ -435,7 +516,7 @@ // Update rotation UIInterfaceOrientation correctOrientation = [self getCorrectInterfaceOrientation:[[UIDevice currentDevice] orientation]]; if(currentOrientation != correctOrientation) { - [PhoneMainView setOrientation:correctOrientation animated:currentOrientation!=UIDeviceOrientationUnknown]; + [UICompositeViewController setOrientation:correctOrientation animated:currentOrientation!=UIDeviceOrientationUnknown]; } else { if(oldContentViewController != newContentViewController) { UIInterfaceOrientation oldOrientation = self.contentViewController.interfaceOrientation; @@ -521,7 +602,7 @@ tabFrame.origin.y = viewFrame.size.height; tabFrame.origin.x = viewFrame.size.width; tabFrame.size.height = self.tabBarViewController.view.frame.size.height; - tabFrame.size.width = self.tabBarViewController.view.frame.size.width; + //tabFrame.size.width = self.tabBarViewController.view.frame.size.width; tabFrame.origin.y -= tabFrame.size.height; tabFrame.origin.x -= tabFrame.size.width; contentFrame.size.height = tabFrame.origin.y - contentFrame.origin.y; diff --git a/Classes/LinphoneUI/UIDigitButton.m b/Classes/LinphoneUI/UIDigitButton.m index 3f84c0ee6..9d7f03e46 100644 --- a/Classes/LinphoneUI/UIDigitButton.m +++ b/Classes/LinphoneUI/UIDigitButton.m @@ -61,8 +61,8 @@ } - (void)dealloc { - [super dealloc]; [addressField release]; + [super dealloc]; } diff --git a/Classes/LinphoneUI/UIStateBar.m b/Classes/LinphoneUI/UIStateBar.m index 90cd30892..926d3b397 100644 --- a/Classes/LinphoneUI/UIStateBar.m +++ b/Classes/LinphoneUI/UIStateBar.m @@ -100,7 +100,7 @@ NSTimer *callSecurityTimer; [callQualityTimer invalidate]; callQualityTimer = nil; } - if(callQualityTimer != nil) { + if(callSecurityTimer != nil) { [callSecurityTimer invalidate]; callSecurityTimer = nil; } diff --git a/Classes/LinphoneUI/en.lproj/UICallBar.xib b/Classes/LinphoneUI/en.lproj/UICallBar.xib index 26e33847b..3398db0d7 100644 --- a/Classes/LinphoneUI/en.lproj/UICallBar.xib +++ b/Classes/LinphoneUI/en.lproj/UICallBar.xib @@ -2,9 +2,9 @@ 1536 - 11E53 + 11G63 2840 - 1138.47 + 1138.51 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -35,13 +35,14 @@ - 301 + 266 - -2147483356 + -2147483355 {{0, 335}, {320, 125}} + _NS:9 1 @@ -56,13 +57,14 @@ - 288 + 293 274 {281, 260} + _NS:9 2 @@ -78,6 +80,7 @@ 292 {{-20, 10}, {107, 54}} + 1 @@ -121,6 +124,7 @@ 292 {{87, 10}, {106, 54}} + NO NO @@ -148,6 +152,7 @@ 292 {{193, 10}, {107, 54}} + NO NO @@ -175,6 +180,7 @@ 292 {{-20, 72}, {107, 54}} + NO NO @@ -202,6 +208,7 @@ 292 {{87, 72}, {106, 54}} + NO NO @@ -229,6 +236,7 @@ 292 {{193, 72}, {107, 54}} + NO NO @@ -256,6 +264,7 @@ 292 {{-20, 134}, {107, 54}} + NO NO @@ -283,6 +292,7 @@ 292 {{87, 134}, {106, 54}} + NO NO @@ -310,6 +320,7 @@ 292 {{193, 134}, {107, 54}} + NO NO @@ -337,6 +348,7 @@ 292 {{-20, 196}, {107, 54}} + NO NO @@ -364,6 +376,7 @@ 292 {{87, 196}, {106, 54}} + NO NO @@ -391,6 +404,7 @@ 292 {{193, 196}, {107, 54}} + NO NO @@ -416,6 +430,7 @@ {{20, 57}, {281, 260}} + _NS:9 @@ -427,13 +442,14 @@ - 292 + 293 292 {{3, 0}, {77, 68}} + _NS:9 NO @@ -491,6 +507,7 @@ 292 {{3, 58}, {77, 68}} + _NS:9 NO @@ -530,6 +547,7 @@ {{240, 208}, {80, 126}} + _NS:9 @@ -538,13 +556,46 @@ - 292 + 293 + + + 292 + {{-44, -8}, {44, 90}} + + + + _NS:9 + 100 + NO + IBCocoaTouchFramework + + NSImage + callbar_left_padding.png + + + + + 292 + {{320, -8}, {44, 90}} + + + + _NS:9 + 101 + NO + IBCocoaTouchFramework + + NSImage + callbar_right_padding.png + + 290 {{0, 135}, {320, 2000}} + _NS:9 @@ -559,6 +610,7 @@ 292 {80, 67} + _NS:9 NO @@ -605,6 +657,7 @@ -2147483356 {{20, 20}, {37, 37}} + _NS:9 NO @@ -617,6 +670,7 @@ 292 {{80, 0}, {80, 67}} + _NS:9 NO @@ -663,6 +717,7 @@ 292 {{160, 0}, {80, 67}} + _NS:9 NO @@ -709,6 +764,7 @@ 292 {{240, 0}, {80, 67}} + _NS:9 NO @@ -755,6 +811,7 @@ 264 {{0, 67}, {105, 68}} + _NS:9 NO @@ -791,6 +848,7 @@ -2147483384 {{0, 67}, {105, 68}} + _NS:9 NO @@ -820,6 +878,7 @@ 264 {{105, 67}, {111, 68}} + _NS:9 NO @@ -849,7 +908,8 @@ 264 {{215, 67}, {105, 68}} - + + _NS:9 NO 27 @@ -884,7 +944,8 @@ {{0, 325}, {320, 135}} - + + _NS:9 18 @@ -893,21 +954,22 @@ {320, 460} + _NS:9 - NO IBCocoaTouchFramework - 301 + 266 - -2147483356 + -2147483355 {{0, 248}, {480, 72}} + _NS:9 @@ -923,13 +985,14 @@ - 288 + 293 274 {281, 260} + _NS:9 2 @@ -942,6 +1005,7 @@ 292 {{-20, 10}, {107, 54}} + 1 @@ -964,6 +1028,7 @@ 292 {{87, 10}, {106, 54}} + NO NO @@ -982,6 +1047,7 @@ 292 {{193, 10}, {107, 54}} + NO NO @@ -1000,6 +1066,7 @@ 292 {{-20, 72}, {107, 54}} + NO NO @@ -1018,6 +1085,7 @@ 292 {{87, 72}, {106, 54}} + NO NO @@ -1036,6 +1104,7 @@ 292 {{193, 72}, {107, 54}} + NO NO @@ -1054,6 +1123,7 @@ 292 {{-20, 134}, {107, 54}} + NO NO @@ -1072,6 +1142,7 @@ 292 {{87, 134}, {106, 54}} + NO NO @@ -1090,6 +1161,7 @@ 292 {{193, 134}, {107, 54}} + NO NO @@ -1108,6 +1180,7 @@ 292 {{-20, 196}, {107, 54}} + NO NO @@ -1126,6 +1199,7 @@ 292 {{87, 196}, {106, 54}} + NO NO @@ -1144,6 +1218,7 @@ 292 {{193, 196}, {107, 54}} + NO NO 14 @@ -1159,6 +1234,7 @@ {{91, 0}, {281, 260}} + _NS:9 @@ -1167,13 +1243,14 @@ - 292 + 293 292 {65, 55} + _NS:9 NO @@ -1215,6 +1292,7 @@ 292 {{0, 51}, {65, 55}} + _NS:9 NO @@ -1254,6 +1332,7 @@ {{415, 140}, {65, 105}} + _NS:9 @@ -1262,13 +1341,40 @@ - 292 + 293 + + + 292 + {{-44, -8}, {44, 90}} + + + + _NS:9 + 100 + NO + IBCocoaTouchFramework + + + + + 292 + {{480, -8}, {44, 90}} + + + + _NS:9 + 101 + NO + IBCocoaTouchFramework + + 290 {{0, 82}, {480, 2000}} + _NS:9 @@ -1283,6 +1389,7 @@ 292 {{65, 0}, {65, 82}} + _NS:9 NO @@ -1329,6 +1436,7 @@ -2147483356 {{79, 20}, {37, 37}} + _NS:9 NO @@ -1341,6 +1449,7 @@ 292 {{130, 0}, {65, 82}} + _NS:9 NO @@ -1387,6 +1496,7 @@ 292 {{285, 0}, {65, 82}} + _NS:9 NO @@ -1433,6 +1543,7 @@ 292 {{350, 0}, {65, 82}} + _NS:9 NO @@ -1479,6 +1590,7 @@ 264 {65, 82} + _NS:9 NO @@ -1512,6 +1624,7 @@ -2147483384 {65, 82} + _NS:9 NO @@ -1541,6 +1654,7 @@ 264 {{195, 0}, {90, 82}} + _NS:9 NO @@ -1570,7 +1684,8 @@ 264 {{415, 0}, {65, 82}} - + + _NS:9 NO 27 @@ -1602,7 +1717,8 @@ {{0, 238}, {480, 82}} - + + _NS:9 18 @@ -1611,10 +1727,10 @@ {480, 320} + _NS:9 - NO 3 3 @@ -2035,6 +2151,8 @@ + + buttons @@ -2361,6 +2479,8 @@ + + buttons @@ -2437,6 +2557,30 @@ background + + 143 + + + leftPadding + + + 144 + + + rightPadding + + + 145 + + + rightPadding + + + 146 + + + leftPadding + @@ -2535,6 +2679,10 @@ 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 @@ -2605,14 +2753,296 @@ - 142 + 163 + + + + + TPMultiLayoutViewController + UIViewController + + UIView + UIView + + + + landscapeView + UIView + + + portraitView + UIView + + + + IBProjectSource + ./Classes/TPMultiLayoutViewController.h + + + + UICallBar + TPMultiLayoutViewController + + id + id + id + id + id + + + + onConferenceClick: + id + + + onOptionsAddClick: + id + + + onOptionsClick: + id + + + onOptionsTransferClick: + id + + + onPadClick: + id + + + + UIButton + UIToggleButton + UIDigitButton + UIDigitButton + UIDigitButton + UIHangUpButton + UIMicroButton + UIDigitButton + UIDigitButton + UIButton + UIToggleButton + UIButton + UIView + UIView + UIPauseButton + UIDigitButton + UIDigitButton + UIDigitButton + UISpeakerButton + UIDigitButton + UIDigitButton + UIDigitButton + UIVideoButton + UIDigitButton + + + + conferenceButton + UIButton + + + dialerButton + UIToggleButton + + + eightButton + UIDigitButton + + + fiveButton + UIDigitButton + + + fourButton + UIDigitButton + + + hangupButton + UIHangUpButton + + + microButton + UIMicroButton + + + nineButton + UIDigitButton + + + oneButton + UIDigitButton + + + optionsAddButton + UIButton + + + optionsButton + UIToggleButton + + + optionsTransferButton + UIButton + + + optionsView + UIView + + + padView + UIView + + + pauseButton + UIPauseButton + + + sevenButton + UIDigitButton + + + sharpButton + UIDigitButton + + + sixButton + UIDigitButton + + + speakerButton + UISpeakerButton + + + starButton + UIDigitButton + + + threeButton + UIDigitButton + + + twoButton + UIDigitButton + + + videoButton + UIVideoButton + + + zeroButton + UIDigitButton + + + + IBProjectSource + ./Classes/UICallBar.h + + + + UIDigitButton + UILongTouchButton + + addressField + UITextField + + + addressField + + addressField + UITextField + + + + IBProjectSource + ./Classes/UIDigitButton.h + + + + UIHangUpButton + UIButton + + IBProjectSource + ./Classes/UIHangUpButton.h + + + + UILongTouchButton + UIButton + + IBProjectSource + ./Classes/UILongTouchButton.h + + + + UIMicroButton + UIToggleButton + + IBProjectSource + ./Classes/UIMicroButton.h + + + + UIPauseButton + UIToggleButton + + IBProjectSource + ./Classes/UIPauseButton.h + + + + UISpeakerButton + UIToggleButton + + IBProjectSource + ./Classes/UISpeakerButton.h + + + + UIToggleButton + UIButton + + IBProjectSource + ./Classes/UIToggleButton.h + + + + UITransparentView + UIView + + IBProjectSource + ./Classes/UITransparentView.h + + + + UIVideoButton + UIToggleButton + + waitView + UIActivityIndicatorView + + + waitView + + waitView + UIActivityIndicatorView + + + + IBProjectSource + ./Classes/UIVideoButton.h + + + - 0 IBCocoaTouchFramework YES 3 + {88, 180} + {88, 180} {209, 136} {130, 163} {209, 136} diff --git a/Classes/LinphoneUI/fr.lproj/UICallBar.xib b/Classes/LinphoneUI/fr.lproj/UICallBar.xib index 6fa108778..166865260 100644 --- a/Classes/LinphoneUI/fr.lproj/UICallBar.xib +++ b/Classes/LinphoneUI/fr.lproj/UICallBar.xib @@ -1,21 +1,21 @@ - 1280 - 11E53 - 1938 - 1138.47 + 1536 + 11G63 + 2840 + 1138.51 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 933 + 1926 - IBUIButton - IBUIActivityIndicatorView - IBUIView - IBUIImageView IBProxyObject + IBUIActivityIndicatorView + IBUIButton + IBUIImageView + IBUIView com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -35,11 +35,11 @@ - 301 + 266 - -2147483356 + -2147483355 {{0, 335}, {320, 125}} _NS:9 @@ -56,7 +56,7 @@ - 288 + 293 @@ -427,7 +427,7 @@ - 292 + 293 @@ -538,8 +538,38 @@ - 292 + 293 + + + 292 + {{-44, -8}, {44, 90}} + + + _NS:9 + 100 + NO + IBCocoaTouchFramework + + NSImage + callbar_left_padding.png + + + + + 292 + {{320, -8}, {44, 90}} + + + _NS:9 + 101 + NO + IBCocoaTouchFramework + + NSImage + callbar_right_padding.png + + 290 @@ -849,7 +879,7 @@ 264 {{215, 67}, {105, 68}} - + _NS:9 NO 27 @@ -884,7 +914,7 @@ {{0, 325}, {320, 135}} - + _NS:9 18 @@ -895,16 +925,15 @@ _NS:9 - NO IBCocoaTouchFramework - 301 + 266 - -2147483356 + -2147483355 {{0, 248}, {480, 72}} @@ -922,7 +951,7 @@ - 288 + 293 @@ -1166,7 +1195,7 @@ - 292 + 293 @@ -1261,8 +1290,32 @@ - 292 + 293 + + + 292 + {{-44, -8}, {44, 90}} + + + _NS:9 + 100 + NO + IBCocoaTouchFramework + + + + + 292 + {{480, -8}, {44, 90}} + + + _NS:9 + 101 + NO + IBCocoaTouchFramework + + 290 @@ -1569,7 +1622,7 @@ 264 {{415, 0}, {65, 82}} - + _NS:9 NO 27 @@ -1601,7 +1654,7 @@ {{0, 238}, {480, 82}} - + _NS:9 18 @@ -1612,7 +1665,6 @@ _NS:9 - NO 3 3 @@ -2033,6 +2085,8 @@ + + buttons @@ -2359,6 +2413,8 @@ + + buttons @@ -2435,6 +2491,30 @@ background + + 143 + + + leftPadding + + + 144 + + + rightPadding + + + 145 + + + rightPadding + + + 146 + + + leftPadding + @@ -2533,6 +2613,10 @@ 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 @@ -2603,14 +2687,296 @@ - 142 + 163 + + + + + TPMultiLayoutViewController + UIViewController + + UIView + UIView + + + + landscapeView + UIView + + + portraitView + UIView + + + + IBProjectSource + ./Classes/TPMultiLayoutViewController.h + + + + UICallBar + TPMultiLayoutViewController + + id + id + id + id + id + + + + onConferenceClick: + id + + + onOptionsAddClick: + id + + + onOptionsClick: + id + + + onOptionsTransferClick: + id + + + onPadClick: + id + + + + UIButton + UIToggleButton + UIDigitButton + UIDigitButton + UIDigitButton + UIHangUpButton + UIMicroButton + UIDigitButton + UIDigitButton + UIButton + UIToggleButton + UIButton + UIView + UIView + UIPauseButton + UIDigitButton + UIDigitButton + UIDigitButton + UISpeakerButton + UIDigitButton + UIDigitButton + UIDigitButton + UIVideoButton + UIDigitButton + + + + conferenceButton + UIButton + + + dialerButton + UIToggleButton + + + eightButton + UIDigitButton + + + fiveButton + UIDigitButton + + + fourButton + UIDigitButton + + + hangupButton + UIHangUpButton + + + microButton + UIMicroButton + + + nineButton + UIDigitButton + + + oneButton + UIDigitButton + + + optionsAddButton + UIButton + + + optionsButton + UIToggleButton + + + optionsTransferButton + UIButton + + + optionsView + UIView + + + padView + UIView + + + pauseButton + UIPauseButton + + + sevenButton + UIDigitButton + + + sharpButton + UIDigitButton + + + sixButton + UIDigitButton + + + speakerButton + UISpeakerButton + + + starButton + UIDigitButton + + + threeButton + UIDigitButton + + + twoButton + UIDigitButton + + + videoButton + UIVideoButton + + + zeroButton + UIDigitButton + + + + IBProjectSource + ./Classes/UICallBar.h + + + + UIDigitButton + UILongTouchButton + + addressField + UITextField + + + addressField + + addressField + UITextField + + + + IBProjectSource + ./Classes/UIDigitButton.h + + + + UIHangUpButton + UIButton + + IBProjectSource + ./Classes/UIHangUpButton.h + + + + UILongTouchButton + UIButton + + IBProjectSource + ./Classes/UILongTouchButton.h + + + + UIMicroButton + UIToggleButton + + IBProjectSource + ./Classes/UIMicroButton.h + + + + UIPauseButton + UIToggleButton + + IBProjectSource + ./Classes/UIPauseButton.h + + + + UISpeakerButton + UIToggleButton + + IBProjectSource + ./Classes/UISpeakerButton.h + + + + UIToggleButton + UIButton + + IBProjectSource + ./Classes/UIToggleButton.h + + + + UITransparentView + UIView + + IBProjectSource + ./Classes/UITransparentView.h + + + + UIVideoButton + UIToggleButton + + waitView + UIActivityIndicatorView + + + waitView + + waitView + UIActivityIndicatorView + + + + IBProjectSource + ./Classes/UIVideoButton.h + + + - 0 IBCocoaTouchFramework YES 3 + {88, 180} + {88, 180} {209, 136} {130, 163} {209, 136} @@ -2702,6 +3068,6 @@ {160, 134} {130, 163} - 933 + 1926 diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h index ad679eaea..bd8aaeec7 100644 --- a/Classes/PhoneMainView.h +++ b/Classes/PhoneMainView.h @@ -61,8 +61,6 @@ - (void)fullScreen:(BOOL)enabled; - (void)startUp; -+ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated; - - (void)addInhibitedEvent:(id)event; - (BOOL)removeInhibitedEvent:(id)event; diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index ed00dd10f..941a752f2 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -172,81 +172,6 @@ static PhoneMainView* phoneMainViewInstance=nil; return 0; } -+ (UIView*)findFirstResponder:(UIView*)view { - if (view.isFirstResponder) { - return view; - } - for (UIView *subView in view.subviews) { - UIView *ret = [PhoneMainView findFirstResponder:subView]; - if (ret != nil) - return ret; - } - return nil; -} - -/* - Will simulate a device rotation - */ -+ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated { - UIView *firstResponder = nil; - for(UIWindow *window in [[UIApplication sharedApplication] windows]) { - if([NSStringFromClass(window.class) isEqualToString:@"UITextEffectsWindow"] || - [NSStringFromClass(window.class) isEqualToString:@"_UIAlertOverlayWindow"] ) { - continue; - } - UIView *view = window; - UIViewController *controller = nil; - CGRect frame = [view frame]; - if([window isKindOfClass:[UILinphoneWindow class]]) { - controller = window.rootViewController; - view = controller.view; - } - UIInterfaceOrientation oldOrientation = controller.interfaceOrientation; - - NSTimeInterval animationDuration = 0.0; - if(animated) { - animationDuration = 0.3f; - } - [controller willRotateToInterfaceOrientation:orientation duration:animationDuration]; - if(animated) { - [UIView beginAnimations:nil context:nil]; - [UIView setAnimationDuration:animationDuration]; - } - switch (orientation) { - case UIInterfaceOrientationPortrait: - [view setTransform: CGAffineTransformMakeRotation(0)]; - break; - case UIInterfaceOrientationPortraitUpsideDown: - [view setTransform: CGAffineTransformMakeRotation(M_PI)]; - break; - case UIInterfaceOrientationLandscapeLeft: - [view setTransform: CGAffineTransformMakeRotation(-M_PI / 2)]; - break; - case UIInterfaceOrientationLandscapeRight: - [view setTransform: CGAffineTransformMakeRotation(M_PI / 2)]; - break; - default: - break; - } - if([window isKindOfClass:[UILinphoneWindow class]]) { - [view setFrame:frame]; - } - [controller willAnimateRotationToInterfaceOrientation:orientation duration:animationDuration]; - if(animated) { - [UIView commitAnimations]; - } - [controller didRotateFromInterfaceOrientation:oldOrientation]; - if(firstResponder == nil) { - firstResponder = [PhoneMainView findFirstResponder:view]; - } - } - [[UIApplication sharedApplication] setStatusBarOrientation:orientation animated:animated]; - if(firstResponder) { - [firstResponder resignFirstResponder]; - [firstResponder becomeFirstResponder]; - } -} - - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; [mainViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; @@ -267,6 +192,10 @@ static PhoneMainView* phoneMainViewInstance=nil; return [mainViewController currentOrientation]; } +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + [mainViewController clearCache:viewStack]; +} #pragma mark - Event Functions diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m index 035c11cd3..f84648481 100644 --- a/Classes/SettingsViewController.m +++ b/Classes/SettingsViewController.m @@ -574,6 +574,19 @@ static UICompositeViewDescription *compositeDescription = nil; [hiddenKeys addObject:@"battery_alert_button"]; #endif + [hiddenKeys addObject:@"audio_advanced_group"]; + [hiddenKeys addObject:@"playback_gain_preference"]; + [hiddenKeys addObject:@"microphone_gain_preference"]; + + [hiddenKeys addObject:@"network_limit_group"]; + [hiddenKeys addObject:@"upload_bandwidth_preference"]; + [hiddenKeys addObject:@"download_bandwidth_preference"]; + + [hiddenKeys addObject:@"incoming_call_timeout_preference"]; + [hiddenKeys addObject:@"in_call_timeout_preference"]; + + [hiddenKeys addObject:@"wifi_only_preference"]; + [hiddenKeys addObject:@"quit_button"]; // Hide for the moment [hiddenKeys addObject:@"about_button"]; // Hide for the moment @@ -639,7 +652,7 @@ static UICompositeViewDescription *compositeDescription = nil; [[LinphoneManager instance] destroyLibLinphone]; [LinphoneManager instanceRelease]; } else if([key isEqual:@"clear_cache_button"]) { - [[PhoneMainView instance].mainViewController clearCache]; + [[PhoneMainView instance].mainViewController clearCache:[NSArray arrayWithObject:[[PhoneMainView instance] currentView]]]; } else if([key isEqual:@"battery_alert_button"]) { [[UIDevice currentDevice] _setBatteryState:UIDeviceBatteryStateUnplugged]; [[UIDevice currentDevice] _setBatteryLevel:0.09f]; @@ -653,6 +666,8 @@ static UICompositeViewDescription *compositeDescription = nil; if(controller != nil) { [controller reset]; } + } else if([key isEqual:@"about_button"]) { + [[PhoneMainView instance] changeCurrentView:[AboutViewController compositeViewDescription] push:TRUE]; } } diff --git a/Classes/en.lproj/ChatViewController.xib b/Classes/en.lproj/ChatViewController.xib index d524c9766..5e67b7643 100644 --- a/Classes/en.lproj/ChatViewController.xib +++ b/Classes/en.lproj/ChatViewController.xib @@ -2,7 +2,7 @@ 1536 - 11G56 + 11G63 2840 1138.51 569.00 @@ -174,7 +174,6 @@ {{0, 79}, {320, 381}} - _NS:9 3 @@ -231,6 +230,8 @@ YES 17 + 1 + 3 IBCocoaTouchFramework diff --git a/Classes/fr.lproj/ChatViewController.xib b/Classes/fr.lproj/ChatViewController.xib index 5fd2b5997..f0148c657 100644 --- a/Classes/fr.lproj/ChatViewController.xib +++ b/Classes/fr.lproj/ChatViewController.xib @@ -2,7 +2,7 @@ 1536 - 11G56 + 11G63 2840 1138.51 569.00 @@ -224,6 +224,8 @@ YES 17 + 1 + 3 IBCocoaTouchFramework diff --git a/Resources/callbar_left_padding.png b/Resources/callbar_left_padding.png new file mode 100644 index 000000000..c54a13b3c Binary files /dev/null and b/Resources/callbar_left_padding.png differ diff --git a/Resources/callbar_right_padding.png b/Resources/callbar_right_padding.png new file mode 100644 index 000000000..fc859f667 Binary files /dev/null and b/Resources/callbar_right_padding.png differ diff --git a/Resources/linphonerc b/Resources/linphonerc index b119f76f0..0b454af82 100644 --- a/Resources/linphonerc +++ b/Resources/linphonerc @@ -1,7 +1,5 @@ [sip] sip_random_port=1 -sip_tcp_random_port=1 -sip_tls_random_port=1 contact="Linphone iPhone" keepalive_period=30000 default_proxy=0 diff --git a/Resources/linphonerc~ipad b/Resources/linphonerc~ipad index f31880409..adc25c51c 100644 --- a/Resources/linphonerc~ipad +++ b/Resources/linphonerc~ipad @@ -1,7 +1,5 @@ [sip] sip_random_port=1 -sip_tcp_random_port=1 -sip_tls_random_port=1 contact="Linphone iPhone" keepalive_period=30000 default_proxy=0 diff --git a/Settings/InAppSettings.bundle/Advanced.plist b/Settings/InAppSettings.bundle/Advanced.plist index 1a87b88a5..969901689 100644 --- a/Settings/InAppSettings.bundle/Advanced.plist +++ b/Settings/InAppSettings.bundle/Advanced.plist @@ -169,6 +169,12 @@ + AutocapitalizationType + None + AutocorrectionType + No + KeyboardType + URL Type PSTextFieldSpecifier Title diff --git a/Settings/InAppSettings.bundle/Audio.plist b/Settings/InAppSettings.bundle/Audio.plist index 46b19291c..422f9fc29 100644 --- a/Settings/InAppSettings.bundle/Audio.plist +++ b/Settings/InAppSettings.bundle/Audio.plist @@ -120,6 +120,42 @@ Type PSToggleSwitchSpecifier + + Key + audio_advanced_group + Title + Advanced + Type + PSGroupSpecifier + + + Key + playback_gain_preference + Title + Playback gain + Type + PSTextFieldSpecifier + KeyboardType + NumbersAndPunctuation + DefaultValue + 0 + IASKTextAlignment + IASKUITextAlignmentRight + + + Key + microphone_gain_preference + Title + Microphone gain + Type + PSTextFieldSpecifier + KeyboardType + NumbersAndPunctuation + DefaultValue + 0 + IASKTextAlignment + IASKUITextAlignmentRight + diff --git a/Settings/InAppSettings.bundle/Call.plist b/Settings/InAppSettings.bundle/Call.plist index 6996221ff..545bb198d 100644 --- a/Settings/InAppSettings.bundle/Call.plist +++ b/Settings/InAppSettings.bundle/Call.plist @@ -52,6 +52,42 @@ DefaultValue + + Key + incoming_call_timeout_preference + Title + Incoming call timeout + Type + PSTextFieldSpecifier + AutocapitalizationType + None + AutocorrectionType + No + KeyboardType + NumberPad + DefaultValue + 30 + IASKTextAlignment + IASKUITextAlignmentRight + + + Key + in_call_timeout_preference + Title + In call timeout + Type + PSTextFieldSpecifier + AutocapitalizationType + None + AutocorrectionType + No + KeyboardType + NumberPad + DefaultValue + 0 + IASKTextAlignment + IASKUITextAlignmentRight + diff --git a/Settings/InAppSettings.bundle/Network.plist b/Settings/InAppSettings.bundle/Network.plist index 1bc2d7cf5..864b5acc3 100644 --- a/Settings/InAppSettings.bundle/Network.plist +++ b/Settings/InAppSettings.bundle/Network.plist @@ -57,10 +57,6 @@ Port Type PSTextFieldSpecifier - AutocapitalizationType - None - AutocorrectionType - No KeyboardType NumberPad DefaultValue @@ -72,15 +68,11 @@ Key audio_port_preference Title - Audio Port + Audio Port(s) Type PSTextFieldSpecifier - AutocapitalizationType - None - AutocorrectionType - No KeyboardType - NumberPad + NumbersAndPunctuation DefaultValue 7076 IASKTextAlignment @@ -90,15 +82,11 @@ Key video_port_preference Title - Video Port + Video Port(s) Type PSTextFieldSpecifier - AutocapitalizationType - None - AutocorrectionType - No KeyboardType - NumberPad + NumbersAndPunctuation DefaultValue 9078 IASKTextAlignment @@ -158,6 +146,42 @@ DefaultValue + + Key + network_limit_group + Title + Limits + Type + PSGroupSpecifier + + + Key + upload_bandwidth_preference + Title + Upload bandwidth + Type + PSTextFieldSpecifier + KeyboardType + NumberPad + DefaultValue + 0 + IASKTextAlignment + IASKUITextAlignmentRight + + + Key + download_bandwidth_preference + Title + Download bandwidth + Type + PSTextFieldSpecifier + KeyboardType + NumberPad + DefaultValue + 0 + IASKTextAlignment + IASKUITextAlignmentRight + diff --git a/Settings/InAppSettings.bundle/en.lproj/Audio.strings b/Settings/InAppSettings.bundle/en.lproj/Audio.strings index c73fc3480..cf7f76b96 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Audio.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Audio.strings @@ -34,3 +34,11 @@ /* PCMA */ "PCMA" = "PCMA"; +/* Advanced */ +"Advanced" = "Advanced"; + +/* Playback gain */ +"Playback gain" = "Playback gain"; + +/* Microphone gain */ +"Microphone gain" = "Microphone gain"; \ No newline at end of file diff --git a/Settings/InAppSettings.bundle/en.lproj/Call.strings b/Settings/InAppSettings.bundle/en.lproj/Call.strings index 68876b8cc..58a723b05 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Call.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Call.strings @@ -10,3 +10,8 @@ /* Send SIP INFO DTMFs */ "Send SIP INFO DTMFs" = "Send SIP INFO DTMFs"; +/* Incoming call timeout */ +"Incoming call timeout" = "Incoming call timeout"; + +/* In call timeout */ +"In call timeout" = "In call timeout"; \ No newline at end of file diff --git a/Settings/InAppSettings.bundle/en.lproj/Network.strings b/Settings/InAppSettings.bundle/en.lproj/Network.strings index 299b28fbd..a2aa822d3 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Network.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Network.strings @@ -13,11 +13,11 @@ /* Port */ "Port" = "Port"; -/* Audio Port */ -"Audio Port" = "Audio Port"; +/* Audio Port(s) */ +"Audio Port(s)" = "Audio Port(s)"; -/* Video Port */ -"Video Port" = "Video Port"; +/* Video Port(s) */ +"Video Port(s)" = "Video Port(s)"; /* Transport */ "Transport" = "Transport"; @@ -49,3 +49,11 @@ /* ZRTP */ "ZRTP" = "ZRTP"; +/* Limits */ +"Limits" = "Limits"; + +/* Upload bandwidth */ +"Upload bandwidth" = "Upload bandwidth"; + +/* Download bandwidth */ +"Download bandwidth" = "Download bandwidth"; diff --git a/Settings/InAppSettings.bundle/fr.lproj/Audio.strings b/Settings/InAppSettings.bundle/fr.lproj/Audio.strings index c73fc3480..a86837e4a 100644 --- a/Settings/InAppSettings.bundle/fr.lproj/Audio.strings +++ b/Settings/InAppSettings.bundle/fr.lproj/Audio.strings @@ -34,3 +34,11 @@ /* PCMA */ "PCMA" = "PCMA"; +/* Advanced */ +"Advanced" = "Avancés"; + +/* Playback gain */ +"Playback gain" = "Gain sortie"; + +/* Microphone gain */ +"Microphone gain" = "Gain microphone"; \ No newline at end of file diff --git a/Settings/InAppSettings.bundle/fr.lproj/Call.strings b/Settings/InAppSettings.bundle/fr.lproj/Call.strings index 3ad20d6d2..7fec4c333 100644 Binary files a/Settings/InAppSettings.bundle/fr.lproj/Call.strings and b/Settings/InAppSettings.bundle/fr.lproj/Call.strings differ diff --git a/Settings/InAppSettings.bundle/fr.lproj/Network.strings b/Settings/InAppSettings.bundle/fr.lproj/Network.strings index 8382a9033..105b01f75 100644 --- a/Settings/InAppSettings.bundle/fr.lproj/Network.strings +++ b/Settings/InAppSettings.bundle/fr.lproj/Network.strings @@ -13,17 +13,17 @@ /* Port */ "Port" = "Port"; -/* Audio Port */ -"Audio Port" = "Port Audio"; +/* Audio Port(s) */ +"Audio Port(s)" = "Port(s) Audio"; -/* Video Port */ -"Video Port" = "Port Vidéo"; +/* Video Port(s) */ +"Video Port(s)" = "Port(s) Vidéo"; /* Transport */ "Transport" = "Transport"; /* Media Encryption */ -"Media Encryption" = "Encryption media"; +"Media Encryption" = "Chiffrement"; /* Push Notifications */ "Push Notification" = "Push Notification"; @@ -49,3 +49,11 @@ /* ZRTP */ "ZRTP" = "ZRTP"; +/* Limits */ +"Limits" = "Limites"; + +/* Upload bandwidth */ +"Upload bandwidth" = "Débit montant"; + +/* Download bandwidth */ +"Download bandwidth" = "Débit descendant"; diff --git a/Settings/InAppSettings.bundle/fr.lproj/Root.strings b/Settings/InAppSettings.bundle/fr.lproj/Root.strings index 61d47db49..e075895e0 100644 --- a/Settings/InAppSettings.bundle/fr.lproj/Root.strings +++ b/Settings/InAppSettings.bundle/fr.lproj/Root.strings @@ -2,7 +2,7 @@ "SIP account" = "Compte SIP"; /* Wizard */ -"Wizard" = "Lancer l'assistant"; +"Wizard" = "Assistant"; /* User name */ "User name" = "Nom d'utilisateur"; @@ -23,7 +23,7 @@ "Settings" = "Options"; /* Enable video */ -"Enable video" = "Activer la vidéo"; +"Enable video" = "Activer vidéo"; /* Audio */ "Audio" = "Audio"; diff --git a/linphone.ldb/Contents.plist b/linphone.ldb/Contents.plist index 5c3c4c0a9..eb0b3d625 100644 --- a/linphone.ldb/Contents.plist +++ b/linphone.ldb/Contents.plist @@ -803,17 +803,17 @@ backup - 17 + 19 class BLWrapperHandle name - Classes/ChatViewController/17/ChatViewController.xib + Classes/ChatViewController/19/ChatViewController.xib change date - 2012-10-16T14:43:40Z + 2012-11-19T11:40:43Z changed values class @@ -823,7 +823,7 @@ flags 0 hash - 7e5a8ab77b42e6a8f401a59751110598 + 467bb3255f207bc3c8d25dcdfca871ee name ChatViewController.xib @@ -1038,9 +1038,9 @@ versions en - 17 + 19 fr - 17 + 19 @@ -7504,17 +7504,17 @@ backup - 10 + 12 class BLWrapperHandle name - LinphoneUI/UICallBar/10/UICallBar.xib + LinphoneUI/UICallBar/12/UICallBar.xib change date - 2012-09-27T09:31:07Z + 2012-11-13T08:39:33Z changed values class @@ -7524,7 +7524,7 @@ flags 0 hash - c5958759098558a4f8f5d1c18abc0e21 + 6ce20b228103dd1de3d5c07ecc8cc68a name UICallBar.xib @@ -8626,9 +8626,9 @@ versions en - 10 + 12 fr - 10 + 12 @@ -15470,7 +15470,7 @@ Raison: %2$s change date - 2012-09-18T09:26:35Z + 2012-10-22T08:50:22Z changed values class @@ -15480,7 +15480,7 @@ Raison: %2$s flags 0 hash - dc9f190a8a2dcdf8026518ff11e1d480 + 1637ea0ccdf086dbddb51c854d6310db name Root.strings @@ -15523,13 +15523,13 @@ Raison: %2$s errors flags - 0 + 1 key Wizard localizations en - Wizard + Run assistant fr Assistant @@ -16518,7 +16518,7 @@ Raison: %2$s change date - 2012-10-01T10:31:40Z + 2012-11-06T09:45:46Z changed values class @@ -16528,7 +16528,7 @@ Raison: %2$s flags 0 hash - d07bfbef0b1c424572d4ab830553e0d6 + d8b4f45bf8fca397a7f791bd55a61e1c name Audio.strings @@ -16812,6 +16812,81 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Advanced + errors + + flags + 0 + key + Advanced + localizations + + en + Advanced + fr + Avancés + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Playback gain + errors + + flags + 0 + key + Playback gain + localizations + + en + Playback gain + fr + Gain sortie + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Microphone gain + errors + + flags + 0 + key + Microphone gain + localizations + + en + Microphone gain + fr + Gain microphone + + snapshots + + old objects @@ -16840,7 +16915,7 @@ Raison: %2$s change date - 2012-09-11T10:05:39Z + 2012-10-29T15:42:49Z changed values class @@ -16848,9 +16923,9 @@ Raison: %2$s errors flags - 1 + 0 hash - 3cc5ec7e298d1a3aa4449641876f5960 + 6ae28fd473b2900cce974380a72d5447 name Call.strings @@ -16956,9 +17031,107 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Incoming call timeout + errors + + flags + 0 + key + Incoming call timeout + localizations + + en + Incoming call timeout + fr + Durée max. sonnerie + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + In call timeout + errors + + flags + 0 + key + In call timeout + localizations + + en + In call timeout + fr + Durée max. appel + + snapshots + + old objects - + + + change date + 2001-01-01T00:00:00Z + changed values + + <reference> + + class + BLStringKeyObject + comment + Incoming call timeout + errors + + flags + 0 + key + In + localizations + + en + call + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + <reference> + + class + BLStringKeyObject + comment + Incoming call timeout + errors + + flags + 3 + key + timeout + localizations + + snapshots + + + plist file snapshots @@ -17279,7 +17452,7 @@ Raison: %2$s change date - 2012-09-18T15:13:17Z + 2012-11-13T09:28:24Z changed values class @@ -17289,7 +17462,7 @@ Raison: %2$s flags 0 hash - f5919fdebddf11e613578ee7ff05f05e + 7220a3af4b5567ce1842c8a01759b1c9 name Network.strings @@ -17428,19 +17601,19 @@ Raison: %2$s class BLStringKeyObject comment - Audio Port + Audio Port(s) errors flags 0 key - Audio Port + Audio Port(s) localizations en - Audio Port + Audio Port(s) fr - Port Audio + Port(s) Audio snapshots @@ -17453,19 +17626,19 @@ Raison: %2$s class BLStringKeyObject comment - Video Port + Video Port(s) errors flags 0 key - Video Port + Video Port(s) localizations en - Video Port + Video Port(s) fr - Port Vidéo + Port(s) Vidéo snapshots @@ -17685,6 +17858,81 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Limits + errors + + flags + 0 + key + Limits + localizations + + en + Limits + fr + Limites + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Upload bandwidth + errors + + flags + 0 + key + Upload bandwidth + localizations + + en + Upload bandwidth + fr + Débit montant + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Download bandwidth + errors + + flags + 0 + key + Download bandwidth + localizations + + en + Download bandwidth + fr + Débit descendant + + snapshots + + old objects @@ -17782,6 +18030,56 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Audio Port + errors + + flags + 0 + key + Audio Port + localizations + + en + Audio Port + fr + Port Audio + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Video Port + errors + + flags + 0 + key + Video Port + localizations + + en + Video Port + fr + Port Vidéo + + snapshots + + plist file diff --git a/linphone.ldb/Resources/Classes/ChatViewController/17/ChatViewController.xib b/linphone.ldb/Resources/Classes/ChatViewController/19/ChatViewController.xib similarity index 99% rename from linphone.ldb/Resources/Classes/ChatViewController/17/ChatViewController.xib rename to linphone.ldb/Resources/Classes/ChatViewController/19/ChatViewController.xib index d524c9766..5e67b7643 100644 --- a/linphone.ldb/Resources/Classes/ChatViewController/17/ChatViewController.xib +++ b/linphone.ldb/Resources/Classes/ChatViewController/19/ChatViewController.xib @@ -2,7 +2,7 @@ 1536 - 11G56 + 11G63 2840 1138.51 569.00 @@ -174,7 +174,6 @@ {{0, 79}, {320, 381}} - _NS:9 3 @@ -231,6 +230,8 @@ YES 17 + 1 + 3 IBCocoaTouchFramework diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings b/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings index c73fc3480..cf7f76b96 100644 --- a/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings +++ b/linphone.ldb/Resources/InAppSettings.bundle/Audio/1/Audio.strings @@ -34,3 +34,11 @@ /* PCMA */ "PCMA" = "PCMA"; +/* Advanced */ +"Advanced" = "Advanced"; + +/* Playback gain */ +"Playback gain" = "Playback gain"; + +/* Microphone gain */ +"Microphone gain" = "Microphone gain"; \ No newline at end of file diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings b/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings index 68876b8cc..58a723b05 100644 --- a/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings +++ b/linphone.ldb/Resources/InAppSettings.bundle/Call/1/Call.strings @@ -10,3 +10,8 @@ /* Send SIP INFO DTMFs */ "Send SIP INFO DTMFs" = "Send SIP INFO DTMFs"; +/* Incoming call timeout */ +"Incoming call timeout" = "Incoming call timeout"; + +/* In call timeout */ +"In call timeout" = "In call timeout"; \ No newline at end of file diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings b/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings index 299b28fbd..a2aa822d3 100644 --- a/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings +++ b/linphone.ldb/Resources/InAppSettings.bundle/Network/1/Network.strings @@ -13,11 +13,11 @@ /* Port */ "Port" = "Port"; -/* Audio Port */ -"Audio Port" = "Audio Port"; +/* Audio Port(s) */ +"Audio Port(s)" = "Audio Port(s)"; -/* Video Port */ -"Video Port" = "Video Port"; +/* Video Port(s) */ +"Video Port(s)" = "Video Port(s)"; /* Transport */ "Transport" = "Transport"; @@ -49,3 +49,11 @@ /* ZRTP */ "ZRTP" = "ZRTP"; +/* Limits */ +"Limits" = "Limits"; + +/* Upload bandwidth */ +"Upload bandwidth" = "Upload bandwidth"; + +/* Download bandwidth */ +"Download bandwidth" = "Download bandwidth"; diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings b/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings index 3c249d05c..536d4563e 100644 --- a/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings +++ b/linphone.ldb/Resources/InAppSettings.bundle/Root/1/Root.strings @@ -2,7 +2,7 @@ "SIP account" = "SIP account"; /* Wizard */ -"Wizard" = "Wizard"; +"Wizard" = "Run assistant"; /* User name */ "User name" = "User name"; diff --git a/linphone.ldb/Resources/LinphoneUI/UICallBar/10/UICallBar.xib b/linphone.ldb/Resources/LinphoneUI/UICallBar/12/UICallBar.xib similarity index 87% rename from linphone.ldb/Resources/LinphoneUI/UICallBar/10/UICallBar.xib rename to linphone.ldb/Resources/LinphoneUI/UICallBar/12/UICallBar.xib index 26e33847b..3398db0d7 100644 --- a/linphone.ldb/Resources/LinphoneUI/UICallBar/10/UICallBar.xib +++ b/linphone.ldb/Resources/LinphoneUI/UICallBar/12/UICallBar.xib @@ -2,9 +2,9 @@ 1536 - 11E53 + 11G63 2840 - 1138.47 + 1138.51 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -35,13 +35,14 @@ - 301 + 266 - -2147483356 + -2147483355 {{0, 335}, {320, 125}} + _NS:9 1 @@ -56,13 +57,14 @@ - 288 + 293 274 {281, 260} + _NS:9 2 @@ -78,6 +80,7 @@ 292 {{-20, 10}, {107, 54}} + 1 @@ -121,6 +124,7 @@ 292 {{87, 10}, {106, 54}} + NO NO @@ -148,6 +152,7 @@ 292 {{193, 10}, {107, 54}} + NO NO @@ -175,6 +180,7 @@ 292 {{-20, 72}, {107, 54}} + NO NO @@ -202,6 +208,7 @@ 292 {{87, 72}, {106, 54}} + NO NO @@ -229,6 +236,7 @@ 292 {{193, 72}, {107, 54}} + NO NO @@ -256,6 +264,7 @@ 292 {{-20, 134}, {107, 54}} + NO NO @@ -283,6 +292,7 @@ 292 {{87, 134}, {106, 54}} + NO NO @@ -310,6 +320,7 @@ 292 {{193, 134}, {107, 54}} + NO NO @@ -337,6 +348,7 @@ 292 {{-20, 196}, {107, 54}} + NO NO @@ -364,6 +376,7 @@ 292 {{87, 196}, {106, 54}} + NO NO @@ -391,6 +404,7 @@ 292 {{193, 196}, {107, 54}} + NO NO @@ -416,6 +430,7 @@ {{20, 57}, {281, 260}} + _NS:9 @@ -427,13 +442,14 @@ - 292 + 293 292 {{3, 0}, {77, 68}} + _NS:9 NO @@ -491,6 +507,7 @@ 292 {{3, 58}, {77, 68}} + _NS:9 NO @@ -530,6 +547,7 @@ {{240, 208}, {80, 126}} + _NS:9 @@ -538,13 +556,46 @@ - 292 + 293 + + + 292 + {{-44, -8}, {44, 90}} + + + + _NS:9 + 100 + NO + IBCocoaTouchFramework + + NSImage + callbar_left_padding.png + + + + + 292 + {{320, -8}, {44, 90}} + + + + _NS:9 + 101 + NO + IBCocoaTouchFramework + + NSImage + callbar_right_padding.png + + 290 {{0, 135}, {320, 2000}} + _NS:9 @@ -559,6 +610,7 @@ 292 {80, 67} + _NS:9 NO @@ -605,6 +657,7 @@ -2147483356 {{20, 20}, {37, 37}} + _NS:9 NO @@ -617,6 +670,7 @@ 292 {{80, 0}, {80, 67}} + _NS:9 NO @@ -663,6 +717,7 @@ 292 {{160, 0}, {80, 67}} + _NS:9 NO @@ -709,6 +764,7 @@ 292 {{240, 0}, {80, 67}} + _NS:9 NO @@ -755,6 +811,7 @@ 264 {{0, 67}, {105, 68}} + _NS:9 NO @@ -791,6 +848,7 @@ -2147483384 {{0, 67}, {105, 68}} + _NS:9 NO @@ -820,6 +878,7 @@ 264 {{105, 67}, {111, 68}} + _NS:9 NO @@ -849,7 +908,8 @@ 264 {{215, 67}, {105, 68}} - + + _NS:9 NO 27 @@ -884,7 +944,8 @@ {{0, 325}, {320, 135}} - + + _NS:9 18 @@ -893,21 +954,22 @@ {320, 460} + _NS:9 - NO IBCocoaTouchFramework - 301 + 266 - -2147483356 + -2147483355 {{0, 248}, {480, 72}} + _NS:9 @@ -923,13 +985,14 @@ - 288 + 293 274 {281, 260} + _NS:9 2 @@ -942,6 +1005,7 @@ 292 {{-20, 10}, {107, 54}} + 1 @@ -964,6 +1028,7 @@ 292 {{87, 10}, {106, 54}} + NO NO @@ -982,6 +1047,7 @@ 292 {{193, 10}, {107, 54}} + NO NO @@ -1000,6 +1066,7 @@ 292 {{-20, 72}, {107, 54}} + NO NO @@ -1018,6 +1085,7 @@ 292 {{87, 72}, {106, 54}} + NO NO @@ -1036,6 +1104,7 @@ 292 {{193, 72}, {107, 54}} + NO NO @@ -1054,6 +1123,7 @@ 292 {{-20, 134}, {107, 54}} + NO NO @@ -1072,6 +1142,7 @@ 292 {{87, 134}, {106, 54}} + NO NO @@ -1090,6 +1161,7 @@ 292 {{193, 134}, {107, 54}} + NO NO @@ -1108,6 +1180,7 @@ 292 {{-20, 196}, {107, 54}} + NO NO @@ -1126,6 +1199,7 @@ 292 {{87, 196}, {106, 54}} + NO NO @@ -1144,6 +1218,7 @@ 292 {{193, 196}, {107, 54}} + NO NO 14 @@ -1159,6 +1234,7 @@ {{91, 0}, {281, 260}} + _NS:9 @@ -1167,13 +1243,14 @@ - 292 + 293 292 {65, 55} + _NS:9 NO @@ -1215,6 +1292,7 @@ 292 {{0, 51}, {65, 55}} + _NS:9 NO @@ -1254,6 +1332,7 @@ {{415, 140}, {65, 105}} + _NS:9 @@ -1262,13 +1341,40 @@ - 292 + 293 + + + 292 + {{-44, -8}, {44, 90}} + + + + _NS:9 + 100 + NO + IBCocoaTouchFramework + + + + + 292 + {{480, -8}, {44, 90}} + + + + _NS:9 + 101 + NO + IBCocoaTouchFramework + + 290 {{0, 82}, {480, 2000}} + _NS:9 @@ -1283,6 +1389,7 @@ 292 {{65, 0}, {65, 82}} + _NS:9 NO @@ -1329,6 +1436,7 @@ -2147483356 {{79, 20}, {37, 37}} + _NS:9 NO @@ -1341,6 +1449,7 @@ 292 {{130, 0}, {65, 82}} + _NS:9 NO @@ -1387,6 +1496,7 @@ 292 {{285, 0}, {65, 82}} + _NS:9 NO @@ -1433,6 +1543,7 @@ 292 {{350, 0}, {65, 82}} + _NS:9 NO @@ -1479,6 +1590,7 @@ 264 {65, 82} + _NS:9 NO @@ -1512,6 +1624,7 @@ -2147483384 {65, 82} + _NS:9 NO @@ -1541,6 +1654,7 @@ 264 {{195, 0}, {90, 82}} + _NS:9 NO @@ -1570,7 +1684,8 @@ 264 {{415, 0}, {65, 82}} - + + _NS:9 NO 27 @@ -1602,7 +1717,8 @@ {{0, 238}, {480, 82}} - + + _NS:9 18 @@ -1611,10 +1727,10 @@ {480, 320} + _NS:9 - NO 3 3 @@ -2035,6 +2151,8 @@ + + buttons @@ -2361,6 +2479,8 @@ + + buttons @@ -2437,6 +2557,30 @@ background + + 143 + + + leftPadding + + + 144 + + + rightPadding + + + 145 + + + rightPadding + + + 146 + + + leftPadding + @@ -2535,6 +2679,10 @@ 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 @@ -2605,14 +2753,296 @@ - 142 + 163 + + + + + TPMultiLayoutViewController + UIViewController + + UIView + UIView + + + + landscapeView + UIView + + + portraitView + UIView + + + + IBProjectSource + ./Classes/TPMultiLayoutViewController.h + + + + UICallBar + TPMultiLayoutViewController + + id + id + id + id + id + + + + onConferenceClick: + id + + + onOptionsAddClick: + id + + + onOptionsClick: + id + + + onOptionsTransferClick: + id + + + onPadClick: + id + + + + UIButton + UIToggleButton + UIDigitButton + UIDigitButton + UIDigitButton + UIHangUpButton + UIMicroButton + UIDigitButton + UIDigitButton + UIButton + UIToggleButton + UIButton + UIView + UIView + UIPauseButton + UIDigitButton + UIDigitButton + UIDigitButton + UISpeakerButton + UIDigitButton + UIDigitButton + UIDigitButton + UIVideoButton + UIDigitButton + + + + conferenceButton + UIButton + + + dialerButton + UIToggleButton + + + eightButton + UIDigitButton + + + fiveButton + UIDigitButton + + + fourButton + UIDigitButton + + + hangupButton + UIHangUpButton + + + microButton + UIMicroButton + + + nineButton + UIDigitButton + + + oneButton + UIDigitButton + + + optionsAddButton + UIButton + + + optionsButton + UIToggleButton + + + optionsTransferButton + UIButton + + + optionsView + UIView + + + padView + UIView + + + pauseButton + UIPauseButton + + + sevenButton + UIDigitButton + + + sharpButton + UIDigitButton + + + sixButton + UIDigitButton + + + speakerButton + UISpeakerButton + + + starButton + UIDigitButton + + + threeButton + UIDigitButton + + + twoButton + UIDigitButton + + + videoButton + UIVideoButton + + + zeroButton + UIDigitButton + + + + IBProjectSource + ./Classes/UICallBar.h + + + + UIDigitButton + UILongTouchButton + + addressField + UITextField + + + addressField + + addressField + UITextField + + + + IBProjectSource + ./Classes/UIDigitButton.h + + + + UIHangUpButton + UIButton + + IBProjectSource + ./Classes/UIHangUpButton.h + + + + UILongTouchButton + UIButton + + IBProjectSource + ./Classes/UILongTouchButton.h + + + + UIMicroButton + UIToggleButton + + IBProjectSource + ./Classes/UIMicroButton.h + + + + UIPauseButton + UIToggleButton + + IBProjectSource + ./Classes/UIPauseButton.h + + + + UISpeakerButton + UIToggleButton + + IBProjectSource + ./Classes/UISpeakerButton.h + + + + UIToggleButton + UIButton + + IBProjectSource + ./Classes/UIToggleButton.h + + + + UITransparentView + UIView + + IBProjectSource + ./Classes/UITransparentView.h + + + + UIVideoButton + UIToggleButton + + waitView + UIActivityIndicatorView + + + waitView + + waitView + UIActivityIndicatorView + + + + IBProjectSource + ./Classes/UIVideoButton.h + + + - 0 IBCocoaTouchFramework YES 3 + {88, 180} + {88, 180} {209, 136} {130, 163} {209, 136} diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index e8bc473d7..d1708f96a 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -326,6 +326,10 @@ D33CF34B15D3A03400CD4B85 /* linphone_icon_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34815D3A03400CD4B85 /* linphone_icon_57@2x.png */; }; D33CF34C15D3A03400CD4B85 /* linphone_icon_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */; }; D33CF34D15D3A03400CD4B85 /* linphone_icon_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */; }; + D33E1F08164CF35100CFA363 /* callbar_left_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F06164CF35100CFA363 /* callbar_left_padding.png */; }; + D33E1F09164CF35100CFA363 /* callbar_left_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F06164CF35100CFA363 /* callbar_left_padding.png */; }; + D33E1F0A164CF35100CFA363 /* callbar_right_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F07164CF35100CFA363 /* callbar_right_padding.png */; }; + D33E1F0B164CF35100CFA363 /* callbar_right_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F07164CF35100CFA363 /* callbar_right_padding.png */; }; D3432A62158A4446001C6B0B /* led_connected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5C158A4446001C6B0B /* led_connected.png */; }; D3432A64158A4446001C6B0B /* led_error.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5D158A4446001C6B0B /* led_error.png */; }; D3432A66158A4446001C6B0B /* call_quality_indicator_0.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5E158A4446001C6B0B /* call_quality_indicator_0.png */; }; @@ -1757,6 +1761,8 @@ D339890515C6E16F00CAF1E4 /* dialer_alt_back_over_landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "dialer_alt_back_over_landscape~ipad.png"; path = "Resources/dialer_alt_back_over_landscape~ipad.png"; sourceTree = ""; }; D33CF34815D3A03400CD4B85 /* linphone_icon_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone_icon_57@2x.png"; path = "Resources/linphone_icon_57@2x.png"; sourceTree = ""; }; D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone_icon_72@2x.png"; path = "Resources/linphone_icon_72@2x.png"; sourceTree = ""; }; + D33E1F06164CF35100CFA363 /* callbar_left_padding.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = callbar_left_padding.png; path = Resources/callbar_left_padding.png; sourceTree = ""; }; + D33E1F07164CF35100CFA363 /* callbar_right_padding.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = callbar_right_padding.png; path = Resources/callbar_right_padding.png; sourceTree = ""; }; D3432A5C158A4446001C6B0B /* led_connected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = led_connected.png; path = Resources/led_connected.png; sourceTree = ""; }; D3432A5D158A4446001C6B0B /* led_error.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = led_error.png; path = Resources/led_error.png; sourceTree = ""; }; D3432A5E158A4446001C6B0B /* call_quality_indicator_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = call_quality_indicator_0.png; path = Resources/call_quality_indicator_0.png; sourceTree = ""; }; @@ -2998,6 +3004,8 @@ D31C9C8D158A1C1000756B45 /* call_status_incoming.png */, D31C9C8E158A1C1000756B45 /* call_status_missed.png */, D31C9C8F158A1C1000756B45 /* call_status_outgoing.png */, + D33E1F06164CF35100CFA363 /* callbar_left_padding.png */, + D33E1F07164CF35100CFA363 /* callbar_right_padding.png */, D3E84F1715B00F4100420DAC /* cancel_default.png */, D3E84F1815B00F4100420DAC /* cancel_over.png */, D36C43CC158F2F370048BA40 /* cell_call.png */, @@ -4201,6 +4209,8 @@ D3103926162C3C5200C00C18 /* linphone_splashscreen-Landscape@2x.png in Resources */, D3103928162C3C5200C00C18 /* linphone_splashscreen-Portrait.png in Resources */, D310392A162C3C5200C00C18 /* linphone_splashscreen-Portrait@2x.png in Resources */, + D33E1F08164CF35100CFA363 /* callbar_left_padding.png in Resources */, + D33E1F0A164CF35100CFA363 /* callbar_right_padding.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4707,6 +4717,8 @@ D3103927162C3C5200C00C18 /* linphone_splashscreen-Landscape@2x.png in Resources */, D3103929162C3C5200C00C18 /* linphone_splashscreen-Portrait.png in Resources */, D310392B162C3C5200C00C18 /* linphone_splashscreen-Portrait@2x.png in Resources */, + D33E1F09164CF35100CFA363 /* callbar_left_padding.png in Resources */, + D33E1F0B164CF35100CFA363 /* callbar_right_padding.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5266,7 +5278,7 @@ HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 4.3; LIBRARY_SEARCH_PATHS = ""; - PROVISIONING_PROFILE = "EE9CAF78-3536-4133-BAAA-020FDF65D279"; + PROVISIONING_PROFILE = "7763350E-083E-4ADA-8535-05883F19F947"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; TARGETED_DEVICE_FAMILY = "1,2"; @@ -5676,7 +5688,7 @@ HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 4.3; LIBRARY_SEARCH_PATHS = ""; - PROVISIONING_PROFILE = "79E53132-649F-48B3-A931-24792E466A11"; + PROVISIONING_PROFILE = "2AC0DC11-4546-47B6-8B8A-453CCA80903C"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/submodules/build/builders.d/x264.mk b/submodules/build/builders.d/x264.mk index fbe943686..203ffe351 100644 --- a/submodules/build/builders.d/x264.mk +++ b/submodules/build/builders.d/x264.mk @@ -43,12 +43,12 @@ ifneq (,$(findstring armv7,$(host))) endif x264_dir?=externals/x264 -$(BUILDER_SRC_DIR)/$(x264_dir)/patched : - cd $(BUILDER_SRC_DIR)/$(x264_dir) \ - && git apply $(BUILDER_SRC_DIR)/build/builders.d/x264.patch \ - && touch $(BUILDER_SRC_DIR)/$(x264_dir)/patched +#$(BUILDER_SRC_DIR)/$(x264_dir)/patched : +# cd $(BUILDER_SRC_DIR)/$(x264_dir) \ +# && git apply $(BUILDER_SRC_DIR)/build/builders.d/x264.patch \ +# && touch $(BUILDER_SRC_DIR)/$(x264_dir)/patched -$(BUILDER_BUILD_DIR)/$(x264_dir)/configure: $(BUILDER_SRC_DIR)/$(x264_dir)/patched +$(BUILDER_BUILD_DIR)/$(x264_dir)/configure: mkdir -p $(BUILDER_BUILD_DIR)/$(x264_dir) cd $(BUILDER_BUILD_DIR)/$(x264_dir)/ \ && rsync -av --exclude ".git" $(BUILDER_SRC_DIR)/$(x264_dir)/* . @@ -66,6 +66,9 @@ clean-x264: veryclean-x264: -cd $(BUILDER_BUILD_DIR)/$(x264_dir) && make distclean + cd $(BUILDER_SRC_DIR)/$(x264_dir)/ \ + && git checkout common/arm/asm.S \ + && rm -f patched rm -rf $(BUILDER_BUILD_DIR)/$(x264_dir) clean-makefile-x264: diff --git a/submodules/externals/x264 b/submodules/externals/x264 index 926a03a9c..f6a8615ab 160000 --- a/submodules/externals/x264 +++ b/submodules/externals/x264 @@ -1 +1 @@ -Subproject commit 926a03a9c1f48d0fbd54b0e802d740774c100a78 +Subproject commit f6a8615ab0c922ac2cb5c82c9824f6f4742b1725 diff --git a/submodules/linphone b/submodules/linphone index e829fa6e2..501c5ce4d 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit e829fa6e222f37de9c26e4e82f0227078f4b6629 +Subproject commit 501c5ce4db223514bdb9090405b264e862c028ad