Commit 372a38b6 authored by fauzi's avatar fauzi

forgot password 🐛

parent f4aa3bf7
...@@ -36,13 +36,12 @@ public class ForgotCode extends BottomSheetDialogFragment { ...@@ -36,13 +36,12 @@ public class ForgotCode extends BottomSheetDialogFragment {
RelativeLayout fpass; RelativeLayout fpass;
View view; View view;
PinEntryEditText pinEntry; PinEntryEditText pinEntry;
DataResponse response;
ForgotPasswordModels forgotPasswordModels; ForgotPasswordModels forgotPasswordModels;
Context context; Context context;
public ForgotCode(Context context, DataResponse response) { public ForgotCode(Context context, ForgotPasswordModels forgotPasswordModels) {
this.context = context; this.context = context;
this.response = response; this.forgotPasswordModels = forgotPasswordModels;
} }
@NonNull @NonNull
...@@ -64,7 +63,7 @@ public class ForgotCode extends BottomSheetDialogFragment { ...@@ -64,7 +63,7 @@ public class ForgotCode extends BottomSheetDialogFragment {
sheetBehavior = BottomSheetBehavior.from((View) (view.getParent())); sheetBehavior = BottomSheetBehavior.from((View) (view.getParent()));
// get Window size // get Window size
int setHeight = utils.getWindowHeight() - (utils.getWindowHeight() * 50) / 100; int setHeight = utils.getWindowHeight() - (utils.getWindowHeight() * 5) / 100;
// set max height // set max height
sheetBehavior.setPeekHeight(setHeight); sheetBehavior.setPeekHeight(setHeight);
...@@ -80,7 +79,9 @@ public class ForgotCode extends BottomSheetDialogFragment { ...@@ -80,7 +79,9 @@ public class ForgotCode extends BottomSheetDialogFragment {
@Override @Override
public void onPinEntered(CharSequence str) { public void onPinEntered(CharSequence str) {
if (str.toString().equals(forgotPasswordModels.getMessage())) { if (str.toString().equals(forgotPasswordModels.getMessage())) {
Toast.makeText(context, "SUCCESS", Toast.LENGTH_SHORT).show(); ForgotPassword forgotPassword = new ForgotPassword(context, forgotPasswordModels);
forgotPassword.setCancelable(false);
forgotPassword.show(getActivity().getSupportFragmentManager(), "Forgot Confirm");
} else { } else {
Toast.makeText(context, "FAIL", Toast.LENGTH_SHORT).show(); Toast.makeText(context, "FAIL", Toast.LENGTH_SHORT).show();
pinEntry.setText(null); pinEntry.setText(null);
......
package com.yono.messeripos;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.yono.messeripos.api.service.UsersService;
import com.yono.messeripos.models.ForgotPasswordModels;
import com.yono.messeripos.models.UsersModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.utils.Utils;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class ForgotPassword extends BottomSheetDialogFragment {
BottomSheetDialog sheetDialog;
BottomSheetBehavior sheetBehavior;
View view;
RelativeLayout resetPassUI;
Utils utils = new Utils();
TextInputEditText newPass, etConfPass;
MaterialButton btnReset;
Context context;
UsersService usersService;
ForgotPasswordModels forgotPasswordModels;
public ForgotPassword(Context context, ForgotPasswordModels forgotPasswordModels) {
this.context = context;
this.forgotPasswordModels = forgotPasswordModels;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
sheetDialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
// inflating layout
view = View.inflate(getContext(), R.layout.forgot_new_password, null);
// bindUI
resetPassUI = view.findViewById(R.id.resetPassword);
newPass = view.findViewById(R.id.etNewPassword);
etConfPass = view.findViewById(R.id.etPasswordConfirmation);
btnReset = view.findViewById(R.id.btnReset);
sheetDialog.setContentView(view);
sheetBehavior = BottomSheetBehavior.from((View) (view.getParent()));
// get Window size
int setHeight = utils.getWindowHeight() - (utils.getWindowHeight() * 5) / 100;
// set max height
sheetBehavior.setPeekHeight(setHeight);
resetPassUI.setMinimumHeight(setHeight);
btnReset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String newPas = newPass.getText().toString();
String conPass = etConfPass.getText().toString();
forgotPasswordModels.setPassword(newPass.getText().toString());
if (newPas.equals(conPass)) {
sheetDialog.dismiss();
usersService.resetPassword(forgotPasswordModels);
startActivity(new Intent(context, LoginActivity.class));
getActivity().finish();
}else {
utils.dialog(context, true, "password does't match", "Your password not match!").show();
}
}
});
return sheetDialog;
}
}
...@@ -59,7 +59,9 @@ public class ForgotPasswordActivity extends AppCompatActivity { ...@@ -59,7 +59,9 @@ public class ForgotPasswordActivity extends AppCompatActivity {
usersService.postForgotPassword(forgotPasswordModels).enqueue(new Callback<DataResponse>() { usersService.postForgotPassword(forgotPasswordModels).enqueue(new Callback<DataResponse>() {
@Override @Override
public void onResponse(Call<DataResponse> call, Response<DataResponse> response) { public void onResponse(Call<DataResponse> call, Response<DataResponse> response) {
forgotCode = new ForgotCode(ForgotPasswordActivity.this, response.body());
forgotCode = new ForgotCode(ForgotPasswordActivity.this, forgotPasswordModels);
forgotCode.setCancelable(false);
forgotCode.show(getSupportFragmentManager(), "forgot code"); forgotCode.show(getSupportFragmentManager(), "forgot code");
} }
......
...@@ -18,4 +18,7 @@ public interface UsersService { ...@@ -18,4 +18,7 @@ public interface UsersService {
@POST(ApiHelper.VERSI_API_1+"forgot-password") @POST(ApiHelper.VERSI_API_1+"forgot-password")
Call<DataResponse> postForgotPassword(@Body ForgotPasswordModels forgotPasswordModels); Call<DataResponse> postForgotPassword(@Body ForgotPasswordModels forgotPasswordModels);
@POST(ApiHelper.VERSI_API_1+"reset-password")
Call<DataResponse> resetPassword(@Body ForgotPasswordModels forgotPasswordModels);
} }
...@@ -9,6 +9,9 @@ public class ForgotPasswordModels { ...@@ -9,6 +9,9 @@ public class ForgotPasswordModels {
@SerializedName("message") @SerializedName("message")
private String message; private String message;
@SerializedName("password")
private String password;
public ForgotPasswordModels() { public ForgotPasswordModels() {
} }
...@@ -32,4 +35,12 @@ public class ForgotPasswordModels { ...@@ -32,4 +35,12 @@ public class ForgotPasswordModels {
public void setMessage(String message) { public void setMessage(String message) {
this.message = message; this.message = message;
} }
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
} }
...@@ -399,9 +399,9 @@ public class Utils { ...@@ -399,9 +399,9 @@ public class Utils {
// It will generate 6 digit random Number. // It will generate 6 digit random Number.
// from 0 to 999999 // from 0 to 999999
Random rnd = new Random(); Random rnd = new Random();
int number = rnd.nextInt(999999); int number = rnd.nextInt(9999);
// this will convert any number sequence into 6 character. // this will convert any number sequence into 6 character.
return String.format("%06d", number); return String.format("%04d", number);
} }
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
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"
android:fitsSystemWindows="true">
<com.google.android.material.textfield.TextInputLayout <androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/tfCurrentPassword" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_height="wrap_content" android:layout_width="match_parent">
android:layout_margin="10dp"
android:hint="Current Password"
android:textColor="#fff"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
tools:ignore="MissingConstraints">
<com.google.android.material.textfield.TextInputEditText <RelativeLayout
android:id="@+id/etCurrentPassword" android:id="@+id/resetPassword"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:inputType="textPassword" android:layout_height="match_parent"
android:imeOptions="actionNext" android:fitsSystemWindows="true">
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfNewPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="New Password"
android:textColor="#fff"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputEditText
android:id="@+id/tfNewPassword" android:id="@+id/etNewPassword"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textPassword"
android:layout_margin="10dp" android:imeOptions="actionNext"
android:hint="New Password" android:layout_height="wrap_content" />
android:textColor="#fff"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:layout_constraintTop_toBottomOf="@id/tfCurrentPassword">
<com.google.android.material.textfield.TextInputEditText </com.google.android.material.textfield.TextInputLayout>
android:id="@+id/etNewPassword"
android:layout_width="match_parent"
android:inputType="textPassword"
android:imeOptions="actionNext"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfPasswordConfirmation" android:id="@+id/tfPasswordConfirmation"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="10dp" android:layout_margin="10dp"
android:hint="Password Confirmation" android:hint="Password Confirmation"
android:textColor="#fff" android:textColor="#fff"
app:layout_constraintTop_toBottomOf="@id/tfNewPassword" android:layout_below="@id/tfNewPassword">
tools:layout_editor_absoluteX="10dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etPasswordConfirmation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionNext" />
</com.google.android.material.textfield.TextInputLayout> <com.google.android.material.textfield.TextInputEditText
android:id="@+id/etPasswordConfirmation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionNext" />
<com.google.android.material.button.MaterialButton </com.google.android.material.textfield.TextInputLayout>
android:id="@+id/btnAdd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/add"
android:padding="16dp"
app:layout_constraintTop_toBottomOf="@id/tfPasswordConfirmation"
tools:ignore="MissingConstraints" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnReset"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/btn_reset_password"
android:padding="16dp"
android:layout_below="@id/tfPasswordConfirmation"/>
</androidx.constraintlayout.widget.ConstraintLayout> </RelativeLayout>
\ No newline at end of file </androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment