package com.github.jthuraisamy.mastertap.fragments;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.github.jthuraisamy.mastertap.MainActivity;
import com.github.jthuraisamy.mastertap.R;
public class RegisterPasswordDialog extends DialogFragment {
public static final String TAG = RegisterPasswordDialog.class.getSimpleName();
public RegisterPasswordDialog() {}
public static RegisterPasswordDialog create() {
return new RegisterPasswordDialog();
}
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
final MainActivity ctx = (MainActivity) getActivity();
AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctx);
// Set title bar.
alertDialog.setTitle(R.string.register_password_title);
// Set view.
LayoutInflater inflater = LayoutInflater.from(ctx);
final View view = inflater.inflate(R.layout.register_password_dialog, null);
alertDialog.setView(view);
// Set OnClickListener for negative button.
alertDialog.setNegativeButton(R.string.cancel, null);
// Set OnClickListener for positive button as null, then define it in onResume.
alertDialog.setPositiveButton(R.string.save, null);
return alertDialog.create();
}
@Override
public void onResume() {
super.onResume();
final AlertDialog alertDialog = (AlertDialog) getDialog();
Button saveButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View onClick) {
final MainActivity ctx = (MainActivity) getActivity();
EditText newPasswordInput = (EditText) alertDialog.findViewById(R.id.newPasswordInput);
EditText newPasswordConfirmInput = (EditText) alertDialog.findViewById(R.id.newPasswordConfirmInput);
String newPassword = newPasswordInput.getText().toString();
String newPasswordConfirm = newPasswordConfirmInput.getText().toString();
if (!newPassword.equals(newPasswordConfirm)) {
ctx.vibrator.vibrate(new long[] {0, 125, 125, 125}, -1);
ctx.toastMessage(ctx.getString(R.string.unmatched_passwords));
} else if (newPassword.isEmpty()) {
ctx.vibrator.vibrate(new long[] {0, 125, 125, 125}, -1);
ctx.toastMessage(ctx.getString(R.string.blank_password));
} else {
MainActivity.cardDao.setNewKey(newPassword);
MainActivity.isDatabaseAuthenticated = true;
ctx.toastMessage(ctx.getString(R.string.authenticated));
dismiss();
}
}
});
}
}