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); } } }