package com.dinhcv.lifelogpedometer.activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; import com.dinhcv.lifelogpedometer.R; import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; import com.dinhcv.lifelogpedometer.portal.ApiServices; import com.dinhcv.lifelogpedometer.portal.LLAPIManager; import com.dinhcv.lifelogpedometer.utils.Const; import com.dinhcv.lifelogpedometer.utils.Debug; import org.json.JSONObject; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class LoginActivity extends ActivityBase { @BindView(R.id.edt_user) TextView edtUser; @BindView(R.id.edt_password) TextView edtPassword; @BindView(R.id.btn_login) Button btnLogin; @BindView(R.id.btn_register) Button btnRegister; @BindView(R.id.tv_forgetPass) TextView tvForgetPass; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ButterKnife.bind(this); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); initData(); } private void initData() { } private boolean verifyData(String user, String pass) { if (user.isEmpty()) { showAlerDialog(LoginActivity.this, getResources().getString(R.string.account_is_null)); return false; } if (pass.isEmpty()) { showAlerDialog(LoginActivity.this, getResources().getString(R.string.password_is_null)); return false; } return true; } private void handleLogin() { final String user = edtUser.getText().toString(); String pass = edtPassword.getText().toString(); // verify boolean isOk = verifyData(user, pass); if (!isOk) { return; } progressDialog = new ProgressDialog(LoginActivity.this); progressDialog.setMessage(getResources().getString(R.string.waite_some_minute)); progressDialog.setCancelable(false); progressDialog.show(); ApiServices.login(LoginActivity.this, user, pass, new LLAPIManagerListener() { @Override public void onError(Error error) { progressDialog.dismiss(); Debug.error("Version JSON result: ERROR " + error); String err = getResources().getString(R.string.login_error); notifyErr(err); } @Override public void onSuccess(String json) { Debug.warn("Version JSON result: " + json.toString()); progressDialog.dismiss(); } @Override public void onSuccess(JSONObject object) { Debug.warn("Version JSON object result: Success"); progressDialog.dismiss(); String email = object.optString("email"); String username = object.optString("username"); String pass = object.optString("password"); int id = object.optInt("id"); Debug.normal("Email: "+email +"\n"+ "Username: "+username); // save data Setting.setUserIdSharepre(LoginActivity.this, id); Setting.setUserDataSharepre(LoginActivity.this, Setting.EMAIL_SHAREPRE, email); Setting.setUserDataSharepre(LoginActivity.this, Setting.USER_SHAREPRE, username); Setting.setUserDataSharepre(LoginActivity.this, Setting.PASS_SHAREPRE, pass); loginDone(); } }); } private void loginDone(){ Intent intent = new Intent(LoginActivity.this, PedometerActivity.class); startActivity(intent); } private void handleSendConfirm(final String email){ progressDialog = new ProgressDialog(LoginActivity.this); progressDialog.setMessage(getResources().getString(R.string.waite_some_minute)); progressDialog.setCancelable(false); progressDialog.show(); ApiServices.forgetPass(email, new LLAPIManagerListener() { @Override public void onError(Error error) { progressDialog.dismiss(); Debug.error("Send confirm JSON result: ERROR " + error); String err = getResources().getString(R.string.request_pass_error); notifyErr(err); } @Override public void onSuccess(String json) { Debug.warn("Send confirm JSON result: " + json.toString()); progressDialog.dismiss(); confirmDone(email); } @Override public void onSuccess(JSONObject object) { Debug.warn("Send confirm JSON object result: Success"); progressDialog.dismiss(); } }); } private void confirmDone(String email){ Intent intent = new Intent(LoginActivity.this, InputConfirmCodeActivity.class); intent.putExtra(Const.EMAIL, email ); startActivity(intent); } private void notifyErr(String err) { AlertDialog.Builder alertDialog = new AlertDialog.Builder(LoginActivity.this); alertDialog.setMessage(err); alertDialog.setCancelable(false); alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //finish(); edtUser.setText(""); edtPassword.setText(""); } }); alertDialog.show(); } @OnClick({R.id.btn_login, R.id.btn_register, R.id.tv_forgetPass}) public void onClick(View v) { switch (v.getId()) { case R.id.btn_login: // handle login handleLogin(); break; case R.id.btn_register: // hanle register Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); startActivity(intent); break; case R.id.tv_forgetPass: // hanle register String email = edtUser.getText().toString(); if (email.isEmpty()){ showAlerDialog(LoginActivity.this, getResources().getString(R.string.please_input_email)); return; } handleSendConfirm(email); break; default: break; } } }