package com.yaoyumeng.v2ex.ui; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Parcelable; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.yaoyumeng.v2ex.R; import com.yaoyumeng.v2ex.api.HttpRequestHandler; import com.yaoyumeng.v2ex.api.V2EXManager; import com.yaoyumeng.v2ex.model.ProfileModel; import com.yaoyumeng.v2ex.ui.swipeback.SwipeBackActivity; import com.yaoyumeng.v2ex.utils.AccountUtils; import com.yaoyumeng.v2ex.utils.MessageUtils; public class LoginActivity extends SwipeBackActivity implements View.OnClickListener { private static final String TAG = "LoginActivity"; private EditText mUsername; private EditText mPassword; private Button mLogin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); mUsername = (EditText) findViewById(R.id.login_username_edit); mPassword = (EditText) findViewById(R.id.login_password_edit); mLogin = (Button) findViewById(R.id.login_login_btn); mLogin.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.login_login_btn: if (mUsername.getText().length() == 0) { mUsername.setError(getString(R.string.login_error_empty_user)); mUsername.requestFocus(); } else if (mPassword.getText().length() == 0) { mPassword.setError(getString(R.string.login_error_empty_passwd)); mPassword.requestFocus(); } else { login(); } break; case R.id.login_sign_up_txt: startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(V2EXManager.SIGN_UP_URL))); break; } } private void login() { showProgressBar(true, getString(R.string.login_loging)); V2EXManager.loginWithUsername(this, mUsername.getText().toString(), mPassword.getText().toString(), new HttpRequestHandler<Integer>() { @Override public void onSuccess(Integer data) { getProfile(); } @Override public void onSuccess(Integer data, int totalPages, int currentPage) { getProfile(); } @Override public void onFailure(String error) { MessageUtils.showErrorMessage(LoginActivity.this, error); showProgressBar(false); } }); } private HttpRequestHandler<ProfileModel> profileHandler = new HttpRequestHandler<ProfileModel>() { @Override public void onSuccess(ProfileModel data) { showProgressBar(false); mLoginProfile = data; AccountUtils.writeLoginMember(LoginActivity.this, data, true); showProgressBar(false); Intent intent = new Intent(); intent.putExtra("profile", (Parcelable) data); setResult(RESULT_OK, intent); finish(); } @Override public void onSuccess(ProfileModel data, int totalPages, int currentPage) { } @Override public void onFailure(String error) { showProgressBar(false); MessageUtils.showErrorMessage(LoginActivity.this, error); } }; private void getProfile() { showProgressBar(true, getString(R.string.login_obtain_profile)); V2EXManager.getProfile(this, profileHandler, false); } }