summaryrefslogtreecommitdiffhomepage
path: root/android/src/main/kotlin
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-11 11:42:46 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-03-13 12:38:09 +0000
commit5be21e968432793eac85169e6bd23ef446f2af62 (patch)
treeafb8088a94c8d9ff276ab843569775b4507a76f6 /android/src/main/kotlin
parent50d3d18d4710949179e19372bdcd7cbe93fbb260 (diff)
downloadmullvadvpn-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.kt53
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt11
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()
+ }
}
}