Statistics
| Branch: | Tag: | Revision:

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
}