萝莉来了 v1.2.1版本的 MD5 值为:6055c21e001561c5b114d0da5b392fcb
以下内容为反编译后的 Weibo.java 源代码,内容仅作参考
package com.weibo.sdk.android;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.webkit.CookieSyncManager;
import cn.cmgame.sdk.e.f;
import com.weibo.sdk.android.util.Utility;
import joy.sdk.JoyNetworkManager;
public class Weibo {
public static final String KEY_EXPIRES = "expires_in";
public static final String KEY_REFRESHTOKEN = "refresh_token";
public static final String KEY_TOKEN = "access_token";
public Oauth2AccessToken accessToken = null;
public static String URL_OAUTH2_ACCESS_AUTHORIZE = "https://open.weibo.cn/oauth2/authorize";
private static Weibo mWeiboInstance = null;
public static String app_key = "";
public static String redirecturl = "";
public static boolean isWifi = false;
public static synchronized Weibo getInstance(String appKey, String redirectUrl) {
Weibo weibo;
synchronized (Weibo.class) {
if (mWeiboInstance == null) {
mWeiboInstance = new Weibo();
}
app_key = appKey;
redirecturl = redirectUrl;
weibo = mWeiboInstance;
}
return weibo;
}
public void setupConsumerConfig(String appKey, String redirectUrl) {
app_key = appKey;
redirecturl = redirectUrl;
}
public void authorize(Context context, WeiboAuthListener listener) {
isWifi = Utility.isWifi(context);
startAuthDialog(context, listener);
}
public void startAuthDialog(Context context, final WeiboAuthListener listener) {
WeiboParameters params = new WeiboParameters();
startDialog(context, params, new WeiboAuthListener() {
@Override
public void onComplete(Bundle values) {
CookieSyncManager.getInstance().sync();
if (Weibo.this.accessToken == null) {
Weibo.this.accessToken = new Oauth2AccessToken();
}
Weibo.this.accessToken.setToken(values.getString(Weibo.KEY_TOKEN));
Weibo.this.accessToken.setExpiresIn(values.getString(Weibo.KEY_EXPIRES));
Weibo.this.accessToken.setRefreshToken(values.getString(Weibo.KEY_REFRESHTOKEN));
if (Weibo.this.accessToken.isSessionValid()) {
Log.d("Weibo-authorize", "Login Success! access_token=" + Weibo.this.accessToken.getToken() + " expires=" + Weibo.this.accessToken.getExpiresTime() + " refresh_token=" + Weibo.this.accessToken.getRefreshToken());
listener.onComplete(values);
} else {
Log.d("Weibo-authorize", "Failed to receive access token");
listener.onWeiboException(new WeiboException("Failed to receive access token."));
}
}
@Override
public void onError(WeiboDialogError error) {
Log.d("Weibo-authorize", "Login failed: " + error);
listener.onError(error);
}
@Override
public void onWeiboException(WeiboException error) {
Log.d("Weibo-authorize", "Login failed: " + error);
listener.onWeiboException(error);
}
@Override
public void onCancel() {
Log.d("Weibo-authorize", "Login canceled");
listener.onCancel();
}
});
}
public void startDialog(Context context, WeiboParameters parameters, WeiboAuthListener listener) {
parameters.add("client_id", app_key);
parameters.add("response_type", f.gR);
parameters.add("redirect_uri", redirecturl);
parameters.add("display", JoyNetworkManager.MOBILE);
if (this.accessToken != null && this.accessToken.isSessionValid()) {
parameters.add(KEY_TOKEN, this.accessToken.getToken());
}
String url = String.valueOf(URL_OAUTH2_ACCESS_AUTHORIZE) + "?" + Utility.encodeUrl(parameters);
if (context.checkCallingOrSelfPermission("android.permission.INTERNET") != 0) {
Utility.showAlert(context, "Error", "Application requires permission to access the Internet");
} else {
new WeiboDialog(context, url, listener).show();
}
}
}