app-mobile/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java
2019-05-25 14:35:36 +02:00

169 lines
7.2 KiB
Java

package monnethic.mobile.homepage;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R;
import org.json.JSONObject;
import monnethic.mobile.database.User;
import monnethic.mobile.restApi.UserApiHandler;
import monnethic.mobile.wallet.HomeWalletActivity;
public class RegisterActivity extends AppCompatActivity {
private EditText name;
private EditText firstname;
private EditText email;
private EditText confirmEmail;
private EditText password;
private EditText confirmPassword;
private EditText phone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
name = findViewById(R.id.inputName);
firstname = findViewById(R.id.inputPrenom);
email = findViewById(R.id.inputEmail);
confirmEmail = findViewById(R.id.inputConfEmail);
password = findViewById(R.id.inputPassword);
confirmPassword = findViewById(R.id.inputConfPassword);
phone = findViewById(R.id.inputPhone);
Button buttonCancel = findViewById(R.id.buttonCancel);
Button buttonOk = findViewById(R.id.buttonOk);
buttonCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
buttonOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
validateInput();
}
});
}
public void validateInput(){
if(checkInputEmpty()){
if(!InputController.passwordValidator(password.getText().toString())){
Toast.makeText(this, "Password must contains 6 to 20 characters, one lowercase, one uppercase and one digit", Toast.LENGTH_LONG).show();
}else if(InputController.validEmail(email.getText().toString())){
Boolean userExist = InputController.checkUser(email.getText().toString());//checkUser
Log.i("RegisterActivity-val","userExist : "+userExist);
if(userExist != null){
if(userExist){
Toast.makeText(this, "User already exist", Toast.LENGTH_SHORT).show();
} else {
User inputUser = new User(name.getText().toString(),firstname.getText().toString(),email.getText().toString(),password.getText().toString(),phone.getText().toString(),"gonette");
new UserRegisterTask(this).execute(inputUser);
}
} else {
Toast.makeText(this, "An error occured", Toast.LENGTH_SHORT).show();
}
}
}
}
private boolean checkInputEmpty(){
Log.i("checkInputEmpty",name.getText().toString());
Log.i("checkInputEmpty",firstname.getText().toString());
Log.i("checkInputEmpty",email.getText().toString());
Log.i("checkInputEmpty",confirmEmail.getText().toString());
Log.i("checkInputEmpty",password.getText().toString());
if(InputController.isEmptyEdit(name)){
Toast.makeText(this, "You did not enter your name", Toast.LENGTH_SHORT).show();
return false;
} else if(InputController.isEmptyEdit(firstname)){
Toast.makeText(this, "You did not enter your firstname", Toast.LENGTH_SHORT).show();
return false;
} else if(InputController.isEmptyEdit(email)){
Toast.makeText(this, "You did not enter your email", Toast.LENGTH_SHORT).show();
return false;
} else if(!InputController.validEmail(email.getText().toString())){
Toast.makeText(this, "Your email is invalid", Toast.LENGTH_SHORT).show();
return false;
} else if(InputController.isEmptyEdit(confirmEmail)){
Toast.makeText(this, "You did not confirm your email", Toast.LENGTH_SHORT).show();
return false;
} else if(InputController.isEmptyEdit(phone)){
Toast.makeText(this, "You did not enter your phone number", Toast.LENGTH_SHORT).show();
return false;
} else if(InputController.isEmptyEdit(password)){
Toast.makeText(this, "You did not enter your password", Toast.LENGTH_SHORT).show();
return false;
} else if(InputController.isEmptyEdit(confirmPassword)){
Toast.makeText(this, "You did not confirm your password", Toast.LENGTH_SHORT).show();
return false;
}else {
if (!(password.getText().toString().equals(confirmPassword.getText().toString()))) {
Toast.makeText(this, "Password don't match confirmation password", Toast.LENGTH_SHORT).show();
return false;
} else if (!(email.getText().toString().equals(confirmEmail.getText().toString()))) {
Toast.makeText(this, "Email don't match confirmation email", Toast.LENGTH_SHORT).show();
return false;
}else{
return true;
}
}
}
private class UserRegisterTask extends AsyncTask<User,Void,JSONObject> {
Context mContext;
private UserRegisterTask(final Context context){mContext=context;}
@Override
protected void onPreExecute() {
super.onPreExecute();
ProgressDialog progDailog = new ProgressDialog(RegisterActivity.this);
progDailog.setMessage("Register...");
progDailog.setIndeterminate(false);
progDailog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progDailog.setCancelable(true);
progDailog.show();
}
@Override
protected void onPostExecute(JSONObject jsonObject){
try{
if(jsonObject!=null){
Intent walletHomeIntent = new Intent(RegisterActivity.this, HomeWalletActivity.class);
walletHomeIntent.putExtra("USER_HASH", jsonObject.getString("user_hash"));
walletHomeIntent.putExtra("USER_PWD",password.getText().toString());
walletHomeIntent.putExtra("SESSION_ID",jsonObject.getString("session_id"));
walletHomeIntent.putExtra("email",email.getText().toString());
RegisterActivity.this.startActivity(walletHomeIntent);
finish();
}else{
Toast.makeText(mContext, "AN ERROR OCCURED", Toast.LENGTH_SHORT).show();
}
}catch (Exception e){
e.printStackTrace();
}
}
@Override
protected JSONObject doInBackground(User... users) {
try{
UserApiHandler userApiHandler = new UserApiHandler();
return userApiHandler.registerUser(users[0]);
}catch (Exception e){
e.printStackTrace();
return null;
}
}
}
}