mirror of
https://github.com/yattee/yattee.git
synced 2024-12-22 21:43:41 +00:00
2e9cceafa5
We generate a User-Agent for the platform we are running on and add it to the URLTester requests and also to MPV and AVPlayer
134 lines
2.6 KiB
Swift
134 lines
2.6 KiB
Swift
import Defaults
|
|
import Foundation
|
|
import SwiftUI
|
|
|
|
enum Constants {
|
|
static let overlayAnimation = Animation.linear(duration: 0.2)
|
|
|
|
static var isAppleTV: Bool {
|
|
#if os(iOS)
|
|
UIDevice.current.userInterfaceIdiom == .tv
|
|
#else
|
|
false
|
|
#endif
|
|
}
|
|
|
|
static var isMac: Bool {
|
|
#if os(iOS)
|
|
UIDevice.current.userInterfaceIdiom == .mac
|
|
#else
|
|
false
|
|
#endif
|
|
}
|
|
|
|
static var isIPhone: Bool {
|
|
#if os(iOS)
|
|
UIDevice.current.userInterfaceIdiom == .phone
|
|
#else
|
|
false
|
|
#endif
|
|
}
|
|
|
|
static var isIPad: Bool {
|
|
#if os(iOS)
|
|
UIDevice.current.userInterfaceIdiom == .pad
|
|
#else
|
|
false
|
|
#endif
|
|
}
|
|
|
|
static var progressViewScale: Double {
|
|
#if os(macOS)
|
|
0.4
|
|
#else
|
|
0.6
|
|
#endif
|
|
}
|
|
|
|
static var channelThumbnailSize: Double {
|
|
#if os(tvOS)
|
|
50
|
|
#else
|
|
30
|
|
#endif
|
|
}
|
|
|
|
static var sidebarChannelThumbnailSize: Double {
|
|
#if os(macOS)
|
|
20
|
|
#else
|
|
30
|
|
#endif
|
|
}
|
|
|
|
static var channelDetailsStackSpacing: Double {
|
|
#if os(tvOS)
|
|
12
|
|
#else
|
|
6
|
|
#endif
|
|
}
|
|
|
|
static var detailsVisibility: Bool {
|
|
#if os(iOS)
|
|
false
|
|
#else
|
|
true
|
|
#endif
|
|
}
|
|
|
|
static var deviceName: String {
|
|
#if os(macOS)
|
|
Host().localizedName ?? "Mac"
|
|
#else
|
|
UIDevice.current.name
|
|
#endif
|
|
}
|
|
|
|
static var platform: String {
|
|
#if os(macOS)
|
|
"macOS"
|
|
#elseif os(iOS)
|
|
"iOS"
|
|
#elseif os(tvOS)
|
|
"tvOS"
|
|
#else
|
|
"unknown"
|
|
#endif
|
|
}
|
|
|
|
static var defaultNavigationStyle: NavigationStyle {
|
|
#if os(macOS)
|
|
return .sidebar
|
|
#elseif os(iOS)
|
|
if isIPad {
|
|
return .sidebar
|
|
}
|
|
return .tab
|
|
#else
|
|
return .tab
|
|
#endif
|
|
}
|
|
|
|
static func seekIcon(_ type: String, _ interval: TimeInterval) -> String {
|
|
let interval = Int(interval)
|
|
let allVersions = [10, 15, 30, 45, 60, 75, 90]
|
|
let iOS15 = [5]
|
|
let iconName = "go\(type).\(interval)"
|
|
|
|
if #available(iOS 15, macOS 12, *) {
|
|
if iOS15.contains(interval) {
|
|
return iconName
|
|
}
|
|
}
|
|
|
|
if allVersions.contains(interval) {
|
|
return iconName
|
|
}
|
|
|
|
let sign = type == "forward" ? "plus" : "minus"
|
|
|
|
return "go\(type).\(sign)"
|
|
}
|
|
}
|