From 37a601d765cee6fe85a096a4d7bfd391a82a3795 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 17 May 2017 15:24:24 -0400 Subject: [PATCH] Honor the local calling code in select recipient view. // FREEBIE --- .../SelectRecipientViewController.m | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Signal/src/ViewControllers/SelectRecipientViewController.m b/Signal/src/ViewControllers/SelectRecipientViewController.m index 12170a862..f7413ae45 100644 --- a/Signal/src/ViewControllers/SelectRecipientViewController.m +++ b/Signal/src/ViewControllers/SelectRecipientViewController.m @@ -214,10 +214,28 @@ NSString *const kSelectRecipientViewControllerCellIdentifier = @"kSelectRecipien - (void)populateDefaultCountryNameAndCode { - NSLocale *locale = NSLocale.currentLocale; - NSString *countryCode = [locale objectForKey:NSLocaleCountryCode]; - NSNumber *callingCode = [[PhoneNumberUtil sharedUtil].nbPhoneNumberUtil getCountryCodeForRegion:countryCode]; + PhoneNumber *localNumber = [PhoneNumber phoneNumberFromE164:[TSAccountManager localNumber]]; + OWSAssert(localNumber); + + NSString *countryCode; + NSNumber *callingCode; + if (localNumber) { + callingCode = [localNumber getCountryCode]; + OWSAssert(callingCode); + if (callingCode) { + countryCode = [[PhoneNumberUtil sharedUtil] + probableCountryCodeForCallingCode:[@"+" stringByAppendingString:[callingCode description]]]; + } + } + + if (!countryCode || !callingCode) { + NSLocale *locale = NSLocale.currentLocale; + countryCode = [locale objectForKey:NSLocaleCountryCode]; + callingCode = [[PhoneNumberUtil sharedUtil].nbPhoneNumberUtil getCountryCodeForRegion:countryCode]; + } + NSString *countryName = [PhoneNumberUtil countryNameFromCountryCode:countryCode]; + [self updateCountryWithName:countryName callingCode:[NSString stringWithFormat:@"%@%@", COUNTRY_CODE_PREFIX, callingCode] countryCode:countryCode];