PageRenderTime 43ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 1ms

/acvideo/src/tv/acfun/video/SigninActivity.java

https://github.com/jovisayhehe/acfunm
Java | 136 lines | 115 code | 19 blank | 2 comment | 10 complexity | 92d982153c4ed7d7e08baff7db0b23d4 MD5 | raw file
  1. package tv.acfun.video;
  2. import java.io.IOException;
  3. import java.net.UnknownHostException;
  4. import java.util.HashMap;
  5. import org.apache.commons.httpclient.HttpException;
  6. import tv.ac.fun.R;
  7. import tv.acfun.video.api.API;
  8. import tv.acfun.video.db.DB;
  9. import tv.acfun.video.entity.User;
  10. import tv.acfun.video.util.MemberUtils;
  11. import android.app.Activity;
  12. import android.app.ProgressDialog;
  13. import android.content.Context;
  14. import android.content.Intent;
  15. import android.os.AsyncTask;
  16. import android.os.Bundle;
  17. import android.view.KeyEvent;
  18. import android.view.View;
  19. import android.view.View.OnClickListener;
  20. import android.view.inputmethod.InputMethodManager;
  21. import android.widget.EditText;
  22. import android.widget.TextView;
  23. import android.widget.TextView.OnEditorActionListener;
  24. import android.widget.Toast;
  25. import com.alibaba.fastjson.JSONException;
  26. import com.umeng.analytics.MobclickAgent;
  27. public class SigninActivity extends Activity {
  28. public static final int REQUEST_SIGN_IN = 1;
  29. private EditText mNameView;
  30. private EditText mPwdView;
  31. public static Intent createIntent(Context pkgContext) {
  32. return new Intent(pkgContext, SigninActivity.class);
  33. }
  34. protected void onCreate(Bundle savedInstanceState) {
  35. super.onCreate(savedInstanceState);
  36. setContentView(R.layout.activity_signin);
  37. mNameView = (EditText) findViewById(R.id.user_name);
  38. mPwdView = (EditText) findViewById(R.id.password);
  39. final View btn = findViewById(R.id.btn_signin);
  40. btn.setOnClickListener(new OnClickListener() {
  41. @Override
  42. public void onClick(View v) {
  43. if(mNameView.getText().length() == 0 || mPwdView.getText().length() == 0){
  44. mNameView.setError("用户名和密码不能为空!");
  45. }else
  46. new LoginTask().execute();
  47. // setResult(RESULT_OK);
  48. // finish();
  49. }
  50. });
  51. mPwdView.setOnEditorActionListener(new OnEditorActionListener() {
  52. @Override
  53. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  54. if(event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
  55. InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
  56. imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
  57. btn.performClick();
  58. return true;
  59. }
  60. return false;
  61. }
  62. });
  63. }
  64. private class LoginTask extends AsyncTask<Void, Void, Boolean>{
  65. private String response;
  66. private User user;
  67. private ProgressDialog dialog;
  68. @Override
  69. protected void onPreExecute() {
  70. dialog = new ProgressDialog(SigninActivity.this);
  71. dialog.setCanceledOnTouchOutside(false);
  72. dialog.setCancelable(false);
  73. dialog.setMessage("登录...");
  74. dialog.show();
  75. }
  76. @Override
  77. protected Boolean doInBackground(Void... params) {
  78. try {
  79. HashMap<String, Object> map = MemberUtils.login(API.getDomainRoot(getApplicationContext()), mNameView.getText().toString(), mPwdView.getText().toString());
  80. if((Boolean)map.get("success")){
  81. user = (User) map.get("user");
  82. user.savedTime = System.currentTimeMillis();
  83. new DB(getApplicationContext()).saveUser(user);
  84. return true;
  85. }else{
  86. response ="错误: "+map.get("result").toString();
  87. }
  88. } catch (HttpException e) {
  89. e.printStackTrace();
  90. response = "错误: 请检查网络连接";
  91. } catch (UnknownHostException e) {
  92. e.printStackTrace();
  93. response = "错误: 请检查网络是否通畅";
  94. } catch (JSONException e) {
  95. e.printStackTrace();
  96. } catch (IOException e) {
  97. e.printStackTrace();
  98. response = "错误: 登录失败";
  99. }
  100. return false;
  101. }
  102. @Override
  103. protected void onPostExecute(Boolean result) {
  104. dialog.dismiss();
  105. if(result.booleanValue()){
  106. MobclickAgent.onEvent(SigninActivity.this, "sign_in");
  107. Intent data = new Intent();
  108. data.putExtra("user", user);
  109. setResult(RESULT_OK, data);
  110. finish();
  111. }else{
  112. mNameView.setError(response);
  113. Toast.makeText(getApplicationContext(), response,0).show();
  114. }
  115. }
  116. }
  117. }