@@ -790,19 +790,39 @@ - (BOOL)lessThanIos10_2
790790 }
791791}
792792
793+ + (NSSet *) getSupportedHandleTypes : (id ) handleType {
794+ if (handleType){
795+ if ([handleType isKindOfClass: [NSArray class ]]) {
796+ NSSet *types = [NSSet set ];
797+
798+ for (NSString * type in handleType) {
799+ types = [types setByAddingObject: [NSNumber numberWithInteger: [RNCallKeep getHandleType: type]]];
800+ }
801+
802+ return types;
803+ } else {
804+ int _handleType = [RNCallKeep getHandleType: handleType];
805+
806+ return [NSSet setWithObjects: [NSNumber numberWithInteger: _handleType], nil ];
807+ }
808+ } else {
809+ return [NSSet setWithObjects: [NSNumber numberWithInteger: CXHandleTypePhoneNumber], nil ];
810+ }
811+ }
812+
793813+ (int )getHandleType : (NSString *)handleType
794814{
795- int _handleType;
796815 if ([handleType isEqualToString: @" generic" ]) {
797- _handleType = CXHandleTypeGeneric;
816+ return CXHandleTypeGeneric;
798817 } else if ([handleType isEqualToString: @" number" ]) {
799- _handleType = CXHandleTypePhoneNumber;
818+ return CXHandleTypePhoneNumber;
819+ } else if ([handleType isEqualToString: @" phone" ]) {
820+ return CXHandleTypePhoneNumber;
800821 } else if ([handleType isEqualToString: @" email" ]) {
801- _handleType = CXHandleTypeEmailAddress;
822+ return CXHandleTypeEmailAddress;
802823 } else {
803- _handleType = CXHandleTypeGeneric;
824+ return CXHandleTypeGeneric;
804825 }
805- return _handleType;
806826}
807827
808828+ (CXProviderConfiguration *)getProviderConfiguration : (NSDictionary *)settings
@@ -814,12 +834,8 @@ + (CXProviderConfiguration *)getProviderConfiguration:(NSDictionary*)settings
814834 providerConfiguration.supportsVideo = YES ;
815835 providerConfiguration.maximumCallGroups = 3 ;
816836 providerConfiguration.maximumCallsPerCallGroup = 1 ;
817- if (settings[@" handleType" ]){
818- int _handleType = [RNCallKeep getHandleType: settings[@" handleType" ]];
819- providerConfiguration.supportedHandleTypes = [NSSet setWithObjects: [NSNumber numberWithInteger: _handleType], nil ];
820- }else {
821- providerConfiguration.supportedHandleTypes = [NSSet setWithObjects: [NSNumber numberWithInteger: CXHandleTypePhoneNumber], nil ];
822- }
837+ providerConfiguration.supportedHandleTypes = [RNCallKeep getSupportedHandleTypes: settings[@" handleType" ]];
838+
823839 if (settings[@" supportsVideo" ]) {
824840 providerConfiguration.supportsVideo = [settings[@" supportsVideo" ] boolValue ];
825841 }
0 commit comments