Merge "Controls UI - Haptics fixes" into rvc-dev

This commit is contained in:
Matt Pietal
2020-06-02 20:07:48 +00:00
committed by Android (Google) Code Review
3 changed files with 6 additions and 32 deletions

View File

@@ -58,16 +58,14 @@ class ControlActionCoordinatorImpl @Inject constructor(
override fun toggle(cvh: ControlViewHolder, templateId: String, isChecked: Boolean) {
bouncerOrRun {
val effect = if (!isChecked) Vibrations.toggleOnEffect else Vibrations.toggleOffEffect
vibrate(effect)
cvh.layout.performHapticFeedback(HapticFeedbackConstants.CONTEXT_CLICK)
cvh.action(BooleanAction(templateId, !isChecked))
}
}
override fun touch(cvh: ControlViewHolder, templateId: String, control: Control) {
vibrate(Vibrations.toggleOnEffect)
bouncerOrRun {
cvh.layout.performHapticFeedback(HapticFeedbackConstants.CONTEXT_CLICK)
if (cvh.usePanel()) {
showDialog(cvh, control.getAppIntent().getIntent())
} else {

View File

@@ -231,9 +231,11 @@ class ToggleRangeBehavior : Behavior {
rangeAnimator?.cancel()
if (isDragging) {
clipLayer.level = newLevel
val isEdge = newLevel == MIN_LEVEL || newLevel == MAX_LEVEL
cvh.controlActionCoordinator.drag(isEdge)
if (clipLayer.level != newLevel) {
cvh.controlActionCoordinator.drag(isEdge)
clipLayer.level = newLevel
}
} else if (newLevel != clipLayer.level) {
rangeAnimator = ValueAnimator.ofInt(cvh.clipLayer.level, newLevel).apply {
addUpdateListener {

View File

@@ -20,35 +20,9 @@ import android.os.VibrationEffect
import android.os.VibrationEffect.Composition.PRIMITIVE_TICK
object Vibrations {
private const val TOGGLE_TICK_COUNT = 40
val toggleOnEffect = initToggleOnEffect()
val toggleOffEffect = initToggleOffEffect()
val rangeEdgeEffect = initRangeEdgeEffect()
val rangeMiddleEffect = initRangeMiddleEffect()
private fun initToggleOnEffect(): VibrationEffect {
val composition = VibrationEffect.startComposition()
composition.addPrimitive(PRIMITIVE_TICK, 0.05f, 200)
var i = 0
while (i++ < TOGGLE_TICK_COUNT) {
composition.addPrimitive(PRIMITIVE_TICK, 0.05f, 0)
}
composition.addPrimitive(PRIMITIVE_TICK, 0.5f, 100)
return composition.compose()
}
private fun initToggleOffEffect(): VibrationEffect {
val composition = VibrationEffect.startComposition()
composition.addPrimitive(PRIMITIVE_TICK, 0.5f, 0)
composition.addPrimitive(PRIMITIVE_TICK, 0.05f, 100)
var i = 0
while (i++ < TOGGLE_TICK_COUNT) {
composition.addPrimitive(PRIMITIVE_TICK, 0.05f, 0)
}
return composition.compose()
}
private fun initRangeEdgeEffect(): VibrationEffect {
val composition = VibrationEffect.startComposition()
composition.addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f)