package com.yang.sharelogin.platform.weibo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import com.yang.sharelogin.TPManager;
import com.yang.sharelogin.bean.Config;
import com.yang.sharelogin.bean.WBShareContent;
import com.yang.sharelogin.listener.StateListener;
/**
* Created by lujun on 2015/9/6.
*/
public class WBManager {
private Context mContext;
private Intent mIntent;
private StateListener<String> mListener;
private ReceiveBroadCast mReceiveBroadCast;
public WBManager(Context context){
mContext = context;
mIntent = new Intent(mContext, AssistActivity.class);
mIntent.putExtra(Config.KEY_OF_APPID, TPManager.getInstance().getWBAppId());
mIntent.putExtra(Config.KEY_OF_APPSECRET, TPManager.getInstance().getWBAppSecret());
mIntent.putExtra(Config.KEY_OF_REDIRECT_URL, TPManager.getInstance().getWBRedirectUrl());
mReceiveBroadCast = new ReceiveBroadCast();
}
/**
* 微博三方登录
*/
public void onLoginWithWB(){
mIntent.putExtra(Config.KEY_OF_TYPE, Config.LOGIN_TYPE);
mIntent.putExtra(Config.KEY_OF_BUNDLE, new Bundle());
mContext.registerReceiver(mReceiveBroadCast, new IntentFilter(Config.KEY_OF_WB_BCR_ACTION));
mContext.startActivity(mIntent);
}
/**
* 取消微博授权
*/
public void onLoginOut(){
//TODO 取消授权
}
/**
* 微博分享
* @param content
*/
public void share(WBShareContent content){
mIntent.putExtra(Config.KEY_OF_TYPE, Config.SHARE_TYPE);
if (content.getBundle().getInt("share_method") == WBShareContent.API_SHARE){
mIntent.putExtra(Config.KEY_OF_TYPE, Config.LOGIN_TYPE);
}
mIntent.putExtra(Config.KEY_OF_BUNDLE, content.getBundle());
mContext.registerReceiver(mReceiveBroadCast, new IntentFilter(Config.KEY_OF_WB_BCR_ACTION));
mContext.startActivity(mIntent);
}
/**
* 设置登录callback
* @param listener
*/
public void setListener(StateListener<String> listener){
this.mListener = listener;
}
/**
* 接受WB授权回调得到的用户信息
*/
private class ReceiveBroadCast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (mListener != null){
mListener.onComplete(intent.getStringExtra(Config.KEY_OF_WB_BCR));
mContext.unregisterReceiver(mReceiveBroadCast);
}
}
}
}