Atoll/DynamicIsland/enums/generic.swift
2026-01-22 13:13:55 +05:30

219 lines
4.7 KiB
Swift

//
// generic.swift
// DynamicIsland
//
// Created by Harsh Vardhan Goswami on 04/08/24.
// Modified by Hariharan Mudaliar
import Foundation
import Defaults
import CoreGraphics
public enum Style {
case notch
case floating
}
public enum ContentType: Int, Codable, Hashable, Equatable {
case normal
case menu
case settings
}
public enum NotchState {
case closed
case open
}
public enum NotchViews {
case home
case shelf
case timer
case stats
case colorPicker
case notes
case clipboard
case extensionExperience
}
enum NotesLayoutState: Equatable {
case list
case split
case editor
var preferredHeight: CGFloat {
switch self {
case .list:
return 240
case .split:
return 260
case .editor:
return 320
}
}
}
enum SettingsEnum {
case general
case about
case charge
case download
case mediaPlayback
case hud
case shelf
case extensions
}
enum DownloadIndicatorStyle: String, Defaults.Serializable {
case progress = "Progress"
case percentage = "Percentage"
case circle = "Circle"
}
enum DownloadIconStyle: String, Defaults.Serializable {
case onlyAppIcon = "Only app icon"
case onlyIcon = "Only download icon"
case iconAndAppIcon = "Icon and app icon"
}
enum MirrorShapeEnum: String, Defaults.Serializable {
case rectangle = "Rectangular"
case circle = "Circular"
}
enum WindowHeightMode: String, Defaults.Serializable {
case matchMenuBar = "Match menubar height"
case matchRealNotchSize = "Match real notch height"
case custom = "Custom height"
}
enum SliderColorEnum: String, CaseIterable, Defaults.Serializable {
case white = "White"
case albumArt = "Match album art"
case accent = "Accent color"
}
enum LockScreenGlassStyle: String, CaseIterable, Defaults.Serializable, Identifiable {
case liquid = "Liquid Glass"
case frosted = "Frosted Glass"
var id: String { rawValue }
}
enum LockScreenGlassCustomizationMode: String, CaseIterable, Defaults.Serializable, Identifiable {
case standard = "Standard"
case customLiquid = "Custom Liquid"
var id: String { rawValue }
var allowsVariantSelection: Bool {
self == .customLiquid
}
}
enum LockScreenTimerSurfaceMode: String, CaseIterable, Defaults.Serializable, Identifiable {
case classic = "Classic"
case glass = "Glass"
var id: String { rawValue }
}
enum LockScreenWeatherWidgetStyle: String, CaseIterable, Defaults.Serializable, Identifiable {
case inline = "Inline"
case circular = "Circular"
var id: String { rawValue }
}
enum LockScreenWeatherProviderSource: String, CaseIterable, Defaults.Serializable, Identifiable {
case wttr = "wttr.in"
case openMeteo = "Open Meteo"
var id: String { rawValue }
var displayName: String { rawValue }
var supportsAirQuality: Bool {
switch self {
case .wttr:
return false
case .openMeteo:
return true
}
}
}
enum LockScreenWeatherTemperatureUnit: String, CaseIterable, Defaults.Serializable, Identifiable {
case celsius = "Celsius"
case fahrenheit = "Fahrenheit"
var id: String { rawValue }
var usesMetricSystem: Bool { self == .celsius }
var symbol: String {
switch self {
case .celsius: return "°C"
case .fahrenheit: return "°F"
}
}
var openMeteoTemperatureParameter: String? {
switch self {
case .celsius: return nil
case .fahrenheit: return "fahrenheit"
}
}
}
enum LockScreenWeatherAirQualityScale: String, CaseIterable, Defaults.Serializable, Identifiable {
case us = "U.S. AQI"
case european = "EAQI"
var id: String { rawValue }
var displayName: String { rawValue }
var compactLabel: String {
switch self {
case .us:
return "AQI"
case .european:
return "EAQI"
}
}
var accessibilityLabel: String {
switch self {
case .us:
return "AQI"
case .european:
return "EAQI"
}
}
var queryParameter: String {
switch self {
case .us:
return "us_aqi"
case .european:
return "european_aqi"
}
}
var gaugeRange: ClosedRange<Double> {
switch self {
case .us:
return 0...500
case .european:
return 0...120
}
}
}
enum LockScreenReminderChipStyle: String, CaseIterable, Defaults.Serializable, Identifiable {
case eventColor = "Event color"
case monochrome = "White"
var id: String { rawValue }
}