diff options
Diffstat (limited to 'android/src')
| -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 |
