package com.hit.changyou;
import java.io.IOException;
import Network.Network;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.Toast;
import com.baidu.social.core.BaiduSocialException;
import com.baidu.social.core.BaiduSocialListener;
import com.baidu.social.core.Utility;
import com.baidu.sociallogin.BaiduSocialLogin;
import com.baidu.solution.client.service.ServiceException;
import com.baidu.solution.pcs.sd.impl.ErrorInfo;
import com.baidu.solution.pcs.sd.model.Table;
import com.hit.changyou.model.User;
import com.hit.changyou.protocol.ProtocolUserInfo;
import com.hit.changyou.protocol.ProtocolUserInfo.ProtocolUserInfoDelegate;
public class LoginActivity_1 extends Activity implements ProtocolUserInfoDelegate{
final Handler handler = new Handler(Looper.getMainLooper());
private BaiduSocialLogin socialLogin;
private final static String appKey = BaiduSocialShareConfig.mbApiKey;
private RelativeLayout sinaWeibo;
private RelativeLayout qqzone;
private RelativeLayout qqWeibo;
private RelativeLayout kaixin;
private RelativeLayout renren;
private Button clean;
private Button backbutton;
private RelativeLayout baidu;
private EditText info;
protected static final int MESSAGE_ADDUSER_SUCCESS = 0;
protected static final int MESSAGE_ADDUSER_FAILED = 1;
Handler datahandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.what) {
case MESSAGE_ADDUSER_SUCCESS: {
// displayList();
}
break;
case MESSAGE_ADDUSER_FAILED: {
}
break;
default:
break;
}
super.handleMessage(msg);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
setContentView(R.layout.m_share);
// 实例化baidu社会化登录,传入appkey
socialLogin = BaiduSocialLogin.getInstance(this, appKey);
// 设置支持腾讯微博单点登录的appid
socialLogin.supportQQSso(BaiduSocialShareConfig.QQ_SSO_APP_KEY);
// 设置支持新浪微博单点登录的appid
socialLogin.supportWeiBoSso(BaiduSocialShareConfig.SINA_SSO_APP_KEY);
sinaWeibo = (RelativeLayout) findViewById(R.id.share_sinaRelativeLayout);
qqzone = (RelativeLayout) findViewById(R.id.share_qzoneRelativeLayout);
qqWeibo = (RelativeLayout) findViewById(R.id.share_qqweiboRelativeLayout);
kaixin = (RelativeLayout) findViewById(R.id.share_kaixinRelativeLayout);
renren=(RelativeLayout)findViewById(R.id.share_renrenRelativeLayout);
clean = (Button) findViewById(R.id.button_clear);
backbutton = (Button) findViewById(R.id.btn_back);
baidu=(RelativeLayout)findViewById(R.id.share_baiduRelativeLayout);
clean.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
socialLogin.cleanAllAccessToken();
}
});
sinaWeibo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (socialLogin
.isAccessTokenValid(Utility.SHARE_TYPE_SINA_WEIBO)) {
socialLogin.getUserInfoWithShareType(LoginActivity_1.this,
Utility.SHARE_TYPE_SINA_WEIBO,
new UserInfoListener());
} else
socialLogin.authorize(LoginActivity_1.this,
Utility.SHARE_TYPE_SINA_WEIBO,
new UserInfoListener());
}
});
qqzone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (socialLogin.isAccessTokenValid(Utility.SHARE_TYPE_QZONE)) {
socialLogin.getUserInfoWithShareType(LoginActivity_1.this,
Utility.SHARE_TYPE_QZONE, new UserInfoListener());
} else
socialLogin.authorize(LoginActivity_1.this,
Utility.SHARE_TYPE_QZONE, new UserInfoListener());
}
});
qqWeibo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (socialLogin.isAccessTokenValid(Utility.SHARE_TYPE_QQ_WEIBO)) {
socialLogin
.getUserInfoWithShareType(LoginActivity_1.this,
Utility.SHARE_TYPE_QQ_WEIBO,
new UserInfoListener());
} else
socialLogin
.authorize(LoginActivity_1.this,
Utility.SHARE_TYPE_QQ_WEIBO,
new UserInfoListener());
}
});
kaixin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (socialLogin.isAccessTokenValid(Utility.SHARE_TYPE_KAIXIN)) {
socialLogin.getUserInfoWithShareType(LoginActivity_1.this,
Utility.SHARE_TYPE_KAIXIN, new UserInfoListener());
} else
socialLogin.authorize(LoginActivity_1.this,
Utility.SHARE_TYPE_KAIXIN, new UserInfoListener());
}
});
renren.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (socialLogin
.isAccessTokenValid(Utility.SHARE_TYPE_RENREN)) {
socialLogin.getUserInfoWithShareType(LoginActivity_1.this,
Utility.SHARE_TYPE_RENREN,
new UserInfoListener());
} else
socialLogin.authorize(LoginActivity_1.this,
Utility.SHARE_TYPE_RENREN,
new UserInfoListener());
}
});
baidu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (socialLogin
.isAccessTokenValid(Utility.SHARE_TYPE_BAIDU)) {
socialLogin.getUserInfoWithShareType(LoginActivity_1.this,
Utility.SHARE_TYPE_BAIDU,
new UserInfoListener());
} else
socialLogin.authorize(LoginActivity_1.this,
Utility.SHARE_TYPE_BAIDU,
new UserInfoListener());
}
});
backbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(LoginActivity_1.this, MainTabActivity.class);
startActivity(intent);
finish();
}
});
}
class UserInfoListener implements BaiduSocialListener {
@Override
public void onAuthComplete(Bundle values) {
// TODO Auto-generated method stubis
}
@Override
public void onApiComplete(String responses) {
// TODO Auto-generated method stub
final String responseStr = responses;
handler.post(new Runnable() {
@Override
public void run() {
Json2UserInfo jUserInfo = new Json2UserInfo();
User user = jUserInfo.parseUser(Utility.decodeUnicode(responseStr));
MyRenren myrenren = (MyRenren) getApplication();
myrenren.setUser(user);
Toast.makeText(
LoginActivity_1.this,
LoginActivity_1.this
.getString(R.string.auth_success),
Toast.LENGTH_SHORT).show();
adduserandlogin(user);
String log="";
Table table;
try {
// Create favorite song table with columns and indexes.
table = PCS.createFavoritePOITable();
log = "Step 1: Create " + PCS.FAVORITE_TABLE
+ " table done.";
} catch (ServiceException e) {
ErrorInfo info = e.toErrorInformation(ErrorInfo.class);
long code = info.getErrorCode();
if (code == 31476 || code == 31472) {
log = "Step 1: " + PCS.FAVORITE_TABLE
+ " table already exist.";
}
log = "Step 1: Create " + PCS.FAVORITE_TABLE
+ " table failed:" + e.getMessage();
try {
throw e;
} catch (ServiceException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i("PCScreattable", log);
// info.setText(user.getSocial_uid()+"\n"+user.getUsername()+"\n"+user.getSex()+"\n"+user.getMedia_type());
// Log.i("userinfo", info.getText().toString());
}
});
}
@Override
public void onError(BaiduSocialException e) {
final String error = e.toString();
handler.post(new Runnable() {
@Override
public void run() {
}
});
}
}
@Override
public void commitUserInfoSuccess() {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(LoginActivity_1.this,
PersonalActivity.class);
startActivity(intent);
}
@Override
public void commitUserInfoFailed() {
// TODO Auto-generated method stub
}
void adduserandlogin(User user)
{
ProtocolUserInfo _protocol = new ProtocolUserInfo(user).setDelegate(this)
.setContext(this.getApplicationContext());
// 通过网络请求
Network _network = new Network();
_network.setURL(ProtocolUserInfo.URL + ProtocolUserInfo.COMMAND+ProtocolUserInfo.VALUE);
_network.send(_protocol, Network.GET);
}
}