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 { 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; } } } }