vibration update
This commit is contained in:
@@ -250,33 +250,42 @@ class TunVpnService : VpnService() {
|
||||
}
|
||||
|
||||
private fun triggerVibration(isAscending: Boolean) {
|
||||
val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
val vibratorManager = getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
|
||||
vibratorManager.defaultVibrator
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
|
||||
}
|
||||
|
||||
if (!vibrator.hasVibrator()) return
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
val timings: LongArray
|
||||
val amplitudes: IntArray
|
||||
|
||||
if (isAscending) {
|
||||
timings = longArrayOf(0, 30, 40, 40, 30, 50, 20, 70)
|
||||
amplitudes = intArrayOf(0, 40, 0, 80, 0, 150, 0, 255)
|
||||
try {
|
||||
val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
val vm = getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
|
||||
vm.defaultVibrator
|
||||
} else {
|
||||
timings = longArrayOf(0, 50, 30, 30, 40, 20)
|
||||
amplitudes = intArrayOf(0, 255, 0, 100, 0, 30)
|
||||
@Suppress("DEPRECATION")
|
||||
getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
|
||||
}
|
||||
|
||||
val effect = VibrationEffect.createWaveform(timings, amplitudes, -1)
|
||||
vibrator.vibrate(effect)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
vibrator.vibrate(if (isAscending) 1200L else 300L)
|
||||
|
||||
if (!vibrator.hasVibrator()) return
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
val timings: LongArray
|
||||
val amplitudes: IntArray
|
||||
|
||||
if (isAscending) {
|
||||
// УВЕЛИЧЕННЫЕ ТАЙМИНГИ ДЛЯ СЯОМИ
|
||||
// Делаем 4 мощных нарастающих рывка, суммарно на ~1.5 секунды
|
||||
timings = longArrayOf(0, 200, 150, 300, 150, 400, 100, 500)
|
||||
amplitudes = intArrayOf(0, 60, 0, 120, 0, 180, 0, 255)
|
||||
} else {
|
||||
// Резкий стоп
|
||||
timings = longArrayOf(0, 150, 100, 50)
|
||||
amplitudes = intArrayOf(0, 255, 0, 80)
|
||||
}
|
||||
|
||||
val effect = VibrationEffect.createWaveform(timings, amplitudes, -1)
|
||||
vibrator.vibrate(effect)
|
||||
} else {
|
||||
// Это сработает только на Android 7 и ниже
|
||||
@Suppress("DEPRECATION")
|
||||
vibrator.vibrate(if (isAscending) 1500L else 200L)
|
||||
}
|
||||
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Vibration error", e)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user