summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2021-11-29 08:37:17 +0100
committerAlbin <albin@mullvad.net>2021-11-29 08:37:17 +0100
commit2dc4a83d08e9b067eb54ee283a1ccc0444e7b013 (patch)
tree0c27ad69748f784e129e1094a1c1effbe9bacf18
parent56643fd78c098dc6b4abb4563b474a0f526d5b9b (diff)
parent719cd192134a300be1af96cc34584cde8a89bc66 (diff)
downloadmullvadvpn-2dc4a83d08e9b067eb54ee283a1ccc0444e7b013.tar.xz
mullvadvpn-2dc4a83d08e9b067eb54ee283a1ccc0444e7b013.zip
Merge branch 'fix-android-banner-incorrectly-showing'
-rw-r--r--CHANGELOG.md1
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt11
2 files changed, 5 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca4da7be88..548a2f3f51 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -46,6 +46,7 @@ Line wrap the file at 100 chars. Th
#### Android
- Fix Quick Settings tile showing wrong state in certain scenarios.
+- Fix banner sometimes incorrectly showing (e.g. "BLOCKING INTERNET").
## [2021.6] - 2021-11-17
### Fixed
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
index 46f738258e..bd4974be1e 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/NotificationBanner.kt
@@ -10,6 +10,7 @@ import android.view.View
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
+import androidx.core.view.isVisible
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.ui.notification.InAppNotification
import net.mullvad.mullvadvpn.ui.notification.InAppNotificationController
@@ -158,19 +159,15 @@ class NotificationBanner : FrameLayout {
private fun animateChange() {
val notification = notifications.current
+ val hasOngoingHideAnimation = animation.isRunning && reversedAnimation
- if (notification != null && visibility == View.INVISIBLE) {
- // Banner is not currently shown but must be shown
+ if (isVisible.not() && notification != null) {
reversedAnimation = false
update(notification)
animation.start()
- } else if (visibility == View.VISIBLE && (!animation.isRunning() || !reversedAnimation)) {
- // Either the banner is shown or it is in the process of being shown, but the
- // notification must be hidden or replaced
+ } else if (hasOngoingHideAnimation.not()) {
reversedAnimation = true
animation.reverse()
}
- // If the banner is animating to be hidden, it will automatically start showing when the
- // hide animation ends
}
}