diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-08-13 19:44:43 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-08-18 12:21:31 +0000 |
| commit | 77627be9ea876aef254942771f7b8cf81f3f157c (patch) | |
| tree | 5d478ef016a2910216b3c721d6dcd1d1659534c6 /android/src/main | |
| parent | 537468e7525f38823574d09d2b0e25d22f13d16f (diff) | |
| download | mullvadvpn-77627be9ea876aef254942771f7b8cf81f3f157c.tar.xz mullvadvpn-77627be9ea876aef254942771f7b8cf81f3f157c.zip | |
Fix animation playing to the wrong state
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CellSwitch.kt | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CellSwitch.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CellSwitch.kt index 43249b996e..e3dfc81314 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CellSwitch.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CellSwitch.kt @@ -56,6 +56,8 @@ class CellSwitch : LinearLayout { private val knobPosition: Float get() = knobView.translationX / knobMaxTranslation + private var animationIsReversed = false + private val positionAnimation = ValueAnimator.ofFloat(0f, knobMaxTranslation).apply { addUpdateListener { animation -> knobView.translationX = animation.animatedValue as Float @@ -213,12 +215,16 @@ class CellSwitch : LinearLayout { when (state) { State.ON -> { + animationIsReversed = false colorAnimation.start() positionAnimation.start() } State.OFF -> { - colorAnimation.reverse() - positionAnimation.reverse() + if (!animationIsReversed || !colorAnimation.isRunning()) { + animationIsReversed = true + colorAnimation.reverse() + positionAnimation.reverse() + } playTime = knobAnimationDuration - playTime } |
