mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-18 11:13:28 +01:00
[Widgets]: Use AppIntentConfiguration instead of StaticConfiguration and cleanup
This commit is contained in:
@@ -7,7 +7,6 @@
|
||||
//
|
||||
|
||||
import AppIntents
|
||||
import WidgetKit
|
||||
|
||||
public enum Direction: String, Sendable{
|
||||
case up = "up"
|
||||
@@ -15,43 +14,42 @@ public enum Direction: String, Sendable{
|
||||
}
|
||||
|
||||
@available(iOS 17, *)
|
||||
class PaginationIntent: AppIntent, @unchecked Sendable {
|
||||
static var title: LocalizedStringResource { "Scroll up or down in Active Apps Widget" }
|
||||
final class PaginationIntent: AppIntent, @unchecked Sendable {
|
||||
|
||||
static var title: LocalizedStringResource { "Page Navigation Intent" }
|
||||
static var isDiscoverable: Bool { false }
|
||||
|
||||
@Parameter(title: "Direction")
|
||||
var direction: String
|
||||
|
||||
@Parameter(title: "Widget Identifier")
|
||||
@Parameter(title: "WidgetID")
|
||||
var widgetID: String
|
||||
|
||||
private lazy var widgetHolderQ = {
|
||||
DispatchQueue(label: widgetID)
|
||||
}()
|
||||
|
||||
required init(){}
|
||||
var uuid: String = UUID().uuidString
|
||||
|
||||
required init(){
|
||||
print()
|
||||
}
|
||||
|
||||
init(_ direction: Direction, _ widgetID: String){
|
||||
self.direction = direction.rawValue
|
||||
self.widgetID = widgetID
|
||||
}
|
||||
|
||||
|
||||
func perform() async throws -> some IntentResult {
|
||||
guard let direction = Direction(rawValue: self.direction) else {
|
||||
return .result()
|
||||
}
|
||||
|
||||
widgetHolderQ.sync {
|
||||
// update direction for this widgetID
|
||||
let dataholder = PaginationDataHolder.holder(for: self.widgetID)
|
||||
dataholder?.updateDirection(direction)
|
||||
// if let widgetID = self.widgetID
|
||||
// {
|
||||
// WidgetCenter.shared.reloadTimelines(ofKind: widgetID)
|
||||
// }
|
||||
// return .result()
|
||||
|
||||
// ask widget views to be re-drawn by triggering timeline update
|
||||
// for the widget uniquely identified by the 'kind: widgetID'
|
||||
WidgetCenter.shared.reloadTimelines(ofKind: self.widgetID)
|
||||
}
|
||||
let result = try await WidgetUpdateIntent(
|
||||
Direction(rawValue: self.direction),
|
||||
self.widgetID
|
||||
).perform()
|
||||
|
||||
return .result()
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user