IntentHandler.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //
  2. // IntentHandler.swift
  3. // WidgetDashboardIntentHandler
  4. //
  5. // Created by Marino Faggiana on 08/10/22.
  6. // Copyright © 2022 Marino Faggiana. All rights reserved.
  7. //
  8. import Intents
  9. import RealmSwift
  10. class IntentHandler: INExtension, DashboardIntentHandling {
  11. func provideApplicationsOptionsCollection(for intent: DashboardIntent, with completion: @escaping (INObjectCollection<Applications>?, Error?) -> Void) {
  12. var applications: [Applications] = []
  13. guard let account = NCManageDatabase.shared.getActiveAccount() else {
  14. completion(nil, nil)
  15. return
  16. }
  17. let results = NCManageDatabase.shared.getDashboardWidgetApplications(account: account.account)
  18. for result in results {
  19. let application = Applications(identifier: result.id, display: result.title)
  20. applications.append(application)
  21. }
  22. completion(INObjectCollection(items: applications), nil)
  23. }
  24. func defaultApplications(for intent: DashboardIntent) -> Applications? {
  25. guard let account = NCManageDatabase.shared.getActiveAccount() else {
  26. return nil
  27. }
  28. if let result = NCManageDatabase.shared.getDashboardWidgetApplications(account: account.account).first {
  29. return Applications(identifier: result.id, display: result.title)
  30. }
  31. return nil
  32. }
  33. }