Skip to content

Commit 33add44

Browse files
committed
Return default system locale for carrier region on unsupported devices. Update docs.
2 parents 7bb8bc7 + a6f5cb0 commit 33add44

File tree

5 files changed

+24
-22
lines changed

5 files changed

+24
-22
lines changed

libPhoneNumber/NBPhoneNumberUtil.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@
3939

4040
- (NSString *)extractPossibleNumber:(NSString *)phoneNumber;
4141
- (NSNumber *)extractCountryCode:(NSString *)fullNumber nationalNumber:(NSString **)nationalNumber;
42-
#if !TARGET_OS_TV
4342
- (NSString *)countryCodeByCarrier;
44-
#endif
4543

4644
- (NSString *)getNddPrefixForRegion:(NSString *)regionCode stripNonDigits:(BOOL)stripNonDigits;
4745
- (NSString *)getNationalSignificantNumber:(NBPhoneNumber *)phoneNumber;

libPhoneNumber/NBPhoneNumberUtil.m

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3447,30 +3447,26 @@ - (NBPhoneNumber *)parse:(NSString *)numberToParse
34473447
}
34483448

34493449
/**
3450-
* Parses a string using the phone's carrier region (when available, ZZ otherwise).
3451-
* This uses the country the sim card in the phone is registered with.
3450+
* Parses a string using the phone's carrier region (when available, uses system locale otherwise).
3451+
* This uses the country the SIM card in the phone is registered with.
34523452
* For example if you have an AT&T sim card but are in Europe, this will parse the
34533453
* number using +1 (AT&T is a US Carrier) as the default country code.
3454-
* This also works for CDMA phones which don't have a sim card.
3454+
* This also works for multi-SIM phones, using the SIM region of default voice line.
34553455
*/
34563456
- (NBPhoneNumber *)parseWithPhoneCarrierRegion:(NSString *)numberToParse error:(NSError **)error {
34573457
numberToParse = NormalizeNonBreakingSpace(numberToParse);
34583458

3459-
NSString *defaultRegion = nil;
3460-
#if !TARGET_OS_TV
3461-
defaultRegion = [self countryCodeByCarrier];
3462-
#else
3463-
defaultRegion = [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
3464-
#endif
3465-
3459+
NSString *defaultRegion = [self countryCodeByCarrier];
34663460
return [self parse:numberToParse defaultRegion:defaultRegion error:error];
34673461
}
34683462

3469-
#if !TARGET_OS_TV
34703463
- (NSString *)countryCodeByCarrier {
3464+
#if !TARGET_OS_TV
34713465
return [[CNContactsUserDefaults sharedDefaults].countryCode uppercaseString];
3472-
}
3466+
#else
3467+
return [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
34733468
#endif
3469+
}
34743470

34753471
/**
34763472
* Parses a string and returns it in proto buffer format. This method differs

libPhoneNumberShortNumber/NBShortNumberUtil.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ typedef NS_ENUM(NSUInteger, NBEShortNumberCost) {
2525

2626
@property(nonatomic) NSDictionary<NSNumber *, NSArray<NSString *> *> *countryToRegionCodeMap;
2727

28-
/// Initialize short number util with a default metadata helper.
29-
- (instancetype)init;
28+
/// Short number util singleton with a default metadata helper.
29+
+ (NBShortNumberUtil *)sharedInstance;
30+
31+
- (instancetype)init NS_UNAVAILABLE;
3032

3133
/// Initialize short number util with a metadata helper.
3234
/// @param helper A metadata helper.

libPhoneNumberShortNumber/NBShortNumberUtil.m

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,17 @@ @implementation NBShortNumberUtil {
2525
NBPhoneNumberUtil *_phoneUtil;
2626
}
2727

28+
+ (NBShortNumberUtil *)sharedInstance {
29+
static NBShortNumberUtil *sharedOnceInstance = nil;
30+
static dispatch_once_t onceToken;
31+
dispatch_once(&onceToken, ^{
32+
sharedOnceInstance =
33+
[[self alloc] initWithMetadataHelper:[[NBShortNumberMetadataHelper alloc] init]
34+
phoneNumberUtil:[NBPhoneNumberUtil sharedInstance]];
35+
});
36+
return sharedOnceInstance;
37+
}
38+
2839
- (instancetype)initWithMetadataHelper:(NBShortNumberMetadataHelper *)helper
2940
phoneNumberUtil:(NBPhoneNumberUtil *)phoneNumberUtil {
3041
self = [super init];
@@ -36,11 +47,6 @@ - (instancetype)initWithMetadataHelper:(NBShortNumberMetadataHelper *)helper
3647
return self;
3748
}
3849

39-
- (instancetype)init {
40-
return [self initWithMetadataHelper:[[NBShortNumberMetadataHelper alloc] init]
41-
phoneNumberUtil:[NBPhoneNumberUtil sharedInstance]];
42-
}
43-
4450
- (BOOL)isPossibleShortNumber:(NBPhoneNumber *)phoneNumber forRegion:(NSString *)regionDialingFrom {
4551
if (![self doesPhoneNumber:phoneNumber matchesRegion:regionDialingFrom]) {
4652
return NO;

libPhoneNumberShortNumber/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import libPhoneNumberShortNumber
4646

4747
## Usage - **NBShortNumberUtil**
4848
```obj-c
49-
NBShortNumberUtil *shortNumberUtil = [[NBShortNumberUtil alloc] init];
49+
NBShortNumberUtil *shortNumberUtil = [NBShortNumberUtil sharedInstance];
5050

5151
// possibleNumber : +33123456
5252
NSLog(@"Is possible short number: %d",

0 commit comments

Comments
 (0)