ONEAPP-6239 - Loader Voice Over Fixes
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
94a505d20e
commit
8b69c3eb15
@ -35,7 +35,8 @@ open class Loader: View {
|
|||||||
private var icon = Icon().with { $0.name = .loader }
|
private var icon = Icon().with { $0.name = .loader }
|
||||||
private var opacity: CGFloat = 0.8
|
private var opacity: CGFloat = 0.8
|
||||||
private var iconColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark)
|
private var iconColorConfiguration = SurfaceColorConfiguration(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark)
|
||||||
|
private var loadingTimer: Timer?
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Public Properties
|
// MARK: - Public Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -59,8 +60,9 @@ open class Loader: View {
|
|||||||
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
|
||||||
open override func setup() {
|
open override func setup() {
|
||||||
super.setup()
|
super.setup()
|
||||||
addSubview(icon)
|
addSubview(icon)
|
||||||
|
isAccessibilityElement = true
|
||||||
|
icon.isAccessibilityElement = false
|
||||||
icon
|
icon
|
||||||
.pinTopGreaterThanOrEqualTo()
|
.pinTopGreaterThanOrEqualTo()
|
||||||
.pinLeadingGreaterThanOrEqualTo()
|
.pinLeadingGreaterThanOrEqualTo()
|
||||||
@ -85,22 +87,37 @@ open class Loader: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open override func updateAccessibility() {
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Private Methods
|
// MARK: - Private Methods
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
private let rotationLayerName = "rotationAnimation"
|
private let rotationLayerName = "rotationAnimation"
|
||||||
private func startAnimating() {
|
private func startAnimating() {
|
||||||
|
accessibilityLabel = "Loading"
|
||||||
|
|
||||||
icon.layer.remove(layerName: rotationLayerName)
|
icon.layer.remove(layerName: rotationLayerName)
|
||||||
let rotation : CABasicAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
|
let rotation : CABasicAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
|
||||||
rotation.toValue = NSNumber(value: Double.pi * 2)
|
rotation.fromValue = 0
|
||||||
rotation.duration = 0.5 // the speed of the rotation
|
rotation.toValue = Double.pi * 2
|
||||||
rotation.isCumulative = true
|
rotation.duration = 0.5
|
||||||
rotation.repeatCount = Float.greatestFiniteMagnitude
|
rotation.repeatCount = .infinity
|
||||||
icon.layer.add(rotation, forKey: rotationLayerName)
|
icon.layer.add(rotation, forKey: rotationLayerName)
|
||||||
|
|
||||||
|
// Focus VoiceOver on this view
|
||||||
|
UIAccessibility.post(notification: .layoutChanged, argument: self)
|
||||||
|
|
||||||
|
loadingTimer = Timer.scheduledTimer(withTimeInterval: 20, repeats: true) { [weak self] _ in
|
||||||
|
self?.accessibilityLabel = "Still Loading"
|
||||||
|
UIAccessibility.post(notification: .announcement, argument: "Still Loading")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func stopAnimating() {
|
private func stopAnimating() {
|
||||||
icon.layer.removeAnimation(forKey: rotationLayerName)
|
icon.layer.removeAnimation(forKey: rotationLayerName)
|
||||||
|
loadingTimer?.invalidate()
|
||||||
|
loadingTimer = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
|
1.0.49
|
||||||
|
----------------
|
||||||
|
- ONEAPP-6239 - Loader Voice Over Fixes
|
||||||
|
|
||||||
1.0.48
|
1.0.48
|
||||||
----------------
|
----------------
|
||||||
- ONEAPP-4683 - Accessibility - Tabs (Voice Over)
|
- ONEAPP-4683 - Accessibility - Tabs (Voice Over)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user