123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //
- // NCCollectionViewUnifiedSearch.swift
- // Nextcloud
- //
- // Created by Marino Faggiana on 14/03/24.
- // Copyright © 2024 Marino Faggiana. All rights reserved.
- //
- // Author Marino Faggiana <marino.faggiana@nextcloud.com>
- //
- // This program is free software: you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
- //
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with this program. If not, see <http://www.gnu.org/licenses/>.
- //
- import Foundation
- import Queuer
- import NextcloudKit
- import Realm
- class NCCollectionViewUnifiedSearch: ConcurrentOperation {
- var collectionViewCommon: NCCollectionViewCommon
- var metadatas: [tableMetadata]
- var searchResult: NKSearchResult
- init(collectionViewCommon: NCCollectionViewCommon, metadatas: [tableMetadata], searchResult: NKSearchResult) {
- self.collectionViewCommon = collectionViewCommon
- self.metadatas = metadatas
- self.searchResult = searchResult
- }
- func reloadDataThenPerform(_ closure: @escaping (() -> Void)) {
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
- CATransaction.begin()
- CATransaction.setCompletionBlock(closure)
- self.collectionViewCommon.collectionView.reloadData()
- CATransaction.commit()
- }
- }
- override func start() {
- guard !isCancelled else { return self.finish() }
- self.collectionViewCommon.dataSource.addSection(metadatas: metadatas, searchResult: searchResult)
- self.collectionViewCommon.searchResults?.append(self.searchResult)
- reloadDataThenPerform {
- self.finish()
- }
- }
- }
|