diff --git a/local_pod_repo/objcTox/Classes/Private/Manager/Submanagers/OCTSubmanagerChatsImpl.m b/local_pod_repo/objcTox/Classes/Private/Manager/Submanagers/OCTSubmanagerChatsImpl.m index dfda1ea..708e91d 100644 --- a/local_pod_repo/objcTox/Classes/Private/Manager/Submanagers/OCTSubmanagerChatsImpl.m +++ b/local_pod_repo/objcTox/Classes/Private/Manager/Submanagers/OCTSubmanagerChatsImpl.m @@ -69,169 +69,6 @@ [self.dataSource.managerGetNotificationCenter postNotificationName:kOCTScheduleFileTransferCleanupNotification object:nil]; } -- (void)sendOwnPush -{ -} - -- (void)sendMessagePushToChat:(OCTChat *)chat -{ - NSParameterAssert(chat); - NSLog(@"PUSH:sendMessagePushToChat"); - __weak OCTSubmanagerChatsImpl *weakSelf = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong OCTSubmanagerChatsImpl *strongSelf = weakSelf; - OCTRealmManager *realmManager = [strongSelf.dataSource managerGetRealmManager]; - - OCTFriend *friend = [chat.friends firstObject]; - __block NSString *friend_pushToken = friend.pushToken; - - if (friend_pushToken == nil) - { - NSLog(@"sendMessagePushToChat:Friend has No Pushtoken"); - } - else - { - // HINT: only select outgoing messages (senderUniqueIdentifier == NULL) - NSPredicate *predicate = [NSPredicate predicateWithFormat:@"chatUniqueIdentifier == %@ AND messageText.isDelivered == 0 AND messageText.sentPush == 0 AND senderUniqueIdentifier == nil", chat.uniqueIdentifier]; - - RLMResults *results = [realmManager objectsWithClass:[OCTMessageAbstract class] predicate:predicate]; - OCTMessageAbstract *message_found = [results firstObject]; - if (message_found) { - - [realmManager updateObject:message_found withBlock:^(OCTMessageAbstract *theMessage) { - theMessage.messageText.sentPush = YES; - }]; - triggerPush(friend_pushToken, message_found.messageText.msgv3HashHex, strongSelf, chat); - } - } - }); -} - -triggerPush(NSString *used_pushToken, - NSString *msgv3HashHex, - OCTSubmanagerChatsImpl *strongSelf, - OCTChat *chat) -{ - // HINT: call push token (URL) here - // best in a background thread - // - NSLog(@"PUSH:triggerPush"); - if ((used_pushToken != nil) && (used_pushToken.length > 5)) { - - // check push url starts with allowed values - if ( - ([used_pushToken hasPrefix:@"https://tox.zoff.xyz/toxfcm/fcm.php?id="]) - || - ([used_pushToken hasPrefix:@"https://gotify1.unifiedpush.org/UP?token="]) - || - ([used_pushToken hasPrefix:@"https://ntfy.sh/"]) - ) { - - NSString *strong_pushToken = used_pushToken; - - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - // NSString *strong_pushToken = weak_pushToken; - int PUSH_URL_TRIGGER_AGAIN_MAX_COUNT = 8; - int PUSH_URL_TRIGGER_AGAIN_SECONDS = 21; - - for (int i=0; i<(PUSH_URL_TRIGGER_AGAIN_MAX_COUNT + 1); i++) - { - if (chat == nil) { - __block UIApplicationState as = UIApplicationStateBackground; - dispatch_sync(dispatch_get_main_queue(), ^{ - as =[[UIApplication sharedApplication] applicationState]; - }); - - if (as == UIApplicationStateActive) { - NSLog(@"PUSH:fg->break:1"); - break; - } - } - NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:strong_pushToken]]; - NSString *userUpdate = [NSString stringWithFormat:@"&text=1", nil]; - [urlRequest setHTTPMethod:@"POST"]; - - NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding]; - - [urlRequest setHTTPBody:data1]; - [urlRequest setCachePolicy:NSURLRequestReloadIgnoringCacheData]; - [urlRequest setTimeoutInterval:10]; // HINT: 10 seconds - NSString *userAgent = @"Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"; - [urlRequest setValue:userAgent forHTTPHeaderField:@"User-Agent"]; - [urlRequest setValue:@"no-cache, no-store, must-revalidate" forHTTPHeaderField:@"Cache-Control"]; - [urlRequest setValue:@"no-cache" forHTTPHeaderField:@"Pragma"]; - [urlRequest setValue:@"0" forHTTPHeaderField:@"Expires"]; - - // NSLog(@"PUSH:for msgv3HashHex=%@", msgv3HashHex); - // NSLog(@"PUSH:for friend.pushToken=%@", strong_pushToken); - - NSURLSession *session = [NSURLSession sharedSession]; - NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; - if ((httpResponse.statusCode < 300) && (httpResponse.statusCode > 199)) { - NSLog(@"calling PUSH URL:CALL:SUCCESS"); - } - else { - NSLog(@"calling PUSH URL:-ERROR:01-"); - } - }]; - NSLog(@"calling PUSH URL:CALL:start"); - [dataTask resume]; - if (i < PUSH_URL_TRIGGER_AGAIN_MAX_COUNT) - { - NSLog(@"calling PUSH URL:WAIT:start"); - [NSThread sleepForTimeInterval:PUSH_URL_TRIGGER_AGAIN_SECONDS]; - NSLog(@"calling PUSH URL:WAIT:done"); - } - - if (chat == nil) { - __block UIApplicationState as = UIApplicationStateBackground; - dispatch_sync(dispatch_get_main_queue(), ^{ - as =[[UIApplication sharedApplication] applicationState]; - }); - - if (as == UIApplicationStateActive) { - NSLog(@"PUSH:fg->break:2"); - break; - } - } - - if (msgv3HashHex != nil) - { - OCTRealmManager *realmManager = [strongSelf.dataSource managerGetRealmManager]; - __block BOOL msgIsDelivered = NO; - - NSLog(@"calling PUSH URL:DB check:start"); - dispatch_sync(dispatch_get_main_queue(), ^{ - // HINT: only select outgoing messages (senderUniqueIdentifier == NULL) - NSPredicate *predicate = [NSPredicate predicateWithFormat:@"chatUniqueIdentifier == %@ AND messageText.msgv3HashHex == %@ AND senderUniqueIdentifier == nil", - chat.uniqueIdentifier, msgv3HashHex]; - RLMResults *results = [realmManager objectsWithClass:[OCTMessageAbstract class] predicate:predicate]; - OCTMessageAbstract *message_found = [results firstObject]; - if (message_found) { - if (message_found.messageText) { - msgIsDelivered = message_found.messageText.isDelivered; - } - } - NSLog(@"calling PUSH URL:DB check:end_real"); - }); - NSLog(@"calling PUSH URL:DB check:end"); - - if (msgIsDelivered == YES) { - // OCTLogInfo(@"PUSH:for msgv3HashHex isDelivered=YES"); - NSLog(@"PUSH:for msgv3HashHex isDelivered=YES"); - break; - } - } - } - }); - } - else { - NSLog(@"unsafe PUSH URL not allowed:-ERROR:02-"); - } - } -} - - (void)sendMessageToChat:(OCTChat *)chat text:(NSString *)text type:(OCTToxMessageType)type @@ -298,8 +135,6 @@ triggerPush(NSString *used_pushToken, if ((error.code == OCTToxErrorFriendSendMessageFriendNotConnected) && [strongSelf.dataSource managerUseFauxOfflineMessaging]) { - NSString *friend_pushToken = friend.pushToken; - triggerPush(friend_pushToken, msgv3HashHex, strongSelf, chat); successBlock(-1); return; } diff --git a/local_pod_repo/objcTox/Classes/Public/Manager/Submanagers/OCTSubmanagerChats.h b/local_pod_repo/objcTox/Classes/Public/Manager/Submanagers/OCTSubmanagerChats.h index c09c93d..1d503b5 100644 --- a/local_pod_repo/objcTox/Classes/Public/Manager/Submanagers/OCTSubmanagerChats.h +++ b/local_pod_repo/objcTox/Classes/Public/Manager/Submanagers/OCTSubmanagerChats.h @@ -57,18 +57,6 @@ successBlock:(void (^)(OCTMessageAbstract *message))userSuccessBlock failureBlock:(void (^)(NSError *error))userFailureBlock; -/** - * Trigger PUSH Message to yourself - */ -- (void)sendOwnPush; - -/** - * Trigger PUSH Message to Friend if the Text Message was sent in a period where the friend - * was online to us, but the friend was in fact already offline. - * so no message was sent AND not PUSH was triggered. - */ -- (void)sendMessagePushToChat:(OCTChat *)chat; - /** * Set our typing status for a chat. You are responsible for turning it on or off. *