56 lines
1.7 KiB
Swift
56 lines
1.7 KiB
Swift
//
|
|
// AlertsPositionDataTableViewCell.swift
|
|
// Earthquake Network
|
|
//
|
|
// Created by Busi Andrea on 08/10/2020.
|
|
// Copyright © 2020 Earthquake Network. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import Solar
|
|
|
|
class AlertsPositionDataTableViewCell: EQNBaseTableViewCell {
|
|
|
|
@objc var position: CLLocation? {
|
|
didSet {
|
|
updateUI()
|
|
}
|
|
}
|
|
|
|
// MARK: - Internal
|
|
|
|
@IBOutlet private weak var headerLabel: UILabel!
|
|
@IBOutlet private weak var positionLabel: UILabel!
|
|
@IBOutlet private weak var sunriseTimeLabel: UILabel!
|
|
@IBOutlet private weak var sunsetTimeLabel: UILabel!
|
|
private lazy var dateFormatter: DateFormatter = {
|
|
let formatter = DateFormatter()
|
|
formatter.dateStyle = .none
|
|
formatter.timeStyle = .short
|
|
return formatter
|
|
}()
|
|
|
|
// MARK: - Private
|
|
|
|
private func updateUI() {
|
|
headerLabel.text = NSLocalizedString("weather_location", comment: "")
|
|
positionLabel.text = "n.d."
|
|
sunriseTimeLabel.text = "n.d."
|
|
sunsetTimeLabel.text = "n.d."
|
|
|
|
guard let position = position else { return }
|
|
|
|
positionLabel.text = EQNUtility.coordinateString(coordinate: position.coordinate)
|
|
|
|
if let solar = Solar(coordinate: position.coordinate) {
|
|
let timeZone = TimeZone.current.localizedName(for: .generic, locale: .current) ?? TimeZone.current.identifier
|
|
if let sunrise = solar.sunrise {
|
|
sunriseTimeLabel.text = dateFormatter.string(from: sunrise) + " \(timeZone)"
|
|
}
|
|
if let sunset = solar.sunset {
|
|
sunsetTimeLabel.text = dateFormatter.string(from: sunset) + " \(timeZone)"
|
|
}
|
|
}
|
|
}
|
|
}
|