Merge "Controls UI - Do not update while drag in progress" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-06-18 21:06:25 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 0 deletions

View File

@@ -128,6 +128,8 @@ class ControlViewHolder(
val controlTemplate: ControlTemplate
get() = cws.control?.let { it.controlTemplate } ?: ControlTemplate.NO_TEMPLATE
var userInteractionInProgress = false
init {
val ld = layout.getBackground() as LayerDrawable
ld.mutate()
@@ -139,6 +141,11 @@ class ControlViewHolder(
}
fun bindData(cws: ControlWithState) {
// If an interaction is in progress, the update may visually interfere with the action the
// action the user wants to make. Don't apply the update, and instead assume a new update
// will coming from when the user interaction is complete.
if (userInteractionInProgress) return
this.cws = cws
cancelUpdate?.run()

View File

@@ -216,6 +216,7 @@ class ToggleRangeBehavior : Behavior {
}
fun beginUpdateRange() {
cvh.userInteractionInProgress = true
cvh.setStatusTextSize(context.getResources()
.getDimensionPixelSize(R.dimen.control_status_expanded).toFloat())
}
@@ -296,6 +297,7 @@ class ToggleRangeBehavior : Behavior {
cvh.setStatusText("$currentStatusText $currentRangeValue", /* immediately */ true)
cvh.controlActionCoordinator.setValue(cvh, rangeTemplate.getTemplateId(),
findNearestStep(levelToRangeValue(clipLayer.getLevel())))
cvh.userInteractionInProgress = false
}
fun findNearestStep(value: Float): Float {