diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-19 13:06:44 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-19 13:06:44 -0300 |
| commit | d2cb0081aa28588d873631b4b2315526814e2b5d (patch) | |
| tree | 442af804a51e8d5cd19a1088a85c61ac63f31011 | |
| parent | 2b4ad2bb32eb4c645f545b753c2ca024cc2a7c75 (diff) | |
| parent | 0c9be1e75725b13b678e6a92573562103421d633 (diff) | |
| download | mullvadvpn-d2cb0081aa28588d873631b4b2315526814e2b5d.tar.xz mullvadvpn-d2cb0081aa28588d873631b4b2315526814e2b5d.zip | |
Merge branch 'aesthetic-updates'
6 files changed, 45 insertions, 5 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/AccountInput.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/AccountInput.kt index 246ed57e11..b46913790d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/AccountInput.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/AccountInput.kt @@ -37,6 +37,11 @@ class AccountInput(val parentView: View, val context: Context) { input.addTextChangedListener(InputWatcher()) button.setOnClickListener { onLogin?.invoke(input.text.toString()) } setButtonEnabled(false) + + parentView.findViewById<View>(R.id.account_input_container)?.apply { + clipToOutline = true + outlineProvider = AccountInputOutlineProvider(context) + } } private fun initialState() { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/AccountInputOutlineProvider.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/AccountInputOutlineProvider.kt new file mode 100644 index 0000000000..b89564de75 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/AccountInputOutlineProvider.kt @@ -0,0 +1,14 @@ +package net.mullvad.mullvadvpn + +import android.content.Context +import android.graphics.Outline +import android.view.View +import android.view.ViewOutlineProvider + +class AccountInputOutlineProvider(private val context: Context) : ViewOutlineProvider() { + private val cornerRadius = context.resources.getDimension(R.dimen.account_input_corner_radius) + + override fun getOutline(view: View, outline: Outline) { + outline.setRoundRect(0, 0, view.width, view.height, cornerRadius) + } +} 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" diff --git a/android/src/main/res/layout/login.xml b/android/src/main/res/layout/login.xml index 58e5b12e02..9c8896024b 100644 --- a/android/src/main/res/layout/login.xml +++ b/android/src/main/res/layout/login.xml @@ -95,7 +95,7 @@ android:textSize="13sp" android:text="@string/login_description" /> - <LinearLayout + <LinearLayout android:id="@+id/account_input_container" android:layout_width="match_parent" android:layout_height="48dp" android:orientation="horizontal" diff --git a/android/src/main/res/values/dimensions.xml b/android/src/main/res/values/dimensions.xml index 379843b2bf..41d910fb6c 100644 --- a/android/src/main/res/values/dimensions.xml +++ b/android/src/main/res/values/dimensions.xml @@ -3,4 +3,5 @@ <dimen name="city_row_padding">40dp</dimen> <dimen name="relay_row_padding">60dp</dimen> <dimen name="relay_list_divider">1dp</dimen> + <dimen name="account_input_corner_radius">4dp</dimen> </resources> |
