package org.lntu.online.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import com.rengwuxian.materialedittext.MaterialEditText;
import org.lntu.online.R;
import org.lntu.online.model.api.ApiClient;
import org.lntu.online.model.api.DialogCallback;
import org.lntu.online.model.entity.ErrorInfo;
import org.lntu.online.model.entity.LoginInfo;
import org.lntu.online.model.entity.UserType;
import org.lntu.online.model.storage.LoginShared;
import org.lntu.online.ui.base.StatusBarActivity;
import org.lntu.online.ui.util.ToastUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit.client.Response;
public class LoginActivity extends StatusBarActivity {
@BindView(R.id.edt_user_id)
protected MaterialEditText edtUserId;
@BindView(R.id.edt_pwd)
protected MaterialEditText edtPwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ButterKnife.bind(this);
}
@OnClick(R.id.btn_login)
protected void onBtnLoginClick() {
if (edtUserId.getText().length() < 10) {
edtUserId.setError("学号长度为10位");
edtUserId.requestFocus();
} else if (edtPwd.getText().length() <= 0) {
edtPwd.setError("密码不能为空");
edtPwd.requestFocus();
} else {
loginAsyncTask(edtUserId.getText().toString(), edtPwd.getText().toString());
}
}
private void loginAsyncTask(String userId, String password) {
ApiClient.service.login(userId, password, new DialogCallback<LoginInfo>(this) {
@Override
public void handleSuccess(LoginInfo loginInfo, Response response) {
if (loginInfo.getUserType() == UserType.STUDENT) {
LoginShared.login(LoginActivity.this, loginInfo);
ToastUtils.with(LoginActivity.this).show("登录成功");
startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish();
} else {
edtUserId.setError("账户未通过验证");
edtUserId.requestFocus();
}
}
@Override
public void handleFailure(ErrorInfo errorInfo) {
switch (errorInfo.getErrorCode()) {
case PASSWORD_ERROR:
edtPwd.setError("密码未通过验证");
edtPwd.requestFocus();
break;
default:
super.handleFailure(errorInfo);
break;
}
}
});
}
@OnClick(R.id.btn_tos)
protected void onBtnAgreementClick() {
startActivity(new Intent(this, TermsOfServiceActivity.class));
}
}