Commit 6e93504e authored by fauzi's avatar fauzi

tambahkan redirect ke email

parent 39e1dd0a
package com.yono.messeripos; package com.yono.messeripos;
import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
...@@ -40,6 +41,10 @@ public class LoginActivity extends AppCompatActivity { ...@@ -40,6 +41,10 @@ public class LoginActivity extends AppCompatActivity {
MaterialButton btnSignin; MaterialButton btnSignin;
MaterialButton btnSignup, btnSignIn; MaterialButton btnSignup, btnSignIn;
public static View invalidUser;
public static View activateEmail;
Utils utils;
private String TAG = "MainActivity"; private String TAG = "MainActivity";
......
...@@ -10,6 +10,7 @@ import android.content.Intent; ...@@ -10,6 +10,7 @@ import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
...@@ -111,6 +112,7 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -111,6 +112,7 @@ public class LoginState extends BottomSheetDialogFragment {
} }
private void loginAuth(View v) { private void loginAuth(View v) {
if (TextUtils.isEmpty(username.getText().toString()) && if (TextUtils.isEmpty(username.getText().toString()) &&
TextUtils.isEmpty(password.getText().toString())){ TextUtils.isEmpty(password.getText().toString())){
username.setError("This field can't empty"); username.setError("This field can't empty");
...@@ -121,107 +123,47 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -121,107 +123,47 @@ public class LoginState extends BottomSheetDialogFragment {
}else if (TextUtils.isEmpty(password.getText().toString())){ }else if (TextUtils.isEmpty(password.getText().toString())){
password.setError("This field can't empty"); password.setError("This field can't empty");
}else { }else {
/**
* Jika tombol sign in ditekan setAllLayoutToFalse();
*
* nonaktifkan semua form */
bar.setVisibility(View.VISIBLE);
loginButton.setText("");
username.setEnabled(false);
password.setEnabled(false);
loginButton.setEnabled(false);
closeBtn.setEnabled(false);
// buat checking login // buat checking login
mainViewModels.checkLogin(new UsersModels(username.getText().toString(), mainViewModels.checkLogin(new UsersModels(username.getText().toString(),
password.getText().toString())) password.getText().toString()))
.observe((LifecycleOwner) context, usersModelsDataResponse -> { .observe((LifecycleOwner) context, usersModelsDataResponse -> {
if (usersModelsDataResponse != null) { if (usersModelsDataResponse != null) {
/** final View customLayout = getLayoutInflater()
* Jika response atau data ada dan cocok .inflate(R.layout.alert_dialog, null);
*/
switch (usersModelsDataResponse.getMessageData().toLowerCase()) { switch (usersModelsDataResponse.getMessageData().toLowerCase()) {
case "invalid username or password":
bar.setVisibility(View.GONE);
loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true);
username.setEnabled(true);
password.setEnabled(true);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
errUserPass(); case "invalid username or password":
setAllLayoutToTrue();
errUserPass(customLayout);
break; break;
case "please activate your email first":
bar.setVisibility(View.GONE);
loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true);
username.setEnabled(true); case "please activate your email first":
password.setEnabled(true); setAllLayoutToTrue();
loginButton.setEnabled(true); activateEmail(customLayout);
closeBtn.setEnabled(true);
activateEmail(); default:
break;
} }
if (usersModelsDataResponse.getStatusData()) { if (usersModelsDataResponse.getStatusData()) {
SharedPreferences.Editor editor = sharedPreferences.edit(); SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(SplashScreen.SESSION, true); editor.putBoolean(SplashScreen.SESSION, true);
sheetDialog.dismiss(); sheetDialog.dismiss();
if(editor.commit()){ if(editor.commit()){
startActivity(new Intent(context, MainActivity.class)); startActivity(new Intent(context, MainActivity.class));
getActivity().finish();
} }
// redirect ke home
setAllLayoutToTrue();
// set progress bar jadi nonaktif
bar.setVisibility(View.GONE);
// munculkan tulisan default di button sign in
loginButton.setText(DEFAULT_LOGIN_NAME);
// set form jadi enable
username.setEnabled(true);
password.setEnabled(true);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
} }
// else {
// /**
// * Jika response atau data tidak cocok
// */
//
// bar.setVisibility(View.GONE);
// loginButton.setText(DEFAULT_LOGIN_NAME);
//
// sheetDialog.setCancelable(true);
//
// final View customLayout = getLayoutInflater()
// .inflate(R.layout.alert_dialog, null);
//
// // tampilkan alert dialog
// utils = new Utils(customLayout);
// utils.dialog(context, false, customLayout, "Wrong Username or Password",
// "The username or password is incorrect. Please try again!",
// "Try Again")
// .show();
// utils.setListener(Dialog::dismiss);
//
// username.setEnabled(true);
// password.setEnabled(true);
// loginButton.setEnabled(true);
// closeBtn.setEnabled(true);
//
// }
} else { } else {
bar.setVisibility(View.VISIBLE); bar.setVisibility(View.VISIBLE);
utils.snackBar(v, "Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください").show(); utils.snackBar(v, "Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください").show();
...@@ -232,30 +174,68 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -232,30 +174,68 @@ public class LoginState extends BottomSheetDialogFragment {
loginButton.setText(DEFAULT_LOGIN_NAME); loginButton.setText(DEFAULT_LOGIN_NAME);
} }
private void activateEmail() { private void setAllLayoutToTrue() {
final View customLayout = getLayoutInflater() bar.setVisibility(View.GONE);
.inflate(R.layout.alert_dialog, null); loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true);
username.setEnabled(true);
password.setEnabled(true);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
}
private void setAllLayoutToFalse() {
bar.setVisibility(View.VISIBLE);
loginButton.setText("");
sheetDialog.setCancelable(false);
username.setEnabled(false);
password.setEnabled(false);
loginButton.setEnabled(false);
closeBtn.setEnabled(false);
}
private void activateEmail(View customLayout) {
// tampilkan alert dialog
utils = new Utils(customLayout); utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Please Verifiy Email", utils.dialog(context, false, customLayout, "Please Verifiy Email",
"Please verify your email before login", "Please verify your email before login",
"verify") "close", "verify")
.show(); .show();
utils.setListener(Dialog::dismiss); utils.setListener(new Utils.DialogListener() {
@Override
public void onClickDisimiss(AlertDialog alertDialog) {
alertDialog.dismiss();
}
@Override
public void onClickLink(AlertDialog alertDialog) {
Intent pm = getActivity().getPackageManager().getLaunchIntentForPackage("com.google.android.gm");
if (pm != null) {
startActivity(pm);
getActivity().finish();
}
}
});
} }
private void errUserPass() { private void errUserPass(View customLayout) {
final View customLayout = getLayoutInflater()
.inflate(R.layout.alert_dialog, null);
// tampilkan alert dialog
utils = new Utils(customLayout); utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Wrong Username or Password", utils.dialog(context, false, customLayout, "Wrong Username or Password",
"The username or password is incorrect. Please try again!", "The username or password is incorrect. Please try again!",
"Try Again") "Try Again")
.show(); .show();
utils.setListener(Dialog::dismiss); utils.setListener(new Utils.DialogListener() {
@Override
public void onClickDisimiss(AlertDialog alertDialog) {
alertDialog.dismiss();
}
@Override
public void onClickLink(AlertDialog alertDialog) {
}
});
} }
} }
...@@ -46,6 +46,7 @@ public class Utils { ...@@ -46,6 +46,7 @@ public class Utils {
public interface DialogListener { public interface DialogListener {
void onClickDisimiss(AlertDialog alertDialog); void onClickDisimiss(AlertDialog alertDialog);
void onClickLink(AlertDialog alertDialog);
} }
private DialogListener listener; private DialogListener listener;
...@@ -274,12 +275,63 @@ public class Utils { ...@@ -274,12 +275,63 @@ public class Utils {
return dialog; return dialog;
} }
public AlertDialog dialog(Context context, Boolean cancelable, View view, @Nullable String titles, @Nullable String messages, @Nullable String buttons) { public AlertDialog dialog(Context context,
Boolean cancelable,
View view,
@Nullable String titles,
@Nullable String messages,
@Nullable String dismiss) {
TextView title = view.findViewById(R.id.alertTitles);
TextView message = view.findViewById(R.id.alertBody);
TextView button2 = view.findViewById(R.id.tvTextBtn2);
CardView btnCard2 = view.findViewById(R.id.cvAlertOnClick2);
// set title and message
if (titles != null){
title.setText(titles);
}
if (message != null){
message.setText(messages);
}
if (button2 != null){
btnCard2.setVisibility(View.VISIBLE);
button2.setText(dismiss);
}
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setCancelable(cancelable)
.setView(view);
AlertDialog dialog = builder.create();
dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
btnCard2.setOnClickListener(view1 -> listener.onClickDisimiss(dialog));
return dialog;
}
public AlertDialog dialog(Context context,
Boolean cancelable,
View view,
@Nullable String titles,
@Nullable String messages,
@Nullable String dismiss,
@Nullable String link) {
/**
* Button1 untuk dismiss
* Button2 untuk link
*/
TextView title = view.findViewById(R.id.alertTitles); TextView title = view.findViewById(R.id.alertTitles);
TextView message = view.findViewById(R.id.alertBody); TextView message = view.findViewById(R.id.alertBody);
TextView button = view.findViewById(R.id.tvTextBtn); TextView button = view.findViewById(R.id.tvTextBtn);
TextView button2 = view.findViewById(R.id.tvTextBtn2);
CardView btnCard = view.findViewById(R.id.cvAlertOnClick); CardView btnCard = view.findViewById(R.id.cvAlertOnClick);
CardView btnCard2 = view.findViewById(R.id.cvAlertOnClick2);
// set title and message // set title and message
if (titles != null){ if (titles != null){
...@@ -291,7 +343,13 @@ public class Utils { ...@@ -291,7 +343,13 @@ public class Utils {
} }
if (button != null){ if (button != null){
button.setText(buttons); btnCard.setVisibility(View.VISIBLE);
button.setText(link);
}
if (button2 != null) {
btnCard2.setVisibility(View.VISIBLE);
button2.setText(dismiss);
} }
AlertDialog.Builder builder = new AlertDialog.Builder(context) AlertDialog.Builder builder = new AlertDialog.Builder(context)
...@@ -300,7 +358,14 @@ public class Utils { ...@@ -300,7 +358,14 @@ public class Utils {
AlertDialog dialog = builder.create(); AlertDialog dialog = builder.create();
dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
btnCard.setOnClickListener(view1 -> listener.onClickDisimiss(dialog));
btnCard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onClickLink(dialog);
}
});
btnCard2.setOnClickListener(view1 -> listener.onClickDisimiss(dialog));
return dialog; return dialog;
} }
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/divider" app:layout_constraintBottom_toTopOf="@id/cvAlertDialog"
> >
<LinearLayout <LinearLayout
...@@ -45,22 +45,27 @@ ...@@ -45,22 +45,27 @@
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<View <LinearLayout
android:id="@+id/divider"
android:layout_marginTop="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="wrap_content"
style="@style/Divider.Horizontal" android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@id/cvAlertDialog"/> app:layout_constraintTop_toBottomOf="@id/cvAlertDialog">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/cvAlertOnClick" android:id="@+id/cvAlertOnClick"
app:cardCornerRadius="0dp" app:cardCornerRadius="0dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true">
app:layout_constraintTop_toBottomOf="@id/divider">
<View
android:id="@+id/divider"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Horizontal"/>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tvTextBtn" android:id="@+id/tvTextBtn"
...@@ -68,9 +73,39 @@ ...@@ -68,9 +73,39 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Coba Lagi" android:text="Coba Lagi"
android:textSize="18sp" android:textSize="18sp"
android:textColor="#3949AB"
android:textFontWeight="600"
android:paddingVertical="15dp"
android:gravity="center"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvAlertOnClick2"
app:cardCornerRadius="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:visibility="gone"
android:focusable="true">
<View
android:id="@+id/divider2"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Horizontal"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tvTextBtn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Coba Lagi"
android:textSize="18sp"
android:textFontWeight="600"
android:paddingVertical="15dp" android:paddingVertical="15dp"
android:gravity="center"/> android:gravity="center"/>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ 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