package com.partynetwork.iparty.site;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.baidu.mobstat.StatService;
import com.openfire.manager.XmppConnection;
import com.partynetwork.dataprovider.util.T;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.AppException;
import com.partynetwork.iparty.app.AppManager;
import com.partynetwork.iparty.app.bean.BLogin;
import com.partynetwork.iparty.app.common.SinaWeiboHelper;
import com.partynetwork.iparty.app.common.UIHelper;
import com.sina.weibo.sdk.exception.WeiboException;
import com.sina.weibo.sdk.net.RequestListener;
import eu.inmite.android.lib.dialogs.ISimpleDialogListener;
import eu.inmite.android.lib.dialogs.SimpleDialogFragment;
public class SiteAuthActivity extends FragmentActivity implements
OnClickListener, Callback, ISimpleDialogListener {
private TextView sinaTv;
private Handler mHandler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setTheme(R.style.DefaultLightTheme);
setContentView(R.layout.site_auth);
initView();
initData();
}
private void initView() {
findViewById(R.id.menu_head_left).setOnClickListener(this);
findViewById(R.id.auth_sina_rl).setOnClickListener(this);
sinaTv = (TextView) this.findViewById(R.id.auth_sina_tv);
}
private void initData() {
mHandler = new Handler(this);
BLogin user = AppContext.getInstance().getLoginInfo();
if (user.getAuthType() == 1 && SinaWeiboHelper.isAuth(this)) {
sinaTv.setText("已认证");
} else {
sinaTv.setText("未认证");
}
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.menu_head_left:
// 关闭
finish();
break;
case R.id.auth_sina_rl:
if (SinaWeiboHelper.isAuth(this)) {
SinaWeiboHelper.showMyInfo(SiteAuthActivity.this, listener);
} else {
SinaWeiboHelper.auth(this);
}
break;
default:
break;
}
}
@Override
protected void onResume() {
super.onResume();
StatService.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
StatService.onPause(this);
}
RequestListener listener = new RequestListener() {
@Override
public void onWeiboException(WeiboException arg0) {
// TODO Auto-generated method stub
}
@Override
public void onComplete(String arg0) {
if (!TextUtils.isEmpty(arg0)) {
try {
JSONObject obj = new JSONObject(arg0);
String value = obj.getString("verified");
if ("true".equalsIgnoreCase(value)) {
final String name = obj.getString("screen_name");
final String head = obj.getString("avatar_hd");
new Thread() {
@Override
public void run() {
Message msg = new Message();
try {
AppContext ac = (AppContext) getApplicationContext();
int result = ac.setAuth(0, name, head);
msg.what = 1;// 成功
msg.obj = result;
} catch (AppException e) {
e.printStackTrace();
msg.what = -1;
msg.obj = e;
}
mHandler.sendMessage(msg);
}
}.start();
T.showShort(SiteAuthActivity.this, "认证成功!");
} else {
SimpleDialogFragment
.createBuilder(SiteAuthActivity.this,
getSupportFragmentManager())
.setTitle("验证失败")
.setMessage("必须使用新浪+V账号才能进行实名验证!")
.setNegativeButtonText("确定").show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
};
@Override
public boolean handleMessage(Message msg) {
if (msg.what == 1) {
SimpleDialogFragment
.createBuilder(SiteAuthActivity.this,
getSupportFragmentManager()).setTitle("认证成功")
.setMessage("请重新登录更改用户身份!").setPositiveButtonText("取消")
.setNegativeButtonText("确定").setRequestCode(42)
.setTag("custom-tag").show();
} else if (msg.what == -1) {
AppException e = (AppException) msg.obj;
if (AppContext.getInstance().isLogin()) {
e.makeToast(this);
}
}
return false;
}
@Override
public void onPositiveButtonClicked(int requestCode) {
// TODO 自动生成的方法存根
}
@Override
public void onNegativeButtonClicked(int requestCode) {
if (requestCode == 42) {
AppManager.getAppManager().stopService(this);
XmppConnection.getInstance().closeConnection();
AppContext appContext = (AppContext) getApplication();
appContext.Logout();
UIHelper.showLoginPage(this);
}
}
}