mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
59 lines
1.9 KiB
Swift
59 lines
1.9 KiB
Swift
import Foundation
|
|
import MapKit
|
|
import TelegramPresentationData
|
|
|
|
private var sharedShortDistanceFormatter: MKDistanceFormatter?
|
|
public func shortStringForDistance(strings: PresentationStrings, distance: Int32) -> String {
|
|
let distanceFormatter: MKDistanceFormatter
|
|
if let currentDistanceFormatter = sharedShortDistanceFormatter {
|
|
distanceFormatter = currentDistanceFormatter
|
|
} else {
|
|
distanceFormatter = MKDistanceFormatter()
|
|
distanceFormatter.unitStyle = .abbreviated
|
|
sharedShortDistanceFormatter = distanceFormatter
|
|
}
|
|
|
|
let locale = localeWithStrings(strings)
|
|
if distanceFormatter.locale != locale {
|
|
distanceFormatter.locale = locale
|
|
}
|
|
|
|
let distance = max(1, distance)
|
|
var result = distanceFormatter.string(fromDistance: Double(distance))
|
|
if result.hasPrefix("0 ") {
|
|
result = result.replacingOccurrences(of: "0 ", with: "1 ")
|
|
}
|
|
return result
|
|
}
|
|
|
|
private var sharedDistanceFormatter: MKDistanceFormatter?
|
|
public func stringForDistance(strings: PresentationStrings, distance: CLLocationDistance) -> String {
|
|
let distanceFormatter: MKDistanceFormatter
|
|
if let currentDistanceFormatter = sharedDistanceFormatter {
|
|
distanceFormatter = currentDistanceFormatter
|
|
} else {
|
|
distanceFormatter = MKDistanceFormatter()
|
|
distanceFormatter.unitStyle = .full
|
|
sharedDistanceFormatter = distanceFormatter
|
|
}
|
|
|
|
let locale = localeWithStrings(strings)
|
|
if distanceFormatter.locale != locale {
|
|
distanceFormatter.locale = locale
|
|
}
|
|
|
|
return distanceFormatter.string(fromDistance: distance)
|
|
}
|
|
|
|
public func flagEmoji(countryCode: String) -> String {
|
|
if countryCode.uppercased() == "FT" {
|
|
return "🏴☠️"
|
|
}
|
|
let base : UInt32 = 127397
|
|
var flagString = ""
|
|
for v in countryCode.uppercased().unicodeScalars {
|
|
flagString.unicodeScalars.append(UnicodeScalar(base + v.value)!)
|
|
}
|
|
return flagString
|
|
}
|