element-ios/Riot/Modules/MatrixKit/Models/Contact/MXKEmail.m

84 lines
1.6 KiB
Objective-C

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C
Copyright 2015 OpenMarket Ltd
SPDX-License-Identifier: AGPL-3.0-only
Please see LICENSE in the repository root for full details.
*/
#import "MXKEmail.h"
@implementation MXKEmail
- (id)init
{
self = [super init];
if (self)
{
_emailAddress = nil;
_type = nil;
}
return self;
}
- (id)initWithEmailAddress:(NSString*)anEmailAddress type:(NSString*)aType contactID:(NSString*)aContactID matrixID:(NSString*)matrixID
{
self = [super initWithContactID:aContactID matrixID:matrixID];
if (self)
{
_emailAddress = [anEmailAddress lowercaseString];
_type = aType;
}
return self;
}
- (BOOL)matchedWithPatterns:(NSArray*)patterns
{
// no number -> cannot match
if (_emailAddress.length == 0)
{
return NO;
}
if (patterns.count > 0)
{
for(NSString *pattern in patterns)
{
if ([_emailAddress rangeOfString:pattern options:NSCaseInsensitiveSearch].location == NSNotFound)
{
return NO;
}
}
}
return YES;
}
#pragma mark NSCoding
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self)
{
_type = [coder decodeObjectForKey:@"type"];
_emailAddress = [[coder decodeObjectForKey:@"emailAddress"] lowercaseString];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)coder
{
[super encodeWithCoder:coder];
[coder encodeObject:_type forKey:@"type"];
[coder encodeObject:_emailAddress forKey:@"emailAddress"];
}
@end