Add send email and reset password screen

This commit is contained in:
Nezumi
2023-02-09 17:01:07 +07:00
parent d6800de7a5
commit 1ff9267f73
14 changed files with 447 additions and 9 deletions
+14 -3
View File
@@ -13,13 +13,24 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.Foodify" android:theme="@style/Theme.Foodify"
tools:targetApi="31"> tools:targetApi="31">
<activity
android:name=".ResetPasswordActivity"
android:exported="false"
android:noHistory="true"
/>
<activity
android:name=".SendEmailActivity"
android:exported="false"
android:noHistory="true"
/>
<activity <activity
android:name=".ForgotPasswordActivity" android:name=".ForgotPasswordActivity"
android:exported="false" /> android:exported="false"
android:noHistory="true"
/>
<activity <activity
android:name=".SignInActivity" android:name=".SignInActivity"
android:exported="false" android:exported="false"/>
android:noHistory="true" />
<activity <activity
android:name=".SignUpActivity" android:name=".SignUpActivity"
android:exported="false" android:exported="false"
@@ -8,11 +8,13 @@ import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputLayout; import com.google.android.material.textfield.TextInputLayout;
public class ForgotPasswordActivity extends AppCompatActivity { public class ForgotPasswordActivity extends AppCompatActivity {
TextInputLayout textInput_account; TextInputLayout textInput_account;
MaterialButton send_code_button;
ImageView back_image; ImageView back_image;
@Override @Override
@@ -26,7 +28,14 @@ public class ForgotPasswordActivity extends AppCompatActivity {
back_image.setOnClickListener(new View.OnClickListener() { back_image.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
startActivity(new Intent(ForgotPasswordActivity.this, SignInActivity.class)); onBackPressed();
}
});
send_code_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(ForgotPasswordActivity.this, SendEmailActivity.class));
} }
}); });
@@ -43,6 +52,7 @@ public class ForgotPasswordActivity extends AppCompatActivity {
private void initComponent() { private void initComponent() {
back_image = (ImageView) findViewById(R.id.back_image); back_image = (ImageView) findViewById(R.id.back_image);
send_code_button = (MaterialButton) findViewById(R.id.send_code_button);
} }
} }
@@ -0,0 +1,46 @@
package com.capstone.foodify;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.google.android.material.textfield.TextInputLayout;
public class ResetPasswordActivity extends AppCompatActivity {
ImageView close_image;
TextInputLayout textInput_password, textInput_confirmPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reset_password);
initComponent();
setFontUI();
close_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
}
private void setFontUI() {
Typeface bebas= Typeface.createFromAsset(getAssets(), "font/bebas.ttf");
textInput_password.setTypeface(bebas);
textInput_confirmPassword.setTypeface(bebas);
}
private void initComponent() {
close_image = (ImageView) findViewById(R.id.close_image);
textInput_password = (TextInputLayout) findViewById(R.id.textInput_password);
textInput_confirmPassword = (TextInputLayout) findViewById(R.id.textInput_confirmPassword);
}
}
@@ -0,0 +1,43 @@
package com.capstone.foodify;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.google.android.material.button.MaterialButton;
public class SendEmailActivity extends AppCompatActivity {
ImageView close_image;
MaterialButton confirm_code;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_email);
initComponent();
confirm_code.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(SendEmailActivity.this, ResetPasswordActivity.class));
}
});
close_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
}
private void initComponent() {
confirm_code = (MaterialButton) findViewById(R.id.confirm_code);
close_image = (ImageView) findViewById(R.id.close_image);
}
}
@@ -34,12 +34,14 @@ public class SignInActivity extends AppCompatActivity {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
onBackPressed(); onBackPressed();
finish();
} }
}); });
signUp_textView.setOnClickListener(new View.OnClickListener() { signUp_textView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
startActivity(new Intent(SignInActivity.this, SignUpActivity.class)); startActivity(new Intent(SignInActivity.this, SignUpActivity.class));
finish();
} }
}); });
+9
View File
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12dp"
android:height="12dp"
android:viewportWidth="12"
android:viewportHeight="12">
<path
android:pathData="M6,4.704L10.538,0.166L11.834,1.462L7.296,6L11.834,10.538L10.538,11.834L6,7.296L1.463,11.834L0.166,10.538L4.704,6L0.166,1.462L1.463,0.166L6,4.704Z"
android:fillColor="#2D2D2D"/>
</vector>
Binary file not shown.
Binary file not shown.
@@ -21,7 +21,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_marginTop="35dp" android:layout_marginTop="90dp"
android:fontFamily="@font/bebas" android:fontFamily="@font/bebas"
android:text="@string/forgot_password" android:text="@string/forgot_password"
android:textColor="@color/black" android:textColor="@color/black"
@@ -34,10 +34,11 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/forgot_password_description" android:text="@string/forgot_password_description"
android:fontFamily="@font/poppins" android:fontFamily="@font/opensans"
android:textColor="@color/gray" android:textColor="@color/gray"
android:textStyle="bold" android:textStyle="bold"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_marginTop="25dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" /> app:layout_constraintTop_toBottomOf="@+id/textView" />
@@ -49,6 +50,7 @@
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_marginEnd="20dp" android:layout_marginEnd="20dp"
android:layout_marginBottom="40dp" android:layout_marginBottom="40dp"
android:layout_marginTop="50dp"
android:hint="@string/phone_or_email" android:hint="@string/phone_or_email"
app:boxBackgroundColor="@color/white" app:boxBackgroundColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@@ -67,7 +69,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/sign_up_button" android:id="@+id/send_code_button"
style="@style/DefaultSolid" style="@style/DefaultSolid"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ResetPasswordActivity">
<ImageView
android:id="@+id/close_image"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/close_icon"
android:layout_marginStart="20dp"
android:layout_marginTop="25dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="90dp"
android:fontFamily="@font/bebas"
android:text="Đặt lại mật khẩu"
android:textColor="@color/black"
android:textSize="50sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/close_image" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInput_password"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="20dp"
android:hint="@string/new_password"
app:boxBackgroundColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:startIconDrawable="@drawable/baseline_vpn_key_24"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/primaryColor"
app:startIconTint="@color/primaryColor">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edt_password"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textPassword" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInput_confirmPassword"
android:layout_width="match_parent"
android:layout_height="60dp"
android:hint="@string/repeat_password_text"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
app:boxBackgroundColor="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInput_password"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/primaryColor"
app:startIconDrawable="@drawable/baseline_vpn_key_24"
app:startIconTint="@color/primaryColor">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edt_confirmPassword"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textPassword" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/sign_up_button"
style="@style/DefaultSolid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:layout_marginBottom="50dp"
android:fontFamily="@font/bebas"
android:padding="10dp"
android:text="Gửi mã xác nhận"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -0,0 +1,206 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SendEmailActivity">
<ImageView
android:id="@+id/close_image"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/close_icon"
android:layout_marginStart="20dp"
android:layout_marginTop="25dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="90dp"
android:fontFamily="@font/bebas"
android:text="@string/confirm_code"
android:textColor="@color/black"
android:textSize="50sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/close_image" />
<TextView
android:id="@+id/forgot_Password_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/confirm_code_description"
android:fontFamily="@font/opensans"
android:textColor="@color/gray"
android:textStyle="bold"
android:layout_marginStart="20dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/inputCode1"
android:layout_width="48dp"
android:layout_height="50dp"
android:backgroundTint="#CCCCCC"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:hint="*"
/>
<EditText
android:id="@+id/inputCode2"
android:layout_width="48dp"
android:layout_height="50dp"
android:backgroundTint="#CCCCCC"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:hint="*"
/>
<EditText
android:id="@+id/inputCode3"
android:layout_width="48dp"
android:layout_height="50dp"
android:backgroundTint="#CCCCCC"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:hint="*"
/>
<EditText
android:id="@+id/inputCode4"
android:layout_width="48dp"
android:layout_height="50dp"
android:backgroundTint="#CCCCCC"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:hint="*"
/>
<EditText
android:id="@+id/inputCode5"
android:layout_width="48dp"
android:layout_height="50dp"
android:backgroundTint="#CCCCCC"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:hint="*"
/>
<EditText
android:id="@+id/inputCode6"
android:layout_width="48dp"
android:layout_height="50dp"
android:backgroundTint="#CCCCCC"
android:gravity="center"
android:imeOptions="actionNext"
android:importantForAutofill="no"
android:inputType="number"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:hint="*"
/>
</LinearLayout>
<TextView
android:id="@+id/textview_countdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:text="00:35"
android:fontFamily="@font/opensans"
android:textColor="@color/secondary"
android:textStyle="bold"
android:layout_marginStart="20dp"
android:layout_marginBottom="30dp"
app:layout_constraintBottom_toTopOf="@+id/textview1"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:fontFamily="@font/opensans"
android:text="@string/did_not_receive_code"
android:textColor="@color/black"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/textview_resendCode"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textview_resendCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:text="@string/resend_code"
android:fontFamily="@font/opensans"
android:textColor="@color/primaryColor"
android:textStyle="bold"
android:layout_margin="20dp"
app:layout_constraintBottom_toTopOf="@+id/confirm_code"
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.button.MaterialButton
android:id="@+id/confirm_code"
style="@style/DefaultSolid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:fontFamily="@font/bebas"
android:padding="10dp"
android:text="@string/confirm"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
+4 -1
View File
@@ -91,8 +91,9 @@
android:id="@+id/forgotPassword_textView" android:id="@+id/forgotPassword_textView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp" android:layout_marginEnd="20dp"
android:fontFamily="@font/bebas" android:fontFamily="@font/opensans"
android:text="@string/forgot_password" android:text="@string/forgot_password"
android:textColor="@color/graylight" android:textColor="@color/graylight"
android:textSize="15sp" android:textSize="15sp"
@@ -132,6 +133,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/dont_have_an_account" android:text="@string/dont_have_an_account"
android:textColor="@color/gray" android:textColor="@color/gray"
android:fontFamily="@font/opensans"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
@@ -141,6 +143,7 @@
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:text="@string/sign_up_text" android:text="@string/sign_up_text"
android:textColor="@color/secondary" android:textColor="@color/secondary"
android:fontFamily="@font/opensans"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
+7 -1
View File
@@ -19,7 +19,13 @@
<string name="birthday_text">ngày tháng năm sinh</string> <string name="birthday_text">ngày tháng năm sinh</string>
<string name="address_text">địa chỉ</string> <string name="address_text">địa chỉ</string>
<string name="phone_or_email">số điện thoại hoặc email</string> <string name="phone_or_email">số điện thoại hoặc email</string>
<string name="forgot_password">quên mật khẩu?</string> <string name="forgot_password">Quên mật khẩu?</string>
<string name="dont_have_an_account">Bạn chưa có tài khoản?</string> <string name="dont_have_an_account">Bạn chưa có tài khoản?</string>
<string name="forgot_password_description">Chúng tôi sẽ gửi mã xác nhận qua email của bạn.</string> <string name="forgot_password_description">Chúng tôi sẽ gửi mã xác nhận qua email của bạn.</string>
<string name="confirm_code">mã xác nhận</string>
<string name="confirm_code_description">Chúng tôi đã gửi tin mã xác nhận qua email của bạn.</string>
<string name="did_not_receive_code">Chưa nhận được mã?</string>
<string name="resend_code">Gửi lại</string>
<string name="confirm">Xác nhận</string>
<string name="new_password">mật khẩu mới</string>
</resources> </resources>
+1
View File
@@ -12,6 +12,7 @@
<!-- Customize your theme here. --> <!-- Customize your theme here. -->
<item name="windowActionBar">false</item> <item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>
<item name="android:textColorHint">@color/graylight</item>
</style> </style>
<style name="DefaultSolid" parent="Widget.MaterialComponents.Button"> <style name="DefaultSolid" parent="Widget.MaterialComponents.Button">