Voice Chat UI improvements

This commit is contained in:
Ilya Laktyushin
2020-12-01 06:40:01 +04:00
parent c053f853d1
commit ed28ef6b5b
3 changed files with 31 additions and 4 deletions

View File

@@ -6,14 +6,27 @@ public enum ImpactHapticFeedbackStyle: Hashable {
case light
case medium
case heavy
case soft
case rigid
case veryLight
}
@available(iOSApplicationExtension 10.0, iOS 10.0, *)
private final class HapticFeedbackImpl {
private lazy var impactGenerator: [ImpactHapticFeedbackStyle : UIImpactFeedbackGenerator] = {
[.light: UIImpactFeedbackGenerator(style: .light),
.medium: UIImpactFeedbackGenerator(style: .medium),
.heavy: UIImpactFeedbackGenerator(style: .heavy)] }()
if #available(iOSApplicationExtension 13.0, iOS 13.0, *) {
return [.light: UIImpactFeedbackGenerator(style: .light),
.medium: UIImpactFeedbackGenerator(style: .medium),
.heavy: UIImpactFeedbackGenerator(style: .heavy),
.soft: UIImpactFeedbackGenerator(style: .soft),
.rigid: UIImpactFeedbackGenerator(style: .rigid),
.veryLight: UIImpactFeedbackGenerator()]
} else {
return [.light: UIImpactFeedbackGenerator(style: .light),
.medium: UIImpactFeedbackGenerator(style: .medium),
.heavy: UIImpactFeedbackGenerator(style: .heavy)]
}
}()
private lazy var selectionGenerator: UISelectionFeedbackGenerator? = {
let generator = UISelectionFeedbackGenerator()
@@ -64,7 +77,11 @@ private final class HapticFeedbackImpl {
func impact(_ style: ImpactHapticFeedbackStyle) {
if let impactGenerator = self.impactGenerator[style] {
impactGenerator.impactOccurred()
if #available(iOSApplicationExtension 13.0, iOS 13.0, *), case .veryLight = style {
impactGenerator.impactOccurred(intensity: 0.3)
} else {
impactGenerator.impactOccurred()
}
}
}