package com.snail.travellingTrail.slidingmenu.controller;
import java.security.MessageDigest;
import java.util.List;
import java.util.Map;
import net.tsz.afinal.FinalHttp;
import net.tsz.afinal.http.AjaxCallBack;
import net.tsz.afinal.http.AjaxParams;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.snail.travellingTrail.R;
import com.snail.travellingTrail.common.RequestAddress;
import com.snail.travellingTrail.common.ResponseList;
import com.snail.travellingTrail.common.TravellingTrailApplication;
import com.snail.travellingTrail.common.object.User;
import com.snail.travellingTrail.common.utils.DialogTool;
import com.snail.travellingTrail.common.utils.JsonUtil;
import com.snail.travellingTrail.common.utils.ToastHelper;
public class LoginActivity extends SherlockActivity{
ActionBar actionBar;
MenuItem menuItem;
Context context = this;
EditText mailEt,pwEt;
FinalHttp mFinalHttp;
private static String TAG = "LoginActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_login);
findId();
mFinalHttp = new FinalHttp();
super.onCreate(savedInstanceState);
}
private void findId() {
mailEt = (EditText)findViewById(R.id.act_login_et_mail);
pwEt = (EditText)findViewById(R.id.act_login_et_password);
}
@Override
protected void onDestroy()
{
DialogTool.cancelProgressDialog();
super.onDestroy();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);
actionBar = getSupportActionBar();
actionBar.setIcon(R.drawable.mistake);
actionBar.setTitle("LOGIN");
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(true);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
case R.id.act_login_confirm:
AjaxParams mAjaxParams = new AjaxParams();
mAjaxParams.put("Us_Email", mailEt.getText().toString());
mAjaxParams.put("Us_Password", toMD5(pwEt.getText().toString()));
DialogTool.showProgressDialog(LoginActivity.this, "登录中~");
mFinalHttp.post(RequestAddress.LOGIN, mAjaxParams,new AjaxCallBack<Object>(){
@Override
public void onSuccess(Object t) {
Log.i(TAG, t+"");
analyzeJson(t.toString());
super.onSuccess(t);
}
@Override
public void onFailure(Throwable t, int errorNo, String strMsg) {
Log.i(TAG,strMsg);
DialogTool.cancelProgressDialog();
analyzeJson(strMsg);
super.onFailure(t, errorNo, strMsg);
}
});
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void analyzeJson(String json){
Map<String,Object> map = JsonUtil.parseJson(json);
for (String key:map.keySet()) {
if(key.equals("Us_Info_Us_Id")){
TravellingTrailApplication.loginUser = new User();
TravellingTrailApplication.loginUser.setUs_Info_Us_Id(Long.valueOf(map.get(key).toString()));
ResponseList.MyInfoMap = map;
getIsInTravelling();
}else if(key.equals("Message")){
ToastHelper.showToast(context, map.get("Message").toString(), Toast.LENGTH_LONG);
}
}
}
public String toMD5(String args) {
byte[] source;
StringBuffer buf=new StringBuffer();
try{
source = args.getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
md.update( source );
for(byte b:md.digest())
buf.append(String.format("%02x", b&0xff) );
}catch( Exception e ){
e.printStackTrace();
}
return buf.toString();
}
//向后台获取判断是否有未结束旅程
private void getIsInTravelling()
{
mFinalHttp.get(RequestAddress.PERSONAL_TRAVEL + "?UserId=" +
TravellingTrailApplication.loginUser.getUs_Info_Us_Id() + "&status=1",
new AjaxCallBack<Object>()
{
@Override
public void onFailure(Throwable t, int errorNo,
String strMsg)
{
DialogTool.cancelProgressDialog();
ToastHelper.showToast(context, "欢迎回来", Toast.LENGTH_SHORT);
finish();
super.onFailure(t, errorNo, strMsg);
}
@Override
public void onSuccess(Object t)
{
try
{
Log.v("LoginActivity--->getIsInTravelling", "--->" + t.toString());
List<Map<String, String>> list = JsonUtil.parseJson1(t.toString(), null);
TravellingTrailApplication.loginUser.setIdOfTravelInTravlling(
Integer.valueOf(list.get(0).get("Trvl_Id")));
TravellingTrailApplication.loginUser.setInTravlling(true);
} catch (Exception e)
{
TravellingTrailApplication.loginUser.setInTravlling(false);
}finally
{
DialogTool.cancelProgressDialog();
ToastHelper.showToast(context, "欢迎回来", Toast.LENGTH_SHORT);
finish();
}
super.onSuccess(t);
}
});
}
}