diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-11 11:42:46 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-03-13 12:38:09 +0000 |
| commit | 5be21e968432793eac85169e6bd23ef446f2af62 (patch) | |
| tree | afb8088a94c8d9ff276ab843569775b4507a76f6 /android/src/main/kotlin | |
| parent | 50d3d18d4710949179e19372bdcd7cbe93fbb260 (diff) | |
| download | mullvadvpn-5be21e968432793eac85169e6bd23ef446f2af62.tar.xz mullvadvpn-5be21e968432793eac85169e6bd23ef446f2af62.zip | |
Implement Login screen
Diffstat (limited to 'android/src/main/kotlin')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt | 53 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 11 |
2 files changed, 64 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt new file mode 100644 index 0000000000..12404d3e78 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt @@ -0,0 +1,53 @@ +package net.mullvad.mullvadvpn + +import android.os.Bundle +import android.support.v4.app.Fragment +import android.text.Editable +import android.text.TextWatcher +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.EditText +import android.widget.ImageButton + +const val MIN_ACCOUNT_TOKEN_LENGTH = 10 + +class LoginFragment : Fragment() { + private lateinit var loginButton: ImageButton + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + val view = inflater.inflate(R.layout.login, container, false) + val accountInput: EditText = view.findViewById(R.id.account_input) + + loginButton = view.findViewById(R.id.login_button) + + accountInput.addTextChangedListener(AccountInputWatcher()) + setLoginButtonEnabled(false) + + return view + } + + private fun setLoginButtonEnabled(enabled: Boolean) { + loginButton.apply { + if (enabled != isEnabled()) { + setEnabled(enabled) + setClickable(enabled) + setFocusable(enabled) + } + } + } + + inner class AccountInputWatcher : TextWatcher { + override fun beforeTextChanged(text: CharSequence, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(text: CharSequence, start: Int, before: Int, count: Int) {} + + override fun afterTextChanged(text: Editable) { + setLoginButtonEnabled(text.length >= MIN_ACCOUNT_TOKEN_LENGTH) + } + } +} diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt index b05f4df3b1..b5fc9c3306 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt @@ -7,5 +7,16 @@ class MainActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main) + + if (savedInstanceState == null) { + addInitialFragment() + } + } + + private fun addInitialFragment() { + supportFragmentManager?.beginTransaction()?.apply { + add(R.id.main_fragment, LoginFragment()) + commit() + } } } |
