package com.yyquan.jzh.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.tencent.android.tpush.XGIOperateCallback;
import com.tencent.android.tpush.XGPushManager;
import com.yyquan.jzh.R;
import com.yyquan.jzh.entity.Ip;
import com.yyquan.jzh.entity.User;
import com.yyquan.jzh.util.SaveUserUtil;
import com.yyquan.jzh.util.SharedPreferencesUtil;
import com.yyquan.jzh.view.LockView.LockActivity;
import com.yyquan.jzh.xmpp.XmppService;
import com.yyquan.jzh.xmpp.XmppTool;
import org.json.JSONException;
import org.json.JSONObject;
import cz.msebera.android.httpclient.Header;
public class LogoActivity extends Activity {
boolean bool_login;
boolean bool_lock;
private String url = Ip.ip + "/YfriendService/DoGetUser";
private final int AUTO_LOGIN = 1;
private final int XMPP_LOGIN = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_logo);
bool_login = SharedPreferencesUtil.getBoolean(this, "user_message", "login");
bool_lock = SharedPreferencesUtil.getBoolean(this, "user_message", "lock");
thread.start();
}
Thread thread = new Thread() {
@Override
public void run() {
if (bool_lock) {
Intent intent = new Intent(LogoActivity.this,
LockActivity.class);
startActivity(intent);
finish();
} else {
Message m = h.obtainMessage(AUTO_LOGIN);
h.sendMessage(m);
}
}
};
//
Handler h = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case AUTO_LOGIN:
is_auto_login();
break;
case XMPP_LOGIN:
final User users = (User) msg.obj;
new Thread() {
@Override
public void run() {
boolean result = XmppTool.getInstance().login(users.getUser(), users.getPassword(), LogoActivity.this);
if (result) {
runOnUiThread(new Runnable() {
@Override
public void run() {
startService(new Intent(LogoActivity.this, XmppService.class));
Intent intent = new Intent(LogoActivity.this, MainActivity.class);
intent.putExtra("user", users);
regster_push(users.getUser());
SaveUserUtil.saveAccount(LogoActivity.this, users);
SharedPreferencesUtil.setBoolean(LogoActivity.this, "user_message", "login", true);
startActivity(intent);
finish();
}
});
} else {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LogoActivity.this, "登陆失败,请重试", Toast.LENGTH_LONG).show();
}
});
}
}
}.start();
break;
}
}
};
/**
* 先判断有没有自动登录
*/
private void is_auto_login() {
if (bool_login) {
User user = SaveUserUtil.loadAccount(LogoActivity.this);
login(user.getUser(), user.getPassword());
} else {
startActivity(new Intent(LogoActivity.this, LoginActivity.class));
finish();
}
}
/**
* 登录
*/
private void login(String user, String password) {
RequestParams params = new RequestParams();
params.put("user", user);
params.put("password", password);
params.put("action", "login");
AsyncHttpClient client = new AsyncHttpClient();
client.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
String str = new String(responseBody);
if (str != null) {
try {
JSONObject object = new JSONObject(str);
if (object.getString("code").equals("success")) {
object = object.getJSONObject("data");
User user = new User();
user.setUser(object.getString("user"));
user.setPassword(object.getString("password"));
user.setQq(object.getString("qq"));
user.setIcon(object.getString("icon"));
user.setNickname(object.getString("nickname"));
user.setCity(object.getString("city"));
user.setSex(object.getString("sex"));
user.setYears(object.getString("years"));
user.setQianming(object.getString("qianming"));
regster_push(user.getUser());
// if (!SharedPreferencesUtil.getBoolean(LogoActivity.this, "xmpp", "create" + user.getUser())) {
// Message m = h.obtainMessage(IS_CREATE);
// m.obj = user;
// h.sendMessage(m);
//
// } else {
Message m = h.obtainMessage(XMPP_LOGIN);
m.obj = user;
h.sendMessage(m);
// }
} else {
startActivity(new Intent(LogoActivity.this, LoginActivity.class));
finish();
Toast.makeText(LogoActivity.this, "账号或密码有误,请重新输入", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
startActivity(new Intent(LogoActivity.this, LoginActivity.class));
finish();
}
} else {
startActivity(new Intent(LogoActivity.this, LoginActivity.class));
finish();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Toast.makeText(LogoActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
startActivity(new Intent(LogoActivity.this, LoginActivity.class));
finish();
}
});
}
/**
* 注册信鸽
*/
private void regster_push(String user) {
XGPushManager.registerPush(getApplicationContext(), user, new XGIOperateCallback() {
@Override
public void onSuccess(Object o, int i) {
// Toast.makeText(LogoActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFail(Object o, int i, String s) {
// Toast.makeText(LogoActivity.this, "注册失败" + i + "\n" + s, Toast.LENGTH_SHORT).show();
}
});
}
}