summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-08-13 19:44:43 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-08-18 12:21:31 +0000
commit77627be9ea876aef254942771f7b8cf81f3f157c (patch)
tree5d478ef016a2910216b3c721d6dcd1d1659534c6 /android/src
parent537468e7525f38823574d09d2b0e25d22f13d16f (diff)
downloadmullvadvpn-77627be9ea876aef254942771f7b8cf81f3f157c.tar.xz
mullvadvpn-77627be9ea876aef254942771f7b8cf81f3f157c.zip
Fix animation playing to the wrong state
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/CellSwitch.kt10
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
}