package com.example.slidingmenu.yujing.client.activity.loginsignin;
import org.json.JSONException;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.AsyncTask.Status;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import com.example.slidingmenu.R;
import com.example.slidingmenu.yujing.client.activity.controller.ClientActivity;
import com.example.slidingmenu.yujing.client.application.ClientApplication;
import com.example.slidingmenu.yujing.client.broadcastreceiver.LoginLogoutBroadCast;
import com.example.slidingmenu.yujing.client.network.HttpClient;
import com.example.slidingmenu.yujing.client.network.Request;
import com.example.slidingmenu.yujing.client.network.mode.LoginoutResponseParam;
import com.example.slidingmenu.yujing.client.network.mode.RequestParam;
import com.example.slidingmenu.yujing.client.utils.Utils;
public class LoginActivity extends Activity {
public static final String TAG = "LoginActivity";
private static final boolean D = true;
private ClientApplication clientApplication;
private EditText name, password;
private LoginTask mLoginTask;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_layout);
name = (EditText) findViewById(R.id.name);
password = (EditText) findViewById(R.id.password);
clientApplication = (ClientApplication) getApplication();
}
public void onLoginClick(View v) {
if(TextUtils.isEmpty(name.getText().toString())) {
name.setError(getString(R.string.no_empyt_name));
return;
}
if(TextUtils.isEmpty(password.getText().toString())) {
password.setError(getString(R.string.no_empty_password));
return;
}
RequestParam requestParam = new RequestParam();
requestParam.setUserName(name.getText().toString());
requestParam.setPassword(password.getText().toString());
requestParam.setRequestType(requestParam.LOGIN);
requestParam.setRandomKey("1234");
requestParam.setParams(new String[]{""});
mLoginTask = new LoginTask();
mLoginTask.execute(requestParam);
}
public void onSigninClick(View v) {
Intent intent = new Intent(this, SignProfileActivity.class);
startActivity(intent);
}
@Override
protected void onDestroy() {
if(mLoginTask != null && mLoginTask.getStatus() == Status.RUNNING) {
mLoginTask.cancel(true);
}
super.onDestroy();
}
private void sendLoginBroadCast() {
Intent intent = new Intent(LoginActivity.this, LoginLogoutBroadCast.class);
intent.setAction(LoginLogoutBroadCast.BROADCAST_LOGIN);
sendBroadcast(intent);
}
/**
* 请求登录的Task
*
*/
public class LoginTask extends AsyncTask<RequestParam, Integer, Boolean> {
private ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(LoginActivity.this, "",
getText(R.string.waiting));
super.onPreExecute();
}
@Override
protected Boolean doInBackground(RequestParam... param) {
if(!HttpClient.isConnect(LoginActivity.this)) {
if(D) Log.i(TAG,"------1---------");
return false;
}
RequestParam requestParam = param[0];
String res = Request.request(requestParam.getJSON());
//如果请求结果为空字符串,则请求失败
if ("".equals(res)) {
if(D) Log.i(TAG,"------2---------");
return false;
}
try {
LoginoutResponseParam response = new LoginoutResponseParam(res);
if (response.getResult() != LoginoutResponseParam.RESULT_SUCCESS) {
if(D) Log.i(TAG,"------3---------"+response.getResult() + LoginoutResponseParam.RESULT_SUCCESS);
return false;
}
// 存储用户登录信息
clientApplication.setLoginUserInfo(name.getText().toString());
SharedPreferences sharedPreferences = clientApplication.getLoginUserInfo();
Editor editor = sharedPreferences.edit();
editor.putString(RequestParam.USER_NAME, name.getText().toString());
editor.putString(RequestParam.PASSWORD, password.getText().toString());
editor.putString(RequestParam.ADDR, response.getPersonAddress());
editor.putString(RequestParam.SEX, response.getPersonSex());
editor.putString(RequestParam.NAME, response.getPersonName());
editor.putString(RequestParam.PHOTO, response.getPersonPhoto());
editor.putInt(RequestParam.STATUS, RequestParam.ONLINE);
editor.commit();
Log.i(TAG,"------4---------");
return true;
} catch (JSONException e) {
System.out.println("登陆异常==="+ e.toString());
e.printStackTrace();
}
return false;
}
@Override
protected void onPostExecute(Boolean result) {
dialog.dismiss();
if (result) {
sendLoginBroadCast();
startActivity(new Intent(LoginActivity.this, ClientActivity.class));
finish();
} else {
Utils.myToast(LoginActivity.this, getText(R.string.login_fail).toString(), R.drawable.toast_error);
}
super.onPostExecute(result);
}
}
}