mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
3b945a9da2
// FREEBIE
41 lines
1 KiB
Objective-C
41 lines
1 KiB
Objective-C
//
|
|
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
#import "OWSContactsSearcher.h"
|
|
#import "NSString+OWS.h"
|
|
#import <SignalServiceKit/PhoneNumber.h>
|
|
|
|
@interface OWSContactsSearcher ()
|
|
|
|
@property (copy) NSArray<Contact *> *contacts;
|
|
|
|
@end
|
|
|
|
@implementation OWSContactsSearcher
|
|
|
|
- (instancetype)initWithContacts:(NSArray<Contact *> *)contacts {
|
|
self = [super init];
|
|
if (!self) return self;
|
|
|
|
_contacts = contacts;
|
|
return self;
|
|
}
|
|
|
|
- (NSArray<Contact *> *)filterWithString:(NSString *)string {
|
|
NSString *searchTerm = [string ows_stripped];
|
|
|
|
if ([searchTerm isEqualToString:@""]) {
|
|
return self.contacts;
|
|
}
|
|
|
|
NSString *formattedNumber = [PhoneNumber removeFormattingCharacters:searchTerm];
|
|
|
|
// TODO: This assumes there's a single search term.
|
|
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fullName contains[c] %@) OR (ANY parsedPhoneNumbers.toE164 contains[c] %@)", searchTerm, formattedNumber];
|
|
|
|
return [self.contacts filteredArrayUsingPredicate:predicate];
|
|
}
|
|
|
|
@end
|