diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-03-04 15:20:21 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-03-04 16:06:43 +0000 |
| commit | f4d181245a56f8ac76c258c1bdca2baf7e8dc25c (patch) | |
| tree | 48c75e0d0bc2ee172c6c597dd75a6ad5066a57ed | |
| parent | fb534f4082ecbaf31e89c9b1f4a2cacd440b08ac (diff) | |
| download | mullvadvpn-f4d181245a56f8ac76c258c1bdca2baf7e8dc25c.tar.xz mullvadvpn-f4d181245a56f8ac76c258c1bdca2baf7e8dc25c.zip | |
Initialize `collapsedHeight` with correct value
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt index 491c7086e2..5d125f7351 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/widget/AccountLogin.kt @@ -6,6 +6,7 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.view.View +import android.view.View.MeasureSpec import android.view.View.OnLayoutChangeListener import android.view.inputmethod.InputMethodManager import android.widget.RelativeLayout @@ -68,7 +69,9 @@ class AccountLogin : RelativeLayout { } } - private var collapsedHeight by observable(0) { _, oldCollapsedHeight, newCollapsedHeight -> + private var collapsedHeight by observable( + calculateInitialInputHeight() + ) { _, oldCollapsedHeight, newCollapsedHeight -> if (newCollapsedHeight != oldCollapsedHeight) { historyAnimation.setIntValues(newCollapsedHeight, expandedHeight) reposition() @@ -178,6 +181,17 @@ class AccountLogin : RelativeLayout { input.onTextChanged.unsubscribe(this) } + private fun calculateInitialInputHeight(): Int { + if (input.height == 0) { + val widthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.EXACTLY) + val heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED) + + input.measure(widthMeasureSpec, heightMeasureSpec) + } + + return input.height + } + private fun updateBorder() { if (state == LoginState.Failure) { border.borderState = BorderState.ERROR |
