From c48a486b1f8faf3993fe2759960fd210bb7636ed Mon Sep 17 00:00:00 2001 From: Shashidhara Gopal Date: Mon, 4 Nov 2019 14:31:25 +0530 Subject: [PATCH 01/17] Enable data binding, update dependencies and add kotlin-kapt plugin --- app/build.gradle | 14 +++++++++---- .../android_customer_app/login/Login.kt | 2 ++ .../login/LoginActivity.kt | 21 +++++++++++++++++++ .../login/LoginViewModel.kt | 16 ++++++++++++++ app/src/main/res/layout/activity_login.xml | 6 ++++++ 5 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/navi/medici/android_customer_app/login/Login.kt create mode 100644 app/src/main/java/com/navi/medici/android_customer_app/login/LoginActivity.kt create mode 100644 app/src/main/java/com/navi/medici/android_customer_app/login/LoginViewModel.kt create mode 100644 app/src/main/res/layout/activity_login.xml diff --git a/app/build.gradle b/app/build.gradle index 389b8564c1..942889cd22 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,8 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' + android { compileSdkVersion 29 buildToolsVersion "29.0.2" @@ -21,15 +23,19 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + dataBinding { + enabled true + } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'androidx.appcompat:appcompat:1.0.2' - implementation 'androidx.core:core-ktx:1.0.2' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0' } diff --git a/app/src/main/java/com/navi/medici/android_customer_app/login/Login.kt b/app/src/main/java/com/navi/medici/android_customer_app/login/Login.kt new file mode 100644 index 0000000000..de5868c11d --- /dev/null +++ b/app/src/main/java/com/navi/medici/android_customer_app/login/Login.kt @@ -0,0 +1,2 @@ +package com.navi.medici.android_customer_app.login + diff --git a/app/src/main/java/com/navi/medici/android_customer_app/login/LoginActivity.kt b/app/src/main/java/com/navi/medici/android_customer_app/login/LoginActivity.kt new file mode 100644 index 0000000000..7d988d08e4 --- /dev/null +++ b/app/src/main/java/com/navi/medici/android_customer_app/login/LoginActivity.kt @@ -0,0 +1,21 @@ +package com.navi.medici.android_customer_app.activities + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.core.widget.addTextChangedListener +import androidx.lifecycle.ViewModelProviders +import com.navi.medici.android_customer_app.R +import com.navi.medici.android_customer_app.view_models.LoginViewModel +import kotlinx.android.synthetic.main.activity_login.* + +class LoginActivity : AppCompatActivity() { + private lateinit var loginViewModel: LoginViewModel + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_login) + + loginViewModel = ViewModelProviders.of(this).get(LoginViewModel::class.java) + edit_phone.addTextChangedListener { loginViewModel.onChangePhoneNumber(it.toString()) } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/navi/medici/android_customer_app/login/LoginViewModel.kt b/app/src/main/java/com/navi/medici/android_customer_app/login/LoginViewModel.kt new file mode 100644 index 0000000000..cd0faf3d04 --- /dev/null +++ b/app/src/main/java/com/navi/medici/android_customer_app/login/LoginViewModel.kt @@ -0,0 +1,16 @@ +package com.navi.medici.android_customer_app.view_models + +import androidx.lifecycle.ViewModel + +class LoginViewModel : ViewModel() { + private var phoneNumber = String() + + fun onChangePhoneNumber(phoneNumber: String) { + this.phoneNumber = phoneNumber + if (isValidPhoneNumber()) { + + } + } + + private fun isValidPhoneNumber(): Boolean = phoneNumber.length == 10 +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000000..61a4490a43 --- /dev/null +++ b/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file From 7201fedc7b941e0e61044d32372110e6f3321056 Mon Sep 17 00:00:00 2001 From: Shashidhara Gopal Date: Mon, 4 Nov 2019 14:33:25 +0530 Subject: [PATCH 02/17] Remove action bar --- app/src/main/res/values/styles.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 5885930df6..0eb88fe335 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ -