summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
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
}