Tusker/Tusker/Shortcuts/UserActivityType.swift

47 lines
1.7 KiB
Swift

//
// UserActivityType.swift
// Tusker
//
// Created by Shadowfacts on 10/19/18.
// Copyright © 2018 Shadowfacts. All rights reserved.
//
import Foundation
enum UserActivityType: String {
case mainScene = "space.vaccor.Tusker.activity.main-scene"
case newPost = "space.vaccor.Tusker.activity.new-post"
case checkNotifications = "space.vaccor.Tusker.activity.check-notifications"
case showTimeline = "space.vaccor.Tusker.activity.show-timeline"
case search = "space.vaccor.Tusker.activity.search"
case bookmarks = "space.vaccor.Tusker.activity.bookmarks"
case showConversation = "space.vaccor.Tusker.activity.show-conversation"
case myProfile = "space.vaccor.Tusker.activity.my-profile"
case showProfile = "space.vaccor.Tusker.activity.show-profile"
}
extension UserActivityType {
var handle: (UserActivityManager) -> @MainActor (NSUserActivity) -> Void {
switch self {
case .mainScene:
fatalError("cannot handle main scene activity")
case .newPost:
return UserActivityManager.handleNewPost
case .checkNotifications:
return UserActivityManager.handleCheckNotifications
case .showTimeline:
return UserActivityManager.handleShowTimeline
case .search:
return UserActivityManager.handleSearch
case .bookmarks:
return UserActivityManager.handleBookmarks
case .showConversation:
return UserActivityManager.handleShowConversation
case .myProfile:
return UserActivityManager.handleMyProfile
case .showProfile:
return UserActivityManager.handleShowProfile
}
}
}