Clean utilities

pull/63/head
Niels Andriesse 6 years ago
parent 4bdb689526
commit f9d6f1dce3

@ -547,8 +547,7 @@ NS_ASSUME_NONNULL_BEGIN
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
linkedDeviceThreads = [LKDatabaseUtilities getLinkedDeviceThreadsFor:senderID in:transaction];
}];
BOOL isFriend = [linkedDeviceThreads contains:^BOOL(NSObject *object) {
TSContactThread *thread = (TSContactThread *)object;
BOOL isFriend = [linkedDeviceThreads contains:^BOOL(TSContactThread *thread) {
return thread.isContactFriend;
}];
return !isFriend;

@ -218,7 +218,7 @@ NS_ASSUME_NONNULL_BEGIN
timestampLabelText = [DateUtil formatMessageTimestamp:viewItem.interaction.timestamp];
}
TSMessage *message = (TSMessage *)[viewItem.interaction as:TSMessage.class];
TSMessage *message = [viewItem.interaction as:TSMessage.class];
if (message != nil && message.isP2P) {
NSString *string = [timestampLabelText.localizedUppercaseString stringByAppendingString:@" · P2P"];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];

@ -1652,13 +1652,13 @@ typedef enum : NSUInteger {
[OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
linkedDeviceThreads = [LKDatabaseUtilities getLinkedDeviceThreadsFor:senderID in:transaction];
}];
if ([linkedDeviceThreads contains:^BOOL(NSObject *object) {
return ((TSContactThread *)object).isContactFriend;
if ([linkedDeviceThreads contains:^BOOL(TSContactThread *thread) {
return thread.isContactFriend;
}]) {
isEnabled = true;
isAttachmentButtonHidden = false;
} else if (![linkedDeviceThreads contains:^BOOL(NSObject *object) {
return ((TSContactThread *)object).hasPendingFriendRequest;
} else if (![linkedDeviceThreads contains:^BOOL(TSContactThread *thread) {
return thread.hasPendingFriendRequest;
}]) {
isEnabled = true;
isAttachmentButtonHidden = true;
@ -3817,8 +3817,7 @@ typedef enum : NSUInteger {
if (isBackspace) {
self.currentMentionStartIndex = -1;
[self.inputToolbar hideMentionCandidateSelectionView];
NSArray *mentionsToRemove = [self.mentions filtered:^BOOL(NSObject *object) {
LKMention *mention = (LKMention *)object;
NSArray *mentionsToRemove = [self.mentions filtered:^BOOL(LKMention *mention) {
return ![mention isContainedIn:newText];
}];
[self.mentions removeObjectsInArray:mentionsToRemove];

@ -1,8 +1,8 @@
@interface NSArray (Functional)
- (BOOL)contains:(BOOL (^)(NSObject *))predicate;
- (NSArray *)filtered:(BOOL (^)(NSObject *))isIncluded;
- (NSArray *)map:(NSObject *(^)(NSObject *))transform;
- (BOOL)contains:(BOOL (^)(id))predicate;
- (NSArray *)filtered:(BOOL (^)(id))isIncluded;
- (NSArray *)map:(id (^)(id))transform;
@end

@ -2,17 +2,17 @@
@implementation NSArray (Functional)
- (BOOL)contains:(BOOL (^)(NSObject *))predicate {
for (NSObject *object in self) {
- (BOOL)contains:(BOOL (^)(id))predicate {
for (id object in self) {
BOOL isPredicateSatisfied = predicate(object);
if (isPredicateSatisfied) { return YES; }
}
return NO;
}
- (NSArray *)filtered:(BOOL (^)(NSObject *))isIncluded {
- (NSArray *)filtered:(BOOL (^)(id))isIncluded {
NSMutableArray *result = [NSMutableArray new];
for (NSObject *object in self) {
for (id object in self) {
if (isIncluded(object)) {
[result addObject:object];
}
@ -20,10 +20,10 @@
return result;
}
- (NSArray *)map:(NSObject *(^)(NSObject *))transform {
- (NSArray *)map:(id (^)(id))transform {
NSMutableArray *result = [NSMutableArray new];
for (NSObject *object in self) {
NSObject *transformedObject = transform(object);
for (id object in self) {
id transformedObject = transform(object);
[result addObject:transformedObject];
}
return result;

@ -1,6 +1,6 @@
@interface NSObject (Casting)
- (instancetype)as:(Class)cls;
- (id)as:(Class)cls;
@end

@ -2,7 +2,7 @@
@implementation NSObject (Casting)
- (instancetype)as:(Class)cls {
- (id)as:(Class)cls {
if ([self isKindOfClass:cls]) { return self; }
return nil;
}

@ -1,8 +1,8 @@
@interface NSSet (Functional)
- (BOOL)contains:(BOOL (^)(NSObject *))predicate;
- (NSSet *)filtered:(BOOL (^)(NSObject *))isIncluded;
- (NSSet *)map:(NSObject *(^)(NSObject *))transform;
- (BOOL)contains:(BOOL (^)(id))predicate;
- (NSSet *)filtered:(BOOL (^)(id))isIncluded;
- (NSSet *)map:(id (^)(id))transform;
@end

@ -2,17 +2,17 @@
@implementation NSSet (Functional)
- (BOOL)contains:(BOOL (^)(NSObject *))predicate {
for (NSObject *object in self) {
- (BOOL)contains:(BOOL (^)(id))predicate {
for (id object in self) {
BOOL isPredicateSatisfied = predicate(object);
if (isPredicateSatisfied) { return YES; }
}
return NO;
}
- (NSSet *)filtered:(BOOL (^)(NSObject *))isIncluded {
- (NSSet *)filtered:(BOOL (^)(id))isIncluded {
NSMutableSet *result = [NSMutableSet new];
for (NSObject *object in self) {
for (id object in self) {
if (isIncluded(object)) {
[result addObject:object];
}
@ -20,10 +20,10 @@
return result;
}
- (NSSet *)map:(NSObject *(^)(NSObject *))transform {
- (NSSet *)map:(id (^)(id))transform {
NSMutableSet *result = [NSMutableSet new];
for (NSObject *object in self) {
NSObject *transformedObject = transform(object);
for (id object in self) {
id transformedObject = transform(object);
[result addObject:transformedObject];
}
return result;

@ -1557,8 +1557,7 @@ NS_ASSUME_NONNULL_BEGIN
return YES;
}
NSSet<TSContactThread *> *senderLinkedDeviceThreads = [LKDatabaseUtilities getLinkedDeviceThreadsFor:senderHexEncodedPublicKey in:transaction];
if ([senderLinkedDeviceThreads contains:^BOOL(NSObject *object) {
TSContactThread *thread = (TSContactThread *)object;
if ([senderLinkedDeviceThreads contains:^BOOL(TSContactThread *thread) {
return thread.isContactFriend;
}]) {
// Auto-accept if the user is friends with any of the sender's linked devices.
@ -1631,7 +1630,7 @@ NS_ASSUME_NONNULL_BEGIN
if (thread.isContactFriend) return;
// Become happy friends and go on great adventures
[thread saveFriendRequestStatus:LKThreadFriendRequestStatusFriends withTransaction:transaction];
TSOutgoingMessage *existingFriendRequestMessage = (TSOutgoingMessage *)[thread.lastInteraction as:TSOutgoingMessage.class];
TSOutgoingMessage *existingFriendRequestMessage = [thread.lastInteraction as:TSOutgoingMessage.class];
if (existingFriendRequestMessage != nil && existingFriendRequestMessage.isFriendRequest) {
[existingFriendRequestMessage saveFriendRequestStatus:LKMessageFriendRequestStatusAccepted withTransaction:transaction];
}

@ -942,8 +942,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
[[LKAPI getDestinationsFor:contactID]
.thenOn(OWSDispatch.sendingQueue, ^(NSArray<LKDestination *> *destinations) {
// Get master destination
LKDestination *masterDestination = [destinations filtered:^BOOL(NSObject *object) {
LKDestination *destination = [object as:LKDestination.class];
LKDestination *masterDestination = [destinations filtered:^BOOL(LKDestination *destination) {
return [destination.kind isEqual:@"master"];
}].firstObject;
// Send to master destination
@ -958,8 +957,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
}
}
// Get slave destinations
NSArray *slaveDestinations = [destinations filtered:^BOOL(NSObject *object) {
LKDestination *destination = [object as:LKDestination.class];
NSArray *slaveDestinations = [destinations filtered:^BOOL(LKDestination *destination) {
return [destination.kind isEqual:@"slave"];
}];
// Send to slave destinations (using a best attempt approach (i.e. ignoring the message send result) for now)
@ -1962,7 +1960,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
BOOL isSilent = message.isSilent;
BOOL isOnline = message.isOnline;
LKAddressMessage *_Nullable addressMessage = [message as:[LKAddressMessage class]];
LKAddressMessage *addressMessage = [message as:[LKAddressMessage class]];
BOOL isPing = addressMessage != nil && addressMessage.isPing;
OWSMessageServiceParams *messageParams =
[[OWSMessageServiceParams alloc] initWithType:messageType

Loading…
Cancel
Save