1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- //
- // 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 UIKit
- import Queuer
- import NextcloudKit
- import RealmSwift
- class NCCollectionViewUnifiedSearch: ConcurrentOperation, @unchecked Sendable {
- 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()
- }
- }
- }
|