|  |  |  | @ -61,7 +61,16 @@ public final class ClosedGroupPoller : NSObject { | 
		
	
		
			
				|  |  |  |  |     // MARK: Private API | 
		
	
		
			
				|  |  |  |  |     private func setUpPolling(for groupPublicKey: String) { | 
		
	
		
			
				|  |  |  |  |         Threading.pollerQueue.async { | 
		
	
		
			
				|  |  |  |  |             self.poll(groupPublicKey).done(on: Threading.pollerQueue) { [weak self] _ in | 
		
	
		
			
				|  |  |  |  |             let promises: [Promise<Void>] = { | 
		
	
		
			
				|  |  |  |  |                 if SnodeAPI.hardfork >= 19 && SnodeAPI.softfork >= 1 { | 
		
	
		
			
				|  |  |  |  |                     return [ self.poll(groupPublicKey) ] | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |                 if SnodeAPI.hardfork >= 19 { | 
		
	
		
			
				|  |  |  |  |                     return [ self.poll(groupPublicKey, defaultInbox: true), self.poll(groupPublicKey) ] | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |                 return [ self.poll(groupPublicKey, defaultInbox: true) ] | 
		
	
		
			
				|  |  |  |  |             }() | 
		
	
		
			
				|  |  |  |  |             when(resolved: promises).done(on: Threading.pollerQueue) { [weak self] _ in | 
		
	
		
			
				|  |  |  |  |                 self?.pollRecursively(groupPublicKey) | 
		
	
		
			
				|  |  |  |  |             }.catch(on: Threading.pollerQueue) { [weak self] error in | 
		
	
		
			
				|  |  |  |  |                 // The error is logged in poll(_:) | 
		
	
	
		
			
				
					|  |  |  | @ -87,13 +96,15 @@ public final class ClosedGroupPoller : NSObject { | 
		
	
		
			
				|  |  |  |  |         timers[groupPublicKey] = Timer.scheduledTimerOnMainThread(withTimeInterval: nextPollInterval, repeats: false) { [weak self] timer in | 
		
	
		
			
				|  |  |  |  |             timer.invalidate() | 
		
	
		
			
				|  |  |  |  |             Threading.pollerQueue.async { | 
		
	
		
			
				|  |  |  |  |                 var promises: [Promise<Void>] = [] | 
		
	
		
			
				|  |  |  |  |                 if SnodeAPI.hardfork <= 19, SnodeAPI.softfork == 0, let promise = self?.poll(groupPublicKey, defaultInbox: true) { | 
		
	
		
			
				|  |  |  |  |                     promises.append(promise) | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |                 if SnodeAPI.hardfork >= 19, SnodeAPI.softfork >= 0,let promise = self?.poll(groupPublicKey) { | 
		
	
		
			
				|  |  |  |  |                     promises.append(promise) | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |                 let promises: [Promise<Void>] = { | 
		
	
		
			
				|  |  |  |  |                     if SnodeAPI.hardfork >= 19 && SnodeAPI.softfork >= 1 { | 
		
	
		
			
				|  |  |  |  |                         return [ self?.poll(groupPublicKey) ].compactMap{ $0 } | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                     if SnodeAPI.hardfork >= 19 { | 
		
	
		
			
				|  |  |  |  |                         return [ self?.poll(groupPublicKey, defaultInbox: true), self?.poll(groupPublicKey) ].compactMap{ $0 } | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                     return [ self?.poll(groupPublicKey, defaultInbox: true) ].compactMap{ $0 } | 
		
	
		
			
				|  |  |  |  |                 }() | 
		
	
		
			
				|  |  |  |  |                 when(resolved: promises).done(on: Threading.pollerQueue) { _ in | 
		
	
		
			
				|  |  |  |  |                     self?.pollRecursively(groupPublicKey) | 
		
	
		
			
				|  |  |  |  |                 }.catch(on: Threading.pollerQueue) { error in | 
		
	
	
		
			
				
					|  |  |  | 
 |