mirror of
https://github.com/yattee/yattee.git
synced 2024-11-09 15:58:20 +00:00
9a1f0d7aaa
- Don’t use System Controls with AVPlayer by default - Changed default order of the formats - no default AVPlayer profiles except for tvOS - new constants isIOS, isTvOS, isMacOS - ArtWork for nowPlaying is .medium on iPhone .maxres on all other platforms - changes to the player bar defaults Signed-off-by: Toni Förster <toni.foerster@gmail.com>
160 lines
3.1 KiB
Swift
160 lines
3.1 KiB
Swift
import Defaults
|
|
import Foundation
|
|
import SwiftUI
|
|
|
|
enum Constants {
|
|
static let overlayAnimation = Animation.linear(duration: 0.2)
|
|
static let aspectRatio16x9 = 16.0 / 9.0
|
|
static let aspectRatio4x3 = 4.0 / 3.0
|
|
|
|
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 isTvOS: Bool {
|
|
#if os(tvOS)
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
}
|
|
|
|
static var isMacOS: Bool {
|
|
#if os(macOS)
|
|
true
|
|
#else
|
|
false
|
|
#endif
|
|
}
|
|
|
|
static var isIOS: Bool {
|
|
#if os(iOS)
|
|
true
|
|
#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)"
|
|
}
|
|
}
|