Model rejected vibration scheduling and partial cancellation
This commit is contained in:
1 parent
7ed1a63b36
commit
cc9e4f4d85
1 file changed
+12
-2
@@ -32,8 +32,9 @@ class Looper private constructor() {
|
||||
}
|
||||
}
|
||||
class Handler(val looper: Looper) {
|
||||
companion object { var rejectDelayed = false }
|
||||
fun post(task: Runnable): Boolean = looper.post(this, task, 0)
|
||||
fun postDelayed(task: Runnable, delay: Long): Boolean = looper.post(this, task, delay)
|
||||
fun postDelayed(task: Runnable, delay: Long): Boolean = !rejectDelayed && looper.post(this, task, delay)
|
||||
fun removeCallbacks(task: Runnable) = looper.remove(this, task)
|
||||
}
|
||||
object SystemClock { fun elapsedRealtime(): Long = System.nanoTime() / 1_000_000 }
|
||||
@@ -46,7 +47,11 @@ class Vibrator {
|
||||
var available = true
|
||||
var failQuery = false
|
||||
var failPulse = false
|
||||
var failPulseAfter = false
|
||||
var failCancel = false
|
||||
var failCancelAfter = false
|
||||
var active = false
|
||||
private set
|
||||
var pulseAttempts = 0
|
||||
var cancelCalls = 0
|
||||
val effects = mutableListOf<Pair<VibrationEffect, AudioAttributes?>>()
|
||||
@@ -56,6 +61,11 @@ class Vibrator {
|
||||
pulseAttempts++
|
||||
check(!failPulse) { "vibration denied" }
|
||||
effects.add(effect to attributes)
|
||||
active = true
|
||||
check(!failPulseAfter) { "vibration failed after effect" }
|
||||
}
|
||||
fun cancel() {
|
||||
cancelCalls++; check(!failCancel) { "cancel denied" }
|
||||
active = false; check(!failCancelAfter) { "cancel failed after effect" }
|
||||
}
|
||||
fun cancel() { cancelCalls++; check(!failCancel) { "cancel denied" } }
|
||||
}
|
||||
Reference in new issue
Block a user