嘿嘿连载.apk(点击下载) / UmengQQHandler.java


package com.umeng.qq.handler;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import com.alipay.sdk.authjs.a;
import com.meizu.cloud.pushsdk.constants.PushConstants;
import com.umeng.qq.tencent.IUiListener;
import com.umeng.qq.tencent.Tencent;
import com.umeng.qq.tencent.UiError;
import com.umeng.socialize.Config;
import com.umeng.socialize.PlatformConfig;
import com.umeng.socialize.ShareContent;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareConfig;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.bean.UmengErrorCode;
import com.umeng.socialize.common.QueuedWork;
import com.umeng.socialize.common.SocializeConstants;
import com.umeng.socialize.net.dplus.CommonNetImpl;
import com.umeng.socialize.utils.SLog;
import com.umeng.socialize.utils.SocializeUtils;
import com.umeng.socialize.utils.UmengText;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Marker;

public class UmengQQHandler extends UmengQBaseHandler {
    private final String UNIONID_PARAM = "&unionid=1";
    private final String UNIONID_REQUEST_URL = "https://graph.qq.com/oauth2.0/me?access_token=";
    private IUiListener mShareListener;
    private UmengQQPreferences qqPreferences;

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void authAndFetchUserInfo(final UMAuthListener uMAuthListener) {
        authorize(new UMAuthListener() {
            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass9 */

            @Override // com.umeng.socialize.UMAuthListener
            public void onCancel(SHARE_MEDIA share_media, int i) {
                UmengQQHandler.this.getAuthListener(uMAuthListener).onCancel(SHARE_MEDIA.QQ, 2);
            }

            @Override // com.umeng.socialize.UMAuthListener
            public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                UmengQQHandler.this.fetchUserInfo(uMAuthListener);
            }

            @Override // com.umeng.socialize.UMAuthListener
            public void onError(SHARE_MEDIA share_media, int i, Throwable th) {
                UmengQQHandler.this.getAuthListener(uMAuthListener).onError(SHARE_MEDIA.QQ, 2, th);
            }

            @Override // com.umeng.socialize.UMAuthListener
            public void onStart(SHARE_MEDIA share_media) {
            }
        });
    }

    private String convertStreamToString(InputStream inputStream) {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        StringBuilder sb = new StringBuilder();
        while (true) {
            try {
                String readLine = bufferedReader.readLine();
                if (readLine != null) {
                    sb.append(readLine + "/n");
                } else {
                    try {
                        break;
                    } catch (IOException e) {
                        SLog.error(e);
                    }
                }
            } catch (IOException e2) {
                SLog.error(e2);
                inputStream.close();
            } catch (Throwable th) {
                try {
                    inputStream.close();
                } catch (IOException e3) {
                    SLog.error(e3);
                }
                throw th;
            }
        }
        inputStream.close();
        return sb.toString();
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void fetchUserInfo(final UMAuthListener uMAuthListener) {
        QueuedWork.runInBack(new Runnable() {
            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass8 */

            public void run() {
                try {
                    JSONObject request = UmengQQHandler.this.request();
                    final HashMap hashMap = new HashMap();
                    hashMap.put("screen_name", request.optString("nickname"));
                    hashMap.put("name", request.optString("nickname"));
                    hashMap.put("gender", UmengQQHandler.this.getGender(request.optString("gender")));
                    hashMap.put("profile_image_url", request.optString("figureurl_qq_2"));
                    hashMap.put("iconurl", request.optString("figureurl_qq_2"));
                    hashMap.put("is_yellow_year_vip", request.optString("is_yellow_year_vip"));
                    hashMap.put("yellow_vip_level", request.optString("yellow_vip_level"));
                    hashMap.put("msg", request.optString("msg"));
                    hashMap.put("city", request.optString("city"));
                    hashMap.put("vip", request.optString("vip"));
                    hashMap.put("level", request.optString("level"));
                    hashMap.put("ret", request.optString("ret"));
                    hashMap.put("province", request.optString("province"));
                    hashMap.put("is_yellow_vip", request.optString("is_yellow_vip"));
                    hashMap.put("openid", UmengQQHandler.this.getuid());
                    hashMap.put("uid", UmengQQHandler.this.getuid());
                    hashMap.put("access_token", UmengQQHandler.this.getmAccessToken());
                    hashMap.put("expires_in", UmengQQHandler.this.getMtl() + "");
                    hashMap.put("accessToken", UmengQQHandler.this.getmAccessToken());
                    hashMap.put("expiration", UmengQQHandler.this.getMtl() + "");
                    hashMap.put(CommonNetImpl.UNIONID, UmengQQHandler.this.getUnionid());
                    final String str = (String) hashMap.get("ret");
                    if (TextUtils.isEmpty(str) || !str.equals(PushConstants.PUSH_TYPE_NOTIFY)) {
                        QueuedWork.runInMain(new Runnable() {
                            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass8.AnonymousClass2 */

                            public void run() {
                                if (TextUtils.isEmpty(str) || !str.equals("100030")) {
                                    AnonymousClass8 r0 = AnonymousClass8.this;
                                    UMAuthListener authListener = UmengQQHandler.this.getAuthListener(uMAuthListener);
                                    SHARE_MEDIA share_media = SHARE_MEDIA.QQ;
                                    authListener.onError(share_media, 2, new Throwable(UmengErrorCode.AuthorizeFailed.getMessage() + ((String) hashMap.get("msg"))));
                                    return;
                                }
                                UmengQQHandler.this.qqPreferencesDelete();
                                AnonymousClass8 r02 = AnonymousClass8.this;
                                UmengQQHandler.this.authAndFetchUserInfo(uMAuthListener);
                            }
                        });
                    } else {
                        QueuedWork.runInMain(new Runnable() {
                            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass8.AnonymousClass1 */

                            public void run() {
                                AnonymousClass8 r0 = AnonymousClass8.this;
                                UmengQQHandler.this.getAuthListener(uMAuthListener).onComplete(SHARE_MEDIA.QQ, 2, hashMap);
                            }
                        });
                    }
                } catch (JSONException e) {
                    QueuedWork.runInMain(new Runnable() {
                        /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass8.AnonymousClass3 */

                        public void run() {
                            AnonymousClass8 r0 = AnonymousClass8.this;
                            UMAuthListener authListener = UmengQQHandler.this.getAuthListener(uMAuthListener);
                            SHARE_MEDIA share_media = SHARE_MEDIA.QQ;
                            authListener.onError(share_media, 2, new Throwable(UmengErrorCode.RequestForUserProfileFailed.getMessage() + e.getMessage()));
                        }
                    });
                    SLog.error(e);
                }
            }
        }, false);
    }

    private String getDeviceName() {
        try {
            return URLEncoder.encode(Build.MODEL.replace(" ", Marker.ANY_NON_NULL_MARKER), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            SLog.error(e);
            return "sm801";
        }
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private long getMtl() {
        UmengQQPreferences umengQQPreferences = this.qqPreferences;
        if (umengQQPreferences != null) {
            return umengQQPreferences.getMtl();
        }
        return 0;
    }

    private IUiListener getQQAuthlistener(final UMAuthListener uMAuthListener) {
        return new IUiListener() {
            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass5 */

            @Override // com.umeng.qq.tencent.IUiListener
            public void onCancel() {
                UmengQQHandler.this.getAuthListener(uMAuthListener).onCancel(SHARE_MEDIA.QQ, 0);
            }

            @Override // com.umeng.qq.tencent.IUiListener
            public void onComplete(final Object obj) {
                SocializeUtils.safeCloseDialog(UmengQQHandler.this.mProgressDialog);
                final Bundle parseOauthData = UmengQQHandler.this.parseOauthData(obj);
                if (UmengQQHandler.this.qqPreferences == null && UmengQQHandler.this.getContext() != null) {
                    UmengQQHandler umengQQHandler = UmengQQHandler.this;
                    umengQQHandler.qqPreferences = new UmengQQPreferences(umengQQHandler.getContext(), SHARE_MEDIA.QQ.toString());
                }
                if (UmengQQHandler.this.qqPreferences != null) {
                    UmengQQHandler.this.qqPreferences.setAuthData(parseOauthData).commit();
                }
                QueuedWork.runInBack(new Runnable() {
                    /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass5.AnonymousClass1 */

                    public void run() {
                        String unionIdRequest = UmengQQHandler.this.getUnionIdRequest("https://graph.qq.com/oauth2.0/me?access_token=" + UmengQQHandler.this.getmAccessToken() + "&unionid=1");
                        if (!TextUtils.isEmpty(unionIdRequest)) {
                            try {
                                JSONObject jSONObject = new JSONObject(unionIdRequest.replace(a.c, "").replace("(", "").replace(")", ""));
                                String optString = jSONObject.optString(CommonNetImpl.UNIONID);
                                String optString2 = jSONObject.optString("openid");
                                if (UmengQQHandler.this.qqPreferences != null) {
                                    UmengQQHandler.this.qqPreferences.setmOpenid(optString2);
                                    UmengQQHandler.this.qqPreferences.setUnionid(optString);
                                    UmengQQHandler.this.qqPreferences.commit();
                                }
                                String optString3 = jSONObject.optString("error_description");
                                if (!TextUtils.isEmpty(optString3)) {
                                    SLog.E(UmengText.QQ.ERRORINFO + optString3);
                                }
                            } catch (JSONException e) {
                                SLog.error(e);
                            }
                        }
                        UmengQQHandler.this.initOpenidAndToken((JSONObject) obj);
                        final Map<String, String> bundleTomap = SocializeUtils.bundleTomap(parseOauthData);
                        bundleTomap.put(CommonNetImpl.UNIONID, UmengQQHandler.this.getUnionid());
                        QueuedWork.runInMain(new Runnable() {
                            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass5.AnonymousClass1.AnonymousClass1 */

                            public void run() {
                                AnonymousClass5 r0 = AnonymousClass5.this;
                                UmengQQHandler.this.getAuthListener(uMAuthListener).onComplete(SHARE_MEDIA.QQ, 0, bundleTomap);
                            }
                        });
                        PlatformConfig.APPIDPlatform aPPIDPlatform = UmengQQHandler.this.config;
                        if (aPPIDPlatform != null) {
                            bundleTomap.put(CommonNetImpl.AID, aPPIDPlatform.appId);
                            bundleTomap.put("as", UmengQQHandler.this.config.appkey);
                        }
                    }
                }, true);
            }

            @Override // com.umeng.qq.tencent.IUiListener
            public void onError(UiError uiError) {
                UMAuthListener authListener = UmengQQHandler.this.getAuthListener(uMAuthListener);
                SHARE_MEDIA share_media = SHARE_MEDIA.QQ;
                authListener.onError(share_media, 0, new Throwable(UmengErrorCode.AuthorizeFailed.getMessage() + "==> errorCode = " + uiError.errorCode + ", errorMsg = " + uiError.errorMessage + ", detail = " + uiError.errorDetail));
            }
        };
    }

    private IUiListener getQQSharelistener(final UMShareListener uMShareListener) {
        return new IUiListener() {
            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass4 */

            @Override // com.umeng.qq.tencent.IUiListener
            public void onCancel() {
                UmengQQHandler.this.getShareListener(uMShareListener).onCancel(SHARE_MEDIA.QQ);
            }

            @Override // com.umeng.qq.tencent.IUiListener
            public void onComplete(Object obj) {
                UmengQQHandler.this.getShareListener(uMShareListener).onResult(SHARE_MEDIA.QQ);
            }

            @Override // com.umeng.qq.tencent.IUiListener
            public void onError(final UiError uiError) {
                QueuedWork.runInMain(new Runnable() {
                    /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass4.AnonymousClass1 */

                    public void run() {
                        AnonymousClass4 r0 = AnonymousClass4.this;
                        UMShareListener shareListener = UmengQQHandler.this.getShareListener(uMShareListener);
                        SHARE_MEDIA share_media = SHARE_MEDIA.QQ;
                        StringBuilder sb = new StringBuilder();
                        sb.append(UmengErrorCode.ShareFailed.getMessage());
                        UiError uiError = uiError;
                        sb.append(uiError == null ? "" : uiError.errorMessage);
                        shareListener.onError(share_media, new Throwable(sb.toString()));
                    }
                });
            }
        };
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private String getUnionIdRequest(String str) {
        try {
            URLConnection openConnection = new URL(str).openConnection();
            if (openConnection == null) {
                return "";
            }
            openConnection.connect();
            InputStream inputStream = openConnection.getInputStream();
            return inputStream == null ? "" : convertStreamToString(inputStream);
        } catch (Exception e) {
            SLog.error(e);
            return "";
        }
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private String getUnionid() {
        UmengQQPreferences umengQQPreferences = this.qqPreferences;
        return umengQQPreferences != null ? umengQQPreferences.getUnionid() : "";
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private String getmAccessToken() {
        UmengQQPreferences umengQQPreferences = this.qqPreferences;
        return umengQQPreferences != null ? umengQQPreferences.getmAccessToken() : "";
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private String getuid() {
        UmengQQPreferences umengQQPreferences = this.qqPreferences;
        return umengQQPreferences != null ? umengQQPreferences.getuid() : "";
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void initOpenidAndToken(JSONObject jSONObject) {
        try {
            String string = jSONObject.getString("access_token");
            String string2 = jSONObject.getString("expires_in");
            String string3 = jSONObject.getString("openid");
            if (!TextUtils.isEmpty(string) && !TextUtils.isEmpty(string2) && !TextUtils.isEmpty(string3)) {
                this.mTencent.setAccessToken(string, string2);
                this.mTencent.setOpenId(string3);
            }
        } catch (Exception e) {
            SLog.error(UmengText.QQ.OPENIDANDTOKEN, e);
        }
    }

    private void loginDeal() {
        if (!isInstall()) {
            if (Config.isJumptoAppStore) {
                Intent intent = new Intent("android.intent.action.VIEW");
                intent.setData(Uri.parse(SocializeConstants.DOWN_URL_QQ));
                this.mWeakAct.get().startActivity(intent);
            }
            QueuedWork.runInMain(new Runnable() {
                /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass7 */

                public void run() {
                    UmengQQHandler umengQQHandler = UmengQQHandler.this;
                    umengQQHandler.getAuthListener(umengQQHandler.mAuthListener).onError(SHARE_MEDIA.QQ, 0, new Throwable(UmengErrorCode.NotInstall.getMessage()));
                }
            });
        } else if (this.mWeakAct.get() != null && !this.mWeakAct.get().isFinishing()) {
            this.mTencent.login(this.mWeakAct.get(), "all", getQQAuthlistener(this.mAuthListener));
        }
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void qqPreferencesDelete() {
        UmengQQPreferences umengQQPreferences = this.qqPreferences;
        if (umengQQPreferences != null) {
            umengQQPreferences.delete();
        }
    }

    private String request(String str) {
        try {
            URLConnection openConnection = new URL(str).openConnection();
            if (openConnection == null) {
                return "";
            }
            openConnection.connect();
            InputStream inputStream = openConnection.getInputStream();
            return inputStream == null ? "" : convertStreamToString(inputStream);
        } catch (Exception e) {
            SLog.error(e);
            return "";
        }
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private JSONObject request() throws JSONException {
        StringBuilder sb = new StringBuilder();
        sb.append("https://openmobile.qq.com/user/get_simple_userinfo?status_os=" + Build.VERSION.RELEASE);
        sb.append(com.alipay.sdk.sys.a.b);
        sb.append("access_token=" + getmAccessToken());
        sb.append("&oauth_consumer_key=" + this.config.appId);
        sb.append("&format=json&openid=" + getuid());
        sb.append("&status_version=" + Build.VERSION.SDK);
        sb.append("&status_machine=" + getDeviceName());
        sb.append("&pf=openmobile_android&sdkp=a&sdkv=3.1.0.lite");
        return new JSONObject(request(sb.toString()).replace("/n", ""));
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public void authorize(final UMAuthListener uMAuthListener) {
        this.mAuthListener = uMAuthListener;
        if (this.mTencent == null) {
            QueuedWork.runInMain(new Runnable() {
                /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass6 */

                public void run() {
                    UMAuthListener authListener = UmengQQHandler.this.getAuthListener(uMAuthListener);
                    SHARE_MEDIA share_media = SHARE_MEDIA.QQ;
                    authListener.onError(share_media, 0, new Throwable(UmengErrorCode.AuthorizeFailed.getMessage() + UmengText.tencentEmpty(Config.isUmengQQ.booleanValue())));
                }
            });
        }
        loginDeal();
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public void deleteAuth(final UMAuthListener uMAuthListener) {
        this.mTencent.logout();
        qqPreferencesDelete();
        QueuedWork.runInMain(new Runnable() {
            /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass10 */

            public void run() {
                UmengQQHandler.this.getAuthListener(uMAuthListener).onComplete(SHARE_MEDIA.QQ, 1, null);
            }
        });
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public void getPlatformInfo(UMAuthListener uMAuthListener) {
        if (!this.qqPreferences.isAuthValid() || getShareConfig().isNeedAuthOnGetUserInfo()) {
            authAndFetchUserInfo(uMAuthListener);
        } else {
            fetchUserInfo(uMAuthListener);
        }
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public int getRequestCode() {
        return 10103;
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public boolean isAuthorize() {
        UmengQQPreferences umengQQPreferences = this.qqPreferences;
        if (umengQQPreferences != null) {
            return umengQQPreferences.isAuthValid();
        }
        return false;
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public boolean isHasAuthListener() {
        return this.mAuthListener != null;
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public boolean isInstall() {
        return this.mTencent.isSupportSSOLogin(this.mWeakAct.get());
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public boolean isSupportAuth() {
        return true;
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public void onActivityResult(int i, int i2, Intent intent) {
        if (i == 10103) {
            Tencent.onActivityResultData(i, i2, intent, this.mShareListener);
        }
        if (i == 11101) {
            Tencent.onActivityResultData(i, i2, intent, getQQAuthlistener(this.mAuthListener));
        }
    }

    @Override // com.umeng.qq.handler.UmengQBaseHandler, com.umeng.socialize.handler.UMSSOHandler
    public void onCreate(Context context, PlatformConfig.Platform platform) {
        super.onCreate(context, platform);
        if (context != null) {
            this.qqPreferences = new UmengQQPreferences(getContext(), SHARE_MEDIA.QQ.toString());
        }
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public void release() {
        Tencent tencent = this.mTencent;
        if (tencent != null) {
            tencent.release();
        }
        this.mTencent = null;
        this.mAuthListener = null;
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public void setAuthListener(UMAuthListener uMAuthListener) {
        this.mAuthListener = uMAuthListener;
    }

    @Override // com.umeng.socialize.handler.UMSSOHandler
    public boolean share(ShareContent shareContent, final UMShareListener uMShareListener) {
        UmengQQShareContent umengQQShareContent = new UmengQQShareContent(shareContent);
        UMShareConfig uMShareConfig = this.mShareConfig;
        if (uMShareConfig != null) {
            umengQQShareContent.setCompressListener(uMShareConfig.getCompressListener());
        }
        if (this.mTencent == null) {
            QueuedWork.runInMain(new Runnable() {
                /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass1 */

                public void run() {
                    UMShareListener shareListener = UmengQQHandler.this.getShareListener(uMShareListener);
                    SHARE_MEDIA share_media = SHARE_MEDIA.QQ;
                    shareListener.onError(share_media, new Throwable(UmengErrorCode.ShareFailed.getMessage() + UmengText.tencentEmpty(Config.isUmengQQ.booleanValue())));
                }
            });
            return false;
        }
        this.mShareListener = getQQSharelistener(uMShareListener);
        if (!isInstall()) {
            if (Config.isJumptoAppStore) {
                Intent intent = new Intent("android.intent.action.VIEW");
                intent.setData(Uri.parse("http://log.umsns.com/link/qq/download/"));
                this.mWeakAct.get().startActivity(intent);
            }
            QueuedWork.runInMain(new Runnable() {
                /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass2 */

                public void run() {
                    UmengQQHandler.this.getShareListener(uMShareListener).onError(SHARE_MEDIA.QQ, new Throwable(UmengErrorCode.NotInstall.getMessage()));
                }
            });
        }
        Bundle bundle = umengQQShareContent.getBundle(getShareConfig().isHideQzoneOnQQFriendList(), getShareConfig().getAppName());
        final String string = bundle.getString("error");
        if (!TextUtils.isEmpty(string)) {
            QueuedWork.runInMain(new Runnable() {
                /* class com.umeng.qq.handler.UmengQQHandler.AnonymousClass3 */

                public void run() {
                    UmengQQHandler.this.getShareListener(uMShareListener).onError(SHARE_MEDIA.QQ, new Throwable(string));
                }
            });
            return false;
        } else if (this.mWeakAct.get() == null || this.mWeakAct.get().isFinishing()) {
            return true;
        } else {
            this.mTencent.shareToQQ(this.mWeakAct.get(), bundle, this.mShareListener);
            return true;
        }
    }
}