package com.encore.actionnow; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.View; import android.widget.Button; import com.elbbbird.android.socialsdk.SocialSDK; import com.elbbbird.android.socialsdk.model.SocialToken; import com.elbbbird.android.socialsdk.model.SocialUser; import com.elbbbird.android.socialsdk.otto.BusProvider; import com.elbbbird.android.socialsdk.otto.SSOBusEvent; import com.encore.actionnow.app.BaseActivity; import com.squareup.otto.Subscribe; import com.tencent.connect.common.Constants; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; public class SsoActivity extends BaseActivity { private static final String TAG = "SsoActivity"; @Bind(R.id.sso_btn_login_qq) Button btnLoginQQ; @Bind(R.id.sso_btn_logout_qq) Button btnLogoutQQ; @Bind(R.id.sso_btn_login_wechat) Button btnLoginWeChat; @Bind(R.id.sso_btn_logout_wechat) Button btnLogoutWeChat; @Bind(R.id.sso_btn_login_weibo) Button btnLoginWeibo; @Bind(R.id.sso_btn_logout_weibo) Button btnLogoutWeibo; @OnClick({R.id.sso_btn_login_qq, R.id.sso_btn_login_wechat, R.id.sso_btn_login_weibo}) public void login(View view) { switch (view.getId()) { case R.id.sso_btn_login_weibo: SocialSDK.setDebugMode(true); SocialSDK.initWeibo("1633462674"); SocialSDK.oauthWeibo(SsoActivity.this); break; case R.id.sso_btn_login_wechat: SocialSDK.setDebugMode(true); SocialSDK.initWeChat("wx3ecc7ffe590fd845", "1b3f07fa99d82232d360c359f6504980"); SocialSDK.oauthWeChat(SsoActivity.this); break; case R.id.sso_btn_login_qq: SocialSDK.setDebugMode(true); SocialSDK.initQQ("1104664609"); SocialSDK.oauthQQ(SsoActivity.this); break; } } @OnClick({R.id.sso_btn_logout_qq, R.id.sso_btn_logout_wechat, R.id.sso_btn_logout_weibo}) public void logout(View view) { switch (view.getId()) { case R.id.sso_btn_logout_weibo: SocialSDK.revokeWeibo(SsoActivity.this); break; case R.id.sso_btn_logout_wechat: SocialSDK.revokeWeChat(SsoActivity.this); break; case R.id.sso_btn_logout_qq: SocialSDK.revokeQQ(SsoActivity.this); break; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sso); ButterKnife.bind(this); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); getSupportActionBar().setDisplayHomeAsUpEnabled(true); /**************************************************/ BusProvider.getInstance().register(this); /**************************************************/ } @Subscribe public void onOauthResult(SSOBusEvent event) { switch (event.getType()) { case SSOBusEvent.TYPE_GET_TOKEN: SocialToken token = event.getToken(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_GET_TOKEN " + token.toString()); break; case SSOBusEvent.TYPE_GET_USER: SocialUser user = event.getUser(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_GET_USER " + user.toString()); break; case SSOBusEvent.TYPE_FAILURE: Exception e = event.getException(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_FAILURE " + e.toString()); break; case SSOBusEvent.TYPE_CANCEL: Log.i(TAG, "onOauthResult#BusEvent.TYPE_CANCEL"); break; } } @Override protected void onDestroy() { /*********************************************/ BusProvider.getInstance().unregister(this); /*********************************************/ super.onDestroy(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); SocialSDK.oauthWeiboCallback(SsoActivity.this, requestCode, resultCode, data); if (requestCode == Constants.REQUEST_LOGIN || requestCode == Constants.REQUEST_APPBAR) { SocialSDK.oauthQQCallback(requestCode, resultCode, data); } } }