mirror of
https://github.com/XITRIX/iTorrent.git
synced 2026-05-30 11:46:50 +00:00
80 lines
2.2 KiB
Swift
80 lines
2.2 KiB
Swift
//
|
||
// ProgressWidgetAttributes.swift
|
||
// iTorrent
|
||
//
|
||
// Created by Даниил Виноградов on 06.04.2024.
|
||
//
|
||
|
||
#if canImport(ActivityKit)
|
||
import ActivityKit
|
||
import Foundation
|
||
|
||
extension ProgressWidgetAttributes {
|
||
enum State: UInt, Codable {
|
||
case checkingFiles
|
||
case downloadingMetadata
|
||
case downloading
|
||
case finished
|
||
case seeding
|
||
case checkingResumeData
|
||
case paused
|
||
case storageError
|
||
}
|
||
}
|
||
|
||
extension ProgressWidgetAttributes.State {
|
||
var name: String {
|
||
switch self {
|
||
case .checkingFiles:
|
||
return %"torrent.state.checkingFiles"
|
||
case .downloadingMetadata:
|
||
return %"torrent.state.fetchingMetadata"
|
||
case .downloading:
|
||
return %"torrent.state.downloading"
|
||
case .finished:
|
||
return %"torrent.state.done"
|
||
case .seeding:
|
||
return %"torrent.state.seeding"
|
||
case .checkingResumeData:
|
||
return %"torrent.state.resuming"
|
||
case .paused:
|
||
return %"torrent.state.paused"
|
||
case .storageError:
|
||
return %"torrent.state.storageError"
|
||
}
|
||
}
|
||
}
|
||
|
||
struct ProgressWidgetAttributes: ActivityAttributes {
|
||
public init(hash: String) {
|
||
self.hash = hash
|
||
}
|
||
|
||
public struct ContentState: Codable, Hashable {
|
||
public init(name: String, state: State, progress: Double, downSpeed: UInt64, upSpeed: UInt64, timeRemainig: String, timeStamp: Date, color: Data?) {
|
||
self.name = name
|
||
self.state = state
|
||
self.progress = progress
|
||
self.downSpeed = downSpeed
|
||
self.upSpeed = upSpeed
|
||
self.timeRemainig = timeRemainig
|
||
self.timeStamp = timeStamp
|
||
self.color = color
|
||
}
|
||
|
||
// Dynamic stateful properties about your activity go here!
|
||
public var name: String
|
||
public var state: State
|
||
public var progress: Double
|
||
public var downSpeed: UInt64
|
||
public var upSpeed: UInt64
|
||
public var timeRemainig: String
|
||
public var timeStamp: Date
|
||
public var color: Data?
|
||
}
|
||
|
||
// Fixed non-changing properties about your activity go here!
|
||
public var hash: String
|
||
}
|
||
#endif
|