chatsecureios / ChatSecure / Classes / OTRAppDelegate.swift @ fa6e5004
History | View | Annotate | Download (1.1 KB)
1 |
// |
---|---|
2 |
// OTRAppDelegate.swift |
3 |
// ChatSecureCore |
4 |
// |
5 |
// Created by Chris Ballinger on 12/5/17. |
6 |
// Copyright © 2017 Chris Ballinger. All rights reserved. |
7 |
// |
8 |
|
9 |
import Foundation |
10 |
import YapDatabase |
11 |
|
12 |
public extension OTRAppDelegate { |
13 |
/// Returns key/collection of visible thread, or nil if not visible or unset |
14 |
@objc public static func visibleThread(_ block: @escaping (_ thread: YapCollectionKey?)->(), completionQueue: DispatchQueue? = nil) { |
15 |
DispatchQueue.main.async { |
16 |
let messagesVC = OTRAppDelegate.appDelegate.messagesViewController |
17 |
guard messagesVC.isViewLoaded, |
18 |
messagesVC.view.window != nil, |
19 |
let key = messagesVC.threadKey, |
20 |
let collection = messagesVC.threadCollection else { |
21 |
block(nil) |
22 |
return |
23 |
} |
24 |
let ck = YapCollectionKey(collection: collection, key: key) |
25 |
if let completionQueue = completionQueue { |
26 |
completionQueue.async { |
27 |
block(ck) |
28 |
} |
29 |
} else { |
30 |
block(ck) |
31 |
} |
32 |
} |
33 |
} |
34 |
} |