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 LoginActivity extends AppCompatActivity { private EditText email; private EditText password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); email = findViewById(R.id.editTextEmail); password = findViewById(R.id.editTextPassword); Button buttonCancel = findViewById(R.id.buttonCancel); Button buttonOk = findViewById(R.id.buttonOkLogin); 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 onClickForgetPassword(View v){ Toast.makeText(this, "Forget password", Toast.LENGTH_SHORT).show(); } public void onClickForgetEmail(View v){ Toast.makeText(this, "Forget email", Toast.LENGTH_SHORT).show(); } private void validateInput(){ if(InputController.isEmptyEdit(email)){ Toast.makeText(this, "You did not enter your email", Toast.LENGTH_SHORT).show(); } else if(!InputController.validEmail(email.getText().toString())){ Toast.makeText(this, "Your email is invalid", Toast.LENGTH_SHORT).show(); } else if(InputController.isEmptyEdit(password)) { Toast.makeText(this, "You did not enter your password", Toast.LENGTH_SHORT).show(); } else { User user = new User(email.getText().toString(),password.getText().toString()); new UserLoggerTask(this).execute(user); } } //AsyncTask for login private class UserLoggerTask extends AsyncTask { Context mContext; private UserLoggerTask(final Context context){ mContext = context; } @Override protected void onPreExecute() { super.onPreExecute(); ProgressDialog progDailog = new ProgressDialog(LoginActivity.this); progDailog.setMessage("Login..."); progDailog.setIndeterminate(false); progDailog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progDailog.setCancelable(true); progDailog.show(); } @Override protected void onPostExecute(JSONObject jsonObject) { try{ if(jsonObject!=null){ if(jsonObject.getInt("status")==404){ Toast.makeText(mContext, "User Not Found", Toast.LENGTH_SHORT).show(); } else if(jsonObject.getInt("status")==403){ Toast.makeText(mContext, "Wrong authentication", Toast.LENGTH_SHORT).show(); } else if(jsonObject.getInt("status")==200){ Intent walletHomeIntent = new Intent(LoginActivity.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")); LoginActivity.this.startActivity(walletHomeIntent); finish(); } else { Toast.makeText(mContext, "AN ERROR OCCURED", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(mContext, "AN ERROR OCCURED", Toast.LENGTH_SHORT).show(); } }catch (Exception e){ e.printStackTrace(); } } @Override protected JSONObject doInBackground(User... u) { try{ UserApiHandler userApiHandler = new UserApiHandler(); return userApiHandler.loginUser(u[0]); }catch (Exception e){ e.printStackTrace(); return null; } } } }