Merge commit '7621e2f8dec938cf48181c8b10afc9b01f444e68' into beta

This commit is contained in:
Ilya Laktyushin
2025-12-06 02:17:48 +04:00
commit 8344b97e03
28070 changed files with 7995182 additions and 0 deletions
@@ -0,0 +1,47 @@
import Foundation
private enum TemperatureUnit {
case celsius
case fahrenheit
var suffix: String {
switch self {
case .celsius:
return "°C"
case .fahrenheit:
return "°F"
}
}
}
private var cachedTemperatureUnit: TemperatureUnit?
private func currentTemperatureUnit() -> TemperatureUnit {
if let cachedTemperatureUnit {
return cachedTemperatureUnit
}
let temperatureFormatter = MeasurementFormatter()
temperatureFormatter.locale = Locale.current
let fahrenheitMeasurement = Measurement(value: 0, unit: UnitTemperature.fahrenheit)
let fahrenheitString = temperatureFormatter.string(from: fahrenheitMeasurement)
var temperatureUnit: TemperatureUnit = .celsius
if fahrenheitString.contains("F") || fahrenheitString.contains("Fahrenheit") {
temperatureUnit = .fahrenheit
}
cachedTemperatureUnit = temperatureUnit
return temperatureUnit
}
private var formatter: MeasurementFormatter = {
let formatter = MeasurementFormatter()
formatter.locale = Locale.current
formatter.unitStyle = .short
formatter.numberFormatter.maximumFractionDigits = 0
return formatter
}()
public func stringForTemperature(_ value: Double) -> String {
let valueString = formatter.string(from: Measurement(value: value, unit: UnitTemperature.celsius)).trimmingCharacters(in: CharacterSet(charactersIn: "0123456789-,.").inverted)
return valueString + currentTemperatureUnit().suffix
}