Skip to content

Commit bff045f

Browse files
UNT-T21169 - Day4 - Bugfix/Login - ForgotPassword Issue
Fix Forgot Password Click not working Fix Login Screen Password Check Add Validator.kt to perform Validations
1 parent 7469113 commit bff045f

File tree

3 files changed

+47
-8
lines changed

3 files changed

+47
-8
lines changed

app/src/main/java/simform/gitexcercise/android/LoginActivity.kt

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.os.Bundle
55
import android.widget.Toast
66
import androidx.appcompat.app.AppCompatActivity
77
import simform.gitexcercise.android.databinding.ActivityLoginBinding
8+
import simform.gitexcercise.android.validation.Validator
89

910
class LoginActivity : AppCompatActivity() {
1011

@@ -19,15 +20,36 @@ class LoginActivity : AppCompatActivity() {
1920

2021
private fun setupOnClicks() = with(binding) {
2122
btnLogin.setOnClickListener {
22-
Toast.makeText(
23-
this@LoginActivity,
24-
getString(R.string.msg_login_successfully),
25-
Toast.LENGTH_SHORT
26-
).show()
27-
val intent = Intent(this@LoginActivity, ProfileActivity::class.java).apply {
28-
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
23+
performLogin()
24+
}
25+
tvForgotPassword.setOnClickListener {
26+
startActivity(Intent(this@LoginActivity, ForgotPasswordActivity::class.java))
27+
}
28+
}
29+
30+
private fun performLogin() = with(binding) {
31+
val txtEmail = etEmail.text.trim().toString()
32+
val txtPassword = etPassword.text.trim().toString()
33+
if (Validator.isValidEmail(txtEmail)) {
34+
if (Validator.isValidPassword(txtPassword)) {
35+
Toast.makeText(
36+
this@LoginActivity,
37+
getString(R.string.msg_login_successfully),
38+
Toast.LENGTH_SHORT
39+
).show()
40+
gotoProfile()
41+
} else {
42+
etPassword.error = getString(R.string.err_password_8_chars)
2943
}
30-
startActivity(intent)
44+
} else {
45+
etEmail.error = getString(R.string.errr_valid_email)
46+
}
47+
}
48+
49+
private fun gotoProfile() {
50+
val intent = Intent(this@LoginActivity, ProfileActivity::class.java).apply {
51+
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
3152
}
53+
startActivity(intent)
3254
}
3355
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package simform.gitexcercise.android.validation
2+
3+
object Validator {
4+
5+
object Password {
6+
const val MIN_LENGTH = 8
7+
const val MAX_LENGTH = 16
8+
}
9+
10+
fun isValidEmail(email: String) =
11+
email.isNotEmpty() && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()
12+
13+
fun isValidPassword(password: String): Boolean =
14+
password.isNotBlank() && password.length in Password.MIN_LENGTH..Password.MAX_LENGTH
15+
}

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@
1717
<string name="msg_upcoming_feature">To be Implemented Soon!!</string>
1818
<string name="action_edit">Edit</string>
1919
<string name="data_priyashu_email">[email protected]</string>
20+
<string name="err_password_8_chars">Password must be of at least 8 Characters</string>
21+
<string name="errr_valid_email">Enter valid Email</string>
2022
</resources>

0 commit comments

Comments
 (0)