From 7603a61f7b9302e8165adbc78b2c373a25bc57d1 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 9 Jan 2017 17:20:00 +0100 Subject: [PATCH 001/180] Add LIME to settings + manage LIME when sending messages --- Classes/ChatConversationView.m | 4 ++ Classes/LinphoneAppDelegate.m | 12 ++++- Classes/LinphoneCoreSettingsStore.m | 33 ++++++++++-- Classes/LinphoneManager.h | 1 + Classes/LinphoneManager.m | 21 ++++++++ Classes/SettingsView.m | 4 ++ Classes/Utils/FileTransferDelegate.m | 7 ++- Settings/InAppSettings.bundle/Advanced.plist | 22 -------- Settings/InAppSettings.bundle/Root.plist | 10 ++++ Settings/InAppSettings.bundle/message.plist | 53 ++++++++++++++++++++ Settings/message.plist | 14 ++++++ submodules/belcard | 2 +- submodules/linphone | 2 +- 13 files changed, 155 insertions(+), 30 deletions(-) create mode 100644 Settings/InAppSettings.bundle/message.plist create mode 100644 Settings/message.plist diff --git a/Classes/ChatConversationView.m b/Classes/ChatConversationView.m index c24b14f34..1b84a20a4 100644 --- a/Classes/ChatConversationView.m +++ b/Classes/ChatConversationView.m @@ -240,6 +240,10 @@ static UICompositeViewDescription *compositeDescription = nil; linphone_chat_message_unref(msg); [_tableController scrollToBottom:true]; + + if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(_chatRoom)) { + [LinphoneManager.instance alertLIME:_chatRoom]; + } return TRUE; } diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 2c2682b0e..56fd9ab28 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -271,7 +271,6 @@ actions:[NSArray arrayWithObjects:act_confirm, act_deny, nil] intentIdentifiers:[[NSMutableArray alloc] init] options:UNNotificationCategoryOptionCustomDismissAction]; - [UNUserNotificationCenter currentNotificationCenter].delegate = self; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionSound | @@ -708,6 +707,10 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response if (room) { LinphoneChatMessage *msg = linphone_chat_room_create_message(room, replyText.UTF8String); linphone_chat_room_send_chat_message(room, msg); + + if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(room)) { + [LinphoneManager.instance alertLIME:room]; + } linphone_chat_room_mark_as_read(room); TabBarView *tab = (TabBarView *)[PhoneMainView.instance.mainViewController getCachedController:NSStringFromClass(TabBarView.class)]; @@ -750,6 +753,8 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response if (linphone_core_get_current_call(LC) == call) { linphone_call_set_authentication_token_verified(call, NO); } + } else if ([response.actionIdentifier isEqual:@"Call"]) { + } else { // in this case the value is : com.apple.UNNotificationDefaultActionIdentifier if ([response.notification.request.content.categoryIdentifier isEqual:@"call_cat"]) { [PhoneMainView.instance displayIncomingCall:call]; @@ -898,6 +903,11 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response if (room) { LinphoneChatMessage *msg = linphone_chat_room_create_message(room, replyText.UTF8String); linphone_chat_room_send_chat_message(room, msg); + + if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(room)) { + [LinphoneManager.instance alertLIME:room]; + } + linphone_chat_room_mark_as_read(room); [PhoneMainView.instance updateApplicationBadgeNumber]; } diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index 6529a0fb7..dbd914ca4 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -323,6 +323,12 @@ [self setBool:[lm lpConfigBoolForKey:@"repeat_call_notification"] forKey:@"repeat_call_notification_preference"]; } + + // chat section + { + [self setInteger:linphone_core_lime_enabled(LC) forKey:@"use_lime_preference"]; + [self setCString:linphone_core_get_file_transfer_server(LC) forKey:@"file_transfer_server_url_preference"]; + } // network section { @@ -409,7 +415,6 @@ [self setCString:linphone_address_get_username(parsed) forKey:@"primary_username_preference"]; linphone_address_destroy(parsed); } - [self setCString:linphone_core_get_file_transfer_server(LC) forKey:@"file_transfer_server_url_preference"]; } changedDict = [[NSMutableDictionary alloc] init]; @@ -742,6 +747,29 @@ [lm lpConfigSetBool:[self boolForKey:@"repeat_call_notification_preference"] forKey:@"repeat_call_notification"]; } + + // chat section + { + int val = [self integerForKey:@"use_lime_preference"]; + linphone_core_enable_lime(LC, val); + if(val == LinphoneLimeMandatory && (linphone_core_get_media_encryption(LC) != LinphoneMediaEncryptionZRTP)) { + linphone_core_set_media_encryption(LC, LinphoneMediaEncryptionZRTP); + [self setCString:"ZRTP" forKey:@"media_encryption_preference"]; + UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"ZRTP activation", nil) + message:NSLocalizedString(@"LIME requires ZRTP encryption.\n" + @"By activating LIME you automatically ZRTP media encryption.", + nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + [errView addAction:defaultAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + } + linphone_core_set_file_transfer_server( + LC, [[self stringForKey:@"file_transfer_server_url_preference"] UTF8String]); + } // network section { @@ -878,9 +906,6 @@ [lm lpConfigSetInt:[self integerForKey:@"account_mandatory_advanced_preference"] forKey:@"account_mandatory_advanced_preference"]; - - linphone_core_set_file_transfer_server( - LC, [[self stringForKey:@"file_transfer_server_url_preference"] UTF8String]); } changedDict = [[NSMutableDictionary alloc] init]; diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h index c785def8c..eb48a0452 100644 --- a/Classes/LinphoneManager.h +++ b/Classes/LinphoneManager.h @@ -140,6 +140,7 @@ typedef struct _LinphoneManagerSounds { - (void)acceptCallForCallId:(NSString*)callid; - (LinphoneCall *)callByCallId:(NSString *)call_id; - (void)cancelLocalNotifTimerForCallId:(NSString*)callid; +- (void) alertLIME:(LinphoneChatRoom *)room; + (BOOL)langageDirectionIsRTL; + (void)kickOffNetworkConnection; diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index d60560963..1ee361e56 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -1360,6 +1360,27 @@ static void linphone_iphone_call_encryption_changed(LinphoneCore *lc, LinphoneCa } #pragma mark - Message composition start +- (void) alertLIME:(LinphoneChatRoom *)room { + UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"LIME Error", nil) + message:NSLocalizedString(@"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" + @"Please call this contact and verify his ZRTP key before sending your messages.", + nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + [errView addAction:defaultAction]; + + UIAlertAction* callAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Call", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) { + [self call:linphone_chat_room_get_peer_address(room)]; + }]; + [errView addAction:callAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; +} + - (void)onMessageComposeReceived:(LinphoneCore *)core forRoom:(LinphoneChatRoom *)room { [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneTextComposeEvent diff --git a/Classes/SettingsView.m b/Classes/SettingsView.m index ad771a29e..e658f782d 100644 --- a/Classes/SettingsView.m +++ b/Classes/SettingsView.m @@ -593,6 +593,10 @@ void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStat if (!linphone_core_sip_transport_supported(LC, LinphoneTransportTls)) { [hiddenKeys addObject:@"media_encryption_preference"]; } + + if(!linphone_core_lime_available(LC)) { + [hiddenKeys addObject:@"use_lime_preference"]; + } #ifndef DEBUG [hiddenKeys addObject:@"debug_actions_group"]; diff --git a/Classes/Utils/FileTransferDelegate.m b/Classes/Utils/FileTransferDelegate.m index dc63afed5..ddd22a714 100644 --- a/Classes/Utils/FileTransferDelegate.m +++ b/Classes/Utils/FileTransferDelegate.m @@ -9,6 +9,7 @@ #import "FileTransferDelegate.h" #import "Utils.h" #import "PhoneMainView.h" +#import "LinphoneManager.h" @interface FileTransferDelegate () @property(strong) NSMutableData *data; @@ -171,8 +172,12 @@ static LinphoneBuffer *linphone_iphone_file_transfer_send(LinphoneChatMessage *m } LOGI(@"%p Uploading content from message %p", self, _message); - linphone_chat_room_send_chat_message(chatRoom, _message); + + if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(chatRoom)) { + [LinphoneManager.instance alertLIME:chatRoom]; + } + } - (BOOL)download:(LinphoneChatMessage *)message { diff --git a/Settings/InAppSettings.bundle/Advanced.plist b/Settings/InAppSettings.bundle/Advanced.plist index 2e3e28ca1..d97e858c8 100644 --- a/Settings/InAppSettings.bundle/Advanced.plist +++ b/Settings/InAppSettings.bundle/Advanced.plist @@ -160,28 +160,6 @@ IASKTextAlignment IASKUITextAlignmentRight - - Type - PSGroupSpecifier - Title - File sharing - - - AutocapitalizationType - None - AutocorrectionType - No - KeyboardType - URL - Type - PSTextFieldSpecifier - Title - Server URL - Key - file_transfer_server_url_preference - IASKTextAlignment - IASKUITextAlignmentRight - diff --git a/Settings/InAppSettings.bundle/Root.plist b/Settings/InAppSettings.bundle/Root.plist index f37c4fd13..cbaee0e91 100644 --- a/Settings/InAppSettings.bundle/Root.plist +++ b/Settings/InAppSettings.bundle/Root.plist @@ -114,6 +114,16 @@ Type PSChildPaneSpecifier + + Type + PSChildPaneSpecifier + Key + message_menu + Title + Chat + File + Message + Key network_menu diff --git a/Settings/InAppSettings.bundle/message.plist b/Settings/InAppSettings.bundle/message.plist new file mode 100644 index 000000000..17739d229 --- /dev/null +++ b/Settings/InAppSettings.bundle/message.plist @@ -0,0 +1,53 @@ + + + + + PreferenceSpecifiers + + + DefaultValue + 0 + Type + PSMultiValueSpecifier + Titles + + Disabled + Preferred + Mandatory + + Values + + 0 + 2 + 1 + + Title + Encrypt messages with LIME + Key + use_lime_preference + + + Type + PSGroupSpecifier + Title + File sharing + + + AutocapitalizationType + None + AutocorrectionType + No + KeyboardType + URL + Type + PSTextFieldSpecifier + Title + Server URL + Key + file_transfer_server_url_preference + IASKTextAlignment + IASKUITextAlignmentRight + + + + diff --git a/Settings/message.plist b/Settings/message.plist new file mode 100644 index 000000000..15f4d8b46 --- /dev/null +++ b/Settings/message.plist @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/submodules/belcard b/submodules/belcard index 63e61b0ae..f5a8603f8 160000 --- a/submodules/belcard +++ b/submodules/belcard @@ -1 +1 @@ -Subproject commit 63e61b0ae0f20e6d9f790335184fa4a0fc2a90ab +Subproject commit f5a8603f8e379486d3a4bfa4d74861b0a2d880dd diff --git a/submodules/linphone b/submodules/linphone index 1c92cdd44..2751c8a70 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 1c92cdd4466d8af34ff3faa1db7e2e3f0c8f5d46 +Subproject commit 2751c8a703152f553247aa96d7b6d3ba72f4c4b1 From 816f7466cbfdd954d37acdebf533a2ca4260badd Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 9 Jan 2017 17:20:11 +0100 Subject: [PATCH 002/180] [Switch submodule branch] Add LIME to settings + manage LIME when sending messages --- Classes/ChatConversationView.m | 4 ++-- Classes/LinphoneAppDelegate.m | 12 +++++------ Classes/LinphoneCoreSettingsStore.m | 28 +++++++++++++----------- Classes/LinphoneManager.h | 2 +- Classes/LinphoneManager.m | 32 +++++++++++++++------------- Classes/SettingsView.m | 4 ++-- Classes/Utils/FileTransferDelegate.m | 9 ++++---- 7 files changed, 48 insertions(+), 43 deletions(-) diff --git a/Classes/ChatConversationView.m b/Classes/ChatConversationView.m index 1b84a20a4..b0fcadb58 100644 --- a/Classes/ChatConversationView.m +++ b/Classes/ChatConversationView.m @@ -240,8 +240,8 @@ static UICompositeViewDescription *compositeDescription = nil; linphone_chat_message_unref(msg); [_tableController scrollToBottom:true]; - - if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(_chatRoom)) { + + if (linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(_chatRoom)) { [LinphoneManager.instance alertLIME:_chatRoom]; } diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 56fd9ab28..d6e6594a6 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -707,8 +707,8 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response if (room) { LinphoneChatMessage *msg = linphone_chat_room_create_message(room, replyText.UTF8String); linphone_chat_room_send_chat_message(room, msg); - - if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(room)) { + + if (linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(room)) { [LinphoneManager.instance alertLIME:room]; } linphone_chat_room_mark_as_read(room); @@ -754,7 +754,7 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response linphone_call_set_authentication_token_verified(call, NO); } } else if ([response.actionIdentifier isEqual:@"Call"]) { - + } else { // in this case the value is : com.apple.UNNotificationDefaultActionIdentifier if ([response.notification.request.content.categoryIdentifier isEqual:@"call_cat"]) { [PhoneMainView.instance displayIncomingCall:call]; @@ -903,11 +903,11 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response if (room) { LinphoneChatMessage *msg = linphone_chat_room_create_message(room, replyText.UTF8String); linphone_chat_room_send_chat_message(room, msg); - - if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(room)) { + + if (linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(room)) { [LinphoneManager.instance alertLIME:room]; } - + linphone_chat_room_mark_as_read(room); [PhoneMainView.instance updateApplicationBadgeNumber]; } diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index dbd914ca4..190938e99 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -323,7 +323,7 @@ [self setBool:[lm lpConfigBoolForKey:@"repeat_call_notification"] forKey:@"repeat_call_notification_preference"]; } - + // chat section { [self setInteger:linphone_core_lime_enabled(LC) forKey:@"use_lime_preference"]; @@ -747,28 +747,32 @@ [lm lpConfigSetBool:[self boolForKey:@"repeat_call_notification_preference"] forKey:@"repeat_call_notification"]; } - + // chat section { int val = [self integerForKey:@"use_lime_preference"]; linphone_core_enable_lime(LC, val); - if(val == LinphoneLimeMandatory && (linphone_core_get_media_encryption(LC) != LinphoneMediaEncryptionZRTP)) { + if (val == LinphoneLimeMandatory && + (linphone_core_get_media_encryption(LC) != LinphoneMediaEncryptionZRTP)) { linphone_core_set_media_encryption(LC, LinphoneMediaEncryptionZRTP); [self setCString:"ZRTP" forKey:@"media_encryption_preference"]; - UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"ZRTP activation", nil) - message:NSLocalizedString(@"LIME requires ZRTP encryption.\n" - @"By activating LIME you automatically ZRTP media encryption.", - nil) - preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" + UIAlertController *errView = [UIAlertController + alertControllerWithTitle:NSLocalizedString(@"ZRTP activation", nil) + message:NSLocalizedString( + @"LIME requires ZRTP encryption.\n" + @"By activating LIME you automatically ZRTP media encryption.", + nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) {}]; + handler:^(UIAlertAction *action){ + }]; [errView addAction:defaultAction]; [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; } linphone_core_set_file_transfer_server( - LC, [[self stringForKey:@"file_transfer_server_url_preference"] UTF8String]); + LC, [[self stringForKey:@"file_transfer_server_url_preference"] UTF8String]); } // network section diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h index eb48a0452..614dddc5d 100644 --- a/Classes/LinphoneManager.h +++ b/Classes/LinphoneManager.h @@ -140,7 +140,7 @@ typedef struct _LinphoneManagerSounds { - (void)acceptCallForCallId:(NSString*)callid; - (LinphoneCall *)callByCallId:(NSString *)call_id; - (void)cancelLocalNotifTimerForCallId:(NSString*)callid; -- (void) alertLIME:(LinphoneChatRoom *)room; +- (void)alertLIME:(LinphoneChatRoom *)room; + (BOOL)langageDirectionIsRTL; + (void)kickOffNetworkConnection; diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 1ee361e56..1fc516ee6 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -1360,28 +1360,30 @@ static void linphone_iphone_call_encryption_changed(LinphoneCore *lc, LinphoneCa } #pragma mark - Message composition start -- (void) alertLIME:(LinphoneChatRoom *)room { - UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"LIME Error", nil) - message:NSLocalizedString(@"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" - @"Please call this contact and verify his ZRTP key before sending your messages.", - nil) - preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" +- (void)alertLIME:(LinphoneChatRoom *)room { + UIAlertController *errView = [UIAlertController + alertControllerWithTitle:NSLocalizedString(@"LIME Error", nil) + message:NSLocalizedString( + @"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" + @"Please call this contact and verify his ZRTP key before sending your messages.", + nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) {}]; + handler:^(UIAlertAction *action){ + }]; [errView addAction:defaultAction]; - - UIAlertAction* callAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Call", nil) + + UIAlertAction *callAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Call", nil) style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) { - [self call:linphone_chat_room_get_peer_address(room)]; - }]; + handler:^(UIAlertAction *action) { + [self call:linphone_chat_room_get_peer_address(room)]; + }]; [errView addAction:callAction]; [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; } - - (void)onMessageComposeReceived:(LinphoneCore *)core forRoom:(LinphoneChatRoom *)room { [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneTextComposeEvent object:self diff --git a/Classes/SettingsView.m b/Classes/SettingsView.m index e658f782d..6ffe304d4 100644 --- a/Classes/SettingsView.m +++ b/Classes/SettingsView.m @@ -593,8 +593,8 @@ void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStat if (!linphone_core_sip_transport_supported(LC, LinphoneTransportTls)) { [hiddenKeys addObject:@"media_encryption_preference"]; } - - if(!linphone_core_lime_available(LC)) { + + if (!linphone_core_lime_available(LC)) { [hiddenKeys addObject:@"use_lime_preference"]; } diff --git a/Classes/Utils/FileTransferDelegate.m b/Classes/Utils/FileTransferDelegate.m index ddd22a714..be9a9da89 100644 --- a/Classes/Utils/FileTransferDelegate.m +++ b/Classes/Utils/FileTransferDelegate.m @@ -7,9 +7,9 @@ // #import "FileTransferDelegate.h" -#import "Utils.h" -#import "PhoneMainView.h" #import "LinphoneManager.h" +#import "PhoneMainView.h" +#import "Utils.h" @interface FileTransferDelegate () @property(strong) NSMutableData *data; @@ -173,11 +173,10 @@ static LinphoneBuffer *linphone_iphone_file_transfer_send(LinphoneChatMessage *m LOGI(@"%p Uploading content from message %p", self, _message); linphone_chat_room_send_chat_message(chatRoom, _message); - - if(linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(chatRoom)) { + + if (linphone_core_lime_enabled(LC) == LinphoneLimeMandatory && !linphone_chat_room_lime_available(chatRoom)) { [LinphoneManager.instance alertLIME:chatRoom]; } - } - (BOOL)download:(LinphoneChatMessage *)message { From 576788be5c936d69fac612661d7916dc7b2baac7 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 9 Jan 2017 17:33:14 +0100 Subject: [PATCH 003/180] Repair repeat call notif when auto-answer --- Classes/LinphoneAppDelegate.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index d6e6594a6..9bfdb0bd3 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -112,6 +112,13 @@ } else if (linphone_call_get_state(call) == LinphoneCallIncomingReceived) { if ((floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max)) { if ([LinphoneManager.instance lpConfigBoolForKey:@"autoanswer_notif_preference"]) { + if (call) { + LinphoneCallAppData *data = (__bridge LinphoneCallAppData *)linphone_call_get_user_data(call); + if (data->timer) { + [data->timer invalidate]; + data->timer = nil; + } + } linphone_core_accept_call(LC, call); [PhoneMainView.instance changeCurrentView:CallView.compositeViewDescription]; } else { From 8a895952a8cc2df1b144587e8ef43761ce1413a3 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 10:22:31 +0100 Subject: [PATCH 004/180] update cmake-builder --- submodules/cmake-builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 141c0b6c0..8bf243537 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 141c0b6c0991fc79e8988961f2283936ca3c14f7 +Subproject commit 8bf243537e25c8fefdb46b86287403ea96e905ca From 031bb070bfaaf7fd857dc37eec18bb4cf069b866 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 10:23:59 +0100 Subject: [PATCH 005/180] add Message.plist de XCode.proj + cancel timer better managed --- Classes/LinphoneAppDelegate.m | 12 +++++------- linphone.xcodeproj/project.pbxproj | 4 ++++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 9bfdb0bd3..23d683bf0 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -110,15 +110,13 @@ } instance->currentCallContextBeforeGoingBackground.call = 0; } else if (linphone_call_get_state(call) == LinphoneCallIncomingReceived) { + LinphoneCallAppData *data = (__bridge LinphoneCallAppData *)linphone_call_get_user_data(call); + if (data && data->timer) { + [data->timer invalidate]; + data->timer = nil; + } if ((floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max)) { if ([LinphoneManager.instance lpConfigBoolForKey:@"autoanswer_notif_preference"]) { - if (call) { - LinphoneCallAppData *data = (__bridge LinphoneCallAppData *)linphone_call_get_user_data(call); - if (data->timer) { - [data->timer invalidate]; - data->timer = nil; - } - } linphone_core_accept_call(LC, call); [PhoneMainView.instance changeCurrentView:CallView.compositeViewDescription]; } else { diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 45902561e..f9603b307 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -672,6 +672,7 @@ 8C2595DD1DEDC92D007A6424 /* ProviderDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */; }; 8C2595DF1DEDCC8E007A6424 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */; }; 8C2595E11DEDDC67007A6424 /* callkit_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2595E01DEDDC67007A6424 /* callkit_logo.png */; }; + 8C493F9F1E23C27A009322AB /* message.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C493F9E1E23C27A009322AB /* message.plist */; }; 8C73477C1D9BA3A00022EE8C /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C73477B1D9BA3A00022EE8C /* UserNotifications.framework */; }; 8CA2004C1D8158440095F859 /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CA2004B1D8158440095F859 /* PushKit.framework */; }; 9EC6C1E11DF96991006C2FD2 /* armv7-apple-darwin.ios in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EC6C1E01DF96991006C2FD2 /* armv7-apple-darwin.ios */; }; @@ -1595,6 +1596,7 @@ 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProviderDelegate.m; sourceTree = ""; }; 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; }; 8C2595E01DEDDC67007A6424 /* callkit_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = callkit_logo.png; sourceTree = ""; }; + 8C493F9E1E23C27A009322AB /* message.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = message.plist; path = Settings/message.plist; sourceTree = ""; }; 8C5D1B991D9BC48100DC6539 /* UIShopTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIShopTableCell.h; sourceTree = ""; }; 8C5D1B9A1D9BC48100DC6539 /* UIShopTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIShopTableCell.m; sourceTree = ""; }; 8C5D1B9B1D9BC48100DC6539 /* UIShopTableCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIShopTableCell.xib; sourceTree = ""; }; @@ -2218,6 +2220,7 @@ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( + 8C493F9E1E23C27A009322AB /* message.plist */, 8C23BCB71D82AAC3005F19BB /* linphone.entitlements */, 080E96DDFE201D6D7F000001 /* Classes */, 29B97323FDCFA39411CA2CEA /* Frameworks */, @@ -3608,6 +3611,7 @@ 633FEEE91D3CD55A0014B822 /* numpad_9~ipad.png in Resources */, 633FEE331D3CD5590014B822 /* color_M.png in Resources */, 633FEE811D3CD5590014B822 /* led_connected@2x.png in Resources */, + 8C493F9F1E23C27A009322AB /* message.plist in Resources */, 633FEE881D3CD5590014B822 /* linphone_logo.png in Resources */, 633FEE9B1D3CD55A0014B822 /* numpad_0_default.png in Resources */, 633FEE591D3CD5590014B822 /* dialer_background@2x.png in Resources */, From 0102fe6dd233afd1a72f35c658d126d879281da6 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 11:10:23 +0100 Subject: [PATCH 006/180] update submodule linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 2751c8a70..d55353a7c 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 2751c8a703152f553247aa96d7b6d3ba72f4c4b1 +Subproject commit d55353a7c68545dceec775fbd5847cd064e48b2f From cda9957f7d489b0ff6e344ebc3029a4e5bcca992 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 11:59:30 +0100 Subject: [PATCH 007/180] Do not crash on authentiation token NULL && update bctbx --- Classes/LinphoneManager.m | 4 +++- submodules/bctoolbox | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 1fc516ee6..b8d600512 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -1355,7 +1355,9 @@ static void linphone_iphone_call_encryption_changed(LinphoneCore *lc, LinphoneCa NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:[NSValue valueWithPointer:call] forKey:@"call"]; [dict setObject:[NSNumber numberWithBool:on] forKey:@"on"]; - [dict setObject:[NSString stringWithUTF8String:authentication_token] forKey:@"token"]; + if (authentication_token) { + [dict setObject:[NSString stringWithUTF8String:authentication_token] forKey:@"token"]; + } [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneCallEncryptionChanged object:self userInfo:dict]; } diff --git a/submodules/bctoolbox b/submodules/bctoolbox index 058967d34..7254fe94e 160000 --- a/submodules/bctoolbox +++ b/submodules/bctoolbox @@ -1 +1 @@ -Subproject commit 058967d340a97d7a4c155490398162b24c2ea399 +Subproject commit 7254fe94e7155f0164fca177f8bf54ab82b76e84 From 7c1cb619ffba16705bba9d0c13d76c3c3f6ed17f Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 14:40:17 +0100 Subject: [PATCH 008/180] update cmake-builder --- submodules/cmake-builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 8bf243537..96d5889a3 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 8bf243537e25c8fefdb46b86287403ea96e905ca +Subproject commit 96d5889a38b49488a970bab87a99cbe8d988a269 From 690216eaf5d72a39d9fd9792cd6e7669c8e69da3 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 16:05:50 +0100 Subject: [PATCH 009/180] update submodule linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index d55353a7c..e7213322b 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit d55353a7c68545dceec775fbd5847cd064e48b2f +Subproject commit e7213322b11f4f56eb1e67477b390a1bd7dd3597 From 884363764505c27305049d15b91f8ec42dedb360 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 17:02:57 +0100 Subject: [PATCH 010/180] rename message.plist to Chat.plist --- Settings/InAppSettings.bundle/{message.plist => Chat.plist} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Settings/InAppSettings.bundle/{message.plist => Chat.plist} (100%) diff --git a/Settings/InAppSettings.bundle/message.plist b/Settings/InAppSettings.bundle/Chat.plist similarity index 100% rename from Settings/InAppSettings.bundle/message.plist rename to Settings/InAppSettings.bundle/Chat.plist From 8692ffa42bf663a125bb630fa483ecd029ca87f7 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 10 Jan 2017 17:05:31 +0100 Subject: [PATCH 011/180] point to right file --- Settings/InAppSettings.bundle/Root.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Settings/InAppSettings.bundle/Root.plist b/Settings/InAppSettings.bundle/Root.plist index cbaee0e91..2fbc0eab4 100644 --- a/Settings/InAppSettings.bundle/Root.plist +++ b/Settings/InAppSettings.bundle/Root.plist @@ -122,7 +122,7 @@ Title Chat File - Message + Chat Key From 0245a8df9497ec112e86014715b8287f85e5bd7e Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 11 Jan 2017 11:17:29 +0100 Subject: [PATCH 012/180] delete unused file --- Settings/message.plist | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 Settings/message.plist diff --git a/Settings/message.plist b/Settings/message.plist deleted file mode 100644 index 15f4d8b46..000000000 --- a/Settings/message.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - From fcb2bb44f5746bbcaa893aa95d7cb66163f7b6d6 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 11 Jan 2017 13:47:14 +0100 Subject: [PATCH 013/180] remove references to unused file --- linphone.xcodeproj/project.pbxproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index f9603b307..45902561e 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -672,7 +672,6 @@ 8C2595DD1DEDC92D007A6424 /* ProviderDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */; }; 8C2595DF1DEDCC8E007A6424 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */; }; 8C2595E11DEDDC67007A6424 /* callkit_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2595E01DEDDC67007A6424 /* callkit_logo.png */; }; - 8C493F9F1E23C27A009322AB /* message.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8C493F9E1E23C27A009322AB /* message.plist */; }; 8C73477C1D9BA3A00022EE8C /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C73477B1D9BA3A00022EE8C /* UserNotifications.framework */; }; 8CA2004C1D8158440095F859 /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CA2004B1D8158440095F859 /* PushKit.framework */; }; 9EC6C1E11DF96991006C2FD2 /* armv7-apple-darwin.ios in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EC6C1E01DF96991006C2FD2 /* armv7-apple-darwin.ios */; }; @@ -1596,7 +1595,6 @@ 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProviderDelegate.m; sourceTree = ""; }; 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; }; 8C2595E01DEDDC67007A6424 /* callkit_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = callkit_logo.png; sourceTree = ""; }; - 8C493F9E1E23C27A009322AB /* message.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = message.plist; path = Settings/message.plist; sourceTree = ""; }; 8C5D1B991D9BC48100DC6539 /* UIShopTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIShopTableCell.h; sourceTree = ""; }; 8C5D1B9A1D9BC48100DC6539 /* UIShopTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIShopTableCell.m; sourceTree = ""; }; 8C5D1B9B1D9BC48100DC6539 /* UIShopTableCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIShopTableCell.xib; sourceTree = ""; }; @@ -2220,7 +2218,6 @@ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( - 8C493F9E1E23C27A009322AB /* message.plist */, 8C23BCB71D82AAC3005F19BB /* linphone.entitlements */, 080E96DDFE201D6D7F000001 /* Classes */, 29B97323FDCFA39411CA2CEA /* Frameworks */, @@ -3611,7 +3608,6 @@ 633FEEE91D3CD55A0014B822 /* numpad_9~ipad.png in Resources */, 633FEE331D3CD5590014B822 /* color_M.png in Resources */, 633FEE811D3CD5590014B822 /* led_connected@2x.png in Resources */, - 8C493F9F1E23C27A009322AB /* message.plist in Resources */, 633FEE881D3CD5590014B822 /* linphone_logo.png in Resources */, 633FEE9B1D3CD55A0014B822 /* numpad_0_default.png in Resources */, 633FEE591D3CD5590014B822 /* dialer_background@2x.png in Resources */, From ab3b7d8f5e713e2a9f2df0f15857b21ea458a9a3 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 11 Jan 2017 13:57:42 +0100 Subject: [PATCH 014/180] update submodule linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index e7213322b..f9d6f3ae9 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit e7213322b11f4f56eb1e67477b390a1bd7dd3597 +Subproject commit f9d6f3ae979153f3eb3498cce8a5fdacc084a32f From f32a0b5e61f2f2ca56a69b168d57b057b749a7c5 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 12 Jan 2017 15:23:07 +0100 Subject: [PATCH 015/180] Fix crashes : DL emcrypted without Lime. Trying to display NULL auth_info --- Classes/AssistantLinkView.m | 10 ++++++---- Classes/Utils/FileTransferDelegate.m | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Classes/AssistantLinkView.m b/Classes/AssistantLinkView.m index aad8083b9..7cc66f4ae 100644 --- a/Classes/AssistantLinkView.m +++ b/Classes/AssistantLinkView.m @@ -57,10 +57,12 @@ linphone_account_creator_set_username( account_creator, linphone_address_get_username(linphone_proxy_config_get_identity_address(cfg))); const LinphoneAuthInfo *info = linphone_proxy_config_find_auth_info(cfg); - if (linphone_auth_info_get_passwd(info)) - linphone_account_creator_set_password(account_creator, linphone_auth_info_get_passwd(info)); - else - linphone_account_creator_set_ha1(account_creator, linphone_auth_info_get_ha1(info)); + if (info) { + if (linphone_auth_info_get_passwd(info)) + linphone_account_creator_set_password(account_creator, linphone_auth_info_get_passwd(info)); + else + linphone_account_creator_set_ha1(account_creator, linphone_auth_info_get_ha1(info)); + } linphone_account_creator_set_domain(account_creator, linphone_proxy_config_get_domain(cfg)); } else { LOGW(@"Default proxy is NOT a sip.linphone.org, aborting"); diff --git a/Classes/Utils/FileTransferDelegate.m b/Classes/Utils/FileTransferDelegate.m index be9a9da89..5194dd72c 100644 --- a/Classes/Utils/FileTransferDelegate.m +++ b/Classes/Utils/FileTransferDelegate.m @@ -47,6 +47,24 @@ static void linphone_iphone_file_transfer_recv(LinphoneChatMessage *message, con // we're finished, save the image and update the message UIImage *image = [UIImage imageWithData:thiz.data]; + if (!image) { + UIAlertController *errView = [UIAlertController + alertControllerWithTitle:NSLocalizedString(@"File download error", nil) + message:NSLocalizedString(@"Error while downloading the file.\n" + @"The file is probably emcrypted.\n" + @"Please retry to download this file after activating LIME.", + nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action){ + }]; + + [errView addAction:defaultAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + return; + } CFBridgingRetain(thiz); [[LinphoneManager.instance fileTransferDelegates] removeObject:thiz]; From 55dd071043b2f2915695db8bacc9405764cc9002 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 12 Jan 2017 15:42:24 +0100 Subject: [PATCH 016/180] Display LIME error message when app is in background --- Classes/LinphoneAppDelegate.m | 6 ++- Classes/LinphoneManager.m | 78 ++++++++++++++++++++++++++++------- 2 files changed, 66 insertions(+), 18 deletions(-) diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 23d683bf0..95e00897c 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -685,8 +685,8 @@ didInvalidatePushTokenForType:(NSString *)type { - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { - LOGD(@"UN : response recieved"); - LOGD(response.description); + LOGD(@"UN : response received"); + LOGD(response.description); NSString *callId = (NSString *)[response.notification.request.content.userInfo objectForKey:@"CallId"]; LinphoneCall *call = [LinphoneManager.instance callByCallId:callId]; @@ -816,6 +816,8 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response linphone_call_set_authentication_token_verified(call, YES); } }]; + } else if ([response.notification.request.content.categoryIdentifier isEqual:@"lime"]) { + return; } else { // Missed call [PhoneMainView.instance changeCurrentView:HistoryListView.compositeViewDescription]; } diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index b8d600512..b49c18cca 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -1363,27 +1363,63 @@ static void linphone_iphone_call_encryption_changed(LinphoneCore *lc, LinphoneCa #pragma mark - Message composition start - (void)alertLIME:(LinphoneChatRoom *)room { - UIAlertController *errView = [UIAlertController - alertControllerWithTitle:NSLocalizedString(@"LIME Error", nil) - message:NSLocalizedString( + if ([UIApplication sharedApplication].applicationState != UIApplicationStateBackground) { + UIAlertController *errView = [UIAlertController + alertControllerWithTitle:NSLocalizedString(@"LIME Error", nil) + message: + NSLocalizedString( @"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" @"Please call this contact and verify his ZRTP key before sending your messages.", nil) - preferredStyle:UIAlertControllerStyleAlert]; + preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" - style:UIAlertActionStyleDefault - handler:^(UIAlertAction *action){ - }]; - [errView addAction:defaultAction]; + UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action){ + }]; + [errView addAction:defaultAction]; - UIAlertAction *callAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Call", nil) - style:UIAlertActionStyleDefault - handler:^(UIAlertAction *action) { - [self call:linphone_chat_room_get_peer_address(room)]; - }]; - [errView addAction:callAction]; - [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + UIAlertAction *callAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Call", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action) { + [self call:linphone_chat_room_get_peer_address(room)]; + }]; + [errView addAction:callAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + } else { + if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { + UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init]; + content.title = NSLocalizedString(@"LIME error", nil); + content.body = + NSLocalizedString(@"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" + @"Please call this contact and verify his ZRTP key before sending your messages.", + nil); + content.categoryIdentifier = @"lime"; + + UNNotificationRequest *req = [UNNotificationRequest + requestWithIdentifier:@"lime_request" + content:content + trigger:[UNTimeIntervalNotificationTrigger triggerWithTimeInterval:1 repeats:NO]]; + [[UNUserNotificationCenter currentNotificationCenter] + addNotificationRequest:req + withCompletionHandler:^(NSError *_Nullable error) { + // Enable or disable features based on authorization. + if (error) { + LOGD(@"Error while adding notification request :"); + LOGD(error.description); + } + }]; + } else { + UILocalNotification *notification = [[UILocalNotification alloc] init]; + notification.repeatInterval = 0; + notification.alertTitle = NSLocalizedString(@"LIME error", nil); + notification.alertBody = + NSLocalizedString(@"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" + @"Please call this contact and verify his ZRTP key before sending your messages.", + nil); + [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; + } + } } - (void)onMessageComposeReceived:(LinphoneCore *)core forRoom:(LinphoneChatRoom *)room { @@ -1802,6 +1838,16 @@ static BOOL libStarted = FALSE; [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; } + // Disable notify policy + LinphoneImNotifPolicy *im_notif_policy; + im_notif_policy = linphone_core_get_im_notif_policy(theLinphoneCore); + if (im_notif_policy != NULL) { + /* The IM notification policy can be NULL at this point in case of remote provisioning. */ + linphone_im_notif_policy_clear(im_notif_policy); + linphone_im_notif_policy_set_send_is_composing(im_notif_policy, TRUE); + linphone_im_notif_policy_set_recv_is_composing(im_notif_policy, TRUE); + } + if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) { // go directly to bg mode [self enterBackgroundMode]; From da2945e6facfc1d5eee7a0a9de590ea699b82450 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 13 Jan 2017 09:59:19 +0100 Subject: [PATCH 017/180] Fix crash : national_significant number can be NULL --- Classes/AssistantView.m | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Classes/AssistantView.m b/Classes/AssistantView.m index 8787e3327..a15b88b13 100644 --- a/Classes/AssistantView.m +++ b/Classes/AssistantView.m @@ -873,10 +873,12 @@ static UICompositeViewDescription *compositeDescription = nil; UIView *usernameView = [self findView:ViewElement_UsernameFormView inView:self.contentView ofType:UIView.class]; usernameView.hidden = !usernameSwitch.isOn; - ((UITextField *)[self findView:ViewElement_Phone - inView:_linphoneLoginView - ofType:[UIAssistantTextField class]]) - .text = [NSString stringWithUTF8String:nationnal_significant_number]; + if (nationnal_significant_number) { + ((UITextField *)[self findView:ViewElement_Phone + inView:_linphoneLoginView + ofType:[UIAssistantTextField class]]) + .text = [NSString stringWithUTF8String:nationnal_significant_number]; + } ((UITextField *)[self findView:ViewElement_SMSCode inView:_createAccountActivateSMSView ofType:[UITextField class]]) @@ -886,8 +888,10 @@ static UICompositeViewDescription *compositeDescription = nil; [CountryListView countryWithIso:[NSString stringWithUTF8String:dialplan.iso_country_code]]; [self didSelectCountry:country]; // Reset phone number in account_creator to be sure to let the user retry - linphone_account_creator_set_phone_number(account_creator, nationnal_significant_number, - dialplan.ccc); + if (nationnal_significant_number) { + linphone_account_creator_set_phone_number(account_creator, nationnal_significant_number, + dialplan.ccc); + } }]; defaultAction.accessibilityLabel = @"PopUpResp"; From 988ab0e6098814044dad4175ada851862bed9d7f Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 13 Jan 2017 11:41:19 +0100 Subject: [PATCH 018/180] Update belle-sip --- submodules/belle-sip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/belle-sip b/submodules/belle-sip index 8d49d1853..70c6de05f 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 8d49d18532e1addebd21b61fc6a13920057bcd5b +Subproject commit 70c6de05fd4497dc8782abecaadf4bda8482873c From 17584b233c3f1dd62a5053edc14c31cc1d74adde Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 13 Jan 2017 14:58:31 +0100 Subject: [PATCH 019/180] Add Tester domain to log --- LiblinphoneTester/MasterView.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LiblinphoneTester/MasterView.m b/LiblinphoneTester/MasterView.m index 3bf42530f..2902da4f2 100644 --- a/LiblinphoneTester/MasterView.m +++ b/LiblinphoneTester/MasterView.m @@ -31,12 +31,12 @@ } - (void)setupLogging { - [Log enableLogs:0]; + [Log enableLogs:ORTP_DEBUG]; linphone_core_enable_log_collection(NO); } void tester_logs_handler(int level, const char *fmt, va_list args) { - linphone_iphone_log_handler(NULL, level, fmt, args); + linphone_iphone_log_handler("Tester", level, fmt, args); } - (void)viewDidLoad { From b3d16a298aae7d7e990a0fea65e1037e0701e953 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 16 Jan 2017 10:10:41 +0100 Subject: [PATCH 020/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index f9d6f3ae9..81e430c35 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit f9d6f3ae979153f3eb3498cce8a5fdacc084a32f +Subproject commit 81e430c352d9146e18c96188256005e7a3b10b2d From 5ea1419014b2274ecfe0be6b9e50b7f91b5e2449 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 16 Jan 2017 11:22:49 +0100 Subject: [PATCH 021/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 81e430c35..16dadb5f8 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 81e430c352d9146e18c96188256005e7a3b10b2d +Subproject commit 16dadb5f87dfb1f7bb5ef4c27b52937f738beb53 From 41ff67b3185ba664fb63da4b4aa2cd96244d7e7e Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 16 Jan 2017 12:01:46 +0100 Subject: [PATCH 022/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 16dadb5f8..6e898ccb0 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 16dadb5f87dfb1f7bb5ef4c27b52937f738beb53 +Subproject commit 6e898ccb0d06130a59fdb7ffc5a4d5bdec33d497 From f4220f4198618f609c3270e376a99a71c42ca4f6 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 17 Jan 2017 17:20:27 +0100 Subject: [PATCH 023/180] update linphone & belcard --- submodules/belcard | 2 +- submodules/linphone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/belcard b/submodules/belcard index f5a8603f8..ebd037585 160000 --- a/submodules/belcard +++ b/submodules/belcard @@ -1 +1 @@ -Subproject commit f5a8603f8e379486d3a4bfa4d74861b0a2d880dd +Subproject commit ebd037585965ce80f01be5290abc7e5455009eb8 diff --git a/submodules/linphone b/submodules/linphone index 6e898ccb0..c5bce292d 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 6e898ccb0d06130a59fdb7ffc5a4d5bdec33d497 +Subproject commit c5bce292df15812c68cc2c0487b836e28d76250c From 57ceffab874d7bd79de6f0f15350d268dfee2e98 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 17 Jan 2017 17:22:30 +0100 Subject: [PATCH 024/180] Fix crashes in FastAddressBook due to concurretn access --- Classes/ContactDetailsView.m | 4 +- Classes/Utils/FastAddressBook.m | 96 ++++++++++++++++++--------------- 2 files changed, 55 insertions(+), 45 deletions(-) diff --git a/Classes/ContactDetailsView.m b/Classes/ContactDetailsView.m index a82a227e9..ace16b470 100644 --- a/Classes/ContactDetailsView.m +++ b/Classes/ContactDetailsView.m @@ -44,7 +44,9 @@ #pragma mark - - (void)onAddressBookUpdate:(NSNotification *)k { - if (!inhibUpdate && ![_tableController isEditing]) { + if (!inhibUpdate && ![_tableController isEditing] && + (PhoneMainView.instance.currentView == self.compositeViewDescription) && + (_nameLabel.text == PhoneMainView.instance.currentName)) { [self resetData]; } } diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index b732151f5..0e4c5ffee 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -32,14 +32,16 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void *context); + (UIImage *)imageForContact:(Contact *)contact thumbnail:(BOOL)thumbnail { - UIImage *retImage = [contact avatar:thumbnail]; - if (retImage == nil) { - retImage = [UIImage imageNamed:@"avatar.png"]; + @synchronized(LinphoneManager.instance.fastAddressBook.addressBookMap) { + UIImage *retImage = [contact avatar:thumbnail]; + if (retImage == nil) { + retImage = [UIImage imageNamed:@"avatar.png"]; + } + if (retImage.size.width != retImage.size.height) { + retImage = [retImage squareCrop]; + } + return retImage; } - if (retImage.size.width != retImage.size.height) { - retImage = [retImage squareCrop]; - } - return retImage; } + (UIImage *)imageForAddress:(const LinphoneAddress *)addr thumbnail:(BOOL)thumbnail { @@ -159,7 +161,9 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info } ABAddressBookRegisterExternalChangeCallback(addressBook, sync_address_book, (__bridge void *)(weakSelf)); - [weakSelf loadData]; + dispatch_async(dispatch_get_main_queue(), ^(void) { + [weakSelf loadData]; + }); }); } else { @@ -312,54 +316,58 @@ void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void - (int)removeContact:(Contact *)contact { // Remove contact from book - if (contact.person && ABRecordGetRecordID(contact.person) != kABRecordInvalidID) { - CFErrorRef error = NULL; - ABAddressBookRemoveRecord(addressBook, contact.person, (CFErrorRef *)&error); - if (error != NULL) { - LOGE(@"Remove contact %p: Fail(%@)", contact, [(__bridge NSError *)error localizedDescription]); - } else { - LOGI(@"Remove contact %p: Success!", contact); - } - contact = NULL; - // Save address book - error = NULL; - ABAddressBookSave(addressBook, (CFErrorRef *)&error); + @synchronized(_addressBookMap) { + if (contact.person && ABRecordGetRecordID(contact.person) != kABRecordInvalidID) { + CFErrorRef error = NULL; + ABAddressBookRemoveRecord(addressBook, contact.person, (CFErrorRef *)&error); + if (error != NULL) { + LOGE(@"Remove contact %p: Fail(%@)", contact, [(__bridge NSError *)error localizedDescription]); + } else { + LOGI(@"Remove contact %p: Success!", contact); + } + contact = NULL; + // Save address book + error = NULL; + ABAddressBookSave(addressBook, (CFErrorRef *)&error); - // TODO: stop reloading the whole address book but just clear the removed entries! - [self loadData]; + // TODO: stop reloading the whole address book but just clear the removed entries! + [self loadData]; - if (error != NULL) { - LOGE(@"Save AddressBook: Fail(%@)", [(__bridge NSError *)error localizedDescription]); - } else { - LOGI(@"Save AddressBook: Success!"); + if (error != NULL) { + LOGE(@"Save AddressBook: Fail(%@)", [(__bridge NSError *)error localizedDescription]); + } else { + LOGI(@"Save AddressBook: Success!"); + } + return error ? -1 : 0; } - return error ? -1 : 0; + return -2; } - return -2; } - (BOOL)saveContact:(Contact *)contact { - CFErrorRef error = NULL; - if (ABRecordGetRecordID(contact.person) == kABRecordInvalidID) { - if (ABAddressBookAddRecord(addressBook, contact.person, (CFErrorRef *)&error)) { - LOGI(@"Add contact %p: Success!", contact.person); + @synchronized(_addressBookMap) { + CFErrorRef error = NULL; + if (ABRecordGetRecordID(contact.person) == kABRecordInvalidID) { + if (ABAddressBookAddRecord(addressBook, contact.person, (CFErrorRef *)&error)) { + LOGI(@"Add contact %p: Success!", contact.person); + } else { + LOGE(@"Add contact %p: Fail(%@)", contact.person, [(__bridge NSError *)error localizedDescription]); + return FALSE; + } + } + + // Save address book + error = NULL; + if (ABAddressBookSave(addressBook, &error)) { + LOGI(@"Save AddressBook: Success!"); } else { - LOGE(@"Add contact %p: Fail(%@)", contact.person, [(__bridge NSError *)error localizedDescription]); + LOGE(@"Save AddressBook: Fail(%@)", [(__bridge NSError *)error localizedDescription]); return FALSE; } - } + [self reload]; - // Save address book - error = NULL; - if (ABAddressBookSave(addressBook, &error)) { - LOGI(@"Save AddressBook: Success!"); - } else { - LOGE(@"Save AddressBook: Fail(%@)", [(__bridge NSError *)error localizedDescription]); - return FALSE; + return error == NULL; } - [self reload]; - - return error == NULL; } @end From 776c2a33e972e9d3c219695e77db3e1666f4d757 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 19 Jan 2017 09:25:42 +0100 Subject: [PATCH 025/180] fix error in phonemainview switch case --- Classes/PhoneMainView.m | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index c7b461f27..10f865e62 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -400,6 +400,7 @@ static RootViewManager *rootViewManagerInstance = nil; case LinphoneCallEarlyUpdatedByRemote: case LinphoneCallEarlyUpdating: case LinphoneCallIdle: + break; case LinphoneCallOutgoingEarlyMedia: case LinphoneCallOutgoingProgress: { if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max && call && From 8ba159d035caf698b5bfa8e2708309051ced9e87 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 19 Jan 2017 16:55:30 +0100 Subject: [PATCH 026/180] update linphone belle-sip bctoolbox --- submodules/bctoolbox | 2 +- submodules/belle-sip | 2 +- submodules/linphone | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/submodules/bctoolbox b/submodules/bctoolbox index 7254fe94e..0e43266ed 160000 --- a/submodules/bctoolbox +++ b/submodules/bctoolbox @@ -1 +1 @@ -Subproject commit 7254fe94e7155f0164fca177f8bf54ab82b76e84 +Subproject commit 0e43266edc3360de55113c540444fb3fcbc44cf3 diff --git a/submodules/belle-sip b/submodules/belle-sip index 70c6de05f..13e7e7d93 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 70c6de05fd4497dc8782abecaadf4bda8482873c +Subproject commit 13e7e7d933daeb697946816f5c81a355bf47c219 diff --git a/submodules/linphone b/submodules/linphone index c5bce292d..eb2148298 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit c5bce292df15812c68cc2c0487b836e28d76250c +Subproject commit eb21482982c81837afedc60c21d0bc86a29911b5 From 5767baa42490b880f3895bfad15fe4fd852b5059 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 19 Jan 2017 17:52:58 +0100 Subject: [PATCH 027/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index eb2148298..88c467d68 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit eb21482982c81837afedc60c21d0bc86a29911b5 +Subproject commit 88c467d684d3eecea393a69b63f05fa9258e3e57 From 7241e1efa0016ed3c22f54b6d348b889f1c4d931 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 20 Jan 2017 10:16:16 +0100 Subject: [PATCH 028/180] update submodule linphone --- submodules/bctoolbox | 2 +- submodules/linphone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/bctoolbox b/submodules/bctoolbox index 0e43266ed..865469402 160000 --- a/submodules/bctoolbox +++ b/submodules/bctoolbox @@ -1 +1 @@ -Subproject commit 0e43266edc3360de55113c540444fb3fcbc44cf3 +Subproject commit 8654694023cc3d44688300cb0f41f591e12a5c65 diff --git a/submodules/linphone b/submodules/linphone index 88c467d68..5f9818720 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 88c467d684d3eecea393a69b63f05fa9258e3e57 +Subproject commit 5f9818720232219faba85c45879484bd021f355a From 55294466673f46381e3ebfa344a1f1b5e1c23f0d Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 20 Jan 2017 10:53:41 +0100 Subject: [PATCH 029/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 5f9818720..ec7fd6f61 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 5f9818720232219faba85c45879484bd021f355a +Subproject commit ec7fd6f617f3c0df4aa649973e3d2fe205a7b7b0 From 49bcc8a606224382cf370cc60056f658f016012e Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 20 Jan 2017 11:03:45 +0100 Subject: [PATCH 030/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index ec7fd6f61..477a3266e 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit ec7fd6f617f3c0df4aa649973e3d2fe205a7b7b0 +Subproject commit 477a3266e9a0506ab87739a0f3cc646ecc632df0 From 05f5d96ee1a7804e648683468fb5c3d4e9f79f1d Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 20 Jan 2017 11:13:00 +0100 Subject: [PATCH 031/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 477a3266e..eeebd4aa4 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 477a3266e9a0506ab87739a0f3cc646ecc632df0 +Subproject commit eeebd4aa4f5dc246ee2e4ec602e2d7e7d68b5a6b From b4a7274e5fdaa3d76665d605067fb42c390e4c61 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 20 Jan 2017 16:00:37 +0100 Subject: [PATCH 032/180] bctbx & linphone --- submodules/bctoolbox | 2 +- submodules/linphone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/bctoolbox b/submodules/bctoolbox index 865469402..b2a91b1f5 160000 --- a/submodules/bctoolbox +++ b/submodules/bctoolbox @@ -1 +1 @@ -Subproject commit 8654694023cc3d44688300cb0f41f591e12a5c65 +Subproject commit b2a91b1f58ecf0941b3c599a0926a2940fd236b6 diff --git a/submodules/linphone b/submodules/linphone index eeebd4aa4..54081aaee 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit eeebd4aa4f5dc246ee2e4ec602e2d7e7d68b5a6b +Subproject commit 54081aaee0b550113d5d39050028bb774ea98e2c From d230b892e281bf5a478b4ca56107007a982eeea2 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 20 Jan 2017 16:48:19 +0100 Subject: [PATCH 033/180] Display app name in callkit --- Classes/ProviderDelegate.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Classes/ProviderDelegate.m b/Classes/ProviderDelegate.m index 97bdf5961..edd8cf534 100644 --- a/Classes/ProviderDelegate.m +++ b/Classes/ProviderDelegate.m @@ -31,7 +31,8 @@ } - (void)config { - CXProviderConfiguration *config = [[CXProviderConfiguration alloc] initWithLocalizedName:@"Linphone"]; + CXProviderConfiguration *config = [[CXProviderConfiguration alloc] + initWithLocalizedName:[NSBundle.mainBundle objectForInfoDictionaryKey:@"CFBundleDisplayName"]]; config.ringtoneSound = @"shortring.caf"; config.supportsVideo = FALSE; config.iconTemplateImageData = UIImagePNGRepresentation([UIImage imageNamed:@"callkit_logo"]); From 489ebd450b6fdd4777aa98ad1356f3a767d443a3 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 23 Jan 2017 11:09:50 +0100 Subject: [PATCH 034/180] Change log management of liblinphonetester --- LiblinphoneTester/MasterView.m | 18 +++++++++++++----- TestsLiblinphone/LinphoneTester_Tests.m | 9 +++++---- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/LiblinphoneTester/MasterView.m b/LiblinphoneTester/MasterView.m index 2902da4f2..8fe3cf8d9 100644 --- a/LiblinphoneTester/MasterView.m +++ b/LiblinphoneTester/MasterView.m @@ -32,7 +32,7 @@ - (void)setupLogging { [Log enableLogs:ORTP_DEBUG]; - linphone_core_enable_log_collection(NO); + linphone_core_enable_log_collection(YES); } void tester_logs_handler(int level, const char *fmt, va_list args) { @@ -45,15 +45,16 @@ void tester_logs_handler(int level, const char *fmt, va_list args) { self.detailViewController = (DetailTableView *)[[self.splitViewController.viewControllers lastObject] topViewController]; - [self setupLogging]; + //[self setupLogging]; liblinphone_tester_keep_accounts(TRUE); bundlePath = [[NSBundle mainBundle] bundlePath]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); writablePath = [paths objectAtIndex:0]; - - bc_tester_init(tester_logs_handler, ORTP_MESSAGE, ORTP_ERROR, "rcfiles"); - liblinphone_tester_add_suites(); + liblinphone_tester_init(NULL); + // bc_tester_init(tester_logs_handler, ORTP_MESSAGE, ORTP_ERROR, "rcfiles"); + // liblinphone_tester_add_suites(); + linphone_core_set_log_level_mask((OrtpLogLevel)(ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL)); bc_tester_set_resource_dir_prefix([bundlePath UTF8String]); bc_tester_set_writable_dir_prefix([writablePath UTF8String]); @@ -61,6 +62,13 @@ void tester_logs_handler(int level, const char *fmt, va_list args) { LOGI(@"Bundle path: %@", bundlePath); LOGI(@"Writable path: %@", writablePath); + char *xmlFile = bc_tester_file("LibLinphoneIOS.xml"); + char *args[] = {"--xml-file", xmlFile}; + bc_tester_parse_args(2, args, 0); + + char *logFile = bc_tester_file("LibLinphoneIOS.txt"); + liblinphone_tester_set_log_file(logFile); + liblinphonetester_ipv6 = true; int count = bc_tester_nb_suites(); diff --git a/TestsLiblinphone/LinphoneTester_Tests.m b/TestsLiblinphone/LinphoneTester_Tests.m index b9dfa030c..484f0255f 100644 --- a/TestsLiblinphone/LinphoneTester_Tests.m +++ b/TestsLiblinphone/LinphoneTester_Tests.m @@ -27,9 +27,10 @@ void dummy_logger(const char *domain, OrtpLogLevel lev, const char *fmt, va_list + (void)initialize { // turn off ALL logs because xcodebuild has problems with it - linphone_core_enable_logs_with_cb(dummy_logger); - - for (int i = 0; i < bc_tester_nb_suites(); i++) { + // linphone_core_enable_logs_with_cb(dummy_logger); + bc_tester_start(NULL); + bc_tester_uninit(); + /*for (int i = 0; i < bc_tester_nb_suites(); i++) { const char *suite = bc_tester_suite_name(i); LOGE(@"suite = %s", suite); int test_count = bc_tester_nb_tests(suite); @@ -53,7 +54,7 @@ void dummy_logger(const char *domain, OrtpLogLevel lev, const char *fmt, va_list } } } - } + }*/ } - (void)testForSuite:(NSString *)suite andTest:(NSString *)test { From ce131a39c636c8bbf068e4455c08bf957c35f916 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 23 Jan 2017 12:00:37 +0100 Subject: [PATCH 035/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 54081aaee..08b3aa6e5 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 54081aaee0b550113d5d39050028bb774ea98e2c +Subproject commit 08b3aa6e5222635fa8ad1a47d18bbecd00d9139e From e54292b22958b5f53a568107c6e201491a70bd2b Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 23 Jan 2017 12:51:47 +0100 Subject: [PATCH 036/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 08b3aa6e5..492152494 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 08b3aa6e5222635fa8ad1a47d18bbecd00d9139e +Subproject commit 4921524942d9012150850223ef7aa76e39708aa5 From c1b584fa99c40d073afd456566ba217b59d0790e Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 23 Jan 2017 13:58:27 +0100 Subject: [PATCH 037/180] linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 492152494..19966ccbd 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 4921524942d9012150850223ef7aa76e39708aa5 +Subproject commit 19966ccbd4b6e72f429c3733f66dfd5dfd4ad441 From 8aca5a7e28d9ab0ac054e3061b05e79942387bf6 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 23 Jan 2017 15:46:51 +0100 Subject: [PATCH 038/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 19966ccbd..1ca49fb4b 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 19966ccbd4b6e72f429c3733f66dfd5dfd4ad441 +Subproject commit 1ca49fb4bf79c1c2a3ffe55e5e9d9994606419c1 From 50950337a75b47f3b9cc31d98644c3493aa5afdf Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 30 Jan 2017 15:04:05 +0100 Subject: [PATCH 039/180] Refactor of CallKit --- Classes/LinphoneManager.h | 3 +- Classes/LinphoneManager.m | 38 +++++----- Classes/LinphoneUI/UIPauseButton.m | 81 +++----------------- Classes/PhoneMainView.m | 58 +++++++-------- Classes/ProviderDelegate.h | 4 + Classes/ProviderDelegate.m | 107 +++++++++++++++------------ Classes/Utils/FileTransferDelegate.m | 2 +- 7 files changed, 122 insertions(+), 171 deletions(-) diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h index 614dddc5d..d619c6939 100644 --- a/Classes/LinphoneManager.h +++ b/Classes/LinphoneManager.h @@ -158,7 +158,8 @@ typedef struct _LinphoneManagerSounds { + (NSString*)cacheDirectory; - (void)acceptCall:(LinphoneCall *)call evenWithVideo:(BOOL)video; -- (BOOL)call:(const LinphoneAddress *)address; +- (void)call:(const LinphoneAddress *)address; +- (BOOL)doCall:(const LinphoneAddress *)iaddr; +(id)getMessageAppDataForKey:(NSString*)key inMessage:(LinphoneChatMessage*)msg; +(void)setValueInMessageAppData:(id)value forKey:(NSString*)key inMessage:(LinphoneChatMessage*)msg; diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index b49c18cca..87bfe5172 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -237,7 +237,6 @@ struct codec_name_pref_table codec_pref_table[] = {{"speex", 8000, "speex_8k_pre - (id)init { if ((self = [super init])) { - AudioSessionInitialize(NULL, NULL, NULL, NULL); [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(audioRouteChangeListenerCallback:) name:AVAudioSessionRouteChangeNotification @@ -2262,22 +2261,7 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { LinphoneCall *c = linphone_core_get_current_call(theLinphoneCore); LOGI(@"Sound interruption detected!"); if (c && linphone_call_get_state(c) == LinphoneCallStreamsRunning) { - if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { - NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids - objectForKey:[NSString - stringWithUTF8String:linphone_call_log_get_call_id(linphone_call_get_call_log(c))]]; - if (!uuid) { - linphone_core_pause_call(theLinphoneCore, c); - return; - } - CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:YES]; - CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; - [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr - completion:^(NSError *err){ - }]; - } else { - linphone_core_pause_call(theLinphoneCore, c); - } + linphone_core_pause_call(theLinphoneCore, c); } } @@ -2452,7 +2436,25 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { linphone_core_accept_call_with_params(theLinphoneCore, call, lcallParams); } -- (BOOL)call:(const LinphoneAddress *)iaddr { +- (void)call:(const LinphoneAddress *)iaddr { + if (linphone_core_get_calls_nb(theLinphoneCore) < 1 && + floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { + NSUUID *uuid = [NSUUID UUID]; + [LinphoneManager.instance.providerDelegate.uuids setObject:uuid forKey:@""]; + LinphoneManager.instance.providerDelegate.pendingAddr = linphone_address_clone(iaddr); + NSString *address = [FastAddressBook displayNameForAddress:iaddr]; + CXHandle *handle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:address]; + CXStartCallAction *act = [[CXStartCallAction alloc] initWithCallUUID:uuid handle:handle]; + CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; + [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr + completion:^(NSError *err){ + }]; + } else { + [self doCall:iaddr]; + } +} + +- (BOOL)doCall:(const LinphoneAddress *)iaddr { // First verify that network is available, abort otherwise. if (!linphone_core_is_network_reachable(theLinphoneCore)) { UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Network Error", nil) diff --git a/Classes/LinphoneUI/UIPauseButton.m b/Classes/LinphoneUI/UIPauseButton.m index 9ca7b0689..9e0254c3c 100644 --- a/Classes/LinphoneUI/UIPauseButton.m +++ b/Classes/LinphoneUI/UIPauseButton.m @@ -82,22 +82,7 @@ switch (type) { case UIPauseButtonType_Call: { if (call != nil) { - if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { - NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids - objectForKey:[NSString stringWithUTF8String:linphone_call_log_get_call_id( - linphone_call_get_call_log(call))]]; - if (!uuid) { - linphone_core_pause_call(LC, call); - return; - } - CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:YES]; - CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; - [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr - completion:^(NSError *err){ - }]; - } else { - linphone_core_pause_call(LC, call); - } + linphone_core_pause_call(LC, call); } else { LOGW(@"Cannot toggle pause buttton, because no current call"); } @@ -113,22 +98,7 @@ case UIPauseButtonType_CurrentCall: { LinphoneCall *currentCall = [UIPauseButton getCall]; if (currentCall != nil) { - if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { - NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids - objectForKey:[NSString stringWithUTF8String:linphone_call_log_get_call_id( - linphone_call_get_call_log(currentCall))]]; - if (!uuid) { - linphone_core_pause_call(LC, currentCall); - return; - } - CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:YES]; - CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; - [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr - completion:^(NSError *err){ - }]; - } else { - linphone_core_pause_call(LC, currentCall); - } + linphone_core_pause_call(LC, currentCall); } else { LOGW(@"Cannot toggle pause buttton, because no current call"); } @@ -141,22 +111,7 @@ switch (type) { case UIPauseButtonType_Call: { if (call != nil) { - if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { - NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids - objectForKey:[NSString stringWithUTF8String:linphone_call_log_get_call_id( - linphone_call_get_call_log(call))]]; - if (!uuid) { - linphone_core_resume_call(LC, call); - return; - } - CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:NO]; - CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; - [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr - completion:^(NSError *err){ - }]; - } else { - linphone_core_resume_call(LC, call); - } + linphone_core_resume_call(LC, call); } else { LOGW(@"Cannot toggle pause buttton, because no current call"); } @@ -164,11 +119,9 @@ } case UIPauseButtonType_Conference: { if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { - NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids allValues].firstObject; + NSString *key = (NSString *)[LinphoneManager.instance.providerDelegate.uuids allKeys][0]; + NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids objectForKey:key]; if (!uuid) { - linphone_core_enter_conference(LC); - // Fake event - [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneCallUpdate object:self]; return; } CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:NO]; @@ -176,31 +129,15 @@ [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr completion:^(NSError *err){ }]; - } else { - linphone_core_enter_conference(LC); - // Fake event - [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneCallUpdate object:self]; } + linphone_core_enter_conference(LC); + // Fake event + [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneCallUpdate object:self]; break; } case UIPauseButtonType_CurrentCall: { LinphoneCall *currentCall = [UIPauseButton getCall]; - if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { - NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids - objectForKey:[NSString stringWithUTF8String:linphone_call_log_get_call_id( - linphone_call_get_call_log(currentCall))]]; - if (!uuid) { - linphone_core_resume_call(LC, currentCall); - return; - } - CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:NO]; - CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; - [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr - completion:^(NSError *err){ - }]; - } else { - linphone_core_resume_call(LC, currentCall); - } + linphone_core_resume_call(LC, currentCall); break; } } diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index 10f865e62..e32261420 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -19,7 +19,6 @@ #import #import - #import "LinphoneAppDelegate.h" #import "PhoneMainView.h" @@ -366,6 +365,7 @@ static RootViewManager *rootViewManagerInstance = nil; } case LinphoneCallError: { [self displayCallError:call message:message]; + break; } case LinphoneCallEnd: { const MSList *calls = linphone_core_get_calls(LC); @@ -376,23 +376,7 @@ static RootViewManager *rootViewManagerInstance = nil; [self popCurrentView]; } } else { - if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { - NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids - objectForKey:[NSString - stringWithUTF8String:linphone_call_log_get_call_id(linphone_call_get_call_log( - (LinphoneCall *)calls->data))]]; - if (!uuid) { - linphone_core_resume_call(LC, (LinphoneCall *)calls->data); - return; - } - CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:NO]; - CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; - [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr - completion:^(NSError *err){ - }]; - } else { - linphone_core_resume_call(LC, (LinphoneCall *)calls->data); - } + linphone_core_resume_call(LC, (LinphoneCall *)calls->data); [self changeCurrentView:CallView.compositeViewDescription]; } break; @@ -405,20 +389,17 @@ static RootViewManager *rootViewManagerInstance = nil; case LinphoneCallOutgoingProgress: { if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max && call && (linphone_core_get_calls_nb(LC) < 2)) { - // Create CallKit Call + // Link call ID to UUID NSString *callId = [NSString stringWithUTF8String:linphone_call_log_get_call_id(linphone_call_get_call_log(call))]; - NSUUID *uuid = [NSUUID UUID]; - [LinphoneManager.instance.providerDelegate.uuids setObject:uuid forKey:callId]; - [LinphoneManager.instance.providerDelegate.calls setObject:callId forKey:uuid]; - NSString *address = [FastAddressBook displayNameForAddress:linphone_call_get_remote_address(call)]; - CXHandle *handle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:address]; - CXStartCallAction *act = [[CXStartCallAction alloc] initWithCallUUID:uuid handle:handle]; - CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; - [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr - completion:^(NSError *err){ - }]; + NSUUID *uuid = [LinphoneManager.instance.providerDelegate.uuids objectForKey:@""]; + if (uuid) { + [LinphoneManager.instance.providerDelegate.uuids removeObjectForKey:@""]; + [LinphoneManager.instance.providerDelegate.uuids setObject:uuid forKey:callId]; + [LinphoneManager.instance.providerDelegate.calls setObject:callId forKey:uuid]; + } } + break; } case LinphoneCallOutgoingRinging: { if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max && call) { @@ -440,12 +421,29 @@ static RootViewManager *rootViewManagerInstance = nil; [LinphoneManager.instance.providerDelegate.provider reportCallWithUUID:uuid updated:update]; } } + break; } case LinphoneCallPaused: case LinphoneCallPausing: case LinphoneCallRefered: case LinphoneCallReleased: - case LinphoneCallResuming: + break; + case LinphoneCallResuming: { + if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max && call) { + NSUUID *uuid = (NSUUID *)[LinphoneManager.instance.providerDelegate.uuids + objectForKey:[NSString stringWithUTF8String:linphone_call_log_get_call_id( + linphone_call_get_call_log(call))]]; + if (!uuid) { + return; + } + CXSetHeldCallAction *act = [[CXSetHeldCallAction alloc] initWithCallUUID:uuid onHold:NO]; + CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; + [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr + completion:^(NSError *err){ + }]; + } + break; + } case LinphoneCallUpdating: break; } diff --git a/Classes/ProviderDelegate.h b/Classes/ProviderDelegate.h index 9652be9d2..d2a66344f 100644 --- a/Classes/ProviderDelegate.h +++ b/Classes/ProviderDelegate.h @@ -18,9 +18,13 @@ @property CXCallController *controller; @property NSMutableDictionary *calls; @property NSMutableDictionary *uuids; +@property LinphoneCall *pendingCall; +@property LinphoneAddress *pendingAddr; +@property BOOL pendingCallVideo; - (void)reportIncomingCallwithUUID:(NSUUID *)uuid handle:(NSString *)handle video:(BOOL)video; - (void)config; +- (void)configAudioSession:(AVAudioSession *)audioSession; @end #endif /* ProviderDelegate_h */ diff --git a/Classes/ProviderDelegate.m b/Classes/ProviderDelegate.m index edd8cf534..fd058527f 100644 --- a/Classes/ProviderDelegate.m +++ b/Classes/ProviderDelegate.m @@ -19,7 +19,9 @@ self = [super init]; self.calls = [[NSMutableDictionary alloc] init]; self.uuids = [[NSMutableDictionary alloc] init]; - + self.pendingCall = NULL; + self.pendingAddr = NULL; + self.pendingCallVideo = FALSE; CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()]; [callController.callObserver setDelegate:self queue:dispatch_get_main_queue()]; self.controller = callController; @@ -46,6 +48,13 @@ [self.provider setDelegate:self queue:dispatch_get_main_queue()]; } +- (void)configAudioSession:(AVAudioSession *)audioSession { + [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; + [audioSession setMode:AVAudioSessionModeVoiceChat error:nil]; + double sampleRate = 44100.0; + [audioSession setPreferredSampleRate:sampleRate error:nil]; +} + - (void)reportIncomingCallwithUUID:(NSUUID *)uuid handle:(NSString *)handle video:(BOOL)video { // Create update to describe the incoming call and caller CXCallUpdate *update = [[CXCallUpdate alloc] init]; @@ -56,36 +65,11 @@ update.supportsUngrouping = TRUE; update.hasVideo = video; - LOGD(@"configuring audio session"); - AVAudioSession *audioSession = [AVAudioSession sharedInstance]; - [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; - [audioSession setMode:AVAudioSessionModeVoiceChat error:nil]; - - double sampleRate = 44100.0; - [audioSession setPreferredSampleRate:sampleRate error:nil]; - - NSTimeInterval bufferDuration = .005; - [audioSession setPreferredIOBufferDuration:bufferDuration error:nil]; - LOGD(@"Activating audio session"); - [audioSession setActive:TRUE error:nil]; - // Report incoming call to system LOGD(@"CallKit: report new incoming call"); [self.provider reportNewIncomingCallWithUUID:uuid update:update completion:^(NSError *error) { - LOGD(@"configuring audio session"); - AVAudioSession *audioSession = [AVAudioSession sharedInstance]; - [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; - [audioSession setMode:AVAudioSessionModeVoiceChat error:nil]; - - double sampleRate = 44100.0; - [audioSession setPreferredSampleRate:sampleRate error:nil]; - - NSTimeInterval bufferDuration = .005; - [audioSession setPreferredIOBufferDuration:bufferDuration error:nil]; - LOGD(@"Activating audio session"); - [audioSession setActive:TRUE error:nil]; }]; } @@ -93,8 +77,9 @@ - (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action { LOGD(@"CallKit : Answering Call"); - NSUUID *uuid = action.callUUID; + [self configAudioSession:[AVAudioSession sharedInstance]]; [action fulfill]; + NSUUID *uuid = action.callUUID; NSString *callID = [self.calls objectForKey:uuid]; // first, make sure this callid is not already involved in a call LinphoneCall *call = [LinphoneManager.instance callByCallId:callID]; @@ -102,7 +87,8 @@ BOOL video = (!([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) && linphone_core_get_video_policy(LC)->automatically_accept && linphone_call_params_video_enabled(linphone_call_get_remote_params((LinphoneCall *)call))); - [LinphoneManager.instance acceptCall:(LinphoneCall *)call evenWithVideo:video]; + self.pendingCall = call; + self.pendingCallVideo = video; return; }; } @@ -110,19 +96,25 @@ - (void)provider:(CXProvider *)provider performStartCallAction:(CXStartCallAction *)action { LOGD(@"CallKit : Starting Call"); // To restart Audio Unit - AVAudioSession *audioSession = [AVAudioSession sharedInstance]; - [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; - [audioSession setMode:AVAudioSessionModeVoiceChat error:nil]; - double sampleRate = 44100.0; - [audioSession setPreferredSampleRate:sampleRate error:nil]; - NSTimeInterval bufferDuration = .005; - [audioSession setPreferredIOBufferDuration:bufferDuration error:nil]; - [audioSession setActive:TRUE error:nil]; + [self configAudioSession:[AVAudioSession sharedInstance]]; [action fulfill]; + NSUUID *uuid = action.callUUID; + + NSString *callID = [self.calls objectForKey:uuid]; // first, make sure this callid is not already involved in a call + LinphoneCall *call; + if (![callID isEqualToString:@""]) { + call = linphone_core_get_current_call(LC); + } else { + call = [LinphoneManager.instance callByCallId:callID]; + } + if (call != NULL) { + _pendingCall = call; + } } - (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action { LOGD(@"CallKit : Ending the Call"); + [action fulfill]; if (linphone_core_is_in_conference(LC)) { LinphoneManager.instance.conf = TRUE; linphone_core_terminate_conference(LC); @@ -137,7 +129,6 @@ linphone_core_terminate_call(LC, (LinphoneCall *)call); } } - [action fulfill]; } - (void)provider:(CXProvider *)provider performSetMutedCallAction:(nonnull CXSetMutedCallAction *)action { @@ -150,17 +141,7 @@ - (void)provider:(CXProvider *)provider performSetHeldCallAction:(nonnull CXSetHeldCallAction *)action { LOGD(@"CallKit : Call paused status changed"); - // To restart Audio Unit - AVAudioSession *audioSession = [AVAudioSession sharedInstance]; - [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; - [audioSession setMode:AVAudioSessionModeVoiceChat error:nil]; - double sampleRate = 44100.0; - [audioSession setPreferredSampleRate:sampleRate error:nil]; - NSTimeInterval bufferDuration = .005; - [audioSession setPreferredIOBufferDuration:bufferDuration error:nil]; - [audioSession setActive:TRUE error:nil]; [action fulfill]; - if (linphone_core_is_in_conference(LC) && action.isOnHold) { linphone_core_leave_conference(LC); [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneCallUpdate object:self]; @@ -183,19 +164,20 @@ if (action.isOnHold) { linphone_core_pause_call(LC, (LinphoneCall *)call); } else { + [self configAudioSession:[AVAudioSession sharedInstance]]; if (linphone_core_get_conference(LC)) { linphone_core_enter_conference(LC); [NSNotificationCenter.defaultCenter postNotificationName:kLinphoneCallUpdate object:self]; } else { - linphone_core_resume_call(LC, (LinphoneCall *)call); + _pendingCall = call; } } } } - (void)provider:(CXProvider *)provider performPlayDTMFCallAction:(CXPlayDTMFCallAction *)action { - [action fulfill]; LOGD(@"CallKit : playing DTMF"); + [action fulfill]; NSUUID *call_uuid = action.callUUID; NSString *callID = [self.calls objectForKey:call_uuid]; LinphoneCall *call = [LinphoneManager.instance callByCallId:callID]; @@ -205,6 +187,33 @@ - (void)provider:(CXProvider *)provider didActivateAudioSession:(AVAudioSession *)audioSession { LOGD(@"CallKit : Audio session activated"); + // Now we can (re)start the call + if (_pendingCall) { + LinphoneCallState state = linphone_call_get_state(_pendingCall); + switch (state) { + case LinphoneCallIncomingReceived: + [LinphoneManager.instance acceptCall:(LinphoneCall *)_pendingCall evenWithVideo:_pendingCallVideo]; + break; + case LinphoneCallPaused: + linphone_core_resume_call(LC, (LinphoneCall *)_pendingCall); + break; + case LinphoneCallStreamsRunning: + // May happen when multiple calls + break; + default: + break; + } + } else { + if (_pendingAddr) { + [LinphoneManager.instance doCall:_pendingAddr]; + } else { + LOGE(@"CallKit : No pending call"); + } + } + + _pendingCall = NULL; + _pendingAddr = NULL; + _pendingCallVideo = FALSE; } - (void)provider:(CXProvider *)provider didDeactivateAudioSession:(nonnull AVAudioSession *)audioSession { diff --git a/Classes/Utils/FileTransferDelegate.m b/Classes/Utils/FileTransferDelegate.m index 5194dd72c..2e335c885 100644 --- a/Classes/Utils/FileTransferDelegate.m +++ b/Classes/Utils/FileTransferDelegate.m @@ -51,7 +51,7 @@ static void linphone_iphone_file_transfer_recv(LinphoneChatMessage *message, con UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"File download error", nil) message:NSLocalizedString(@"Error while downloading the file.\n" - @"The file is probably emcrypted.\n" + @"The file is probably encrypted.\n" @"Please retry to download this file after activating LIME.", nil) preferredStyle:UIAlertControllerStyleAlert]; From d8be8c23431b2c18f899b491e9038482ce68f649 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 30 Jan 2017 15:28:06 +0100 Subject: [PATCH 040/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 1ca49fb4b..c7cc6e3bd 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 1ca49fb4bf79c1c2a3ffe55e5e9d9994606419c1 +Subproject commit c7cc6e3bd5a98a42e83e0d42c3915232eadf147e From f7478b7a413cff21f493b913fd55a8ef7afd8553 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 30 Jan 2017 17:05:04 +0100 Subject: [PATCH 041/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index c7cc6e3bd..8ba17eddf 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit c7cc6e3bd5a98a42e83e0d42c3915232eadf147e +Subproject commit 8ba17eddf4bfa26bce56719383f08dc3984f95dd From afebf7401893144127411dc4b8c7edeae56a8f3c Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 31 Jan 2017 11:59:04 +0100 Subject: [PATCH 042/180] update belle-sip --- submodules/belle-sip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/belle-sip b/submodules/belle-sip index 13e7e7d93..29aded981 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 13e7e7d933daeb697946816f5c81a355bf47c219 +Subproject commit 29aded981b43ac8ba3bddc5a181ce478ecd2d277 From d5fbc6ef18fe13cc4530db221ca4434a9f67bc69 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 31 Jan 2017 13:51:25 +0100 Subject: [PATCH 043/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 8ba17eddf..289917ab6 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 8ba17eddf4bfa26bce56719383f08dc3984f95dd +Subproject commit 289917ab62fb8d07d15abe6ccc1ecc35752d1265 From de1e90b9698245bf9ed3ca9f4c85b1e53fccdee2 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 31 Jan 2017 16:32:45 +0100 Subject: [PATCH 044/180] update linphone --- Resources/images/lime_ko.png | Bin 0 -> 452 bytes Resources/images/lime_ko@2x.png | Bin 0 -> 1279 bytes submodules/linphone | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 Resources/images/lime_ko.png create mode 100644 Resources/images/lime_ko@2x.png diff --git a/Resources/images/lime_ko.png b/Resources/images/lime_ko.png new file mode 100644 index 0000000000000000000000000000000000000000..915e8677376c1a89d766c2d6acf1fb59b167cc7c GIT binary patch literal 452 zcmV;#0XzPQP)Q0P9z3I5Ji23h`|t>h+v_WjUw1sC!fJ8g@`0Y8oM+K zTBZ=hCZ9lvt&IV}PKiV^7H=+DmzzKamV0N;nb|Y5yEGQu4mN|`;8*ZIxY6>)lH9E~ z_=F$0hX>flR`9ChwmU5b5j^d|mJ_>K2fOdr;B{}+QS5E-u@8vgibE`zkE-S%n8Ky> zr-PY8a!+T0v)CyyYQA9CsK`;)alQ{S=^?&gFA3vKtA8+&|99}B>us1ao&?XDp-l!W z!TI#>2S3LeDW|X=JTC{a4_K+?TXtg23&)ak4M0000 literal 0 HcmV?d00001 diff --git a/Resources/images/lime_ko@2x.png b/Resources/images/lime_ko@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a5e6b809bac9ffff9ec4fec682f81bad274970 GIT binary patch literal 1279 zcmVoAqGW#@z3+gSKmxbh(kmm5~qlW zDT5%!ff-slaogK_w-4uc+Rf=LtugLo=boNneS3Xtt#7Rck`;@e5Ed^X!ZzR~;4ttq z@C4B1;~8KKI0+m9P6fD;d>eom5{x_n!Ur)z2hay>2ll$x19yRQ31A(V1vUfwfZhlf zfGfaMfM(TxXah)ue&9{uHQ*J&{{SutcnipYLEtH1H}D8>6F3SS1C9rnsM^m{pk(a? zUUzQ=Zd0868{jl>UBDq=Qk&a=$Gwk-o2c5)D>3Ypo@aqk;9=kk;J9)6O&S~8xdEI9 zegMt_uLAo$z{v=I0n;V5%K(kj3+@fTHR(AL3Jn1Y1!zV%1#|;X0>j#v2mVe0v&y$M>D(bzCxA#$1Z1i_IpvB&= zm-u20XvHEH*@FNhwDhLScbgud>ps9($W^ys2Y_`RWS<|*S_auFbhb3U4tPfJ7I47B z+yfRugzqWpZ=Lb$*TAGPX(nQ^+R9|8mL$s!h2j=a4{^!Z3~&b+7o_Hi%h;8a#^ni0 zi>2ZYGBTwjgF2G|p^V{8;A69LT=!#QJeT%t1;B>XN2x6Dtp|3gw4QzBDa(4R{pTqQPsxnP5$t(IoAs$6i?j zegb~iwqUM@OISnY-hxGVQ)hSv|3xdTeU`SHG zq;0#Me%b?N5zd8zVq!tr`@p-v8|v>T(n*qNp`FsC4;s>VRXVoXj3dy91!dhP!eKp} zvq?`RfXmdWDs5SWJiu%$Vo`EGs_~u1WS4DdM9*e{4}edNb+h8(ihzrP9$+pO15%l( zI~0Wxm1NkCKW-a40(>2oylcDiRa(w`grD`aZYI9yI8g(B)w83(*lJ*`K_Ah`MU78L z>qb?i!yb4#6!pu026S~gl?_$;Td!raC9cs{zS;|MY0lX%=tb$=psGA?*%0A!u)zNf zV5oq-W$M3U96wYDhTVtN%9bT_B^1TJCcsh~iG{+KBmRib#+>3V=;;)&N4-4gVUH;Q zv}n(b(L+Uek zpJ08qxpFWIsfWW}Pf2A;MOJ?BfQfBB5s8q@MMJ=2KAQ-(nzRWotT3r%57vjpomG;u pM|*dHxm?;d*mC}_)i4L{{sUz7h{H3SS|$Jh002ovPDHLkV1hu&QHTHl literal 0 HcmV?d00001 diff --git a/submodules/linphone b/submodules/linphone index 289917ab6..29a56ce84 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 289917ab62fb8d07d15abe6ccc1ecc35752d1265 +Subproject commit 29a56ce84761ab7200923608a100e7e7980136c2 From cea1508ddbcc1b2ab7c31ddc75897cb887d4689c Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 31 Jan 2017 17:29:21 +0100 Subject: [PATCH 045/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 29a56ce84..567fac044 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 29a56ce84761ab7200923608a100e7e7980136c2 +Subproject commit 567fac0445e190a46f2826b4d35fa53682ead26b From a1381f33159b53a6ef77f2a9b614fb527f56e923 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 1 Feb 2017 12:16:11 +0100 Subject: [PATCH 046/180] Display a warning if LIME mandatory and received message not encrypted --- .../Base.lproj/UIChatBubblePhotoCell.xib | 50 ++++++++++--------- .../Base.lproj/UIChatBubbleTextCell.xib | 39 +++++++++------ Classes/LinphoneUI/UIChatBubbleTextCell.h | 1 + Classes/LinphoneUI/UIChatBubbleTextCell.m | 27 ++++++++++ linphone.xcodeproj/project.pbxproj | 8 +++ submodules/linphone | 2 +- 6 files changed, 86 insertions(+), 41 deletions(-) diff --git a/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib b/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib index bc35ae1e4..dfd3370df 100644 --- a/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib +++ b/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib @@ -1,12 +1,17 @@ - - + + + + + - + + + @@ -36,12 +41,10 @@ - - @@ -50,10 +53,9 @@ @@ -63,7 +65,6 @@ - @@ -76,16 +77,14 @@ - - - - - - + - - - + @@ -152,12 +148,18 @@ - - + + + + + + + + diff --git a/Classes/LinphoneUI/Base.lproj/UIChatBubbleTextCell.xib b/Classes/LinphoneUI/Base.lproj/UIChatBubbleTextCell.xib index b564ae75b..bec5dd5da 100644 --- a/Classes/LinphoneUI/Base.lproj/UIChatBubbleTextCell.xib +++ b/Classes/LinphoneUI/Base.lproj/UIChatBubbleTextCell.xib @@ -1,12 +1,17 @@ - - + + + + + - + + + @@ -35,12 +40,10 @@ - - @@ -49,52 +52,56 @@ - - - - + - - - + - - + + + + + + + + diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.h b/Classes/LinphoneUI/UIChatBubbleTextCell.h index 5c300c628..89e89ba0a 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.h +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.h @@ -36,6 +36,7 @@ @property(nonatomic, strong) id chatRoomDelegate; @property(strong, nonatomic) IBOutlet UIView *bubbleView; @property(strong, nonatomic) IBOutlet UITapGestureRecognizer *resendRecognizer; +@property(weak, nonatomic) IBOutlet UIImageView *LIMEKO; + (CGSize)ViewSizeForMessage:(LinphoneChatMessage *)chat withWidth:(int)width; diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.m b/Classes/LinphoneUI/UIChatBubbleTextCell.m index e36672f4c..c8d8ce7e2 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.m +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.m @@ -160,6 +160,13 @@ } else { [_messageText setAccessibilityLabel:@"Incoming message"]; } + + if (!outgoing && !linphone_chat_message_is_secured(_message) && + linphone_core_lime_enabled(LC) == LinphoneLimeMandatory) { + _LIMEKO.hidden = FALSE; + } else { + _LIMEKO.hidden = TRUE; + } } - (void)setEditing:(BOOL)editing { @@ -171,6 +178,21 @@ _resendRecognizer.enabled = !editing; } +- (void)displayLIMEWarning { + UIAlertController *errView = [UIAlertController + alertControllerWithTitle:NSLocalizedString(@"LIME warning", nil) + message:NSLocalizedString(@"This message you received wasn't encrypted.", nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action){ + }]; + + [errView addAction:defaultAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; +} + #pragma mark - Action Functions - (IBAction)onDeleteClick:(id)event { @@ -184,6 +206,11 @@ } - (IBAction)onResendClick:(id)event { + if (!_LIMEKO.hidden) { + [self displayLIMEWarning]; + return; + } + if (_message == nil || !linphone_chat_message_is_outgoing(_message)) return; diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 45902561e..a240fb6b7 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -672,6 +672,8 @@ 8C2595DD1DEDC92D007A6424 /* ProviderDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */; }; 8C2595DF1DEDCC8E007A6424 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */; }; 8C2595E11DEDDC67007A6424 /* callkit_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2595E01DEDDC67007A6424 /* callkit_logo.png */; }; + 8C300D9A1E40E0CC00728EF3 /* lime_ko.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C300D981E40E0CC00728EF3 /* lime_ko.png */; }; + 8C300D9B1E40E0CC00728EF3 /* lime_ko@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C300D991E40E0CC00728EF3 /* lime_ko@2x.png */; }; 8C73477C1D9BA3A00022EE8C /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C73477B1D9BA3A00022EE8C /* UserNotifications.framework */; }; 8CA2004C1D8158440095F859 /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CA2004B1D8158440095F859 /* PushKit.framework */; }; 9EC6C1E11DF96991006C2FD2 /* armv7-apple-darwin.ios in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EC6C1E01DF96991006C2FD2 /* armv7-apple-darwin.ios */; }; @@ -1595,6 +1597,8 @@ 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProviderDelegate.m; sourceTree = ""; }; 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; }; 8C2595E01DEDDC67007A6424 /* callkit_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = callkit_logo.png; sourceTree = ""; }; + 8C300D981E40E0CC00728EF3 /* lime_ko.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lime_ko.png; sourceTree = ""; }; + 8C300D991E40E0CC00728EF3 /* lime_ko@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lime_ko@2x.png"; sourceTree = ""; }; 8C5D1B991D9BC48100DC6539 /* UIShopTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIShopTableCell.h; sourceTree = ""; }; 8C5D1B9A1D9BC48100DC6539 /* UIShopTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIShopTableCell.m; sourceTree = ""; }; 8C5D1B9B1D9BC48100DC6539 /* UIShopTableCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIShopTableCell.xib; sourceTree = ""; }; @@ -2440,6 +2444,8 @@ 633FEBE11D3CD5570014B822 /* images */ = { isa = PBXGroup; children = ( + 8C300D981E40E0CC00728EF3 /* lime_ko.png */, + 8C300D991E40E0CC00728EF3 /* lime_ko@2x.png */, 8C2595E01DEDDC67007A6424 /* callkit_logo.png */, 633FEBE21D3CD5570014B822 /* add_field_default.png */, 633FEBE31D3CD5570014B822 /* add_field_default@2x.png */, @@ -3302,6 +3308,7 @@ 633FEF021D3CD55A0014B822 /* options_disabled.png in Resources */, 633FEDC81D3CD5590014B822 /* call_missed.png in Resources */, 633FEF4B1D3CD55A0014B822 /* splashscreen@2x.png in Resources */, + 8C300D9A1E40E0CC00728EF3 /* lime_ko.png in Resources */, 633FEE311D3CD5590014B822 /* color_I.png in Resources */, 633FEF1F1D3CD55A0014B822 /* presence_online@2x.png in Resources */, 633FEE641D3CD5590014B822 /* footer_chat_disabled.png in Resources */, @@ -3689,6 +3696,7 @@ 633FEE941D3CD55A0014B822 /* micro_default.png in Resources */, 633FEE611D3CD5590014B822 /* edit_list_disabled@2x.png in Resources */, 633FEE761D3CD5590014B822 /* history_all_selected.png in Resources */, + 8C300D9B1E40E0CC00728EF3 /* lime_ko@2x.png in Resources */, 633FEF321D3CD55A0014B822 /* route_speaker_selected.png in Resources */, 633FEDF51D3CD5590014B822 /* call_video_start_disabled@2x.png in Resources */, 63B81A0C1B57DA33009604A6 /* LICENSE.txt in Resources */, diff --git a/submodules/linphone b/submodules/linphone index 567fac044..31d5d90ca 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 567fac0445e190a46f2826b4d35fa53682ead26b +Subproject commit 31d5d90ca9adc25b9fb2ba5a2a7bfa1b2b6893f9 From 5f5385645a24ab191f8cb143a23212bc593b607f Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 1 Feb 2017 15:56:04 +0100 Subject: [PATCH 047/180] Add alert when we receive a message we cannot decrypt --- Classes/LinphoneManager.m | 59 ++++++++++++++++++++++++++++++++++++++- submodules/linphone | 2 +- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 87bfe5172..c7d5fb290 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -257,7 +257,6 @@ struct codec_name_pref_table codec_pref_table[] = {{"speex", 8000, "speex_8k_pre pushCallIDs = [[NSMutableArray alloc] init]; _photoLibrary = [[ALAssetsLibrary alloc] init]; _isTesting = [LinphoneManager isRunningTests]; - [self renameDefaultSettings]; [self copyDefaultSettings]; [self overrideDefaultSettings]; @@ -1293,6 +1292,63 @@ static void linphone_iphone_message_received(LinphoneCore *lc, LinphoneChatRoom [(__bridge LinphoneManager *)linphone_core_get_user_data(lc) onMessageReceived:lc room:room message:message]; } +static void linphone_iphone_message_received_unable_decrypt(LinphoneCore *lc, LinphoneChatRoom *room, + LinphoneChatMessage *message) { + const LinphoneAddress *address = linphone_chat_message_get_peer_address(message); + NSString *strAddr = [FastAddressBook displayNameForAddress:address]; + NSString *title = NSLocalizedString(@"LIME warning", nil); + NSString *body = [NSString + stringWithFormat:NSLocalizedString(@"You have received an encrypted message you're unable to decrypt from " + @"%@.\nYou need to call your correspondant in order to exchange your ZRTP " + @"keys if you want to decrypt the future messages you'll receive.", + nil), + strAddr]; + NSString *action = NSLocalizedString(@"Call", nil); + + if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) { + if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { + UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init]; + content.title = title; + content.body = body; + UNNotificationRequest *req = + [UNNotificationRequest requestWithIdentifier:@"decrypt_request" content:content trigger:NULL]; + [[UNUserNotificationCenter currentNotificationCenter] + addNotificationRequest:req + withCompletionHandler:^(NSError *_Nullable error) { + // Enable or disable features based on authorization. + if (error) { + LOGD(@"Error while adding notification request :"); + LOGD(error.description); + } + }]; + } else { + UILocalNotification *notification = [[UILocalNotification alloc] init]; + notification.repeatInterval = 0; + notification.alertTitle = title; + notification.alertBody = body; + [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; + } + } else { + UIAlertController *errView = + [UIAlertController alertControllerWithTitle:title message:body preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action){ + }]; + + UIAlertAction *callAction = [UIAlertAction actionWithTitle:action + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action) { + [LinphoneManager.instance call:address]; + }]; + + [errView addAction:defaultAction]; + [errView addAction:callAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + } +} + - (void)onNotifyReceived:(LinphoneCore *)lc event:(LinphoneEvent *)lev notifyEvent:(const char *)notified_event @@ -1692,6 +1748,7 @@ static LinphoneCoreVTable linphonec_vtable = { .notify_presence_received_for_uri_or_tel = linphone_iphone_notify_presence_received_for_uri_or_tel, .auth_info_requested = linphone_iphone_popup_password_request, .message_received = linphone_iphone_message_received, + .message_received_unable_decrypt = linphone_iphone_message_received_unable_decrypt, .transfer_state_changed = linphone_iphone_transfer_state_changed, .is_composing_received = linphone_iphone_is_composing_received, .configuring_status = linphone_iphone_configuring_status_changed, diff --git a/submodules/linphone b/submodules/linphone index 31d5d90ca..b66964084 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 31d5d90ca9adc25b9fb2ba5a2a7bfa1b2b6893f9 +Subproject commit b669640847cb80e53fc85f1bc319cc6ffa0ccbcd From 4b1f07d26cb04e1c786b15a6d9a8b92c498e52f6 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 1 Feb 2017 17:09:56 +0100 Subject: [PATCH 048/180] Fix UI bug : display _backButton in dialer when rotation and at least one call --- Classes/DialerView.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Classes/DialerView.m b/Classes/DialerView.m index b09b2224d..766085646 100644 --- a/Classes/DialerView.m +++ b/Classes/DialerView.m @@ -169,6 +169,13 @@ static UICompositeViewDescription *compositeDescription = nil; frame.origin = CGPointMake(0, 0); _videoPreview.frame = frame; _padView.hidden = !IPAD && UIInterfaceOrientationIsLandscape(toInterfaceOrientation); + if (linphone_core_get_calls_nb(LC)) { + _backButton.hidden = FALSE; + _addContactButton.hidden = TRUE; + } else { + _backButton.hidden = TRUE; + _addContactButton.hidden = FALSE; + } } - (void)viewDidAppear:(BOOL)animated { From d1152e1be12ea727be4b1965ef6615d6f153a81e Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 1 Feb 2017 17:24:11 +0100 Subject: [PATCH 049/180] Fix CallKit issue 2nd call after pause/resume --- Classes/ProviderDelegate.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Classes/ProviderDelegate.m b/Classes/ProviderDelegate.m index fd058527f..5d334d564 100644 --- a/Classes/ProviderDelegate.m +++ b/Classes/ProviderDelegate.m @@ -218,6 +218,10 @@ - (void)provider:(CXProvider *)provider didDeactivateAudioSession:(nonnull AVAudioSession *)audioSession { LOGD(@"CallKit : Audio session deactivated"); + + _pendingCall = NULL; + _pendingAddr = NULL; + _pendingCallVideo = FALSE; } - (void)providerDidReset:(CXProvider *)provider { From d3a36a2fb4e09d67aeb1d4e7be21cda3016ad15b Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 10:59:10 +0100 Subject: [PATCH 050/180] change LIME text info --- Classes/LinphoneCoreSettingsStore.m | 9 +++--- Classes/LinphoneManager.m | 34 ++++++++++------------- Classes/LinphoneUI/UIChatBubbleTextCell.m | 8 +++--- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index 190938e99..c3c988f3d 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -758,10 +758,11 @@ [self setCString:"ZRTP" forKey:@"media_encryption_preference"]; UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"ZRTP activation", nil) - message:NSLocalizedString( - @"LIME requires ZRTP encryption.\n" - @"By activating LIME you automatically ZRTP media encryption.", - nil) + message: + NSLocalizedString( + @"LIME requires ZRTP encryption.\n" + @"By activating LIME you automatically activate ZRTP media encryption.", + nil) preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index c7d5fb290..e422abd8d 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -1298,9 +1298,9 @@ static void linphone_iphone_message_received_unable_decrypt(LinphoneCore *lc, Li NSString *strAddr = [FastAddressBook displayNameForAddress:address]; NSString *title = NSLocalizedString(@"LIME warning", nil); NSString *body = [NSString - stringWithFormat:NSLocalizedString(@"You have received an encrypted message you're unable to decrypt from " + stringWithFormat:NSLocalizedString(@"You have received an encrypted message you are unable to decrypt from " @"%@.\nYou need to call your correspondant in order to exchange your ZRTP " - @"keys if you want to decrypt the future messages you'll receive.", + @"keys if you want to decrypt the future messages you will receive.", nil), strAddr]; NSString *action = NSLocalizedString(@"Call", nil); @@ -1418,15 +1418,15 @@ static void linphone_iphone_call_encryption_changed(LinphoneCore *lc, LinphoneCa #pragma mark - Message composition start - (void)alertLIME:(LinphoneChatRoom *)room { + NSString *title = NSLocalizedString(@"LIME warning", nil); + NSString *body = + NSLocalizedString(@"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" + @"Please call this contact and verify his ZRTP key before sending your messages.", + nil); + if ([UIApplication sharedApplication].applicationState != UIApplicationStateBackground) { - UIAlertController *errView = [UIAlertController - alertControllerWithTitle:NSLocalizedString(@"LIME Error", nil) - message: - NSLocalizedString( - @"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" - @"Please call this contact and verify his ZRTP key before sending your messages.", - nil) - preferredStyle:UIAlertControllerStyleAlert]; + UIAlertController *errView = + [UIAlertController alertControllerWithTitle:title message:body preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault @@ -1444,11 +1444,8 @@ static void linphone_iphone_call_encryption_changed(LinphoneCore *lc, LinphoneCa } else { if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init]; - content.title = NSLocalizedString(@"LIME error", nil); - content.body = - NSLocalizedString(@"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" - @"Please call this contact and verify his ZRTP key before sending your messages.", - nil); + content.title = title; + content.body = body; content.categoryIdentifier = @"lime"; UNNotificationRequest *req = [UNNotificationRequest @@ -1467,11 +1464,8 @@ static void linphone_iphone_call_encryption_changed(LinphoneCore *lc, LinphoneCa } else { UILocalNotification *notification = [[UILocalNotification alloc] init]; notification.repeatInterval = 0; - notification.alertTitle = NSLocalizedString(@"LIME error", nil); - notification.alertBody = - NSLocalizedString(@"You are trying to send a message using LIME to a contact not verified by ZRTP.\n" - @"Please call this contact and verify his ZRTP key before sending your messages.", - nil); + notification.alertTitle = title; + notification.alertBody = body; [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; } } diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.m b/Classes/LinphoneUI/UIChatBubbleTextCell.m index c8d8ce7e2..54caca958 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.m +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.m @@ -179,10 +179,10 @@ } - (void)displayLIMEWarning { - UIAlertController *errView = [UIAlertController - alertControllerWithTitle:NSLocalizedString(@"LIME warning", nil) - message:NSLocalizedString(@"This message you received wasn't encrypted.", nil) - preferredStyle:UIAlertControllerStyleAlert]; + UIAlertController *errView = + [UIAlertController alertControllerWithTitle:NSLocalizedString(@"LIME warning", nil) + message:NSLocalizedString(@"This message is not encrypted.", nil) + preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault From 8ea59c4b73ed14e7dea89a5a3a1f624505ae02c4 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 10:59:38 +0100 Subject: [PATCH 051/180] update cmake-builder --- submodules/cmake-builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 96d5889a3..3f5982e7d 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 96d5889a38b49488a970bab87a99cbe8d988a269 +Subproject commit 3f5982e7d5aefe5f80e075f37fd952f025daa600 From e0754488c07e12310b3ea79df9edc95de5abb018 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 11:37:16 +0100 Subject: [PATCH 052/180] update translation --- .tx/config | 5 + .../Base.lproj/UIChatBubblePhotoCell.strings | Bin 2070 -> 2366 bytes .../Base.lproj/UIChatBubbleTextCell.strings | Bin 1324 -> 1620 bytes .../LinphoneUI/fr.lproj/StatusBarView.strings | Bin 1076 -> 528 bytes .../LinphoneUI/fr.lproj/TabBarView.strings | Bin 3686 -> 1824 bytes .../fr.lproj/UICallConferenceCell.strings | Bin 1516 -> 751 bytes .../fr.lproj/UICallPausedCell.strings | Bin 1518 -> 751 bytes .../fr.lproj/UIChatBubblePhotoCell.strings | Bin 2102 -> 1182 bytes .../fr.lproj/UIChatBubbleTextCell.strings | Bin 1340 -> 809 bytes .../LinphoneUI/fr.lproj/UIChatCell.strings | Bin 1250 -> 634 bytes .../fr.lproj/UIChatCreateCell.strings | Bin 462 -> 230 bytes .../fr.lproj/UIConfirmationDialog.strings | Bin 832 -> 414 bytes .../LinphoneUI/fr.lproj/UIContactCell.strings | Bin 390 -> 198 bytes .../fr.lproj/UIContactDetailsCell.strings | Bin 772 -> 382 bytes .../LinphoneUI/fr.lproj/UIHistoryCell.strings | Bin 462 -> 234 bytes Classes/fr.lproj/AboutView.strings | Bin 3802 -> 1878 bytes Classes/fr.lproj/AssistantLinkView.strings | Bin 6746 -> 3241 bytes Classes/fr.lproj/AssistantView.strings | Bin 716 -> 354 bytes Classes/fr.lproj/AssistantViewScreens.strings | Bin 35774 -> 17096 bytes Classes/fr.lproj/CallIncomingView.strings | Bin 4530 -> 2248 bytes Classes/fr.lproj/CallOutgoingView.strings | Bin 5694 -> 2824 bytes Classes/fr.lproj/CallView.strings | Bin 18524 -> 9116 bytes Classes/fr.lproj/CallView~ipad.strings | Bin 18526 -> 9116 bytes .../ChatConversationCreateView.strings | Bin 252 -> 123 bytes Classes/fr.lproj/ChatConversationView.strings | Bin 6058 -> 2966 bytes Classes/fr.lproj/ChatsListView.strings | Bin 1626 -> 789 bytes Classes/fr.lproj/ContactDetailsView.strings | Bin 2934 -> 1432 bytes Classes/fr.lproj/ContactsListView.strings | Bin 2276 -> 1087 bytes Classes/fr.lproj/CountryListView.strings | Bin 486 -> 241 bytes Classes/fr.lproj/DialerView.strings | Bin 3764 -> 1845 bytes Classes/fr.lproj/DialerView~ipad.strings | Bin 8646 -> 4242 bytes Classes/fr.lproj/FirstLoginView.strings | Bin 7398 -> 3572 bytes Classes/fr.lproj/HistoryDetailsView.strings | Bin 4728 -> 2290 bytes Classes/fr.lproj/HistoryListView.strings | Bin 1856 -> 902 bytes Classes/fr.lproj/ImageView.strings | Bin 298 -> 143 bytes Classes/fr.lproj/SettingsView.strings | Bin 748 -> 362 bytes Classes/fr.lproj/ShopView.strings | Bin 2576 -> 231 bytes Classes/fr.lproj/SideMenuView.strings | Bin 478 -> 238 bytes Classes/fr.lproj/SideMenuView~ipad.strings | Bin 478 -> 238 bytes Resources/en.lproj/Localizable.strings | Bin 59040 -> 62602 bytes .../en.lproj/Advanced.strings | 2 - .../en.lproj/Chat.strings | 3 + .../en.lproj/Root.strings | 1 + linphone.xcodeproj/project.pbxproj | 166 +++++++++--------- 44 files changed, 91 insertions(+), 86 deletions(-) create mode 100644 Settings/InAppSettings.bundle/en.lproj/Chat.strings diff --git a/.tx/config b/.tx/config index c5145ec27..0b79789c3 100644 --- a/.tx/config +++ b/.tx/config @@ -226,3 +226,8 @@ source_file = Classes/Base.lproj/AssistantLinkView.strings source_lang = en file_filter = Classes/.lproj/CountryListView.strings source_file = Classes/Base.lproj/CountryListView.strings + +[linphone-ios.inappsettingschatstrings] +source_lang = en +file_filter = Settings/InAppSettings.bundle/.lproj/Chat.strings +source_file = Settings/InAppSettings.bundle/en.lproj/Chat.strings diff --git a/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.strings index 50aac70afa3eeab3aa04adf089ba169514c249ea..bbc940d424f499501ce57e88299bea3e270ecca8 100644 GIT binary patch delta 73 zcmbOxuuo`%2J$D J<`+zQtN;KN4b1=m delta 12 TcmdldG)-WG2J_|smUk=w9eV^z diff --git a/Classes/LinphoneUI/Base.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/Base.lproj/UIChatBubbleTextCell.strings index caf8f1e2168b65bbc331f52dbaa2c5e751848518..36cc75de9f3bd63291a1973528e56057ed05f693 100644 GIT binary patch delta 84 zcmZ3(b%kfcA{NsChC&8U23-bUh9Dqm!Qjr|%%H?z&7i=b#h}l?1!QAUF?l1i;bab0 Um5DFpCjVn{0Wy^)cd#r00Ihxz-2eap delta 11 Scmcb@vxaNKB9_UgSi1ln=>*vT diff --git a/Classes/LinphoneUI/fr.lproj/StatusBarView.strings b/Classes/LinphoneUI/fr.lproj/StatusBarView.strings index 332db0f25709504c2a6ba47876392282e0cfb093..183cdcd39454a273bd61f53865eaa2113b5ad062 100644 GIT binary patch literal 528 zcmb7>OAEp<5QOjf6`{vM6s_n%y!bdMic+n3P1-d^(iECi^xxb1puyUM*I8!f+g;N3 z=|ppD>4ROy3#`(0Af`w$Wi1G8T82D}C2rb9$ zRdzxe%6J@uwMrBu6tO0z zX)|wTI&kwY+YzyF;C7lMTQ* z1g+s91bN70X1w z=RIFmw`0#3=G?xto%Q@W5h9M93mXRk;hg%EQL$TMpD_7g7Gjb9eDF6U5OYtOhUs^w zYdOQSs*9t2EbA!HE#)HK?hMvQu|^OpcRLd2QOwBJpp6x64AC;LBVn^R5;zdtz)cix z0^ziu3EcN5b+2|nHsFqOPG0Q*Gj_sH4XQg(Sa$$%O@D|k$d8b`>9m0%AMM9NzJek( z>iA6O62FrgDOm+wu!KrVF$9zYtfqizRMWCc+4PjQX-Q(#rzlJk)fR1l+LOgGg|y&n zR{6<)M4KMkePuJD4G{bsrTM({cER%k))GhA+fB*KTTC58O_ Xm*y#C8^qqw)s3ez&;}@jJdpJZR_7t* literal 3686 zcmd5<+fKqj5IxU)1>s3aiVAXz@c|)G3~1sd#z(*^AQy##^2z>$de~A*>ymaL2-(my zyVIRLXXeZ-Ki?4?AdV=C=%9unM--?0#c+=@&M<<-(MOLnC!DXL!C@-P7V2p6yA~}b zsBo>$mCk&JBAT4DW?x=&waxVgXUZtet2NUYo^MBDNZRnHU5h%leRI#mMYz8`GoXZL`>lDuXSR zSJsTpD3(Po=fjs<0pCv8L0x@ zOtpPR(d8L>cxV0iS~!Q41B-}0$)i(~^2o1<$JxoP8qQwQGf66-H!fYGnO4{uUicO+ zI{sWtL7t6Ojo)oXNRMgt2(8zp!q>eDdF;bLl4>*9+eRF=R-N9Zvyf`(|7&BIE`7)D zeM{7B9P&BA_)p!?S;(=wXW3<4Ht>K;^3Z3$G;l*sUVWLMvyif}Te{UD@@BuzBEjly z*YIstUP(tZdGk#&svk)4*~8=fKIEueXCaO4?sQBY8gE>67VE@yy?QOX%bD!9M~q{M zDmAEC6IVW^>MW$u)SW4)eyzuX-8{17qP?%9+cDEsFN=;#Mef|BkQjL>XMR0r0J+Fkc zd>ZATH62oKo=hMWxi_G|xzJjsGM9KdgB2eY3V|b4uodOeG|dFZB(A8ib7Z(+-{HI@ z{1&+ZK3p@;btB|{6BI|RuE)hj(YSaex00TdjJ7Got>`xVw|Bhe?5D>PjO)Dyc+cJ- z=m($ucGr4m6XWJy_ZqFeH`&5kETlM;>c^X54+y_j`Yems>5IvrQ>Po?+3Jg*-DtE! dEL3Bi8SJ$E=W4oQ;gXF+RJSldQ;XV$`~e_M-t_4krK_fELZ-X zCW_IeJ_)`tt1-UWO?|vy*rhsO-E~w~ZOv5Ybcno`OCFg=jZ7`pCX2?eGIQ2ZF3D}o z?m<)JD3@s(&0~B7fimN+$BoY*wm~-88|GEi4X%9LU6Aa*!aY5~cwKioM*6VU zEmYWK@!u-kQcEYyL*#*uO1j#FDBsm4iw4|eeYL5uDQ;P}`t*7L>mhF{LVhl@{Y$L_ zeQ;;`y5CB$4|wMum7ePg8Npe*P;Zk()q0QjZI0c=e98_WK< ZSbaUhg{xa+2Yau;h{>WVBl&DB{Q!cL;>rL3 diff --git a/Classes/LinphoneUI/fr.lproj/UICallPausedCell.strings b/Classes/LinphoneUI/fr.lproj/UICallPausedCell.strings index 4d0eb9bb9d443da3b755a99c76518e81673dc30a..da3684bdcb7b3a94124f99d8c5a5fdf8b82b476f 100644 GIT binary patch literal 751 zcmb_ay9&ZE6y5U`p`#G3iU^8JbucO_hz@SIC1|7%G`IEf^)|jzTZ;&;CppiA)GD;^ zgHp6dttEG2#3;176g*ETC0*%DJWs$CzP>PrSc&v>=I(@te4sIYiP?I`)KI1el^V$a z)uM`(ks;*WoCmNGD=Chp{{1LK@Q^|R2!~vdsWW0nn=KQ~*Fg+W79_8iPjoB(HBAUX zew0lUnOLx(?L4v=;9HivT3HelC)5*;qHRbA(J#K5dYj*H%Up`@rahl)edvp8$;O-| ea{uUSfdBNh?T+2()LW^1_VXE=qVKD(;gT!B%i^&B literal 1518 zcmd6nK}*9x6oluTU$OL9NUe$piU+L+Q>6-058m1uYNTmVx2^i))i0?@NLh>#g|cMX z>`vaBop~=G@1C~Qlu<_$4fM<~I^t=luRtf7%Q9w~vUAA(KqE$&A|nkI@m&PsRTrEM zIho`UuGpD_48Oj;;;%0n| z?(o3iP2zRNIdP#%slxaA6|%0-6h3ify^OUBLm%8VbF6*TD%Xn(QCFQFO2jDgSGrjE zzQ8-{uP*WL(b~`nvwypDmbK^uSKiI@*zz}saQB?v_o>rJk82*g5S!+4oBloE*i_@% diff --git a/Classes/LinphoneUI/fr.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/fr.lproj/UIChatBubblePhotoCell.strings index 4388780d78d80cc36bf00decb4599ebc7311d049..c609433848ce72c216b331b679ef0b64bc7ed31a 100644 GIT binary patch literal 1182 zcmb`GQBT4!6oudSD;ge2DnSB7jSskL9GN2y)aSeH3N@uowlc(DFPkHsB@My&dfI*G zoV#1E*CoDyq9C`V^Ag-`v{tfnLm*ADD0spJ*SioB6x9VEWQt;cJWD<>)d8!-Q6^~g zMf0rOA9Q}8X|9UVaQ?-(WsdL;bK)o9_!FD|HCYahv zp}^jZXgs9Lkj5k36gPsaxFI|Mp;4x1((Wfdouo4Up?uZmt6L;elM9?Rg%@t$O{vJjf3$tgBy z0vP!q2+jUE_RhvXK#NcvPWDwd%%k06%^cZqa8yE#kzT*eIQjfpjuj9zIKQOYLLAG6 z%`Gf0;M3CM7^-fIJ>u9WS!9j< zkeq9?dlPKe%oeA;n%ul67rjY_r)9)6%fC|(Q62S6*7iUU@YVs#e0`45vxYJ?oiX-_ z&%q~sk}R_7Q$c}_(WcMXGA~v>u5o1)RL~BQ-C*UI-P^FY=m6b6;~yiK z)$*(h7s3CSo_RwYE@LUg;sgpQpr*5H_>vGCvjCIS!9iRof_~>9kjs|a@t>Y z#-ggaq%)l`+r)i-&L?qOgne3ftZN8@AszY%6g3_GYnOD0{A~TZ^gP$}gVAkdp-uAr h*haB6@}Qt?#x3s7qfgn8WRW!+>=`^!m;9;|d;mz_LUjND diff --git a/Classes/LinphoneUI/fr.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/fr.lproj/UIChatBubbleTextCell.strings index 1125a27b4bca90fd343bde052a04caa3ef935247..5e35962997c3d07da1c6abf3bc3b2e851a389d00 100644 GIT binary patch literal 809 zcmb`D(MrQG6o&8n6rq=cWE2%d@n$WIj7nur!OPR^Oe1NdO;+vO+m?3SQimIO7rt=* z|2xNUx4xr)w9d` zV>0#j0Bh#`UjjVuurh`eRXq+upfNI)O4_Q0ZG+A&2upIv&?%oUk!}kLk7-vv05%S5 zRl9bXCQj(*RC)`T;t0 B_W1w+ literal 1340 zcmcJP+fKqj5QhKjKE;Mhl46K@qwzu^F%TlgQ^I8_C^bM$sVI-=qxcf)w}k>VO&dI< zX}jH>o%!b9nSOpa+EZ0V4UOe##$|NEUD2&ty3tUtigl-e(F?Q3ti`L@)Uu;c5pxEs zCp8tM_#W$vD5s52d`B2=Mr80T5k*6}NAPsIcdzKXK! zK+%V9yo&BY>ho>Y2v`YN35dGT#xl*l0r!+OyC;Tc%4ovg;>^!=g^i0+5l>IoL|N`g zGtaZAB~i-AHmY2}Hi2nC90T7rsg1U)F5l0+uDXu2uS2}I@jfDZ!}*5)mVZjH$+3)~ zEXNiKd3u02TjRf}0Z(&$+M0+;>fjOueJWsvYAy_2c4q4!&tlg)INjp;c{TinQcZHS zy)@??(NBiX_mch^Ql-T`Go||$sMJO!mp_y3#;jI(7Q1To#(9jO^I;qCHgLZ4HRR70 KLuz|y**jmxht4Jd diff --git a/Classes/LinphoneUI/fr.lproj/UIChatCell.strings b/Classes/LinphoneUI/fr.lproj/UIChatCell.strings index 68b814db23a3758d447d4b89c7aaacd23d9a9762..3e1377c2c6ae368b28b4a03ae76a29049390c127 100644 GIT binary patch literal 634 zcmaix%?iRW5QOh}ils-P)d(Ug9;CfgDk3NpZ`&AbH8yH;(6={{{y=LjHLAiic7!l~xfH#9OSPUG0}Kg8q5+*^Oz93AAZgvLyR{ z%)FUNzP~&js3l*0%@pa4zLr`L zvo$HT3-0FBW}U97e&)%>2D(_I9_jEmqXjdMdwbH^2{~AIxdMC6)05uW#|0)9-(%I8 zJB8_on<9HRmvo#mkq`6b-ZSN0H@u5|_hDK`p%Kij;*lmh%n+7z32W<8Mr^9YEjk$I z+H8-|WaYeUeL6**87_#GaBkh#bl$RN#hH9u5`(k?IpNJ3_RRB5C+(`c<=c7Cyg5-u z1LggbvQm>vJY7I)oU$r)JuG#@D!qUbTKZf_0(u~Gl<*kD#f9H~FQEMjF8QfwR(ceb V=z3P^h8Sf*twabQtVHPL0ssrWL$3e; literal 462 zcmbu5JqyAx6h+URUr{<1tl%ahh&r@Ia8Y+ZinfRq?V$d6^-9xBaS$nadA)h>=AFEr zhAt5S6OOF8>I)cZg)B*#N!yU?EMy?HR(?}#Yf35(oQT;e%NeP%(EnL#r9Ib4#f81? zpUbV3x|K)D)cK61-szCgS6nI2Y)7Q|jB;N^?B)rb({B?QdH=(oS^hvQAO7Z*zELK6 YiCTOq55)yNQ8yherLV$A>ATnP2CYFwtN;K2 diff --git a/Classes/LinphoneUI/fr.lproj/UIConfirmationDialog.strings b/Classes/LinphoneUI/fr.lproj/UIConfirmationDialog.strings index 8fce37804c6833e0c84ce8b6f73178542101cf88..a3acfeaedf0d7c1a1dad46d3599f96535f815427 100644 GIT binary patch literal 414 zcmbV{+X{j}5QgvfDF!cvHKfak@I**bNcI4$jiGG2pd%fgJ~s@-Zlb&0?`P)whb?Rf zq-a}MgLR7ijz}wO1xhzpA+w4knk4Y{L6r3Tkk?pH92)4mJ0AFasmngF7iQdsK(_y6 z>^ZtV^!*yfG3?jSW$?G)JL79x#T{dnqMmUK-xX^_MKAu$8Pl^FP7?2-VE;;2cKz-+ zpP}C9#hPf&+nnzsFJwsF4V#Ei_b%I2Zs@@?Fg&GrVSDQ;GrY*~!+nU(pdIX8Xb>2rO!8Q)Wc Ho+HpVx-@`d diff --git a/Classes/LinphoneUI/fr.lproj/UIContactCell.strings b/Classes/LinphoneUI/fr.lproj/UIContactCell.strings index 6099fa96eceea7be8df31d0090f0105fc73cdadf..59ff776841120c8daddfe1aee6699ab18b13d692 100644 GIT binary patch literal 198 zcmdjxq1)bkEBYz5VWHaahZx5@}SisxT zl_0q$yLR6o&8jD~6ZCCPa4;gi0g`67)gdZFXvtv58xd|2`*zVH9-xzK7>|4~jyZ zC}u5QyR+v>4SSz_y(seoGp!`81nCr`e*HF1E_0cvxkllq8`?4>>2)zaL z6B0}mg#J@ArDp1qpU9#leA$iaDfp@$D0B7jU(ayxbberMgr-*m8!H>Cq;7=KKuvp} X4Y;*2frjK~IS!Zt>RH3LKVawuQX6!e literal 772 zcmcJN&5FWM4293SPa$0jtuVL~Vf;a+Ac){7x~qECD@8>s%)Gqgr`4)Zs3XXwB_t=w zIZ6Hwj!G)3poSua+VKji^11p}pt|;od26lkRPcwI@XQ%$HI^mMg7{UN*qBI^R%mE} zFTP}Uh%Sjw@C0h6s1|llp1w5X-%(eiOGXiH4t5s8e~O8lcDd)`Q1zXvLuL@=s2(wm zK6*b;>tUCfU^3yW>MX>6RoArPopxfhJ=f3Ee%oTgCMNTTja{!|$t^6n247Pwqfaiu v(!-~R#lInXx)y_HP0xAG9A;qZOu&%oaYF;DJkB8t;ln85b=&Z3%p4s7%m;Vn diff --git a/Classes/LinphoneUI/fr.lproj/UIHistoryCell.strings b/Classes/LinphoneUI/fr.lproj/UIHistoryCell.strings index c0f90ab0f2fc756b23f24a3fca2f36264e50d632..edd27eab2a2f881f3647806b46a439167309700f 100644 GIT binary patch literal 234 zcmdAD74Ek{X~NR literal 462 zcmcJL%?`mp6ot>aPcfNg6F;#PD-9_UHXfjwh7mMj7IVWz^M5iFTAxhsSEFSR?Lc%FwLZ+$Kt??Cx_Y4#mmq@Zv1);pC010;JF2giY8q6ovOZg@$EjuK8)xhIX>Rlq58aO^V46(~Xe@C@2zxWDLAfU!zY}D`Q(= z+`7ZC@#082=ev^ct<)}1hxt;XYg8Te`u>El>Q|)5MrmcP)KY$_)uJe}80E{k;KUNE zS-i!ayb`Q>-}JV|lE7{X_+cI|T+}Lif~Bph|Msd>4k_$VDZyhaA7dgVolr*A_MJ@| zwSxd*!Ih6yj-%@>K-n;MbPbxr2-dOJJJo?%9wdJqx6TON5>8e=LxXU_C`NsX36}&t zHh=QpzfiN@s6+huglxhX2?XZ^b;R3S$SL*}6h}d1G{;XFdM<#-I;>R>gy*@ z922hy`d~FaTJ;?6_+26SG=39bXXrpr*|_`ittaBvqjRwBG|dPmt?^F>b`-7kUOfq4C%WE#QLo<8*-I#MmY literal 3802 zcmds(-BKDs5QWb*PqF2tRf|aeB&l3LLJWx|Bw!M)+#mw35;5|l=8f_ec^zLO$v3ks zx-z<3P@$~Umh0@$)6?h7>F)XSJEJwN%F`?L)YO2-(@XwVw4;i)nA=yI-&XX3*&*W# z-jU5AkmAF9v)wzB*`Q+MK}iq9ivTdb|<_0-!sE86n)Lml2N zePDgK?<&4Cj9nI4yo6D$Og+sLSB4$#@+&zmr2G;v0pJ-%z~xNn(j@wEkuCiW9JZS(y}d41*UC*!i84^`a+e5Z%n`kmoatQvEbxh&iW(?+xS8Q$J0K$&%F z$VMu}TQ&zv)JD^9$6$`1X_rcDde2RZbcic6aV&~8s)`T0b9Cud?_unV<+P5L3NxI} zTHM8H*aQEU&QU~1Rl0v8p>77$)*&1g=;pqj*?U!7mo5tzhrh^#8nvp*+vJ7uvZxMc z`(J?f=#J~j^uVO<*PnF1fORIjO7zq?LYIXLVfttm#XZk$+JklXEq?^!0oX67J3e>( z0i80=fXl+gz&vp!ak2bc{+Nof0TbsiW^Vaqav;u!%i^Kl^3!JeIkoZ>ya6{VpF8)F P-rYj&vT&)uo#}r80o^(j diff --git a/Classes/fr.lproj/AssistantLinkView.strings b/Classes/fr.lproj/AssistantLinkView.strings index 2ecf6c760cf63f52899bf7cb6d05dc9dc80bec0d..5d2b27ed23cddc5852e7623d9e60705981ec8591 100644 GIT binary patch literal 3241 zcmc&$QFod!7=8Cw~yp1wzCJc_SDUy6==J?g%Bk!f`ve9fBgc*ga)u{=h+@S z$Mc2Ud%w%gM_NaRV8BougRkJg8I6%k*ufWoFeY(KUCJomjqgJWVuHqi-1a7tJ^>K2~vyJ1C`5pY2I5S`j z1{24$U!Wz!$k}T^ns}@Fcgla_OAjq!=Ogq6-NF}D_~*VT>Z+EP_|i`}4+DWwZ_FSf zh?8tF%Z>JKPP;vLJcqZlMWI0zn*7l5^w%Wi1Yxv7%%+?X8I$^iDAKBm5{e3ngwe@u zk*70Cm?wbN3}NDj%p+08|E8n&-jASZz>#~uWtD|?X>ZP&ZPvN=aZXRuTX=`y`(Gzp z4YJVWztJ=Rn)GeY=`{g9N{N^pVtj1E1R!8tSm2IwU;IrGqaNZk3;+&2(gt=Y{;bxF zi13J~Be3?vfPf%bxx&ztM08GZzTvH~nxL2f0W6ldPrwJ@(FNr>6cFPqy!))XFB`3P zF4OiAXVI=IRKiw4(pBsud9%w0$Zgn5*M%Te*n9G( zkMY1^FsIS#F-`e2iZ+i4L4j9X&=AJvcfUXbElTD#W6`B;)qc%z_jq7KI zzM`&bDWUwq(BH>#aGeuqC-Bqc!&Z$fG&%F?LEJscZXf0A+AemP>U^7Se0d<%=hKNv z6rdH+DDlvQ*Av*gO^b$Ap{Zeoq^poe#HS0Ni61AP{O}L_Fccq${A3rWUegkdZJ0O^ zf3pfLs?gRE^E}i-Hi{~xDa)iqn7AjuR!<2mmr{$SOW7tgdzYDn>G{MQ0@JzZ4`-Se wY4;K?=dkaM3olfmEu-*s|8s1HWsNM`s9ek+q9wF%U}rWhs8m5wl{UA213y;j2LJ#7 literal 6746 zcmd^^&vF_^5XSqgr=WC6l^sap*s+sT4hSg~IT9iQ%SkF136P9}kcGwf1LwNEvTfU8?8w@@ zTet5SJ+vlA+tGD+)8S3W1~#6eOujEW+H)IP4~hccwD}#{g_}n!bvOsisrP>VJ?1=x zuF1%@Z9?gJ`O>cJ7c1H~yeV>OZvVw2_+R5bMp3#Izw0-vlqYfpt_s$In*yty!{sp? zpCCb>c?aBUY?|T>*#^*yvo(%9n$>q#e4R+VgZx$dndjeZ4_oYWSH?;e_f)mUJ!vfA zBWOjOY`OIhSi8a97QBd$U90iDwUWI5l_x#JcBlBzSN5E13pt)lG?{o(jNHeb=6}K?Dvs6n&nLJib&RdfP6371#dD1f%?Hi!f*tPkH7r=$PwU;^1V? zb7B;EJxBa~fWtoA2{}FXQsT~4vS!Nnd>%r>MCXZG)0Mw z5L-9M``Etb(As%3Mjo#(Be`mL0q%@JH$QuU_DHp%SR|@#e zA(HD(m5i@x#!jcgk%HC9hjo50U4*^iPNO5Ps*zg!hMGaPkO!8aXmB5*T#>09T%e|s zy@Uf7&S!gWw8z+)tI706{PdY!l}U4Ih0onrnoBjEX7e0-pC2%v#-4Jv`0|8Pl}Ex= z!Oh=g{Y(2UGcMA$p2vYSMJzj1oxG|)M>luUxNu&hl0Z*m@G-&0MCaZz&71KcNy|P% z2dXDKd>w31vOk!w=2r5WOzh-!q?HEfR(kR}|G?9^Nwd=WkomeCZM$Z~Ygg2o%cE=H z;XPy0brZeIR>y8$$<*XoRfw;sWp9moooC^}YDgy}nAb(H{BjJe*{{_3s=vEj6%W79 zMShGT8v`ro)z{gJto143<363rHToG4*+nXb5%D`45iyES86RuT;}fKj-}_!kHODlL z>5b1oeWEycoshDJ2PARiqbM8ymV0YV%eS#Zx&xAb28n#ccfpm8<2oSkF%k?wr!HrL z*&TA_koZpe#A#f)K<@Db+l0UGcverWQ>ZOunWmq{p=7@K^={XFrfbA})kMo#%UfC< zyf9_CH4e~9m3Y{~C)9l%(96$SBSw)wDo&k`$%aDWP(dqS2R^f~_2cxT+Oy}Zs45`D z!~EXCa*Z8PW$vP@BapUeKOxI_PGd2Oyc$y$QJjk7BzviDSMPtd1vQm>vJY7KI zhOX|q#_77orJ+CxEqyK|0X>jjB{a=kT&VUqm6nv`=K=L5CMTyB7iT7A=46&sf^7%s zbjeK2Ni9ONGsG=NH`!0uFf0jbCqh6E(-^P|VCIl$y;EXxHk#$BDbBji?z*W_AXkAr Mj1a(OIm8q$0Q8t=ivR!s literal 716 zcmcJNPY=OB5XIlQpF(<+v?7k;fFezV#J_`E(MS;zRQU4vRkcVOje~4vve|k2=DnT0 zT@95~R6$K`}Rify>{u>W{>m2XC7W^iQ Zh$ii8n!Z*t<1ECl-Ul#8a}1yChVB_yYYhMZ diff --git a/Classes/fr.lproj/AssistantViewScreens.strings b/Classes/fr.lproj/AssistantViewScreens.strings index e79b9b67726f881b7b32a186b552b6a5b1aa8205..f9a5a19d369befc316394c0f40a26b988e52bb68 100644 GIT binary patch literal 17096 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 diff --git a/Classes/fr.lproj/CallIncomingView.strings b/Classes/fr.lproj/CallIncomingView.strings index b59db541e401a7866f2ed692ca8fa70dc59469d4..214f540bb24becf813a1f6d3f32ca6dba4183d03 100644 GIT binary patch literal 2248 zcmb`IUvJtl6vf~96cLY=Zc5dTKbj^jgo`}L`I<5;V86wWC_q+Fx*1g&SH$x}MaTcag;q@*YfUI(pmx-8)+ z;1+sD9Az5!Y9PQ@0~1+4uP4~`Sh{esG%K7J(zb~aA)B7526Ysn4%ooi&N%t?k{05h6U-!7`0%EVVXyMEx(p) zX^oivnp@;Ua5#|YSrC<=woskbYkwzY70u!19`N10peW%zlmk`PL($l6+Q$%P;Q3?0 zRD!9?+DO0VNdY$L6sQl^4if>CaP9zd2pR?CIE3i}Wm1UpE^Kp xA*3I~^_6feUZ1i({|e0rIfiZuf%98Ns0B54d(6&JL*X;vFYr*v3`#gy!(YFStEm70 literal 4530 zcmd6r?Q_yV5XSd2e?_JrJ9CI*g?1cg478)zN~NRL`mGd%RD@Py!GB);-G#R#N5k=^ zlPL+wX78TeXP;gA=XXw?$i8?|k*-|JfWwoQ{O!p{sY+RXO32Zd9(P`F|5|Q1TE;Sv zh6KD9VDU@Nc-G)ack1DoZ#U+7kE`hYb8K$S{Sg1hQ`_SB`9Ax}ab1-BQfuu^JzU`R zEBhUA{$af3@U%U2{x}kMpnn`&DS@rzjBS3cWzkjTI}vOXjZb8#CByM9TryZOnGa1S zLX-UmuJ!jQ!k#S3=TkXKpw@R>bLz`%Jx`is*CXnhjgvj;$Y^;BA<-D&VZ!uV zJa+JzXN5k`UcsS2?)a{`-Q%ib)@*U75At?qz7Jud!c&9K5ne}$Sd=7fk!MHIzGj?W zZD(2WSg)$*x%fEm4?+H!2s|Ta3N|+2P4vd3%54_z9ElW3*Wt3Yk&ZymWL8&9S3Vd; z>*8&~kgC*B$a8szX4T|1_bcL~cxM?*sKAy!*oPd7I;`?uJOVb0Je<=!OYUaI3t!%I zoUp#fXN?_SupfQa-re(WUvFLXCse$yfO|5dh+3JeIC`7K?$Ns_qDxOZC68}F-l5|u zRO3LBoxo<{%76F1_isBxT?$lzGWDcj?G@aOv%+TK8kNm-jGtSMO{23aM~SAUQyX6)JbiInH96#b%JK$4VCk3z$>1f;Z_#itcpSFqhh z;GXHP2KE5#dXn*Bc{~C(i~l_W%PZ4>{5L^fLzNU0(3jLKYqN00Kfj;VXSnTXbI1%^ z0DFr`OIJc5&l3!=S?nSLS&FvWuZP9I=|a?7t3i>PP|Wncd`m?lZDG^A)pq7S*KUUq XL$p9o_4>aais@yTii6E!GmQ8P&Wg0O diff --git a/Classes/fr.lproj/CallOutgoingView.strings b/Classes/fr.lproj/CallOutgoingView.strings index 71c9f2dceefc345012fdbdce203638fdaafaf0bd..d45d17d129110acda4581c47e8afc4498dd79c63 100644 GIT binary patch literal 2824 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 diff --git a/Classes/fr.lproj/ChatConversationCreateView.strings b/Classes/fr.lproj/ChatConversationCreateView.strings index eb7329b4964405edf1bb979f545865dec86b6809..5b12742ff1ca44bf25996be3e5861e85ac88db8f 100644 GIT binary patch literal 123 zcmdivNDap@MvQ|h;PEIW@&P>Y8$tO=z8J+xzqMz~_llnlgfR(2I;SpW&lZ{!mw(Vgcpd%uFkcbO z`W+56qu)2Tg<`XG8B&xng+eYNn|KRFs8Sb7mAX#q6s1bNx{qQn{c(G3-(v_f!$TXQ zDAvkCu~yb8rlWPrj2u})tMY~p|MazNf;swDWxaAnya+}>G28Fdgc?@PDjkni+}t0&8ZLJKQP_~cf3OjcZmRX?m_l^`-*8V@kburY%#*VUc61n-7a?xG0NR2%`7SI- zKxZMzrP|0ngUjF%?hf#qnL=Lz?>d9&HIh07$F^YAh2G{M8m#;HWfh!(JOzkVvo~=1O_nUfa(wAua%{or% zWsAL}L7){Tw#U0O|NL{<{r#&XuVh>TsYqR_a>WSbJ%3}eC#$j`9ceQzCFaRHo>!&D zI5Cou97)7?5fV4D&buSt)cZ3m80m}Nms`9&=Y0+7Raxvy&Gp`oqe+S1b23qAm9hQ| z+svvucBEzIDlyOKtlD9rTWCz(oNQGu;wvd4B&_|F4aWW&-1BmcN@L0nIUC!*0#w9+LX>Z z;GS#VJY9#2s+50$G>JToCgpvemu6+k@{&IB^-`9P0kQrP9UAcDtf#@~ZLhPETCKUL z&d6iuw(LttHrwI422!c-(|j{6cO`sr*@dr~DFgE2PjpH&j0}ro?uy0kaJ;C1M+`EW zf$zs;LB7c;XsqD1P|Dc<-QtEz!WWZyw247Q(I{sBK3qEK>*7;sHuz3!SHi;p>vX1i zZkDc)smca}7T2zPh9L=dDLY&ezDQK$E1ETk*TCe{fu=<=+iiXDjW$yj^ZOcls^v>`W+9zdng3b) zT@s`A`*4ge)^%=Tt7gBhv44tQ!DhTm!q@W0?MxR<&eL94*;k}GZqtV!fWoY~mWlga z%l|G3UlewTgeId!WN1IxLc642Px8`eBf%e)15-yr*@P9LToBQ3EL2<)&kL2}-NF$) zMFb90)W%Texm&T&a7p;0;omI`mnF1|PW!ZCu~H*H-hx1tTB%*ro_w-!a7p;$@P9hV z(O1q>;`tC9mdT(Y{Y@K0vX#Rn@f<4W!}eEabPifc %_Ss%)lg@;SRmmN=G|CN9C z5wqi(1BGk(!u1klHY_Y$62oDk+{>#Yc~PNf5b4=N*VHN9QMAc^dK!_}OE#&Z73@8b zk6b(Ks_dPnOTrZq^L$-1-J{lV?I*9yz3vy0^44neRcM9tLTYfhaA|%`Uc%)NE}6A dk*y6b311dGtrJ6+MMZ4ByOYdfp5%~{`~m+lpyvPp diff --git a/Classes/fr.lproj/ChatsListView.strings b/Classes/fr.lproj/ChatsListView.strings index b8dc7d434ee6336616437ef6b9963ca9724da874..9cded8d16452c4e1cb49d1e90343012d7298a4d2 100644 GIT binary patch literal 789 zcmbV~TTjA35QX3OS8V!7G9VbEiSY$N(x^bhOUm1J8RL?*o4QkkfA6-|Y+Y;&yq=kS z=gfumI{aD-YxxzAp5kFaWU}az3n|fBl`5@hcPCQRWy1(H5^|xnYni2MloXH3!tL7_ zSVQRUqoR<-*zXvXp(7D)sqCE^E={(<4=YHS%m(iFiwx!o>|Xn|yBE48 zqVn5kgs#U9|FAW1@&YPPYI`pnGyFd>rufNM%F4o>r#e;h4$HF%#5XV>{zUOYTa=J@ z;8w;fMZr08e21hDoAZl$A6{q+@l83+E7Z4j@4FO9>dWAPg2(^=tv_C89jAb*=N13CZpwNx@yQ}pG(GA z=foOB+TjT~|Eoo`=bt#5RUtL)=oDQFI$GFDZ`96a*9Yc>0S?#cVE z4XSdsCVdcgP@_tvq(Qx_y@+GtGFH{(?Hh~ri@&d%GMr3#>yXxU7x&H)m154ws=|DO cgX$3#;xblMq2fEkFnM|p5eD7F`piU|FLW{hegFUf diff --git a/Classes/fr.lproj/ContactDetailsView.strings b/Classes/fr.lproj/ContactDetailsView.strings index 771a06fae34209a4e61af0f1d4c8321811a32a88..35bf7e5f0c7b6d3842635611821b3d99222746e5 100644 GIT binary patch literal 1432 zcmbW1L2rUU5QXpjiVa7T(Lskfyq_@bp)tW1TY0? zKoH#vq7<50mt(5ZHY&Sjnr6!9RHa7-#4)^gSV2DtRl$osDqf8~Wa|K#OeKz!J*<~- z7$kxy1({dYs+5|LC7WDW1GtM|ZrK7Tg{p|c$g$l~4E0=Mv4qrC-UQvxvH-Q~4f|d$U4y}!domgGvr>o0 z-*a_@MN^JW^vbDlo1_&W~bDWgiaKZS*g4!9rcPOBj^qW?@74A5Zdlf1WP7?t}i4lhx6=VPw3@Z5BzDJ^6R~ E2^kN@2LJ#7 diff --git a/Classes/fr.lproj/ContactsListView.strings b/Classes/fr.lproj/ContactsListView.strings index bf8611f48a6f87a13b9044e05161eba49da79699..5aa27819d2a6313c91653208c181d32c16f7a5a2 100644 GIT binary patch literal 1087 zcmb``K~KUk6bJD8K1H)5Ng+nY4#opGO)#j4f#_~s+i9g~&GwdnpWY5ThSdg^c-%|- zf4{uG1%n>ClB6urB?_0*Nd=%)c!3C|yevf~q=4;=WL(w<#!@1x6%Yy~%7p}8n6nSr zJEt&B>Jvlr-5Uhqu>U(D^hN|hC&o;uk2kIO5ldt(kxc*jI3egGyJ&P zvF#I=X7Gqe>2!@`imMpE@J%y|yypHkfYHl%Yp1&R9pZ6 literal 2276 zcmd6p-A=+l5QXQOr`T{w0>%hNw6Gt8}Bb)rPawav|l9Bk>z4V#cVBQfIySAR5G{qy% z!{br*S!=S=i*~3m)_<;z_ie0iPiWgXAMatf?-8*b{=4i|lWMd_F4;U$LjpRz+G^JWqilXDO!~(=``b8Cri@Q$OFl zgvXWS!Mo1$lGsU%izJUl>*_S*#!x{o5kk-ESrr{rcDmf`pbG6iKl4$A4HqV!y{ z9K%Zx@zGV1JQn5SIm9yW&8Ph`z@jRf*c=D__YfxIir1c?itO8J&?+=^UY${WI?T2h z1>M=uQSY(tFYN5W${M_Mty*s6Tsj o4zMALzXO|QT;I&vpZ+5&zU=b-kVj8#o;|)NE@G@Cc`TomckCN%hX4Qo diff --git a/Classes/fr.lproj/CountryListView.strings b/Classes/fr.lproj/CountryListView.strings index af293dd97f5543141ed8c2e94a4818fccbc79a50..0d1984d051784ef0d2c4e62fa61afa6004cfc3f8 100644 GIT binary patch literal 241 zcmd(JapJ&(ihI(e<_rhgysf(8DwY>D%tre*1^Yx-z{M+8En)RZ+Rh|2*l!I^1(#d)o?K3tg5ie20zC z#k)0rcZZ*Ic%Dp?G`~8RrgNusU$nhYHl;O5YJ;~RaXKp8|2MuEJI{$Xt}${xQdYHpo<5@XDejzy#2=%7 z^vd^k*!&QoOYfgL%ciNfyv;M(I-;!a{5QdjtTT)qwfJShwv5|(76l*H$s z&#oA;nMAdOCD|+`@%fjL*iTp05|*S@O5*b`BUv}cM74w^@h4O97w_{gBiS&MsFtuK zjnbI-{L4r-%_OQNEQvpvieuvQFC%H0NmNT%k}hj%k5zhkM-}Jlqe!e(<<-@1>HB`x zJ^iib`#M+@qh_vBip0vKTEfQYkP&)h&$K*7&0M_{iIwN8uCP?Qt|z}Op{k?BTB+pz zTT+>o?2K6_{o^#v_ONtq_Pl*|zM?VW4MqA^`O@UBvOJCr$e1TqnU%QB+mY~QH!11Q i^R|TbM2FNvj&kb7-a@GD-9?-Ci!oy@r;MI!6?_2fdN#5E diff --git a/Classes/fr.lproj/DialerView~ipad.strings b/Classes/fr.lproj/DialerView~ipad.strings index 0a4fa02e893167a138bbf5b5696bf2c3fc2151af..54dab6d90da3877b56e2431a19194a54e68624ff 100644 GIT binary patch literal 4242 zcmb`KOLN*l41n+a3J=H3s4+I-F`XWgkR~Jqng^-d+j?;V#NY%Bf&BXJf;VdfYAf0s z$d*1ymbBW!;em4+i|N$);uO2h`)HAV9Yk@j_}LLsM$_pa9K?fk*%DzC>vzt^X*6-f z*b%+nL_Jq8cEVvK(`G|IF020shlOJK)3$nXw|=2O`|uJA8TFI6rRNAY|0ECF7f%79W~LUdB|N%q|g;=2??sW2f&7*aBj5(QBz zOh^SobpCX`_&xY2(A|{H-7r3Zhh) z5D!Ci{#KAG1yL$Yh%Tm$NOb;IkQxP1Don^-Dkhj?`q3x*ajnHf=?=`tQ#LJGCRe5iZ zC@i+Xbl_CP@fOxh3C|QOz76R^w5Bt1^D9! zliUvh1?8VpcqW!#pW$W#wV{dB3MeRlM&j{RbC>Y$!J<9OBDDev${%NVFrNkY(42t# z_AP^20R`m`>K)_lyi|wd3fwNjjB5oHcdv1`V-lS&U3jX%lrFShL3Ylwc&&iq@-HE%E;h<+ r*c!rR8>+3JnFCfpIe^SD%S>N@@^wB-THueMe_>94E1(=uCJMg*F8=-1 literal 8646 zcmd^^ZBx@g5Xbj*KShR@%mhnQpp4^-Qjw=Zl?qnh^$7$DtNOt0t+p9a*! z_;Y;QrY^3&l0Tykz8&CiOt)0WcO4~bp0i0;_@+UUS_-oulw!{6&CHt?%+jC3Kp zLoXqvwJ3)(E<(=&K9^}}rr8&MJweaUv)y5A0&V)C4n~8%nxlZ{&tr>`vK(9EBMp^} zG^^G>O7CIz30*1+u|0-=&?kwl-Wxp}qgY}+9ikfY@ zq%K~~EK6>{24h@9SVQhlLHL_Ak15f5C}DhtN2Fe(XK_nnd^?RKpkj=KN2DZr7PllT z8EX>Ia)M-8OrmFTOR}0tV*Jl|S3rT7M9<=uWG$1#_}`R79$ob;Zb>ScB*y=yBrD=I z(X+TEF_9^K#~c5flB|kJ^ek>kN||e7{BKIKCMMCdxFs=>DSb_h|4m6MViG-zTaqSn zY8zSl@ro)) zc|^+da4xr=x1nnCiwvq|svuWtaFE^aMR1N8t`Hg&wVU}|}FQN{UUgtg`)yT6K}zIhrQ@yT@MgX zqNFwnDXG@Nt@mct(VNsl@5)CngV(f3U(nNtlG-GsqZk&tK6Wim_OSjq||x5Z<#l? zor9fY+b;awN1volA7U1;Nk}d56k?ls-<0MH6V%^z*dRc3J=NG+kYD9}$j CTp{rQ diff --git a/Classes/fr.lproj/FirstLoginView.strings b/Classes/fr.lproj/FirstLoginView.strings index f29da653b9bdc8871c9e38c1cf3210ca690208ce..90ed6cbd7a0ceda099e53e4afb2c6eb909d42518 100644 GIT binary patch literal 3572 zcmchZ$#UW_5QgtOg)7HYHCdQ2P*ZbYGl2q3Si&SXVGD2&HrOUCPajN4Zfv2L%+%!i z|oa-W6F--_|$XAf*w9F z#&6UN8r4v~eVKrD4>i_1{BV7fIT5n5(N)|jlZj_hUI&5eC{xgBV9qq+SQ=R_*)Ew0 z>%o2rTfHbUi3C+9lA$so$MqJ34eWr?u!NRTZ*;!EKM6m!fX63s$7UaFgTrZrn3@w% zPusa`PcuDgQ75no^OM|F2bvxje+HuNNXUjpN1)0nErY7jE=iT%)d$d>!|+KEQ9z=I zOe1tl{r<@4RTEX^YzmtyG*=J2Din}`u}R85O;X{p2=xj4d~Ijr*4&Ddk1V9a25*45|Ju`yx_uHJEF{VrA7HT9KyT+`T3RuQBXBDGE(uy zo`^n-m52bD7%heswpZn+C$hdcUoYM$~Vs2K3Hb2$nH>}Jy8Qles7UKTkhHQ~7$ zu8#2KK|yAsM;dk5uk|{mb}dmMX%}EO0skSqFd+>Eq+zUz@|B6PtO_i2Fz&?~Lg7D6 z3<7wOC}5EnPmJo#iA~O|xPaar6wMzTi2@>3PRTC+_13fXXYgL3*$)5Sgr|#ws@0co zJ$$8NmCxUX(7lB>JI|RYVC5K_tTnk?arR=A)!2u^1eUE4r=Wloj7_76JG?yqdicbI zaSmqPIj5n3G}+@)>e=1nJ5$JY;bC78%t(-#!XZgapPb?OH|w2jVAXhtr{>vVp zk literal 7398 zcmds+TT|L#5Qg{KU%`0ej5D!Sd(i3hLKIp%f+z5Fhi58UIe6k9`zP8y`-K>t`>O17wZ^9xzWF%`?B@rPB4@(W)wtTG{2c;NfrUZdCRqDh+uRJYg7sRhYHY%)Da#d90X+ia@$f|s!LW(1bh`oAPDT}OMgrL5)b~j}XyeN@UMUw;yZkwJKB;fMSHt$luqZ6yZ$TDfWOtexD1mQH z&iF3NdLK&5!a~`-W-gUnu7O~aV;eLZFqt3yLHssL43EHYgQaGzE*~TLvMekl1=cH( zp(ScFLu7m};$eC{=9-i5aFs_smE}Ln9v!2%UM-8a%v=`UI1w2QbEVPo*I+JH5;u<7 z1I;jKM`R_7`taaD-4S`%pb)7D%OYt-6!1m)SJ^c~*YrK~)yQ*sY#F}3c5JO|nE^=> z#gnD4UW2?PvwZKdGxB}-`z1G#n}Rg^)u zvMemD-D}3l-$8EBzUd5i{2bXOj_>{Z+jc)Uv2$=Wu#Q|;%WHB_PXR;guSSE*Kv zzozoeD0W{IXEOHL#Xsep1+<7KTX1loV1gZKSy)(Ki+##yuN=y&2!;Y@kLR|6jqb}k zr$3sgub@8#cr6PXuc}woUlZ*25`Alh&n8}!@S@zATa)g{QL)k?IJL{3(_M5V5tgznETrjAelM>gtJL)t(P*Hc zbgn8q^yy$+r|UX?z{eb>fUYiX3(;* z&@@BRYwG*X-Z diff --git a/Classes/fr.lproj/HistoryDetailsView.strings b/Classes/fr.lproj/HistoryDetailsView.strings index 11b0cfe7ea4155b0c21aeff4a3a521f9206000f1..da69806c283376b2aa2d278fccbe2a4a08c818a7 100644 GIT binary patch literal 2290 zcmb_dT~ER=6n*DcG(4JIL<|sOOyt8Th$Ct+;#;?sZMv<56%>EH3|gAqSqI`Hhu(Y6 zJ-t0Eot}_xNRxzIlJdCUSqQ=7@&%!e!;&PhgD?=QA+=eU9_Uc#ef{Uieq)a4_fn{} z{(W*`=VE{_Fu1ffeR=p3=u&LwT_+{BCPv4YJ|h3qkn z80M}k?s^gTw%Wuj*r!Mx8gM@*J^mX{dUWHaK8w2+TwU9BiQvT9x{5}sSLI0cs%a!# zkLmwx=QZ!Z;uDfyQ)cgjjB3J$=5B%j9bf3Vwzm|4r;D9_h(uHVh QK|6rf*eZ%bcPR9@HWbF|fBXBZJ^I|e=yT4|mx;7V#Q!VqK7QYT zT*Cbl>({~3gQxAKV@g&XGu5{4yd14og8>+Y#9`{g#*pbe&FMudQ)a}Srx(20s7OR* z82xxEOg+HwynOt<;oO4>dnr6@7OwcLo5==!!{m@_q_@P;P=_oU)oyWDXS~HsmTMPH zoL#-PhzCz3>TR>g#@RRZHLiqZ{F+xOo7MG0?V$O-zJaN)GksT(;)~6~l`rej{Y0q} z{WGle;7A)rcyPw->Vus-f=RPEQq+4eFgToZ?&wnG6b?2E8%F|aug1^la2>w(VioIh z_k+=h(NND&ln%$B@962z$kRs5>=q-&-+A0wO=TDBbjm8>olmD!-2fq5u!y3!kC~6>@t<4fy&%cXgZ61DnNT%kVNg`Sh;S z7V#tlY!)^KEaTU_U1GBxM##6Z(Sk#m;_D@QVERkaX5q@0$KPSp`S$${0tJ2MT-GNY lr0T|IVdKa{b{L!GP7{?WgH}NINJ&03X6ZNn`QXj`$;>|k$*vG%>sBB z6j9G^`W1B=&3ZZeU$$xbBsYc33mxKig;?%CV7&VDntw=N9dc$J`&mrFg1oF@~j`rN#z5 z{u}epEcVdmx2#;X57ai$2otpnsO?97uW9?hwM$=JbYdTk=zoQImiXO3ZLb{4v4=J$ z6id%jjc2qTsmm}sspMydQfrA)95#JsBxrlMPl<0d;~8_zMyQ!UsQCv7?ZU6G6qJVf%OWhZYp z4A{|2icd@*8QW)c>2K+W;#r@+>N@JULKS_^qbeM}-NZ?!Y5Xr#1`!uz_U*@oIs4Bc z9t&LZ-NOxz5~!qUsCHVjV diff --git a/Classes/fr.lproj/ImageView.strings b/Classes/fr.lproj/ImageView.strings index abd98de6af54ed959213323d627d19a48f313a92..9843fd6553db88f54e4822978b762e622cc4a87a 100644 GIT binary patch literal 143 zcmdivNDap@MvQ|h;PEIW@&P>Y8$tB!j{Yb+Zd}%k#{E`nB}AkOcHFjZ?yA9v1+v4lQW_ literal 298 zcma)%y$ZrW5QM+_p5jOuP_eQQ8?^~Y1VOBmXmNT(A-M!!UL8V=je;z4$*2^Tg15-v^xGA?%pY{5&{2JBY5aYkxMT1JJe+8P(vsbnpe>gR~0FP5K ArT_o{ diff --git a/Classes/fr.lproj/SettingsView.strings b/Classes/fr.lproj/SettingsView.strings index d9b341fb88b7dd4f56a3a6d627c3bb6ae98206cd..fb1d373296a2f3ac80429eb84b58555c0f0ddc0f 100644 GIT binary patch literal 362 zcmaiv!485j5Jd0&iiRUeA@OQF2pU2ndZ2tjSsE-5&~zdC_fjOOLX6khnRz?JcWKxN zt?781_X$p=(h9j-E?iNx=AEE+O=+>{vONu!F6P-XdyQKV?8wjWuz>-&N QNLYr^479?po$nU%0yuPSLjV8( literal 748 zcmbu7&5FW65QOWTrwAT}Rq!f%h^|OL-6hcnP**fj{M$tI4Sg#0%S0nA!6?#94n0*< zRoywCELByOt)>W{MZ$th_dR}ICAsFjv<>hy;iQxk&>G*SRB0C7-;*@^ zlnp-NM}`|+-}wd`f*#X%^_6j&bYgvI3McvQGUYN(E!cU8%2U2dnTmt<%4C~pOE*R( z&!>grqxsx3r_+f@v?tMRhQ3xNrYUnTL3F!yYq9{@a-SCcCk80levS ADgXcg diff --git a/Classes/fr.lproj/ShopView.strings b/Classes/fr.lproj/ShopView.strings index 12785ff8a085749b6b207a6076b62d4d3538a1a9..cf329bbcd2dc8576c4eb870b0fcc4af23057aecf 100644 GIT binary patch literal 231 zcmdivNDap@MvQ|h;PEIW@&P>Y8$ty|j_M)~CcCA9RpkOcHF%~HZJjEf7^Az&+kMwO&i klzxEGf69sf2!j}(AuJ%1}*q+ya7a-76BoY);IDke4W08`r8cz zNf*PI(Q$T?*?c*>`sjl6JJMvL36imL{~a9&v4{shX;qDy9uJAo7rSOC4I* zA|tgGF)jjer6b<8dDBm42=swg25-j4c5FPKCj@&2x-y5A8?Jy z)96!Y#kN(h!_yH88cheN+U5C`Dtgb;SNaw0>K2zb@7*O<1=Xi@QP(JIW;PWZ>J!ay zG4r*^BeL%&Ihr>>HCQ2}5+1Wx^faTn3*j?=!gi_al8NC{)+puqnVyOCbWMKOb0th< zq0z-(VO_L>*$S`oZ4<34sMkh2504J?Jfoot;npzON5)abv#;U6x(=!BFV$FWJ?rd(VY%bGW%~aV`<6j&y20y>R^4y6U!k?Q!kqFzivI*KnKa4)-he zYA?gkg>W<6G@GKlPi*z-Im{yJ8^dXjGr`k6Dj8*%xezX90Vm0!0$gxnXDFJ#ITKdv z7U9Tc6;18(>NeC{`&Eb-XHKZ<4R$Vsi{0kg6y<$NJ!1Si(F49AJDS<%+f)BnJ$(E; zPJOs;Z%$!6f%~PtaDPF+m8q`_;ZopF^2*cV-~T6E=#B29#Eg^8{3q<=|JAd~h4^3p u69OC^@~6<4b6Dqs8DEtVd?R+Khi}gGEW_G`aJk?cU*0+=e8@daclu9dB!OZ8 diff --git a/Classes/fr.lproj/SideMenuView.strings b/Classes/fr.lproj/SideMenuView.strings index a1f126d9b960d8d3673c431bdc4bdf9cb135263f..5993b73622071dcaa649157c112998d213cf8c2c 100644 GIT binary patch literal 238 zcmdg5-u1J(E^Wu+#Uc)Ebpg;_Z2mU!!$WQGAHwDh@<1oS{=DG@M?iwnOyynyadaLG?a Zvo<0rRM*H!x708RYAr$lVJ$*07XUIHMSB1M literal 478 zcmbu5OAEp<5QOKPUr~B2SW!F(BKW#g1y3zreH3dcReXTIUj3wLPw}FJY&MhK$oh d*S@J;<3fzit|r90I^3&{TCJnaUzCn! ZZDm2aZh(cZYfdrLT7&??T0Dkv0RXJTMsWZD literal 478 zcmbu5%L>9U5Jm4gUs19wSkaXrg7{ce1l<(e`Y5$UY_SUZ^Xfs{E+il*A(NTO&CHxU z?nZ6-@-)^#Yn3cd1GZJ9P;+t{#oSr-$)54A*jh7FuDy=L6TG-mEqId=ZBd5Y)an)a zNG)|W!d}!Ne%JMx!r;3ULDSVXm0W!d75-t#DwaUI7t4^pNL46+K83M>H0O-T~V&r0K|r7`LhrzGZANF$4;$iSF@B#l`Q zUBb?2ja0+#EVO3G#Q7*JM4_FB#DI1T(meJotm0)0BaSs4r^LD$#b7yV;xY?SZ9pm% z<;D$0gQJ9F*2D=Njw}Q+hnbA(0%zzH4bche;qQ^wzu~HrfBLHYq5Y!$G_t;@RRG(P zNglov3J#XxtlH&?#gu)0@I^4G5(ZRo{3_+3Dl@@%oX!IK5zM@}CIMNdjO>7e`_IA9 zpp&H>-~HHG@M=oH6))59BV5$C_1KM_KK$L}0{x3|_x^6+$9537KvZ7|c%E-O35BZG zxUh-191iohz?dBwzd6behML<|0c4Op%bOGa@~}fR4sNSK7OyT}=JzXpd;Rg}Lyh7? z((Tk8FQ4q-$-d@74nWt|j$4xgL(GBNDp#9^C{-wPuw~+;)TV%@p#?|-aKTiK!&~+- zSV`lns_p(Q4s^H>a}@_-b_#C1j7-68o)@1VZ4%bZ;?vQ=Fyqy?!6s=B|K@cYJ=f*? z3lkiEv)6v~a$q+%l>EGqY6(aVJvGb2y`e(63bEtnCI>y$yA?51BQ~l!xV!|?IH?F^3Kn5NG~=)-4yPH1(84?oG82#spIqh{bd6&C zx+@fL`J|BpIN;s2*2Uql?_A}XQGAjsBoLN`UqSE5ltUjCmWHQKo;P8lXvXl%J7NfR r*k5Y+pTwOc5zS60$;DSb`)et2VBcovWPPKvese`SKQnYby>b2rw`SNZ delta 59 zcmV-B0L1@_=>wq61F()3vKKlkvyel!1+(-?#1oT%VF;6KU>1}7U=p)zU`|xCl(p;} Rvs%?a0<$>VXc&_|^h_gq8v+0T diff --git a/Settings/InAppSettings.bundle/en.lproj/Advanced.strings b/Settings/InAppSettings.bundle/en.lproj/Advanced.strings index 0c2e24ca3..1523cec6e 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Advanced.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Advanced.strings @@ -12,5 +12,3 @@ "Primary account" = "Primary account"; "Display name" = "Display name"; "Username" = "Username"; -"File sharing" = "File sharing"; -"Server URL" = "Server URL"; diff --git a/Settings/InAppSettings.bundle/en.lproj/Chat.strings b/Settings/InAppSettings.bundle/en.lproj/Chat.strings new file mode 100644 index 000000000..51086e9f7 --- /dev/null +++ b/Settings/InAppSettings.bundle/en.lproj/Chat.strings @@ -0,0 +1,3 @@ +"Encrypt messages with LIME" = "Encrypt messages with LIME"; +"File sharing" = "File sharing"; +"Server URL" = "Server URL"; diff --git a/Settings/InAppSettings.bundle/en.lproj/Root.strings b/Settings/InAppSettings.bundle/en.lproj/Root.strings index 7bc369289..fea930dec 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Root.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Root.strings @@ -10,6 +10,7 @@ "Audio" = "Audio"; "Video" = "Video"; "Call" = "Call"; +"Chat" = "Chat"; "Network" = "Network"; "Tunnel" = "Tunnel"; "Advanced" = "Advanced"; diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index a240fb6b7..4717fb2a8 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -1592,6 +1592,47 @@ 7066FC0B13E830E400EFC6DC /* libvpx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvpx.a; path = "liblinphone-sdk/apple-darwin/lib/libvpx.a"; sourceTree = ""; }; 70E542F213E147E3002BA2C0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 70E542F413E147EB002BA2C0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 8C1C42E61E43408E00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AboutView.strings; sourceTree = ""; }; + 8C1C42E71E43408F00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantLinkView.strings; sourceTree = ""; }; + 8C1C42E81E43409000FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantView.strings; sourceTree = ""; }; + 8C1C42E91E43409000FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantViewScreens.strings; sourceTree = ""; }; + 8C1C42EA1E43409000FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallIncomingView.strings; sourceTree = ""; }; + 8C1C42EB1E43409100FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallOutgoingView.strings; sourceTree = ""; }; + 8C1C42EC1E43409100FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallView.strings; sourceTree = ""; }; + 8C1C42ED1E43409100FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/CallView~ipad.strings"; sourceTree = ""; }; + 8C1C42EE1E43409200FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatConversationCreateView.strings; sourceTree = ""; }; + 8C1C42EF1E43409200FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatConversationView.strings; sourceTree = ""; }; + 8C1C42F01E43409300FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatsListView.strings; sourceTree = ""; }; + 8C1C42F11E43409300FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactDetailsView.strings; sourceTree = ""; }; + 8C1C42F21E43409300FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactsListView.strings; sourceTree = ""; }; + 8C1C42F31E43409400FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CountryListView.strings; sourceTree = ""; }; + 8C1C42F41E43409400FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/DialerView.strings; sourceTree = ""; }; + 8C1C42F51E43409400FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/DialerView~ipad.strings"; sourceTree = ""; }; + 8C1C42F61E43409500FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/FirstLoginView.strings; sourceTree = ""; }; + 8C1C42F71E43409500FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryDetailsView.strings; sourceTree = ""; }; + 8C1C42F81E43409500FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryListView.strings; sourceTree = ""; }; + 8C1C42F91E43409600FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ImageView.strings; sourceTree = ""; }; + 8C1C42FA1E43409600FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UICallConferenceCell.strings; sourceTree = ""; }; + 8C1C42FB1E43409600FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UICallPausedCell.strings; sourceTree = ""; }; + 8C1C42FC1E43409700FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatBubblePhotoCell.strings; sourceTree = ""; }; + 8C1C42FD1E43409700FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatBubbleTextCell.strings; sourceTree = ""; }; + 8C1C42FE1E43409800FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatCell.strings; sourceTree = ""; }; + 8C1C42FF1E43409800FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatCreateCell.strings; sourceTree = ""; }; + 8C1C43001E43409800FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UICompositeView.strings; sourceTree = ""; }; + 8C1C43011E43409900FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/UICompositeView~ipad.strings"; sourceTree = ""; }; + 8C1C43021E43409900FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIConfirmationDialog.strings; sourceTree = ""; }; + 8C1C43031E43409A00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIContactCell.strings; sourceTree = ""; }; + 8C1C43041E43409A00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIContactDetailsCell.strings; sourceTree = ""; }; + 8C1C43051E43409A00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIHistoryCell.strings; sourceTree = ""; }; + 8C1C43061E43409B00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PhoneMainView.strings; sourceTree = ""; }; + 8C1C43071E43409B00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SettingsView.strings; sourceTree = ""; }; + 8C1C43081E43409C00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ShopView.strings; sourceTree = ""; }; + 8C1C43091E43409C00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SideMenuView.strings; sourceTree = ""; }; + 8C1C430A1E43409D00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/SideMenuView~ipad.strings"; sourceTree = ""; }; + 8C1C430B1E43409D00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/StatusBarView.strings; sourceTree = ""; }; + 8C1C430C1E43409D00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/TabBarView.strings; sourceTree = ""; }; + 8C1C430D1E43409E00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main_iPad.strings; sourceTree = ""; }; + 8C1C430E1E43409E00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main_iPhone.strings; sourceTree = ""; }; 8C23BCB71D82AAC3005F19BB /* linphone.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = linphone.entitlements; sourceTree = ""; }; 8C2595D51DEDC8E1007A6424 /* ProviderDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProviderDelegate.h; sourceTree = ""; }; 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProviderDelegate.m; sourceTree = ""; }; @@ -1604,48 +1645,6 @@ 8C5D1B9B1D9BC48100DC6539 /* UIShopTableCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIShopTableCell.xib; sourceTree = ""; }; 8C73477B1D9BA3A00022EE8C /* UserNotifications.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotifications.framework; path = System/Library/Frameworks/UserNotifications.framework; sourceTree = SDKROOT; }; 8CA2004B1D8158440095F859 /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = System/Library/Frameworks/PushKit.framework; sourceTree = SDKROOT; }; - 8CA5F89D1DD093EE00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AboutView.strings; sourceTree = ""; }; - 8CA5F89E1DD093F200E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantLinkView.strings; sourceTree = ""; }; - 8CA5F89F1DD093F200E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantView.strings; sourceTree = ""; }; - 8CA5F8A01DD093F300E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AssistantViewScreens.strings; sourceTree = ""; }; - 8CA5F8A11DD093F400E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallIncomingView.strings; sourceTree = ""; }; - 8CA5F8A21DD093F400E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallOutgoingView.strings; sourceTree = ""; }; - 8CA5F8A31DD093F500E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CallView.strings; sourceTree = ""; }; - 8CA5F8A41DD093F600E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/CallView~ipad.strings"; sourceTree = ""; }; - 8CA5F8A51DD093F600E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatConversationCreateView.strings; sourceTree = ""; }; - 8CA5F8A61DD093F700E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatConversationView.strings; sourceTree = ""; }; - 8CA5F8A71DD093F800E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ChatsListView.strings; sourceTree = ""; }; - 8CA5F8A81DD093F900E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactDetailsView.strings; sourceTree = ""; }; - 8CA5F8A91DD093F900E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ContactsListView.strings; sourceTree = ""; }; - 8CA5F8AA1DD093FA00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/CountryListView.strings; sourceTree = ""; }; - 8CA5F8AB1DD093FB00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/DialerView.strings; sourceTree = ""; }; - 8CA5F8AC1DD093FC00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/DialerView~ipad.strings"; sourceTree = ""; }; - 8CA5F8AD1DD093FC00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/FirstLoginView.strings; sourceTree = ""; }; - 8CA5F8AE1DD093FD00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryDetailsView.strings; sourceTree = ""; }; - 8CA5F8AF1DD093FE00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HistoryListView.strings; sourceTree = ""; }; - 8CA5F8B01DD093FE00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ImageView.strings; sourceTree = ""; }; - 8CA5F8B11DD093FF00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UICallConferenceCell.strings; sourceTree = ""; }; - 8CA5F8B21DD0940000E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UICallPausedCell.strings; sourceTree = ""; }; - 8CA5F8B31DD0940100E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatBubblePhotoCell.strings; sourceTree = ""; }; - 8CA5F8B41DD0940200E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatBubbleTextCell.strings; sourceTree = ""; }; - 8CA5F8B51DD0940200E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatCell.strings; sourceTree = ""; }; - 8CA5F8B61DD0940300E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatCreateCell.strings; sourceTree = ""; }; - 8CA5F8B71DD0940400E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UICompositeView.strings; sourceTree = ""; }; - 8CA5F8B81DD0940500E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/UICompositeView~ipad.strings"; sourceTree = ""; }; - 8CA5F8B91DD0940600E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIConfirmationDialog.strings; sourceTree = ""; }; - 8CA5F8BA1DD0940700E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIContactCell.strings; sourceTree = ""; }; - 8CA5F8BB1DD0940700E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIContactDetailsCell.strings; sourceTree = ""; }; - 8CA5F8BC1DD0940800E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIHistoryCell.strings; sourceTree = ""; }; - 8CA5F8BD1DD0940900E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PhoneMainView.strings; sourceTree = ""; }; - 8CA5F8BE1DD0940A00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SettingsView.strings; sourceTree = ""; }; - 8CA5F8BF1DD0940A00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/ShopView.strings; sourceTree = ""; }; - 8CA5F8C01DD0940B00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SideMenuView.strings; sourceTree = ""; }; - 8CA5F8C11DD0940C00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/SideMenuView~ipad.strings"; sourceTree = ""; }; - 8CA5F8C21DD0940D00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/StatusBarView.strings; sourceTree = ""; }; - 8CA5F8C31DD0940E00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/TabBarView.strings; sourceTree = ""; }; - 8CA5F8C41DD0940F00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main_iPad.strings; sourceTree = ""; }; - 8CA5F8C51DD0941000E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main_iPhone.strings; sourceTree = ""; }; - 8CA5F8CC1DD21DCB00E06627 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; 9EC6C1E01DF96991006C2FD2 /* armv7-apple-darwin.ios */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "armv7-apple-darwin.ios"; path = "liblinphone-sdk/armv7-apple-darwin.ios"; sourceTree = ""; }; 9EC6C1E21DF969AA006C2FD2 /* libturbojpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libturbojpeg.a; path = "liblinphone-sdk/apple-darwin/lib/libturbojpeg.a"; sourceTree = ""; }; C90FAA7615AF54E6002091CB /* HistoryDetailsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsView.h; sourceTree = ""; }; @@ -4069,7 +4068,7 @@ children = ( 570742571D5A0691004B9C84 /* Base */, 570742631D5A1860004B9C84 /* en */, - 8CA5F8BF1DD0940A00E06627 /* fr */, + 8C1C43081E43409C00FE9A91 /* fr */, ); name = ShopView.xib; sourceTree = ""; @@ -4103,7 +4102,7 @@ isa = PBXVariantGroup; children = ( 63058A161B4E821E00EFAE36 /* Base */, - 8CA5F8C41DD0940F00E06627 /* fr */, + 8C1C430D1E43409E00FE9A91 /* fr */, ); name = Main_iPad.storyboard; sourceTree = ""; @@ -4112,7 +4111,7 @@ isa = PBXVariantGroup; children = ( 63058A181B4E821E00EFAE36 /* Base */, - 8CA5F8C51DD0941000E06627 /* fr */, + 8C1C430E1E43409E00FE9A91 /* fr */, ); name = Main_iPhone.storyboard; sourceTree = ""; @@ -4130,7 +4129,7 @@ isa = PBXVariantGroup; children = ( 631098511D4660630041F2B3 /* Base */, - 8CA5F8AA1DD093FA00E06627 /* fr */, + 8C1C42F31E43409400FE9A91 /* fr */, ); name = CountryListView.xib; sourceTree = ""; @@ -4139,7 +4138,7 @@ isa = PBXVariantGroup; children = ( 63130FB11C1ED06900371918 /* Base */, - 8CA5F8C11DD0940C00E06627 /* fr */, + 8C1C430A1E43409D00FE9A91 /* fr */, ); name = "SideMenuView~ipad.xib"; sourceTree = ""; @@ -4148,7 +4147,7 @@ isa = PBXVariantGroup; children = ( 634610111B6140A500548952 /* Base */, - 8CA5F8A21DD093F400E06627 /* fr */, + 8C1C42EB1E43409100FE9A91 /* fr */, ); name = CallOutgoingView.xib; sourceTree = ""; @@ -4158,7 +4157,7 @@ children = ( 636316D21A1DEBCB0009B839 /* Base */, F0AF06F01A24BA760086C9C1 /* ar */, - 8CA5F89D1DD093EE00E06627 /* fr */, + 8C1C42E61E43408E00FE9A91 /* fr */, ); name = AboutView.xib; sourceTree = ""; @@ -4168,7 +4167,7 @@ children = ( 636316D51A1DEC650009B839 /* Base */, F0AF070E1A24BA770086C9C1 /* ar */, - 8CA5F8BE1DD0940A00E06627 /* fr */, + 8C1C43071E43409B00FE9A91 /* fr */, ); name = SettingsView.xib; sourceTree = ""; @@ -4177,7 +4176,7 @@ isa = PBXVariantGroup; children = ( 638F1A611C2021B2004B8E02 /* Base */, - 8CA5F8AC1DD093FC00E06627 /* fr */, + 8C1C42F51E43409400FE9A91 /* fr */, ); name = "DialerView~ipad.xib"; sourceTree = ""; @@ -4186,7 +4185,7 @@ isa = PBXVariantGroup; children = ( 638F1A871C2167C2004B8E02 /* Base */, - 8CA5F8A41DD093F600E06627 /* fr */, + 8C1C42ED1E43409100FE9A91 /* fr */, ); name = "CallView~ipad.xib"; sourceTree = ""; @@ -4195,7 +4194,7 @@ isa = PBXVariantGroup; children = ( 638F1A901C21993D004B8E02 /* Base */, - 8CA5F8B81DD0940500E06627 /* fr */, + 8C1C43011E43409900FE9A91 /* fr */, ); name = "UICompositeView~ipad.xib"; sourceTree = ""; @@ -4205,7 +4204,7 @@ children = ( 639CEAFE1A1DF4D9004DE38F /* Base */, F0AF070C1A24BA770086C9C1 /* ar */, - 8CA5F8C21DD0940D00E06627 /* fr */, + 8C1C430B1E43409D00FE9A91 /* fr */, ); name = StatusBarView.xib; path = LinphoneUI; @@ -4216,7 +4215,7 @@ children = ( 639CEB011A1DF4E4004DE38F /* Base */, F0AF07091A24BA770086C9C1 /* ar */, - 8CA5F8BC1DD0940800E06627 /* fr */, + 8C1C43051E43409A00FE9A91 /* fr */, ); name = UIHistoryCell.xib; sourceTree = ""; @@ -4226,7 +4225,7 @@ children = ( 639CEB041A1DF4EB004DE38F /* Base */, F0AF07041A24BA770086C9C1 /* ar */, - 8CA5F8B71DD0940400E06627 /* fr */, + 8C1C43001E43409800FE9A91 /* fr */, ); name = UICompositeView.xib; sourceTree = ""; @@ -4236,7 +4235,7 @@ children = ( 639CEB0A1A1DF4FA004DE38F /* Base */, F0AF07021A24BA770086C9C1 /* ar */, - 8CA5F8B51DD0940200E06627 /* fr */, + 8C1C42FE1E43409800FE9A91 /* fr */, ); name = UIChatCell.xib; sourceTree = ""; @@ -4245,7 +4244,7 @@ isa = PBXVariantGroup; children = ( 639E9C941C0DB7BE00019A75 /* Base */, - 8CA5F8AD1DD093FC00E06627 /* fr */, + 8C1C42F61E43409500FE9A91 /* fr */, ); name = FirstLoginView.xib; sourceTree = ""; @@ -4254,7 +4253,7 @@ isa = PBXVariantGroup; children = ( 639E9C9E1C0DB7DF00019A75 /* Base */, - 8CA5F8B21DD0940000E06627 /* fr */, + 8C1C42FB1E43409600FE9A91 /* fr */, ); name = UICallPausedCell.xib; sourceTree = ""; @@ -4263,7 +4262,7 @@ isa = PBXVariantGroup; children = ( 639E9CA11C0DB7E500019A75 /* Base */, - 8CA5F8B31DD0940100E06627 /* fr */, + 8C1C42FC1E43409700FE9A91 /* fr */, ); name = UIChatBubblePhotoCell.xib; sourceTree = ""; @@ -4272,7 +4271,7 @@ isa = PBXVariantGroup; children = ( 639E9CA41C0DB7EA00019A75 /* Base */, - 8CA5F8B41DD0940200E06627 /* fr */, + 8C1C42FD1E43409700FE9A91 /* fr */, ); name = UIChatBubbleTextCell.xib; sourceTree = ""; @@ -4281,7 +4280,7 @@ isa = PBXVariantGroup; children = ( 639E9CA71C0DB7F200019A75 /* Base */, - 8CA5F8B61DD0940300E06627 /* fr */, + 8C1C42FF1E43409800FE9A91 /* fr */, ); name = UIChatCreateCell.xib; sourceTree = ""; @@ -4290,7 +4289,7 @@ isa = PBXVariantGroup; children = ( 639E9CAA1C0DB7FB00019A75 /* Base */, - 8CA5F8B91DD0940600E06627 /* fr */, + 8C1C43021E43409900FE9A91 /* fr */, ); name = UIConfirmationDialog.xib; sourceTree = ""; @@ -4299,7 +4298,7 @@ isa = PBXVariantGroup; children = ( 639E9CAD1C0DB80300019A75 /* Base */, - 8CA5F8BB1DD0940700E06627 /* fr */, + 8C1C43041E43409A00FE9A91 /* fr */, ); name = UIContactDetailsCell.xib; sourceTree = ""; @@ -4308,7 +4307,7 @@ isa = PBXVariantGroup; children = ( 639E9CB11C0DB83000019A75 /* Base */, - 8CA5F8C01DD0940B00E06627 /* fr */, + 8C1C43091E43409C00FE9A91 /* fr */, ); name = SideMenuView.xib; sourceTree = ""; @@ -4317,7 +4316,7 @@ isa = PBXVariantGroup; children = ( 639E9CB41C0DB88200019A75 /* Base */, - 8CA5F8BD1DD0940900E06627 /* fr */, + 8C1C43061E43409B00FE9A91 /* fr */, ); name = PhoneMainView.xib; sourceTree = ""; @@ -4332,7 +4331,6 @@ 63AADBDD1B6A0FF200AA16FD /* nl */, 63AADBE11B6A0FF200AA16FD /* ru */, 63AADBE71B6A0FF200AA16FD /* zh_TW */, - 8CA5F8CC1DD21DCB00E06627 /* fr */, ); name = Localizable.strings; sourceTree = ""; @@ -4341,7 +4339,7 @@ isa = PBXVariantGroup; children = ( 63B8D68D1BCBE65600C12B09 /* Base */, - 8CA5F8A51DD093F600E06627 /* fr */, + 8C1C42EE1E43409200FE9A91 /* fr */, ); name = ChatConversationCreateView.xib; sourceTree = ""; @@ -4350,7 +4348,7 @@ isa = PBXVariantGroup; children = ( 63EC8D3A1D7438660066547B /* Base */, - 8CA5F89E1DD093F200E06627 /* fr */, + 8C1C42E71E43408F00FE9A91 /* fr */, ); name = AssistantLinkView.xib; sourceTree = ""; @@ -4359,7 +4357,7 @@ isa = PBXVariantGroup; children = ( 63F1DF521BCE986A00EDED90 /* Base */, - 8CA5F8B11DD093FF00E06627 /* fr */, + 8C1C42FA1E43409600FE9A91 /* fr */, ); name = UICallConferenceCell.xib; sourceTree = ""; @@ -4370,7 +4368,7 @@ F09548221883F15400E8A69B /* Base */, F09548441883F52900E8A69B /* ru */, F0AF06FB1A24BA770086C9C1 /* ar */, - 8CA5F8B01DD093FE00E06627 /* fr */, + 8C1C42F91E43409600FE9A91 /* fr */, ); name = ImageView.xib; sourceTree = ""; @@ -4381,7 +4379,7 @@ F09548181883F15300E8A69B /* Base */, F09548321883F20A00E8A69B /* ru */, F0AF06F11A24BA760086C9C1 /* ar */, - 8CA5F8A61DD093F700E06627 /* fr */, + 8C1C42EF1E43409200FE9A91 /* fr */, ); name = ChatConversationView.xib; sourceTree = ""; @@ -4392,7 +4390,7 @@ F09548191883F15300E8A69B /* Base */, F09548341883F25F00E8A69B /* ru */, F0AF06F21A24BA760086C9C1 /* ar */, - 8CA5F8A71DD093F800E06627 /* fr */, + 8C1C42F01E43409300FE9A91 /* fr */, ); name = ChatsListView.xib; sourceTree = ""; @@ -4403,7 +4401,7 @@ F095481B1883F15300E8A69B /* Base */, F09548381883F29C00E8A69B /* ru */, F0AF06F41A24BA760086C9C1 /* ar */, - 8CA5F8A81DD093F900E06627 /* fr */, + 8C1C42F11E43409300FE9A91 /* fr */, ); name = ContactDetailsView.xib; sourceTree = ""; @@ -4414,7 +4412,7 @@ F095481C1883F15300E8A69B /* Base */, F095483A1883F2CA00E8A69B /* ru */, F0AF06F51A24BA760086C9C1 /* ar */, - 8CA5F8A91DD093F900E06627 /* fr */, + 8C1C42F21E43409300FE9A91 /* fr */, ); name = ContactsListView.xib; sourceTree = ""; @@ -4425,7 +4423,7 @@ F095481D1883F15300E8A69B /* Base */, F095483C1883F2E300E8A69B /* ru */, F0AF06F61A24BA760086C9C1 /* ar */, - 8CA5F8AB1DD093FB00E06627 /* fr */, + 8C1C42F41E43409400FE9A91 /* fr */, ); name = DialerView.xib; sourceTree = ""; @@ -4436,7 +4434,7 @@ F09548201883F15400E8A69B /* Base */, 636316DB1A1DEDD80009B839 /* ru */, F0AF06F91A24BA760086C9C1 /* ar */, - 8CA5F8AE1DD093FD00E06627 /* fr */, + 8C1C42F71E43409500FE9A91 /* fr */, ); name = HistoryDetailsView.xib; sourceTree = ""; @@ -4447,7 +4445,7 @@ F09548211883F15400E8A69B /* Base */, F09548421883F51B00E8A69B /* ru */, F0AF06FA1A24BA770086C9C1 /* ar */, - 8CA5F8AF1DD093FE00E06627 /* fr */, + 8C1C42F81E43409500FE9A91 /* fr */, ); name = HistoryListView.xib; sourceTree = ""; @@ -4458,7 +4456,7 @@ F09548241883F15400E8A69B /* Base */, F09548481883F55800E8A69B /* ru */, F0AF06FD1A24BA770086C9C1 /* ar */, - 8CA5F8A11DD093F400E06627 /* fr */, + 8C1C42EA1E43409000FE9A91 /* fr */, ); name = CallIncomingView.xib; sourceTree = ""; @@ -4469,7 +4467,7 @@ F095482E1883F15500E8A69B /* Base */, F095485A1883F67B00E8A69B /* ru */, F0AF070F1A24BA770086C9C1 /* ar */, - 8CA5F89F1DD093F200E06627 /* fr */, + 8C1C42E81E43409000FE9A91 /* fr */, ); name = AssistantView.xib; sourceTree = ""; @@ -4480,7 +4478,7 @@ F095482C1883F15400E8A69B /* Base */, F09548561883F61600E8A69B /* ru */, F0AF070A1A24BA770086C9C1 /* ar */, - 8CA5F8C31DD0940E00E06627 /* fr */, + 8C1C430C1E43409D00FE9A91 /* fr */, ); name = TabBarView.xib; path = LinphoneUI; @@ -4492,7 +4490,7 @@ F09548231883F15400E8A69B /* Base */, F09548461883F54200E8A69B /* ru */, F0AF06FC1A24BA770086C9C1 /* ar */, - 8CA5F8A31DD093F500E06627 /* fr */, + 8C1C42EC1E43409100FE9A91 /* fr */, ); name = CallView.xib; sourceTree = ""; @@ -4503,7 +4501,7 @@ F09548301883F15500E8A69B /* Base */, F095485E1883F6EA00E8A69B /* ru */, F0AF07111A24BA770086C9C1 /* ar */, - 8CA5F8A01DD093F300E06627 /* fr */, + 8C1C42E91E43409000FE9A91 /* fr */, ); name = AssistantViewScreens.xib; sourceTree = ""; @@ -4513,7 +4511,7 @@ children = ( F088488C19FF8C41007FFCF3 /* Base */, F0AF07061A24BA770086C9C1 /* ar */, - 8CA5F8BA1DD0940700E06627 /* fr */, + 8C1C43031E43409A00FE9A91 /* fr */, ); name = UIContactCell.xib; sourceTree = ""; From 75c4ae4e3287244293beb7a5ba8757c6e4fb1321 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 11:48:52 +0100 Subject: [PATCH 053/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index b66964084..c61c5e133 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit b669640847cb80e53fc85f1bc319cc6ffa0ccbcd +Subproject commit c61c5e13398fb2839b86c1570a34ea6767d73d30 From f363a790fd2b9d6b0d50075b508c68718d7bd0ee Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 14:00:18 +0100 Subject: [PATCH 054/180] enhance translation --- .../ar.lproj/UIChatBubblePhotoCell.strings | Bin 2062 -> 2350 bytes .../ar.lproj/UIChatBubbleTextCell.strings | Bin 1326 -> 1616 bytes .../de.lproj/UIChatBubblePhotoCell.strings | Bin 2130 -> 2446 bytes .../de.lproj/UIChatBubbleTextCell.strings | Bin 1352 -> 1668 bytes .../es_AR.lproj/StatusBarView.strings | Bin 0 -> 1068 bytes .../LinphoneUI/es_AR.lproj/TabBarView.strings | Bin 0 -> 3710 bytes .../es_AR.lproj/UICallConferenceCell.strings | Bin 0 -> 1536 bytes .../es_AR.lproj/UICallPausedCell.strings | Bin 0 -> 1536 bytes .../es_AR.lproj/UIChatBubblePhotoCell.strings | Bin 0 -> 2398 bytes .../es_AR.lproj/UIChatBubbleTextCell.strings | Bin 0 -> 1640 bytes .../LinphoneUI/es_AR.lproj/UIChatCell.strings | Bin 0 -> 1308 bytes .../es_AR.lproj/UIChatCreateCell.strings | Bin 0 -> 462 bytes .../es_AR.lproj/UIConfirmationDialog.strings | Bin 0 -> 822 bytes .../es_AR.lproj/UIContactCell.strings | Bin 0 -> 406 bytes .../es_AR.lproj/UIContactDetailsCell.strings | Bin 0 -> 776 bytes .../es_AR.lproj/UIHistoryCell.strings | Bin 0 -> 478 bytes .../LinphoneUI/fr.lproj/StatusBarView.strings | Bin 528 -> 1076 bytes .../LinphoneUI/fr.lproj/TabBarView.strings | Bin 1824 -> 3686 bytes .../fr.lproj/UICallConferenceCell.strings | Bin 751 -> 1516 bytes .../fr.lproj/UICallPausedCell.strings | Bin 751 -> 1518 bytes .../fr.lproj/UIChatBubblePhotoCell.strings | Bin 1182 -> 2404 bytes .../fr.lproj/UIChatBubbleTextCell.strings | Bin 809 -> 1642 bytes .../LinphoneUI/fr.lproj/UIChatCell.strings | Bin 634 -> 1250 bytes .../fr.lproj/UIChatCreateCell.strings | Bin 230 -> 462 bytes .../fr.lproj/UIConfirmationDialog.strings | Bin 414 -> 832 bytes .../LinphoneUI/fr.lproj/UIContactCell.strings | Bin 198 -> 390 bytes .../fr.lproj/UIContactDetailsCell.strings | Bin 382 -> 772 bytes .../LinphoneUI/fr.lproj/UIHistoryCell.strings | Bin 234 -> 462 bytes .../ja.lproj/UIChatBubblePhotoCell.strings | Bin 2044 -> 2340 bytes .../ja.lproj/UIChatBubbleTextCell.strings | Bin 1300 -> 1596 bytes .../nl.lproj/UIChatBubblePhotoCell.strings | Bin 2142 -> 2438 bytes .../nl.lproj/UIChatBubbleTextCell.strings | Bin 1392 -> 1688 bytes .../pl.lproj/UIChatBubblePhotoCell.strings | Bin 2082 -> 2380 bytes .../pl.lproj/UIChatBubbleTextCell.strings | Bin 1340 -> 1638 bytes .../pt_BR.lproj/UIChatBubblePhotoCell.strings | Bin 2088 -> 2382 bytes .../pt_BR.lproj/UIChatBubbleTextCell.strings | Bin 1336 -> 1630 bytes .../ru.lproj/UICallConferenceCell.strings | Bin 1506 -> 1518 bytes .../ru.lproj/UICallPausedCell.strings | Bin 1506 -> 1518 bytes .../ru.lproj/UIChatBubblePhotoCell.strings | Bin 2076 -> 2400 bytes .../ru.lproj/UIChatBubbleTextCell.strings | Bin 1326 -> 1652 bytes .../LinphoneUI/ru.lproj/UIChatCell.strings | Bin 1270 -> 1266 bytes .../ru.lproj/UIChatCreateCell.strings | Bin 0 -> 474 bytes .../ru.lproj/UIConfirmationDialog.strings | Bin 0 -> 802 bytes .../LinphoneUI/ru.lproj/UIContactCell.strings | Bin 398 -> 410 bytes .../LinphoneUI/ru.lproj/UIHistoryCell.strings | Bin 470 -> 482 bytes .../sv.lproj/UIChatBubblePhotoCell.strings | Bin 2084 -> 2392 bytes .../sv.lproj/UIChatBubbleTextCell.strings | Bin 1334 -> 1642 bytes .../tr.lproj/UIChatBubblePhotoCell.strings | Bin 2044 -> 2342 bytes .../tr.lproj/UIChatBubbleTextCell.strings | Bin 1310 -> 1608 bytes .../zh_CN.lproj/UIChatBubblePhotoCell.strings | Bin 1996 -> 2270 bytes .../zh_CN.lproj/UIChatBubbleTextCell.strings | Bin 1258 -> 1532 bytes .../zh_TW.lproj/UIChatBubblePhotoCell.strings | Bin 1980 -> 2254 bytes .../zh_TW.lproj/UIChatBubbleTextCell.strings | Bin 1258 -> 1532 bytes Classes/ar.lproj/AssistantLinkView.strings | Bin 6434 -> 6248 bytes Classes/ar.lproj/AssistantViewScreens.strings | Bin 34070 -> 33638 bytes Classes/ar.lproj/CallOutgoingView.strings | Bin 5630 -> 5642 bytes Classes/ar.lproj/ChatConversationView.strings | Bin 5914 -> 5926 bytes Classes/ar.lproj/ChatsListView.strings | Bin 1566 -> 1572 bytes Classes/ar.lproj/ContactDetailsView.strings | Bin 2858 -> 2874 bytes Classes/ar.lproj/ContactsListView.strings | Bin 2190 -> 2196 bytes Classes/ar.lproj/CountryListView.strings | Bin 488 -> 472 bytes Classes/ar.lproj/HistoryDetailsView.strings | Bin 4668 -> 4674 bytes Classes/ar.lproj/HistoryListView.strings | Bin 1812 -> 1822 bytes Classes/ar.lproj/ShopView.strings | Bin 2558 -> 2562 bytes Classes/es_AR.lproj/AboutView.strings | Bin 0 -> 3830 bytes Classes/es_AR.lproj/AssistantLinkView.strings | Bin 0 -> 6640 bytes Classes/es_AR.lproj/AssistantView.strings | Bin 0 -> 716 bytes .../es_AR.lproj/AssistantViewScreens.strings | Bin 0 -> 34862 bytes Classes/es_AR.lproj/CallIncomingView.strings | Bin 0 -> 4546 bytes Classes/es_AR.lproj/CallOutgoingView.strings | Bin 0 -> 5686 bytes Classes/es_AR.lproj/CallView.strings | Bin 0 -> 18430 bytes Classes/es_AR.lproj/CallView~ipad.strings | Bin 0 -> 18430 bytes .../ChatConversationCreateView.strings | Bin 0 -> 250 bytes .../es_AR.lproj/ChatConversationView.strings | Bin 0 -> 6046 bytes Classes/es_AR.lproj/ChatsListView.strings | Bin 0 -> 1608 bytes .../es_AR.lproj/ContactDetailsView.strings | Bin 0 -> 2958 bytes Classes/es_AR.lproj/ContactsListView.strings | Bin 0 -> 2290 bytes Classes/es_AR.lproj/CountryListView.strings | Bin 0 -> 490 bytes Classes/es_AR.lproj/DialerView.strings | Bin 0 -> 3736 bytes Classes/es_AR.lproj/DialerView~ipad.strings | Bin 0 -> 8590 bytes Classes/es_AR.lproj/FirstLoginView.strings | Bin 0 -> 7190 bytes .../es_AR.lproj/HistoryDetailsView.strings | Bin 0 -> 4774 bytes Classes/es_AR.lproj/HistoryListView.strings | Bin 0 -> 1874 bytes Classes/es_AR.lproj/ImageView.strings | Bin 0 -> 290 bytes Classes/es_AR.lproj/SettingsView.strings | Bin 0 -> 748 bytes Classes/es_AR.lproj/ShopView.strings | Bin 0 -> 2596 bytes Classes/es_AR.lproj/SideMenuView.strings | Bin 0 -> 478 bytes Classes/es_AR.lproj/SideMenuView~ipad.strings | Bin 0 -> 478 bytes Classes/fr.lproj/AboutView.strings | Bin 1878 -> 3802 bytes Classes/fr.lproj/AssistantLinkView.strings | Bin 3241 -> 6746 bytes Classes/fr.lproj/AssistantView.strings | Bin 354 -> 716 bytes Classes/fr.lproj/AssistantViewScreens.strings | Bin 17096 -> 35774 bytes Classes/fr.lproj/CallIncomingView.strings | Bin 2248 -> 4530 bytes Classes/fr.lproj/CallOutgoingView.strings | Bin 2824 -> 5694 bytes Classes/fr.lproj/CallView.strings | Bin 9116 -> 18524 bytes Classes/fr.lproj/CallView~ipad.strings | Bin 9116 -> 18526 bytes .../ChatConversationCreateView.strings | Bin 123 -> 252 bytes Classes/fr.lproj/ChatConversationView.strings | Bin 2966 -> 6058 bytes Classes/fr.lproj/ChatsListView.strings | Bin 789 -> 1626 bytes Classes/fr.lproj/ContactDetailsView.strings | Bin 1432 -> 2934 bytes Classes/fr.lproj/ContactsListView.strings | Bin 1087 -> 2276 bytes Classes/fr.lproj/CountryListView.strings | Bin 241 -> 486 bytes Classes/fr.lproj/DialerView.strings | Bin 1845 -> 3764 bytes Classes/fr.lproj/DialerView~ipad.strings | Bin 4242 -> 8646 bytes Classes/fr.lproj/FirstLoginView.strings | Bin 3572 -> 7398 bytes Classes/fr.lproj/HistoryDetailsView.strings | Bin 2290 -> 4728 bytes Classes/fr.lproj/HistoryListView.strings | Bin 902 -> 1856 bytes Classes/fr.lproj/ImageView.strings | Bin 143 -> 298 bytes Classes/fr.lproj/SettingsView.strings | Bin 362 -> 748 bytes Classes/fr.lproj/ShopView.strings | Bin 231 -> 2576 bytes Classes/fr.lproj/SideMenuView.strings | Bin 238 -> 478 bytes Classes/fr.lproj/SideMenuView~ipad.strings | Bin 238 -> 478 bytes Classes/pl.lproj/AssistantLinkView.strings | Bin 6514 -> 6470 bytes Classes/pl.lproj/AssistantViewScreens.strings | Bin 34508 -> 34514 bytes Classes/pl.lproj/CountryListView.strings | Bin 488 -> 480 bytes Classes/pl.lproj/ShopView.strings | Bin 2554 -> 2562 bytes Classes/pt_BR.lproj/AssistantLinkView.strings | Bin 6640 -> 6678 bytes .../pt_BR.lproj/AssistantViewScreens.strings | Bin 34688 -> 34676 bytes Classes/pt_BR.lproj/CountryListView.strings | Bin 488 -> 492 bytes Classes/ru.lproj/AboutView.strings | Bin 3770 -> 3794 bytes Classes/ru.lproj/AssistantLinkView.strings | Bin 6594 -> 6644 bytes Classes/ru.lproj/AssistantView.strings | Bin 730 -> 730 bytes Classes/ru.lproj/AssistantViewScreens.strings | Bin 34628 -> 35172 bytes Classes/ru.lproj/CallIncomingView.strings | Bin 4530 -> 4554 bytes Classes/ru.lproj/CallOutgoingView.strings | Bin 5670 -> 5694 bytes Classes/ru.lproj/CallView.strings | Bin 18418 -> 18442 bytes Classes/ru.lproj/CallView~ipad.strings | Bin 18418 -> 18442 bytes Classes/ru.lproj/ContactDetailsView.strings | Bin 2880 -> 2904 bytes Classes/ru.lproj/FirstLoginView.strings | Bin 7138 -> 7214 bytes Classes/ru.lproj/HistoryDetailsView.strings | Bin 4628 -> 4652 bytes Classes/ru.lproj/ShopView.strings | Bin 2554 -> 2566 bytes Classes/ru.lproj/SideMenuView.strings | Bin 0 -> 490 bytes Classes/ru.lproj/SideMenuView~ipad.strings | Bin 0 -> 490 bytes Resources/ar.lproj/Localizable.strings | Bin 57228 -> 60398 bytes Resources/de.lproj/Localizable.strings | Bin 61580 -> 65740 bytes Resources/es_AR.lproj/Localizable.strings | Bin 0 -> 65370 bytes Resources/fr.lproj/Localizable.strings | Bin 60914 -> 65162 bytes Resources/ja.lproj/Localizable.strings | Bin 55044 -> 59150 bytes Resources/nl.lproj/Localizable.strings | Bin 59270 -> 63388 bytes Resources/pl.lproj/Localizable.strings | Bin 59478 -> 63320 bytes Resources/pt_BR.lproj/Localizable.strings | Bin 58508 -> 62652 bytes Resources/ru.lproj/Localizable.strings | Bin 58714 -> 62834 bytes Resources/sv.lproj/Localizable.strings | Bin 58592 -> 62716 bytes Resources/tr.lproj/Localizable.strings | Bin 58790 -> 62898 bytes Resources/zh_CN.lproj/Localizable.strings | Bin 56314 -> 60416 bytes Resources/zh_TW.lproj/Localizable.strings | Bin 51974 -> 56076 bytes .../ar.lproj/Account.strings | Bin 1210 -> 1180 bytes .../ar.lproj/Advanced.strings | Bin 1108 -> 976 bytes .../ar.lproj/Audio.strings | Bin 1418 -> 1452 bytes .../ar.lproj/Chat.strings | Bin 0 -> 256 bytes .../ar.lproj/Network.strings | Bin 1108 -> 1110 bytes .../ar.lproj/Root.strings | Bin 1320 -> 1358 bytes .../de.lproj/Advanced.strings | Bin 1246 -> 1118 bytes .../de.lproj/Audio.strings | Bin 1528 -> 1562 bytes .../de.lproj/Chat.strings | Bin 0 -> 252 bytes .../de.lproj/Root.strings | Bin 1372 -> 1406 bytes .../es_AR.lproj/Account.strings | Bin 0 -> 1292 bytes .../es_AR.lproj/Advanced.strings | Bin 0 -> 1112 bytes .../es_AR.lproj/Audio.strings | Bin 0 -> 1568 bytes .../es_AR.lproj/Call.strings | Bin 0 -> 656 bytes .../es_AR.lproj/Chat.strings | Bin 0 -> 284 bytes .../es_AR.lproj/Network.strings | Bin 0 -> 1182 bytes .../es_AR.lproj/Root.strings | Bin 0 -> 1484 bytes .../es_AR.lproj/Tunnel.strings | Bin 0 -> 124 bytes .../es_AR.lproj/Video.strings | Bin 0 -> 918 bytes .../fr.lproj/Advanced.strings | Bin 1238 -> 1094 bytes .../fr.lproj/Audio.strings | Bin 1460 -> 1494 bytes .../fr.lproj/Chat.strings | Bin 0 -> 278 bytes .../fr.lproj/Root.strings | Bin 1378 -> 1412 bytes .../ja.lproj/Advanced.strings | Bin 982 -> 878 bytes .../ja.lproj/Audio.strings | Bin 1448 -> 1482 bytes .../ja.lproj/Chat.strings | Bin 0 -> 228 bytes .../ja.lproj/Root.strings | Bin 1202 -> 1236 bytes .../nl.lproj/Advanced.strings | Bin 1106 -> 982 bytes .../nl.lproj/Audio.strings | Bin 1448 -> 1482 bytes .../nl.lproj/Chat.strings | Bin 0 -> 248 bytes .../nl.lproj/Root.strings | Bin 1334 -> 1382 bytes .../pl.lproj/Account.strings | Bin 1220 -> 1212 bytes .../pl.lproj/Advanced.strings | Bin 1190 -> 1048 bytes .../pl.lproj/Audio.strings | Bin 1520 -> 1554 bytes .../pl.lproj/Chat.strings | Bin 0 -> 266 bytes .../pl.lproj/Network.strings | Bin 1172 -> 1184 bytes .../pl.lproj/Root.strings | Bin 1372 -> 1406 bytes .../pt_BR.lproj/Account.strings | Bin 1198 -> 1198 bytes .../pt_BR.lproj/Advanced.strings | Bin 1190 -> 1036 bytes .../pt_BR.lproj/Audio.strings | Bin 1496 -> 1530 bytes .../pt_BR.lproj/Chat.strings | Bin 0 -> 278 bytes .../pt_BR.lproj/Network.strings | Bin 1134 -> 1122 bytes .../pt_BR.lproj/Root.strings | Bin 1372 -> 1406 bytes .../ru.lproj/Advanced.strings | Bin 1158 -> 1034 bytes .../ru.lproj/Audio.strings | Bin 1488 -> 1518 bytes .../ru.lproj/Chat.strings | Bin 0 -> 248 bytes .../ru.lproj/Root.strings | Bin 1346 -> 1378 bytes .../sv.lproj/Advanced.strings | Bin 1120 -> 1000 bytes .../sv.lproj/Audio.strings | Bin 1466 -> 1500 bytes .../sv.lproj/Chat.strings | Bin 0 -> 244 bytes .../sv.lproj/Root.strings | Bin 1310 -> 1346 bytes .../tr.lproj/Advanced.strings | Bin 1182 -> 1052 bytes .../tr.lproj/Audio.strings | Bin 1502 -> 1536 bytes .../tr.lproj/Chat.strings | Bin 0 -> 254 bytes .../tr.lproj/Root.strings | Bin 1376 -> 1416 bytes .../zh_CN.lproj/Advanced.strings | Bin 1050 -> 926 bytes .../zh_CN.lproj/Audio.strings | Bin 1318 -> 1352 bytes .../zh_CN.lproj/Root.strings | Bin 1014 -> 1044 bytes .../zh_TW.lproj/Advanced.strings | Bin 876 -> 774 bytes .../zh_TW.lproj/Audio.strings | Bin 1358 -> 1392 bytes .../zh_TW.lproj/Chat.strings | Bin 0 -> 226 bytes .../zh_TW.lproj/Root.strings | Bin 1060 -> 1090 bytes linphone-Info.plist | 4 ++-- 209 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 Classes/LinphoneUI/es_AR.lproj/StatusBarView.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/TabBarView.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UICallConferenceCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UICallPausedCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIChatBubblePhotoCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIChatBubbleTextCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIChatCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIChatCreateCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIConfirmationDialog.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIContactCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIContactDetailsCell.strings create mode 100644 Classes/LinphoneUI/es_AR.lproj/UIHistoryCell.strings create mode 100644 Classes/LinphoneUI/ru.lproj/UIChatCreateCell.strings create mode 100644 Classes/LinphoneUI/ru.lproj/UIConfirmationDialog.strings create mode 100644 Classes/es_AR.lproj/AboutView.strings create mode 100644 Classes/es_AR.lproj/AssistantLinkView.strings create mode 100644 Classes/es_AR.lproj/AssistantView.strings create mode 100644 Classes/es_AR.lproj/AssistantViewScreens.strings create mode 100644 Classes/es_AR.lproj/CallIncomingView.strings create mode 100644 Classes/es_AR.lproj/CallOutgoingView.strings create mode 100644 Classes/es_AR.lproj/CallView.strings create mode 100644 Classes/es_AR.lproj/CallView~ipad.strings create mode 100644 Classes/es_AR.lproj/ChatConversationCreateView.strings create mode 100644 Classes/es_AR.lproj/ChatConversationView.strings create mode 100644 Classes/es_AR.lproj/ChatsListView.strings create mode 100644 Classes/es_AR.lproj/ContactDetailsView.strings create mode 100644 Classes/es_AR.lproj/ContactsListView.strings create mode 100644 Classes/es_AR.lproj/CountryListView.strings create mode 100644 Classes/es_AR.lproj/DialerView.strings create mode 100644 Classes/es_AR.lproj/DialerView~ipad.strings create mode 100644 Classes/es_AR.lproj/FirstLoginView.strings create mode 100644 Classes/es_AR.lproj/HistoryDetailsView.strings create mode 100644 Classes/es_AR.lproj/HistoryListView.strings create mode 100644 Classes/es_AR.lproj/ImageView.strings create mode 100644 Classes/es_AR.lproj/SettingsView.strings create mode 100644 Classes/es_AR.lproj/ShopView.strings create mode 100644 Classes/es_AR.lproj/SideMenuView.strings create mode 100644 Classes/es_AR.lproj/SideMenuView~ipad.strings create mode 100644 Classes/ru.lproj/SideMenuView.strings create mode 100644 Classes/ru.lproj/SideMenuView~ipad.strings create mode 100644 Resources/es_AR.lproj/Localizable.strings create mode 100644 Settings/InAppSettings.bundle/ar.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/de.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Account.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Advanced.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Audio.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Call.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Network.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Root.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Tunnel.strings create mode 100644 Settings/InAppSettings.bundle/es_AR.lproj/Video.strings create mode 100644 Settings/InAppSettings.bundle/fr.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/ja.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/nl.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/pl.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/pt_BR.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/ru.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/sv.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/tr.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/zh_TW.lproj/Chat.strings diff --git a/Classes/LinphoneUI/ar.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/ar.lproj/UIChatBubblePhotoCell.strings index 9e0f6b9bf81a5736709c9a2f2a7a16b34ea3c4b8..412b62d3ff375896c33e68d39407b21981d5e04d 100644 GIT binary patch delta 70 zcmeAZSSPeWhI#TI#s*VQhG2#e23-bIhI}CD!r;tM%Amwx&7i=b#h}l?1!QAUv3Vm? GEGq#2t_=|Y delta 12 TcmZ1{)F-e(hIz9M%O@598_xt6 diff --git a/Classes/LinphoneUI/ar.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/ar.lproj/UIChatBubbleTextCell.strings index 284b9231e77177a3cfeb14d0846d952685e1a1b6..36ae34217b3331efd7b05f2cbaa3b5db7915d52d 100644 GIT binary patch delta 78 zcmZ3-b%AHX1;*Ts=kGF`1~3#dcrxfR_%Z|mNec#d24@B(25SZd1}z4C1}-2Qi;Bq) PS$royV@jG_z_Jej*7p(X delta 17 Zcmcb>vyN-Rg^7M*8($n_o_vnA2>?n_2s8iy diff --git a/Classes/LinphoneUI/de.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/de.lproj/UIChatBubblePhotoCell.strings index 18286f7ebe5773d541a44c1d52cf186ace2657b7..df1e5bd288eb0a99bdbbc102abac0ea65074d69f 100644 GIT binary patch delta 74 zcmca4&?mgXgL$$ayUXMNCL2>vhG2#e23-bIhI}CD!r;tM%Amwx&7i=b#h}l?1!QAU KvH2j=L{8|VW>8?zV$f&c0ke#{xEp>&)5fPhr>NA@VT@a6nCX5{;ldiaVu!F(1o>K<5I)Oo7Pq6sSpe&a_m$L6J|8cJ%*=N4btQfua)kr5p*zx%!UxA^&rB z?(oBk_6*t)r^w)-&9k)ad@OOsDXxh1#&e)Yy>57;ETgJ7+K@=}p1QWE^#iT$U*J6K Ih}n$SH#%gepa1{> literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/TabBarView.strings b/Classes/LinphoneUI/es_AR.lproj/TabBarView.strings new file mode 100644 index 0000000000000000000000000000000000000000..555cc1b0c49b4add6e63e2d809e09e37e1e15e10 GIT binary patch literal 3710 zcmd5<*-pYh6g|&;MZ=StfC?@c%Ei(*;_`v{w+#q)jt( zd+(fk?lSZ7p2I3uV4(^RHijG)_W0y+g*px}#)zYj9%ptrZ==QGXh|2haQUB0i8nO3 zcFPqn(on?%=SIPwr(ErDy~UY2YLV1tu)e~b6IX5&Ttk zJdbEm#o{o9!Ab&QMT{_RuOC=Ui_u9w$uqC1BXmgq+RPH=TaROjmX}k|ma&n*t7fDb z*`PHWUCpT-*tPJaXPnBQWN9MbcsgQ zTpRcN%EnJJ9?OtNWRuo<+ODd|zFiAv{2q`S#m`TpH1w*3A2Xs*lboN~x>oku*Py@p zD4;}-71-;>9Dc5bz04#b&85Gnk6HTmCHwgWad)uB_ZyzSR1TAb6urE+&#!LEv$KV3 z9Mc6ynwM3^L`KKW1CYr+%H0h2_L72L1m^6Z`;zmmS_@H|{1r!Oe;-NQ|E zG759uBq3$?KlM!$o;b56iCLJPt!~FpS!t&_byrv?lQm{(fjR5oB$25m2`QiPJ!S2w lv-x5AzL0i1d0?ID5Wj~zzV~rRf5bU9Nl3jgy`$+H%qMKdFRlOp literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/UICallConferenceCell.strings b/Classes/LinphoneUI/es_AR.lproj/UICallConferenceCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..729c7f8c09fbbf8216a116f519f765f48aaa0dec GIT binary patch literal 1536 zcmd6nTT8=05QWckenrS*p|x5JsQ6&hmlUxDZ{SX*dy5*A`81qm6F zotd38=j`nFm!&b%goO@|4--Sl2oUG-bbq zb{owDeXwUX@6(#z$4tJ5;tO43BRK0-bT>sb)%|P@&o(pO*Nm>x{5C5TYQoYOK4#pP eb+aF9q$k*Lb&Ks2?^QT4MKtB4L=)tDTlxV6Y35o0 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/UICallPausedCell.strings b/Classes/LinphoneUI/es_AR.lproj/UICallPausedCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..33049fc4158c46161aba319691233beeda7c5a50 GIT binary patch literal 1536 zcmd6nPfNo<5XIj)pCa^FNUe$piU+L+Q>6;h9=xSB)JS8nrmgzn)nC&5A+nkVRAkvD zyZbWp=FQB$zggN+Tef51sqV$Z#n9bxiY*B5`E>zH>TAj{{x0uB`$=nJ|V1 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/es_AR.lproj/UIChatBubblePhotoCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..3187e367e9eeed207a22e30c5713a961123e84d2 GIT binary patch literal 2398 zcmc(hNl(Kt5QX2lzarv@R8T>H0C5N@OHnDJZ07(0ib5-uQkEYNe0I9akXT}o6{k&R z?0IjVXY%o0(xT=SC{n6ekBmTDTyr{8P1|}>kI_+^C!0Kvb;U@mWlNW8;n%|ARdwE7 z@+KXv5b>mKt?w$btVIez5orfLGRA%yvwQzZl;a3OH4CAvSvTqhd8)zFDGaTk!7}G3;(TVz4ta7}{5?%nsCz8G4m4&-ko8_W#P+AgV-LZVMap%sy6d`=-J@qDs>{Oa=L!4pP;TF6be3?jbqPaD3H8T)2uL&+8&pI@k%?HXUTo&SurT yoc~09oIX$Hi=)qF>OsbL059&Zh&$L?BL5YwGq3T5u|J~%mxZqi!ijjkuK}Ogb#0jd literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/es_AR.lproj/UIChatBubbleTextCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..792e134b4e4405308d438f9e7eb351e7ca88997a GIT binary patch literal 1640 zcmchXTTjA36oluQU(xVLQVdZOqwzt(5C{tKmiSmMVhvC&i1O#vZ(CX}Hf<0w4Q0D~ z_RO5wIs5gQ)1C^lRMtR_#yplz`Q>$|nr_w8hbFq0%jlii6V@j4*(kChPd;-NQ7>e8 z(@@3W3FDh;>zVZqJ8P=M2xUEhX*2i8+taxY<_HB?d`66h>`kw{s%v6wl=68yx&bBJ5mlZP zQ4CPBm@QPfg4>YH;n{RSH0Qj`*9%ZL)o1F4Fsfw%D)%qE+sah97Uz^_P!z|=C2sn57 gHhBNxscm!`abL|)sE(g(?s9W~t?HB%u?wBP0f>kE8~^|S literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/UIChatCell.strings b/Classes/LinphoneUI/es_AR.lproj/UIChatCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..8c3c5d03285a710b4cd096bfe468ff2d74d4deee GIT binary patch literal 1308 zcmb`HK~KU!5QX2lzhc9Y1hgi`pz&bP0|qoEniy^siBu`Yf{Ffa@9MW(mWnokifOjl z&g{&aH}kfiAAxpMmr+||MVj##9kXh>QAb^DcN*fW=?H720ngB#i}A#GV$JpT?WB)y zE7b&_jhPcWVV4k_XSyW%kuU4(=yZv?r`^SgI+X?Nt);mUa&4LA0_+5Y3=AFEr zhAt5S6OOF8>I)cZg)B*#N!yU?EMy?HR(?}#Yf35(oQT;e%NeP%(EnL#r9Ib4#f81? zpUbV3x|K)D)cK61-szCgS6nI2Y)7Q|jB;N^?B)rb({B?QdH=(oS^hvQAO7Z*zELK6 YiCTOq55)yNQ8yherLV$A>ATnP2CYFwtN;K2 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/UIConfirmationDialog.strings b/Classes/LinphoneUI/es_AR.lproj/UIConfirmationDialog.strings new file mode 100644 index 0000000000000000000000000000000000000000..af4fe4ff80ef5b81c52908c5683e558e625dd2f1 GIT binary patch literal 822 zcmb`F%}&Bl5QWdWPtmX>DaN=o#7IO<*TbyQx!bEE_hqIQ(uv`+VHHEkvS)y5$AdYn`)wjvs8H8$}**9isEg{jG}kP(i4X?1sOxxHl!6gCo0Nwn|nep{btrrPpd+1 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es_AR.lproj/UIContactDetailsCell.strings b/Classes/LinphoneUI/es_AR.lproj/UIContactDetailsCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..c41a166fca812e96def23f0fb01ae8ee1ae3c463 GIT binary patch literal 776 zcmcJN+p2_8dR%U55T#s;C<5Q8$#tQpsu znd`+;NktXZP$*9ate_f?t)V)q>!=9ZYD1(-+|vv*F*49p0d)b0v%2J_WWuaNLq4(S zQQ0HAB0nS2Q8Poe@CS0#)-Ug#`kFi{ig2^=^APS^OziA0DHlWCKJIVP`(#QxHZHKjLbfBpTGHiw^*VXpKsO9n^Bu6tO0z zX)|wTI&kwY+YzyF;C7lMTQ* z1g+s91bN70X1OAEp<5QOjf6`{vM6s_n%y!bdMic+n3P1-d^(iECi^xxb1puyUM*I8!f+g;N3 z=|ppD>4ROy3#`(0Af`w$Wi1G8T82D}C2rb9$ zRdzxe%6J@uwMrs3aiVAXz@c|)G3~1sd#z(*^AQy##^2z>$de~A*>ymaL2-(my zyVIRLXXeZ-Ki?4?AdV=C=%9unM--?0#c+=@&M<<-(MOLnC!DXL!C@-P7V2p6yA~}b zsBo>$mCk&JBAT4DW?x=&waxVgXUZtet2NUYo^MBDNZRnHU5h%leRI#mMYz8`GoXZL`>lDuXSR zSJsTpD3(Po=fjs<0pCv8L0x@ zOtpPR(d8L>cxV0iS~!Q41B-}0$)i(~^2o1<$JxoP8qQwQGf66-H!fYGnO4{uUicO+ zI{sWtL7t6Ojo)oXNRMgt2(8zp!q>eDdF;bLl4>*9+eRF=R-N9Zvyf`(|7&BIE`7)D zeM{7B9P&BA_)p!?S;(=wXW3<4Ht>K;^3Z3$G;l*sUVWLMvyif}Te{UD@@BuzBEjly z*YIstUP(tZdGk#&svk)4*~8=fKIEueXCaO4?sQBY8gE>67VE@yy?QOX%bD!9M~q{M zDmAEC6IVW^>MW$u)SW4)eyzuXw z=RIFmw`0#3=G?xto%Q@W5h9M93mXRk;hg%EQL$TMpD_7g7Gjb9eDF6U5OYtOhUs^w zYdOQSs*9t2EbA!HE#)HK?hMvQu|^OpcRLd2QOwBJpp6x64AC;LBVn^R5;zdtz)cix z0^ziu3EcN5b+2|nHsFqOPG0Q*Gj_sH4XQg(Sa$$%O@D|k$d8b`>9m0%AMM9NzJek( z>iA6O62FrgDOm+wu!KrVF$9zYtfqizRMWCc+4PjQX-Q(#rzlJk)fR1l+LOgGg|y&n zR{6<)M4KMkePuJD4G{bsrTM({cER%k))GhA+fB*KTTC58O_ Xm*y#C8^qqw)s3ez&;}@jJdpJZR_7t* diff --git a/Classes/LinphoneUI/fr.lproj/UICallConferenceCell.strings b/Classes/LinphoneUI/fr.lproj/UICallConferenceCell.strings index c3d0c08af237ca16b75a8cc0cb45efe6a226f17d..629130fa2f4bef7ed1dd7f31ccd7021294738c4f 100644 GIT binary patch literal 1516 zcmd6nTT8=05QWckenrS*p%*O%RD7`MON!WnTEVwiqeg5Bnri#!)h|tN2@5fmf-F1i z?#%4WIWxQ8UzVDx$(E;A1$t-LI%7Jzk*^ER?iHeQbjoR<5hGmKMQ9>4krK_fELZ-X zCW_IeJ_)`tt1-UWO?|vy*rhsO-E~w~ZOv5Ybcno`OCFg=jZ7`pCX2?eGIQ2ZF3D}o z?m<)JD3@s(&0~B7fimN+$BoY*wm~-88|GEi4X%9LU6Aa*!aY5~cwKioM*6VU zEmYWK@!u-kQcEYyL*#*uO1j#FDBsm4iw4|eeYL5uDQ;P}`t*7L>mhF{LVhl@{Y$L_ zeQ;;`y5CB$4|wMum7ePg8Npe*P;Zk()q0QjZI0c=e98_WK< ZSbaUhg{xa+2Yau;h{>WVBl&DB{Q!cL;>rL3 literal 751 zcmb_Z%ZkD<6y4`5LYIY%b;N>-8{17qP?%9+cDEsFN=;#Mef|BkQjL>XMR0r0J+Fkc zd>ZATH62oKo=hMWxi_G|xzJjsGM9KdgB2eY3V|b4uodOeG|dFZB(A8ib7Z(+-{HI@ z{1&+ZK3p@;btB|{6BI|RuE)hj(YSaex00TdjJ7Got>`xVw|Bhe?5D>PjO)Dyc+cJ- z=m($ucGr4m6XWJy_ZqFeH`&5kETlM;>c^X54+y_j`Yems>5IvrQ>Po?+3Jg*-DtE! dEL3Bi8SJ$E=W4oQ;gXF+RJSldQ;XV$`~e_M-t_6-058m1uYNTmVx2^i))i0?@NLh>#g|cMX z>`vaBop~=G@1C~Qlu<_$4fM<~I^t=luRtf7%Q9w~vUAA(KqE$&A|nkI@m&PsRTrEM zIho`UuGpD_48Oj;;;%0n| z?(o3iP2zRNIdP#%slxaA6|%0-6h3ify^OUBLm%8VbF6*TD%Xn(QCFQFO2jDgSGrjE zzQ8-{uP*WL(b~`nvwypDmbK^uSKiI@*zz}saQB?v_o>rJk82*g5S!+4oBloE*i_@% literal 751 zcmb_ay9&ZE6y5U`p`#G3iU^8JbucO_hz@SIC1|7%G`IEf^)|jzTZ;&;CppiA)GD;^ zgHp6dttEG2#3;176g*ETC0*%DJWs$CzP>PrSc&v>=I(@te4sIYiP?I`)KI1el^V$a z)uM`(ks;*WoCmNGD=Chp{{1LK@Q^|R2!~vdsWW0nn=KQ~*Fg+W79_8iPjoB(HBAUX zew0lUnOLx(?L4v=;9HivT3HelC)5*;qHRbA(J#K5dYj*H%Up`@rahl)edvp8$;O-| ea{uUSfdBNh?T+2()LW^1_VXE=qVKD(;gT!B%i^&B diff --git a/Classes/LinphoneUI/fr.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/fr.lproj/UIChatBubblePhotoCell.strings index c609433848ce72c216b331b679ef0b64bc7ed31a..35278ca312d3f84692a939e31cd1d1ae43abde53 100644 GIT binary patch literal 2404 zcmc(h-%{E@7{$*uPm$r$8QP(aI&H^`7;M2&oKm#c0jb0Z!HIx>-jGM}CA7aR1Sqo- zqNPrT-H?2{d(QdJew*i~f<9_Xjy#3(b;IRopI=dDs_8&O4Y>M>c=DC!zS>+J6B($b zfN=p4_d4cXi#OqH29GC^i4LcuPl>o9rp<_&DznI4T`;bsx*lj_{*9(1w!l~5-WKs; zEi}d1DlTXu7=<8+&HM%C&c{DOi&#BY4%IZwli5mWE| z{X;d@;#f0mE@5#FpN?*)$n#{n!nni-Bl;LGIQor3i8ngraI}>tACRwzyB?Wa?WQB#*Fc$ue$Wna^S32^Y!P|&siS_+IB7`RHttE0 zCit>kw5-bjUUzU!>quE;ePJK$@Z^ZuyRdi2c7J31Qv~x$l7%6QrE;~XsSjROfjo%>Kv))RKKX>$Mi0FU+sAtw{_TO zoh40;K`^GqR6)_u_y2mPcw~NY|NEQ}zNrV3v)e%%``1Jl#XjMKvOd%9@ug8+a)T`* PuN&M2Jjt2zQYH8UsabOT literal 1182 zcmb`GQBT4!6oudSD;ge2DnSB7jSskL9GN2y)aSeH3N@uowlc(DFPkHsB@My&dfI*G zoV#1E*CoDyq9C`V^Ag-`v{tfnLm*ADD0spJ*SioB6x9VEWQt;cJWD<>)d8!-Q6^~g zMf0rOA9Q}8X|9UVaQ?-(WsdL;bK)o9_!FD|HCYahv zp}^jZXgs9Lkj5k36gPsaxFIIYZHQ}&#s4Ua^_{7q2s_*z}M9|QKlAA z=5ZSNNt85X3sz3S)&oB`Uaj$;)PSoIK5b0|DRt0*L5~U;!kPnyI+m+-5T~(e9ULv;`F=J022&++ zw7oQ94d^FB=ev{sYEz}jJ=4$wlfuynz2j(4Wv0VASD!UDb%yB!rR@sWv_&c^f01D9lV*mgE literal 809 zcmb`D(MrQG6o&8n6rq=cWE2%d@n$WIj7nur!OPR^Oe1NdO;+vO+m?3SQimIO7rt=* z|2xNUx4xr)w9d` zV>0#j0Bh#`UjjVuurh`eRXq+upfNI)O4_Q0ZG+A&2upIv&?%oUk!}kLk7-vv05%S5 zRl9bXCQj(*RC)`T;t0 B_W1w+ diff --git a/Classes/LinphoneUI/fr.lproj/UIChatCell.strings b/Classes/LinphoneUI/fr.lproj/UIChatCell.strings index 3e1377c2c6ae368b28b4a03ae76a29049390c127..68b814db23a3758d447d4b89c7aaacd23d9a9762 100644 GIT binary patch literal 1250 zcmbu9O-sW-7=-7XUlDRFv>HLAiic7!l~xfH#9OSPUG0}Kg8q5+*^Oz93AAZgvLyR{ z%)FUNzP~&js3l*0%@pa4zLr`L zvo$HT3-0FBW}U97e&)%>2D(_I9_jEmqXjdMdwbH^2{~AIxdMC6)05uW#|0)9-(%I8 zJB8_on<9HRmvo#mkq`6b-ZSN0H@u5|_hDK`p%Kij;*lmh%n+7z32W<8Mr^9YEjk$I z+H8-|WaYeUeL6**87_#GaBkh#bl$RN#hH9u5`(k?IpNJ3_RRB5C+(`c<=c7Cy=AFEr zhAt5S6OOF8>I)cZg)B*#N!yU?EMy?HR(?}#Yf35(oQT;e%NeP%(EnL#r9Ib4#f81? zpUbV3x|K)D)cK61-szCgS6nI2Y)7Q|jB;N^?B)rb({B?QdH=(oS^hvQAO7Z*zELK6 YiCTOq55)yNQ8yherLV$A>ATnP2CYFwtN;K2 literal 230 zcmdg5-u z1LggbvQm>vJY7I)oU$r)JuG#@D!qUbTKZf_0(u~Gl<*kD#f9H~FQEMjF8QfwR(ceb V=z3P^h8Sf*twabQtVHPL0ssrWL$3e; diff --git a/Classes/LinphoneUI/fr.lproj/UIConfirmationDialog.strings b/Classes/LinphoneUI/fr.lproj/UIConfirmationDialog.strings index a3acfeaedf0d7c1a1dad46d3599f96535f815427..8fce37804c6833e0c84ce8b6f73178542101cf88 100644 GIT binary patch literal 832 zcmb`F-A=+l5QWcmpQ7QC1dQ?07(;;=Vnqe?9uy6vRMQsxd1GHf{bpH8OlsK(_y6 z>^ZtV^!*yfG3?jSW$?G)JL79x#T{dnqMmUK-xX^_MKAu$8Pl^FP7?2-VE;;2cKz-+ zpP}C9#hPf&+nnzsFJwsF4V#Ei_b%I2Zs@@?Fg&GrVSDQ;GrY*~!+nU(pdIX8Xb>2rO!8Q)Wc Ho+HpVx-@`d literal 414 zcmbV{+X{j}5QgvfDF!cvHKfak@I**bNcI4$jiGG2pd%fgJ~s@-Zlb&0?`P)whb?Rf zq-a}MgLR7ijz}wO1xhzpA+w4knk4Y{L6r3Tkk?pH92)4mJ0AFasmngF7iQdsjxq1)bkEBYz5VWHaahZx5@}SisxT zl_0q$ys%)Gqgr`4)Zs3XXwB_t=w zIZ6Hwj!G)3poSua+VKji^11p}pt|;od26lkRPcwI@XQ%$HI^mMg7{UN*qBI^R%mE} zFTP}Uh%Sjw@C0h6s1|llp1w5X-%(eiOGXiH4t5s8e~O8lcDd)`Q1zXvLuL@=s2(wm zK6*b;>tUCfU^3yW>MX>6RoArPopxfhJ=f3Ee%oTgCMNTTja{!|$t^6n247Pwqfaiu v(!-~R#lInXx)y_HP0xAG9A;qZOu&%oaYF;DJkB8t;ln85b=&Z3%p4s7%m;Vn literal 382 zcmb7LR6o&8jD~6ZCCPa4;gi0g`67)gdZFXvtv58xd|2`*zVH9-xzK7>|4~jyZ zC}u5QyR+v>4SSz_y(seoGp!`81nCr`e*HF1E_0cvxkllq8`?4>>2)zaL z6B0}mg#J@ArDp1qpU9#leA$iaDfp@$D0B7jU(ayxbberMgr-*m8!H>Cq;7=KKuvp} X4Y;*2frjK~IS!Zt>RH3LKVawuQX6!e diff --git a/Classes/LinphoneUI/fr.lproj/UIHistoryCell.strings b/Classes/LinphoneUI/fr.lproj/UIHistoryCell.strings index edd27eab2a2f881f3647806b46a439167309700f..c0f90ab0f2fc756b23f24a3fca2f36264e50d632 100644 GIT binary patch literal 462 zcmcJL%?`mp6ot>aPcfNg6F;#PD-9_UHXfjwh7mMj7IVWz^M5iFTAxhsSEFSR?Lc%FwLZ+$Kt??Cx_Y4#mmq@Zv1);pC010;JF2giY8qAD74Ek{X~NR diff --git a/Classes/LinphoneUI/ja.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/ja.lproj/UIChatBubblePhotoCell.strings index 4c19dc953120ed0c78b8ab0f89174fdc7b31e856..af4a1950978c3e432d13f0f0fa908a9b53da5ed1 100644 GIT binary patch delta 79 zcmeyvzeH$*8uR3Tj1A_V48aT`47v=a4EaFPg~6GjltGEXnn8g P>f}4@T$`UTNw5L{p;HhA delta 12 TcmZ1?^oM_g8uMm9mTN2kAMgZv diff --git a/Classes/LinphoneUI/ja.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/ja.lproj/UIChatBubbleTextCell.strings index d63a348efbe1dcc4f380cc0175969ac172045ae5..9444b1ff2f8d9582e3d8cbe3815c8dc957901bd6 100644 GIT binary patch delta 73 zcmbQjwTEXz7mH~CLm`7FgD!(FLlBU(U~p$}W>8|VW>8?zV$f&c0>R18iVGv^g delta 16 XcmZn@z9+Cjhk0@xtH9jv`Aos7W3pBR)NV9OgftfG OtHHza87809`j@wc9+RMOg5&T48aT`47v=a4EaFPg~6GjltGEXnn8gnv_fEm9`ocpR)NWG%sQJVuLX8AfR#76TSX77G?@Ahu*tV322VX0d0n0`hDpKV(te#Po<60Nq##yZ`_I delta 23 fcmaFI{fK+R8OF&Wj3Sdo7!4*GByFx^DqscxY<36% diff --git a/Classes/LinphoneUI/ru.lproj/UICallPausedCell.strings b/Classes/LinphoneUI/ru.lproj/UICallPausedCell.strings index 12ea9ab126b02128cb1d522148d071f739679a99..1334b5315c431accbb96424755b0f43ce826f9f9 100644 GIT binary patch delta 45 ycmaFF{f>LX8)g|H76TSX77G?@Ahu*tV322VX0d0n0`hEGCL1uDY&Kxo#0UWGg9$+Z delta 24 gcmaFI{fK+R8|KL+%p#Lbm<=WeFePoC#}dE@0D21uivR!s diff --git a/Classes/LinphoneUI/ru.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/ru.lproj/UIChatBubblePhotoCell.strings index 31e39ca0f317548eada2e2434fb3d4f14682868c..550177fadd5eae74105aaa5f4e4443939d3c0e8b 100644 GIT binary patch delta 216 zcmbOu@IYw86-FL879|!L7Eu;i76F#c4;Z-^)kIkASR7fLSPWQ y>f{GZT*TX?GTDJeV6zSL7DgE%u>BT5cUZ7k0$nA~;>=r1lo+fT6d1G^^clE- zY%D4!Z)7%96=AUh8t(+O#0Y38$VIj+ra;n}#RSL$xzUluXY+q%ZbluVl(K-V7{&yK~A#goMpC~5&DCw_35e1NG*O$Nwz1e#?B)M)}V17wRM OnreTL>dgn3%@_eq{T&Pr8B7fKS*Sc!!AzygSgjnexdDluY|LjCdT5FQm4#$0Z1Z*F(8 z-@RW7U6|1DaKailE)AF4zzPB8)HaCuX27AEF~2ibH3?E2aE65)vlwGm9(lh|O?k$A zNpZ!#>|f9=p}M6j9rZbj)XQRO zs_K$lq1q|`N?i?L+{0|Do-qR*s-*(l0DDZ<$21~OMIQblM)8;Xb6MUU%h{H#+qSKk ztJq`xr^0%oEkt{`MBxp}uhBL{eF1e1{-$p@Q@Dt+T;Z;*p>5MPP`dXgjcvNsrHUxM ze~kY|KW3e-CN=tcrwbF%5!O{bM_$PgClPKId_5%DdLWMFW+BShL%dOX?z-M5BG$!{ z*BUS}AH35Ob5USgI%N3yT8kLPqynd9J^`!NGGBq6Tf-_?Um-TIQ+A2JBdez013LqC SNXt&Z%Ir!KQ?hBjp1uLD5OO8} literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ru.lproj/UIContactCell.strings b/Classes/LinphoneUI/ru.lproj/UIContactCell.strings index aca210d0b4a045eac6418a7769b8d0adcb5c4318..5a5a8e4c0134faea2cae2adb2f38064701970f4b 100644 GIT binary patch delta 42 ucmeBUp2fVOf>B9`#el_;#e&5eh%H$Z801-;S?pP?fIM3kB?fB-E(QRf{srs+ delta 14 VcmbQm+{e73f^o76qX-ih0{|b^126yp diff --git a/Classes/LinphoneUI/ru.lproj/UIHistoryCell.strings b/Classes/LinphoneUI/ru.lproj/UIHistoryCell.strings index 731db2b00922b470c24f8112be6a8586ed99b09a..c2bcb90cb303da867e440b9304658b4e04282a91 100644 GIT binary patch delta 42 ucmcb{{D^tO0Y)Vu76TSX77G?@Ahu*tV322VX0d0n0`hEGlo+fTxEKJzb_T=% delta 14 VcmaFFe2sa-0mjK5j3P{23;-&I1S|jm diff --git a/Classes/LinphoneUI/sv.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/sv.lproj/UIChatBubblePhotoCell.strings index 3b0b8866ddeb2fbd7ca43cf3f79aa6d5b701b965..19a014e74e13e01e2421dfc0c6c04611e2c0107e 100644 GIT binary patch delta 73 zcmZ1?a6@Q=3G*bT22)RlV1^I|T?SKzd?4w<;LK3Upu}L!punKTpwGYsWMfe=`69dF J=4VWHtN;%a4j%vj delta 16 Xcmca1v_xQo3G?JCR)NhGEDu-!Gpz-? diff --git a/Classes/LinphoneUI/sv.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/sv.lproj/UIChatBubbleTextCell.strings index 5659420f731431314100f3c550f14f2537e14f1f..ce7797f506cc6e607d3e37a8b6c9ae9d056bb1bd 100644 GIT binary patch delta 77 zcmdnS^@?Z10v6K%hC&8U23-bUh9Dqm!Qjr|%%H?z&7i=b#h}l?1!QAUF?l_+;bb;e OgNZNXHY>1*F#-TR-42xi delta 11 TcmaFGvyE%R0+z{FSf>F1A5#Sl diff --git a/Classes/LinphoneUI/tr.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/tr.lproj/UIChatBubblePhotoCell.strings index f00649e401ce425bfc2e09f667a4eed70acf8804..07a10d47189ba58687547b743feb4262493715ba 100644 GIT binary patch delta 73 zcmeyvzf5R@7V{*g22)RlV1^I|T?SKzd?4w<;LK3Upu}L!punKTpwGYsWMfe=`69F7 J=4VV|tN<4A4h{eS delta 20 ccmZ1`^oM_g7W3o;R)NV9Ogft8|VW>8?zV$f&c0 P>f{T|T$`^kJ!1g?jD`?v delta 20 bcmX>nxQBlO6Z2##R)NVJOgftbSn5~+K)?lb diff --git a/Classes/LinphoneUI/zh_TW.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/zh_TW.lproj/UIChatBubbleTextCell.strings index 47febcdae84b4954480c77659649ce6ae1126e99..4aac372b438f30d1e0df2831d22e688b5eb5ed44 100644 GIT binary patch delta 77 zcmaFG`G8|VW>8?zV$f&c0SQ=W-B@fO%tneP?yrR;N%my*(VV6cXAR3XCdI= z-~))yAwGrpoxj>f&?Pyy?{dz6U;C&$ej2kjswiL!xmXEx*o@oiWU+BoIS=3B-T(TQ zN~d%@fz7iG$r6s*G|%x31H&978! z){2Z>G)Py~v4ax!naPBY8viooz$7Xl+eS36~Vgjy9_!Ua?m1J zfB}vuvyKCHEFseth7w}ZjZjKnz_vDJ(rk-1I>ha$e$r9{G}YPk&D?L3EzSq<rc;ygCAq&tFAm$o<8-LHilU4}-lM5r jGriH9wB>!@v%N&d=H3ps%f-IsBe>^3yMFkxaB6%3{nTEJ delta 170 zcmaE1u*hh`KgP*j%xaTG*jH@c#}o$Pm@q0#p1@}}xr=215GzcE@P#Hcfs+qVThSVx9Fk*^82qdXxZA_TYwT?w|yn`J-g1qtq_mCe)J zVkpD_vg$`xhKM820nsaB6q!%bR~7f@TB4*pR{=WOxPyjcbx#IRkvMKdV9S+B!h~8--NwB*hUbiU!>?%ca3hX)kJnxnNB*py`E;etFe8m`8#^H zrc-9Bw-;jXqnlgL(4E?9x>ftM{K);bz9%L2!f8+p0*)#C2$BLwhL{j7_zfWNZtQxs zT?(=vD{I3fnkaKDF7MXeaPG7-3;=TyEwKm?o7pU$$K^$lg4cybhpe4A2j-J+MsTyNlirCunKPC09LXbV^&o zX@XaWkJr{DfT{y70&rv^hkjux<1Z`9=&pAmOQ0A~BPbJSYXImiWosZ@N;E6`5nmOx zm(^3HFIAC88k!9rr*nH;v=Z{rA3nEy;PdIA$oASc;Ck2hYns#UD78!b-RyX@dG*4|f7ukMGkC`r{WK=Qc_gyp2a-ODQap|I} z@Mz)u$y?!1by_-DM*n0yG-0(LTl&JLlNO zX)x*eg3UJ`fM@7Z$be!lKeoCu(>Lm@U7J7KLl0V#67k&FTu-{?H^~+qHH#x$FOH5{ zuh7uow>6BHxmO(8b*P0-rxrIje~B*aIY&pj-L7J8$nel<=V7h@4`D1T21yad%8tT< z*{X&&1~j&isFYQuSS8n91A7Q_oWgyj)S5;5cv8NRo-8fs-GntksZmp29Eq3KWSfdR zwh(oo!986D%~g1*ee5%zf@9`F@w6AoEPWA7VkW9-b-aPR(R#Wto~l?^3oq@pI+%@g zx6YK8UtV-PpRWNXq^1W|h`@2)pg}~G@?$rz;wp1qvnsHlLK!GBbb{*kThcYLucSDx zyf$^Ubk+|s<{3!iPJv!Nq)6=BfPnDdm_lS%KA@z*7HqaDdN*L1FOYePj0j^>c$7nM z$Ry|Hnpq~Z!rEFH##x`J#F{lIs6ulHZh8{de9LZ+A=*V30CKVHbN1VUTei+EO;wY4 zx0P1jOyx-lhEIx<4bH8$)N!q|4-oj>p$2_%X7Py-D$0+=+S!$0VomJi(p%R{|L<2# zde2NcH`KP}c*iAgH7&h&`;oBYG&Vc>pU^#XSDW*xmjB!oaajGUU_YHV=9Ne-xCEV@ eKfj^A*%QWn-wjsr%gcK8BK2O)|$9ZQUfQ>Ipzl_m%Fs?21kN@nrsq*J?4m5z(g zF($gRv4EGSqD9S28`H?NGC@q2*AqpebnT~Iq@wx|hi7Nb<=Aw-mRp`mpcnLFQk* zQ(x3WzSqS#tR+m?sjsHV6eeVu+`Tw!K;()euX4!~=dkS0L4L}OKvunDJl-{{o~MYR z#mC}vO9c%yE0+C>1x-$DwZ5V!!>vdnb^>v%1#Ed1A-K!I&_1S#QzR22oo=$x;m{YT zR)I;P`@Wh}S=A{7`1@XpOv)@9|!z4Vg#$otYyB4HF2_5xMz{hZv z))9(G*s|N-5Bcg`B>dx5rPuO`p94b(&hm|e2EG)VlwWcwJDT7l@TtQoe>P!OeCp8 P>V|}o4mpTfO~R@pxkB??h9-n#$*%jxXDo>I+L#miEKV5w2Ug9n=qn+KadkmbUr%;p88UD1 dVkBPq7<6 diff --git a/Classes/ar.lproj/ChatsListView.strings b/Classes/ar.lproj/ChatsListView.strings index ab9e8ef0c7991ceb64172c494719c494a1a97d39..60a475f33c59d27bda1c7b2279cd82c48faba50f 100644 GIT binary patch delta 50 zcmbQovxH~EB}P>jHgz@y1`jqJHV-y^Aj^eKnavAGyRzv5W%Sv!*)-X7Hh*N)WdQ*A C5eVV{ delta 23 fcmZ3&GmmG(CC15Kj4G2ASmGwe8Ex)in!yYJWA+E~ diff --git a/Classes/ar.lproj/ContactDetailsView.strings b/Classes/ar.lproj/ContactDetailsView.strings index 457db11a428375c3416d1c92f69bafc3698a5090..863d6c8ef388a79e3687641799aea97e11c6844e 100644 GIT binary patch delta 115 zcmZ1_wo7b71(U7|n>w2UgBF_yn+}^kkfp=s&ZY^Z)!DSzOo4JPK(;HJE>KRNO>=T0 ROY$aWHg?i=P445G0|5C*5vTwF delta 38 ocmdlbwn}V61=HkLj9L?~#7(}yrZqW)S!A;t^9eSX*gUQ|05a_l!vFvP diff --git a/Classes/ar.lproj/ContactsListView.strings b/Classes/ar.lproj/ContactsListView.strings index a62055cfba8d75f4dc82d924885e2fb2560a8da3..9d6d02520de5f661bf478b6cf4dfc1f704b989aa 100644 GIT binary patch delta 100 zcmeAZoFceEi_PDK&6Q1o!Hdn3O`FXS$g*T}Vea<+ZX}kIuDEh delta 20 ccmbOt*eAF_i*0fRtKVcH#<6Yu;104EIweEHgz@y24glIHWwi6%BIVv&!#`QkvVx{oZ999&IRn+SXBU3W6?M9 K;^N601bYBueiDEH delta 32 lcmX@4vPWgZDvrr297>yyaHxP8lb^6FOuoZbH+h?24*i&6v%V&5KQwZE_r|%jP@GW=tHeKv5kwLx@Nm+X7|)D3c3? delta 47 zcmZn?`6s-gkD1elA(0`8A(bI#aw4ni<_FAXOzgo79t{2r0U&|N>sW*~m$3CQ0{}|d B4RQbg diff --git a/Classes/es_AR.lproj/AboutView.strings b/Classes/es_AR.lproj/AboutView.strings new file mode 100644 index 0000000000000000000000000000000000000000..d07d01975df616d4b182240d59256a4f30aea32e GIT binary patch literal 3830 zcmds)+iu!G5QgWPr$AgrG9mO7TJ-`_n$jYmg``c?8^X~Efrw+$H|i_)qV2b93>bzO zL4~5q%EmUcv-AJ^&&>MI?}!}Afkfp*I#QJZS5)5e7n3u|NuGCC(%`q4yy5MT`+G*; zrp^6O?wIu&KZi20R~&m+y1Z{okN*vc^S>{xsh1)?uX$TzZcg6Kyd5#4A&&fzCSy%L zGv8bH0N)YrHH$c2yr^O`Pus*5VTH%I$jHc|HHf^Zs>E1hZNr)iCfDK~%EJP0K2vF_ zb49T?^M~+i(0hK?@sX8^+`z<8GK`l}nC*klhh`DCzQf|0bCqUa`k-hruTO+0fe3px z#xQQebaG1UXZSv49ixXnYjt=o!ReJ{t;SOx22I>u_-yceE=l>$(@*Y`l3@1}@ZjCO z2KT>bVAtI==oYiv&U9-^GF2HTg>YzsiUUY40iD6KSX?OfN^jwk;D5W6T5S(>XR0Uy^2puU) zdN#vXm1d#g%%jWYb@z*nH`#s|8c z-?jYR(kwKDnkwfV(aV&1M7!_fGIkermdS_XjZo)pE@sFh(|^a{4(@Apgr>hq0IQ9DC|JY5^XsXERpb}C?U25MD zK2vmiM_$<;8Pup|q4Alvr;I+M>BMzYhDmCSoW+z}T-@|%hZ`u=G=9yf}&}oAh zH46>nYBafp^Y~&kyW-yFtQ}>?^>2U?hzDT5rwTcI0SwrqAOo6(#=tglg>kX}Z-6oN w;}|9;FlN31vSdM!56$8!egkZp=M$>t9avq?R}N>mYx%f@ShLU+urAO40u0kWqyPW_ literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/AssistantLinkView.strings b/Classes/es_AR.lproj/AssistantLinkView.strings new file mode 100644 index 0000000000000000000000000000000000000000..3020b718559d1982b17c79e5a2d3bbf17138713d GIT binary patch literal 6640 zcmd^^&2t(@5XJkfzk<@y2_$js#7Qa#gyf1GeGm!TNp5@zp&*1YV9EcpPrl_~=l5n9 zEz6ErR?^xxC9B!Mn)Z@U$$sYAw5PUfd$hHz%d<`U ziPomI`E;FKpC^5u^lf5S3zngO)!AOy)P`7;=+otQY9lv}X6kcI7*o&v_=k*nhFzPM zUE9Xe`|`D2+HY32?|4$?(%8PoJ^bI`K4wu_%iqoGS*q7Qb)8RLo^U)?2%ZyqU(!3oxkuCo_A7t?VTY{15qDK)uerYttnra>3VtM5>=2b0 zq1D#fP5G|z{cobxXm`P$hs1FPZ@#hb`R)+M{U!FqEdGD&iJ_3rvY15${(2UFSoUne zwh5mLm{?qWLdMFspj$zUR%^{R?0D$3=7jGTW-hu*+?8%_+YJ7f?G=nF+qd?Y zJ<8yawJ4eicfadCcUf{ulrwjyO2yYKSMWzWUz6+D_PI)+q0Bm+x6WL)_2F2P);{*C z4%+;RbrtR#-20Yu#}HLP(j-5&csXJ;^;7GR`OaObiI__s@c@f zd+d2G@6`5yt3%HomuigQRmqJ%V9r z+0S#r$g}yJeLU?ksw!cR{=m(;p680G#b{@Y=JC%{gxe`y6)eR`aWu=#)f!m0->KUu>H7HHU^)j`?jEqj_NX+8Dr;~M; zA3<@XCPSx8syP<*Oi%o&Z;Z+<>Wi-B1_)Pm90eHr8UC$8`|HXC7qVKWi{u*F(;4t+1jsIjnHwc;A7L-RXVX6 z8yxZ6kT!oG{qmCD{iZ( zr%rQDox1eUIN{uhymP4W?1GQ4l9QcYx|&o7t5F$KhpMick`Jm!pHT6qQHfbpm|41b zvyaKXzvJRK1Cy}3hn-yW0>{iyCC?#ECW?U(6yFpJw*+ KN>LP_kLMr677(cb literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/AssistantView.strings b/Classes/es_AR.lproj/AssistantView.strings new file mode 100644 index 0000000000000000000000000000000000000000..a62ff726165b72b068913ba5e12d20f1f9c26814 GIT binary patch literal 716 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 aKNKG(D1qMR>;Ho&b}*Av9&8rd;KOggaJDD_ literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/CallOutgoingView.strings b/Classes/es_AR.lproj/CallOutgoingView.strings new file mode 100644 index 0000000000000000000000000000000000000000..b10453591e221e0abbbda88b5c015b8d1ace1ce3 GIT binary patch literal 5686 zcmds*Z&TVp5XSelpMvqFGoflLw$tfMBNYGCf`YZxcc4+E)Ho_s{P1mmdvJou(QtM| z+hI5(x0mcbd;2_l`So*7UdV#vq$nL}$Q7TQyyH7BpJkKJcYZyUNcQE7@dv-ZWws$l zd?I6iCQar#e6OW1+srkY>D=9?D6yO~r)#dw+8)>X|K;#*RaUfFqw||mx?8y~{I@tEi#jS?P~b zI7IYo$eYG+LnOA2+C+&UqK-wa2uvNcCJO5#xW#KWaI#{7f56m8@FjiomuL&Gn z7QQ<{>+(6)K>_YtBkq!^hBn+-NJQ_l@QvQ54*o9hB~U&ZRzwyDgzW!M#C~Md;R60n zR)EXGH}-Llrscp{b3qvmcnuOe@Rf363;i6hkX1;R#s9|z>#|CxqMX=c++`ot5;(Xl ze0RjGxnPYry3~dC6fvXK`AMBY1r)A`|G?D6v220F{oUZQ@I}GxmA@*S8@1E^vLkz@ zd+ZRaRn02>=N{TtWk*-|t36o=$8QfKnv6l2`vu_8WL)GP`zZ|47J2kpwKwU_NGtWp zA*>U^xFO!u8MpE61K#a1D$f2GXiuEgsaizbxaUB~-96XY1xsLXgU5qz!FKPK8(bE% z*$q#7u4t087)+|N!dOB*Y-L$wTo%5_Jdbll&FE@Gef7A?I&n4WDObUyXn0i5bJaxk zxGa2;u|DbPLaT0?+R0MZE$*aUc8+{%mp$OUNwslI=9MY?C})6z?hh+C$60uAvUFLv zbkp_R$K`?PPl|0AO3w&OraS1ui-(D9x-5LNIcrrM@5{3C+?ErxBY+9F7|Uck*&n$q zd=VJ;XxdIO-7UKn$g=-K^)N=Kv?nUctwErX>Wo|#|AHRYIXOpk58tNXwU|?q#$RAf zK&^+Vw+1c?-+d5LVfwzL2Ls(c0jqWC1a^t<5Peg{Z_%0D@BdsD&x6%`vf1ZNik^BR x^A6~g>uw@Wm&M~}GhNd@{hd|C>6H2w{d#3`-DfPLqB{u;To%35$!W5)mh literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/CallView.strings b/Classes/es_AR.lproj/CallView.strings new file mode 100644 index 0000000000000000000000000000000000000000..062954d562ce175162c132a6d0b17fcbd7512476 GIT binary patch literal 18430 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 literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/ChatConversationView.strings b/Classes/es_AR.lproj/ChatConversationView.strings new file mode 100644 index 0000000000000000000000000000000000000000..e1b380efea91380e2f16cc8dcdef729fb44eec69 GIT binary patch literal 6046 zcmdUzTTc@~6vxjqpJGGe3&~a~AQEFDEf)zl!&Q7MCE~6&zWfIGeM*8~km%F^Z;(ZnA4O!_*Ej_-UL6a%IFG(TSF4Nr= zmRYeSKhQ~aoMMa*(>@3yIU9g!Ru(K&`otI4Dm&f5ZUuCCkfj#zw^iBLxNVqk!)(O2 z8?eSJJ!QLjd1c|$C%!m$*!u?WXt7@aw>oF_X$*zG%}V$9M&i-gHD`y!maLlkUv}Mw z#4At64+Cl9A$q1dhQI#yT9i4UcG)9$OYEZ2$9D_M~f$V_Ue2Ttwy3cqd(qx z*^?s)iDmoDn=q7EJ&86h312=^y{gzkW2K(hz_4;Q5oXHl7@4>{h>?hs6Gr zc!x`37%px&r42NTW1H$58GSV$j{n@Ovajao{%2(k&)9~CL!?9G7vzn_hD*YijYOBc zUSa37B>E;X{e`@T*BWdF_`l{6W%`yU5#CTRqd)EqBH%oTD^xHcbxem?k@W(XL;*hI z?2_hzSQqt0&7%SDZ_%lRE?OtWbwi^^r}1Wpgz5h1H_=ORuTqE$R}Bwu3$^ekLsEE^5Y(L_%R$Tnz_iCKd`LtlJMoA z#EEP%;;eYUf0N0I{(Kyp91_Y7-Vn+)dcL;!a7p|xeDr4J{!!tSxK)FJIWl4>%lx-) z@!*p1<)K%fy!l|X$dFcQc`L{&G4TNoDr85kmk#Bl#e_@3mx)xb;Va1TXUYq5>j^BZ z5i>*iLYygDT(~5jf2LISwWs&%r7o!xG;>~&JGGuZkzI=omxQlp{L5Zz@I6OFceMoi zd-=@VfRSyB1DC`o9BAAcR5uMe33}fUSBrYTa!zK_-l0vz)84J{h~TL^k0#l&4BBJ) zz}%sOvU^IGgzFUSvtxuN@%=%niN=7RT}=j|oqXTaBo%o5t-44``@7Tr+Rs5B64U(v86DJsTjV%+f15EY5|28(it?y*2`^m->YMkj~37wk;du)kJ|bGDjl zv(EISg9Q7ujAEd#K@l@-@x}p2DhVXL1rqc9iW@QBbp_m_=MeV$dSvx9LW{o@ke0E# z3fNAM1~u`)cj?1yLY+((eH8cCs?O->NEawl*EwsG&P?i(mXTGL28diL*8yYo7e-HC z3kO)&A=~Lw3zRXHY`kWb79%jeqC%Vgut9sQlSGZAWn|T2iN(0YCf=|e^A?)Yt8{;Gy1y# literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/ContactDetailsView.strings b/Classes/es_AR.lproj/ContactDetailsView.strings new file mode 100644 index 0000000000000000000000000000000000000000..8c5f8daa4f98eb59d3f3567e92caef585b08b173 GIT binary patch literal 2958 zcmdUx%TD7!5Jm4gUtzI~WLV4yh!6`xW*~_7LqzPH3`znakwSpL-|`zQfYa?b57QId zau{jUa?5s?tLxsnRqc=Wf>ul0y&fO(q8xfmyq^ z`3iG#O}6G|>Hv!y`8w7Ma~Ey=jG=T{EVEx2%OqoAG-h{CEuxu@q=9BklmWY$n7cf8 z)zlkv96=9O)3B3I$CVLF21gP@57dlLH9Rw)ssw`Yi%8uEuokz-s`oNp`;4@DPtwL7 z{#usZ3U^5ukI4Qb=vumB9%`58S&S|VmkM0_Ch0t1Cezh!O}|0q>j$~=b;(mThR|h^ zHH+EmJ0I?81)Cn;Va!)@O*>Y@4L!lZ8nqbdB2u!;A}a^eO7?V)`b^E6$i7zx(|jcH zaE8)-`cIR2S9hp>R_!%?waCN6zeS%;4Rw0{3HSr;G4JbEt1%W_7I|36riR6KxH~jx zdRy7%{Do8VF^1M0U?(4X!>eY4v_S}V2@$cAmZ zJG1-d?aW)gK1k&gwOkm=%N4rO zUI9@UaJYw|B69dG(YnzyiBjey;u72T80r(7hgUo+h6Gs>h2YE2RU^e!VAOhrkY!P{s#dsc=CH7$84|6K%G!QLoN^ygp7m^W$c0TF-f_)-A6H~W zd&G*8Wl@xk7>jU_C-Rk6YAm9J3&s*_?*$o5Yk??%&r|hO9f)oiR9zX7%rrUbs9e<= zZgIxP^bdB<$jSkEnW|hF;~s+)J6RSrBGq_TDytFCIBrnQO!h+}jI|?B_#`GzDc%?# z3V%E=w~Azr_7Z)b^IdKhOT{D=7i+hiy40lHLpt;1Hmc>~{eSmahr3EGO7!_^@toN= zAip-_s50V^XPC^sEQ_Mq*CulTo36lHe(k0Li}Mkp%l{Nr=Gln7%l{Y;DL%3+Hp#~~ DED>xn literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/CountryListView.strings b/Classes/es_AR.lproj/CountryListView.strings new file mode 100644 index 0000000000000000000000000000000000000000..81c3daff6f40f8f67f086864f65b46c03db7f0fc GIT binary patch literal 490 zcmaix%MQUn7=_QePtkNK!NN+!g6g7f6_I_E{`Ra1E(2_exHBJ-OXXdPCB##;o^_a5;!&QK?&wi+xQ3ZI! zC_|LKTDiK1Hc?S4G)47PQQIgAP+6=$Rg`iHCwF>rxV#YXzQ&Fh~0U literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/DialerView.strings b/Classes/es_AR.lproj/DialerView.strings new file mode 100644 index 0000000000000000000000000000000000000000..f6e5cfefb3e559293f295b46ccdb75a8a0b575a2 GIT binary patch literal 3736 zcmcha%T5A85Jm5ruOKX0s4$=y<3dm(iHQsK1CSwz0%Ld>{anAnoeT9=*R-SH%+O++ z&hV&t+&Wb?-PP}J1#F{?B3c-siy21|hdfHSLI;=V;}LVTG32iiLfQ{_wu>G|-&{Y$ zHP4QC%<+UXp1U^J+UJ~L!ZUqL&3zN|8S+Wf_$5|!u=WAn2g+0hVxUg?i`92tK$jZ%|*bB-vEs$0bban93fqKf^cst}87U8qW4 zzBePW)tg2VU}uR$EUqM~;+LeJlam0I6_ScGiK_S|+07-f^=Idt0D&`!s`w?@%O$b( zmyo#6pQ_@Qq>)Qv>n|axJLg1I{F2z2DgBMN^_P(BI+Li1Uy^EWPHg=pBzw*zs^XW# z&P?e!vGtdbG@MCP#V^SP*VHao>Fk~jNOc#V0NBrD{H1$TzS4~`K4--s)xHAstOuhFO}TBPik`|J7V2U@ytlB z)0uD9sU2}Y5VH4`N-vU9I#+quWIvLf#VTZc=T)0KukKR@?4IpTW!abicn@3T9&zMz VFZUP1?cQOWnZ47Psyee3@Bu*oGG71y literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/DialerView~ipad.strings b/Classes/es_AR.lproj/DialerView~ipad.strings new file mode 100644 index 0000000000000000000000000000000000000000..5b82d187cc4a2b5296d8133ab300261d97f4ea62 GIT binary patch literal 8590 zcmds+%~Bdc5Xbw>Q&1kQ+5}lttW*wY{6J9>jfUjLmj(l3P?MOq^%-)@A<4gIc7n{# zvNUGal(of*L&Nm1r>DE8_xGU$UJ-oY=8qVMZptm9kf7->Vc zO0OWLwJ1e1E<(>7-k0dvOtUZi{e>##KZ|DTV)O?8H}SUvjadgK>Cq32vL-oP^H}6k z*^h1Vk%r1rnpjgz+8~d)ZfKzF#8w&pL)*CZm~IW$=O^@GjfYB~hgxYJeAl>!kyT|L z6Gm&Ewq<*1iNn7uSkr?kyA_=Krk?@F=M9<=vWI1I`LRyNEEQv|`OzcIynVJwbsHfso8}|q(wTxNjso7IO7M{vlsZ^_T#vOlvHcsm(=9%B+?Rn zM%-f35$VNg^#HBi@4XJ9c7#bv-~VnIv^dNJ+I8e%CaulHQ~S z`cnbAMZBg3`bw`YQkR63G>b}mwyJI$k!TI16iaZsdP8rZU%MV-n#X zx>%3@l%S4Xz%|SPtiV}s5BblwMqEN_ji>u0VP5+^g{KWis2sS%(MH_h(^fNj64H!3 zC}{^CWAB|SpW}Rd3y-sX&LtuBIX;W=lcJtF9p%+YiM71LD4&cB+Y-juyGD`!b zCtzjjO02W!l92Ldd;T|F>!f|%0xMUVHJllFjq9{+d9zDG%ACbhm3brEIoLU}?ZVpw u^g?R%!Loo$LTZ8kA+njLN=d$OgZjD#8-$2$TvzVIdOSpur1blM-c@}IR$%qTOYv}P`|Z9iV3SG z5vYe@2q~;&?|=Pk|LfoB_isz`KvpCtCFw|Ad|o+u$$MF9vMoo_lq(rYMcSNo zBdu~QbKisU6)VhiiE}F=pK34>ZuQG7l#)STp)Q!qbeHTX{Fm_0{b z@->9@IyjG9g>=Y7SQ$IAFPpHxx1bEzqfe?pN8Tj2WjU1fah)Y$oYZ%~+6X+lLPAVs z>O;Q^ve+Z5de-3Bg!QKTwe9lZC!!uOKTlq9tw*NblEGli3GdSpc{jSw=x3Z=`RHb# zD>3J4U)TB1vuePOvZQM|4cAF|*kH!HWHp)HM{sZi!m6BctjX&soK}Q|GZ<4x+-CH7 zps0f2kk>KyJ3ys^{NJTrkI7*Z43|VIZv$ByUlB59MOa8m=;*q>jwMFrFaTsq|r`~6)NUz8%w!9(S=;w!AX z-5CE?L{|PwuIr9aFr8adzVex7T_kDLHfns~RIlwivUb4qPNj&ZUVwTek2$_$4OFJE zPe)j*J?chsWKrk!1vS=rrSm6ASkvoqg)xgDx{^m6JD}8FqOLDo(^iCqYj!=(;xmuo zu0v1jrEr;B^qCsy&ZNNcDW6v{j8;U}x-GhXpj>L-pC6a^fi(0r6Bn^4H1Soa6|au5 zP0oV4yGwmu!`w0amFUhMzTtYjRwk8dMc9?9W9o>yA6U!^jN{CvHYdzab!Hu3;o%H6 zZrw<@Dy;|$>wTzA4bN1@G3_zm-LZ?w!IHh_s}rN^@Y=ZuAJ-K2oe-N9VPiXFU8|S> zT?e=*#d!}V?Ud(q33c_!kw&!V&EsR)odoq7-L-d$bnr_Z&VCT(5ji_jwZQ zBUXfkRn=kMd$jxagKet&4fz=2hja(DOXrJnZ$)IS@PzVrWS_a;8k z4UnC>zS(lm7oz-F5f-xG*{Hg>xHDMHJ|w*Z@||jUAgqFPjc0^~7<*QPg>l2VuGt*W zJoHB0N%}pQ?%pmzKA>(r>aT)14vg%FLG3ou2o)XR@69FS>eDEc#-+;f4$ME2> zFr~UyMAj@sD`b`|#MilxcJ?Lj_PbrqT43mcA zU*ROnaIQXERiK3%iDI`R{ukygY-!Mk^|y?k2mkAu2lGjNdA4qL!&C7SIR4;zS{<*^ Oi7{f literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/HistoryDetailsView.strings b/Classes/es_AR.lproj/HistoryDetailsView.strings new file mode 100644 index 0000000000000000000000000000000000000000..0b8f1d34449b9284d0baaaa4e01ae5fba63ec77e GIT binary patch literal 4774 zcmdT{ZBNr+6g{8!E1vL?q^Oudh%vF71c$l>jRyVJt)(k4O2$y&-}*QFfS%iz&6Yd5 zXOj)mtn1pl=eg(Hb6@)BwuWa|hd~pk@NmJy;59#M_<|N1xWtG@j5FSO#rqz5Jc7hB zLKhML7t!JxANZ`xC#T~T8j1Bu_RkKV9`kvR)-AjpTkT}e*Xc=(*E`slX_vL}3NBY1 z;un1qA8S1B!_>ln>xcB@D?JbJGuz(=Su0_c1P5b-~@P>FIoHL$M$Ip1x zPqY#6PRxjf75S_oPxX}7H_c*$I!rTdk`wdzRh2WVt@V4@M2Cv`Mot|Z;XB-tZZr#9 z-MDy|UXVv9uZ5ydLzTqTgrRDr)2H1$pqB2hAuYTk3&KRm^Epn?E-|55Xevp)klhVg z^$MQ!s9>pUUZQR3NTTQvzj-!U^@-@YObfHsn#F4FZ1YbW`()DL{M6;S$+>H*#EoWQ zuM(RXX))aM_nHnX>yRvLF-8vg*d9-3c{R~2?74Wlz370fNDlQm{|H0=onE9_*fO-N zUZl-IhBZ@vQ_zqVdyQtHRS|99s$R1ES^1Ea!DEzEx&VW7Ph*13Uf!Fv(XJXXyP-^ZG6OT kDT6c%O(n~nJ65Zo0V__Me7T&T9BSzk4oj?Q77wSNzrRi5-~a#s literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/HistoryListView.strings b/Classes/es_AR.lproj/HistoryListView.strings new file mode 100644 index 0000000000000000000000000000000000000000..766ee54bbf9146b6770af552556e2f685e6076b1 GIT binary patch literal 1874 zcmdT_!AiqG5Pj!-#nNLTwO|_%@nEgRVp|dQ;w?=giNq*L3g+k4H@mUHST#X&kY(HK z?(FQFH*a=dUo7mQ4}}xNaFMYo9I^LsgE=PHAZL3-!kI(PyYScoZ5d&Wi2EX16j*R= z&6RlT;h5ht^7Q^(@6GiIcY0q=>$LQH!M*n!d-OHObn9bOuJ?)4;`a!HMi_cq53};D zlqeK@o}qL^KF1PmT>gJVDQgn3#nv4|OJWnw1LFD}PvaU-<3Hi)Gbaj9I%__W8wR^) z>69ml#*6~LQi@Y!z-i6E`#El@%5HN%C66(?RDsl$)XMh}?xUV%nQ2=O6Y4!>lPDFg zIg&hfpT+j^4l%?zY%F;f*;w({tL1o?#ed=Bs?5LKc+K*kAS4SmvvtPb1uk(=<71aa zTRtjW9;;4nexnq51)3_QdJBxAMdQypPV=^`=u7T9qk6@25{?VbZnP>x&SbO~r4~O_ zh4@X$$BZ|V4TqY!t+BGpV!&MnQ}t39R3T9nL?iX+;(^^~mzN^YC^KSI%tVDS;<~9_ F3vXB5CaC}b literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/ImageView.strings b/Classes/es_AR.lproj/ImageView.strings new file mode 100644 index 0000000000000000000000000000000000000000..2575a4289d1f036a3ac90e3203b4d86c7eb3de16 GIT binary patch literal 290 zcma)%y9&ZU5JgX&uLvmvDpnR^qc#DFAc(bw6w#nU)Zlm9s|Se@!9s>zc4qEtANPPB zF(DI5)>Kx=$P=+7Va%D6bztvg=zL9Pyh3#!cBOq;|F4R754~+^{}s ya~WGvnF@)xxA%e-eLCzode^!S8voe5f$v|4?qBJm)+IGj&PCRD#)4b(-+(9odoWA@ literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/SettingsView.strings b/Classes/es_AR.lproj/SettingsView.strings new file mode 100644 index 0000000000000000000000000000000000000000..b3f73e55733c47383c92284a05915bb70b5269ea GIT binary patch literal 748 zcmbu7-D<)>5QWcmo+5ZDsL)&SB1RhmR-vg6;2$w6)#@tkbNU3nNZT(PjkE+~DZ}o? z>^XDh% z>;LF*ZF_W3yEU7u-)u65dhfWo%r8<`FGQ%m0!1ahBfaSf$8$Y!C(LbgW?Xz1A?oO5 zs#kBm1}HwF8?eJ?dAJL8B$xJC=IVbNZ`(aAOT5NRWr53sbv(pF@XKov;_o{)?DoV@ H&3u0YEV*dGn%Jo^euH&S54gU4{GhS(^=$PgqZ}!J_Z+xSth3qNP1J>($zS>h$M`!X`t@8b-Ci)V~ z+jv@H?2-un$gi!Hm5N4+us&j6#Oi*^!>P4c!rJe+S>sLoi_v$9-%I`u@V(3Ifb|JI z!j|Et4X1s}+JIRD_6(mB7#%V{QdysveP>+OuI|zOo6$qosz{A#Lzp$J8qJCS=Q>C8 z#OmweM`-`ga`^5b)xkoGDEMeE>qUldmqdX61nrvBHIf0gdwA8>^$Mw(XPHYvq{f;sST@o&YO>%u;>vD>HQwwR|(jFDX{?@GJ>hoQ(ZaTX%t>cV0MF4X8#h(xoLw`pU+Np*L&nKD;c=%Yx1~$M#lYYA zmB+=ue?5HFdp(AU1?QW2J=CaxbVj%&{>Rrtg=}u|e(2=X_=5Z80<0k?f=|wz>Qx4@ VOTv`_75ff}_?o-=m~%9#^IvU~g`)rf literal 0 HcmV?d00001 diff --git a/Classes/es_AR.lproj/SideMenuView.strings b/Classes/es_AR.lproj/SideMenuView.strings new file mode 100644 index 0000000000000000000000000000000000000000..a1f126d9b960d8d3673c431bdc4bdf9cb135263f GIT binary patch literal 478 zcmbu5OAEp<5QOKPUr~B2SW!F(BKW#g1y3zreH3dcReXTIUj3wLPw}FJY&MhK$oh d*S@J;<3fzit|r90I^3&{TCJ9U5Jm4gUs19wSkaXrg7{ce1l<(e`Y5$UY_SUZ^Xfs{E+il*A(NTO&CHxU z?nZ6-@-)^#Yn3cd1GZJ9P;+t{#oSr-$)54A*jh7FuDy=L6TG-mEqId=ZBd5Y)an)a zNG)|W!d}!Ne%JMx!r;3ULDSVXm0W!d75-t#DwaUI7t4^pNL46+K83M>H0O-TF)XSJEJwN%F`?L)YO2-(@XwVw4;i)nA=yI-&XX3*&*W# z-jU5AkmAF9v)wzB*`Q+MK}iq9ivTdb|<_0-!sE86n)Lml2N zePDgK?<&4Cj9nI4yo6D$Og+sLSB4$#@+&zmr2G;v0pJ-%z~xNn(j@wEkuCiW9JZS(y}d41*UC*!i84^`a+e5Z%n`kmoatQvEbxh&iW(?+xS8Q$J0K$&%F z$VMu}TQ&zv)JD^9$6$`1X_rcDde2RZbcic6aV&~8s)`T0b9Cud?_unV<+P5L3NxI} zTHM8H*aQEU&QU~1Rl0v8p>77$)*&1g=;pqj*?U!7mo5tzhrh^#8nvp*+vJ7uvZxMc z`(J?f=#J~j^uVO<*PnF1fORIjO7zq?LYIXLVfttm#XZk$+JklXEq?^!0oX67J3e>( z0i80=fXl+gz&vp!ak2bc{+Nof0TbsiW^Vaqav;u!%i^Kl^3!JeIkoZ>ya6{VpF8)F P-rYj&vT&)uo#}r80o^(j literal 1878 zcmb`H&2ri>6ovOZg@$EjuK8)xhIX>Rlq58aO^V46(~Xe@C@2zxWDLAfU!zY}D`Q(= z+`7ZC@#082=ev^ct<)}1hxt;XYg8Te`u>El>Q|)5MrmcP)KY$_)uJe}80E{k;KUNE zS-i!ayb`Q>-}JV|lE7{X_+cI|T+}Lif~Bph|Msd>4k_$VDZyhaA7dgVolr*A_MJ@| zwSxd*!Ih6yj-%@>K-n;MbPbxr2-dOJJJo?%9wdJqx6TON5>8e=LxXU_C`NsX36}&t zHh=QpzfiN@s6+huglxhX2?XZ^b;R3S$SL*}6h}d1G{;XFdM<#-I;>R>gy*@ z922hy`d~FaTJ;?6_+26SG=39bXXrpr*|_`ittaBvqjRwBG|dPmt?^F>b`-7kUOfq4C%WE#QLo<8*-I#MmY diff --git a/Classes/fr.lproj/AssistantLinkView.strings b/Classes/fr.lproj/AssistantLinkView.strings index 5d2b27ed23cddc5852e7623d9e60705981ec8591..2ecf6c760cf63f52899bf7cb6d05dc9dc80bec0d 100644 GIT binary patch literal 6746 zcmd^^&vF_^5XSqgr=WC6l^sap*s+sT4hSg~IT9iQ%SkF136P9}kcGwf1LwNEvTfU8?8w@@ zTet5SJ+vlA+tGD+)8S3W1~#6eOujEW+H)IP4~hccwD}#{g_}n!bvOsisrP>VJ?1=x zuF1%@Z9?gJ`O>cJ7c1H~yeV>OZvVw2_+R5bMp3#Izw0-vlqYfpt_s$In*yty!{sp? zpCCb>c?aBUY?|T>*#^*yvo(%9n$>q#e4R+VgZx$dndjeZ4_oYWSH?;e_f)mUJ!vfA zBWOjOY`OIhSi8a97QBd$U90iDwUWI5l_x#JcBlBzSN5E13pt)lG?{o(jNHeb=6}K?Dvs6n&nLJib&RdfP6371#dD1f%?Hi!f*tPkH7r=$PwU;^1V? zb7B;EJxBa~fWtoA2{}FXQsT~4vS!Nnd>%r>MCXZG)0Mw z5L-9M``Etb(As%3Mjo#(Be`mL0q%@JH$QuU_DHp%SR|@#e zA(HD(m5i@x#!jcgk%HC9hjo50U4*^iPNO5Ps*zg!hMGaPkO!8aXmB5*T#>09T%e|s zy@Uf7&S!gWw8z+)tI706{PdY!l}U4Ih0onrnoBjEX7e0-pC2%v#-4Jv`0|8Pl}Ex= z!Oh=g{Y(2UGcMA$p2vYSMJzj1oxG|)M>luUxNu&hl0Z*m@G-&0MCaZz&71KcNy|P% z2dXDKd>w31vOk!w=2r5WOzh-!q?HEfR(kR}|G?9^Nwd=WkomeCZM$Z~Ygg2o%cE=H z;XPy0brZeIR>y8$$<*XoRfw;sWp9moooC^}YDgy}nAb(H{BjJe*{{_3s=vEj6%W79 zMShGT8v`ro)z{gJto143<363rHToG4*+nXb5%D`45iyES86RuT;}fKj-}_!kHODlL z>5b1oeWEycoshDJ2PARiqbM8ymV0YV%eS#Zx&xAb28n#ccfpm8<2oSkF%k?wr!HrL z*&TA_koZpe#A#f)K<@Db+l0UGcverWQ>ZOunWmq{p=7@K^={XFrfbA})kMo#%UfC< zyf9_CH4e~9m3Y{~C)9l%(96$SBSw)wDo&k`$%aDWP(dqS2R^f~_2cxT+Oy}Zs45`D z!~EXCa*Z8PW$vP@BapUeKOxI_PGd2Oyc$y$QJjk7BzviDSMPtd~yp1wzCJc_SDUy6==J?g%Bk!f`ve9fBgc*ga)u{=h+@S z$Mc2Ud%w%gM_NaRV8BougRkJg8I6%k*ufWoFeY(KUCJomjqgJWVuHqi-1a7tJ^>K2~vyJ1C`5pY2I5S`j z1{24$U!Wz!$k}T^ns}@Fcgla_OAjq!=Ogq6-NF}D_~*VT>Z+EP_|i`}4+DWwZ_FSf zh?8tF%Z>JKPP;vLJcqZlMWI0zn*7l5^w%Wi1Yxv7%%+?X8I$^iDAKBm5{e3ngwe@u zk*70Cm?wbN3}NDj%p+08|E8n&-jASZz>#~uWtD|?X>ZP&ZPvN=aZXRuTX=`y`(Gzp z4YJVWztJ=Rn)GeY=`{g9N{N^pVtj1E1R!8tSm2IwU;IrGqaNZk3;+&2(gt=Y{;bxF zi13J~Be3?vfPf%bxx&ztM08GZzTvH~nxL2f0W6ldPrwJ@(FNr>6cFPqy!))XFB`3P zF4OiAXVI=IRKiw4(pBsud9%w0$Zgn5*M%Te*n9G( zkMY1^FsIS#F-`e2iZ+i4L4j9X&=AJvcfUXbElTD#W6`B;)qc%z_jq7KI zzM`&bDWUwq(BH>#aGeuqC-Bqc!&Z$fG&%F?LEJscZXf0A+AemP>U^7Se0d<%=hKNv z6rdH+DDlvQ*Av*gO^b$Ap{Zeoq^poe#HS0Ni61AP{O}L_Fccq${A3rWUegkdZJ0O^ zf3pfLs?gRE^E}i-Hi{~xDa)iqn7AjuR!<2mmr{$SOW7tgdzYDn>G{MQ0@JzZ4`-Se wY4;K?=dkaM3olfmEu-*s|8s1HWsNM`s9ek+q9wF%U}rWhs8m5wl{UA213y;j2LJ#7 diff --git a/Classes/fr.lproj/AssistantView.strings b/Classes/fr.lproj/AssistantView.strings index 943a48924903dbd7bba700d0a0d49ff00495a359..2caf45e7e09e59186de565ba27465eceddb3e0d1 100644 GIT binary patch literal 716 zcmcJNPY=OB5XIlQpF(<+v?7k;fFezV#J_`E(MS;zRQU4vRkcVOje~4vve|k2=DnT0 zT@95~R6$K`}Rify>{u>W{>m2XC7W^iQ Zh$ii8n!Z*t<1ECl-Ul#8a}1yChVB_yYYhMZ literal 354 zcmd1vQm>vJY7KI zhOX|q#_77orJ+CxEqyK|0X>jjB{a=kT&VUqm6nv`=K=L5CMTyB7iT7A=46&sf^7%s zbjeK2Ni9ONGsG=NH`!0uFf0jbCqh6E(-^P|VCIl$y;EXxHk#$BDbBji?z*W_AXkAr Mj1a(OIm8q$0Q8t=ivR!s diff --git a/Classes/fr.lproj/AssistantViewScreens.strings b/Classes/fr.lproj/AssistantViewScreens.strings index f9a5a19d369befc316394c0f40a26b988e52bb68..e79b9b67726f881b7b32a186b552b6a5b1aa8205 100644 GIT binary patch literal 35774 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 literal 17096 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 XL$p9o_4>aais@yTii6E!GmQ8P&Wg0O literal 2248 zcmb`IUvJtl6vf~96cLY=Zc5dTKbj^jgo`}L`I<5;V86wWC_q+Fx*1g&SH$x}MaTcag;q@*YfUI(pmx-8)+ z;1+sD9Az5!Y9PQ@0~1+4uP4~`Sh{esG%K7J(zb~aA)B7526Ysn4%ooi&N%t?k{05h6U-!7`0%EVVXyMEx(p) zX^oivnp@;Ua5#|YSrC<=woskbYkwzY70u!19`N10peW%zlmk`PL($l6+Q$%P;Q3?0 zRD!9?+DO0VNdY$L6sQl^4if>CaP9zd2pR?CIE3i}Wm1UpE^Kp xA*3I~^_6feUZ1i({|e0rIfiZuf%98Ns0B54d(6&JL*X;vFYr*v3`#gy!(YFStEm70 diff --git a/Classes/fr.lproj/CallOutgoingView.strings b/Classes/fr.lproj/CallOutgoingView.strings index d45d17d129110acda4581c47e8afc4498dd79c63..71c9f2dceefc345012fdbdce203638fdaafaf0bd 100644 GIT binary patch literal 5694 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 literal 9116 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 %_Ss%)lg@;SRmmN=G|CN9C z5wqi(1BGk(!u1klHY_Y$62oDk+{>#Yc~PNf5b4=N*VHN9QMAc^dK!_}OE#&Z73@8b zk6b(Ks_dPnOTrZq^L$-1-J{lV?I*9yz3vy0^44neRcM9tLTYfhaA|%`Uc%)NE}6A dk*y6b311dGtrJ6+MMZ4ByOYdfp5%~{`~m+lpyvPp literal 2966 zcmcImU2obj6n*DcL`Zw7bSVTFL(`;O=z8J+xzqMz~_llnlgfR(2I;SpW&lZ{!mw(Vgcpd%uFkcbO z`W+56qu)2Tg<`XG8B&xng+eYNn|KRFs8Sb7mAX#q6s1bNx{qQn{c(G3-(v_f!$TXQ zDAvkCu~yb8rlWPrj2u})tMY~p|MazNf;swDWxaAnya+}>G28Fdgc?@PDjkni+}t0&8ZLJKQP_~cf3OjcZmRX?m_l^`-*8V@kburY%#*VUc61n-7a?xG0NR2%`7SI- zKxZMzrP|0ngUjF%?hf#qnL=Lz?>d9&HIh07$F^YAh2G{M8m#;HWfh!(JOzkVvo~=1O_n+E7Z4j@4FO9>dWAPg2(^=tv_C89jAb*=N13CZpwNx@yQ}pG(GA z=foOB+TjT~|Eoo`=bt#5RUtL)=oDQFI$GFDZ`96a*9Yc>0S?#cVE z4XSdsCVdcgP@_tvq(Qx_y@+GtGFH{(?Hh~ri@&d%GMr3#>yXxU7x&H)m154ws=|DO cgX$3#;xblMq2fEkFnM|p5eD7F`piU|FLW{hegFUf literal 789 zcmbV~TTjA35QX3OS8V!7G9VbEiSY$N(x^bhOUm1J8RL?*o4QkkfA6-|Y+Y;&yq=kS z=gfumI{aD-YxxzAp5kFaWU}az3n|fBl`5@hcPCQRWy1(H5^|xnYni2MloXH3!tL7_ zSVQRUqoR<-*zXvXp(7D)sqCE^E={(<4=YHS%m(iFiwx!o>|Xn|yBE48 zqVn5kgs#U9|FAW1@&YPPYI`pnGyFd>rufNM%F4o>r#e;h4$HF%#5XV>{zUOYTa=J@ z;8w;fMZr08e21hDoAZl$A6{q+@l83c$g$l~4E0=Mv4qrC-UQvxvH-Q~4f|d$U4y}!domgGvr>o0 z-*a_@MN^JW^vbDlo1_&W~bDWgiaKZS*g4!9rcPOBj^qW?@74A5Zdlf1WP7?t}i4lhx6=VPw3@Z5BzDJ^6R~ E2^kN@2LJ#7 literal 1432 zcmbW1L2rUU5QXpjiVa7T(Lskfyq_@bp)tW1TY0? zKoH#vq7<50mt(5ZHY&Sjnr6!9RHa7-#4)^gSV2DtRl$osDqf8~Wa|K#OeKz!J*<~- z7$kxy1({dYs+5|LC7WDW1GtM|ZrK7Tg{p|%hNw6Gt8}Bb)rPawav|l9Bk>z4V#cVBQfIySAR5G{qy% z!{br*S!=S=i*~3m)_<;z_ie0iPiWgXAMatf?-8*b{=4i|lWMd_F4;U$LjpRz+G^JWqilXDO!~(=``b8Cri@Q$OFl zgvXWS!Mo1$lGsU%izJUl>*_S*#!x{o5kk-ESrr{rcDmf`pbG6iKl4$A4HqV!y{ z9K%Zx@zGV1JQn5SIm9yW&8Ph`z@jRf*c=D__YfxIir1c?itO8J&?+=^UY${WI?T2h z1>M=uQSY(tFYN5W${M_Mty*s6Tsj o4zMALzXO|QT;I&vpZ+5&zU=b-kVj8#o;|)NE@G@Cc`TomckCN%hX4Qo literal 1087 zcmb``K~KUk6bJD8K1H)5Ng+nY4#opGO)#j4f#_~s+i9g~&GwdnpWY5ThSdg^c-%|- zf4{uG1%n>ClB6urB?_0*Nd=%)c!3C|yevf~q=4;=WL(w<#!@1x6%Yy~%7p}8n6nSr zJEt&B>Jvlr-5Uhqu>U(D^hN|hC&o;uk2kIO5ldt(kxc*jI3egGyJ&P zvF#I=X7Gqe>2!@`imMpE@J%y|yypHkfYHl%Yp1&R9pZ6 diff --git a/Classes/fr.lproj/CountryListView.strings b/Classes/fr.lproj/CountryListView.strings index 0d1984d051784ef0d2c4e62fa61afa6004cfc3f8..af293dd97f5543141ed8c2e94a4818fccbc79a50 100644 GIT binary patch literal 486 zcmaiwO%K697=-8CU(xg^!NEzyfs&~26cI-np$G|;@aOTYY|Ft%Ht%Npc4jg&_nV`l za&qNsr@2lXS5?N-M1i{O7FzPpQ-y89`@)@KMrwj-!XC4$F}?;c`+SF*S=IoJ4a^8; zphm{-!A+Fc3Qk@(JapJ&(ihI(e<_rhgysf(8DwY>gNusU$nhYHl;O5YJ;~RaXKp8|2MuEJI{$Xt}${xQdYHpo<5@XDejzy#2=%7 z^vd^k*!&QoOYfgL%ciNfyv;M(I-;!a{5QdjtTT)qwfJShwv5|(76l*H$s z&#oA;nMAdOCD|+`@%fjL*iTp05|*S@O5*b`BUv}cM74w^@h4O97w_{gBiS&MsFtuK zjnbI-{L4r-%_OQNEQvpvieuvQFC%H0NmNT%k}hj%k5zhkM-}Jlqe!e(<<-@1>HB`x zJ^iib`#M+@qh_vBip0vKTEfQYkP&)h&$K*7&0M_{iIwN8uCP?Qt|z}Op{k?BTB+pz zTT+>o?2K6_{o^#v_ONtq_Pl*|zM?VW4MqA^`O@UBvOJCr$e1TqnU%QB+mY~QH!11Q i^R|TbM2FNvj&kb7-a@GD-9?-Ci!oy@r;MI!6?_2fdN#5E literal 1845 zcmb7^O-{ow5QXD%tre*1^Yx-z{M+8En)RZ+Rh|2*l!I^1(#d)o?K3tg5ie20zC z#k)0rcZZ*Ic%Dp?G`~8RrNOt0t+p9a*! z_;Y;QrY^3&l0Tykz8&CiOt)0WcO4~bp0i0;_@+UUS_-oulw!{6&CHt?%+jC3Kp zLoXqvwJ3)(E<(=&K9^}}rr8&MJweaUv)y5A0&V)C4n~8%nxlZ{&tr>`vK(9EBMp^} zG^^G>O7CIz30*1+u|0-=&?kwl-Wxp}qgY}+9ikfY@ zq%K~~EK6>{24h@9SVQhlLHL_Ak15f5C}DhtN2Fe(XK_nnd^?RKpkj=KN2DZr7PllT z8EX>Ia)M-8OrmFTOR}0tV*Jl|S3rT7M9<=uWG$1#_}`R79$ob;Zb>ScB*y=yBrD=I z(X+TEF_9^K#~c5flB|kJ^ek>kN||e7{BKIKCMMCdxFs=>DSb_h|4m6MViG-zTaqSn zY8zSl@ro)) zc|^+da4xr=x1nnCiwvq|svuWtaFE^aMR1N8t`Hg&wVU}|}FQN{UUgtg`)yT6K}zIhrQ@yT@MgX zqNFwnDXG@Nt@mct(VNsl@5)CngV(f3U(nNtlG-GsqZk&tK6Wim_OSjq||x5Z<#l? zor9fY+b;awN1volA7U1;Nk}d56k?ls-<0MH6V%^z*dRc3J=NG+kYD9}$j CTp{rQ literal 4242 zcmb`KOLN*l41n+a3J=H3s4+I-F`XWgkR~Jqng^-d+j?;V#NY%Bf&BXJf;VdfYAf0s z$d*1ymbBW!;em4+i|N$);uO2h`)HAV9Yk@j_}LLsM$_pa9K?fk*%DzC>vzt^X*6-f z*b%+nL_Jq8cEVvK(`G|IF020shlOJK)3$nXw|=2O`|uJA8TFI6rRNAY|0ECF7f%79W~LUdB|N%q|g;=2??sW2f&7*aBj5(QBz zOh^SobpCX`_&xY2(A|{H-7r3Zhh) z5D!Ci{#KAG1yL$Yh%Tm$NOb;IkQxP1Don^-Dkhj?`q3x*ajnHf=?=`tQ#LJGCRe5iZ zC@i+Xbl_CP@fOxh3C|QOz76R^w5Bt1^D9! zliUvh1?8VpcqW!#pW$W#wV{dB3MeRlM&j{RbC>Y$!J<9OBDDev${%NVFrNkY(42t# z_AP^20R`m`>K)_lyi|wd3fwNjjB5oHcdv1`V-lS&U3jX%lrFShL3Ylwc&&iq@-HE%E;h<+ r*c!rR8>+3JnFCfpIe^SD%S>N@@^wB-THueMe_>94E1(=uCJMg*F8=-1 diff --git a/Classes/fr.lproj/FirstLoginView.strings b/Classes/fr.lproj/FirstLoginView.strings index 90ed6cbd7a0ceda099e53e4afb2c6eb909d42518..f29da653b9bdc8871c9e38c1cf3210ca690208ce 100644 GIT binary patch literal 7398 zcmds+TT|L#5Qg{KU%`0ej5D!Sd(i3hLKIp%f+z5Fhi58UIe6k9`zP8y`-K>t`>O17wZ^9xzWF%`?B@rPB4@(W)wtTG{2c;NfrUZdCRqDh+uRJYg7sRhYHY%)Da#d90X+ia@$f|s!LW(1bh`oAPDT}OMgrL5)b~j}XyeN@UMUw;yZkwJKB;fMSHt$luqZ6yZ$TDfWOtexD1mQH z&iF3NdLK&5!a~`-W-gUnu7O~aV;eLZFqt3yLHssL43EHYgQaGzE*~TLvMekl1=cH( zp(ScFLu7m};$eC{=9-i5aFs_smE}Ln9v!2%UM-8a%v=`UI1w2QbEVPo*I+JH5;u<7 z1I;jKM`R_7`taaD-4S`%pb)7D%OYt-6!1m)SJ^c~*YrK~)yQ*sY#F}3c5JO|nE^=> z#gnD4UW2?PvwZKdGxB}-`z1G#n}Rg^)u zvMemD-D}3l-$8EBzUd5i{2bXOj_>{Z+jc)Uv2$=Wu#Q|;%WHB_PXR;guSSE*Kv zzozoeD0W{IXEOHL#Xsep1+<7KTX1loV1gZKSy)(Ki+##yuN=y&2!;Y@kLR|6jqb}k zr$3sgub@8#cr6PXuc}woUlZ*25`Alh&n8}!@S@zATa)g{QL)k?IJL{3(_M5V5tgznETrjAelM>gtJL)t(P*Hc zbgn8q^yy$+r|UX?z{eb>fUYiX3(;* z&@@BRYwG*X-Z literal 3572 zcmchZ$#UW_5QgtOg)7HYHCdQ2P*ZbYGl2q3Si&SXVGD2&HrOUCPajN4Zfv2L%+%!i z|oa-W6F--_|$XAf*w9F z#&6UN8r4v~eVKrD4>i_1{BV7fIT5n5(N)|jlZj_hUI&5eC{xgBV9qq+SQ=R_*)Ew0 z>%o2rTfHbUi3C+9lA$so$MqJ34eWr?u!NRTZ*;!EKM6m!fX63s$7UaFgTrZrn3@w% zPusa`PcuDgQ75no^OM|F2bvxje+HuNNXUjpN1)0nErY7jE=iT%)d$d>!|+KEQ9z=I zOe1tl{r<@4RTEX^YzmtyG*=J2Din}`u}R85O;X{p2=xj4d~Ijr*4&Ddk1V9a25*45|Ju`yx_uHJEF{VrA7HT9KyT+`T3RuQBXBDGE(uy zo`^n-m52bD7%heswpZn+C$hdcUoYM$~Vs2K3Hb2$nH>}Jy8Qles7UKTkhHQ~7$ zu8#2KK|yAsM;dk5uk|{mb}dmMX%}EO0skSqFd+>Eq+zUz@|B6PtO_i2Fz&?~Lg7D6 z3<7wOC}5EnPmJo#iA~O|xPaar6wMzTi2@>3PRTC+_13fXXYgL3*$)5Sgr|#ws@0co zJ$$8NmCxUX(7lB>JI|RYVC5K_tTnk?arR=A)!2u^1eUE4r=Wloj7_76JG?yqdicbI zaSmqPIj5n3G}+@)>e=1nJ5$JY;bC78%t(-#!XZgapPb?OH|w2jVAXhtr{>vVp zk diff --git a/Classes/fr.lproj/HistoryDetailsView.strings b/Classes/fr.lproj/HistoryDetailsView.strings index da69806c283376b2aa2d278fccbe2a4a08c818a7..11b0cfe7ea4155b0c21aeff4a3a521f9206000f1 100644 GIT binary patch literal 4728 zcmdUy-EP`I5QWb*PhsVzQY6zh6^Wv%QVoq#XiJn-t*eZ%bcPR9@HWbF|fBXBZJ^I|e=yT4|mx;7V#Q!VqK7QYT zT*Cbl>({~3gQxAKV@g&XGu5{4yd14og8>+Y#9`{g#*pbe&FMudQ)a}Srx(20s7OR* z82xxEOg+HwynOt<;oO4>dnr6@7OwcLo5==!!{m@_q_@P;P=_oU)oyWDXS~HsmTMPH zoL#-PhzCz3>TR>g#@RRZHLiqZ{F+xOo7MG0?V$O-zJaN)GksT(;)~6~l`rej{Y0q} z{WGle;7A)rcyPw->Vus-f=RPEQq+4eFgToZ?&wnG6b?2E8%F|aug1^la2>w(VioIh z_k+=h(NND&ln%$B@962z$kRs5>=q-&-+A0wO=TDBbjm8>olmD!-2fq5u!y3!kC~6>@t<4fy&%cXgZ61DnNT%kVNg`Sh;S z7V#tlY!)^KEaTU_U1GBxM##6Z(Sk#m;_D@QVERkaX5q@0$KPSp`S$${0tJ2MT-GNY lr0T|IVdKa{b{L!GP7{?WgH}NIEH3|gAqSqI`Hhu(Y6 zJ-t0Eot}_xNRxzIlJdCUSqQ=7@&%!e!;&PhgD?=QA+=eU9_Uc#ef{Uieq)a4_fn{} z{(W*`=VE{_Fu1ffeR=p3=u&LwT_+{BCPv4YJ|h3qkn z80M}k?s^gTw%Wuj*r!Mx8gM@*J^mX{dUWHaK8w2+TwU9BiQvT9x{5}sSLI0cs%a!# zkLmwx=QZ!Z;uDfyQ)cgjjB3J$=5B%j9bf3Vwzm|4r;D9_h(uHVh QK|6rf$J`&mrFg1oF@~j`rN#z5 z{u}epEcVdmx2#;X57ai$2otpnsO?97uW9?hwM$=JbYdTk=zoQImiXO3ZLb{4v4=J$ z6id%jjc2qTsmm}sspMydQfrA)95#JsBxrlMPl<0d;~8_zMyQ!UsQCv7?ZU6G6qJVf%OWhZYp z4A{|2icd@*8QW)c>2K+W;#r@+>N@JULKS_^qbeM}-NZ?!Y5Xr#1`!uz_U*@oIs4Bc z9t&LZ-NOxz5~!qUsCHVjV literal 902 zcmb`FK}*9x5QXpiD~22k+XmVOL_BD#SZpIAx%9T#PU*^!mFyInfA6NQq(m19dfZ{= zz3NJ&03X6ZNn`QXj`$;>|k$*vG%>sBB z6j9G^`W1B=&3ZZeU$$xbBsYc33mxKig;?%CV7&VDntw=N9dc4$*2^Tg15-v^xGA?%pY{5&{2JBY5aYkxMT1JJe+8P(vsbnpe>gR~0FP5K ArT_o{ literal 143 zcmdivNDap@MvQ|h;PEIW@&P>Y8$tB!j{Yb+Zd}%k#{E`nB}AkOcHFjZ?yA9v1+v4lQW_ diff --git a/Classes/fr.lproj/SettingsView.strings b/Classes/fr.lproj/SettingsView.strings index fb1d373296a2f3ac80429eb84b58555c0f0ddc0f..d9b341fb88b7dd4f56a3a6d627c3bb6ae98206cd 100644 GIT binary patch literal 748 zcmbu7&5FW65QOWTrwAT}Rq!f%h^|OL-6hcnP**fj{M$tI4Sg#0%S0nA!6?#94n0*< zRoywCELByOt)>W{MZ$th_dR}ICAsFjv<>hy;iQxk&>G*SRB0C7-;*@^ zlnp-NM}`|+-}wd`f*#X%^_6j&bYgvI3McvQGUYN(E!cU8%2U2dnTmt<%4C~pOE*R( z&!>grqxsx3r_+f@v?tMRhQ3xNrYUnTL3F!yYq9{@a-SCcCk80levS ADgXcg literal 362 zcmaiv!485j5Jd0&iiRUeA@OQF2pU2ndZ2tjSsE-5&~zdC_fjOOLX6khnRz?JcWKxN zt?781_X$p=(h9j-E?iNx=AEE+O=+>{vONu!F6P-XdyQKV?8wjWuz>-&N QNLYr^479?po$nU%0yuPSLjV8( diff --git a/Classes/fr.lproj/ShopView.strings b/Classes/fr.lproj/ShopView.strings index cf329bbcd2dc8576c4eb870b0fcc4af23057aecf..12785ff8a085749b6b207a6076b62d4d3538a1a9 100644 GIT binary patch literal 2576 zcmd6p-*VDG7{$*uPr>xEGf69sf2!j}(AuJ%1}*q+ya7a-76BoY);IDke4W08`r8cz zNf*PI(Q$T?*?c*>`sjl6JJMvL36imL{~a9&v4{shX;qDy9uJAo7rSOC4I* zA|tgGF)jjer6b<8dDBm42=swg25-j4c5FPKCj@&2x-y5A8?Jy z)96!Y#kN(h!_yH88cheN+U5C`Dtgb;SNaw0>K2zb@7*O<1=Xi@QP(JIW;PWZ>J!ay zG4r*^BeL%&Ihr>>HCQ2}5+1Wx^faTn3*j?=!gi_al8NC{)+puqnVyOCbWMKOb0th< zq0z-(VO_L>*$S`oZ4<34sMkh2504J?Jfoot;npzON5)abv#;U6x(=!BFV$FWJ?rd(VY%bGW%~aV`<6j&y20y>R^4y6U!k?Q!kqFzivI*KnKa4)-he zYA?gkg>W<6G@GKlPi*z-Im{yJ8^dXjGr`k6Dj8*%xezX90Vm0!0$gxnXDFJ#ITKdv z7U9Tc6;18(>NeC{`&Eb-XHKZ<4R$Vsi{0kg6y<$NJ!1Si(F49AJDS<%+f)BnJ$(E; zPJOs;Z%$!6f%~PtaDPF+m8q`_;ZopF^2*cV-~T6E=#B29#Eg^8{3q<=|JAd~h4^3p u69OC^@~6<4b6Dqs8DEtVd?R+Khi}gGEW_G`aJk?cU*0+=e8@daclu9dB!OZ8 literal 231 zcmdivNDap@MvQ|h;PEIW@&P>Y8$ty|j_M)~CcCA9RpkOcHF%~HZJjEf7^Az&+kMwO&i klzoh d*S@J;<3fzit|r90I^3&{TCJg5-u1J(E^Wu+#Uc)Ebpg;_Z2mU!!$WQGAHwDh@<1oS{=DG@M?iwnOyynyadaLG?a Zvo<0rRM*H!x708RYAr$lVJ$*07XUIHMSB1M diff --git a/Classes/fr.lproj/SideMenuView~ipad.strings b/Classes/fr.lproj/SideMenuView~ipad.strings index 166d78dc1935e82f06043983b11c179f85ee5616..0ec55c3e15a4424efac8c638653883806fa8a6ac 100644 GIT binary patch literal 478 zcmbu5%L>9U5Jm4gUs19wSkaXrg7{ce1l<(e`Y5$UY_SUZ^Xfs{E+il*A(NTO&CHxU z?nZ6-@-)^#Yn3cd1GZJ9P;+t{#oSr-$)54A*jh7FuDy=L6TG-mEqId=ZBd5Y)an)a zNG)|W!d}!Ne%JMx!r;3ULDSVXm0W!d75-t#DwaUI7t4^pNL46+K83M>H0O-TnaUzCn! ZZDm2aZh(cZYfdrLT7&??T0Dkv0RXJTMsWZD diff --git a/Classes/pl.lproj/AssistantLinkView.strings b/Classes/pl.lproj/AssistantLinkView.strings index b59ca47fb50609ccf605f25192bc6a915eba4293..a953b6136da039726251711b2bfa132eec3b5fba 100644 GIT binary patch delta 663 zcma)3O-lk%6g_X0S}0^0eJp~BaAy%xA?+q>qm)5`U~SUTaMTo2WF!ds1;Om1zaRwj z4_dT{=m$i@m(U zI>0gVju9QYZW-ep+Ct}$z%8si;(DlCe(GBsGu52@ylB z&`qKCifb3$ipt%HxGA_4YW)V?x)S^X{?DC+2x%d1T+HL1d+s^s|2yY?TMYbI418D$ zMeCYJ88RtP7S*Uqp3si=3L~+r-=Y(+*I>_)i+732%CCa8Lq)1!RmR^mo<~$bgo;?- zIV65XBJy7Nr;#gQyNaXioTi#)QWkD$94o67rohEt(NZ|+(GG~IDq$Y9yV&zj^}-GglUpNFP^(Z_L^w|BlVQbq1gdL} z(t3_gq6`l1`>_C@UIJQydHL#qSc&z>H?aqSEt}yzj2^!%fP0%RapdlKjQL!2vT<%$r=7pu*2X3lvnF>)EL0J{o zo(Y?S&Ae>lgn%!c)Zw+w<3ku-Q;=^xcv3laVMhJoAqX(JTh= zcqSe^Gy&l@%IEvQ;oR@t5o6Vf{Z}w2gUB>h*zb-PG6A z^SLYECstC-&Ycyf3;V>uxe<}EL;ZYHT#&NVm1`4gcdT=48TiF6SeZT#g*q@5a Ir!U8~KXG*@8vpLO?vY^x$xP;Q)0-826Oe~fL4LcY&CW)NIK@g mR8Bt7xD2R}XY#p5Be2s-nt?uQj$oXu*8(&i=;wgeCPo0oCU24e diff --git a/Classes/pl.lproj/CountryListView.strings b/Classes/pl.lproj/CountryListView.strings index 6f4a2434b42ba8402b4a90a94296b94f624be40e..c3692710745d5d29442fae1ecd8086de379fa0d4 100644 GIT binary patch delta 34 ocmaFC{D67F3Gr}-NCqbcPX*?a1J@@i`+S0He+bOaK4? delta 12 UcmaFB{DOJHiHQy>6QBG604IG0jQ{`u diff --git a/Classes/pl.lproj/ShopView.strings b/Classes/pl.lproj/ShopView.strings index 61f20a6814494f3b49c11b0310cd37dd55e325c0..64a226ae1bc0912e58fb46c5d20ed47f23008707 100644 GIT binary patch delta 57 zcmew*+$6H0g_+-#p@gB5A)6tSAr;6R)wl9onb7yzMAeET@qY<-7t#AWmz|I0xzyP9d1(Rtfch6KmqL2&F?AXbKi_ zUv;6<0PT@wM4_L<8ENHF=ka_CkRcosA<#?g-X@k**T@rZ$C#<=`E-<)7M5%yuXYU*g(I#+mD4`8~jFQYqkGu XS>MhI-uGO_GdBMBm0I(BtoF-KP4ZMe delta 34 qcmbPc^1*mR8P{e3PA105Ei4L?53reSe!y+QJlTY=X7dvMA}#>cy9>Vn diff --git a/Classes/pt_BR.lproj/AssistantViewScreens.strings b/Classes/pt_BR.lproj/AssistantViewScreens.strings index 30e8bb6e99c50ecdd29841376f91d0c15336dfba..5104a7e17316eb0862ef3c426c1affc24ac1c569 100644 GIT binary patch delta 803 zcmd5)O)mpc6usJL8bO3g#YU?eq-mN+8hcv0kd!u-Wc15OJEo&;x{$Ohv8u$~ik~22 z{s22WRw5!cf<#!cv~cc>qWl4im-pVi=bn4+d9ShScxyV2p1Px(l%)#!s6ZQ(CzUju zvse<>XpIz{HRJ?Q0YV`I=ZqC;)t1?xoaDw>*gWicaMxo1RRIuS8oNe05F1qdEEcjf zy@Esqq1@W(62QGcfGxyEsZ_RP3A)u*gPQo z=8$D#+?*kQk7@E6MZL{=N=~Aa#mx04mzl1b{KwL4^9~ChiOF~TTPANyblTh#XrzT~ c%B1wL%|~iBa7=#Eq5?8?QhLZ{wzfP*07`>1ssI20 diff --git a/Classes/pt_BR.lproj/CountryListView.strings b/Classes/pt_BR.lproj/CountryListView.strings index 1cb5469387475116e9cd1a6f782493210664ca5a..7693563590e4c945bd2ebcb1f57cbe3015d1ac93 100644 GIT binary patch delta 36 pcmaFC{DyhLB}q>Pe+EAWR|W-!U?3R^qyrcn8O|~UZ+yAd2 delta 12 UcmaFE{DOJHrHNir6F>X`04Q|^uK)l5 diff --git a/Classes/ru.lproj/AboutView.strings b/Classes/ru.lproj/AboutView.strings index d81bbd2753b3ddf39b7366f75640d8338b1b2c49..fc2e7631a97613e2d1c346429a25fa8f7c41201e 100644 GIT binary patch delta 68 zcmdlbdr5Y~DK0TN76k@*76leL7GWSMz#;>LqAZgiFo$i{;%;D;!7i`FV9mhA006B4 B3BdpW delta 23 ccmca4yGwS%DXz&8Tzs3Ka9v^sF_^d*0COk@(*OVf diff --git a/Classes/ru.lproj/AssistantLinkView.strings b/Classes/ru.lproj/AssistantLinkView.strings index 605c139c90f9182c71df5eef4227c8599d08ee37..7243c4f6c3183756354ac214f8909ff285fc1e67 100644 GIT binary patch delta 393 zcmYL_K}y3w6o%j8j|-(Bq6i{oQs_oRrb(K%NjmK$mMRszkkFkM$O*iG&iW%QFTbD*HlY9qy4_fTYK5v z{6;TWpYf)mdw>;h-M-KBTS;2SxJJy=vvL^Vk(|Q}AN+Ib2~|Cpyjulg!7AfZ;ZBU4 zhuKCPRG-oplCBv@qy8fb#y6sYABaq8HljhQFu=0fEi%M?09o7;ugm7_DbZj8&t=t_ zgjgAg+H?3N4TtLr8Z@3z&Sb&&h=SecS9O=aXy2lK`*DY}j6n%DX4XxEMaoomo?0Ci@X{uW3#Kf`d#2=Fnht^dc(Jaz{qGSOID71!1 z5i5rUin>B+u7n~MED)=%3L`2OU35_u38AVB76?TZNQedMB1rrI&V3Wpni>TG3(w4Z z?|!{|&ON^Oq5tO{|MsI7EGkl#M#-iEi8JkPW(P{(Whe)p<3i_;#S! z%zXPulK0O0S4&z=S^@#-&H7jHh?yF*IPj*$BS2mF4>Kd+zely01+O zYitG^K?^;s!YNNSzq2*VzXl)mw-!G|=g`#*QaI>vQGez5^FYEeRZb_ibqRt(N|`E6 z6R>gMBV`rvlyw=UnM&e}<2Q}ng3dU@`7|r7QF9&CY2bM;3?K2qw8`Z1AnXJlm@#N4nnU{fOBm1!PdR6dk2V5hP?C`~TWu=?H3f%i5_KJTq zgd0x4Xhiq335kOn2%}|fQH(6S9jpYn^Ex=VuJ;5&fzm6sNVD*&>WF#lj^Z~#!{~1q z5rxS`U?yFh)$wzidh_WJd9+X9u<2!_cnQXbz@g!j(eZdBzzd85Tw0ekiijQ+yaAg+ za<4yCvIL<~HG^jsRoMsi%dS^{9;gklxoY#nnJ~`E1~izF>k3GO3SxDTP!sY`*vr)FMV_QB1)^!`xJ25yehF+>>Mo5w#XPICa67 zl_q)=vVm3W;5-?^XGhQrQsJAYum431^qlaqRL+f^$+c6E5*v|e_xsd>zokFcq6}y1 z#!{a5&c4w`c@A`afgjroZH{aFFrRlHjO=t^oWFHrW1k-X56x*zPx=mJm`FyGl^;~X zyiqxfl~eA1WjF-wDZ5Koc148Ba%ra5lDxYfbw7Ev82;CoG&Sm0{RiKP1Q;snDN;0v zuPR`6_@_{JRrX{iJjL;}SpE&0W2r51KBcEbbk~zIPYN8Y%Li&>gG*U{yt&5Tt%u$F a>y=hSQI9*f@$qv_d37%}etaH_!9M_jgL9|= delta 655 zcmY+CF=!J}9LBwu^b%`4ay7@UABY5p5*#u~@qt5d$RHWS$tgGl2a)0w97Kvp-@Qx9IUM)i@#Ft}|L?o+FUZH| zq}qjXkwVTSU?g%|uSW4!qWC#XvHpy1(K%FCWfaK<^5lY`ioVyduLQB-oAe?L{~GFk zt&dEhIb;j0IW)$xB|b)HzvXKLo!|)Cu~}3DE9~Fl2hu%5gV;?oS&yr4|Pxr zt#R1GZDkod!ao{lS9C0@5twR{pCbb7sU-(QPaQ|zYOw4vk3uO>LG(n5 zeLn8@A$e~W-5c}FI@u+7b85<21`eT|PO-U(F~WXL5J?QBX&rlXK@6tp2tJtx;`hV& za^^|@O@*PBRzpkUW?}~0JDZZwoOE0nczo_9e-g;vawV=#bBXh&gxz`lAe~HXK@t+t z_&D^Zl)E#LnyEN}u-?p{K~hU>RnHMITh0`Cd)uA{cMjrgsgxBieem_8aRdKxxqkFN zQOmsUin@EPBb)Z_>6jR0%FXDANS*7k>K)syK+Y5qDp0n0Hy82vZm{<9R|)SPZi;{5 dZ`o$=ALU)Yymw};)B=OLSfTVS=v>I~p?y8p0>=OV diff --git a/Classes/ru.lproj/CallIncomingView.strings b/Classes/ru.lproj/CallIncomingView.strings index 94c94d672dce6bbc3a0cedd35f30cd2b1702228d..35bd6d675d79093cd94907910d920a66a5e92aab 100644 GIT binary patch delta 91 zcmdm_d`fx47A|Qa76TSX77G?@Ahu*tV322VX0d0n0`hDpUu0LEe1KnJvJIEsWHW9r PLTV=}WNnt?nZgPHXRs2@ delta 32 kcmX@5yh(Y(7Ou%6+#-{&aP5H5%yE+icy%_L@l0U_0LhmN7ytkO diff --git a/Classes/ru.lproj/CallOutgoingView.strings b/Classes/ru.lproj/CallOutgoingView.strings index d4ed242408cccf0f5ce2f4d9522c4571693bccfd..fc68c69473f5293531a2aff233340ee26431f4e0 100644 GIT binary patch delta 89 zcmZ3cvrlJ(8Naj;ivf!xiv^1{5L>b+Fvznwv)Hp(0eQBQ6&ZUcf8iI|{ET0Tg@D53 O$!mmkHZK!tU<3dc#u76C delta 59 ycmdm|vrK1$8NYxRLq09q Nvv~YAmq^#?001mi5$FH_ delta 43 scmeC0!1$@3al;wr$!Ss|lc%vNOg519*c`&rB?cGRz^$;^PWp@v0Ad~wOaK4? diff --git a/Classes/ru.lproj/CallView~ipad.strings b/Classes/ru.lproj/CallView~ipad.strings index b6e6d54c0a3b2a5cd7ce71db6d1b40c41f767516..366b14bc189cbae4fc14d13123213785925208f8 100644 GIT binary patch delta 89 zcmey=&)7AAal;vAX(1K^7DpBf7Hc53WKm#{XK`k+XR!kEY$pqft8QYsBt}ThBo>9q Nvv~YAmq^#?001mi5$FH_ delta 43 scmeC0!1$@3al;wr$!Ss|lc%vNOg519*c`&rB?cGRz^$;^PWp@v0Ad~wOaK4? diff --git a/Classes/ru.lproj/ContactDetailsView.strings b/Classes/ru.lproj/ContactDetailsView.strings index ebbfa24377f52757354bd54caeedcff10171330d..b5fe41bd1ae4032fa9225cbac556e7f9239610ff 100644 GIT binary patch delta 87 zcmX>gc0+7K8jG|Livf!xiv^1{5L>b+Fvznwv)Hp(0eQ9)?{{wg$6`W2jq2oc%nFl# MFuH6$#aYG(03eVP?*IS* delta 33 jcmca1c0g=H8q4Hk93qq3*yA=oVTpoq6gJm!-eLp*;PDKV diff --git a/Classes/ru.lproj/FirstLoginView.strings b/Classes/ru.lproj/FirstLoginView.strings index da43f8d5f8854573a8c48d65b60a1d04dd7ce773..0cef2d481e4f0b1f335d540f1d6803d575d81255 100644 GIT binary patch delta 316 zcmaE4zRqI9KPE0A7CRP87AF=9mdOnQeVeB-e`Dm4XAxjgV3A{yX3=4pe1Sz}^8waN zj7TaciDyiHBd9kyghOPr8;2I7l`M-Xi#>}2ivf!f&>(9T9~N7nv8F5v3>GXlEdD^+ z9>@oYn*(VhpgJd@tTj+(^8`*C77FwOo#!&yfUiP9f`COpg(jQd@Wrs8`wpaCZ}KT& QFTzHAkZRhzOvHvA0N+462><{9 delta 159 zcmZ2y@yL9`KPFBe27d;322TdR$%Z_xn|+uam?n#`icB`+QJCzj6d-HL4R8 zTsCp!Fiy4+6_}jGD>6AiTw$^Si`Qlmu5-*Nf)0E$Cf^VS8D%he9#_QV3;~PHd-%^V gL(O-XoWQ3ynN7qCswiOc1Zlm=BBCOj*+ezi0SK}!H~;_u diff --git a/Classes/ru.lproj/HistoryDetailsView.strings b/Classes/ru.lproj/HistoryDetailsView.strings index 2244a3324f8fada78e059423f2290d1e1eb7c4b1..6dd58ffcb2f48a0576cfee3447256eab99450040 100644 GIT binary patch delta 81 zcmbQDvPNY?8nd(zivf!xiv^1{5L>b+Fvznwv)Hp(0eQBQ*K^L@EW|Q{1Fxcbmg$=V Ic#p6E0CK|*yZ`_I delta 65 zcmZ3ZGDT%W8Z*BaLq0f{HU6`SQ)W^iDY+`v+_IfM5I3jkI0 B63zes diff --git a/Classes/ru.lproj/ShopView.strings b/Classes/ru.lproj/ShopView.strings index 3dbc99b6b65564b691cf609003eceed106d74024..0620a10961fdc41a139be8f974147d5900b58a9f 100644 GIT binary patch delta 36 ocmew*+$OT&6{n0Givoi@ivo)ri!hKBV37erQ5GczYX&X`0E+hoApigX delta 14 VcmZn@`6ayJ73bs%PCh0s1^_Fi1bF}e diff --git a/Classes/ru.lproj/SideMenuView.strings b/Classes/ru.lproj/SideMenuView.strings new file mode 100644 index 0000000000000000000000000000000000000000..2985951e5b1d3c6eccfb8b036757b17abe8ad045 GIT binary patch literal 490 zcmbtQyAFat5S(HwN`Jr$C5iZm1xkn_HmHde#MTE92|?o{@$1zgJSuE7|69;Ayrkp?F!aC)hF^h?3 zd@*@naV&Y(WKD?f$>n2S^M$bBqC<4aI3!0{P8i%%W8TzZ)_dtS({Gz;{Kr3jEJ{BV yHRXO3u6V^c~ep+JOgGD91(sYzp^4E^8yy_gk7=^@+w6Y`EQdcJOHdPNU{I` literal 0 HcmV?d00001 diff --git a/Resources/ar.lproj/Localizable.strings b/Resources/ar.lproj/Localizable.strings index d159006cdd51e57d83e517676f0b5d2598a77bff..44fe932b1e551c5788aea03a24c9e00f59b5329b 100644 GIT binary patch delta 6535 zcmeHLdu&tJ8Nbfs;uw<$Au)s|yNTo2IEfRJv?Y|6lQ;<;4TdsGVp0f+(-6Rf5MFDC z({7r!jL}q|rb-)W8L*C_se;{h-4J4E8{Je&1%Gt=V=P6$Jf^} zW>wjyNmCU$_ug~9_xGLeaZdasd-m7a7k_AZ(y4A#JJe=1tcKJ|Ra5HKCe^Ka)Hc

1|5Sdd5^q;x(15uG@t@`D z0Bk3)H63i{pHO*^4SaZKiDQ!DvabTal_AtCGa=F-F}rW)WqmSW%HsC?9Ucvd+~NCv8i`dZOC&( zVbfzN`n4-!g(|H*`c&-))pLb3$i}Q>BQ5CFE%j;n#oF2 z*hE2Lq$aR#qvz~BbbO7CUS6FaA5``$M6F$AtT$pe!kb1+{))G4-(#JjMkWv)qrRbb+KO zl8qsZ21Y}Gj{=k52k^dIIgB@cN(DA3>y^iqAlN2ihhAL0^nb1H&i}T${5?KLw5oYNAxv zb5t|24LmMXF5yI+eh^k+cnEPW`R0F zUkgO(tv+wLOurjNvg!tw47o%dr1vW#H2l;lnyk0y20*oj4mct-wqspm5H+p^D?y}P z&g=$eGJT8G$BD5Oxqq2TQ_ao#Lp%58QpNB>nw{QBe|}n}(P%#1{qjP(vL>Ha?YHWU zLuZQUD=X}4Q;VT-7Q{IaWm*<9Co-`Q%(-meqd2l{_{dQz?9HKyW7hu&&HnK|y7ug1 zDtsn~VxM2mz6IUI3+7~c;WsT_2B-?&rHgbTEIHO*YM(OsJj_|>*IEri(|am^yMtCTnQ%W|}x*Mq^ucQjZ9YLT zh+cabNHjW-EqSo;Zp2^r; zA*gmkJEq!%G}6izqslX1rLl7#HD#vQ4mp|xhMa$t2ce9;V-KtLN&$4qTc|R!!==ArR=Ov`1f`~tNj%6CSWF5p` zKRPikX0rK-q1=t%Q^Zi*=#{gMPmFWvJ5hb)!bld)hD*b2L@DlElcrA)E-1}$pDEF? zEBN5F!)B?@$DIa%@;4`Lwj@Kc5I%fyD$kfnQ9`<3yJA_A zdYI%PW$txqCnkeFx_YUMt`;t&@Fkmm?cx>-bzNGRC5~wYCI)$koM7Zv*Hh&i2u8hB zzx9LJoR-~a6r!-Q*|xABQiqSN@I?j~y1gx;UwQLR9^HM*I`DDRTJrqZY3}u!LtcpGPv1M-5DJfqJK2@>34s2)v|zl5sqNd;*)<~`R?@CJ_HM= zx9r9!z%AQ=XbZ=27P!gRkSpaWI1IXDz~qsD8$1n@2hSZwO5OUUwrVNQZZ1U`}4_GqhxhxgkSP~xq zrgWs}`2i&ZgJ%^!qN5^628ApfBpgs0*2ctPWoS8DMwO%B$I|nR$a0wU(p(LyOlOE; zhH4(5NK)4@VDk{ofyj^p`0=zF<{2rQkTcwLPbLj6k zmLsFvD&;K~7p%nHQKBUBjeKsK zp|XDJ_Uo3oAvqheL5u-TG@uQlc2tXR52{5cB$Rh=u0-P}4bFB-S_bbtBBYH0s8rnc z^3ULfZW$cJJsv+A;49gMbGPpXs}P<%Z_0~C?&V~+5L9XBj~B&pO$Ui&1Iks3ug$p5 zrAzJv8Ln|25M>fh;K+Zlma*md;=qe>5Sl&!K;LX za+H%@RtEs(kYh?~3d@}~_i{BL%R`KL%We)~wC?(_NMygivz1%ZWi4pl8h|LTSJDy$ zh?XR*n*9lX)5Ow!R_RqW}2wly0zFW rvdNn-x;RvWDouseZQn%>X(j5Nqk^y zLxxsio>rpX7DLB7GK+7Tv?90JuLG=C37IX8oO^b+980iet_cF_6q#i?uBnz zL;OGuiQsx+8`R|(kILZaNC;#L_u^=hHRkPXC0jq?;zy*5wkUo_DEa zi%vKpb#c%urQVukAW@BhgnmsLyxlU&ljkv+bQ^JqV-5J}U_EHW$sTsMTA-v{Vl-#J z%%)TM%}`Gtha8TevQ7pBrCxW0;rd$oQ2lyG{FbXe*W_Za=A*^G&c z{8cUl#OeBGWY7!ED9Ld-EqV|g zQxMHjEZypv;3l#7l&75&x!1yLi!##Rm$CKSOPQTo&X=;tFESCu<99TS--$wg5M#&h zE|E))-%TuYzsHQL_iPw@G%Wt>!8}DZap2h>D#xwx5rzBZV(K@!>BqY^a?_9NjNAYQ z^M|;4oK61eGhy`a8WF?_Iij;!tdJE);xx)KPttl{E1P|C&b%QWT+vX!64UFTt_DRD Ub#*(X70Q9+;h(T&Ue3aZ+-vL z-IBSmRv!~n!W2zH7pL$xi7t`E6BFZNlGZ&#_JCI6r4tW5^gU2co>V_o)|Jp&pv)c) zcxp;xu+7@vT9&IVUCdxpTqLkr7o#GD?0wy}Eyzosi#q&8@4QuwDXJ&=P;HB|IaN!wN zb;ptb-rNSKy1;I176N6z8!wWHv^Y0te|$tqhEd@4KTTOo^zZorx2&Lg>IyooyPv4D4h*;gji*Efy_@ zSUIUGxT8^cN#M!Tqt0ysA_&3m+yLy>fy!~Oi<=0Wr5}sUzC!rY)b+8-$CCDs9Jg;J zYELX**higjwZnYoC|;IwRTjpxKuc(&JrK;P16CZIGO$y-H6YcvV&XR9jY~UqpmQ^3K1kX&Nf`%R94$7c-}oxfYS=DV5t=m8|@a z<{zVJ_pNl)(t||E@0Ko4&#CKZRsD`DC>fd^J@O9Ly6dhS#6gh=?>^|P9;5lSKzWl; G-T5a@2@*8` delta 83 zcmV-Z0IdJafdq`<1F&8SqudG&vrrfg7_-@U*l!PQ zz9XZJ=N{Xb`}WC$^84dq&whSt*H(sihmXsMx9u8pFcLF9vj2C6Z|&!ouc>1!o`oho z{oJnX*|qy+7M_f|>$R}r&y9wiGX7(Ge#M?+r2B=o2g5(x&*CTJd~G9Yekfu6aA&{p zbf?UzPqnV6gDYk}GucJCAW z1R8mYUEMytm;Dj7M};8c?qXH33+p!DlOjb> z3J>7)vqA&B@!6p1&^|pXcjR3_ig*I*VzsR23!9DckeKi7f9>$2vi1iy16*Sdo|otL z?0@dw9{y~*p4w{4sR(~xN4@xf>v*UK8f zJz+0MiQJ<_=rhm0vKb!OTs?Q;zm48IHVgPGM0-(w{>UgmQZoO4JN(+N@Wf`J8-9O( ziY4sW_MoSJSMKXY^)=%ZnCSQql7f7a_V*LT*M@bw3myu8^xR3=Gq9F>Gg8bd8-=CN zEOyVcBoZOyc&-`x0Q zNX~fGTmvoo&K>?Bc12#quI&Q49=;uzjl4Wa9J+1y9Gv1H-rLw4@o~Z*K?*@s?#@2M zvex)u_|ABZ?<$=R>{~CZL))PZKL&qN-e*7R?iUM#=l;TG4G%i#S{wdq6x}a0uNY12 z0Xn^yhqx@t56yc+de~iPd{R&f*>x{@{yO%DAMJj$oK;Ce@DKKeAIzs^)PDAH&E^Bi zeFwIN4Z{JDo$FvLa-UbRTdv}#VlR9@B>l)0kxj_E#_PKaPNh8L1M^ja-s?qfpa~Bg zsqf9ppau{EI&qGH5l>O#z$_Xk8W97OXhsh^LSD6wxEDndwDdVhvFT1 zk|F;61(t?rA4CX>X0NXWmxviWUh7RIo*#JwdE8_(YRyo7i~YZ!s8;rc z&+wz5Ru+8Q@{qFiTesD*3Py&Tj113Rp2*E8&Lr34*nd6g8kD=;aY8bZQr&U70PO?aRrGs5STaq~F|% zvGAxpCR;ZRmkjswv*EugGg*J~)!sS;J}UpbQzQkfLSu5~Sy?P$pS*vU6PFNh4*B*c z`|VTE%ibvS?3Bme&7+tqigIStQr=U-f^v9B)(&dKRixmh>FA@^w(4cEB6teQxB8uA zda-b-24UH>5?QH5b}c*)MFm6$LMLn@KaqJ?C2qsUe`=Wq{sl)O2jQ_jSDu)rU~jqS zs9;FH%87KtWfqT%9eq@0$A9zeth`N7>p?+3K0``#{S&TprOu|;*$vM$>p5f&?#o|; z=h#;w1y;@{)L&lMi1T&=?#mw+x8w;zhx`QO;mCFXOlDlI0Pf<;$jcgMQnZGX*Ooa43CvBQI!?mb(BykWTa(B^>x%_M8^s!)tXEJr`sRaG>|=0QWm#^N9GkLOQ4JAm(1 z*AsFrecJE$-91~Y&c_uf#vi9bB3TG8eO|N;z2Tw3^@sx4?@VzWPoQ&ctypp_zf+PW zZM{0(M3U7tFqOHThtNEudVl!N`T1p7mY{r`Z7^upv2%tCv} z0x9nH%#$+G%1YrKetjynIeM60siGfbQ}uFo$&o4Maela!C4M9tJ}Q>Q{Y>)L(9qMf z!^RT*)hI$w0@)`j*;uU5aO?~DdE$50raGWd2b7Qp4+EMxp(Vx+7}~ z(qKvO^@FomTWYxRDO%od$6L$qdp$2(Ff*!^cXrN6JF>UaUkYlf9fKr+UJoDhH2g8A z(AS{dUq-gl_gCGQL{9Tj-dCwUO^{x^UKYmZ`LW81U9gDcU5Fu^^IOB3SdF}`CYPT`M!Sq@%}rHgtcpd6t%xoYwtL#kRv6u20sVs zK~9cLzJ6+)L@etX7Bq@qV|;)<)|2~jS&#eFqLA#I;zW7cZ);RUJwSbMA;s7mDef@b}uFQtdhMv7@te3b^-XtC{5l_zQ z)^}hfK{@GwGH?B=pY_~mb&h%JPlGbFw%(_W(hI0=bWp*wN_0q4bHj>x@29%5kV3d2 zeDchfzZIbf)U6*r8~qTnPI#l#*`i-G_v=iL7`rZHrlZZf{WCrNygq0=wq5lO=y3)? z+$P2&%2aJeQo#D_UY45sipYhGp0o2_4YxXQ|NJ*!t{ZPXuEet-9)Z)^kNZXka;$yG zQmx(9UgGJqw{>5N%MuGVGKF#BUX6R)p ze!46u+m77h3xR7FvW9f(g4oP;|@>0t#abpe-RyV`52?YJPv@9Zz~7DDKc%! zKVDQSc^k~vQ9pc z_oeVG0(;mWo?_>?PktYr2KaP7zV}sl^v@pqXZigzr=zW$U$gfGRtrLqeFCk%vH2dE zzI|-td}nhJ;p1tp+BN9QZ?CP}z4?tBW~R~>%26ScFQ@vB4tZi#tURB}ZO00z)w@zU(0vURJa)>HR4 zVW+%v$ul=KJ*q5emY8+hC}319n{qgM_g-}jIu16?a^Ezol)Kpeo_Ww)Z|L%)l7sCF z6r|?w6<5!Vgb!2aaAS8gmL$=Akz9TCx-4Tml8#45n%gX?XMg2y;_c`SE_JD(>qv9% zgpXM9)6;d;RD+g!LY~z)hQ2(XI#V!SuWN32%&x<{@kkc?anW04K)$D&gQdG^gal<@`7A#wNY4&^!~zI-Vow~*^@pW5$WEjrTX zi7sjW+pIt;d1Jxc3!%xaj?T>>9I^i=?82w@maBwB5GP zs0u;1PIJSzgPXl{^0Ts|!nZaL5_D}8day_HWxJ;EuF=e#?1MTE@dR~J$%=V+s^d~I)csG) z-xPWhe`4R|b#f=K3IV0(v zN~akgW;`}4XC+t;JRa9S*Xp&`r>EhUu&$a*fmYzL*1 z@7Kc>IP0g5fvH$1aqph}#NDiu9pPDMf`Y)C;K{6vgm(DdKKq!TdP?)m3Ox}k=}bAv zGEz^z|CPoz)>4py2ght#j1 z*NT`8)WKxprANgA5>E&6+tVLv!(JV=VV!XPmZnNyZ zWE=|y+pu&8a}nt z8#nDwOCd9(8~rJ0XTE9c2Q^g! z%3ApI{d{|0 z@fYzvbhfVW6d(L?wFApt1r(C;+OPP2{k5Fq%U≫n8Q#&Q7V`o1kr3I+p$Fe5zcg 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 literal 0 HcmV?d00001 diff --git a/Resources/fr.lproj/Localizable.strings b/Resources/fr.lproj/Localizable.strings index 8889f4b2e35e2eacfcd80374570077952a6f2ee0..49345b12e17a453d95e0232ecd589a01621abf03 100644 GIT binary patch delta 2340 zcmZ`)O=w(I6uwOwF%QxtOs3CJq%R3U&>Be>ZX__1T4_qf*s7s6)9^C$(hg2%(wCWO zC!5ffAR@@Y>|EK6T5Rx91#!_@(5)B>1&OwsmUO3k!SB2G-Ffq-DMK=M&OQI%ch3Fy z&)!e|>)kr)j0S2|)z!H2)C~T{RbCbGfmD_@m!c!ii2=D9jL7olVpMUr+`d3nRV(^> zsxK=)%pTY%shYY1Q3c<=DycHg7vQL_F2aeYRv@Y1G^G}C^In(K!|fWhR#gc5Wq4SI zb_)`QDMH%P=>_m?Jj`ovKCI|H+`v~|t1)B^qV9xDDkh9g#zUYL=m)UmxrlRFHF4s% zDd3cvQ*W!|2%GfgecUlD?Lz!-sA)O~kWC%mYY>ER!`vJA&$@Un!EseGAq>mpAk#-16*MiGCp zaLhLN3JMDm&k!~#C9fG6YAUmcPR3X!j4c(T-1+?rQpyb-GP6-dVkB`28_C~vsUz2S z4)&9pnrw3Ui-O$Va-uhHojf3a-Ek%@*k%%vTu#FsN$`Y?l*31Y=+nE+!2u@DzUs-9 z-%h^B7-!j*?&-5rO$>{gCv}v~c_mUNV-8%XbK~fgaI>sgWSKA}8`rb%_&~9uW3mnc z(Cv>yO6$ZQ7m?Mr-aPdYqO|1mUtbv{!`NaUD-S0r{NWB*Nehy7xjE*_`P{(;GuU=i zJ@o*d8=5TLS+FXSs0kk0s&@5n!(^L>CLG88jE^Adumq@ zuRT5T@cW4@smea3s+8fVAir-vAN6cc_4HkYaZ`3`?l7B|B9A~81dg?3`tCV5u}o$e bk1MTT{s0ZIbHx();u}BKYFxdc9DM!KCSxM-6t`&o3(yYqVEj0y>EB8JD@d(XM&oO{3Te0Th5 z{{0X6&+isjXfOgXr~?75^wq)VUjI#OvUls_#VdBFwSLPVZTiu10jE4Y`hYv+c54uV zWX8r5Kr6U(FQ9+icc?riAOY7P2t%|ipdZ3C578_P3eAEvzDnyc@?rZx+Oq*Jk;R|2 zD##iouMvpQ{yvJ(N0E}W!bPaGnlw(KQDhmxho5Fj)d<;RhLtmg$v?XeS%Hjh)*vYU z0QqaQlgBEJgD^%T{+D&1g)`6&C!qlYM|KZpM>V~+;dHn(<5IT$T)12i(DPdN?kLNG z58tP%D^I1t%DGPb?$Gr5w#(%~c{_q`P=is3(*_wbqmQWMvtqyv#Rc!;BWkO;rD~?v||CEXR9DU^3#QN=_roVkWU4pC6Y>g(+405KNoTr-l z2?B1u3?Ed+0($3*p^{QAoDnnn6dMbxIb&Cx!kArT9aHu&BdHo}iKV+!(9y#bK~R@+ z*9HweVcZ2N1?z;#hX(GS4wd!|(J!<6vm+`LllNN@ISwn@S{4sd#v~qmxgV#S9k@DQ z@sFM8&cYS_^=w-nPQI~WeYc~MB{4)-kxLh+*LB)xO0t@;#>rR8wFFs;u$Cd(EdDI( z!?bG;9Fr1&Kj$mkEtq6fmSct~Vo)YZlFyRSZ`8x!Ghu{bXU4I&B#Z_(Kt)A(oF)wf z7_dPUA3UkW#RCO3)*~WGAs?kUMTm1YoN9K}rX`2sCMcIA5R+G>j~@sPzs|dH*WCYm zGFh6bV^j~vD9{ghWxhzor$RYMlxU1G#C#d-i4&(8Qfx@&MkG`tH>l3!jc~Ko4 I1{?i;1CBfA-v9sr delta 62 zcmV-E0Kxx`&I5$51F(n*v-%0*3$soZY8A68EI1OgxIi8SvxG)k5|Ug9vuay3P_uZf Ulnk??xoQlv=Ey(-v&7B@7b4*r3jhEB diff --git a/Resources/nl.lproj/Localizable.strings b/Resources/nl.lproj/Localizable.strings index dec362fe25cd62b421a29274ed292ed64d8b474c..0ce6e67a86da27959fb11190e6777b3806bfb4e3 100644 GIT binary patch delta 2390 zcmeHIOHUI~6h1zAC}735ATbQ68!@9sHwF!bC<%#%N6-XnfhpQ{ef^}cM;BwyK|3B z`%Cxt`lKowuz{01l!Jk+1m$5G00a84Dn~a7;L=5WyBzd?4T%Pw3Ci*8r{+Srrljpf z8Alvpq_Js4kNPg$Tg?01b`x*^jl>14eO|)TJhv1Ml>Fns8T9G0K4Py8KfKl^b;#l| z(3w&p)eLFW(DGM?KR<2SlKz=zNjtvqqUL-Or8b=obb*(krNies0{=vZXF8&GXz5jL zjifF4IStK)iX*IFI53oh8-G)}%`V8s9QIf^owTtAK-9UW;41@5X?o#-hS?&M#pQ?2 z>vO?g1M?&Wsmv=?7r#FP9>v=8Cth4_*PBMS5hc%o<+i%=dS`jZO7NdOTjxs5e*Y%2 zbI%w6nBv}4I3NWpYjIvb8!i-^7CSD?Iq0c@uRvGR+bkLTa(&3fFb=EZ6e*5~AxLtN zq)~7MteX5WcvE0H;{le692ue2X|QP0VM-ioX@@DoDh;xXLrYOtj!e2sF`jP;2Yl#K zmS>)~@Y<=}{odWAxFbhMAT0~8VzG|}*jH(3xG&{S6xNBR+{d_lxOugO2U7?Cmv39; tvlmz2HSmerzMzL$$%y4yy?&D&u^8?vd@Sp$y delta 74 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 W)SJb!cfUJZ)AK2(Ox>+q`1?0`dLLx~ delta 1051 zcmX|=e@I(b6vy99ViupNghZaf1&L`8(JW*VN(qu$8?v%x(xurW{-BFVbeRj*=_)cL zNNY2fZAJQ({#ClnN$YIasW(IyMw=GNK+16K=A3N9)wRs69o=e&4FA}Dud+Wbe9z~c zbMLw5p1b;|a%EXLlO?nMc0vW^Ej2>CiyXvfXP+zT=lZ!5=rFXwR#MBB1u8xW^PW<= zQnISXfZibi>M~fB$|e^1v8xU1&#I6YRMb^|w}c$R!=K6#Skl2#*NO)g4bppUIJegh zYh93ftv?piar=rM+f7C|58CP0p*}S&d#R=v#()Wh10u|#4z~jZL|?UGAt6$;IHf7} zaUI;-TqoBD!neTw+6aat8o0xiaE8sSBoT>78LrfoBG<NXl(RPBrJ1a0A3(~PJ4?*U2K{DWp)u1V6VS3B(GWQ1SMn5|>%9*(ct00aW z2illL7S>ljSETI9~^F_ux`SSODLi-xZCHtTWmjPTs%8AC=CwhrziUPFh!Lh!Pr0NghFT%T$5J}DlM=5-)DXn*drl0dtnj3c?AE5G zjqhg_82vE%KbSaE*i&?r-F`rxi^fk>bou-sf$>5O2F{1+@`WJG0q}I%| z0*S1b!8j80wdkIAN&!^=MN&cIISZkMFU<;MuGPvNKXQ}Zf}&zVnTO$P>7DN5tZtW_asGn*a7Hp@)Cq74*^1=ajhey#_nK zoP@7K#LRbUR1-Z$HmsxtRivCLHu)PU|rKD;ZTGfFvg__6p*3wNA5!M@8YO9qTRc1wxq*>bZpKH99p X2RRMyPwAu$;C~Xr;U{5~{-gd6hug!- diff --git a/Resources/pt_BR.lproj/Localizable.strings b/Resources/pt_BR.lproj/Localizable.strings index 2ed7e919ed1e288c6a9690df70d4c1fa89bb3e3b..6ad6a9c312cc79ccddad953b1d57c8027cc68981 100644 GIT binary patch delta 5682 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 diff --git a/Resources/ru.lproj/Localizable.strings b/Resources/ru.lproj/Localizable.strings index a7bebb38ab13e8f5a3b62ad382fef28090ffe36a..adbf1701358b13b9e451594871e66c9f82c052cd 100644 GIT binary patch delta 2289 zcmeHIO-NKx6h7ocI`}t^Gd70J%V=d-kc*^bhA<;2w2;8jexBnS9Y;rD%#zh*`rqD$++h|izn-=w*cjq-fDN<02h~Y8!op?jRR)Td)4bPC{F1D z|4xF1vz~r)asL-LF9)h)Lo`7%a2vzFPD2#MdKlnI8iBJ$5m?5sYNY{u=`FEp_<9*$ zla#>zK_CpmI}MA34#S$ZQZ|6x%Go>aZ~|YFmR({@z_T<16+9Dd030f={>Ch$IEnam)24Usq150=p8G z=Uj$4+V#X8Pz-5c(V!_xVS}th!4RE=x;(X6yDqOxy|4#2{58q*eLrV55894 zXYLN&?&bQUwLVqUanO}4CWNz@rY$@UJdBx-=jW^1qhQnkM4l&6uy8D#Lv|bZupa6+ zFD)%rSIH5ieym31sS{T0z7$}77FRW?2pG0XA(?AG4J4>@Oam){ozko#w}v4gBfu^x zX?#z&j=?Zy#Ta&qy)uX0U0!ljU$%d zFuvHSi${sJR&}7BxaOeWpT9)Z#UMK)NHvKEDe###_Z}Nd!&N5NmDHKkLl}=-69&81 z+&sHl`JYO4A8$&fe+w$v_2|45=Y!CToqVId$DNn%$F0oSPS1w+xm)2KIe)&nyo*0{ OIt$;+o9PHS@%s*G0O@G} delta 70 zcmV-M0J;D2>I2%!1F+r+vswyf46`;DcowrDF7y+#YDB&Tv(`$o6O&M42$MWv7L#D8 c2(vO_Zd9{+wyq7czQni=vryJR0;4Y67)9S6umAu6 diff --git a/Resources/sv.lproj/Localizable.strings b/Resources/sv.lproj/Localizable.strings index d2a643357a7dafeb2d67b5c4f4c4b8cfb10b98b0..f7e8ad32c09bc428e266a0742d93d1dcfe7318d9 100644 GIT binary patch delta 2384 zcmeHI%S%*Y6hEYyUh|Pxoi^gtAnBnXx=PB7F$gTia5JXhc)g>8I@&m+4lO1(K|!D$ zX{1frGr|i`hr3k5~IFic&I7#t(i_c&;F5 zUpl#>v(a9f8lnlB0eKAH5DifT_hFcb(+JoN3WG9+TNCx+r6-GO;B^XIlN5veAT$hu zI|+)IGC@r`j$6>IGz1)NAxMe#*dRV}hfPdQfRyc!az&YOoiSi241NoeayN00&@^uH zRRMI-1-eL`)WpH|BY!*0fj=E4FLYmddiMGLGQlb>iTwFS6-N&h>gRWG%zPWQS3AGx z5tS*x0pY8Z0IS>t*j~B}&;z(-0vZ8U(H%(7Ie_nuf&rchO7PrvZ7P#f-1V%C!;TbT z=%*IF9&i!Uhf@9OsXlW~1lm3<8V6zADmOq0I2Yip7Cm&0Y!K>p3R*n8FF6 zDJ4^?52DCrJTpUl`(aJvFLO)p@RN7_eEorD_dQ-L;Zw_6i3`7&jPv%gujo64L$&?( zr)Q5!bqPQ`QC;fldD&zZC5RYMByVdQJK zoYlSP=lNHfy|Gbwm~RyXbPt^GW0pJoRXOP?zggz-I}Ogw6*_nMwOsVVdTJvL=NqKf B`VRmA delta 59 zcmV-B0L1_N=>y=&1F+5svrYV6SJgXs8q8iwv-LC RP{gJVv(VKv0<)sq78ol88xH^g diff --git a/Resources/tr.lproj/Localizable.strings b/Resources/tr.lproj/Localizable.strings index ec61c28dace73a13c5ae52302287b5f6a8a1682b..864c6fbd2020c9e2e87d57ca71d2fcfc95291d80 100644 GIT binary patch delta 2477 zcmds2&r4KM6h3BQ4mm053?}6p$td~(MFf%6XewD6W-S`0(C5sXoEm3zoJoahGFk=- zXHyW8EoxCj_;zLFDhLUrMYQT4D5BPF`p$jxdgF{r5E97c@h<0{dwzZ2IrqtY@yyra zm!C?j4H~2r)saTW@YT^7(y5Qq6yuKe9&@4e#wOmiwVZeMUgSBC%RKA3se(B7Ms?Do4eVM@>llw$bn6s9QlS71Ix{ZQ2?0!a+J{d5T@7xJVUPKTj2NJ-r9 zQvt=`P*ZL~kdCRK4Oq4;bSi5)Zi)5eRs2#)O8>$4jf{L} zFI7#NJ+1YXQLBW&3Bn;zEvj~ccsF%{4V_9o4ghSVqX03U#kxr`VP$wU=p-o3Z@$!W z^Xu|VuH^xE6-MgIdU2Y;hWj65-LWE<@`By{*TM4i-OERu5J!+w5@oWux>OR2G`P_f z;O#+|d9Qo2h3BT4_|E-N{_%7@&pw{vN8K)SYWh?eha1ZI@H2P4bhrbE)q0K(X<>8| z>kV5(yP`nb9DfmTd!wklp&HW0-ayZ$Sbtbm=F}K6KGz;JKhHjQmq|{-H`UJ^DA^_v zWzx8o-;;K)3$P(Ym{hilHN>8P1r6OSJdCOVBspjpFEUtc;w?2!La-9U%9$C*3moWh zA?6$hVpbI;$Gk?@5WpC}f4k>^@NgJQ$7GbSr+_gq@6E3nr=WqWRB_hrDgs*2$?<8hY}8SwqSm{zeXU<@J$wWdOJ8$!|>+o>-{v zaDZ0R16mf5Ft`*#gNjsP*pDkR2>~_8l8V)$ZTT~3ltMh=^LlMsWpM|}^0q~|=wNNe zX(o$Ul6M5Cr|?;n&nptnt++J2t@3^fB}LPz)KVN;rm7xA*ELtx^Q%x+_RWXPS0BE4 q`LwI^q=RYx8zgU(GZI(O*y%Cuzmv>3;dD* delta 84 zcmV-a0IUD9>jS3C1F+T!lO78Svt9~p46`~HfEKeXE+Q1Oq(ssMvm{Hz6SHh#m_?J2 qrficsrd*Srsj!o-g9@{Ls7MX7ptkf4vns`^4zsS-HUhJP-0TGD6o1%ey1K6Gu5BRJXqQZ|x&#?%NCrWXr5L6C8F$xQR(EZ7S6isuTZb;f zgD$m2hX^`p6BI#^7)7V*5+1t;Q5`$=d-LruGb{ZkIuye&-+bTu-oM}Pz4!USn&Qfu z1%K_@1Wi+pPY04_b!}B$Lpy1-2X8xF7}r^cQ-)?CHi@rJaY|x+78i0f0bz~Cu``KP7mea%sA5;cX%k#IfE_U%!)`&m#b3OvVZhR+Qx|u1Z~oh1p83;Zaws!mzUsd33kq1SEOPKtGd~H|g!h+$^q!^6 zVsBMbuSym0z~yt4hp4Os*%NdWs1IP}MKlSp(q&Bhc&QYQRwiBp_8H3awUtf$tkgK? z)-?rf!ZrP?dL7c*K>o6K79VwfUJ88A$IhSdQ8HfV_%_QI&1ls1kJt=k$jS=0MUI=r zBX0&fCGadB9YrQMDPE_Ms9a?#`0&k^jvtoi*QJy>eEUX#dlvoMY#hZ{&eZ^hVK5HE zQfMw2zIAHE{B-Y8LqMDszpR?%%-&X>-`O~qhnm&!s(KX&V-^{5h)OC^L)a>w8R#-_ zQ|eX#*U%oMIoPC9O~u<1V$d>)$5r<|s|@HcA?h3hqILpiyqrzJY=JL7>5{ZV)$elc9d>K90zEtPe4`?$*?fVVs1!>iCaDjsf2(U_6&=`BCYf! z=sd+Zv@sg8X{C{cJ7qa_r;Qi7e1mSUoXM7lhP-7>gO~2Y6c#D3G)zaCfI>*&N(`@z znuIWj{mb?LGYOo3FOy|*^1@S}`F^>618WvGEP+J~os9_mvwe6FV7`tJGS<<8&*>vdqhHf&Ieat^n{WLx+| zbHqw)tM&72n=cuoF`9(q2)?5fqhYMi12sblxN8)LWdy4h8o--VE~|#OX?Ts3iTy)B z7=m{W773-pnzM5?fZW1st_E}yZ!)%BVvNDloq>w2aEsA3AjjcvV5h8gtcPg=EBRI# zAE#r~MMn_leOu$IJePlG#4>l^SywHDI10y8*}A~d0#Q!;i)_;J?(OyOSC!FFJ%cV% z7Ot`q=KAR*Snb8CoUvhWlPa)&i2eCM*j;B0+>TL}{qHt&C|@(}#2N*fXes(z+>&~W zy!~}{w%(!~&R6{@$Ho=p$d4EG_EJuhID?5wsM9Z(b(sfW?uqc-ZVzAU3i14a$C~Nt z>}-{Cr16QOwS+k(?i9+GSyCVrjz8ZDZ(s2quFof}4>x~S^6Y(YYms3I=$sK}5HyD1 z(s2$SKG+?x-aJV7s^plGo86rJb$uPb+*Q+;1p-}2f6TmXD zQyN&LpkXk`SSZR(hC#3=ieWJVs|*`e6E|KIh_btcCn!blBAP}?M9Fdc+>Ywvt&R_5wkQ@a7wd&pY#i} R2&`rfvq-%b0<-+W%of_n81VoA diff --git a/Settings/InAppSettings.bundle/ar.lproj/Account.strings b/Settings/InAppSettings.bundle/ar.lproj/Account.strings index 3a03ddfa5939f1d1c34f344ff402c8d2710e7109..a35d674ffb924714723d29034a4a8c530edc573f 100644 GIT binary patch delta 227 zcmdnRIfrvXsT7+(naU=U{hkSX5gB*UwQHb77hhu35YUvHb*us zHbbCNGd3@_jSnU;DQf^Z`fO@!nn05b*<9I-peAYnP1T2(H~BuZy@djUErSAs63{kd zpb;8CIgs7jKru(4Q3?#oKx3VNX1PN3y93!;Kd1R#@C1T2$U K1RexC015#0j}O-X diff --git a/Settings/InAppSettings.bundle/ar.lproj/Advanced.strings b/Settings/InAppSettings.bundle/ar.lproj/Advanced.strings index cad4b7e4e552b0564e6f54489aae4956adcbc97d..a501554732e8b58d2d2e94e864a90f3b31bb1345 100644 GIT binary patch delta 7 Ocmcb@ae;lq1!e#Z;sZAT delta 141 zcmcb>euZPh1?GAs1~-OGh8%`e1_g#7<`aSuw-*%^8l)MgX-4< Nvh{(cD6xXI0|34p6kq@V diff --git a/Settings/InAppSettings.bundle/ar.lproj/Audio.strings b/Settings/InAppSettings.bundle/ar.lproj/Audio.strings index e82411dff755c09abc42d892cfc99305f5376590..8022cda99fbda3ebf3a00a6ca2aef0444ddb2aab 100644 GIT binary patch delta 38 ncmeC;UcEaOR40V#h^i!@g3^or5-oc5`MdqGad5918#ql>*=Z delta 137 zcmcb|agTFD980|tgBwF8Lk>eKg91Y_Lk2@4LlKal$B@pT1Qf9aVkHI_plAtDMIMkY t1*$56(#b&eN(|NvTtG4yC||@-1|}64LK%V>e2`2)meqyJ0(CMn001Ez7hV7W diff --git a/Settings/InAppSettings.bundle/de.lproj/Audio.strings b/Settings/InAppSettings.bundle/de.lproj/Audio.strings index 32b1fb20553c77f14a44c0e8b047036d3a35bb7b..17d4594b6a7644cf21aac648442efc72cecf84e4 100644 GIT binary patch delta 38 ncmeytJ&R|<6DCO~hA;+01~UdF1_cINAXZ|4ifq2kB+Co{uM!8y delta 12 TcmbQm^MiZC6Q<2<%p%MHA#MZ{ diff --git a/Settings/InAppSettings.bundle/de.lproj/Chat.strings b/Settings/InAppSettings.bundle/de.lproj/Chat.strings new file mode 100644 index 0000000000000000000000000000000000000000..5bbcc7bde2f0b953811fe7c209f9e07eea29e06a GIT binary patch literal 252 zcmbV`O$x#=5JunHQ-th2fw)sa(2e2&q!cS?kQfy&ufA5Xt|d%nCf{G4kI0lnMdr?l zLf}Zv*|TNWO@SMGkw$F6oTZBBJhuK-j~J+(>3c9EnAVt=-IJ-k`^48GBiS#q%BNTI YBX5_rc;?#OfekBv**pBA!!Oz@Uw|SiMgRZ+ literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/de.lproj/Root.strings b/Settings/InAppSettings.bundle/de.lproj/Root.strings index a1f8ae1f8ef91ace3531de118fbba515cac27c05..a8ab5f489a57a7c5be5ea70c9bbf3c8c370f054f 100644 GIT binary patch delta 38 ncmcb^^^a>q3zMWXLk2@4LkWWtg93vs5Gyf2MK)J6J!Ap^ys!xp delta 12 Tcmeyzb%$$13)ALhOgESSCQAic diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Account.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Account.strings new file mode 100644 index 0000000000000000000000000000000000000000..453e10052fabbc277ab75eb84f066c087fce3939 GIT binary patch literal 1292 zcmaKsyG{c!5JjivE3CA90-`_(2nrwqLZ9r0mo^V=HX-o0loS+*jsiH>CK>ZoWO+R^ zzIPtid4Fr!p-rr|p#}D-HFnKDwwblCY_k;cz&Y44{^HX=j1gP5fqw^U!L2#>8sdiR zeH&QCSDE3oiIA_s8(2kTTkut~T9(i{#9VNmb6;qRb9B$@E7~;HP;$3n)ixqeWsxIy z!JOF@m`7x*N-tOiQLCyQ{dyaQbjCbpz{$Ifj@2WOE-N}R?_nk@RKPkm4K zj_G+r_mUn<>XbJA<_ob?0iM+1TroR#&b;?BX164^UFw)poo40LxYawP?xhz}$GJ<> zX%0!d(&941P)GCb#Hwt79m{!`uwSR*(V5%cSRkxwL#N{Ienl)Cl-1bNr0 literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Advanced.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Advanced.strings new file mode 100644 index 0000000000000000000000000000000000000000..6b38d220c57e437da1aee130c9b98deacd409955 GIT binary patch literal 1112 zcma)*%~HZZ5QOLKQ>3{21eON`J^5EsK0ts7u^@>_kkYsH=-Ipa^)71ygpx`vWOsUd zdU_^5-#r^zVq;s`%z75tIcxju%uaSr4x>hJWj2N5+Hx4H7Uw0AS4%CnlK2D28N14A z_PIm)OaogG^Qe863$P`RkCz8oZo$>?Kd~mD^`4`kt!NiB*wVGt#ZOw0j>ka=s zIO$g(Bis+Vn2>4%P6uhJW literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Audio.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Audio.strings new file mode 100644 index 0000000000000000000000000000000000000000..f76e560aa254fedb55c69781a52b46743621b492 GIT binary patch literal 1568 zcma)6$xZ@66s)sfG2yO>NL*q(3`*btkx2AD3?mZR!WQM9J#km-^`p~0GYuh=>2$wW zRd4C#@3(?S%rHQP6iZYP;emhAdXF>OdYBWJ;fsh%T;mfhY(35)f0=!IlR;dMgSt}Y z-u;4i7 zC~wM|Z1L_4Q?u!Cof`ifA4E+J>s0+QBTV)RJG>jd%iFzV5py45#W)E^$!pBDFjrm; zZT#$Qg3$bxCvT0cC0=T3k@wN|r(r7Z(<{6;`lTkBcTHt7U-FZV4ZV0RW+VEN%Zl>_ z8QLplBqp1TtQ9qFMjOuMmDT>`W7nx7ks_Y78NX$&zEC`^DdFBsm}NfF(DZ9#ve$V3 D3`yDl literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Call.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Call.strings new file mode 100644 index 0000000000000000000000000000000000000000..952c4053e76bc63b4b22ae99d608630848157083 GIT binary patch literal 656 zcmcJNyKcfj6hx=aSFHRSh%Slb0uu2^zcHK05*W)dF8FQwBS9)3X^8zDw-p8PQ*g>Lz@jq?U2G!hp ryA!xZZenuTlBb)!WO6>KcD_w_;LOpV&#q}s9#u?F+oi6JL~{87j!H0` literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Network.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Network.strings new file mode 100644 index 0000000000000000000000000000000000000000..e60ef547494ff2ff122339f76a756ee6ae35befd GIT binary patch literal 1182 zcmc(e!A`TAb5hPjl+ogovm&QVj%NG!q_`Vv!Hh_H8` z)q_lABzG-;upA=J>BI_+ih3$^CY+j4j(y23C>XA`l5uO|^~nObAmg9D-`S8@XHND;(WSUJ8m z_T*?7`tk~f1d;TW;0WtjW6lt5d|@k(Ku$d#KNItGW6q9Z=;_9sAH~qqjk!3Ap{E;j zc@#sBVaDjz8Y@R1XXsSZ$p{K9>4fxqQLquzl=fnaUg-fou_(Vpn(^_v+6P zk=J_oaW3x-ka-Ik;!J0=sHYBo-)2z}PMl*kbqw$?mIc1D&ODMA{P*X^S+Z8#P`k53 zW~ID&oFmxNnr)(UxrEI>cOu{DkJ((EDZ0doO%8ZB_u;|*4sWV`FvKn5w#re+3N_dS z2Z+hg_YIV>+eH1Smam^px7jmz3}wHoe~S9PN;^=3kA0+?mJ4g9(!71tn>V<`uIcm; z6(<@~)TdGTDWbaOCpz%)mL}j$po-5o0Cs`8bIqt7V>#Wx!|5ge9xT+JdtceGw#9W; zQ^hgz6FXPo9U?cV?nUDY*`cHC05zfBf#wsV>+EM!H&v>%f)YM^bvSeEIV<>31ZTmi z;76w#>2l!QuW=@8p`JUSTz{yCF>(@kJ6Jtc*?ZYE^G;@`ES0LzOTMr6Zt?^>iy3l) Rr~&zxI%$rdcc=Yw{sC#2?_K}^ literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Tunnel.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Tunnel.strings new file mode 100644 index 0000000000000000000000000000000000000000..011a6e911fe3a2ad88ea5f704a8113687c9d2435 GIT binary patch literal 124 zcmezWPl>^oA)g_IA(cUiL4m;*h+!i6K$bNF7m#!W%BL_C0o4=(Awr!CLnc@>nIRd- b`pl3A*AW0TvxuPtNo@c_DNsL13}!9>JC76Y literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Video.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Video.strings new file mode 100644 index 0000000000000000000000000000000000000000..59314e3db154d5bd88ebd6827f35ae7aca309203 GIT binary patch literal 918 zcma)4O-sW-5PfHV#ge-UA|i-~Dt;U+6e_)M(-cE(Qj*wG|E)iu2mgTjW~ZC%)>2By zBs2T=&3ilh`;(xD4>Tw-hvhd%%I`a$H4JK2EGou?*)87$_YRw(z^7X?jGp1EWtc+{ z4P$~EoG>2hW7#z&b`f>zwKdUjY@Z?CsBq=fXY?`U-;%yE);bq`V#Hmw<3W(>+UxH4 z7DQ)9aCIDpj{F|mp2UbfCS)q9OxJ5>;TaFyF0Cp~@ajW%dUcANa+23m)AI_hfe(qHd~~ehpHF8)J@%2#@im27`cc4`Sec8T^5cs>Je8JIik<&K!?wD b^%-Zlz!fe7L|9W)pBxW(!fAwytAhLk{X&*A literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/fr.lproj/Advanced.strings b/Settings/InAppSettings.bundle/fr.lproj/Advanced.strings index 5a709787626b9063432ddcf27fd07d2cea290b0b..04de79c96f356380d92aa0f6a607880ad6f720cd 100644 GIT binary patch delta 7 Ocmcb{d5mL&8w&sowF0OB delta 153 zcmX@cagB3>8%weKg91Y_Lk2@4LlKal$B@pT1Qf9aVkL$EuxJU8Ob4q= z0h4J!b;&>-nLu6*-lg5r}l$ zsBv65aaU!W?dNDIr4-WEtk`J7>p#=;%r!5`RZ;G!*=5-J=VUyjg&)q8i6~1k(weKg91Y_Lk2@4LlKal$B@pT1Qf9aVkL&F1`7?A7`!$p q4CG8#Vz6f50*VC#brdm_fk_31P=+7|A0!=H4gMHhFo21IbN~Q=A{PJv diff --git a/Settings/InAppSettings.bundle/ja.lproj/Audio.strings b/Settings/InAppSettings.bundle/ja.lproj/Audio.strings index 2c781dc34b39b0339d8fda379b253926591fd304..be0260d5fafc95e369465305d7db78c238f314db 100644 GIT binary patch delta 38 ncmZ3%eTsX-1tv)+hA;+01~UdF1_cINAXZ|4iflg4^pFVvsB#EG delta 12 UcmX@by@Gqg1*XlPm~Jou03|C0i~s-t diff --git a/Settings/InAppSettings.bundle/ja.lproj/Chat.strings b/Settings/InAppSettings.bundle/ja.lproj/Chat.strings new file mode 100644 index 0000000000000000000000000000000000000000..fc8c7bb2efc3bb41fa95ccf2169e711720357fbb GIT binary patch literal 228 zcmezWPl>^mA&()Mp@^Z9p@5-;L4hHcA(f#R2oo97!7K%aa)wNxOa@TShryG<7pOxC z$hHMya&=oXZ~^tY0nN<;+MxinEdyv@5s;q;v=w3cRfB~FOAKBc6b5ppD=|QH1p{>y cF_eKx1%^1(T#RLk2@4LkWWtg93vs5GyepG V7|Ot;0z)W65Q7hrZtSukodB$>7JUE! diff --git a/Settings/InAppSettings.bundle/nl.lproj/Audio.strings b/Settings/InAppSettings.bundle/nl.lproj/Audio.strings index 2c781dc34b39b0339d8fda379b253926591fd304..be0260d5fafc95e369465305d7db78c238f314db 100644 GIT binary patch delta 38 ncmZ3%eTsX-1tv)+hA;+01~UdF1_cINAXZ|4iflg4^pFVvsB#EG delta 12 UcmX@by@Gqg1*XlPm~Jou03|C0i~s-t diff --git a/Settings/InAppSettings.bundle/nl.lproj/Chat.strings b/Settings/InAppSettings.bundle/nl.lproj/Chat.strings new file mode 100644 index 0000000000000000000000000000000000000000..8f40f22449d452e8df3d256f05611b54114cda83 GIT binary patch literal 248 zcmbV`!3st|6otRFr1X#Kcc~RA2mk;8 literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/nl.lproj/Root.strings b/Settings/InAppSettings.bundle/nl.lproj/Root.strings index 7048fa1296546a4c141b5d37814f93b6072934d7..65266337739b310ebee41596df1bcaecf4b5e265 100644 GIT binary patch delta 52 ycmdnS^^9vn6O+0#Lk2@4LkWWtg93vs5GygjMA8{j8HyPS7>a;&_U1~ay-WZ%M+>U} delta 12 TcmaFHwT){-6Vv8ROk0=$BZ&n9 diff --git a/Settings/InAppSettings.bundle/pl.lproj/Account.strings b/Settings/InAppSettings.bundle/pl.lproj/Account.strings index 015faa1dd5ce92800ae663ee93453e53699303da..76a6bac8f55733eed8f73233d051901c5643f857 100644 GIT binary patch delta 33 ocmX@YxrcK@9E)faLoP!mLn?y{qXI()Ln1>lgA-%^eKg91Y_Lk2@4LlKal$B@pT1Qf9aVkL%9h7^W;plk_) zBx3rWSHU4`+uGf&w`Gc z#GOcwJLphLCU?^p%VXR~*VaR642a4n|WCB@q9+RXqLk2@4LkWWtg93vs5Gye_GgN^@Hm5RuX957aVhIia delta 12 Tcmeyzb%$$19@FLtOz)TgC4~h< diff --git a/Settings/InAppSettings.bundle/pt_BR.lproj/Account.strings b/Settings/InAppSettings.bundle/pt_BR.lproj/Account.strings index 5c4793e1e7f93bf88911adf782e0b07ce272bdbc..79c7133428b8da4b0242edbeb98128c825f5f76d 100644 GIT binary patch delta 41 rcmZ3-xsG##6N_vJLq0 z1gsjQE{`DvD6Rk&Eo3MKikAWTN(|NvTtG4yXkrmi1Vkz@gfav%_#l}G;VUqtNP~@l MDb55NSp+o%0Cd6|cmMzZ diff --git a/Settings/InAppSettings.bundle/pt_BR.lproj/Audio.strings b/Settings/InAppSettings.bundle/pt_BR.lproj/Audio.strings index cd04afddde427d7543c974a0f26c7ba78124c362..5de0e0fa2b24cd821ef3cb6278ae1c7065355293 100644 GIT binary patch delta 38 ncmcb?{fm3U1tv)+hA;+01~UdF1_cINAXZ|4iflg4B*+W^w6h1( delta 12 TcmeyxeS>?$1*XlPm^hdLC#(e> diff --git a/Settings/InAppSettings.bundle/pt_BR.lproj/Chat.strings b/Settings/InAppSettings.bundle/pt_BR.lproj/Chat.strings new file mode 100644 index 0000000000000000000000000000000000000000..b403c7de1266e3f9791d9bc33742b2a1bf1a5677 GIT binary patch literal 278 zcmbV`K?=e!5Jlg*rx>R!Yor+bY9JNLq0<~LncEWgA#)^1J~sFjJlI&F)DBdGo%8=G8hs!pJZIh1OOow B3?l#l delta 24 gcmaFF@s49d1mk2iMxn_mi~*CI7=<<;U|hrm0BvjtJ^%m! diff --git a/Settings/InAppSettings.bundle/pt_BR.lproj/Root.strings b/Settings/InAppSettings.bundle/pt_BR.lproj/Root.strings index e1279a4599c5389786c345f5cdcc9c9f0f6ee48a..5c7b64033d3e2819a5740efed58d2f3238511863 100644 GIT binary patch delta 38 ncmcb^^^a>q6_cbhLk2@4LkWWtg93vs5Gyf2MK%{Qy=DRcyHW`V delta 16 Ycmeyzb%$$171QJ`OahzNFkNB-06n$_sQ>@~ diff --git a/Settings/InAppSettings.bundle/ru.lproj/Advanced.strings b/Settings/InAppSettings.bundle/ru.lproj/Advanced.strings index 1aa1dcab22cf20cb88223961ad4ed0856e1e276d..deb82f8b09b5aaaeb146814fb26ca9f977839ecd 100644 GIT binary patch delta 7 OcmZqU?BdwK#R32b;Q`

2ki(G5pukYfkin41Pz2=XF{Cpn0Yz+q7@rDj1}>m{Fi>|9 VLm8MxIja?R`69D@n6&wHn diff --git a/Settings/InAppSettings.bundle/ru.lproj/Audio.strings b/Settings/InAppSettings.bundle/ru.lproj/Audio.strings index 28476bf7280368608b9b8f2d232742887483e702..f080d8c254207f5ea0d26712a36ac690acbb1ed2 100644 GIT binary patch delta 169 zcmcb>{f>LX1tv)+hA;+01~UdF1_cINAXZ|4iflg4B*|nV$70Olz+%8+%VNRe&SDCt z{aF+k41s(npo}StC6Lx-uwt=eF#+1X#Kcc~RA2mk;8 literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ru.lproj/Root.strings b/Settings/InAppSettings.bundle/ru.lproj/Root.strings index 4200d86f76baf71b8da12385301e362ccfae34f3..4c3371f00730b387292c58e21f6a0f42a4304078 100644 GIT binary patch delta 36 qcmX@a^@wXj2a~unLk2@4LkWWtg93vs5GygLvly^AZLViJ%me_UMhE2p delta 12 TcmaFFb%<+22h-*iOuLu>Bi{uK diff --git a/Settings/InAppSettings.bundle/sv.lproj/Advanced.strings b/Settings/InAppSettings.bundle/sv.lproj/Advanced.strings index bb75ba20e99504299e971e9489ed5d2c51dfbcf2..939ab46779bb6cdb577cc8359b28b4011fc83239 100644 GIT binary patch delta 7 OcmaFB@q&HB3uXWg-UD+0 delta 128 zcmaFC{(xh{3+4(X1~-OGh8%`e1_g#7<`a)BFpN+WkEUtZ7CKg diff --git a/Settings/InAppSettings.bundle/sv.lproj/Audio.strings b/Settings/InAppSettings.bundle/sv.lproj/Audio.strings index 21d17caabb950a2d05d88a8e6f4b60dbba7d496a..31fb2c322589f7927d02e13480b2e0365d4872de 100644 GIT binary patch delta 38 ncmdnReTRF)1tv)+hA;+01~UdF1_cINAXZ|4iflg4^qC0&t;z^^ delta 12 Ucmcb^y^DLp1*XlPm|igf04Cc7!T^mA&()Mp@^Z9p@5-;L4hHcA(f#R2oo97!7K%aa)wNxOa@TShryG<7pOxC z$hHMya&=oXZ~^tY0nN<;+MxinEdyv@5s;q;v=w1GL`4cvO%6~7CJWIW3=}P5CdLk2@4LkWWtg93vs5GygjL`pWNGi_%A0JpFRyZ`_I delta 12 TcmX@aHIHjU0n_FwOzW5cALj&+ diff --git a/Settings/InAppSettings.bundle/tr.lproj/Advanced.strings b/Settings/InAppSettings.bundle/tr.lproj/Advanced.strings index 174d044571d8975f317a30e4a7a586772763eb03..d82dc11adb00371b7add0ace4cd85bd82c4c991a 100644 GIT binary patch delta 7 OcmbQoIfr9|3=04X2Lc=b delta 139 zcmbQkF^_YD3`@NdgBwF8Lk>eKg91Y_Lk2@4LlKal$B@pT1Qf9aVkHI_hJ2u0B~VU* zp#Vr$0@Wun#4{Q)<}w&EDlu3yZ~;{X1I;L6CXty!@#k*a6jf74SYW|wj+JA!SceXZ}t){#EvqSxyMw<}bY jbDv~MO_rp5Ik}9M`!EALw(dDHa-!7eAET6?`$@h5sE;Y| literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/tr.lproj/Root.strings b/Settings/InAppSettings.bundle/tr.lproj/Root.strings index 4bd2846af9b8958cb10553d2ccabe61a9251d4e7..2872a4e99fef6a34aecba5ba3fb9399f50ae230e 100644 GIT binary patch delta 42 wcmaFB)xo`?hDp|$A%h{2p@cz+L4m;*h?N+;8S)wO7)lx98FM!mGQDR40L^#_ivR!s delta 12 TcmeC+e!#V%hH3K>rYB4QAkGBq diff --git a/Settings/InAppSettings.bundle/zh_CN.lproj/Advanced.strings b/Settings/InAppSettings.bundle/zh_CN.lproj/Advanced.strings index 41de2dd8404870b5e538b271cd12e1cfd9ab71d3..576c99637a13ed515fd59c1871c6b3d08aafb895 100644 GIT binary patch delta 7 OcmbQmF^_%2JZ1n2?gE(r delta 132 zcmbQoK8s_+JmwlD1~-OGh8%`e1_g# V7|Ot;0z)W65Q7hrZtSukod8#p71aO$ diff --git a/Settings/InAppSettings.bundle/zh_CN.lproj/Audio.strings b/Settings/InAppSettings.bundle/zh_CN.lproj/Audio.strings index 9d280eb4aaff4cba7bd8ff05a132be0bba46e2cd..2bd9d8ab560e341c54f7b6b620ac24a8102c9db6 100644 GIT binary patch delta 38 ncmZ3+b%JZdIVMRbhA;+01~UdF1_cINAXZ|4iflg0l*j}Crc4L8 delta 12 TcmX@XwTx@SIi}4Ym?D?}Bh>{0 diff --git a/Settings/InAppSettings.bundle/zh_CN.lproj/Root.strings b/Settings/InAppSettings.bundle/zh_CN.lproj/Root.strings index 46ad1b60468177bebd95eb35d97a15c78f8c938a..da3b128c5bb5df81244859070d82f36a7d8bee67 100644 GIT binary patch delta 35 pcmeyyK80fg6O))TLk2@4LkWWtg93vs5GyfwHE2d|{>Au*5de_t2%G=_ delta 12 TcmbQj@r`{06Vqk|rZ0>D9Jd4* diff --git a/Settings/InAppSettings.bundle/zh_TW.lproj/Advanced.strings b/Settings/InAppSettings.bundle/zh_TW.lproj/Advanced.strings index 0c6ecfdb007ec6fd5cbcb4a0580e2c22f85559c8..5227777693a22b8c197b6d2c817730fc156a8991 100644 GIT binary patch delta 7 OcmaFE*2cDhjTrz7bOJa4 delta 110 zcmZo;d&9PYjX6z;!Hpr4A%`KAL4l!|A%h{2p$N#&V@PLE0*crIu@b|SERPJfpw)g# n4Au->Kz=Y#brC}um{ed0We8&MK~in)7oWAM)*&1w4$=bvtfmxF diff --git a/Settings/InAppSettings.bundle/zh_TW.lproj/Audio.strings b/Settings/InAppSettings.bundle/zh_TW.lproj/Audio.strings index dff496d0624f7b7df01ff01b0cc11f57831e08f1..6e9254a3af735763bdf1007cd084ed19fb4a9603 100644 GIT binary patch delta 38 ncmX@d^?_@{874_5hA;+01~UdF1_cINAXZ|4iflg2)Xf9{vE~Ra delta 12 Tcmeysb&hMp8K%wen3|XXCxZoe diff --git a/Settings/InAppSettings.bundle/zh_TW.lproj/Chat.strings b/Settings/InAppSettings.bundle/zh_TW.lproj/Chat.strings new file mode 100644 index 0000000000000000000000000000000000000000..664103d80d06d3f9d564937905433a4ee4aaa992 GIT binary patch literal 226 zcmezWPl>^mA&()Mp@^Z9p@5-;L4hHcA(f#R2oo97!7K%aa)wNxOa@TShryG<7pOxC z$hHMya&=oXZ~^tY0nN<;+MxinEdyv@5s;q;v=w3clq`=7wxHF1N(>Mk!9dkT3}s+a ZfgzM32_CFBundlePackageType APPL CFBundleShortVersionString - 3.16 + 3.16.2 CFBundleURLTypes @@ -53,7 +53,7 @@ CFBundleVersion - 8 + 1 ITSAppUsesNonExemptEncryption ITSEncryptionExportComplianceCode From 6313992e1af085141d5e2cff47ab0231b650c903 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 14:38:12 +0100 Subject: [PATCH 055/180] update transifex config --- .tx/config | 1 + 1 file changed, 1 insertion(+) diff --git a/.tx/config b/.tx/config index 0b79789c3..304d48ace 100644 --- a/.tx/config +++ b/.tx/config @@ -231,3 +231,4 @@ source_file = Classes/Base.lproj/CountryListView.strings source_lang = en file_filter = Settings/InAppSettings.bundle/.lproj/Chat.strings source_file = Settings/InAppSettings.bundle/en.lproj/Chat.strings +type = STRINGS \ No newline at end of file From e5c25af5453b3e06817486712b36e79ca211373c Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 14:48:07 +0100 Subject: [PATCH 056/180] Fix blackscreen on first video call preview --- Classes/LinphoneManager.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index e422abd8d..cf3bd6e5e 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -2293,7 +2293,7 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { linphone_core_start_dtmf_stream(theLinphoneCore); /*start the video preview in case we are in the main view*/ - if (linphone_core_video_display_enabled(theLinphoneCore) && [self lpConfigBoolForKey:@"preview_preference"]) { + if (linphone_core_video_display_enabled(theLinphoneCore)) { //&& [self lpConfigBoolForKey:@"preview_preference"]) { linphone_core_enable_video_preview(theLinphoneCore, TRUE); } /*check last keepalive handler date*/ From 009db98d8ef9aed865f2e88ddde958e3003be376 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 14:50:57 +0100 Subject: [PATCH 057/180] clearer message to validate ZRTP SAS --- Classes/LinphoneAppDelegate.m | 20 ++++++++++++++++---- Classes/LinphoneUI/StatusBarView.m | 18 ++++++++++++++++-- Resources/en.lproj/Localizable.strings | Bin 62602 -> 62778 bytes 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 95e00897c..a43af202f 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -800,10 +800,22 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response userInfo:sheet repeats:NO]; } else if ([response.notification.request.content.categoryIdentifier isEqual:@"zrtp_request"]) { - [UIConfirmationDialog - ShowWithMessage:[NSString stringWithFormat:NSLocalizedString( - @"Confirm the following SAS with peer:\n%s", nil), - linphone_call_get_authentication_token(call)] + NSString *code = [NSString stringWithUTF8String:linphone_call_get_authentication_token(call)]; + NSString *myCode; + NSString *correspondantCode; + if (linphone_call_get_dir(call) == LinphoneCallIncoming) { + myCode = [code substringToIndex:2]; + correspondantCode = [code substringFromIndex:2]; + } else { + correspondantCode = [code substringToIndex:2]; + myCode = [code substringFromIndex:2]; + } + NSString *message = [NSString stringWithFormat:NSLocalizedString(@"Confirm the following SAS with peer:\n" + @"Say : %@\n" + @"Your correspondant should say : %@", + nil), + myCode, correspondantCode]; + [UIConfirmationDialog ShowWithMessage:message cancelMessage:NSLocalizedString(@"DENY", nil) confirmMessage:NSLocalizedString(@"ACCEPT", nil) onCancelClick:^() { diff --git a/Classes/LinphoneUI/StatusBarView.m b/Classes/LinphoneUI/StatusBarView.m index e0e2c785e..43db8ee5e 100644 --- a/Classes/LinphoneUI/StatusBarView.m +++ b/Classes/LinphoneUI/StatusBarView.m @@ -318,9 +318,23 @@ LinphoneMediaEncryption enc = linphone_call_params_get_media_encryption(linphone_call_get_current_params(call)); if (enc == LinphoneMediaEncryptionZRTP) { + NSString *code = [NSString stringWithUTF8String:linphone_call_get_authentication_token(call)]; + NSString *myCode; + NSString *correspondantCode; + if (linphone_call_get_dir(call) == LinphoneCallIncoming) { + myCode = [code substringToIndex:2]; + correspondantCode = [code substringFromIndex:2]; + } else { + correspondantCode = [code substringToIndex:2]; + myCode = [code substringFromIndex:2]; + } NSString *message = - [NSString stringWithFormat:NSLocalizedString(@"Confirm the following SAS with peer:\n%s", nil), - linphone_call_get_authentication_token(call)]; + [NSString stringWithFormat:NSLocalizedString(@"Confirm the following SAS with peer:\n" + @"Say : %@\n" + @"Your correspondant should say : %@", + nil), + myCode, correspondantCode]; + if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground && floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init]; diff --git a/Resources/en.lproj/Localizable.strings b/Resources/en.lproj/Localizable.strings index deac1601852cd7c6f93bd241156c9ce8cd3d679e..ac03ac828d094b1dd2f7885b240b5bcd61411142 100644 GIT binary patch delta 138 zcmeBr$-L_o^M(T&qQMM_43!KD3|2s_%HY5d!;r@iIobP$s%$Ys217nWDMJoJ3Q(>X oRo&!|>e7?%Y1l}j>NjLiK{i7as~M9k*-|I}&=lC*rpa;|01)mWeEin;40^M(T&%&H8 Date: Thu, 2 Feb 2017 15:12:35 +0100 Subject: [PATCH 058/180] Fix UI Bug : pop current view on call error --- Classes/LinphoneManager.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index cf3bd6e5e..820a1d7ea 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -894,6 +894,9 @@ static void linphone_iphone_display_status(struct _LinphoneCore *lc, const char } } } + if (state == LinphoneCallError) { + [PhoneMainView.instance popCurrentView]; + } } if (state == LinphoneCallReleased) { From 6c8284f169c4afae0322b8badf1c04c457c3aa4b Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 15:13:03 +0100 Subject: [PATCH 059/180] translation --- Resources/ar.lproj/Localizable.strings | Bin 60398 -> 60582 bytes Resources/de.lproj/Localizable.strings | Bin 65740 -> 65892 bytes Resources/es_AR.lproj/Localizable.strings | Bin 65370 -> 65518 bytes Resources/fr.lproj/Localizable.strings | Bin 65162 -> 65322 bytes Resources/ja.lproj/Localizable.strings | Bin 59150 -> 59326 bytes Resources/nl.lproj/Localizable.strings | Bin 63388 -> 63564 bytes Resources/pl.lproj/Localizable.strings | Bin 63320 -> 63484 bytes Resources/pt_BR.lproj/Localizable.strings | Bin 62652 -> 62824 bytes Resources/ru.lproj/Localizable.strings | Bin 62834 -> 63010 bytes Resources/sv.lproj/Localizable.strings | Bin 62716 -> 62892 bytes Resources/tr.lproj/Localizable.strings | Bin 62898 -> 63078 bytes Resources/zh_CN.lproj/Localizable.strings | Bin 60416 -> 60592 bytes Resources/zh_TW.lproj/Localizable.strings | Bin 56076 -> 56306 bytes 13 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Resources/ar.lproj/Localizable.strings b/Resources/ar.lproj/Localizable.strings index 44fe932b1e551c5788aea03a24c9e00f59b5329b..4b9e01443edc21b2da7a3a9bd0fdf4f0ceb8908c 100644 GIT binary patch delta 141 zcmaENoq5?!<_&HdqQMM_43!KD3|2s_%HY5d!;r@iIeGs@Rn=mK42FD$QidFc6rfx& qnmQ$*m@R|CS%BZAGG$$o5UlM6HjHnV8HIs^dxWgwma delta 112 zcmZ2>llk3s<_&Hdp{fkU3`z_N47Nb5#GuUP%ofNNz^2cpz@X0N0_3@{xw2_Od0K2B zF)uLRmCX_;>dK}E6fw#j;0T$}f3zB&W|dFT~? diff --git a/Resources/de.lproj/Localizable.strings b/Resources/de.lproj/Localizable.strings index 8e6ee673c0719530106aef1285901efd7473b5a1..0435a6c93948f8287756d5c6e605db0b44724a61 100644 GIT binary patch delta 152 zcmX@p$nvC#WkZ*?XfQ(}LnVU(gB1{~GB_~AFyt{rPR@O*s#?sD!H~~T%8O$Jvt>}2Y_07tiE4%+g9@@a^7za#Vo;gf7#cnKfhODLIGwyJ0K4xX@&Et; delta 100 zcmaFT#B!#QWkZ)XzbZp9gA#)RgDns%F*r@G?~$Ek#vz`@kk63Akj{|GkjIb$Bo!Ef x85|jcCksvz77t)ZWGG@N0m`HTX)A^pAPZ>Bs%$Ys217nWDMJoJ3Q(>X rRo!GqEy>BZwCp5N^&2v%Ae$kN&kQ35mC1&o(UUi5uxEH-YWyoPrU?^tDWJqTy1(K-@c?=~$Qh_0v;WI-D zSUexd3ubTxVvuM)P=x|e9HOoWs6QVlS_;&a&rrl*#SjCOQJuUnDSGk-4YtiKI$4(i Dw>2MO diff --git a/Resources/fr.lproj/Localizable.strings b/Resources/fr.lproj/Localizable.strings index 49345b12e17a453d95e0232ecd589a01621abf03..254aac423db5a26b2b4fb0394c8a1fa343835385 100644 GIT binary patch delta 218 zcmeDB%e?9z^9CPn(O`x|hDrtn1}h*|WpH4KVaQ{MoZS6TRkoNRgCU=xlp%*91t?dH zs&2Bsw(R6pc3i4O47m)c3`IZ{IY3&0A(+7th(YR088R8lfV%P+N+$PeOHSUv#4t`RVn~kFBuAeF3JPCrwC-% atpb$!{m<^A|8AG88c=FysTtM24Kn@3kd^Ga2$2N*GdsA~`_u zWQI~OuN17V5Xe(!$OOtL0M#o1=~N(@3{;l_W)%bFGa1T&av(Dl7_1m#fGpL?AC03Y VPtatWT&K%5`9O%wW(8fYO8{HOBk}+M diff --git a/Resources/ja.lproj/Localizable.strings b/Resources/ja.lproj/Localizable.strings index 083f918aa09b1989c2eb6fdd59a895cba2d9d9e6..0fca116ff231fe1d734560b1dad236811bbfe20a 100644 GIT binary patch delta 135 zcmeA>$Gq=6^M)36(O`x|hDrtn1}h*|WpH4KVaQ{MoLqlaRkoNRgCU=xlp%*91t?dH js%~<-dblL2UPA^IWc^~;^-s2AOPRbuLtwL)#*uvhJBJ@r delta 32 ocmdmYp1JQF^M)36W>tpb$+y+R8C54w%!;0zpeeBVm&TEO0M)JyWB>pF diff --git a/Resources/nl.lproj/Localizable.strings b/Resources/nl.lproj/Localizable.strings index 0ce6e67a86da27959fb11190e6777b3806bfb4e3..a34275f4cd7aef3d2574bb77c1e4e1d470749efd 100644 GIT binary patch delta 132 zcmbR9p83oN<_$iYqQMM_43!KD3|2s_%HY5d!;r@iIr;Z3Rq|Akade<)jheFEp_q+b+*kMT2syf0C=k)tpET3 delta 36 ucmV+<0Nek}@B^Ih1F%df10?`+lYJ-~lMpF90VR{Mn_H8xCkC^)DwNFupAIho diff --git a/Resources/pl.lproj/Localizable.strings b/Resources/pl.lproj/Localizable.strings index f7a9eb1855c5aaabd7b8bbe84fe704a8dbe8b01e..0d2a73f1e72fd890727389fa5acb7e88ff78ad8f 100644 GIT binary patch delta 130 zcmccdj``1f<_%LcMS~d<87dhR7_5L;mBE1_h9Qq3a`NiCs-ndV84URhr3^U?DL}bm kh`Py+Y{HX0G<_sd^%*j#5TQ4pEp_r8ErHExTA$7U0CFcGJOBUy delta 76 zcmezKp83W*<_%LcnN=BzC+}~TSIlEbWGH4RVUT1jU?^qCVqj%VW~gLPUz9Q;{2HmsSLRcRtzx=c?>|En-^+Dp9KJ6+Z1d7 diff --git a/Resources/pt_BR.lproj/Localizable.strings b/Resources/pt_BR.lproj/Localizable.strings index 6ad6a9c312cc79ccddad953b1d57c8027cc68981..d987cb2c64ff3c3c159baf25e2fb063b4862eff7 100644 GIT binary patch delta 138 zcmdnX oRo!GoPtnQqG}tD4Y1&AlnqkPGf^3c`R&yr1v!!l!(5g8F0O~Ct`~Uy| delta 100 zcmaFyih0jV<_&F{%&H8X nRo!HHbV+AN#2icSLnlG`5p delta 32 ocmZ4VhWXPg<_&I|%&H8jV7h1F-HW3nc(^03rY&06hR8lbX xO`Q@@%$7l6@>30eNmMfo8B~zX5yfiGX jRo&!p)o@8vy@m`b$ofUG>YpsnmO8mXO<=Q>+Owko7~LNg delta 32 ocmdmRleysr^M(*rW>tpb$*Wbv8C546mPb!EP#4&IO6}QE0LDrTY5)KL diff --git a/Resources/zh_TW.lproj/Localizable.strings b/Resources/zh_TW.lproj/Localizable.strings index e1b100e0259ebc3858f7a34c33fae97439eb5f5e..eb85a406ce762bad1abb3a9a9da1e573a318a149 100644 GIT binary patch delta 142 zcmeC##{6kJ^M+%}qQMM_43!KD3|2s_%HY5d!;r@iIhp@}s%kMq217nWDMJoJ3Q(>X pO`Q@@%$7l6a=EgZ%OI3`z_N47Nb5#K7Lf8?!TYS4D4EFoPpQFoP9C3_~6RP|f5* Q$>_-!6j?SKsUFw{05{AMX8-^I From 06bdf251f0c99f1bcbebb27b792ad90cec62631e Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 16:31:06 +0100 Subject: [PATCH 060/180] Log not truncated in syslog --- Classes/Utils/Log.m | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Classes/Utils/Log.m b/Classes/Utils/Log.m index 18edc3041..f89f2d095 100644 --- a/Classes/Utils/Log.m +++ b/Classes/Utils/Log.m @@ -114,8 +114,20 @@ void linphone_iphone_log_handler(const char *domain, OrtpLogLevel lev, const cha case ORTP_LOGLEV_END: return; } - os_log_with_type(log, type, "%{public}s/%{public}s", domain, - [formatedString stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n"].UTF8String); + if ([formatedString containsString:@"\n"]) { + NSArray *myWords = [[formatedString stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n"] + componentsSeparatedByString:@"\n"]; + for (int i = 0; i < myWords.count; i++) { + NSString *tab = i > 0 ? @"\t" : @""; + if (((NSString *)myWords[i]).length > 0) { + os_log_with_type(log, type, "%{public}s%{public}s", tab.UTF8String, + ((NSString *)myWords[i]).UTF8String); + } + } + } else { + os_log_with_type(log, type, "%{public}s/%{public}s", domain, + [formatedString stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n"].UTF8String); + } } else { int lvl = ASL_LEVEL_NOTICE; switch (lev) { From 73f74a699e6b928c6ee574bcfe96a76062d72bfd Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 2 Feb 2017 16:54:53 +0100 Subject: [PATCH 061/180] add fr.strings --- linphone.xcodeproj/project.pbxproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 4717fb2a8..0f4799606 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -1633,6 +1633,7 @@ 8C1C430C1E43409D00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/TabBarView.strings; sourceTree = ""; }; 8C1C430D1E43409E00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main_iPad.strings; sourceTree = ""; }; 8C1C430E1E43409E00FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main_iPhone.strings; sourceTree = ""; }; + 8C1C43211E438DB600FE9A91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; 8C23BCB71D82AAC3005F19BB /* linphone.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = linphone.entitlements; sourceTree = ""; }; 8C2595D51DEDC8E1007A6424 /* ProviderDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProviderDelegate.h; sourceTree = ""; }; 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProviderDelegate.m; sourceTree = ""; }; @@ -4331,6 +4332,7 @@ 63AADBDD1B6A0FF200AA16FD /* nl */, 63AADBE11B6A0FF200AA16FD /* ru */, 63AADBE71B6A0FF200AA16FD /* zh_TW */, + 8C1C43211E438DB600FE9A91 /* fr */, ); name = Localizable.strings; sourceTree = ""; From c47f72a0fa449b7cd9841b4f663b59112d025613 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 3 Feb 2017 15:34:55 +0100 Subject: [PATCH 062/180] How to be a beta tester added in README --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index 32044b792..158322b8d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,33 @@ Interested in helping translate Linphone? Contribute [on Transifex](https://www. ## Report bugs and submit patchs If you want to dig through Linphone code or report a bug, please read `CONTRIBUTING.md` first. You should also read this `README` entirely ;-). + +## How to be a beta tester ? + +Enter the Beta : + - Download TestFlight from the App Store and log in it with your apple-id + - Send an email to linphone-iphone@belledonne-communications.com, with object : [Beta test - Request], where you precise your apple-id you logged in TestFlight with + - You will receive an invitation code to the beta in the following days via your email associated to your apple-id + - Enter the invitation code received into TestFlight + - Download Linphone from TestFlight + + And voilà ! + TestFlight will send you a notification every time a new beta test is available. + +Send a crash report : + It is done automatically by TestFlight + +Report a bug : + - Open Linphone + - Go to Settings —> Advanced —> Send logs + - An email to linphone-iphone@belledonne-communications.com is created with your logs attached + - Fill in the bug description with : + * What you were doing + * What happened + * What you were expecting + * Approximately when the bug happened + - Change the object to [Beta test - Bug report] + - Send the mail # Building and customizing the SDK From 193382a6ae061720f46eaf32f5ec81c6669f1282 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 3 Feb 2017 15:37:27 +0100 Subject: [PATCH 063/180] Change README --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 158322b8d..be088a909 100644 --- a/README.md +++ b/README.md @@ -24,29 +24,29 @@ If you want to dig through Linphone code or report a bug, please read `CONTRIBUT ## How to be a beta tester ? Enter the Beta : - - Download TestFlight from the App Store and log in it with your apple-id - - Send an email to linphone-iphone@belledonne-communications.com, with object : [Beta test - Request], where you precise your apple-id you logged in TestFlight with - - You will receive an invitation code to the beta in the following days via your email associated to your apple-id - - Enter the invitation code received into TestFlight - - Download Linphone from TestFlight + - Download TestFlight from the App Store and log in it with your apple-id + - Send an email to linphone-iphone@belledonne-communications.com, with object : [Beta test - Request], where you precise your apple-id you logged in TestFlight with + - You will receive an invitation code to the beta in the following days via your email associated to your apple-id + - Enter the invitation code received into TestFlight + - Download Linphone from TestFlight - And voilà ! - TestFlight will send you a notification every time a new beta test is available. + And voilà ! + TestFlight will send you a notification every time a new beta test is available. Send a crash report : - It is done automatically by TestFlight + It is done automatically by TestFlight Report a bug : - - Open Linphone - - Go to Settings —> Advanced —> Send logs - - An email to linphone-iphone@belledonne-communications.com is created with your logs attached - - Fill in the bug description with : - * What you were doing - * What happened - * What you were expecting - * Approximately when the bug happened - - Change the object to [Beta test - Bug report] - - Send the mail + - Open Linphone + - Go to Settings —> Advanced —> Send logs + - An email to linphone-iphone@belledonne-communications.com is created with your logs attached + - Fill in the bug description with : + * What you were doing + * What happened + * What you were expecting + * Approximately when the bug happened + - Change the object to [Beta test - Bug report] + - Send the mail # Building and customizing the SDK From b922fdd3a0c4483f093cbb8a64cbb543920ce0c4 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 3 Feb 2017 15:39:50 +0100 Subject: [PATCH 064/180] Change README2 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index be088a909..f0cd9bf6e 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ Enter the Beta : - Download Linphone from TestFlight And voilà ! - TestFlight will send you a notification every time a new beta test is available. +TestFlight will send you a notification every time a new beta test is available. Send a crash report : - It is done automatically by TestFlight +It is done automatically by TestFlight Report a bug : - Open Linphone From 1971e4c4305a9c5b8d8bb60453ae34201db05d6c Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 3 Feb 2017 15:41:17 +0100 Subject: [PATCH 065/180] Change README3 --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f0cd9bf6e..0b1d051c5 100644 --- a/README.md +++ b/README.md @@ -29,12 +29,10 @@ Enter the Beta : - You will receive an invitation code to the beta in the following days via your email associated to your apple-id - Enter the invitation code received into TestFlight - Download Linphone from TestFlight - - And voilà ! -TestFlight will send you a notification every time a new beta test is available. + - And voilà ! TestFlight will send you a notification every time a new beta test is available. Send a crash report : -It is done automatically by TestFlight + - It is done automatically by TestFlight Report a bug : - Open Linphone From 5d92ce525f52d328d47b76b1d30593a4977a3577 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 6 Feb 2017 16:40:38 +0100 Subject: [PATCH 066/180] Fix UI bug when rotating while keyboard displayed in chatListsView --- Classes/ChatsListTableView.m | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Classes/ChatsListTableView.m b/Classes/ChatsListTableView.m index 79d551de4..01ad5c616 100644 --- a/Classes/ChatsListTableView.m +++ b/Classes/ChatsListTableView.m @@ -63,6 +63,14 @@ } } +- (void)layoutSubviews { + [self.tableView layoutSubviews]; + + CGSize contentSize = self.tableView.contentSize; + contentSize.width = self.tableView.bounds.size.width; + self.tableView.contentSize = contentSize; +} + #pragma mark - static int sorted_history_comparison(LinphoneChatRoom *to_insert, LinphoneChatRoom *elem) { From a2e1ab26bb9ef5a62bfc3ef68969d7b24bf37149 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 6 Feb 2017 17:10:44 +0100 Subject: [PATCH 067/180] Fix crash when calling invalid SIP address with CallKit --- Classes/LinphoneManager.m | 96 +++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 820a1d7ea..71c7aeaa9 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -2491,6 +2491,54 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { } - (void)call:(const LinphoneAddress *)iaddr { + // First verify that network is available, abort otherwise. + if (!linphone_core_is_network_reachable(theLinphoneCore)) { + UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Network Error", nil) + message:NSLocalizedString(@"There is no network connection available, enable WIFI or WWAN prior to place a call", nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + + [errView addAction:defaultAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + return; + } + + // Then check that no GSM calls are in progress, abort otherwise. + CTCallCenter *callCenter = [[CTCallCenter alloc] init]; + if ([callCenter currentCalls] != nil && floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) { + LOGE(@"GSM call in progress, cancelling outgoing SIP call request"); + UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Cannot make call", nil) + message:NSLocalizedString(@"Please terminate GSM call first.", nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + + [errView addAction:defaultAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + return; + } + + // Then check that the supplied address is valid + if (!iaddr) { + UIAlertController *errView = [UIAlertController alertControllerWithTitle: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) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + + [errView addAction:defaultAction]; + [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; + return; + } + if (linphone_core_get_calls_nb(theLinphoneCore) < 1 && floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) { NSUUID *uuid = [NSUUID UUID]; @@ -2509,54 +2557,6 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { } - (BOOL)doCall:(const LinphoneAddress *)iaddr { - // First verify that network is available, abort otherwise. - if (!linphone_core_is_network_reachable(theLinphoneCore)) { - UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Network Error", nil) - message:NSLocalizedString(@"There is no network connection available, enable WIFI or WWAN prior to place a call", nil) - preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) - style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) {}]; - - [errView addAction:defaultAction]; - [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; - return FALSE; - } - - // Then check that no GSM calls are in progress, abort otherwise. - CTCallCenter *callCenter = [[CTCallCenter alloc] init]; - if ([callCenter currentCalls] != nil && floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) { - LOGE(@"GSM call in progress, cancelling outgoing SIP call request"); - UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Cannot make call", nil) - message:NSLocalizedString(@"Please terminate GSM call first.", nil) - preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) - style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) {}]; - - [errView addAction:defaultAction]; - [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; - return FALSE; - } - - // Then check that the supplied address is valid - if (!iaddr) { - UIAlertController *errView = [UIAlertController alertControllerWithTitle: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) - preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) - style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) {}]; - - [errView addAction:defaultAction]; - [PhoneMainView.instance presentViewController:errView animated:YES completion:nil]; - return FALSE; - } - LinphoneAddress *addr = linphone_address_clone(iaddr); NSString *displayName = [FastAddressBook displayNameForAddress:addr]; From 1bf8383c44b4c1c5702c4f9ab7e518818f006b6d Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 6 Feb 2017 17:16:13 +0100 Subject: [PATCH 068/180] Do not display CallKit error screen but ours --- Classes/LinphoneManager.m | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 71c7aeaa9..d95fcefe6 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -864,9 +864,12 @@ static void linphone_iphone_display_status(struct _LinphoneCore *lc, const char [self.providerDelegate.uuids removeObjectForKey:callId2]; [self.providerDelegate.calls removeObjectForKey:uuid]; - [self.providerDelegate.provider reportCallWithUUID:uuid - endedAtDate:NULL - reason:CXCallEndedReasonRemoteEnded]; + + CXEndCallAction *act = [[CXEndCallAction alloc] initWithCallUUID:uuid]; + CXTransaction *tr = [[CXTransaction alloc] initWithAction:act]; + [LinphoneManager.instance.providerDelegate.controller requestTransaction:tr + completion:^(NSError *err){ + }]; } } else { if (data != nil && data->notification != nil) { From ff8f3d2da0b76e6f49fbcff7bf99b162bc32c72f Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 7 Feb 2017 10:54:16 +0100 Subject: [PATCH 069/180] Display address linked to phone number when creating a cat conversation when it's possible --- Classes/ChatConversationCreateTableView.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Classes/ChatConversationCreateTableView.m b/Classes/ChatConversationCreateTableView.m index 40204dad0..374836d2f 100644 --- a/Classes/ChatConversationCreateTableView.m +++ b/Classes/ChatConversationCreateTableView.m @@ -73,7 +73,12 @@ cell = [[UIChatCreateCell alloc] initWithIdentifier:kCellId]; } cell.displayNameLabel.text = [_contacts.allValues objectAtIndex:indexPath.row]; - cell.addressLabel.text = [_contacts.allKeys objectAtIndex:indexPath.row]; + LinphoneAddress *addr = [LinphoneUtils normalizeSipOrPhoneAddress:[_contacts.allKeys objectAtIndex:indexPath.row]]; + if (addr) { + cell.addressLabel.text = [NSString stringWithUTF8String:linphone_address_as_string(addr)]; + } else { + cell.addressLabel.text = [_contacts.allKeys objectAtIndex:indexPath.row]; + } return cell; } From f400789b8ec96d1735d866447cc5468ee95c8f27 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 7 Feb 2017 12:30:15 +0100 Subject: [PATCH 070/180] Fix registration issue when store_ha1=1 --- Classes/LinphoneCoreSettingsStore.m | 80 +++++++++++++++++------------ 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index c3c988f3d..29ec05216 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -577,7 +577,12 @@ } LinphoneAuthInfo *proxyAi = (LinphoneAuthInfo *)linphone_proxy_config_find_auth_info(proxyCfg); - + char *realm; + if (proxyAi) { + realm = ms_strdup(linphone_auth_info_get_realm(proxyAi)); + } else { + realm = NULL; + } // setup new proxycfg linphone_proxy_config_done(proxyCfg); @@ -593,12 +598,21 @@ LinphoneAddress *from = linphone_core_interpret_url(LC, identity); if (from) { const char *userid_str = (userID != nil) ? [userID UTF8String] : NULL; - LinphoneAuthInfo *info = linphone_auth_info_new( - linphone_address_get_username(from), userid_str, password ? password : NULL, password ? NULL : ha1, - linphone_proxy_config_get_realm(proxyCfg), linphone_proxy_config_get_domain(proxyCfg)); + LinphoneAuthInfo *info; + if (password) { + info = linphone_auth_info_new(linphone_address_get_username(from), userid_str, password, NULL, + linphone_proxy_config_get_realm(proxyCfg), + linphone_proxy_config_get_domain(proxyCfg)); + } else { + info = linphone_auth_info_new(linphone_address_get_username(from), userid_str, NULL, ha1, + realm ? realm : linphone_proxy_config_get_realm(proxyCfg), + linphone_proxy_config_get_domain(proxyCfg)); + } + linphone_address_destroy(from); linphone_core_add_auth_info(LC, info); linphone_auth_info_destroy(info); + ms_free(realm); } bad_proxy: @@ -661,36 +675,36 @@ bool enableAutoAnswer = [self boolForKey:@"enable_auto_answer_preference"]; [LinphoneManager.instance lpConfigSetBool:enableAutoAnswer forKey:@"auto_answer"]; + } + + // audio section + { + [self synchronizeCodecs:linphone_core_get_audio_codecs(LC)]; + + 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); + + [lm lpConfigSetInt:[self integerForKey:@"audio_codec_bitrate_limit_preference"] + forKey:@"codec_bitrate_limit" + inSection:@"audio"]; + + BOOL voice_processing = [self boolForKey:@"voiceproc_preference"]; + [lm lpConfigSetInt:voice_processing forKey:@"voiceproc_preference"]; + + BOOL equalizer = [self boolForKey:@"eq_active"]; + [lm lpConfigSetBool:equalizer forKey:@"eq_active" inSection:@"sound"]; + + [LinphoneManager.instance configureVbrCodecs]; + + NSString *au_device = @"AU: Audio Unit Receiver"; + if (!voice_processing) { + au_device = @"AU: Audio Unit NoVoiceProc"; } - - // audio section - { - [self synchronizeCodecs:linphone_core_get_audio_codecs(LC)]; - - 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); - - [lm lpConfigSetInt:[self integerForKey:@"audio_codec_bitrate_limit_preference"] - forKey:@"codec_bitrate_limit" - inSection:@"audio"]; - - BOOL voice_processing = [self boolForKey:@"voiceproc_preference"]; - [lm lpConfigSetInt:voice_processing forKey:@"voiceproc_preference"]; - - BOOL equalizer = [self boolForKey:@"eq_active"]; - [lm lpConfigSetBool:equalizer forKey:@"eq_active" inSection:@"sound"]; - - [LinphoneManager.instance configureVbrCodecs]; - - NSString *au_device = @"AU: Audio Unit Receiver"; - if (!voice_processing) { - au_device = @"AU: Audio Unit NoVoiceProc"; - } - linphone_core_set_capture_device(LC, [au_device UTF8String]); - linphone_core_set_playback_device(LC, [au_device UTF8String]); + linphone_core_set_capture_device(LC, [au_device UTF8String]); + linphone_core_set_playback_device(LC, [au_device UTF8String]); } // video section From 654bf04c8cf6b7ecb12d5b5b835b1d5708eabd5c Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 8 Feb 2017 10:41:41 +0100 Subject: [PATCH 071/180] Fix compilation issue --- Classes/CallSideMenuView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/CallSideMenuView.m b/Classes/CallSideMenuView.m index 2941d1fb7..9cd6b22a6 100644 --- a/Classes/CallSideMenuView.m +++ b/Classes/CallSideMenuView.m @@ -151,7 +151,7 @@ [result appendString:@"\n"]; // RTP stats section (packet loss count, etc) - rtp_stats_t rtp_stats = linphone_call_stats_get_rtp_stats(stats); + const rtp_stats_t rtp_stats = *linphone_call_stats_get_rtp_stats(stats); [result appendString:[NSString stringWithFormat: @"RTP packets: %llu total, %lld cum loss, %llu discarded, %llu OOT, %llu bad", From fa16c75801effd226d47148a94b60b65b18b8b3e Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 8 Feb 2017 10:42:37 +0100 Subject: [PATCH 072/180] Workaround native contact with exchange --- Classes/Contact.m | 128 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 125 insertions(+), 3 deletions(-) diff --git a/Classes/Contact.m b/Classes/Contact.m index 0445d8eb7..033876489 100644 --- a/Classes/Contact.m +++ b/Classes/Contact.m @@ -7,6 +7,7 @@ // #import "Contact.h" +#import "ContactsListView.h" @implementation Contact @@ -187,9 +188,10 @@ - (BOOL)setSipAddress:(NSString *)sip atIndex:(NSInteger)index { BOOL ret = FALSE; if (_person) { + NSString *normSip = [self setOrCreateSipContactEntry:index withValue:sip]; NSDictionary *lDict = @{ - (NSString *) kABPersonInstantMessageUsernameKey : sip, (NSString *) - kABPersonInstantMessageServiceKey : LinphoneManager.instance.contactSipField + (NSString *)kABPersonInstantMessageUsernameKey : normSip ? normSip : sip, + (NSString *)kABPersonInstantMessageServiceKey : LinphoneManager.instance.contactSipField }; ret = [self replaceInProperty:kABPersonInstantMessageProperty value:(__bridge CFTypeRef)(lDict) atIndex:index]; @@ -336,6 +338,46 @@ } #pragma mark - ABPerson utils +- (NSString *)setOrCreateSipContactEntry:(NSInteger)index withValue:(NSString *)value { + ABMultiValueRef lcMap = ABRecordCopyValue(_person, kABPersonInstantMessageProperty); + ABMutableMultiValueRef lMap; + NSString *ret = NULL; + if (lcMap != NULL) { + lMap = ABMultiValueCreateMutableCopy(lcMap); + CFRelease(lcMap); + } else { + lMap = ABMultiValueCreateMutable(kABStringPropertyType); + } + CFErrorRef error = NULL; + + NSDictionary *lDict = @{ + (NSString *)kABPersonInstantMessageUsernameKey : value, + (NSString *)kABPersonInstantMessageServiceKey : [LinphoneManager instance].contactSipField + }; + // CFStringRef label = (__bridge CFStringRef)[[NSBundle mainBundle] + // objectForInfoDictionaryKey:@"CFBundleDisplayName"]; + // ABMultiValueAddValueAndLabel(lMap, (__bridge CFTypeRef)lDict, label, nil); + ABMultiValueReplaceLabelAtIndex(lMap, (__bridge CFTypeRef)(lDict), index); + if (!ABRecordSetValue(_person, kABPersonInstantMessageProperty, lMap, &error)) { + LOGI(@"Can't set contact with value [%@] cause [%@]", value, [(__bridge NSError *)error localizedDescription]); + CFRelease(lMap); + } else { + CFRelease(lMap); + + /*check if message type is kept or not*/ + lcMap = ABRecordCopyValue(_person, kABPersonInstantMessageProperty); + lMap = ABMultiValueCreateMutableCopy(lcMap); + CFRelease(lcMap); + lDict = CFBridgingRelease(ABMultiValueCopyValueAtIndex(lMap, index)); + + if ([lDict objectForKey:(__bridge NSString *)kABPersonInstantMessageServiceKey] == nil) { + /*too bad probably a gtalk number, storing uri*/ + ret = [FastAddressBook normalizeSipURI:value]; + } + CFRelease(lMap); + } + return ret ? ret : value; +} - (void)loadProperties { // First and Last name @@ -369,7 +411,7 @@ } // SIP (IM) - { + /*{ _sipAddresses = [[NSMutableArray alloc] init]; ABMultiValueRef map = ABRecordCopyValue(_person, kABPersonInstantMessageProperty); if (map) { @@ -389,8 +431,88 @@ } CFRelease(map); } + }*/ + + // SIP (IM) + { + _sipAddresses = [[NSMutableArray alloc] init]; + ABMultiValueRef lMap = ABRecordCopyValue(_person, kABPersonInstantMessageProperty); + if (lMap) { + for (int i = 0; i < ABMultiValueGetCount(lMap); ++i) { + CFDictionaryRef lDict = ABMultiValueCopyValueAtIndex(lMap, i); + BOOL add = false; + if (CFDictionaryContainsKey(lDict, kABPersonInstantMessageServiceKey)) { + if (CFStringCompare((CFStringRef)[LinphoneManager instance].contactSipField, + CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey), + kCFCompareCaseInsensitive) == 0) { + add = true; + } + } else { + // check domain + LinphoneAddress *address = linphone_address_new( + [(NSString *)CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey) UTF8String]); + if (address) { + if ([[ContactSelection getSipFilter] compare:@"*" options:NSCaseInsensitiveSearch] == + NSOrderedSame) { + add = true; + } else { + NSString *domain = [NSString stringWithCString:linphone_address_get_domain(address) + encoding:[NSString defaultCStringEncoding]]; + add = [domain compare:[ContactSelection getSipFilter] options:NSCaseInsensitiveSearch] == + NSOrderedSame; + } + linphone_address_destroy(address); + } else { + add = false; + } + } + if (add) { + NSString *value = (NSString *)(CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey)); + if (value != NULL) { + [_sipAddresses addObject:value]; + } + } + CFRelease(lDict); + } + CFRelease(lMap); + } } + // SIP + /*{ + _sipAddresses = [[NSMutableArray alloc] init]; + ABMultiValueRef lMap = ABRecordCopyValue(_person, kABPersonInstantMessageProperty); + if (lMap) { + for (int i = 0; i < ABMultiValueGetCount(lMap); ++i) { + CFDictionaryRef lDict = ABMultiValueCopyValueAtIndex(lMap, i); + BOOL add = false; + if (CFDictionaryContainsKey(lDict, kABPersonInstantMessageServiceKey)) { + if (CFStringCompare((CFStringRef)LinphoneManager.instance.contactSipField, + CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey), + kCFCompareCaseInsensitive) == 0) { + add = true; + } + } else { + add = true; + } + if (add) { + NSString *lValue = + (__bridge NSString *)CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey); + if(lValue) { + NSString *lNormalizedKey = [FastAddressBook normalizeSipURI:lValue]; + if (lNormalizedKey != NULL) { + [_sipAddresses addObject:lNormalizedKey]; + } else { + [_sipAddresses addObject:lValue]; + } + } + } + CFRelease(lDict); + } + CFRelease(lMap); + } + }*/ + // Email { _emails = [[NSMutableArray alloc] init]; From b9f1b84eb331ed743ebdfb10a10402c15c09d90a Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 8 Feb 2017 10:46:38 +0100 Subject: [PATCH 073/180] minor change in changelog --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10db23829..0716eb485 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ Group changes to describe their impact on the project, as follows: ## [Unreleased] -## [3.16] - 2017-09-01 +## [3.16.1] - 2017-09-01 ### Added - Support of CallKit @@ -99,7 +99,7 @@ consider inputs to be phone numbers, otherwise SIP addresses. ### Added - Initial version -[Unreleased]: https://github.com/BelledonneCommunications/linphone-iphone/compare/3.15...HEAD +[Unreleased]: https://github.com/BelledonneCommunications/linphone-iphone/compare/3.16...HEAD [3.15]: http://www.linphone.org/releases/ios/liblinphone-iphone-sdk-3.14.12.zip [3.13.9]: http://www.linphone.org/releases/ios/liblinphone-iphone-sdk-3.13.9.zip [plugins registration]: https://github.com/BelledonneCommunications/linphone-iphone/blob/3.12.1/Classes/LinphoneManager.m#L1461-L1472 From 8b0692404fd11c76b89ada878a2404cf1e476b71 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 9 Feb 2017 11:57:33 +0100 Subject: [PATCH 074/180] little fix in contact display --- Classes/Contact.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Contact.m b/Classes/Contact.m index 033876489..2558ccb9a 100644 --- a/Classes/Contact.m +++ b/Classes/Contact.m @@ -200,7 +200,7 @@ } if (ret) { - _sipAddresses[index] = sip; + _sipAddresses[index] = normSip ? normSip : normSip ? normSip : sip; } return ret; } From 7d7fe6491d88ce94773a8eef48973af887f5df67 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 9 Feb 2017 15:19:13 +0100 Subject: [PATCH 075/180] little fix --- Classes/Contact.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Classes/Contact.m b/Classes/Contact.m index 2558ccb9a..d2b552b87 100644 --- a/Classes/Contact.m +++ b/Classes/Contact.m @@ -187,8 +187,9 @@ - (BOOL)setSipAddress:(NSString *)sip atIndex:(NSInteger)index { BOOL ret = FALSE; + NSString *normSip = NULL; if (_person) { - NSString *normSip = [self setOrCreateSipContactEntry:index withValue:sip]; + normSip = [self setOrCreateSipContactEntry:index withValue:sip]; NSDictionary *lDict = @{ (NSString *)kABPersonInstantMessageUsernameKey : normSip ? normSip : sip, (NSString *)kABPersonInstantMessageServiceKey : LinphoneManager.instance.contactSipField @@ -200,7 +201,7 @@ } if (ret) { - _sipAddresses[index] = normSip ? normSip : normSip ? normSip : sip; + _sipAddresses[index] = normSip ? normSip : sip; } return ret; } From d3ee6e63149cf65c4fe5529f4cb8c2526427a517 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 10 Feb 2017 17:19:20 +0100 Subject: [PATCH 076/180] update mbedtls --- submodules/externals/mbedtls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/externals/mbedtls b/submodules/externals/mbedtls index 02d64e46b..e74e833d8 160000 --- a/submodules/externals/mbedtls +++ b/submodules/externals/mbedtls @@ -1 +1 @@ -Subproject commit 02d64e46be98442e1f8ca001d6d5c62ff48e36a3 +Subproject commit e74e833d8c44be2b47c74e9bbd1b84b17344db96 From f5db561fb73ede63ea46c0c857819519434429f6 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 10 Feb 2017 17:25:10 +0100 Subject: [PATCH 077/180] update submodules --- submodules/bctoolbox | 2 +- submodules/belcard | 2 +- submodules/belle-sip | 2 +- submodules/belr | 2 +- submodules/bzrtp | 2 +- submodules/cmake-builder | 2 +- submodules/linphone | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/submodules/bctoolbox b/submodules/bctoolbox index b2a91b1f5..4c679a7fd 160000 --- a/submodules/bctoolbox +++ b/submodules/bctoolbox @@ -1 +1 @@ -Subproject commit b2a91b1f58ecf0941b3c599a0926a2940fd236b6 +Subproject commit 4c679a7fd653e81e084b803ad627a2dfd5d3eb51 diff --git a/submodules/belcard b/submodules/belcard index ebd037585..1a1c5e176 160000 --- a/submodules/belcard +++ b/submodules/belcard @@ -1 +1 @@ -Subproject commit ebd037585965ce80f01be5290abc7e5455009eb8 +Subproject commit 1a1c5e176b737b1c8d8e24023c4a5ac8eaa50fe1 diff --git a/submodules/belle-sip b/submodules/belle-sip index 29aded981..bcb9b2389 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 29aded981b43ac8ba3bddc5a181ce478ecd2d277 +Subproject commit bcb9b2389c2e7f55813c59306bf42f58b3a6b633 diff --git a/submodules/belr b/submodules/belr index 8a7f0868a..e9acc91a8 160000 --- a/submodules/belr +++ b/submodules/belr @@ -1 +1 @@ -Subproject commit 8a7f0868a7d35f86ff5fa422c7333f113d935e0f +Subproject commit e9acc91a8f6cc48c0a52585ddafea3bb62622776 diff --git a/submodules/bzrtp b/submodules/bzrtp index 2b234b08e..268eec854 160000 --- a/submodules/bzrtp +++ b/submodules/bzrtp @@ -1 +1 @@ -Subproject commit 2b234b08e6c85babbcd76651ab432b91c76aaff4 +Subproject commit 268eec854909b1d70a4ce4b6c19f6cef243247d5 diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 3f5982e7d..326a0976c 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 3f5982e7d5aefe5f80e075f37fd952f025daa600 +Subproject commit 326a0976c0b42927056d39d99a396a2d0a8fc3da diff --git a/submodules/linphone b/submodules/linphone index c61c5e133..705520418 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit c61c5e13398fb2839b86c1570a34ea6767d73d30 +Subproject commit 7055204182b450b2cd8ca79648f6e54c3b5b88f2 From cd325eefe9dd9366de2c098a8a85c4652b5b7b58 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Sun, 12 Feb 2017 11:21:33 +0100 Subject: [PATCH 078/180] Update linphone (fixes crashes in test suite) --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 705520418..a45d9eec9 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 7055204182b450b2cd8ca79648f6e54c3b5b88f2 +Subproject commit a45d9eec9033f078c9721569b5bfe112445f918c From 867969d19e748f0007865fe8600559ca13a7f240 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 13 Feb 2017 11:03:57 +0100 Subject: [PATCH 079/180] strict SDK compilation on IOS --- submodules/cmake-builder | 2 +- submodules/linphone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 326a0976c..78045c667 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 326a0976c0b42927056d39d99a396a2d0a8fc3da +Subproject commit 78045c667a2a208726ff5df213147e4ff03bc266 diff --git a/submodules/linphone b/submodules/linphone index a45d9eec9..7a64dd106 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit a45d9eec9033f078c9721569b5bfe112445f918c +Subproject commit 7a64dd10666fb6c25955101f3aca2df417a6b90b From d8166d9ea6daf2996ef0673da22bbb808ca1272f Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 13 Feb 2017 12:19:12 +0100 Subject: [PATCH 080/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 7a64dd106..026304864 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 7a64dd10666fb6c25955101f3aca2df417a6b90b +Subproject commit 0263048643f59da81ea33e6df3e802330ea5a3de From 4611fbafd9e00dd935cf8c26730f79388b18cd32 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 13 Feb 2017 13:29:04 +0100 Subject: [PATCH 081/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 026304864..7276f565f 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 0263048643f59da81ea33e6df3e802330ea5a3de +Subproject commit 7276f565f236851931872c4d8cf41b110a82233b From 35cdeb5549c03bc3ae3315c13d1a54e831810245 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 13 Feb 2017 15:06:00 +0100 Subject: [PATCH 082/180] Create log and xml file only on simulator --- LiblinphoneTester/MasterView.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/LiblinphoneTester/MasterView.m b/LiblinphoneTester/MasterView.m index 8fe3cf8d9..210ac73e7 100644 --- a/LiblinphoneTester/MasterView.m +++ b/LiblinphoneTester/MasterView.m @@ -9,9 +9,10 @@ #import "MasterView.h" #import "DetailTableView.h" +#import "Log.h" +#include "TargetConditionals.h" #include "linphone/liblinphone_tester.h" #include "mediastreamer2/msutils.h" -#import "Log.h" @interface MasterView () { NSMutableArray *_objects; @@ -62,12 +63,14 @@ void tester_logs_handler(int level, const char *fmt, va_list args) { LOGI(@"Bundle path: %@", bundlePath); LOGI(@"Writable path: %@", writablePath); +#if (TARGET_OS_SIMULATOR) char *xmlFile = bc_tester_file("LibLinphoneIOS.xml"); char *args[] = {"--xml-file", xmlFile}; bc_tester_parse_args(2, args, 0); char *logFile = bc_tester_file("LibLinphoneIOS.txt"); liblinphone_tester_set_log_file(logFile); +#endif liblinphonetester_ipv6 = true; From f1f4f6a01419496d84bbbdfa6c51b1f4ef941fb6 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 14 Feb 2017 09:07:03 +0100 Subject: [PATCH 083/180] Do not normalize Sip Addresse until it's finished --- Classes/Contact.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Contact.m b/Classes/Contact.m index d2b552b87..87b005abd 100644 --- a/Classes/Contact.m +++ b/Classes/Contact.m @@ -201,7 +201,7 @@ } if (ret) { - _sipAddresses[index] = normSip ? normSip : sip; + _sipAddresses[index] = sip; } return ret; } From 5f94efe4de472b10e953a31d8e5a7f5179efe165 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 14 Feb 2017 10:41:22 +0100 Subject: [PATCH 084/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 7276f565f..8c1f7104f 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 7276f565f236851931872c4d8cf41b110a82233b +Subproject commit 8c1f7104f0b4e7c3ff81e2f7f5ccbcd421840fa3 From c229ea3f0ff0549302bf08a1a08aeeee9abd3b55 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 14 Feb 2017 15:57:58 +0100 Subject: [PATCH 085/180] Right call sound --- Classes/ProviderDelegate.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/ProviderDelegate.m b/Classes/ProviderDelegate.m index 5d334d564..61f577c69 100644 --- a/Classes/ProviderDelegate.m +++ b/Classes/ProviderDelegate.m @@ -35,7 +35,7 @@ - (void)config { CXProviderConfiguration *config = [[CXProviderConfiguration alloc] initWithLocalizedName:[NSBundle.mainBundle objectForInfoDictionaryKey:@"CFBundleDisplayName"]]; - config.ringtoneSound = @"shortring.caf"; + config.ringtoneSound = @"notes_of_the_optimistic.caf"; config.supportsVideo = FALSE; config.iconTemplateImageData = UIImagePNGRepresentation([UIImage imageNamed:@"callkit_logo"]); From 6f109a3fc0029be55e4ed42e7c24062e5754bb74 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 14 Feb 2017 17:16:46 +0100 Subject: [PATCH 086/180] Apply hack of exchange to new contacts --- Classes/Contact.h | 1 + Classes/Contact.m | 12 ++++++------ Classes/ContactDetailsView.m | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Classes/Contact.h b/Classes/Contact.h index 846884826..edeb22d0c 100644 --- a/Classes/Contact.h +++ b/Classes/Contact.h @@ -21,6 +21,7 @@ @property(nonatomic, strong) NSMutableArray *sipAddresses; @property(nonatomic, strong) NSMutableArray *emails; @property(nonatomic, strong) NSMutableArray *phoneNumbers; +@property BOOL added; - (void)setAvatar:(UIImage *)avatar; - (UIImage *)avatar:(BOOL)thumbnail; diff --git a/Classes/Contact.m b/Classes/Contact.m index 87b005abd..f3d3e959e 100644 --- a/Classes/Contact.m +++ b/Classes/Contact.m @@ -23,7 +23,7 @@ self = [super init]; _person = aperson; _friend = afriend ? linphone_friend_ref(afriend) : NULL; - + _added = FALSE; if (_person) { [self loadProperties]; @@ -355,11 +355,8 @@ (NSString *)kABPersonInstantMessageUsernameKey : value, (NSString *)kABPersonInstantMessageServiceKey : [LinphoneManager instance].contactSipField }; - // CFStringRef label = (__bridge CFStringRef)[[NSBundle mainBundle] - // objectForInfoDictionaryKey:@"CFBundleDisplayName"]; - // ABMultiValueAddValueAndLabel(lMap, (__bridge CFTypeRef)lDict, label, nil); - ABMultiValueReplaceLabelAtIndex(lMap, (__bridge CFTypeRef)(lDict), index); - if (!ABRecordSetValue(_person, kABPersonInstantMessageProperty, lMap, &error)) { + + if (![self replaceInProperty:kABPersonInstantMessageProperty value:(__bridge CFTypeRef)(lDict) atIndex:index]) { LOGI(@"Can't set contact with value [%@] cause [%@]", value, [(__bridge NSError *)error localizedDescription]); CFRelease(lMap); } else { @@ -374,6 +371,9 @@ if ([lDict objectForKey:(__bridge NSString *)kABPersonInstantMessageServiceKey] == nil) { /*too bad probably a gtalk number, storing uri*/ ret = [FastAddressBook normalizeSipURI:value]; + } else if (!_added) { + _added = TRUE; + [LinphoneManager.instance.fastAddressBook saveContact:self]; } CFRelease(lMap); } diff --git a/Classes/ContactDetailsView.m b/Classes/ContactDetailsView.m index ace16b470..4374fd214 100644 --- a/Classes/ContactDetailsView.m +++ b/Classes/ContactDetailsView.m @@ -384,6 +384,25 @@ static UICompositeViewDescription *compositeDescription = nil; } [self saveData]; [self.tableController.tableView reloadData]; + } else { + BOOL rm = TRUE; + for (NSString *sip in _contact.sipAddresses) { + if (![sip isEqualToString:@""]) { + rm = FALSE; + break; + } + } + if (rm) { + for (NSString *phone in _contact.phoneNumbers) { + if (![phone isEqualToString:@""]) { + rm = FALSE; + break; + } + } + } + if (rm) { + [LinphoneManager.instance.fastAddressBook removeContact:_contact]; + } } [self setEditing:FALSE]; From 0144bf8ac1f0442c8ed58907c0a191e8f187f1a2 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 14 Feb 2017 17:34:39 +0100 Subject: [PATCH 087/180] clean empty contact --- Classes/ContactDetailsView.m | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Classes/ContactDetailsView.m b/Classes/ContactDetailsView.m index 4374fd214..727a19190 100644 --- a/Classes/ContactDetailsView.m +++ b/Classes/ContactDetailsView.m @@ -260,6 +260,24 @@ self.tmpContact = NULL; [self saveData]; } + BOOL rm = TRUE; + for (NSString *sip in _contact.sipAddresses) { + if (![sip isEqualToString:@""]) { + rm = FALSE; + break; + } + } + if (rm) { + for (NSString *phone in _contact.phoneNumbers) { + if (![phone isEqualToString:@""]) { + rm = FALSE; + break; + } + } + } + if (rm) { + [LinphoneManager.instance.fastAddressBook removeContact:_contact]; + } } #pragma mark - UICompositeViewDelegate Functions From 68e98afb4baca994df0531bfd0957d8d8c8c6ef5 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 14 Feb 2017 17:39:08 +0100 Subject: [PATCH 088/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 8c1f7104f..1052d9fe4 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 8c1f7104f0b4e7c3ff81e2f7f5ccbcd421840fa3 +Subproject commit 1052d9fe49095e9a739122adfc402ac4d851d56f From 345efe739fa9ef16fc2c2858a4a77b8bee3c4135 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 15 Feb 2017 09:19:17 +0100 Subject: [PATCH 089/180] reload full contact list when view appears --- Classes/ContactsListView.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Classes/ContactsListView.m b/Classes/ContactsListView.m index cc9d4d127..533abbdfd 100644 --- a/Classes/ContactsListView.m +++ b/Classes/ContactsListView.m @@ -120,7 +120,8 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - + [ContactSelection setNameOrEmailFilter:@""]; + [tableController loadData]; _searchBar.showsCancelButton = (_searchBar.text.length > 0); if (tableController.isEditing) { From 1c2f92530c75d85ad631c00b761af865a3b8fe0b Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 15 Feb 2017 10:16:12 +0100 Subject: [PATCH 090/180] update linphone and cmake-builder --- submodules/cmake-builder | 2 +- submodules/linphone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 78045c667..4d7cd40cf 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 78045c667a2a208726ff5df213147e4ff03bc266 +Subproject commit 4d7cd40cf218624b0365e5e36efc6040d6a56bc8 diff --git a/submodules/linphone b/submodules/linphone index 1052d9fe4..3bc8cb17a 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 1052d9fe49095e9a739122adfc402ac4d851d56f +Subproject commit 3bc8cb17af1a711f1d635813e6ddcf298dd9305f From eca35807b23c24d1a7ffbc6998ab5d8f249134bf Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 15 Feb 2017 10:39:39 +0100 Subject: [PATCH 091/180] Do not use CallKit UI on simulator --- Classes/LinphoneManager.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index d95fcefe6..fe600da76 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -672,6 +672,7 @@ static void linphone_iphone_display_status(struct _LinphoneCore *lc, const char if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max && call && (linphone_core_get_calls_nb(LC) < 2)) { +#if !TARGET_IPHONE_SIMULATOR NSString *callId = [NSString stringWithUTF8String:linphone_call_log_get_call_id(linphone_call_get_call_log(call))]; NSString *address = [FastAddressBook displayNameForAddress:linphone_call_get_remote_address(call)]; @@ -684,6 +685,9 @@ static void linphone_iphone_display_status(struct _LinphoneCore *lc, const char linphone_core_get_video_policy(LC)->automatically_accept && linphone_call_params_video_enabled(linphone_call_get_remote_params(call))); [LinphoneManager.instance.providerDelegate reportIncomingCallwithUUID:uuid handle:address video:video]; +#else + [PhoneMainView.instance displayIncomingCall:call]; +#endif } else if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) { // Create a UNNotification UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init]; From 0b48ad284b60d7a8fe473e1bc9f60295ad5d1968 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Wed, 15 Feb 2017 11:12:58 +0100 Subject: [PATCH 092/180] set correct SIP address in chatroom when phone number linked --- Classes/ChatConversationCreateTableView.m | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Classes/ChatConversationCreateTableView.m b/Classes/ChatConversationCreateTableView.m index 374836d2f..aaa9cd5e9 100644 --- a/Classes/ChatConversationCreateTableView.m +++ b/Classes/ChatConversationCreateTableView.m @@ -84,8 +84,14 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; - LinphoneChatRoom *room = linphone_core_get_chat_room_from_uri( - LC, ((NSString *)[_contacts.allKeys objectAtIndex:indexPath.row]).UTF8String); + NSString *uri; + LinphoneAddress *addr = [LinphoneUtils normalizeSipOrPhoneAddress:[_contacts.allKeys objectAtIndex:indexPath.row]]; + if (addr) { + uri = [NSString stringWithUTF8String:linphone_address_as_string(addr)]; + } else { + uri = [_contacts.allKeys objectAtIndex:indexPath.row]; + } + LinphoneChatRoom *room = linphone_core_get_chat_room_from_uri(LC, uri.UTF8String); if (!room) { [PhoneMainView.instance popCurrentView]; UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Invalid address", nil) From a8fc4b9a16033f5466015f0983098781c306055a Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 16 Feb 2017 14:23:38 +0100 Subject: [PATCH 093/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 3bc8cb17a..0f45a2ace 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 3bc8cb17af1a711f1d635813e6ddcf298dd9305f +Subproject commit 0f45a2acee5d7811834486f69f57f8018369d9c9 From 5f8abe5ce7282333abfa15a75ae6d0173a2f85cb Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 16 Feb 2017 16:32:14 +0100 Subject: [PATCH 094/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 0f45a2ace..8b82c64af 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 0f45a2acee5d7811834486f69f57f8018369d9c9 +Subproject commit 8b82c64af9f754b99371a8be1cd4c4324c134daa From 076d0c31aeadd5a15d496005710e03bfcc6ce2dc Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 16 Feb 2017 17:09:03 +0100 Subject: [PATCH 095/180] Display contact name as much as possible --- Classes/LinphoneManager.m | 1 - Classes/Utils/FastAddressBook.m | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index fe600da76..ffcf9d123 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -675,7 +675,6 @@ static void linphone_iphone_display_status(struct _LinphoneCore *lc, const char #if !TARGET_IPHONE_SIMULATOR NSString *callId = [NSString stringWithUTF8String:linphone_call_log_get_call_id(linphone_call_get_call_log(call))]; - NSString *address = [FastAddressBook displayNameForAddress:linphone_call_get_remote_address(call)]; NSUUID *uuid = [NSUUID UUID]; [LinphoneManager.instance.providerDelegate.calls setObject:callId forKey:uuid]; diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index 0e4c5ffee..fb61cda7a 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -311,6 +311,10 @@ void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void ret = [NSString stringWithUTF8String:lUserName]; } } + LinphoneFriend *friend = linphone_core_find_friend(LC, addr); + if (friend) { + ret = [NSString stringWithUTF8String:linphone_friend_get_name(friend)]; + } return ret; } From a375e855c764408d0c7944ccfc1a426c07bdac7a Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Thu, 16 Feb 2017 17:14:07 +0100 Subject: [PATCH 096/180] Better management of search for display name --- Classes/Utils/FastAddressBook.m | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index fb61cda7a..7b7abcc70 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -300,8 +300,11 @@ void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void + (NSString *)displayNameForAddress:(const LinphoneAddress *)addr { NSString *ret = NSLocalizedString(@"Unknown", nil); Contact *contact = [FastAddressBook getContactWithAddress:addr]; + LinphoneFriend *friend = linphone_core_find_friend(LC, addr); if (contact) { ret = [FastAddressBook displayNameForContact:contact]; + } else if (friend) { + ret = [NSString stringWithUTF8String:linphone_friend_get_name(friend)]; } else { const char *lDisplayName = linphone_address_get_display_name(addr); const char *lUserName = linphone_address_get_username(addr); @@ -311,10 +314,6 @@ void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void ret = [NSString stringWithUTF8String:lUserName]; } } - LinphoneFriend *friend = linphone_core_find_friend(LC, addr); - if (friend) { - ret = [NSString stringWithUTF8String:linphone_friend_get_name(friend)]; - } return ret; } From e89ef1bb41df3c324d31bd2f75e9e82a27025bc1 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 17 Feb 2017 09:23:45 +0100 Subject: [PATCH 097/180] update translations --- .../LinphoneUI/es.lproj/StatusBarView.strings | Bin 0 -> 1068 bytes .../LinphoneUI/es.lproj/TabBarView.strings | Bin 0 -> 3710 bytes .../es.lproj/UICallConferenceCell.strings | Bin 0 -> 1536 bytes .../es.lproj/UICallPausedCell.strings | Bin 0 -> 1536 bytes .../es.lproj/UIChatBubblePhotoCell.strings | Bin 0 -> 2398 bytes .../es.lproj/UIChatBubbleTextCell.strings | Bin 0 -> 1640 bytes .../LinphoneUI/es.lproj/UIChatCell.strings | Bin 0 -> 1308 bytes .../es.lproj/UIChatCreateCell.strings | Bin 0 -> 462 bytes .../es.lproj/UIConfirmationDialog.strings | Bin 0 -> 822 bytes .../LinphoneUI/es.lproj/UIContactCell.strings | Bin 0 -> 406 bytes .../es.lproj/UIContactDetailsCell.strings | Bin 0 -> 776 bytes .../LinphoneUI/es.lproj/UIHistoryCell.strings | Bin 0 -> 478 bytes .../LinphoneUI/ka.lproj/StatusBarView.strings | Bin 0 -> 1094 bytes .../LinphoneUI/ka.lproj/TabBarView.strings | Bin 0 -> 3742 bytes .../ka.lproj/UICallConferenceCell.strings | Bin 0 -> 1532 bytes .../ka.lproj/UICallPausedCell.strings | Bin 0 -> 1532 bytes .../ka.lproj/UIChatBubblePhotoCell.strings | Bin 0 -> 2408 bytes .../ka.lproj/UIChatBubbleTextCell.strings | Bin 0 -> 1650 bytes .../LinphoneUI/ka.lproj/UIChatCell.strings | Bin 0 -> 1292 bytes .../ka.lproj/UIChatCreateCell.strings | Bin 0 -> 462 bytes .../ka.lproj/UIConfirmationDialog.strings | Bin 0 -> 838 bytes .../LinphoneUI/ka.lproj/UIContactCell.strings | Bin 0 -> 392 bytes .../ka.lproj/UIContactDetailsCell.strings | Bin 0 -> 772 bytes .../LinphoneUI/ka.lproj/UIHistoryCell.strings | Bin 0 -> 464 bytes Classes/cs.lproj/AboutView.strings | Bin 0 -> 3778 bytes Classes/cs.lproj/AssistantLinkView.strings | Bin 0 -> 6488 bytes Classes/cs.lproj/AssistantView.strings | Bin 0 -> 708 bytes Classes/cs.lproj/AssistantViewScreens.strings | Bin 0 -> 34130 bytes Classes/cs.lproj/ContactsListView.strings | Bin 0 -> 2178 bytes Classes/cs.lproj/FirstLoginView.strings | Bin 0 -> 7134 bytes Classes/cs.lproj/SettingsView.strings | Bin 0 -> 728 bytes Classes/cs.lproj/ShopView.strings | Bin 0 -> 2548 bytes Classes/es.lproj/AboutView.strings | Bin 3794 -> 3798 bytes Classes/es.lproj/AssistantLinkView.strings | Bin 6498 -> 6644 bytes Classes/es.lproj/AssistantView.strings | Bin 0 -> 716 bytes Classes/es.lproj/AssistantViewScreens.strings | Bin 0 -> 34842 bytes Classes/es.lproj/CallIncomingView.strings | Bin 0 -> 4546 bytes Classes/es.lproj/CallOutgoingView.strings | Bin 0 -> 5686 bytes Classes/es.lproj/CallView.strings | Bin 0 -> 18430 bytes Classes/es.lproj/CallView~ipad.strings | Bin 0 -> 18430 bytes .../ChatConversationCreateView.strings | Bin 0 -> 250 bytes Classes/es.lproj/ChatConversationView.strings | Bin 0 -> 6046 bytes Classes/es.lproj/ChatsListView.strings | Bin 0 -> 1608 bytes Classes/es.lproj/ContactDetailsView.strings | Bin 0 -> 2958 bytes Classes/es.lproj/ContactsListView.strings | Bin 2190 -> 2294 bytes Classes/es.lproj/CountryListView.strings | Bin 0 -> 490 bytes Classes/es.lproj/DialerView.strings | Bin 0 -> 3736 bytes Classes/es.lproj/DialerView~ipad.strings | Bin 0 -> 8590 bytes Classes/es.lproj/FirstLoginView.strings | Bin 0 -> 7230 bytes Classes/es.lproj/HistoryDetailsView.strings | Bin 0 -> 4774 bytes Classes/es.lproj/HistoryListView.strings | Bin 0 -> 1874 bytes Classes/es.lproj/ImageView.strings | Bin 0 -> 290 bytes Classes/es.lproj/SettingsView.strings | Bin 740 -> 752 bytes Classes/es.lproj/ShopView.strings | Bin 2570 -> 2582 bytes Classes/es.lproj/SideMenuView.strings | Bin 0 -> 478 bytes Classes/es.lproj/SideMenuView~ipad.strings | Bin 0 -> 478 bytes Classes/ka.lproj/AboutView.strings | Bin 0 -> 3786 bytes Classes/ka.lproj/AssistantLinkView.strings | Bin 0 -> 6698 bytes Classes/ka.lproj/AssistantView.strings | Bin 0 -> 712 bytes Classes/ka.lproj/AssistantViewScreens.strings | Bin 0 -> 35436 bytes Classes/ka.lproj/CallIncomingView.strings | Bin 0 -> 4518 bytes Classes/ka.lproj/CallOutgoingView.strings | Bin 0 -> 5674 bytes Classes/ka.lproj/CallView.strings | Bin 0 -> 18550 bytes Classes/ka.lproj/CallView~ipad.strings | Bin 0 -> 18550 bytes .../ChatConversationCreateView.strings | Bin 0 -> 248 bytes Classes/ka.lproj/ChatConversationView.strings | Bin 0 -> 6030 bytes Classes/ka.lproj/ChatsListView.strings | Bin 0 -> 1608 bytes Classes/ka.lproj/ContactDetailsView.strings | Bin 0 -> 2918 bytes Classes/ka.lproj/ContactsListView.strings | Bin 0 -> 2262 bytes Classes/ka.lproj/CountryListView.strings | Bin 0 -> 482 bytes Classes/ka.lproj/DialerView.strings | Bin 0 -> 3726 bytes Classes/ka.lproj/DialerView~ipad.strings | Bin 0 -> 8566 bytes Classes/ka.lproj/FirstLoginView.strings | Bin 0 -> 7566 bytes Classes/ka.lproj/HistoryDetailsView.strings | Bin 0 -> 4686 bytes Classes/ka.lproj/HistoryListView.strings | Bin 0 -> 1872 bytes Classes/ka.lproj/ImageView.strings | Bin 0 -> 288 bytes Classes/ka.lproj/SettingsView.strings | Bin 0 -> 746 bytes Classes/ka.lproj/ShopView.strings | Bin 0 -> 2576 bytes Classes/ka.lproj/SideMenuView.strings | Bin 0 -> 478 bytes Classes/ka.lproj/SideMenuView~ipad.strings | Bin 0 -> 478 bytes Resources/ar.lproj/Localizable.strings | Bin 60582 -> 60392 bytes Resources/de.lproj/Localizable.strings | Bin 65892 -> 66000 bytes Resources/es.lproj/Localizable.strings | Bin 0 -> 65562 bytes Resources/es_AR.lproj/Localizable.strings | Bin 65518 -> 65562 bytes Resources/ka.lproj/Localizable.strings | Bin 0 -> 63194 bytes Resources/pt_BR.lproj/Localizable.strings | Bin 62824 -> 62974 bytes Resources/tr.lproj/Localizable.strings | Bin 63078 -> 63102 bytes .../ar.lproj/Chat.strings | Bin 256 -> 254 bytes .../cs.lproj/Account.strings | Bin 0 -> 1180 bytes .../cs.lproj/Advanced.strings | Bin 0 -> 964 bytes .../de.lproj/Chat.strings | Bin 252 -> 268 bytes .../es.lproj/Account.strings | Bin 0 -> 1292 bytes .../es.lproj/Advanced.strings | Bin 0 -> 1112 bytes .../es.lproj/Audio.strings | Bin 0 -> 1568 bytes .../es.lproj/Call.strings | Bin 0 -> 656 bytes .../es.lproj/Chat.strings | Bin 0 -> 278 bytes .../es.lproj/Network.strings | Bin 0 -> 1182 bytes .../es.lproj/Root.strings | Bin 0 -> 1484 bytes .../es.lproj/Tunnel.strings | Bin 0 -> 124 bytes .../es.lproj/Video.strings | Bin 0 -> 918 bytes .../es_AR.lproj/Chat.strings | Bin 284 -> 278 bytes .../ka.lproj/Account.strings | Bin 0 -> 1256 bytes .../ka.lproj/Advanced.strings | Bin 0 -> 1068 bytes .../ka.lproj/Audio.strings | Bin 0 -> 1528 bytes .../ka.lproj/Call.strings | Bin 0 -> 596 bytes .../ka.lproj/Chat.strings | Bin 0 -> 274 bytes .../ka.lproj/Network.strings | Bin 0 -> 1158 bytes .../ka.lproj/Root.strings | Bin 0 -> 1462 bytes .../ka.lproj/Tunnel.strings | Bin 0 -> 126 bytes .../ka.lproj/Video.strings | Bin 0 -> 920 bytes .../pt_BR.lproj/Chat.strings | Bin 278 -> 284 bytes .../ru.lproj/Chat.strings | Bin 248 -> 258 bytes .../tr.lproj/Chat.strings | Bin 254 -> 254 bytes 113 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Classes/LinphoneUI/es.lproj/StatusBarView.strings create mode 100644 Classes/LinphoneUI/es.lproj/TabBarView.strings create mode 100644 Classes/LinphoneUI/es.lproj/UICallConferenceCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UICallPausedCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIChatBubblePhotoCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIChatBubbleTextCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIChatCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIChatCreateCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIConfirmationDialog.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIContactCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIContactDetailsCell.strings create mode 100644 Classes/LinphoneUI/es.lproj/UIHistoryCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/StatusBarView.strings create mode 100644 Classes/LinphoneUI/ka.lproj/TabBarView.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UICallConferenceCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UICallPausedCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIChatBubblePhotoCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIChatBubbleTextCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIChatCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIChatCreateCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIConfirmationDialog.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIContactCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIContactDetailsCell.strings create mode 100644 Classes/LinphoneUI/ka.lproj/UIHistoryCell.strings create mode 100644 Classes/cs.lproj/AboutView.strings create mode 100644 Classes/cs.lproj/AssistantLinkView.strings create mode 100644 Classes/cs.lproj/AssistantView.strings create mode 100644 Classes/cs.lproj/AssistantViewScreens.strings create mode 100644 Classes/cs.lproj/ContactsListView.strings create mode 100644 Classes/cs.lproj/FirstLoginView.strings create mode 100644 Classes/cs.lproj/SettingsView.strings create mode 100644 Classes/cs.lproj/ShopView.strings create mode 100644 Classes/es.lproj/AssistantView.strings create mode 100644 Classes/es.lproj/AssistantViewScreens.strings create mode 100644 Classes/es.lproj/CallIncomingView.strings create mode 100644 Classes/es.lproj/CallOutgoingView.strings create mode 100644 Classes/es.lproj/CallView.strings create mode 100644 Classes/es.lproj/CallView~ipad.strings create mode 100644 Classes/es.lproj/ChatConversationCreateView.strings create mode 100644 Classes/es.lproj/ChatConversationView.strings create mode 100644 Classes/es.lproj/ChatsListView.strings create mode 100644 Classes/es.lproj/ContactDetailsView.strings create mode 100644 Classes/es.lproj/CountryListView.strings create mode 100644 Classes/es.lproj/DialerView.strings create mode 100644 Classes/es.lproj/DialerView~ipad.strings create mode 100644 Classes/es.lproj/FirstLoginView.strings create mode 100644 Classes/es.lproj/HistoryDetailsView.strings create mode 100644 Classes/es.lproj/HistoryListView.strings create mode 100644 Classes/es.lproj/ImageView.strings create mode 100644 Classes/es.lproj/SideMenuView.strings create mode 100644 Classes/es.lproj/SideMenuView~ipad.strings create mode 100644 Classes/ka.lproj/AboutView.strings create mode 100644 Classes/ka.lproj/AssistantLinkView.strings create mode 100644 Classes/ka.lproj/AssistantView.strings create mode 100644 Classes/ka.lproj/AssistantViewScreens.strings create mode 100644 Classes/ka.lproj/CallIncomingView.strings create mode 100644 Classes/ka.lproj/CallOutgoingView.strings create mode 100644 Classes/ka.lproj/CallView.strings create mode 100644 Classes/ka.lproj/CallView~ipad.strings create mode 100644 Classes/ka.lproj/ChatConversationCreateView.strings create mode 100644 Classes/ka.lproj/ChatConversationView.strings create mode 100644 Classes/ka.lproj/ChatsListView.strings create mode 100644 Classes/ka.lproj/ContactDetailsView.strings create mode 100644 Classes/ka.lproj/ContactsListView.strings create mode 100644 Classes/ka.lproj/CountryListView.strings create mode 100644 Classes/ka.lproj/DialerView.strings create mode 100644 Classes/ka.lproj/DialerView~ipad.strings create mode 100644 Classes/ka.lproj/FirstLoginView.strings create mode 100644 Classes/ka.lproj/HistoryDetailsView.strings create mode 100644 Classes/ka.lproj/HistoryListView.strings create mode 100644 Classes/ka.lproj/ImageView.strings create mode 100644 Classes/ka.lproj/SettingsView.strings create mode 100644 Classes/ka.lproj/ShopView.strings create mode 100644 Classes/ka.lproj/SideMenuView.strings create mode 100644 Classes/ka.lproj/SideMenuView~ipad.strings create mode 100644 Resources/es.lproj/Localizable.strings create mode 100644 Resources/ka.lproj/Localizable.strings create mode 100644 Settings/InAppSettings.bundle/cs.lproj/Account.strings create mode 100644 Settings/InAppSettings.bundle/cs.lproj/Advanced.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Account.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Advanced.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Audio.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Call.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Network.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Root.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Tunnel.strings create mode 100644 Settings/InAppSettings.bundle/es.lproj/Video.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Account.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Advanced.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Audio.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Call.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Chat.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Network.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Root.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Tunnel.strings create mode 100644 Settings/InAppSettings.bundle/ka.lproj/Video.strings diff --git a/Classes/LinphoneUI/es.lproj/StatusBarView.strings b/Classes/LinphoneUI/es.lproj/StatusBarView.strings new file mode 100644 index 0000000000000000000000000000000000000000..49754b1a62004c53e732b9e10067f67f7e2e9647 GIT binary patch literal 1068 zcmcJPO;5r=6h-g4zhc6Y1dL*IVcdW$Fd7Yhge}mDB|}L{HS)XNxlqrPS}G|*7p7@5 zGw=1iJEwR0_37zAbs2SJHPnL3=$yNz2ldp}ixRH6B38~=j~K_Ak!y9YkeF4FzjLS~ zwRD{2-e{yL(J@&)UF2CUU239+y7XvJX-cJ4^*U-i#$_4JExl`b-C}o-I@NYIMCTZ_ zjzNg>ke#{xEp>&)5fPhr>NA@VT@a6nCX5{;ldiaVu!F(1o>K<5I)Oo7Pq6sSpe&a_m$L6J|8cJ%*=N4btQfua)kr5p*zx%!UxA^&rB z?(oBk_6*t)r^w)-&9k)ad@OOsDXxh1#&e)Yy>57;ETgJ7+K@=}p1QWE^#iT$U*J6K Ih}n$SH#%gepa1{> literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/TabBarView.strings b/Classes/LinphoneUI/es.lproj/TabBarView.strings new file mode 100644 index 0000000000000000000000000000000000000000..555cc1b0c49b4add6e63e2d809e09e37e1e15e10 GIT binary patch literal 3710 zcmd5<*-pYh6g|&;MZ=StfC?@c%Ei(*;_`v{w+#q)jt( zd+(fk?lSZ7p2I3uV4(^RHijG)_W0y+g*px}#)zYj9%ptrZ==QGXh|2haQUB0i8nO3 zcFPqn(on?%=SIPwr(ErDy~UY2YLV1tu)e~b6IX5&Ttk zJdbEm#o{o9!Ab&QMT{_RuOC=Ui_u9w$uqC1BXmgq+RPH=TaROjmX}k|ma&n*t7fDb z*`PHWUCpT-*tPJaXPnBQWN9MbcsgQ zTpRcN%EnJJ9?OtNWRuo<+ODd|zFiAv{2q`S#m`TpH1w*3A2Xs*lboN~x>oku*Py@p zD4;}-71-;>9Dc5bz04#b&85Gnk6HTmCHwgWad)uB_ZyzSR1TAb6urE+&#!LEv$KV3 z9Mc6ynwM3^L`KKW1CYr+%H0h2_L72L1m^6Z`;zmmS_@H|{1r!Oe;-NQ|E zG759uBq3$?KlM!$o;b56iCLJPt!~FpS!t&_byrv?lQm{(fjR5oB$25m2`QiPJ!S2w lv-x5AzL0i1d0?ID5Wj~zzV~rRf5bU9Nl3jgy`$+H%qMKdFRlOp literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/UICallConferenceCell.strings b/Classes/LinphoneUI/es.lproj/UICallConferenceCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..729c7f8c09fbbf8216a116f519f765f48aaa0dec GIT binary patch literal 1536 zcmd6nTT8=05QWckenrS*p|x5JsQ6&hmlUxDZ{SX*dy5*A`81qm6F zotd38=j`nFm!&b%goO@|4--Sl2oUG-bbq zb{owDeXwUX@6(#z$4tJ5;tO43BRK0-bT>sb)%|P@&o(pO*Nm>x{5C5TYQoYOK4#pP eb+aF9q$k*Lb&Ks2?^QT4MKtB4L=)tDTlxV6Y35o0 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/UICallPausedCell.strings b/Classes/LinphoneUI/es.lproj/UICallPausedCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..33049fc4158c46161aba319691233beeda7c5a50 GIT binary patch literal 1536 zcmd6nPfNo<5XIj)pCa^FNUe$piU+L+Q>6;h9=xSB)JS8nrmgzn)nC&5A+nkVRAkvD zyZbWp=FQB$zggN+Tef51sqV$Z#n9bxiY*B5`E>zH>TAj{{x0uB`$=nJ|V1 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/es.lproj/UIChatBubblePhotoCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..3187e367e9eeed207a22e30c5713a961123e84d2 GIT binary patch literal 2398 zcmc(hNl(Kt5QX2lzarv@R8T>H0C5N@OHnDJZ07(0ib5-uQkEYNe0I9akXT}o6{k&R z?0IjVXY%o0(xT=SC{n6ekBmTDTyr{8P1|}>kI_+^C!0Kvb;U@mWlNW8;n%|ARdwE7 z@+KXv5b>mKt?w$btVIez5orfLGRA%yvwQzZl;a3OH4CAvSvTqhd8)zFDGaTk!7}G3;(TVz4ta7}{5?%nsCz8G4m4&-ko8_W#P+AgV-LZVMap%sy6d`=-J@qDs>{Oa=L!4pP;TF6be3?jbqPaD3H8T)2uL&+8&pI@k%?HXUTo&SurT yoc~09oIX$Hi=)qF>OsbL059&Zh&$L?BL5YwGq3T5u|J~%mxZqi!ijjkuK}Ogb#0jd literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/UIChatBubbleTextCell.strings b/Classes/LinphoneUI/es.lproj/UIChatBubbleTextCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..792e134b4e4405308d438f9e7eb351e7ca88997a GIT binary patch literal 1640 zcmchXTTjA36oluQU(xVLQVdZOqwzt(5C{tKmiSmMVhvC&i1O#vZ(CX}Hf<0w4Q0D~ z_RO5wIs5gQ)1C^lRMtR_#yplz`Q>$|nr_w8hbFq0%jlii6V@j4*(kChPd;-NQ7>e8 z(@@3W3FDh;>zVZqJ8P=M2xUEhX*2i8+taxY<_HB?d`66h>`kw{s%v6wl=68yx&bBJ5mlZP zQ4CPBm@QPfg4>YH;n{RSH0Qj`*9%ZL)o1F4Fsfw%D)%qE+sah97Uz^_P!z|=C2sn57 gHhBNxscm!`abL|)sE(g(?s9W~t?HB%u?wBP0f>kE8~^|S literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/UIChatCell.strings b/Classes/LinphoneUI/es.lproj/UIChatCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..8c3c5d03285a710b4cd096bfe468ff2d74d4deee GIT binary patch literal 1308 zcmb`HK~KU!5QX2lzhc9Y1hgi`pz&bP0|qoEniy^siBu`Yf{Ffa@9MW(mWnokifOjl z&g{&aH}kfiAAxpMmr+||MVj##9kXh>QAb^DcN*fW=?H720ngB#i}A#GV$JpT?WB)y zE7b&_jhPcWVV4k_XSyW%kuU4(=yZv?r`^SgI+X?Nt);mUa&4LA0_+5Y3=AFEr zhAt5S6OOF8>I)cZg)B*#N!yU?EMy?HR(?}#Yf35(oQT;e%NeP%(EnL#r9Ib4#f81? zpUbV3x|K)D)cK61-szCgS6nI2Y)7Q|jB;N^?B)rb({B?QdH=(oS^hvQAO7Z*zELK6 YiCTOq55)yNQ8yherLV$A>ATnP2CYFwtN;K2 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/UIConfirmationDialog.strings b/Classes/LinphoneUI/es.lproj/UIConfirmationDialog.strings new file mode 100644 index 0000000000000000000000000000000000000000..af4fe4ff80ef5b81c52908c5683e558e625dd2f1 GIT binary patch literal 822 zcmb`F%}&Bl5QWdWPtmX>DaN=o#7IO<*TbyQx!bEE_hqIQ(uv`+VHHEkvS)y5$AdYn`)wjvs8H8$}**9isEg{jG}kP(i4X?1sOxxHl!6gCo0Nwn|nep{btrrPpd+1 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/es.lproj/UIContactDetailsCell.strings b/Classes/LinphoneUI/es.lproj/UIContactDetailsCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..c41a166fca812e96def23f0fb01ae8ee1ae3c463 GIT binary patch literal 776 zcmcJN+p2_8dR%U55T#s;C<5Q8$#tQpsu znd`+;NktXZP$*9ate_f?t)V)q>!=9ZYD1(-+|vv*F*49p0d)b0v%2J_WWuaNLq4(S zQQ0HAB0nS2Q8Poe@CS0#)-Ug#`kFi{ig2^=^APS^OziA0DHlWCKJIVP`(#QxHZHKjLbfBpTGHiw^*VXpKsO9n^p2Wr5LX@DjHaj#yGLDPZI+wim3B4vCcb%W8|@cCK|jhQRB`U_iMCWTrk$b z5p4P#sPLObEFp*GN$fr>ROu}-Dvzx&Du*3Zkij--4+yHfU=`X0W5zY7T=voCgdJ zutEj}oRP(625}Kt)|%gCM8ub#bi|WKc@kf4nBO+cfds{}*CzroX|C>MZai$KblQIdIJVAr5uD)m{E+VOBI&w=r_|%6dcf7S$dh$SP6e#DJR-YvA`5qH{2LU+B A2LJ#7 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ka.lproj/TabBarView.strings b/Classes/LinphoneUI/ka.lproj/TabBarView.strings new file mode 100644 index 0000000000000000000000000000000000000000..e9a560b0de76b0b689d29e5fb399a2706ed9e8fe GIT binary patch literal 3742 zcmd6q*-FDe6o&unUdf+a z)xA1b-U%Zde@8S%)`IrOHi>oeH; z#B9eTx+2+$x~PkC2_3_(jx3iN{;XZU!PhV5yP$5@RIjKWIiIM*kd&WUB+s`g9i0X0 zx5C^=Yb|qVCT&Xv-Z;7qVsAy7heuk|8y&N!n)yLpk~@ks?s!q$4Br#}c`D_q=?j-+ z`^>(eLJeS`O0M8ZpEV?Smh?=LdRVT{CTYBSo5C8e!l`7&WgPOz{9dJJYId)l7`a}w zUTX!54baR^S-obpb+PbOagsXb5knXAFvi}u!{KLf(A#Vl(k!cgIYw5Q%D5xmVAgGr0(HN5j^Z7))Z{FT35ad-bwX_Pry9{mtim%_m2uXRis~rG?iO}KCGHVLWVvaI zZ<|McrkiEPS#HgPxi^odXP&S(W?<49uzEFD=8kokF~vy2O#qtC5NX6;75s;wPJ^!X zXShdMC)jLxlVbUMovS)P`QW8Sw7)%W*p^T@+b z^tvWG+w#Wg>{5Xq%r~emAA9k6+n?y|>70Ltb$%Lyy-vkDsNK~%)`zp=l;$>%-_X2g zuBq;@-up9FcUf&P1;ZW|>63(`I&8G*l5yRxshalTqNHtX8GmPr5t~O+MxN5tJw1@GD?Bc zQ$Zf@c_=Ql%~^qyO8A96EDe;UuXlGjKW0}%?`k8|xw=H>=#Wzf{U%@RdrK0X#dDM* zHBl^y(94UtHm}SM^UAbM&x6JI?*6W-cqtR}0Wp=-nt?(lpyvnC`T@Zv&%OO=43{1F zXCcy3nl-0p=zqW^N--^$JM(BB%o9YOS#M3(*lL>__B~q%%Os?R*`K~n#tGG6Q;n^f zvKFD}pxbAyY8hIiRTHK72|8W4yirB>GqUlC`JC7XotC9Sj_5F(o~ZxYy$4>09TDX> zt|R_F&p!VJj|^||7jWnSPbXt}j#B)`Jg4d773Ko#yq03RKk8Pa^&O>1QCI!y8s<65 Gucc2%zy>`4 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ka.lproj/UIChatBubblePhotoCell.strings b/Classes/LinphoneUI/ka.lproj/UIChatBubblePhotoCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..59b7adb0edc4b3e3d1fac2c26e3d249e71cba66c GIT binary patch literal 2408 zcmc(hUrQT76vfYTp5`MgJ_>0`i;5N>(v8K4Rs2(ZUNzOo8X?B0{gnO%H40kst@sht z-%PTRh9SwKBE!zi&fc4ubMBdY^Yoa}XALS)s92G9Xo1Fg2J}lseb=sPv~5*b`Nn#r zRa(hembIcXeq}5UG|jgazQpZc2wAB(>$v4Ti^V23t9TSuXj=|z4Zo~r^oPF6TfOBm z$oVqNeHNekI?X_Pmt%8i?##Vum{W7a+#<@*(lJnhjjFcTJJzDZ9)l=hEmR&9p(fy? z$=F+C_V52XltqVU9UMy_Drv8E_B7Eh;Agc^XRM-!K)>P0>Z3$FyK|A(f_@VDI-XhV z%lg{#NaF9aNE`o#IX8ca`xQ^1GgNTH*f7`T!Ob7cNuR3tXugW@wFpx~Xfew@3c06E zh7-Pg79YpgOKxbMGL5c6mwjsPuGdgih1nJw>8_|L6gUqz^O~dIMbSSx81h-9W#|I! zTsckM)1RAL^mL1cte!4;w`c5?VLG{~fo-4sm}HckavI}446!l=7aK4T5cBPK;~+V~ zOHS!^hF%z7S4S+?Jy6GtQO{g5qY=2uYMl&h<39|S|KAOtMcT;QT5>`qxi3Zm#G1yKy68}xWGE5l2vS^i6*gsxygul9Tf8Thf+Rx)DO43NRk$5$?wi_D`CO zAi!CZvP^;E7<~C|bPuE%=9Y~dmK>HGQR^Cb_HvJcyNJ#1se-4-sKDOIna8z@j|)>} zT2FgK>FnrbKF%ZDj^c-Gz{;a}H81AfG|UI>gLyNK-k5!wd-KHHMx2$K(Yuc*qIE56 zmE4nXaSj6xcU)Q+2R#IXJpC~E<(S~cJe`4fSm%Gyfu|a0T3wWVw6Ft%8B|b#H5UwN zb`EP{oX0%0&@fHZVD-_OQVsK9Dn^dBo@(@EYRaMdy>^Xdb>hp_6|aS>ZR*F>n&P|= zqg?&=n3bz%*s!d;@H=W!EiL+Is>xPPi}nu7G}ZIpd=+`I>M)f=RW7f&eZhwL8t1V{ GzJ369a3A3S literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ka.lproj/UIChatCell.strings b/Classes/LinphoneUI/ka.lproj/UIChatCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..7891cf6bba7e7bc87d384162abf1d2c46fd515ad GIT binary patch literal 1292 zcmcIkO-lkn7=F%sdVj*OM?q_Y2#XG37ek4lAi8ZOxn)|mhx(Umc_=ebA?i{;p?YT4 z(aHtgJ{V?pX5No^-hG~#_csS~$Uvch8hl)^DXg-)*g+8`?(L&On~N3h`Z!>#7{7p) zfR+Fuu0DC%_yQWJ)23rW#@0DIWo(>jlhMaqX$<1`KJIZn= z57L!^MDob-R{EmQ=jv73(&1WTaM;q+9un=PsU-eC8?3L&sua;Teq5K$I>w%qH!apQ zJe7%E^X}tlhAO-XcD&T=Jd=fiJdvXox#)7$A~%1*$u=1YjE3XUCp%|G*;=(#@>Ihi zXHD*FE&jIdN%q=CYmxMZs*B`Ct~u}U8_B)Auv%?X_`ko9M}EpJ+ruu-ku}QAVu^R% z|Hf;QM~>=`@4#5C_N=rDwVCW|;laZ)`{ESjO`=^R@-j|1maxT2;upof7fBvT$iJTG F-~%s6*aQFo literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ka.lproj/UIChatCreateCell.strings b/Classes/LinphoneUI/ka.lproj/UIChatCreateCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..ac8173e78e3f813cabb01948270308647194d067 GIT binary patch literal 462 zcmbu5JqyAx6h+URUr{<1tl%ahh&r@Ia8Y+ZinfRq?V$d6^-9xBaS$nadA)h>=AFEr zhAt5S6OOF8>I)cZg)B*#N!yU?EMy?HR(?}#Yf35(oQT;e%NeP%(EnL#r9Ib4#f81? zpUbV3x|K)D)cK61-szCgS6nI2Y)7Q|jB;N^?B)rb({B?QdH=(oS^hvQAO7Z*zELK6 YiCTOq55)yNQ8yherLV$A>ATnP2CYFwtN;K2 literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ka.lproj/UIConfirmationDialog.strings b/Classes/LinphoneUI/ka.lproj/UIConfirmationDialog.strings new file mode 100644 index 0000000000000000000000000000000000000000..60f04981a740a9251dcd19c6dbbc5fb085c1a7bb GIT binary patch literal 838 zcmb`F-AV#c6ouFIT%AW4yp%Me%ZTugkfez00kSNVX##)f=P6AKB?}Y@3ZzGdui;9^L%8@dD=sH_@q zfvRy$P8sdPRZuCyAE=@_h*OY7GDP~9?S4 zp@Sg$c8mCieattVasBzaWeaVxO>W!qB6AHx=qjuie4RPADjAEiUI=1zgQyw3+pX8A z2(`0fQgs}2$BZuUMGCi+VfZ9Kd nnHLbgx@HV+WctKIZj0e4A(5dN2o)G?fmn$ll);n12Pl@rkP4JjVz35^CNd-gVJcW% zCQv35D3i%h!cd8%5~kk`C{qMfS;CM9)Rzm?1u?@Ps4ol1O9sk#GPuC)GlR-&0bRre zWScSQ5oMne+=Pb$7X;o3ToJe>a66 OKg>jg8?l+m#Q*>>#y!9Q literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ka.lproj/UIContactDetailsCell.strings b/Classes/LinphoneUI/ka.lproj/UIContactDetailsCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..051026beba3e0b287eaa6fa87123a0fb3eca3198 GIT binary patch literal 772 zcmcJN!D_-_5QOKP)BgzKQAi5Xn+QcqX+V&Iw$xjUv5ACO+7#+r3M#ZW>8&qO{WKa8 z0@_0PN!aYp{@IzG)sLkMRa8<_u{^zUN~-ge)s?G;-js62O32j6d-6HK78$9ph`tEK zL@jE4Dsg^8Qz5x@*V(2zqVAJ%b)BPbh&!@%t4H2#-Kn?hs4$yFT!e7Wnxvfn<=afn zm-#Ro78d6}S$k*@pJ3fXjeGc3VQUj#qF|=*o^=u8x2$KdUYfc2Gz+40xF5EdO_Q>* zcQ&?n#RxBixWUnYD9{y7i1f_&#s>*exOGcFW~>)IozP(jrhx(hoi-kN;Fe<@iVzMH NWpf=i{I|(0tpQ4=eUtzI literal 0 HcmV?d00001 diff --git a/Classes/LinphoneUI/ka.lproj/UIHistoryCell.strings b/Classes/LinphoneUI/ka.lproj/UIHistoryCell.strings new file mode 100644 index 0000000000000000000000000000000000000000..7fd385e38fc5e699cf599871a135b2f06ed55460 GIT binary patch literal 464 zcmezWkBdQ{L5o3w!I>e4A(5dN2o)G?fmn$ll);n12Pl@rkP4JjVz35^CNd-gVJcW% zCQv35D3i%h!cd8%5~kk`C{qMfS;CM9)Rzm?1u?@Ps4ol1O9sk#GPuC)t733xFk;YU z@McH{k_JFEE>Im>KsRy$+1OO*5#=T&xGfI_E(p96xFT>%;D!LmJzPLYN(htyU0wln eIn0+{4EYQhKp!dqU7JrcKf-K9_ye20TnqpMTS#00 literal 0 HcmV?d00001 diff --git a/Classes/cs.lproj/AboutView.strings b/Classes/cs.lproj/AboutView.strings new file mode 100644 index 0000000000000000000000000000000000000000..a032f60cee858fd463d6925ecb9ac2520e862776 GIT binary patch literal 3778 zcmd6q+fo`q6h-$lUqSh3)gY3aB$Wq9h#^v70w&SQ3nJhM5sRzlkMfbZte#;ABds$s z70T*j=pIg=K6{^A^XGR;JK9!SZ`4;)BSu=U`E2P(WmR~0sy4rE=@oCs%&&O{GUv?4 zx?L+;5*f7kR&6abtz%b;6Yk@psELQxAo8thVq=T54Qno#To3nHH%q()Ociv-NF#6d zkKxsz_x0SxM@bF!U}CHy&l6P_ehB!mNn||TQFi^~s)|KZ{ld21!nWSrwkS@b;$t71 zkI=jiOC}D6*w$x#2$!cGTP;=0LeLnT=rgM8{qfPmy=<(lL=7&T5;4jopXXlN@`Q*ge#HqN1u&1jaKW zrU|+ZQR%3z!eU1dK{g3H#?^B-i>2e$Glz^YSbF+IJq!EGCb2mz_s3*DMnrbW@GoGS z=o!x&I$F?~0&m$Q>912Thke?m3Y%WDED;a! zsvSwOu3tqr*)_WKsRJ1M>Ty~pmhvl{u1eTAeN1?h`mR6()#&++h>Gb_RmZTGr-wUw z;oYFZ5owdKu~#DpMs)BF`esz&A$e^yB}KB@ZCv_6aHCDjbiktR8~pWp$`b%W8FjXe$fR6t%iTK|~Q00Y5H!!yd$o9-)ulp5y5N zGcuf(B&*e84IF0nnf>*j|LmEcKT`5Y?n_#7QkRmP@=42U+O%xSvgGO8kqTqe@`~P) z?DDA?xf&xiMrzWQiyq17{j8B~N=F(pZ%2;JJgTWiYcr>ghx4y8=K*rN^eoFF zlA$e+HXgYWJ#(nHh@$8bwjAZZhZ!O6!PN6$V{Mz_-j&G4)dAuyhd;Wit zRU*F5Qyj@b9nEJ^C`UEyVp%pZW1C-R){GVz=lz>7=b-^Yu~>;84* zlE{GA5VyCDmj(Es&8G@reZsn{4&cKjkrW?3 z`+Td(j!uI}wd4q&>u`fIZ=DF(Y?6dST%Pu0!X=R*V=h}<2(hj4d0xE6+Z%k;-KTt= zonxMrQ!28LcI~eakI4TAtao4D7myF&+$`VA>^A3C-ff8tdzMRY>}#ai=hvj{r;E}B z^?{rb%|M>Yq0C!xuqBe>|L^ao+u$J$HcI%XPg-+?)yD;R>CjW6ZO95OjrY2O_OE-p zjA=Df=C{qSa#9+sH4Vx#JQsNmdyWhuw4PBd;oOSDV}r|v>209z$W%`{qV}|yb&s~& zqv4@>OINX0UpiZ8afoZRPWxtQW!|jPw0elFN}KuX*mWi^z1X)iI=Iel2^aVOkFsx_ z{~3SjdQs#l5^V$yXSOx@NDZ#Fah-2n0iOp}v`fOzY<`=3v6vLjTjvCENo?Az~IC3At?I9_CC>!n*#4$90Qr7r^fl+12yS7H8uAxVj{gqPPH7y7C=N z92z{SZHL#kjW;G*@il0tW?zocTm`$W9$p+Cr5$R!72>nQEP=e`-HU-Jxg?TCDT%Gg zqvo!!qgppUuiMpin%e{SJ&Mcge)PB`##`%8%Kos!{mVRPDT0|}x>5@pA;Z6B671eNhc0GkTuVB&xEWEKF+MSG zVT0Z*w~QZpJ}OCR>Kk#or1yw?` literal 0 HcmV?d00001 diff --git a/Classes/cs.lproj/AssistantView.strings b/Classes/cs.lproj/AssistantView.strings new file mode 100644 index 0000000000000000000000000000000000000000..9a5202b811c97e391758e006d412220d3f026ad1 GIT binary patch literal 708 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 V;0-*(pF{FlSE4A^cl;F7{{dq7SzQ1C literal 0 HcmV?d00001 diff --git a/Classes/cs.lproj/ContactsListView.strings b/Classes/cs.lproj/ContactsListView.strings new file mode 100644 index 0000000000000000000000000000000000000000..649dc7ebad8ba3398d800d450ad3062e70a62c57 GIT binary patch literal 2178 zcmd6o-A}?W6vfXof5pNh2^u5dgYf}H6AUV9H0m2nP-Fpv!=V4WAHQ}mbQvELmY8Nu z*WTNndwTBe*JnnX%E{4zJT>$}bF{~o)s?E+*HAvKuO2hI%s1rHTGq0oraJg_uy|9A zwI(ZGxI>w-`E#wmZ+(4xLfiWJSP#bgp5gn%zsp`#Rl+?Az)?XOQ5@1`Y1(sC?)3Ml>2zq2j_M} zopw>7IXB&SFKxC2nm3tcvSog>MJ(==Co6a8Z}A^R;*YaPnlZC*rOU=4cW)}mdt2AvRJ9RtOzNo7S5(uE+RP5A2S)FvE;v+B zGc#b+uz4_GpP(K$S?QzB`OF-{$TpmGtu`KXt$Ku+IExLC26(3xbG?Wc@weI=Qvtol zXQEgxhfYvX9iCiXoIK3?+{JGN#aSd(&@5d4jSXK%yz+U}(x&%#^=~3<#96G5jc+|@ BSC9Yz literal 0 HcmV?d00001 diff --git a/Classes/cs.lproj/FirstLoginView.strings b/Classes/cs.lproj/FirstLoginView.strings new file mode 100644 index 0000000000000000000000000000000000000000..bd5327c5d8e38fb6a454745c934c5f6892cd686a GIT binary patch literal 7134 zcmds*UsKvp5XJY|PvQ9JOl;Nu(dqO-6sk^Dw4&8FL{w^2AXwB7-}ZMeL?$;IlPlOx z9flamN$#FKo86QA{xv0UWLBnSRYIvt#AjMQ^PQ2JY{48lY@`vs*~pL3KSL(BU9wz<<-VF5eD031pLV z19J48+zr+o>77Q*+0{)%BZj^)jhlltqTP~}0-DaF{66fea>=$PyD5$uLgVPJIWC7P z@qgoU2$wy2($n|mqV0)+^g$ZMI`ZDpN<(Nov~}~i{JWmCBlALpPKzChadraL|QoPd$?LIFO$GBYGo;Xb})16j@T$EsR zC-ZDWSep4^++93tG=#>>UDKC?kDEF~xezyXQ@~5EGhJ$MyObriANYIcFw_vf6`PL8 zm%r;L(pSt@QDcx)QA21drdJ)8hg%4(P10>xl0`4N-)r7RR_;Yj~qF&S;x>x7ZsflBHoCjJfab ztxt$>NAZM-xoHTEo3^emmzU}>r?4_p@rtQn9Q#7b4QYt~tH)>zl6Rwq(3G5fkMVuZ z$?l{VxY{c;+_Up=nHlrW={XugW9b`HUM>H9uh*iQ56DFqzhjoiv2TtwtvMM-8E)KxX0Bu^Y|8i61wM2e?#=YptkMsE;%OvxMnsEDxOrN6Y7qdM$@3OS3z?$@fn%Pd7N6P(-_6CeC5oP9^E6I_z#S?04H%q3w+wi zGv{q1At?@MAA57v(f~N>sVz4nudA)PBweV?>9McPUGd19#warHHuae)ZEjYU|K7Kr dY(2yP!3#s;D>WtEGri)N7sySom z8O9k9*E--^n=k!jh8-PKis0?|*o}?v=Ba@_2i>8+qPNMIT{YBGKyR7%H&vN$y7DTK z7O49W;Zkv}B&$@3=u$Vddr53P*0d`XD1Xyr#&a5142vtq-s`qU%uQN*^bdGO#AY?A zqh;Hv)uDBOYF5VqN_J^~Qc2%w{i0sdx}Na_ceNMvl|l6>T@+EhWbGn)3)=q zh{L$=QHIV9Pz_e7p?<*ZCA~}O>_ddiKV>`9@+tAno4a&w7rC^F$|ZDbqgsF?2ii}m z=R^3^n_n@1{1x0+*L(6>C9bJM7qK{TyEwoHeOUDLkzG8$*L(;+i^uEc=VH+HLTAp; z_ii6K-)|_?HqUwn!&9>K8E#`e=Y7pSJxww6A^Z%NjV3SeBbU8;1~Wr`V>oSd9t7GX zlP1N?hww3bxL)4a?Ws1OGlLsv8MJxJ%Gpp~-5R diff --git a/Classes/es.lproj/AssistantLinkView.strings b/Classes/es.lproj/AssistantLinkView.strings index e906f7cdb68ceadd15326fabee6a6ff94de58b93..f0b8dcb487349274f9ad578b0f3b99997926adee 100644 GIT binary patch delta 1236 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 literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/CallIncomingView.strings b/Classes/es.lproj/CallIncomingView.strings new file mode 100644 index 0000000000000000000000000000000000000000..1ab84b0805737fd8e352cf53a85cbe8c987feef0 GIT binary patch literal 4546 zcmdUz?Q_yV5XSd2e+AQzojJs@(smqY43tr9rQ%d;{l-hAsR*sbg8#hwy9+OQIZO^{ z)yV*9vbo)7_t|GJ{q?gTk7QShQj>wS<(8u;&-v`gdud2jzRQ?nBtxz|<9b`V9KNv( zq$2^(1z7x$6Yh1mGgz!}#9v)=f5=(*{3$k9=K7fRj~2F-+5KJODR5qqQZ8RRixr~Y z+Vah;S75FC!{^O%aSi@IquWoQ+jmB%efgq2<;B*Juh{l^>H`(>WipGwrGhn6dF``{ zXI=d}KFb)2vZ|hs!KX9s5-4pJwkc`zo27r- z#iIMV1(rQ|%XdeP`Hl0~X0a_SoAENL8d)_9*x6_`?=hbg^XvkK#&Oy#T$ve-D6ft^ zTn=v788$&5fL`xyJh&dufz9II&q02Dx`hKhus6{r#lGlMYJY39aLs^@$L*bGGY;g( zKW0~32D#5(OZP$`PZJEVS=>MVEKOVQZDRFX-WUbfYEYpg6xH(NODYd(3!Cb#7g?6Z aKNKG(D1qMR>;Ho&b}*Av9&8rd;KOggaJDD_ literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/CallOutgoingView.strings b/Classes/es.lproj/CallOutgoingView.strings new file mode 100644 index 0000000000000000000000000000000000000000..b10453591e221e0abbbda88b5c015b8d1ace1ce3 GIT binary patch literal 5686 zcmds*Z&TVp5XSelpMvqFGoflLw$tfMBNYGCf`YZxcc4+E)Ho_s{P1mmdvJou(QtM| z+hI5(x0mcbd;2_l`So*7UdV#vq$nL}$Q7TQyyH7BpJkKJcYZyUNcQE7@dv-ZWws$l zd?I6iCQar#e6OW1+srkY>D=9?D6yO~r)#dw+8)>X|K;#*RaUfFqw||mx?8y~{I@tEi#jS?P~b zI7IYo$eYG+LnOA2+C+&UqK-wa2uvNcCJO5#xW#KWaI#{7f56m8@FjiomuL&Gn z7QQ<{>+(6)K>_YtBkq!^hBn+-NJQ_l@QvQ54*o9hB~U&ZRzwyDgzW!M#C~Md;R60n zR)EXGH}-Llrscp{b3qvmcnuOe@Rf363;i6hkX1;R#s9|z>#|CxqMX=c++`ot5;(Xl ze0RjGxnPYry3~dC6fvXK`AMBY1r)A`|G?D6v220F{oUZQ@I}GxmA@*S8@1E^vLkz@ zd+ZRaRn02>=N{TtWk*-|t36o=$8QfKnv6l2`vu_8WL)GP`zZ|47J2kpwKwU_NGtWp zA*>U^xFO!u8MpE61K#a1D$f2GXiuEgsaizbxaUB~-96XY1xsLXgU5qz!FKPK8(bE% z*$q#7u4t087)+|N!dOB*Y-L$wTo%5_Jdbll&FE@Gef7A?I&n4WDObUyXn0i5bJaxk zxGa2;u|DbPLaT0?+R0MZE$*aUc8+{%mp$OUNwslI=9MY?C})6z?hh+C$60uAvUFLv zbkp_R$K`?PPl|0AO3w&OraS1ui-(D9x-5LNIcrrM@5{3C+?ErxBY+9F7|Uck*&n$q zd=VJ;XxdIO-7UKn$g=-K^)N=Kv?nUctwErX>Wo|#|AHRYIXOpk58tNXwU|?q#$RAf zK&^+Vw+1c?-+d5LVfwzL2Ls(c0jqWC1a^t<5Peg{Z_%0D@BdsD&x6%`vf1ZNik^BR x^A6~g>uw@Wm&M~}GhNd@{hd|C>6H2w{d#3`-DfPLqB{u;To%35$!W5)mh literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/CallView.strings b/Classes/es.lproj/CallView.strings new file mode 100644 index 0000000000000000000000000000000000000000..062954d562ce175162c132a6d0b17fcbd7512476 GIT binary patch literal 18430 zcmd5@+fo}x5S?d#h00G!s@4H)E>0>B0*tXS1|tiM-y|V{EN(^;82;8jlH{Bj2H4qN zW*d1IO2tY@Elr=kchBs9|2{K+nmoGDAFS<{$h$H%;@-ESj+y;c;S)@y_3P zzhydjbS-7yv`ru1>x1Ibe86XId~$g63k`E&KkJwSyw}0!NBH~<&+fN2K>rQzbnyLm zX8GoO(`L?0UDNyl{+{8rd+$Y|^`GDT(vn@1T(+=o&0-`cKfwv#ahyEE3S~-RWY-#5 z8BmfvD}^pzQIhw|VhXZonZyjtIj#rh)O-yjBT?w(bYgXLY_2S?lu^hjWk_DjmDXHT z9z9rP0=pdGdS~#TH6043N3P(t8yjr&^$bE)~!V5A(;e` zb{kngEfI-AE0L#=qc@S;#y}U##`B10vyjESjcz?iAi*KX}1nrrWcQFrSb~D<*QC_(-MV*xM{fl0e+zd{q^zR z30`^bTG#*YS)P0N?9BEZcX=)5<1zVswCl1rqlKT__1JG6;^888zAV~S3U90p`~ZJp z=T(P%S<&64kYwR_pe(2juFQUqGN5#Bc`Jr^vU<)((3mAGnFZK=0x##4QGF(`eThQr z=boD?kbCXr>3a#WYy_+`cuo)r&tN&}oGwvl5j!qov1~FOFGMVR*=)fx**SM`Z6bHA z2S_CfEmFrtxky*xJ;#X3WBBO(-n*b># zMyvN_^BtXMf_jXR{Q&;Fn?atX&?2WMJTK*aNx5e7e0l|#8$dmPjWdd^ zAp@kfE>UQ)*P(Mxvd*FXs|xhKh_yPvbic)~AlvkSx^J%+$mDw&>{$vu_7Sx3vtW%j zSzOz;bwu|jF6U|eEi8kPd>Nft0^8rrOj;xgE%G!s<=VW@ld-J5is;5k*^%u|=b)9h zfzBlgEppFI6Da5rlbsh)Bhl?si1t75aN1UkCOT8{^sktOOE}D6|p?x$9dF z(^Wj>9+Oe5Q;}xV`S!kssK)8Tmeu|zNUtAYmnfv}L|S)JEWfrZ-9Saf8S@XD$p)}> zKc(ja2`?kwxrKPdnGt&_&cZ+9|FmUG6k5!Vi*ofG)^kOx%?9Sb?5)~1 z&rahxtU@FTtpq~u9$IZq<_mR1f99=Xlkx^)9%rV9c2@iWanDcVygx`3TFKNAPgvu- z=~_5PFOs7slS#3uO9PRC)!3fR+h>@%`J8bpi!6m+79+@_=+q_bJgTf?8mKMUr<~g9 zBhR~qeYr%TmB&-6Vri zH>h1WSNxDU!6i{>v3qW+*gJ@wUF9hd&K1|tzftGgnRAU2g%)uYXIEoq8`{t%quMfJ z8YBH`#+M}uEz)9V8^UTdoVq;x#7-OWiW7$+Vt9gAZFD7R@0BQ|%Ihhe*on=}Sfy|p zF^}Gy=df2{&mrn8g;uwYi)!+><32A=b&!dOcL>~^kM3g@k;W@gXz{MVOSqqZhItq# z-dv$<^u^CL>;XN`bR1w3!#&SenOa4n(8{3da}Ao49X-3RpWs{?t)4m>2UZ|alrMpI z(1x4xbFa92Gym1}+-~;ET9&64c|!0Uf3CK@-#2)t#U&OV{I3ZDJWl_cb8XCXYN341cybWlC*sqWU z)2Jm1E$XTxLo5gK1R%Bi9vwWdQ^*h@>MVs8b+H`yxDj9`(Ersz&B`}r(D~1 zucnPi5bjh+6k6P#C(Vg~$tIOsh;6*@S3{V?g22oI=c)GY_cVHbu&$~c6v=a+jdw51dqR`^4;ts5$yY8pRYpiMN z@B~)>yyG;T=OhX(;xsqqMm9gQbtv*8`6>D^;{J~Qmbj;oe?r_@3N7yHd%jo(`woj{ zmwRMux<%j)Bbh{@#a%@P)9om8pO-V7d3)zw6P_LJ8cGye+>gDZT>Qkz2$JBgGW|V4 zeYcsBheV;3N40Zl`F`*G-KsHA)B9)a0>B0*tXS1|tiM-y|V{EN(^;82;8jlH{Bj2H4qN zW*d1IO2tY@Elr=kchBs9|2{K+nmoGDAFS<{$h$H%;@-ESj+y;c;S)@y_3P zzhydjbS-7yv`ru1>x1Ibe86XId~$g63k`E&KkJwSyw}0!NBH~<&+fN2K>rQzbnyLm zX8GoO(`L?0UDNyl{+{8rd+$Y|^`GDT(vn@1T(+=o&0-`cKfwv#ahyEE3S~-RWY-#5 z8BmfvD}^pzQIhw|VhXZonZyjtIj#rh)O-yjBT?w(bYgXLY_2S?lu^hjWk_DjmDXHT z9z9rP0=pdGdS~#TH6043N3P(t8yjr&^$bE)~!V5A(;e` zb{kngEfI-AE0L#=qc@S;#y}U##`B10vyjESjcz?iAi*KX}1nrrWcQFrSb~D<*QC_(-MV*xM{fl0e+zd{q^zR z30`^bTG#*YS)P0N?9BEZcX=)5<1zVswCl1rqlKT__1JG6;^888zAV~S3U90p`~ZJp z=T(P%S<&64kYwR_pe(2juFQUqGN5#Bc`Jr^vU<)((3mAGnFZK=0x##4QGF(`eThQr z=boD?kbCXr>3a#WYy_+`cuo)r&tN&}oGwvl5j!qov1~FOFGMVR*=)fx**SM`Z6bHA z2S_CfEmFrtxky*xJ;#X3WBBO(-n*b># zMyvN_^BtXMf_jXR{Q&;Fn?atX&?2WMJTK*aNx5e7e0l|#8$dmPjWdd^ zAp@kfE>UQ)*P(Mxvd*FXs|xhKh_yPvbic)~AlvkSx^J%+$mDw&>{$vu_7Sx3vtW%j zSzOz;bwu|jF6U|eEi8kPd>Nft0^8rrOj;xgE%G!s<=VW@ld-J5is;5k*^%u|=b)9h zfzBlgEppFI6Da5rlbsh)Bhl?si1t75aN1UkCOT8{^sktOOE}D6|p?x$9dF z(^Wj>9+Oe5Q;}xV`S!kssK)8Tmeu|zNUtAYmnfv}L|S)JEWfrZ-9Saf8S@XD$p)}> zKc(ja2`?kwxrKPdnGt&_&cZ+9|FmUG6k5!Vi*ofG)^kOx%?9Sb?5)~1 z&rahxtU@FTtpq~u9$IZq<_mR1f99=Xlkx^)9%rV9c2@iWanDcVygx`3TFKNAPgvu- z=~_5PFOs7slS#3uO9PRC)!3fR+h>@%`J8bpi!6m+79+@_=+q_bJgTf?8mKMUr<~g9 zBhR~qeYr%TmB&-6Vri zH>h1WSNxDU!6i{>v3qW+*gJ@wUF9hd&K1|tzftGgnRAU2g%)uYXIEoq8`{t%quMfJ z8YBH`#+M}uEz)9V8^UTdoVq;x#7-OWiW7$+Vt9gAZFD7R@0BQ|%Ihhe*on=}Sfy|p zF^}Gy=df2{&mrn8g;uwYi)!+><32A=b&!dOcL>~^kM3g@k;W@gXz{MVOSqqZhItq# z-dv$<^u^CL>;XN`bR1w3!#&SenOa4n(8{3da}Ao49X-3RpWs{?t)4m>2UZ|alrMpI z(1x4xbFa92Gym1}+-~;ET9&64c|!0Uf3CK@-#2)t#U&OV{I3ZDJWl_cb8XCXYN341cybWlC*sqWU z)2Jm1E$XTxLo5gK1R%Bi9vwWdQ^*h@>MVs8b+H`yxDj9`(Ersz&B`}r(D~1 zucnPi5bjh+6k6P#C(Vg~$tIOsh;6*@S3{V?g22oI=c)GY_cVHbu&$~c6v=a+jdw51dqR`^4;ts5$yY8pRYpiMN z@B~)>yyG;T=OhX(;xsqqMm9gQbtv*8`6>D^;{J~Qmbj;oe?r_@3N7yHd%jo(`woj{ zmwRMux<%j)Bbh{@#a%@P)9om8pO-V7d3)zw6P_LJ8cGye+>gDZT>Qkz2$JBgGW|V4 zeYcsBheV;3N40Zl`F`*G-KsHA)B9)aH@^VXcG{vTtE^GM1z7K#O1mX^%%lb7IK+kxWD)2{R< zNLbKOauEqLPs)~poEukh;wUqfFR8_@ceYft=2{&OR%(?>7aQ{4eHfA()xCPHyI>hz k4QrW^4VCxZ=4MD_?iPIia*Y4lB#l$%&N%b5{riu=2iPPjdH?_b literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/ChatConversationView.strings b/Classes/es.lproj/ChatConversationView.strings new file mode 100644 index 0000000000000000000000000000000000000000..e1b380efea91380e2f16cc8dcdef729fb44eec69 GIT binary patch literal 6046 zcmdUzTTc@~6vxjqpJGGe3&~a~AQEFDEf)zl!&Q7MCE~6&zWfIGeM*8~km%F^Z;(ZnA4O!_*Ej_-UL6a%IFG(TSF4Nr= zmRYeSKhQ~aoMMa*(>@3yIU9g!Ru(K&`otI4Dm&f5ZUuCCkfj#zw^iBLxNVqk!)(O2 z8?eSJJ!QLjd1c|$C%!m$*!u?WXt7@aw>oF_X$*zG%}V$9M&i-gHD`y!maLlkUv}Mw z#4At64+Cl9A$q1dhQI#yT9i4UcG)9$OYEZ2$9D_M~f$V_Ue2Ttwy3cqd(qx z*^?s)iDmoDn=q7EJ&86h312=^y{gzkW2K(hz_4;Q5oXHl7@4>{h>?hs6Gr zc!x`37%px&r42NTW1H$58GSV$j{n@Ovajao{%2(k&)9~CL!?9G7vzn_hD*YijYOBc zUSa37B>E;X{e`@T*BWdF_`l{6W%`yU5#CTRqd)EqBH%oTD^xHcbxem?k@W(XL;*hI z?2_hzSQqt0&7%SDZ_%lRE?OtWbwi^^r}1Wpgz5h1H_=ORuTqE$R}Bwu3$^ekLsEE^5Y(L_%R$Tnz_iCKd`LtlJMoA z#EEP%;;eYUf0N0I{(Kyp91_Y7-Vn+)dcL;!a7p|xeDr4J{!!tSxK)FJIWl4>%lx-) z@!*p1<)K%fy!l|X$dFcQc`L{&G4TNoDr85kmk#Bl#e_@3mx)xb;Va1TXUYq5>j^BZ z5i>*iLYygDT(~5jf2LISwWs&%r7o!xG;>~&JGGuZkzI=omxQlp{L5Zz@I6OFceMoi zd-=@VfRSyB1DC`o9BAAcR5uMe33}fUSBrYTa!zK_-l0vz)84J{h~TL^k0#l&4BBJ) zz}%sOvU^IGgzFUSvtxuN@%=%niN=7RT}=j|oqXTaBo%o5t-44``@7Tr+Rs5B64U(v86DJsTjV%+f15EY5|28(it?y*2`^m->YMkj~37wk;du)kJ|bGDjl zv(EISg9Q7ujAEd#K@l@-@x}p2DhVXL1rqc9iW@QBbp_m_=MeV$dSvx9LW{o@ke0E# z3fNAM1~u`)cj?1yLY+((eH8cCs?O->NEawl*EwsG&P?i(mXTGL28diL*8yYo7e-HC z3kO)&A=~Lw3zRXHY`kWb79%jeqC%Vgut9sQlSGZAWn|T2iN(0YCf=|e^A?)Yt8{;Gy1y# literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/ContactDetailsView.strings b/Classes/es.lproj/ContactDetailsView.strings new file mode 100644 index 0000000000000000000000000000000000000000..8c5f8daa4f98eb59d3f3567e92caef585b08b173 GIT binary patch literal 2958 zcmdUx%TD7!5Jm4gUtzI~WLV4yh!6`xW*~_7LqzPH3`znakwSpL-|`zQfYa?b57QId zau{jUa?5s?tLxsnRqc=Wf>ul0y&fO(q8xfmyq^ z`3iG#O}6G|>Hv!y`8w7Ma~Ey=jG=T{EVEx2%OqoAG-h{CEuxu@q=9BklmWY$n7cf8 z)zlkv96=9O)3B3I$CVLF21gP@57dlLH9Rw)ssw`Yi%8uEuokz-s`oNp`;4@DPtwL7 z{#usZ3U^5ukI4Qb=vumB9%`58S&S|VmkM0_Ch0t1Cezh!O}|0q>j$~=b;(mThR|h^ zHH+EmJ0I?81)Cn;Va!)@O*>Y@4L!lZ8nqbdB2u!;A}a^eO7?V)`b^E6$i7zx(|jcH zaE8)-`cIR2S9hp>R_!%?waCN6zeS%;4Rw0{3HSr;G4JbEt1%W_7I|36riR6KxH~jx zdRy7%{Do8VF^1MAGe<3dJI9`YiHI9MSE0+5bjop)!e2L( z7H~@FKwG0E?xE|r0SBmsBLt|8jr6U3X#rJX=X1(UtS!12sss^im<)&x%7AI{4ZX3l znyo>nYb7Lgs2^4 diff --git a/Classes/es.lproj/CountryListView.strings b/Classes/es.lproj/CountryListView.strings new file mode 100644 index 0000000000000000000000000000000000000000..81c3daff6f40f8f67f086864f65b46c03db7f0fc GIT binary patch literal 490 zcmaix%MQUn7=_QePtkNK!NN+!g6g7f6_I_E{`Ra1E(2_exHBJ-OXXdPCB##;o^_a5;!&QK?&wi+xQ3ZI! zC_|LKTDiK1Hc?S4G)47PQQIgAP+6=$Rg`iHCwF>rxV#YXzQ&Fh~0U literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/DialerView.strings b/Classes/es.lproj/DialerView.strings new file mode 100644 index 0000000000000000000000000000000000000000..f6e5cfefb3e559293f295b46ccdb75a8a0b575a2 GIT binary patch literal 3736 zcmcha%T5A85Jm5ruOKX0s4$=y<3dm(iHQsK1CSwz0%Ld>{anAnoeT9=*R-SH%+O++ z&hV&t+&Wb?-PP}J1#F{?B3c-siy21|hdfHSLI;=V;}LVTG32iiLfQ{_wu>G|-&{Y$ zHP4QC%<+UXp1U^J+UJ~L!ZUqL&3zN|8S+Wf_$5|!u=WAn2g+0hVxUg?i`92tK$jZ%|*bB-vEs$0bban93fqKf^cst}87U8qW4 zzBePW)tg2VU}uR$EUqM~;+LeJlam0I6_ScGiK_S|+07-f^=Idt0D&`!s`w?@%O$b( zmyo#6pQ_@Qq>)Qv>n|axJLg1I{F2z2DgBMN^_P(BI+Li1Uy^EWPHg=pBzw*zs^XW# z&P?e!vGtdbG@MCP#V^SP*VHao>Fk~jNOc#V0NBrD{H1$TzS4~`K4--s)xHAstOuhFO}TBPik`|J7V2U@ytlB z)0uD9sU2}Y5VH4`N-vU9I#+quWIvLf#VTZc=T)0KukKR@?4IpTW!abicn@3T9&zMz VFZUP1?cQOWnZ47Psyee3@Bu*oGG71y literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/DialerView~ipad.strings b/Classes/es.lproj/DialerView~ipad.strings new file mode 100644 index 0000000000000000000000000000000000000000..5b82d187cc4a2b5296d8133ab300261d97f4ea62 GIT binary patch literal 8590 zcmds+%~Bdc5Xbw>Q&1kQ+5}lttW*wY{6J9>jfUjLmj(l3P?MOq^%-)@A<4gIc7n{# zvNUGal(of*L&Nm1r>DE8_xGU$UJ-oY=8qVMZptm9kf7->Vc zO0OWLwJ1e1E<(>7-k0dvOtUZi{e>##KZ|DTV)O?8H}SUvjadgK>Cq32vL-oP^H}6k z*^h1Vk%r1rnpjgz+8~d)ZfKzF#8w&pL)*CZm~IW$=O^@GjfYB~hgxYJeAl>!kyT|L z6Gm&Ewq<*1iNn7uSkr?kyA_=Krk?@F=M9<=vWI1I`LRyNEEQv|`OzcIynVJwbsHfso8}|q(wTxNjso7IO7M{vlsZ^_T#vOlvHcsm(=9%B+?Rn zM%-f35$VNg^#HBi@4XJ9c7#bv-~VnIv^dNJ+I8e%CaulHQ~S z`cnbAMZBg3`bw`YQkR63G>b}mwyJI$k!TI16iaZsdP8rZU%MV-n#X zx>%3@l%S4Xz%|SPtiV}s5BblwMqEN_ji>u0VP5+^g{KWis2sS%(MH_h(^fNj64H!3 zC}{^CWAB|SpW}Rd3y-sX&LtuBIX;W=lcJtF9p%+YiM71LD4&cB+Y-juyGD`!b zCtzjjO02W!l92Ldd;T|F>!f|%0xMUVHJllFjq9{+d9zDG%ACbhm3brEIoLU}?ZVpw u^g?R%!Loo$LTZ8kA+njLN=d$OgZjD#8-$2$TvzVIdOU#{gH*A89m@HsyJ_oT~}Q_g}XyeH}t|24R4L)LCbeJuNO zEFL30;aKFk+k-n6nCTqnR>Wee8O`60Qf20!xu?gh&)oCpc=n$%Q6Rq0=L{U#b5H_l zAFM5xyDsQ7hv$4cBcI5S-&XO<=>pNhr4<211 zA*Lerp}z%LJR_@m*5KHL^`^VpcKPrVQC~1WPu_B`N2WfI!C=fG@1qfmZgic|?>M{i z(ak_tV$RjRuJhk#)qovkN!N55u9Nbx#*E8kHJRNdIM@YYMNT+YWorbd6=C5F#?%ov z7=0QjDj?Y5Q{#Ets8o>uaoV*^4x3=OBvN_1kY|HCLdL8J3&|?uZIXv=H-1sR@|_0H z-&3i)yg`>dxK#CiAqRAVAX_1JE8-!kl!Y%%24Ut$H8WBgkYS@~ae{kM;n>D-#~o$oa3B1x?_(B&^q|JtrMYcEXiSqiA@7f|ac3PI2Mj*|F9w~HfNvtdCd`7FJb0Rs7&XJa&JXst@2ssF?EzD+blHL{hPDwnlR>1s>H;DNdk5+_*cFj4l z$z0JiG)Nsw`hA)1=q^EiK?QqM;wtJKW!s9#szFf~rO!`#hd7N)1dOEd#+R^u1O7U` z!-L2Ch!R^7S+fwWkV&!-U-3SAdM=A@58UOf1%@sd7WwYcDFa5w?F=kz(HgKKtTm8k z9{(2eSGda}oU8X%6=>m5qS&p7hr+ytEe-mx{^oD@yVGDksY6fJ*KT-Mybs66uDjLo PADtM}R)kgMS^C;9S1CJU literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/HistoryDetailsView.strings b/Classes/es.lproj/HistoryDetailsView.strings new file mode 100644 index 0000000000000000000000000000000000000000..0b8f1d34449b9284d0baaaa4e01ae5fba63ec77e GIT binary patch literal 4774 zcmdT{ZBNr+6g{8!E1vL?q^Oudh%vF71c$l>jRyVJt)(k4O2$y&-}*QFfS%iz&6Yd5 zXOj)mtn1pl=eg(Hb6@)BwuWa|hd~pk@NmJy;59#M_<|N1xWtG@j5FSO#rqz5Jc7hB zLKhML7t!JxANZ`xC#T~T8j1Bu_RkKV9`kvR)-AjpTkT}e*Xc=(*E`slX_vL}3NBY1 z;un1qA8S1B!_>ln>xcB@D?JbJGuz(=Su0_c1P5b-~@P>FIoHL$M$Ip1x zPqY#6PRxjf75S_oPxX}7H_c*$I!rTdk`wdzRh2WVt@V4@M2Cv`Mot|Z;XB-tZZr#9 z-MDy|UXVv9uZ5ydLzTqTgrRDr)2H1$pqB2hAuYTk3&KRm^Epn?E-|55Xevp)klhVg z^$MQ!s9>pUUZQR3NTTQvzj-!U^@-@YObfHsn#F4FZ1YbW`()DL{M6;S$+>H*#EoWQ zuM(RXX))aM_nHnX>yRvLF-8vg*d9-3c{R~2?74Wlz370fNDlQm{|H0=onE9_*fO-N zUZl-IhBZ@vQ_zqVdyQtHRS|99s$R1ES^1Ea!DEzEx&VW7Ph*13Uf!Fv(XJXXyP-^ZG6OT kDT6c%O(n~nJ65Zo0V__Me7T&T9BSzk4oj?Q77wSNzrRi5-~a#s literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/HistoryListView.strings b/Classes/es.lproj/HistoryListView.strings new file mode 100644 index 0000000000000000000000000000000000000000..766ee54bbf9146b6770af552556e2f685e6076b1 GIT binary patch literal 1874 zcmdT_!AiqG5Pj!-#nNLTwO|_%@nEgRVp|dQ;w?=giNq*L3g+k4H@mUHST#X&kY(HK z?(FQFH*a=dUo7mQ4}}xNaFMYo9I^LsgE=PHAZL3-!kI(PyYScoZ5d&Wi2EX16j*R= z&6RlT;h5ht^7Q^(@6GiIcY0q=>$LQH!M*n!d-OHObn9bOuJ?)4;`a!HMi_cq53};D zlqeK@o}qL^KF1PmT>gJVDQgn3#nv4|OJWnw1LFD}PvaU-<3Hi)Gbaj9I%__W8wR^) z>69ml#*6~LQi@Y!z-i6E`#El@%5HN%C66(?RDsl$)XMh}?xUV%nQ2=O6Y4!>lPDFg zIg&hfpT+j^4l%?zY%F;f*;w({tL1o?#ed=Bs?5LKc+K*kAS4SmvvtPb1uk(=<71aa zTRtjW9;;4nexnq51)3_QdJBxAMdQypPV=^`=u7T9qk6@25{?VbZnP>x&SbO~r4~O_ zh4@X$$BZ|V4TqY!t+BGpV!&MnQ}t39R3T9nL?iX+;(^^~mzN^YC^KSI%tVDS;<~9_ F3vXB5CaC}b literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/ImageView.strings b/Classes/es.lproj/ImageView.strings new file mode 100644 index 0000000000000000000000000000000000000000..2575a4289d1f036a3ac90e3203b4d86c7eb3de16 GIT binary patch literal 290 zcma)%y9&ZU5JgX&uLvmvDpnR^qc#DFAc(bw6w#nU)Zlm9s|Se@!9s>zc4qEtANPPB zF(DI5)>Kx=$P=+7Va%D6bztvg=zL9Pyh3#!cBOq;|F4R754~+^{}s ya~WGvnF@)xxA%e-eLCzode^!S8voe5f$v|4?qBJm)+IGj&PCRD#)4b(-+(9odoWA@ literal 0 HcmV?d00001 diff --git a/Classes/es.lproj/SettingsView.strings b/Classes/es.lproj/SettingsView.strings index ee136d227f9f551c587a6f924198f4f3e261b301..64c8718bc3eadc0080e9dca2eca69a666dd9556d 100644 GIT binary patch delta 61 zcmaFD`hj)B4Ms_427d-W1~&#z26u)~h9Cw<24^7qGK1e_X-3tF3U-sdn0f>p8A=$6 Q7#=bdGbk}wGjK5g0Nx1=>;M1& delta 30 mcmeys`h<1E4aUg{j3Sf2F}~t+Vn}32X2@nxVz6f5VgLZKQV7Zb diff --git a/Classes/es.lproj/ShopView.strings b/Classes/es.lproj/ShopView.strings index 816d48982100123ba2b5eb979a3c78df1691f936..0a146bbd5edf1b35461a0bafa62795c94bd92d42 100644 GIT binary patch delta 55 zcmeAYnI^KKkD1?;X2@|g$P#~QlpCK72oevg{VOz%x E0Fa^%761SM delta 51 zcmbOx(j~H?kD1elA(0`8A(bI#aw4niFanScEoLvCUxy E0B>myEC2ui diff --git a/Classes/es.lproj/SideMenuView.strings b/Classes/es.lproj/SideMenuView.strings new file mode 100644 index 0000000000000000000000000000000000000000..a1f126d9b960d8d3673c431bdc4bdf9cb135263f GIT binary patch literal 478 zcmbu5OAEp<5QOKPUr~B2SW!F(BKW#g1y3zreH3dcReXTIUj3wLPw}FJY&MhK$oh d*S@J;<3fzit|r90I^3&{TCJ9U5Jm4gUs19wSkaXrg7{ce1l<(e`Y5$UY_SUZ^Xfs{E+il*A(NTO&CHxU z?nZ6-@-)^#Yn3cd1GZJ9P;+t{#oSr-$)54A*jh7FuDy=L6TG-mEqId=ZBd5Y)an)a zNG)|W!d}!Ne%JMx!r;3ULDSVXm0W!d75-t#DwaUI7t4^pNL46+K83M>H0O-TuR+{gYD#u##=v-m8#M%knZEG81 zMOlGfXow;yj#3%=g z#`bkMEi-S)kjFCvv=8gv@rsCZmxRj)BfR_Y`x*}S;MUh6z3;rAnDzCZxvy}1;O*1fW#-@D z?e*-;shqseErz!&*H^gRL%K>kn85A4=Bz(AkPkScIea>Pzg-e8ZvV!f-my>MxzoCj zPfTen0plY6QUu)+J{f36qwN)u|F|UF7(4g9SS(96vIX1+gJo5Zh-~rma!Fhqma}~_ z(}hP?xZh8}R@XJ!9dcWgqoUJtNw^VqYfbNGczUN0&zvFZjdX=LXYXK^sAw{61I+O= ztq_Av);THB9pX+qdc_*W(94}ODn#uEF!t1PI)g7|Iymi=aB&*p{U371C?1q2;};Sl zW=K@6!Cr<89_WUxrQ#mxl5ny2g-mMl>o;4q7#+R(UuT{P$pleV>&xW6q^!4bob^K1 znOl`5m&WnABwYBqx29Lz=c%84PTO7A*Fjtb`!?|=psKHuA>$0VBwP%f$F3wUF21gB x5Gh7rq6uTBt{>wD#QAVZT-Lh2+k4(5Ms9*Pq>>7#vR5>D3bjkZ<7!)XWYqgsO_l6HTplqxi2E$Q-6owJf$9-275t0 zI17$~bB;fP(4KPrGT7(Ne( z4f?a36_}SXcQs|jOTsAbM}os)@FF;HV>zKA?Lj@W#8EE+{SYJ4`(i>OEa@Mz4c^l;wwGuE+Ko1)e_ zY0o$;x#6_uKHm?>%cVBf_#!TXHRt5u3$pCA$2?0TQ~|B3tuyX5^g~L$1`27#=|^XL zqitn~FCx#Z`TCOZq!UyO<76V3!&!Nr* zz9(3tc2W#TN90-Qe9uir96!0=m7^ct7Z~>rz3o8!>fkB2u*(LB={ZQb;R*2R|n2( z9pXG-oL=lZ~%36nEoP8tqQ_0On(Oqp74bvW{I z#~jbOd+O?kcIs-&3C1q4xfk++^*~SAqrKO}9`LJcY4#D0@qqhkLr)taTh#8kQ}U$u zp+!DR<39`{^s}^JFpZN6h>>Dwnwj0zZ^nMa-OF{a@vY4Gxh?B`5!vcjXKj;r7E*ul z8zCLftooFN#k;aQnPqSC7;I|fcMh+xO%}K2g)id$(#08OKT#N|N5v_T+(ol~C2LI; zRcqE6?ej{MG^2rr`Q5W?%cMyX?$carZ^^%Xp!Aibljr5i7Cw zoziS+@a5wpH(B9$=+^m!`Ae+M)h0ddj@SaeaT2T+XeDRgQg^ovF<-=Bh&@M3_uOjP ztgI22qgC*2u=D%)*i9#IG5Xn4_{QGKCtt)>>?z)rHD-Y~LN{Sf5$5FV3*HHhr1+DL z=$AjfJ(zfNHE+PK^ZqP;BhzU&J}3@p#ZR7=xc1N>9(6o*p+`n7s6BN_0J#!Y-qjOK6?;L;4l|CC@vE zG45^fiFPiDA87Rv-L;jZMgRV&3Rdo*ZMX9uP`&Lp3`KgbTa13+sy1*#2-u*wuiRjICk-eJy S*sRU8jm{V08(pXWHvR?Dfha)$ literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/AssistantView.strings b/Classes/ka.lproj/AssistantView.strings new file mode 100644 index 0000000000000000000000000000000000000000..57254633aa4e57aede0e49d36626f3dd44321ee9 GIT binary patch literal 712 zcmchVL2JT55QX14r~L_%qY#VqSUhO8B_Q^o?ZI2BL1K$SRnUJKs0WK4YWqK`UrduK z1cR3{%&_ddeKT)ncR!Y{R8&E?dX=XMR!{}E^(a?O?w;k7vvtGml=GaJV5(|kF5Xd9 zEndZov zV9)R7ZwBusG;8z81U~*nf9=rUOOAG5eSVXJN1OK5O{bOYI16#9_HQ(YY(C!l9#%bd AO#lD@ literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/AssistantViewScreens.strings b/Classes/ka.lproj/AssistantViewScreens.strings new file mode 100644 index 0000000000000000000000000000000000000000..0784dd4e0dd16768ece189156db7a4441a47fcd3 GIT binary patch literal 35436 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 JTNF$R{R@4`tqA}C literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/CallView.strings b/Classes/ka.lproj/CallView.strings new file mode 100644 index 0000000000000000000000000000000000000000..61ac3d57db9f20d7065eb6987cb39de5e0e2af44 GIT binary patch literal 18550 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 literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/CallView~ipad.strings b/Classes/ka.lproj/CallView~ipad.strings new file mode 100644 index 0000000000000000000000000000000000000000..61ac3d57db9f20d7065eb6987cb39de5e0e2af44 GIT binary patch literal 18550 zcmd6uT~ici7RR4!ulgfQLv!=BAD#D zTU%TE33m5)o`*)e`*gaGlWC}_=^3WaF#SL8Z~edjUUFZ#FI>Zoxd(39?eS>1KlA*| z&AS`!n(MfI9*^8ZKKX{vm)#1FHBY(aT5gN)Z9#G1ZgH-~nFnY8q3NFbb1QC>&sI3U z&G}tk!~dFr{yv|q@ckQZ{Oo)EZpihW(tN@7UE+QC?8{2O|Jm7pdL2EFj-r>*ar9I4 zOVn^b@b?Rz$I*|`D_-R~F7fCk5B9m{T@VTfgpcc<2Wz|&KK?!@`ryQ}i(T72;kfB` z+;Pzj{8sR-{{IrDuj+!`w7$2vM0qm^xryY8NA=J=7P zu<|2ZMVVfF(Dxw2eWdx!%Q@K3O{BevlpARFqf$u^AX&k*fX&39+UH&PzljBC6kkFY ze)WUSYroqqmOkw7Yj@dQDUr_=cN6=M-F0`D<2JfJoujlzmMTt#m!VTSx^pNv$putb-Oa?lYx{xk4SlbObRFYgaD3M=Zj(O-SGCHd7) zm9o*YtYgfhv*ef~$a4pb{rEnK+-&aX$1X#)1gZ|1lw{ItyzZRY z>?(h?s6HD0%(nOSiGCKzb`(t(OWyan$`$@sl6NK=tx;%*e~f;kj*y(W;r@MES2SGO zhTla$Bin|PT>3p6I`-Lg_*80=BhE^NBEGdu|I7Gv8~mY06Fq<8c_nq%10KP57xSd$ zx$&*ng=a*-Yy~z7pCz~Zm_p;pb9izBrgy&TYPi36z6b}T?g~e#E~?<|F0ZTV*~i=n z+8<--auokQkg))b!fNYjt*B-f-QiCpSS0f?yxKm92Y8L~iMwb|I>KudR@~t#$~3z> zq$4HTJ?`en0Huyz;W$qeo6aEBD6B}sRrD6=B-Z>858c5|f8V0VK|BE3Epm8~@og&S zv~)EJD`xR(ud((QHT6>j|6XY}Kkgn=iN<7T;^#N9>!lp_JcSkefAHJy!QOjM)@UFm2H8vW68ZO@2iL&A0;+(e$fr$^3#@~C z%O9T-*;jMu^AuL}@4);V{JlrL0FqUto_OXW+}EKIUp`Ky7Nh&Kxz3A5Va5FlNxwkr z-`0S4Is*;~X($cNj<~0WWB6gp)ca6e|zfQ>~ z*?5tz-@v;+0&5%0;^Cg4^J&Byg%xqQirz-^yLfYn=X-c7@$6wrQl72f1o<@BC%mVZ znrI@!0gb}Sfh2R6DkYhmh`;~E`~5IQsXiGft6j9db;A|uz!V-%x)O6<2kyYbtqcb= z3awtzez#2OWmx{$dUb|;Px{Z#d`xSj@k#e0saG`$4Qt)?YIj-v9C|G?vQWvEUE$b=MmGq>eSmS5NY(_wK2b+)x{}ivE_IetH zrUmI=wCcKL0z8fEWTw1E4%5I=!`yfoeO_~)^ZB1n5foYZEOm=?9oPKS?-2ai`KLx< zm8tl)BXXJ(p3=?vp58_1*+|qsVgC8n_vhaDbI+sCUFg?^tGDtmnb;+B_N(q{kGPQh z(udh#@>|_rv%SkWi|@LFBq#7*F*1G1Bdxs}g{Hlq-ev608;LHjeAFW;*4Yg_k>n+k ziQl6FNv3Xzx1L4+vlLdH4RzNsn)xfwH?>q?)q4*TkLN(Yj+A3MiGxfJ($dx_tURc@ z_mIqciX=aWw~{WC)Lzm_zs=ui)Eb2qb-0Q$3+_(WKQ%9HB5SF|T0RE%^P0_6Gzu#R z{@A>#{fTfzoSz;5*H?@PkPgFYyf;MK}Br8#&^6avHltAA74i)%r9| z{DWj`t3I;t(y2?PHXk^Vr?7Iu(x=JhX?5l~O==mbW_EnPQugJtHM~Y)<;F$Nb2N-; z|EW=EIYQMur#ss(iwAd!{F1#c`s!_nOyGVd9%vL+sn!t>k~mfr`R2hU+cRTiHZl2Z zi%dN&IgP@KG+ae*y;rsQ!aUwe;@lFiF_t^ZBa1grVZ~eLe4(2y)kP}OKKRfg--(g@ zBGE9-4UNLe4K43KpDooyw~MS{k-S&tPLps#>h-I+*rrif`EjwPjrWLMlIxG+^I~H9 zcj!b~2Q&&R=DIWfsxydX(8|>5Tk;v{N#4rshG`U5^!3jm$~I$VvqUQFK}% z9tqw(a7$-(gFZzXuSQ|TD|go%GbwsaNA+jk%luG&rPmy&z9+E?2V_TNlTM9HPp{;% z7LCHnhx+#ep4W3<4ts5?&IoYbU~x2g9kT|NSG7I9DMDpTWqPyLzh}?Lhdk= zy~rm#tJsL#&2a!n!k*{>Ib60+qfuD-5;EEotRrkp%A8d!MY=U&J#|=2(wi>w7VB_q z5>6Zt|HMkBi3(|Np;1^lQO6x27Q5JBzu+o(n^d%d{g6nQMy*j;QP=Mq%3`7H6^fj1 zQqRk=k4TZlou{zkt`-Z=*8^-Ib(ynvy!P**3EBMujl#-_i{JtJPbFOB0k+8M_u$05 z&+#v#A4%UU>C|czR!)Sg=xugj+b6h>%w==7<)=9sij>+2o$? zq}yI3^=-CIWPkL!M?Ztivst1>VMi}zJy1Kf72+eh|gnQ zU#%Y8p<)#LkEwm78tNlUPRD$W!ixWV>cO(u_89G!DtOyxd)L68^>P}86?+}A%{GUY zjZx|F4EuZj=CShZyiudD;{JF}U;iAs`nJkGe2`hRSbj{_H=E;zMq%Yf-Mwr5Ui0Gp z!Vb8_0}S}CNI%{%JJZrAtX$Bqs<(Mx+4S-NTaf)+nr~wL6^u50iQo>Hq)$ literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/ChatConversationCreateView.strings b/Classes/ka.lproj/ChatConversationCreateView.strings new file mode 100644 index 0000000000000000000000000000000000000000..7e530d535303712ac7b57be08774ee40729abdce GIT binary patch literal 248 zcmezWkBdQ{L5o3w!I>e4A(5dN2o)G?fmn$ll);n1iJ_FC1PJpP@_-`NK=DL|WFSlh ztIT9bV#oyQ%LJ;ZWbgsXB>`n};3hbMRcAwW`U7RNfbz*e)t(G4a8+pxen1gjpb1Gp nvK(k~8dQfC&~02mHZ~P{M7cx>Zp&kVn*tXE?g)T{5Cvdao-Xsg=bdwzUq9RAj@*`nq$DS4dBc^EhkV*)Mnb!n zmppeKa6c^>u0?H`l?BQ2yDS#(WQ=DEJjqqw(66mmFMm17(-od)upW_tidEm`^V_VX zjqiQZ5$nISSKe^y?R#bK&{HdH<7ytFY1W^Yml23MrN_Xe?zp1b1=Ftgk#P@fwmAlelT0|2|`c1jWNSz{9B{d5hjGOWtZ3IdRbz!q`<>DL;PP{W>+zxx@ zP%{$5xIi!Q;#*_-7=#Ozr?1~9Lug|hCT6hqvG0-l1|K#HS3Ztl;60iMV!fKhRY+8f zza@|GepXj88S>d0@o}A5mc6k|q*K@R42%#FyTP8Op7E(_N<@rWMc6DlU^d7$)w~d_ zVB)k2Yp#qzQD+9Gz@q&GSu5+Z)TXXkqg)0;FR0)m62KU-ALwwwZ zgEYBO)k`z-)L_D9;mSnqE^)0Lo1Yh#$fWb&A0l4*@`@;vG+3}%+?>1^cJ6K+(=yp# z<;fK?rK*_cWzs-xvvBqO&FHA2&o%P&P<`;QB`+A);bz=m!)D>iMm_yxl>R4JZGsr4 z&apPhj~lvIC=%h+ov50yK!!|#cut-$mgtzw?$Ksp)BXYV{{ekKP!*Or-?rMus3?e;k z%445LL`C!XHu3n;8>WI;5pOZr>EjFEvPk3}t6TW8nu>PJX;;(Aus(zx)CN)Ejx^^? z@thRV+t#UiqOUxgYjb68Ow~LXM|JKm!OVUs#rTa#LuGg_tL+>W-_&xjayY*wc8c#9 zQZ9ZkSShv8zo2FIWt3L|ThWdNV)~OJdIQ4t6b+5Hre>AwM7>}fgPI>(7n6{I=!sI$) F@(E299|8aX literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/ContactDetailsView.strings b/Classes/ka.lproj/ContactDetailsView.strings new file mode 100644 index 0000000000000000000000000000000000000000..d27b45303f98da46c34e323045dd3aab29fb7208 GIT binary patch literal 2918 zcmd6p-%b-j6vn^nUdC{ByS5N06q-oE!c#)j1dJvMF>2y7 zsK1$Q3tfipPAHK~I@#%*-8tW%b9Vp!Dd>*I73r~>s%nQ3=^?){y;fNz?W)aaX`6o@ z@PAcx#;S{KsHO(@HHg^PJbN{En*ArtXvOU%cP_HK!G4|SvZnh{Q{5+zlSzT=DNW=$ zWvu^%ujYe!Zw}3Ob83!_T^+HqrxqADhp*)F-0bFm6~1B$UojZpnK=Q^=Uj-+RY+KG z!*~bAd#XM|%LomuqHUMI-P>`xCEBc_+Hl1dh}cl9=Q?2C#v_v{jJ}8o&P#GRSMJ1o z0oQ3?yGV!Vm(0iJTleZ0ik_KIXnXUTPIsBGxn{AjOMS#Rf1mlKig23T(R1SX=Cc;JZ-2>aY-Y|Fcl=UD&UxZI*-?_J;HY=J1Rjj)x z6>FJQIfc*{5vpNG{a&x*UUaYR)lJ557gzMe`M0ijFmRvB?)kpwVqZik13%11YS_Bi z)^wPsN5@DO6H7Qf)*2(m6Drz*!Tf0&%G+^qIpq~;10@9jPA`v5> zLH*qsXw%7pUA36W&fj}y=bkMjQ(iKfA(QUO<(_2cSn>-VGsyW@#x-!a|R++iM zd`&53$y+v6R};S`7Vk9ATAh_ve}`H6HcGvJ=6y5&hKBdcux_93`w-t{#wmNvsoLLT z`gDDgbC&2&Yigu3O!Rm7>UQ0ZJ8+vW(MR{mb=@KTBkFzknYk~t2aI~O7GsGrK1}9` zd{uAs+GDcxm*`X?bSj0>iO*A3KxG)I9k=yg(3;gtO3a|Z#Pb+46Jat_7?a`H10LIO zro(dxm$qof&y*)VmqJEZ-dQeP9C-zcMU~0f>(nps--xitv-tCTvh3L;Z@z)a?xkRI z2R4}6T#Q2%6jBg)ugBC^^$0wI$C--cSro;gN7TlOpd>aLl@|l045u<3+#sqm<$ZuQ z#GFsmV0IntuzWBLNzh!IY16CuJZZB}Q1Ch{Yg+jYPWQm)8VId;zP!>iEkrowSxj-# zaNdE&?ty}-Y}YGl$7@B%m!8}6$b>99VdVo>$F#8;2aQQ&`}A1tpw;{CyZ7#13cISr z)#9=EM$5SSFl_+@Q*N&^-z4KJ4KppzqA1e_H<)GI30NHa`^?@n-rK4;BAM>;*HDH_ S4eAzu5ziw;@+|%>BEJB%b+Q8h literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/CountryListView.strings b/Classes/ka.lproj/CountryListView.strings new file mode 100644 index 0000000000000000000000000000000000000000..870e6cad54788ff2a8056f74f5641489e2fa8e63 GIT binary patch literal 482 zcmaiw%}N4s6vfYaR`(HxSqe^zRuV4!T4+r|CDGCb(J`q-6XaXYqR^m)5D~tF^&1;U zkwN)$FL&;ob2;byt{k1HBv%bh)Ymi5Rh9D8Q(G78?ls__r!%%O^DBLWxmF8I3-%4W z8r4u2<|W@(y31HyZj51uFxzV8>;P`8vW9TV3UsPY#wel6VJ<@Wxe718l-S%Bwxqw= z%v^ojJJXLP_DQAM9o`|Qb-i#m){`DH4Sn>6s7^D9a1fC~1Y)|A$|i?8IfZ&S;&+74 eF;369l=g~l_xu(i{Ppc)O14>i*~i-Vzw1AHLs26D literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/DialerView.strings b/Classes/ka.lproj/DialerView.strings new file mode 100644 index 0000000000000000000000000000000000000000..43aa9f18fc845829d50bf5834afc6620fbd62a31 GIT binary patch literal 3726 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 literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/HistoryDetailsView.strings b/Classes/ka.lproj/HistoryDetailsView.strings new file mode 100644 index 0000000000000000000000000000000000000000..d307b91d18d3d93d5565f2ea516fad9018289197 GIT binary patch literal 4686 zcmdT{U2hUW6g|&8%}?0$vB_4&(55ja0ydSZOVntpZ+vWlwm{QjZT*!sR%5kBD)GS= ze}Z~uVIfR!S@xrX*)S}#mtoGiXU@I+`JKWIEW$z_yC~s+mxa50E#Nr{$l*0QyxM4S z<__mesPJ;V$Og)2@OuqL9ODt6mHA|MxI)g0-Whze$fw(UUSV_r_lHrdgXfFfNs9NY zSeoir7KSVI)R{U_=SuG|#cL9x0-9XC#(litzFoYDfGh9u(eZZK@i;l;z5cu(fHjTV z23kE67Vnw*O0?gJ`3J{O>OxsKQ6KnO&viL74HKh$h0mj`zLI<)I#h#2jkKut zG0$FV*}yMFgw;Wqz9$~)=vAah*W4!u%RK)!*;pBNT)taK5n-7a?}+}VD)WS#=rdAh z|D^e;UaB%uL_B`3r^-mZjYT(gVd``&kxj!PQ%zSkd xbsXX?8OY-qM+c9wW}F=1@5RK&9yvNik^pM%A(o&ysOW;`U?m8oXg$izTYjLJ)&;YR|-kbN36dd;ynYD zV~C7(hoI--MK#o=YN?vCaHH;2TXiWvb8e~!+Mf7sQS0z6F$Oqhhe?K!3(5}mr$i?1 zLnb~kGUvqMmWXuu2u5}FNFN=n};(>gjQ#BZ5MtmA}pf_&NY;W2DSgs04%2A$%XT|w$# gTla-~R>KbE8grwktKt=9Qyrv6ifm@7jV5N-uL_rYeDh}16LM_F&?BF04!3Pi@K|Q6`#X-U! zlFMB#|Ksk^z{jOWOh}?|>F9Y(2O3 zVy`x}xjot^``F&i*E4@FthtTsiEqN|5r55R#k`nK4ADJA%Nd3`);SUAR8@s**hBSo z0`-;l*du0ln>v>4d5RMC7FAb#Z}dNNJR^8!j%d6Q(f?k&?B3ye4QHE)bRZl$+B*GL Se{tq1wteFdn=pZCO8o<9 literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/ShopView.strings b/Classes/ka.lproj/ShopView.strings new file mode 100644 index 0000000000000000000000000000000000000000..c01445cb1fb17f5741b6b51bb20c2e7749cb9ae6 GIT binary patch literal 2576 zcmd6p+fGwK6o&unUhPL{xFp#HYdoOwf+`}?w5YA8c+=Jj8){41T?@XEZ-Zip2TXv( zL%h&8P`{Z?TiH(C#G)~i*`1lLnOXn8{xvh-zoj&#Nu_mJ4OP^kq;-ipp|Tc~Q&%CS zr6wa68Ly~DsawlHRRzoou-H_d|Em1c7_2a>hmHScOFi&jde8Ya zyQV0=<7bFD@-YO_2EO+>oX7t%y?Mr))HZ$^ewN_1YMHCi%fq1Ivh2)XVY9B2$K(eNrWOX#7 zpL;F~7ZTULo)E%&Ob%yUIxw;%f=(2DlJgzt6 z;=X00x0HY^Aig1(W;hdkog|bsi>qoNeZ%Fh>R)J*`|8|LaR(7DX3%E0hxQ kyvOab4&H!M!ACc%x*kLAvT&*36L+w=nZMZgPL$_A0E(xlu>b%7 literal 0 HcmV?d00001 diff --git a/Classes/ka.lproj/SideMenuView.strings b/Classes/ka.lproj/SideMenuView.strings new file mode 100644 index 0000000000000000000000000000000000000000..a1f126d9b960d8d3673c431bdc4bdf9cb135263f GIT binary patch literal 478 zcmbu5OAEp<5QOKPUr~B2SW!F(BKW#g1y3zreH3dcReXTIUj3wLPw}FJY&MhK$oh d*S@J;<3fzit|r90I^3&{TCJ9U5Jm4gUs19wSkaXrg7{ce1l<(e`Y5$UY_SUZ^Xfs{E+il*A(NTO&CHxU z?nZ6-@-)^#Yn3cd1GZJ9P;+t{#oSr-$)54A*jh7FuDy=L6TG-mEqId=ZBd5Y)an)a zNG)|W!d}!Ne%JMx!r;3ULDSVXm0W!d75-t#DwaUI7t4^pNL46+K83M>H0O-TcM<%k}ldLMUYmbRC?8;*ML_~`u+hC zTRf($$6_n!tx!COc+i`WgP;fTDE{W{ZZ?5R;BDT_o0;GIelt5?Lc`CY!D}Oupc-|l zLvs`p1+r+KV)Ez3OMRW{WD=h?JQkI3^38&E3E!Al7BO*GJQ7uEfm|GJNOCIPOVny5(maLq-Bg@w{=T~*- zl)UgX98XXN>2!*#fFSWGq3mkwPITo>v~Qzw5s;W)FCX+U&_oNK78rI}KY%BO1 zVolr<9pN@^z~|#)O@d4dz}i+mCW`eoadOuwc=TBqTEvfv`1hY8s=?vC8ToBrJ3UJ7 z#P5Ia=9sId7g|6fPQmmpBV_^KahY_v`LQPt2AcC~clzuVzikULuud5jXpl6LTh8MC zpL25KQ0x1ev7UYb9`T@*0g80oiz+^7y^c9(Dw_^^mJ~FW+5#*S78bv%AU5!h$6zv( zqBuI@cx<%fyX}Y_B*!R?74R9UE5*i(FdG%T)KQu_^EH$QU#HHv9i-v(|ad(E85XP28ToN#Ng`lSV zuzmjF9Ik9Gb7Etg?Bk&^`HD-#CeKYGlOM#Kn(W3BHhDvw5)eyG zUiK<%vt4{o;N+GKb`XgbT$|%I%JEK)*e5gDgd=S8kA2_xHm^8i#|W05aFcCw*7-%u in^P_>K!~ilQXw|^&npFxhRG9N>j1F|n>7O$5CQ;9GEnsZ diff --git a/Resources/de.lproj/Localizable.strings b/Resources/de.lproj/Localizable.strings index 0435a6c93948f8287756d5c6e605db0b44724a61..2599dd27565b04ea105ee06c4c6b4beed22d10b6 100644 GIT binary patch delta 373 zcmaFT#B!mTWkZhNWF1#AT@Qv-h9ZVihCGH6Fe`^4ks$@h%41Lf(?vkq1ta{vQ{=*(0qd ua7DcVlpF3?BoyIxHcCZFmMpmMfU;7tmy)bj3EG@)m)eW delta 69 zcmV-L0J{Isg9PM)1h8yQlRQo)lZHfAvj|VP6_f5`z?0Y;R+9{7Dw7mu60=BV;#rgA bzdn<;xnQ&0z%W3SgwUV!b$$ky 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 delta 138 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�{&H_d~cZgZBN_X>mQ-c4|0L!VEcaGo8to}e~qfTg`4U6|X1pQZ7)rKVao;Fq{zvy1dWGU07N zvPA1tG?aNgoSVJJie>4otkv!4V~98JKSV7tj`XZ`ENNkqr<}`zOe!;##f5fOcj{4O z&jWgak3;b*w34efa@{vPWDgCEZKo}^9GeO_72+Y zJzvSsSF%=e9}n`Na%vA8&3S`#CHPf;r-wMTVzRtfj-;0y;wEwDxUvu89v!rC`GLxq zjq`GO4>E_1JlgdZ@i_Jf>vWO6&hLIz=Y8bV5L<};HOB$1NN3Whi1{LM6h(%sI&5%r z_$|5>*`@uJUqYMZhfYk#gDAb$JtH3VK%dIzmr7=3xJsG!oI@k=pIrI+d{sWJtFpD^ zt?gOm)1XZgImM?A=ZdGn#WTHQEFqqndd4^p{{Ozc{CMrR$Hth%5;sT7&Q{Sd*Nj?t z$-BqeXg#Xo6Aq)jqq06}rWhU7WgyUre<^KZ#dwz@n literal 0 HcmV?d00001 diff --git a/Resources/pt_BR.lproj/Localizable.strings b/Resources/pt_BR.lproj/Localizable.strings index d987cb2c64ff3c3c159baf25e2fb063b4862eff7..d7b4681a51629be61f062bbea4301e374e3e1aec 100644 GIT binary patch delta 1345 zcmaJ>O>0w85FJSIBcRY4Y11_IX)RJ)gl1WU7-$!w#oE+@U(nZl8BEjmC8^@3J6*V( zwFNg_i4-1+8yAB90>Om{TI@pWCY!nx&$%}*F9C6JlY8gRJ#%K}%=@t)`SUBX^Ly+@ zK^$4ds!2gg(vY%LrH;KLS;=5IlEeK9{?}kFh$mBW2R_sAEQyPgBcn1YXXTQyXW`S( z=VSfJLK`U$+Xj{+dAxc=6#vQjg8^-3j%*eIVobOukvx7M;AsW_E>70sVDHJgA-I8? z3nth#+;-bZ)5HA+>JsAqFSgB;MMtl7GIm$rFP+h?57DEJw4!Qn&rN^P9bV9_ zmr+fn`%YEmyCM1W-)ZTyo%?>@>(9eF^f4L_n;7=QFw}T@e6xXiyXX`<*^Y?ankg!) z(=ckLs%<~(#xtNm(NG$;qgD}C`xInY1FMob*w_ndhn4hFGJ#_S030SZJq#Smr7O55 zpC;lpc#|AOWR=?rrEf3x>rnc*4sH+W-rkb`_|u!nv3Wq}u$HkJdM=&Zq&nN821MS# zabQRy$j$~1XT5(qJ>g$PKQeVNMClSqez%a94 zl&}1Gt<8 delta 138 zcmV;50CoTV>jUWO1F-fflSnB{12F(3lanb)vxX|}7?Yqz1e2aY43mIDi7FM%5ORN-=6koWLmPA&Q3SlCX3Skf<@jm~jGUW3Ac+ zaUohnxMJjtpY-OB!)`nZs&HDu{Pw0ds*|k_ibAv4wA< zEFg=sO8O)%y>iX0b05xoQpHNvso=dLDk+l4;yo44GNM z7Qm*oCs0!b=cC9*OvX~s;=cIgy1Ch{-@QJ1!U`41I*ApP#CL-T9`;tu~ z=SE{+dgrRrF9r_XDCYHDlEcQO15s)^XOVurL`|t62j^64m1yy&wG^Y>!-I=l94&ie%6j)})4v-M^HZQE<0x?9smFU delta 185 zcmezOhWXhW<_*&{C%@2$Vm4$@ne3?Pxmi!kiG|&TA(bJIp>py^z39!?^khUQzjOLC zxhyekbDS#&8>8FgzfO{q1HAbrM}&lJe&)SEWb&5yLz6pX!X}?d)R}xOQDE|tq=d~G zNqr%cH*B+;%(f|EbIW!mKJFr*v4sq!K(ctUZ35Z42fCLf{@!F?NN+OYm5|_u%183q|cA%t{s>(__zH?@- zJ^B8M0?t02rNv~e z$={H#v~)!GUG39ZS^}q+0?sWRs=GC71=TtA#6z@}`UErQ)YNCin`c}P|7&VR;{24T zTim4bNgsc6VmjKb7+0IgmBc|U*M*Ba$0@X4-szzmoqs|H;~m#wL)R%?)B!yv-$xz0 zBl>|4?>M1~i&@npkrbAC(jH8p-nD15?zkz#)Yv)7IH@)uyIGu8S<+mdC6UXZs*hO3 z1s+=b>fC!L6Qk@asH=;XD?@eZ6db{hktc_6xevd;L#mY4=bnx_%pI<8R)d)3i!SKZP2; ArvLx| literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/cs.lproj/Advanced.strings b/Settings/InAppSettings.bundle/cs.lproj/Advanced.strings new file mode 100644 index 0000000000000000000000000000000000000000..9a558214836c3cf0133418eea08e3cd5bd3ea356 GIT binary patch literal 964 zcmbu7-D<)>5QWcmpF(oqCy-u<(u*Q(A@l*FrYdM6Nm}vcTffOD8*5^~5;obNneUvL z?C(#ciBiqF4H)ezp=8fHolgJ& literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/de.lproj/Chat.strings b/Settings/InAppSettings.bundle/de.lproj/Chat.strings index 5bbcc7bde2f0b953811fe7c209f9e07eea29e06a..ed6dea56edd2ae9f7791c6580afc1f2e7ea8f316 100644 GIT binary patch delta 77 zcmeyv*uylz$=Qz~ks+BOgQ18a6HJ#dq%!0&C@|y#`6WQwhryGCK>ZoWO+R^ zzIPtid4Fr!p-rr|p#}D-HFnKDwwblCY_k;cz&Y44{^HX=j1gP5fqw^U!L2#>8sdiR zeH&QCSDE3oiIA_s8(2kTTkut~T9(i{#9VNmb6;qRb9B$@E7~;HP;$3n)ixqeWsxIy z!JOF@m`7x*N-tOiQLCyQ{dyaQbjCbpz{$Ifj@2WOE-N}R?_nk@RKPkm4K zj_G+r_mUn<>XbJA<_ob?0iM+1TroR#&b;?BX164^UFw)poo40LxYawP?xhz}$GJ<> zX%0!d(&941P)GCb#Hwt79m{!`uwSR*(V5%cSRkxwL#N{Ienl)Cl-1bNr0 literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es.lproj/Advanced.strings b/Settings/InAppSettings.bundle/es.lproj/Advanced.strings new file mode 100644 index 0000000000000000000000000000000000000000..6b38d220c57e437da1aee130c9b98deacd409955 GIT binary patch literal 1112 zcma)*%~HZZ5QOLKQ>3{21eON`J^5EsK0ts7u^@>_kkYsH=-Ipa^)71ygpx`vWOsUd zdU_^5-#r^zVq;s`%z75tIcxju%uaSr4x>hJWj2N5+Hx4H7Uw0AS4%CnlK2D28N14A z_PIm)OaogG^Qe863$P`RkCz8oZo$>?Kd~mD^`4`kt!NiB*wVGt#ZOw0j>ka=s zIO$g(Bis+Vn2>4%P6uhJW literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es.lproj/Audio.strings b/Settings/InAppSettings.bundle/es.lproj/Audio.strings new file mode 100644 index 0000000000000000000000000000000000000000..f76e560aa254fedb55c69781a52b46743621b492 GIT binary patch literal 1568 zcma)6$xZ@66s)sfG2yO>NL*q(3`*btkx2AD3?mZR!WQM9J#km-^`p~0GYuh=>2$wW zRd4C#@3(?S%rHQP6iZYP;emhAdXF>OdYBWJ;fsh%T;mfhY(35)f0=!IlR;dMgSt}Y z-u;4i7 zC~wM|Z1L_4Q?u!Cof`ifA4E+J>s0+QBTV)RJG>jd%iFzV5py45#W)E^$!pBDFjrm; zZT#$Qg3$bxCvT0cC0=T3k@wN|r(r7Z(<{6;`lTkBcTHt7U-FZV4ZV0RW+VEN%Zl>_ z8QLplBqp1TtQ9qFMjOuMmDT>`W7nx7ks_Y78NX$&zEC`^DdFBsm}NfF(DZ9#ve$V3 D3`yDl literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es.lproj/Call.strings b/Settings/InAppSettings.bundle/es.lproj/Call.strings new file mode 100644 index 0000000000000000000000000000000000000000..952c4053e76bc63b4b22ae99d608630848157083 GIT binary patch literal 656 zcmcJNyKcfj6hx=aSFHRSh%Slb0uu2^zcHK05*W)dF8FQwBS9)3X^8zDw-p8PQ*ZXp9s<6&!RA5uGJ1Ef+!qaakuPwVfbV^0GHuf>InHv0;8JGkh3He#^b>7o;v|7qhKJu3Tq@*i-?acO6l EAK8vBkpKVy literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es.lproj/Network.strings b/Settings/InAppSettings.bundle/es.lproj/Network.strings new file mode 100644 index 0000000000000000000000000000000000000000..e60ef547494ff2ff122339f76a756ee6ae35befd GIT binary patch literal 1182 zcmc(e!A`TAb5hPjl+ogovm&QVj%NG!q_`Vv!Hh_H8` z)q_lABzG-;upA=J>BI_+ih3$^CY+j4j(y23C>XA`l5uO|^~nObAmg9D-`S8@XHND;(WSUJ8m z_T*?7`tk~f1d;TW;0WtjW6lt5d|@k(Ku$d#KNItGW6q9Z=;_9sAH~qqjk!3Ap{E;j zc@#sBVaDjz8Y@R1XXsSZ$p{K9>4fxqQLquzl=fnaUg-fou_(Vpn(^_v+6P zk=J_oaW3x-ka-Ik;!J0=sHYBo-)2z}PMl*kbqw$?mIc1D&ODMA{P*X^S+Z8#P`k53 zW~ID&oFmxNnr)(UxrEI>cOu{DkJ((EDZ0doO%8ZB_u;|*4sWV`FvKn5w#re+3N_dS z2Z+hg_YIV>+eH1Smam^px7jmz3}wHoe~S9PN;^=3kA0+?mJ4g9(!71tn>V<`uIcm; z6(<@~)TdGTDWbaOCpz%)mL}j$po-5o0Cs`8bIqt7V>#Wx!|5ge9xT+JdtceGw#9W; zQ^hgz6FXPo9U?cV?nUDY*`cHC05zfBf#wsV>+EM!H&v>%f)YM^bvSeEIV<>31ZTmi z;76w#>2l!QuW=@8p`JUSTz{yCF>(@kJ6Jtc*?ZYE^G;@`ES0LzOTMr6Zt?^>iy3l) Rr~&zxI%$rdcc=Yw{sC#2?_K}^ literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es.lproj/Tunnel.strings b/Settings/InAppSettings.bundle/es.lproj/Tunnel.strings new file mode 100644 index 0000000000000000000000000000000000000000..011a6e911fe3a2ad88ea5f704a8113687c9d2435 GIT binary patch literal 124 zcmezWPl>^oA)g_IA(cUiL4m;*h+!i6K$bNF7m#!W%BL_C0o4=(Awr!CLnc@>nIRd- b`pl3A*AW0TvxuPtNo@c_DNsL13}!9>JC76Y literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es.lproj/Video.strings b/Settings/InAppSettings.bundle/es.lproj/Video.strings new file mode 100644 index 0000000000000000000000000000000000000000..59314e3db154d5bd88ebd6827f35ae7aca309203 GIT binary patch literal 918 zcma)4O-sW-5PfHV#ge-UA|i-~Dt;U+6e_)M(-cE(Qj*wG|E)iu2mgTjW~ZC%)>2By zBs2T=&3ilh`;(xD4>Tw-hvhd%%I`a$H4JK2EGou?*)87$_YRw(z^7X?jGp1EWtc+{ z4P$~EoG>2hW7#z&b`f>zwKdUjY@Z?CsBq=fXY?`U-;%yE);bq`V#Hmw<3W(>+UxH4 z7DQ)9aCIDpj{F|mp2UbfCS)q9OxJ5>;TaFyF0Cp~@ajW%dUcANa+23m)AI_hfe(qHd~~ehpHF8)J@%2#@im27`cc4`Sec8T^5cs>Je8JIik<&K!?wD b^%-Zlz!fe7L|9W)pBxW(!fAwytAhLk{X&*A literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/es_AR.lproj/Chat.strings b/Settings/InAppSettings.bundle/es_AR.lproj/Chat.strings index cf6f777325275ff2e85f611779ef247b149af170..82b1fe1de724cce2fa59d099a61a8e5abf26fa7a 100644 GIT binary patch delta 72 zcmbQkG>vJ3ld3aACPNxS5kn#nD=_3Tq%!0&6a#r#KvpqOB$*+fA#Y-~si-GVq68>d R1QbdHDog@u%%8YD6#z2(|(?k}ti6t81&J6hsxeNsii3~*yB@CGi$w2&>A#dWwQ~=l03o8Hs diff --git a/Settings/InAppSettings.bundle/ka.lproj/Account.strings b/Settings/InAppSettings.bundle/ka.lproj/Account.strings new file mode 100644 index 0000000000000000000000000000000000000000..d2c0d3662ef77272d142a3244a04097e0bfe19ee GIT binary patch literal 1256 zcma)+-A)=&5Xa}bSMvxPZcU%S^um-j=|wGRtM@2aOync5w)HJhFjZIxV2x;ukD&d{ zEbG~&UYN~c&+g9rKW66e^jMP5(w45&CF0(ZSPr?jq$efbyknJQtV3Psg+?;bsot?0 z>M6e^*_1bY-;#Zx|r`15@1I%p{o7)4{J`9=jfF5F(UV$5(xbMXM z2emsO)~TVnZn6sqV=~6B%UoO4%;%g+&Qbor8+*>Ql~K~82S?zXpzwdZm$EYUNIpsV zRooXkfI0D={)PV%Een)dUotHfH1xQBQKfF7i&LU!L>HB}ab87#E2m)K?u{vr+XeAA z{z8?ej(1I6Lfm&)tDspuOhKHBUl4EooimN5+GaD;{e}L<%w9T;HLBPld!5myaLhVq znU6?b(y%4FQjw22=I|z+{0}(k;M&el@MEY0R;KCwN=;0h_0`Twjf_;AP5L1?A^#d( zL%s33*{odRa)3(Po6ezH*NXM}hVMP9Wm6n`4Ge#SWj!&b2COY-ZSlQHw9Rb(oNvfm zNm*>(?@%$qMI;NJM$S5U)|9MzJ7cEpEC;U*@7s@+zt>EW`N}h9SYN?tqWY&}75`;I QwboC%q1~f<>FQIge~7t2xBvhE literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ka.lproj/Advanced.strings b/Settings/InAppSettings.bundle/ka.lproj/Advanced.strings new file mode 100644 index 0000000000000000000000000000000000000000..e44a0d7037808d42b4550bffff404c24975ecddb GIT binary patch literal 1068 zcmb7@%TB^j5Qb;%>O4ZzJx^d<5Q!_JCd3CQh(Lm1ph|p8>CH z8QdrHY(nz@^3*Z}CNho;Ez=#>iT#!^?n?_SPrCoaiePy$_ZBbqksuzS$d{&^v#KEL zeFwE!jZ2g*%&U1MfdD;^cT1;$eiRf!!;cF3SzCQZDw>1 z3}eG`rfwsUCSWFAD5A1ScKP`aa36p>FmLQXllQ6W!lCZ;TEVxbowBW{4C(%a>c~2Y zCv0hx)u~Q&9H630UW(HKrM~IkHG7Q|Q_MM7p{<`%KjJCQCF0%G@;I_atA0t)Pr!~{ zcIC$Etuk{Rde#1>HxFAg(0@e;UbfRE5PNcoTF+v(*>wg}rRrFfsH#NCDK$C~+oxyr Qd&YT9JG5CRZnkkg0aElIm;e9( literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ka.lproj/Audio.strings b/Settings/InAppSettings.bundle/ka.lproj/Audio.strings new file mode 100644 index 0000000000000000000000000000000000000000..19c3d5663ab47cbf43d30a64cd3f550ba6ee369e GIT binary patch literal 1528 zcma)6%TC)s6g}&%?k8B@w-PC8Qy~@(MX+eph^X0z5J5ypPy?v#S3(jfZW@UILOdkI z7XasuF*C6px3c`0JLjDHn0x*7=wk_8Y@mq-dhp?4k++Xf#xjthguIXBRD3Mp4eeFz z65GTNqUP`c+gQafhnL(B(Qco4!00$W6!V z?#^OnXBsngcbXX>U|rv08DH>uMy0Ya`6>lwkc>a6qL_S@_y3`yn0%G_j9MmRQOv(o z(r1}gN%lg3GS-})i`P+ymQXXDX?xjPBE$;b;UhCFI2x{P8ucjyrM4JVWi-~;3MWL@ z(Qb?9Ut%ZNeQSvkRnsdjBDO?`3i)Mxb2O~QMFc5?S|UWi2|qv`9Zq?Z-_~1S4&{>f znf&I&>#SeMA7|bxoSiy;Vx7;1nW9a8wWwq@2IPlwOpQ~Sh=&oC`bO*Ub@I#PH1M7O znq6%1*Ggj5ZxLK((fKGt;?oUnS0TEv?f}k5p}QmJ~p+9 r>^EF%?Pq%{(X(oM?4&NQ9&@x=9g#nI@u6pVXHIWu^3n{|ciP7@fy*7{ literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ka.lproj/Call.strings b/Settings/InAppSettings.bundle/ka.lproj/Call.strings new file mode 100644 index 0000000000000000000000000000000000000000..bb7735a00ca7a9e455efda453cfe9a9cbe03132d GIT binary patch literal 596 zcma)(%SyvQ6o&t`tMdpU`#yoV6Cn#PwCcXrDgl!U>U-8!rPu_TBG^?QLH$nbG}#m- z%$&z!~uUI_|mFrrOQsR~Ro9a;KI@XaM6mxdKidEUn*0y3_SVtbGHnvFNZbvh# zs3&wM_Qw8d1$(T0?eTxZ)l;G~FcY1?aY`02+I+ij{l%2vVxW<-+SM)i1DxIQMS7%{ z;d-Pe^2XiDUTkh9%XN?K9eZ6BzqY`IYvZvW1@3)VfWkH@yk944Q@P0i=0DV@B<(pKp+S=uK&&#)9! P9>W{YsY_B!a{F=agiCUG0`N@tc?~ry0FUY3X7b3-ud8_2^}x0k|G>a8tfP| zS3l#82j!(g6^c>dGgs&iB?mbRzHKee8eBCLwv VppUM6mrAL&y&M03Tz)samp6BuM!o<5 literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ka.lproj/Network.strings b/Settings/InAppSettings.bundle/ka.lproj/Network.strings new file mode 100644 index 0000000000000000000000000000000000000000..e99f6b37963f7d966cf668bb1e6d5986d6b4bb0f GIT binary patch literal 1158 zcmchWPcH*u5XR^1G#_EpgK%(l5r;-dB#8KXmKKrJR@$oYDOZXtt4*s24n6{Y^KM`7 zA{=G&?)!J1dFGj!_qUSFOI7w|S0bs)k+kGM4jE^%o?+=r8|FUC>e2=+}PYQkodzwwDVKV%g= zc!ViQoiZ7bS&SKa^kH{StohA=lUGh`@8k8>-~FxPr^$B$hXy(N-Cxi7F+~IF8rCsZ zb+|^d>M&Xbj9bUcSXur|$CO<3VBU9G_3VCH{(Ms=UsW<#FL;`O`DDSLsgY|C>?g#u zN!8xv+HZkUMccoSF0rs0>^iOgLMu~uHLy8MY>_C^M$4%`yQD@RN9-c@M8TLR1atA#!xqfgjg>7x!ouzEICJcBa+ ztrD#>trsE~SZ~^@LUb|f26L@|mw=Ou`g1tS?EuVYec;@3Z5@1#hPPz9&s?mX|MvI+ DC`1=Q literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ka.lproj/Root.strings b/Settings/InAppSettings.bundle/ka.lproj/Root.strings new file mode 100644 index 0000000000000000000000000000000000000000..e113e3e13534deed05f4056edc36a09abb35dcd4 GIT binary patch literal 1462 zcmaJ>T~8uG5bS54`X@~I2YUKsd{8_SU(7{~?gS9wT5d z>Uk{ZZRF-Lx;pPmZXTnn^EPwy7+syWm7B+?&pVL{G;KlQhFoS`dNyYgeT0%zcoe$x z6}wAvE_Gx(=^(p|RTR{`g&TcjKA9)K3~LBiLPy%js%5g?Q7zqZmW#XSpa>>)Tyj!9xJHR#ILjS9AlMg&8c`%I-7U;iXSMkVUTq- zgE9lFd4Mp17H>dJfb01#JlZo4TgZ;(+7uwaIO8k58dy*1SApM`ss2Q_WISF%JpjKp zdaMGm3^lvZvyNxU)Gp&~4Gxr`dF4Ny`>6D!zk$f_7#(y%{+xuN)$z)3+E#s++Tb2p zC-ksu-B4*i)xI*_=UL(W(vj=H0Z#j?b>_Pw1G?el4iR#q&s1^>o=$kK$?qKzuj)Vh CPj0dR literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ka.lproj/Tunnel.strings b/Settings/InAppSettings.bundle/ka.lproj/Tunnel.strings new file mode 100644 index 0000000000000000000000000000000000000000..afbdeadbc93a9517d6bf821a5665251b2cc8c770 GIT binary patch literal 126 zcmezWPl>^oA)g_IA(cUiL4m;*h?N)~2wV}kFK|QPHV`W@STk?|#TWYC7 lp%$d(p}+;8+6w{?1g<0L2mqQ}#885y_MX69pqfW;H2|c)9vuJx literal 0 HcmV?d00001 diff --git a/Settings/InAppSettings.bundle/ka.lproj/Video.strings b/Settings/InAppSettings.bundle/ka.lproj/Video.strings new file mode 100644 index 0000000000000000000000000000000000000000..b217afe27cef0d13d102dd68a17da12ecf63730c GIT binary patch literal 920 zcma))T}uK{5QgWvtMe0Y6ga{-gFJ={Jlko zqdu-eKa-r~*W!7wb+kTNnZr3kI%cA(XwlM&H0hv0=PJx!1w9PbD(kIWY2TJCQy6m& zrffj2(|mwF~c0YeFc0z)E0F_6qvJ3*F+w@iFNY;8;t~s diff --git a/Settings/InAppSettings.bundle/ru.lproj/Chat.strings b/Settings/InAppSettings.bundle/ru.lproj/Chat.strings index 8f40f22449d452e8df3d256f05611b54114cda83..2e78b595d0701a1619055bed6d0fe0196a0fed7a 100644 GIT binary patch delta 140 zcmXAhF%E)Y6oaezCMO41lRpg1Nc^LSpdcoY=%qY?9Kd^cG)IdLuX%0S?=ySMpY86Z zL3dph)U&7KOifNkWfuu*>}xg*c2ic6sMKP7t<#{&vqUQw8d@%#JUI9|0}4v(k@1~| SC0m1|TN5z)&wrZzVfq5mi4#8n delta 26 icmZo-`oTECX(Ef+#4?SEHBuAzsZ2Z~#$wID#Q*?Xadld%C~4nrzK2}33Wh%N%s3Jg9Bo(#SWu0R$Xad(?k}ti4|=CBfSMH From 3bfffc2103e2dd2d4cff8b23f89fb91d2d4fd395 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 17 Feb 2017 10:20:49 +0100 Subject: [PATCH 098/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 8b82c64af..8b6e4e451 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 8b82c64af9f754b99371a8be1cd4c4324c134daa +Subproject commit 8b6e4e451e3d1c8f03d1e6b819224559750756f7 From c6aa055dabece24638cc300d609fc8e732dae38c Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 17 Feb 2017 10:53:55 +0100 Subject: [PATCH 099/180] Handle the if contact has no name or surname --- Classes/Utils/FastAddressBook.m | 1 + 1 file changed, 1 insertion(+) diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index 7b7abcc70..558e2f97f 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -305,6 +305,7 @@ void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info, void ret = [FastAddressBook displayNameForContact:contact]; } else if (friend) { ret = [NSString stringWithUTF8String:linphone_friend_get_name(friend)]; + ret = [ret stringByReplacingOccurrencesOfString:@"(null)" withString:@""]; } else { const char *lDisplayName = linphone_address_get_display_name(addr); const char *lUserName = linphone_address_get_username(addr); From 7d64d45a7aeb8cdaeeed9ac0779a47aab41618b3 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 17 Feb 2017 17:05:55 +0100 Subject: [PATCH 100/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 8b6e4e451..a4627732a 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 8b6e4e451e3d1c8f03d1e6b819224559750756f7 +Subproject commit a4627732a74009867841658b146cf1ee8a472374 From d1bad67efcda0376d909757f702017ee70347bb7 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 20 Feb 2017 12:06:51 +0100 Subject: [PATCH 101/180] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index a4627732a..615f9d4e2 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit a4627732a74009867841658b146cf1ee8a472374 +Subproject commit 615f9d4e23d43f24a011b67ea47246b2a3b00c3e From 9b57a315647f92bce6cf4b0b30f221af1e2c6376 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 20 Feb 2017 12:16:08 +0100 Subject: [PATCH 102/180] add domain_name to rc --- Classes/AssistantLinkView.m | 7 ++++++- Classes/InAppProductsManager.m | 7 ++++++- Classes/LinphoneManager.m | 19 ++++++++++++++++--- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/Classes/AssistantLinkView.m b/Classes/AssistantLinkView.m index 7cc66f4ae..88ea6162e 100644 --- a/Classes/AssistantLinkView.m +++ b/Classes/AssistantLinkView.m @@ -53,7 +53,12 @@ assistant_activate_phone_number_link); LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC); - if (cfg && strcmp("sip.linphone.org", linphone_proxy_config_get_domain(cfg)) == 0) { + if (cfg && + strcmp([LinphoneManager.instance lpConfigStringForKey:@"domain_name" + inSection:@"app" + withDefault:@"sip.linphone.org"] + .UTF8String, + linphone_proxy_config_get_domain(cfg)) == 0) { linphone_account_creator_set_username( account_creator, linphone_address_get_username(linphone_proxy_config_get_identity_address(cfg))); const LinphoneAuthInfo *info = linphone_proxy_config_find_auth_info(cfg); diff --git a/Classes/InAppProductsManager.m b/Classes/InAppProductsManager.m index 94ab2c96d..412afbdb3 100644 --- a/Classes/InAppProductsManager.m +++ b/Classes/InAppProductsManager.m @@ -301,7 +301,12 @@ - (NSString *)getPassword { NSString *pass; LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC); - if (cfg && strcmp("sip.linphone.org", linphone_proxy_config_get_domain(cfg)) == 0) { + if (cfg && + strcmp([LinphoneManager.instance lpConfigStringForKey:@"domain_name" + inSection:@"app" + withDefault:@"sip.linphone.org"] + .UTF8String, + linphone_proxy_config_get_domain(cfg)) == 0) { const LinphoneAuthInfo *info = linphone_proxy_config_find_auth_info(cfg); const char *tmpPass; if (linphone_auth_info_get_passwd(info)) { diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index ffcf9d123..e545cce93 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -501,7 +501,11 @@ exit_dbmigration: LinphoneProxyConfig *proxy = (LinphoneProxyConfig *)proxies->data; const char *addr = linphone_proxy_config_get_addr(proxy); // we want to enable AVPF for the proxies - if (addr && strstr(addr, "sip.linphone.org") != 0) { + if (addr && + strstr(addr, [LinphoneManager.instance lpConfigStringForKey:@"domain_name" + inSection:@"app" + withDefault:@"sip.linphone.org"] + .UTF8String) != 0) { LOGI(@"Migrating proxy config to use AVPF"); linphone_proxy_config_enable_avpf(proxy, TRUE); } @@ -516,7 +520,11 @@ exit_dbmigration: LinphoneProxyConfig *proxy = (LinphoneProxyConfig *)proxies->data; const char *addr = linphone_proxy_config_get_addr(proxy); // we want to enable quality reporting for the proxies that are on linphone.org - if (addr && strstr(addr, "sip.linphone.org") != 0) { + if (addr && + strstr(addr, [LinphoneManager.instance lpConfigStringForKey:@"domain_name" + inSection:@"app" + withDefault:@"sip.linphone.org"] + .UTF8String) != 0) { LOGI(@"Migrating proxy config to send quality report"); linphone_proxy_config_set_quality_reporting_collector( proxy, "sip:voip-metrics@sip.linphone.org;transport=tls"); @@ -1918,7 +1926,12 @@ void popup_link_account_cb(LinphoneAccountCreator *creator, LinphoneAccountCreat [LinphoneManager.instance lpConfigSetInt:0 forKey:@"must_link_account_time"]; } else { LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC); - if (cfg) { + if (cfg && + strcmp(linphone_proxy_config_get_domain(cfg), + [LinphoneManager.instance lpConfigStringForKey:@"domain_name" + inSection:@"app" + withDefault:@"sip.linphone.org"] + .UTF8String) == 0) { UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Link your account", nil) message:[NSString stringWithFormat:NSLocalizedString(@"Link your Linphone.org account %s to your phone number.", nil), linphone_address_get_username(linphone_proxy_config_get_identity_address(cfg))] From 9ece93c65578377b84f6fa342849d27819cc9eef Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 20 Feb 2017 14:14:57 +0100 Subject: [PATCH 103/180] request video authorization even when no preview needed --- Classes/LinphoneManager.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index e545cce93..605fa542c 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -24,11 +24,12 @@ #include #import +#import #import -#import #import -#import #import +#import +#import #import "LinphoneManager.h" #import "LinphoneCoreSettingsStore.h" @@ -2313,9 +2314,12 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) { /*IOS specific*/ linphone_core_start_dtmf_stream(theLinphoneCore); + [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo + completionHandler:^(BOOL granted){ + }]; /*start the video preview in case we are in the main view*/ - if (linphone_core_video_display_enabled(theLinphoneCore)) { //&& [self lpConfigBoolForKey:@"preview_preference"]) { + if (linphone_core_video_display_enabled(theLinphoneCore) && [self lpConfigBoolForKey:@"preview_preference"]) { linphone_core_enable_video_preview(theLinphoneCore, TRUE); } /*check last keepalive handler date*/ From 3ae3090e7f7b2168e21451c926e2e984c8a092b4 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Tue, 21 Feb 2017 10:25:32 +0100 Subject: [PATCH 104/180] Go to GPLv2 website when taping on licenceLabel --- Classes/AboutView.h | 2 + Classes/AboutView.m | 12 ++++++ Classes/Base.lproj/AboutView.xib | 64 +++++++++++++++++--------------- 3 files changed, 48 insertions(+), 30 deletions(-) diff --git a/Classes/AboutView.h b/Classes/AboutView.h index 0fd2aca63..2421ad552 100644 --- a/Classes/AboutView.h +++ b/Classes/AboutView.h @@ -27,7 +27,9 @@ @property(weak, nonatomic) IBOutlet UILabel *descriptionLabel; @property(weak, nonatomic) IBOutlet UILabel *appVersionLabel; @property(weak, nonatomic) IBOutlet UILabel *libVersionLabel; +@property(weak, nonatomic) IBOutlet UILabel *licenceLabel; - (IBAction)onLinkTap:(id)sender; +- (IBAction)onLicenceTap; - (IBAction)onDialerBackClick:(id)sender; @end diff --git a/Classes/AboutView.m b/Classes/AboutView.m index 7cbd64eee..92af96b16 100644 --- a/Classes/AboutView.m +++ b/Classes/AboutView.m @@ -51,6 +51,11 @@ static UICompositeViewDescription *compositeDescription = nil; _nameLabel.text = name; _appVersionLabel.text = [NSString stringWithFormat:@"%@ iOS %s", name, LINPHONE_IOS_VERSION]; _libVersionLabel.text = [NSString stringWithFormat:@"%@ Core %s", name, linphone_core_get_version()]; + UITapGestureRecognizer *tapGestureRecognizer = + [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onLicenceTap)]; + tapGestureRecognizer.numberOfTapsRequired = 1; + [_licenceLabel addGestureRecognizer:tapGestureRecognizer]; + _licenceLabel.userInteractionEnabled = YES; } #pragma mark - Action Functions @@ -63,6 +68,13 @@ static UICompositeViewDescription *compositeDescription = nil; } } +- (IBAction)onLicenceTap { + NSString *url = @"https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html"; + if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) { + LOGE(@"Failed to open %@, invalid URL", url); + } +} + - (IBAction)onDialerBackClick:(id)sender { [PhoneMainView.instance popToView:DialerView.compositeViewDescription]; } diff --git a/Classes/Base.lproj/AboutView.xib b/Classes/Base.lproj/AboutView.xib index df96118cf..51aa8db00 100644 --- a/Classes/Base.lproj/AboutView.xib +++ b/Classes/Base.lproj/AboutView.xib @@ -1,8 +1,11 @@ - + + + + - + @@ -12,6 +15,7 @@ + @@ -23,19 +27,19 @@ - + - + - + - + - + - + @@ -98,6 +113,7 @@ + diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.h b/Classes/LinphoneUI/UIChatBubbleTextCell.h index 89e89ba0a..9c3d71762 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.h +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.h @@ -37,6 +37,8 @@ @property(strong, nonatomic) IBOutlet UIView *bubbleView; @property(strong, nonatomic) IBOutlet UITapGestureRecognizer *resendRecognizer; @property(weak, nonatomic) IBOutlet UIImageView *LIMEKO; +@property(weak, nonatomic) IBOutlet UIImageView *imdmIcon; +@property(weak, nonatomic) IBOutlet UILabel *imdmLabel; + (CGSize)ViewSizeForMessage:(LinphoneChatMessage *)chat withWidth:(int)width; @@ -46,6 +48,7 @@ - (IBAction)onResendClick:(id)event; - (void)update; +- (void)displayImdmStatus:(LinphoneChatMessageState)state; + (CGSize)ViewHeightForMessage:(LinphoneChatMessage *)chat withWidth:(int)width; + (NSString *)TextMessageForChat:(LinphoneChatMessage *)message; + (CGSize)computeBoundingBox:(NSString *)text size:(CGSize)size font:(UIFont *)font; diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.m b/Classes/LinphoneUI/UIChatBubbleTextCell.m index 54caca958..ebaef798e 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.m +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.m @@ -138,16 +138,17 @@ if (outgoing && state == LinphoneChatMessageStateInProgress) { _statusErrorImage.hidden = YES; [_statusInProgressSpinner startAnimating]; - } else if (outgoing && - (state == LinphoneChatMessageStateNotDelivered || state == LinphoneChatMessageStateFileTransferError)) { - _statusErrorImage.hidden = NO; - [_statusInProgressSpinner stopAnimating]; + } /* else if (outgoing && + (state == LinphoneChatMessageStateNotDelivered || state == LinphoneChatMessageStateFileTransferError)) { + _statusErrorImage.hidden = NO; + [_statusInProgressSpinner stopAnimating]; - NSAttributedString *resend_text = - [[NSAttributedString alloc] initWithString:NSLocalizedString(@"Resend", @"Resend") - attributes:@{NSForegroundColorAttributeName : [UIColor redColor]}]; - [_contactDateLabel setAttributedText:resend_text]; - } else if (!outgoing && state == LinphoneChatMessageStateFileTransferError) { + NSAttributedString *resend_text = + [[NSAttributedString alloc] initWithString:NSLocalizedString(@"Resend", @"Resend") + attributes:@{NSForegroundColorAttributeName : [UIColor redColor]}]; + [_contactDateLabel setAttributedText:resend_text]; + }*/ + else if (!outgoing && state == LinphoneChatMessageStateFileTransferError) { _statusErrorImage.hidden = NO; [_statusInProgressSpinner stopAnimating]; } else { @@ -159,7 +160,15 @@ [_messageText setAccessibilityLabel:@"Outgoing message"]; } else { [_messageText setAccessibilityLabel:@"Incoming message"]; + //[self hideImdmIcons]; } + // TODO : Message deliver and displayed + if (outgoing && + (state == LinphoneChatMessageStateDeliveredToUser || state == LinphoneChatMessageStateDisplayed || + state == LinphoneChatMessageStateNotDelivered || state == LinphoneChatMessageStateFileTransferError)) { + [self displayImdmStatus:state]; + } else + [self displayImdmStatus:LinphoneChatMessageStateInProgress]; if (!outgoing && !linphone_chat_message_is_secured(_message) && linphone_core_lime_enabled(LC) == LinphoneLimeMandatory) { @@ -251,6 +260,31 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st [view.tableController updateChatEntry:msg]; } +- (void)displayImdmStatus:(LinphoneChatMessageState)state { + if (state == LinphoneChatMessageStateDeliveredToUser) { //|| state == LinphoneChatMessageStateDelivered){ + [_imdmIcon setImage:[UIImage imageNamed:@"valid_disabled"]]; + [_imdmLabel setText:NSLocalizedString(@"Delivered", nil)]; + //[_imdmLabel setTextColor:[UIColor blueColor]]; + [_imdmIcon setHidden:FALSE]; + [_imdmLabel setHidden:FALSE]; + } else if (state == LinphoneChatMessageStateDisplayed) { + [_imdmIcon setImage:[UIImage imageNamed:@"valid_default"]]; + [_imdmLabel setText:NSLocalizedString(@"Displayed", nil)]; + //[_imdmLabel setTextColor:[UIColor greenColor]]; + [_imdmIcon setHidden:FALSE]; + [_imdmLabel setHidden:FALSE]; + } else if (state == LinphoneChatMessageStateNotDelivered || state == LinphoneChatMessageStateFileTransferError) { + [_imdmIcon setImage:[UIImage imageNamed:@"chat_message_not_delivered"]]; + [_imdmLabel setText:NSLocalizedString(@"Resend", nil)]; + [_imdmLabel setTextColor:[UIColor redColor]]; + [_imdmIcon setHidden:FALSE]; + [_imdmLabel setHidden:FALSE]; + } else { + [_imdmIcon setHidden:TRUE]; + [_imdmLabel setHidden:TRUE]; + } +} + #pragma mark - Bubble size computing + (CGSize)computeBoundingBox:(NSString *)text size:(CGSize)size font:(UIFont *)font { @@ -277,7 +311,7 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st static const CGFloat CELL_MIN_HEIGHT = 60.0f; static const CGFloat CELL_MIN_WIDTH = 150.0f; static const CGFloat CELL_MESSAGE_X_MARGIN = 78 + 10.0f; -static const CGFloat CELL_MESSAGE_Y_MARGIN = 44; +static const CGFloat CELL_MESSAGE_Y_MARGIN = 52; // 44; static const CGFloat CELL_IMAGE_HEIGHT = 100.0f; static const CGFloat CELL_IMAGE_WIDTH = 100.0f; diff --git a/Resources/en.lproj/Localizable.strings b/Resources/en.lproj/Localizable.strings index 2acf576e3e4e4b96b87f5744c0478606db3baf1c..5530beface7192487bcde1abcf07d5176a471d59 100644 GIT binary patch delta 97 zcmX^0migLy<_%|bS#uaN8OkOfED`2*VMt{F^B7Vm>!-wTKB1e(te(kG%uoOnPGqPA nN~bU=F(@$D0|`5LyU7Jce485#y^aC^y5Sq| delta 23 fcmccip83>U<_%|bHwWouF;8|d_S)QI Date: Wed, 15 Mar 2017 14:42:16 +0100 Subject: [PATCH 154/180] update opus --- submodules/externals/opus | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/externals/opus b/submodules/externals/opus index 96a78acac..35b371a85 160000 --- a/submodules/externals/opus +++ b/submodules/externals/opus @@ -1 +1 @@ -Subproject commit 96a78acaca1970c20e9ee7b1dd253b36d8deb56b +Subproject commit 35b371a85bf2cf21ab4b12b5475c76a2775b25d1 From 7e0935f23e3cd2de8320240de66611b501e726aa Mon Sep 17 00:00:00 2001 From: Brieuc Viel Date: Wed, 15 Mar 2017 14:43:41 +0100 Subject: [PATCH 155/180] update cmake-b --- submodules/cmake-builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 4d7cd40cf..d96e72cd9 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 4d7cd40cf218624b0365e5e36efc6040d6a56bc8 +Subproject commit d96e72cd96b1fb120a72bf249571d6b5bfc47319 From 604c13bb0472d2e08e3e1996700a66a4f77749ff Mon Sep 17 00:00:00 2001 From: Brieuc Viel Date: Wed, 15 Mar 2017 16:24:59 +0100 Subject: [PATCH 156/180] [Imdm] fix msg displayed when chatroom open --- Classes/LinphoneUI/UIChatBubbleTextCell.m | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.m b/Classes/LinphoneUI/UIChatBubbleTextCell.m index ebaef798e..021c5d9e8 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.m +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.m @@ -138,17 +138,7 @@ if (outgoing && state == LinphoneChatMessageStateInProgress) { _statusErrorImage.hidden = YES; [_statusInProgressSpinner startAnimating]; - } /* else if (outgoing && - (state == LinphoneChatMessageStateNotDelivered || state == LinphoneChatMessageStateFileTransferError)) { - _statusErrorImage.hidden = NO; - [_statusInProgressSpinner stopAnimating]; - - NSAttributedString *resend_text = - [[NSAttributedString alloc] initWithString:NSLocalizedString(@"Resend", @"Resend") - attributes:@{NSForegroundColorAttributeName : [UIColor redColor]}]; - [_contactDateLabel setAttributedText:resend_text]; - }*/ - else if (!outgoing && state == LinphoneChatMessageStateFileTransferError) { + } else if (!outgoing && state == LinphoneChatMessageStateFileTransferError) { _statusErrorImage.hidden = NO; [_statusInProgressSpinner stopAnimating]; } else { @@ -160,9 +150,9 @@ [_messageText setAccessibilityLabel:@"Outgoing message"]; } else { [_messageText setAccessibilityLabel:@"Incoming message"]; - //[self hideImdmIcons]; + linphone_chat_room_mark_as_read(linphone_chat_message_get_chat_room(_message)); } - // TODO : Message deliver and displayed + if (outgoing && (state == LinphoneChatMessageStateDeliveredToUser || state == LinphoneChatMessageStateDisplayed || state == LinphoneChatMessageStateNotDelivered || state == LinphoneChatMessageStateFileTransferError)) { @@ -261,16 +251,16 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st } - (void)displayImdmStatus:(LinphoneChatMessageState)state { - if (state == LinphoneChatMessageStateDeliveredToUser) { //|| state == LinphoneChatMessageStateDelivered){ + if (state == LinphoneChatMessageStateDeliveredToUser) { [_imdmIcon setImage:[UIImage imageNamed:@"valid_disabled"]]; [_imdmLabel setText:NSLocalizedString(@"Delivered", nil)]; - //[_imdmLabel setTextColor:[UIColor blueColor]]; + [_imdmLabel setTextColor:[UIColor orangeColor]]; [_imdmIcon setHidden:FALSE]; [_imdmLabel setHidden:FALSE]; } else if (state == LinphoneChatMessageStateDisplayed) { [_imdmIcon setImage:[UIImage imageNamed:@"valid_default"]]; [_imdmLabel setText:NSLocalizedString(@"Displayed", nil)]; - //[_imdmLabel setTextColor:[UIColor greenColor]]; + [_imdmLabel setTextColor:[UIColor orangeColor]]; [_imdmIcon setHidden:FALSE]; [_imdmLabel setHidden:FALSE]; } else if (state == LinphoneChatMessageStateNotDelivered || state == LinphoneChatMessageStateFileTransferError) { From f3cbe7f63cd7561e635bddc1ced744bc889aef78 Mon Sep 17 00:00:00 2001 From: Brieuc Viel Date: Thu, 16 Mar 2017 15:53:17 +0100 Subject: [PATCH 157/180] [imdm] fix bubleImageCell download button size --- Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib | 8 ++++---- Classes/LinphoneUI/UIChatBubbleTextCell.m | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib b/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib index 46e90ad66..630e65a06 100644 --- a/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib +++ b/Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.xib @@ -80,8 +80,8 @@ - -