diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-18 20:24:06 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-19 16:04:35 +0000 |
| commit | 4ce678fb31bdd5db80a00da6df270d3f2cf2b02b (patch) | |
| tree | 547ba7a042328349c510a7b563cdf9e2dbde81c1 /android | |
| parent | 2b4ad2bb32eb4c645f545b753c2ca024cc2a7c75 (diff) | |
| download | mullvadvpn-4ce678fb31bdd5db80a00da6df270d3f2cf2b02b.tar.xz mullvadvpn-4ce678fb31bdd5db80a00da6df270d3f2cf2b02b.zip | |
Animate notification banner
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt | 25 | ||||
| -rw-r--r-- | android/src/main/res/layout/connect.xml | 3 |
2 files changed, 24 insertions, 4 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt index 445df2d914..531e43f96f 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt @@ -4,15 +4,34 @@ import android.view.View class NotificationBanner(val parentView: View) { private val banner: View = parentView.findViewById(R.id.notification_banner) + private var visible = false var state = ConnectionState.Disconnected set(value) { when (value) { - ConnectionState.Disconnected -> banner.visibility = View.GONE - ConnectionState.Connecting -> banner.visibility = View.VISIBLE - ConnectionState.Connected -> banner.visibility = View.GONE + ConnectionState.Disconnected -> hide() + ConnectionState.Connecting -> show() + ConnectionState.Connected -> hide() } field = value } + + private fun show() { + if (!visible) { + visible = true + banner.visibility = View.VISIBLE + banner.translationY = -banner.height.toFloat() + banner.animate().translationY(0.0F).setDuration(350).start() + } + } + + private fun hide() { + if (visible) { + visible = false + banner.animate().translationY(-banner.height.toFloat()).setDuration(350).withEndAction { + banner.visibility = View.INVISIBLE + } + } + } } diff --git a/android/src/main/res/layout/connect.xml b/android/src/main/res/layout/connect.xml index 19f9cb177e..d35679aba4 100644 --- a/android/src/main/res/layout/connect.xml +++ b/android/src/main/res/layout/connect.xml @@ -13,6 +13,7 @@ android:gravity="center_vertical" android:padding="12dp" android:background="@color/red" + android:elevation="0.5dp" > <ImageView android:layout_width="49dp" @@ -38,7 +39,7 @@ android:background="@color/darkBlue" android:orientation="horizontal" android:gravity="center" - android:visibility="gone" + android:visibility="invisible" > <ImageView android:layout_width="wrap_content" |
