package com.chehanr.yako;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.parse.ParseException;
import com.parse.ParseUser;
import com.parse.RequestPasswordResetCallback;
public class RecoveryActivity extends AppCompatActivity {
private EditText mEmailEtxt;
private Button mRecoveryBtn;
@Override
public void onBackPressed() {
Intent myIntent = new Intent(RecoveryActivity.this, AuthenticationActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(myIntent);
finish();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(getString(R.string.title_activity_recovery));
setContentView(R.layout.activity_recovery);
// Get view references
mEmailEtxt = (EditText) findViewById(R.id.email);
mRecoveryBtn = (Button) findViewById(R.id.btn_recover);
// Setup button click listeners
mRecoveryBtn.setOnClickListener(new RecoveryClickListener());
//Extract Authentication Activity's data
mEmailEtxt.setText(getIntent().getStringExtra("e"));
}
// Input validation
private boolean isFormInputValid(String email) {
mEmailEtxt.setError(null);
// validate the email
if (email == null || email.isEmpty()) {
mEmailEtxt.setError(getString(R.string.error_email));
mEmailEtxt.requestFocus();
return false;
}
return true;
}
private class RecoveryClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
// Get the username and password from the view
final String email = mEmailEtxt.getText().toString();
if (isFormInputValid(email)) {
if (email.indexOf('@') != -1) {
ParseUser.requestPasswordResetInBackground(mEmailEtxt.getText().toString().toLowerCase().trim(),
new RequestPasswordResetCallback() {
public void done(ParseException e) {
if (e == null) {
TextView error = (TextView) findViewById(R.id.info);
error.setVisibility(View.VISIBLE);
error.setBackgroundColor(getResources().getColor(R.color.blue));
error.setText(getString(R.string.recover_email_sent));
Log.d("success!", "sent recovery email");
} else {
TextView error = (TextView) findViewById(R.id.info);
error.setVisibility(View.VISIBLE);
error.setText(getString(R.string.recover_email_not_recognized));
Log.d("failed!", "recovery mail not recognized");
}
}
});
} else {
TextView error = (TextView) findViewById(R.id.info);
error.setVisibility(View.VISIBLE);
error.setText(getString(R.string.error_email_notvalid));
Log.d("error", "not a valid email");
}
}
}
}
}