package com.ustc.dystu.dandelion;
import java.text.SimpleDateFormat;
import cn.waps.AppConnect;
import com.sina.weibo.sdk.auth.AuthInfo;
import com.sina.weibo.sdk.auth.Oauth2AccessToken;
import com.sina.weibo.sdk.auth.WeiboAuthListener;
import com.sina.weibo.sdk.auth.sso.SsoHandler;
import com.sina.weibo.sdk.exception.WeiboException;
import com.ustc.dystu.dandelion.atk.AccessTokenKeeper;
import com.ustc.dystu.dandelion.constant.Constants;
import com.ustc.dystu.dandelion.utils.Logger;
import com.ustc.dystu.dandelion.utils.SharePrefUtils;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.internal.widget.AppCompatPopupWindow;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
*
* APP_ID:3a0bf7dd24f36940eecb5a2f2a48c82f
*
*
* @author Administrator
*
*/
public class SplashActivity extends Activity {
private static final String TAG = "SplashActivity";
private AuthInfo mAuthInfo;
private Oauth2AccessToken mAccessToken;
private SsoHandler mSsoHandler;
private Button btnLogin;
private EditText etTest;
private Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish();
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
AppConnect.getInstance("3a0bf7dd24f36940eecb5a2f2a48c82f", "baidu", this);
btnLogin = (Button) findViewById(R.id.btn_login);
etTest = (EditText) findViewById(R.id.editText1);
mAuthInfo = new AuthInfo(this, Constants.APP_KEY,
Constants.REDIRECT_URL, Constants.SCOPE);
mSsoHandler = new SsoHandler(SplashActivity.this, mAuthInfo);
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mSsoHandler.authorize(new AuthDialogListener());
}
});
mAccessToken = AccessTokenKeeper.readAccessToken(this);
if (mAccessToken.isSessionValid()) {
String date = new java.text.SimpleDateFormat("yyyy/MM/dd hh:mm:ss")
.format(new java.util.Date(mAccessToken.getExpiresTime()));
btnLogin.setVisibility(View.GONE);
mHandler.sendEmptyMessageDelayed(0, 1000);
} else {
btnLogin.setVisibility(View.VISIBLE);
Animation alphaAnimation = AnimationUtils.loadAnimation(this,
R.anim.anim_alpha2);
btnLogin.startAnimation(alphaAnimation);
}
}
class AuthDialogListener implements WeiboAuthListener {
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
String uid = values.getString("uid");
Logger.d(TAG, "weibo uid-->" + uid);
String myuid = etTest.getText().toString();
if (!TextUtils.isEmpty(myuid)) {
SharePrefUtils.setUid(SplashActivity.this, myuid);
} else {
SharePrefUtils.setUid(SplashActivity.this, uid);
}
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
.format(new java.util.Date(mAccessToken
.getExpiresTime()));
AccessTokenKeeper.writeAccessToken(SplashActivity.this,
mAccessToken);
startActivity(new Intent(SplashActivity.this,
MainActivity.class));
Toast.makeText(SplashActivity.this, "认证成功", Toast.LENGTH_SHORT)
.show();
finish();
}
}
@Override
public void onWeiboException(WeiboException arg0) {
Toast.makeText(getApplicationContext(),
"Auth exception : " + arg0.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
}