50 lines
1.5 KiB
Swift
50 lines
1.5 KiB
Swift
//
|
|
// Swiftfin is subject to the terms of the Mozilla Public
|
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
// file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
//
|
|
// Copyright (c) 2024 Jellyfin & Jellyfin Contributors
|
|
//
|
|
|
|
import UIKit
|
|
|
|
extension UIApplication {
|
|
|
|
static var appVersion: String? {
|
|
Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String
|
|
}
|
|
|
|
static var bundleVersion: String? {
|
|
Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String
|
|
}
|
|
|
|
var keyWindow: UIWindow? {
|
|
connectedScenes
|
|
.compactMap {
|
|
$0 as? UIWindowScene
|
|
}
|
|
.flatMap(\.windows)
|
|
.first {
|
|
$0.isKeyWindow
|
|
}
|
|
}
|
|
|
|
func setAccentColor(_ newColor: UIColor) {
|
|
keyWindow?.tintColor = newColor
|
|
}
|
|
|
|
func setAppearance(_ newAppearance: UIUserInterfaceStyle) {
|
|
keyWindow?.overrideUserInterfaceStyle = newAppearance
|
|
}
|
|
|
|
#if os(iOS)
|
|
func setNavigationBackButtonAccentColor(_ newColor: UIColor) {
|
|
let config = UIImage.SymbolConfiguration(paletteColors: [newColor.overlayColor, newColor])
|
|
let backButtonBackgroundImage = UIImage(systemName: "chevron.backward.circle.fill", withConfiguration: config)
|
|
let barAppearance = UINavigationBar.appearance()
|
|
barAppearance.backIndicatorImage = backButtonBackgroundImage
|
|
barAppearance.backIndicatorTransitionMaskImage = backButtonBackgroundImage
|
|
}
|
|
#endif
|
|
}
|