导航菜单

页面标题

页面副标题

Jurassic World v1.83.4 - FacebookWrapper.java 源代码

正在查看: Jurassic World v1.83.4 应用的 FacebookWrapper.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.ludia.framework.facebook;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.facebook.share.Sharer;
import com.facebook.share.model.GameRequestContent;
import com.facebook.share.model.ShareLinkContent;
import com.facebook.share.widget.GameRequestDialog;
import com.facebook.share.widget.ShareDialog;
import com.helpshift.HelpshiftEvent;
import com.ludia.engine.application.ActivityManager;
import com.ludia.engine.application.Application;
import com.ludia.engine.application.IActivityResultCallback;
import com.ludia.engine.application.IActivityStateListener;
import com.ludia.framework.network.RestCallback;
import com.ludia.framework.network.RestRequest;
import com.ludia.framework.network.RestResult;
import java.util.Arrays;

public class FacebookWrapper implements IActivityResultCallback, IActivityStateListener {
    private static final String CANCEL_STRING = "cancel_callback";
    private static final int ENABLE_ADVERTISER_ID_COLLECTION = 2;
    private static final int ENABLE_AUTO_LOG_EVENTS = 1;
    private static final int ENABLE_LIMITED_DATA_USAGE = 8;
    private static final String ERROR_STRING = "error_callback";
    private static final int FACEBOOK_REQUEST_APP_ID = 64210;
    private static final int FACEBOOK_REQUEST_LOGIN_ID = 64206;
    private static final int FACEBOOK_SHARE_APP_ID = 64207;
    private static final int REQUEST_TIMEOUT = 30000;
    private static final String SUCCESS_STRING = "success_callback";
    private final String m_appId;
    private CallbackManager m_callbackManager;

    public native String getFacebookVersion();

    @Override
    public void onDestroy() {
    }

    public native void onFacebookAuthorizeComplete(String str, String str2);

    public native void onFacebookNewPermissionComplete(int i, String[] strArr);

    public native void onFacebookRequestComplete(int i, String str);

    @Override
    public void onPause() {
    }

    @Override
    public void onRecreate() {
    }

    @Override
    public void onRestart() {
    }

    @Override
    public void onResume() {
    }

    @Override
    public void onStart() {
    }

    @Override
    public void onStop() {
    }

    public FacebookWrapper(String str, int i) {
        Application.trace("FacebookWrapper ctr.", new Object[0]);
        ActivityManager.addActivityStateListener(this);
        setAutoLogAppEventsEnabled((i & 1) == 1);
        setAdvertiserIDCollectionEnabled((i & 2) == 1);
        setLimitedDataUseEnabled((i & 8) == 1, 0, 0);
        try {
            AccessToken.refreshCurrentAccessTokenAsync();
        } catch (FacebookException e) {
            Application.trace("FacebookWrapper: AccessToken error = " + e.getMessage(), new Object[0]);
            Application.trace("FacebookWrapper: Ensure a valid \"com.facebook.sdk.ClientToken\" meta-data is present in the AndroidManifest.xml", new Object[0]);
        }
        this.m_appId = str;
        this.m_callbackManager = CallbackManager.Factory.create();
    }

    public void setAutoLogAppEventsEnabled(boolean z) {
        FacebookSdk.setAutoLogAppEventsEnabled(z);
    }

    public void setAdvertiserIDCollectionEnabled(boolean z) {
        FacebookSdk.setAdvertiserIDCollectionEnabled(z);
    }

    public void setLimitedDataUseEnabled(boolean z, int i, int i2) {
        if (z) {
            FacebookSdk.setDataProcessingOptions(new String[]{"LDU"}, i, i2);
        } else {
            FacebookSdk.setDataProcessingOptions(new String[0]);
        }
    }

    public void login(final String[] strArr) {
        Application.trace("FacebookWrapper login. Application id = " + this.m_appId, new Object[0]);
        if (AccessToken.getCurrentAccessToken() == null) {
            facebookLoginWithPermissions(strArr);
        } else {
            RestRequest.httpGet("https://graph.facebook.com" + getFacebookVersion() + "me?access_token=" + AccessToken.getCurrentAccessToken().getToken(), new RestCallback() {
                @Override
                public void onFinished(RestResult restResult) {
                    if (restResult.httpStatus != 200) {
                        FacebookWrapper.this.logout();
                        FacebookWrapper.this.facebookLoginWithPermissions(strArr);
                    } else if (AccessToken.getCurrentAccessToken() == null || AccessToken.getCurrentAccessToken().isDataAccessExpired()) {
                        FacebookWrapper.this.logout();
                        FacebookWrapper.this.facebookReauthorizeDataAccess();
                    } else {
                        FacebookWrapper.this.onFacebookAuthorizeComplete(AccessToken.getCurrentAccessToken().getToken(), FacebookWrapper.SUCCESS_STRING);
                    }
                }
            });
        }
    }

    private void facebookLoginRegisterCallback() {
        ActivityManager.getActivity().addActivityResultCallback(FACEBOOK_REQUEST_LOGIN_ID, this);
        LoginManager.getInstance().registerCallback(this.m_callbackManager, new FacebookCallback<LoginResult>() {
            public void onSuccess(LoginResult loginResult) {
                Application.trace("FacebookWrapper: login OK", new Object[0]);
                FacebookWrapper.this.onFacebookAuthorizeComplete(AccessToken.getCurrentAccessToken().getToken(), FacebookWrapper.SUCCESS_STRING);
            }

            public void onCancel() {
                Application.trace("FacebookWrapper: login CANCELED", new Object[0]);
                FacebookWrapper.this.onFacebookAuthorizeComplete("", FacebookWrapper.CANCEL_STRING);
            }

            public void onError(FacebookException facebookException) {
                Application.trace("FacebookWrapper: login ERROR = " + facebookException.toString() + Arrays.toString(facebookException.getStackTrace()) + facebookException.getMessage(), new Object[0]);
                FacebookWrapper.this.logout();
                FacebookWrapper.this.onFacebookAuthorizeComplete("", FacebookWrapper.ERROR_STRING);
            }
        });
    }

    public void facebookLoginWithPermissions(String[] strArr) {
        Application.trace("FacebookWrapper: facebookLoginWithPermissions", new Object[0]);
        facebookLoginRegisterCallback();
        LoginManager.getInstance().logInWithReadPermissions(ActivityManager.getActivity(), Arrays.asList(strArr));
    }

    public void facebookReauthorizeDataAccess() {
        Application.trace("FacebookWrapper: facebookReauthorizeDataAccess", new Object[0]);
        facebookLoginRegisterCallback();
        LoginManager.getInstance().reauthorizeDataAccess(ActivityManager.getActivity());
    }

    public void newPermissions(final int i, String[] strArr, boolean z) {
        Application.trace("FacebookWrapper : newPermissions with id =" + i, new Object[0]);
        ActivityManager.getActivity().addActivityResultCallback(FACEBOOK_REQUEST_LOGIN_ID, this);
        LoginManager.getInstance().registerCallback(this.m_callbackManager, new FacebookCallback<LoginResult>() {
            public void onSuccess(LoginResult loginResult) {
                FacebookWrapper facebookWrapper = FacebookWrapper.this;
                facebookWrapper.onFacebookNewPermissionComplete(i, facebookWrapper.getCurrentPermissionsArray());
            }

            public void onCancel() {
                Application.trace("FacebookWrapper: newPermissions cancel", new Object[0]);
                FacebookWrapper facebookWrapper = FacebookWrapper.this;
                facebookWrapper.onFacebookNewPermissionComplete(i, facebookWrapper.getCurrentPermissionsArray());
            }

            public void onError(FacebookException facebookException) {
                Application.trace("FacebookWrapper: newPermissions error = " + facebookException.toString() + Arrays.toString(facebookException.getStackTrace()) + facebookException.getMessage(), new Object[0]);
                FacebookWrapper facebookWrapper = FacebookWrapper.this;
                facebookWrapper.onFacebookNewPermissionComplete(i, facebookWrapper.getCurrentPermissionsArray());
            }
        });
        if (z) {
            LoginManager.getInstance().logInWithReadPermissions(ActivityManager.getActivity(), Arrays.asList(strArr));
        } else {
            LoginManager.getInstance().logInWithPublishPermissions(ActivityManager.getActivity(), Arrays.asList(strArr));
        }
    }

    public void executeRequest(final int i, String str) {
        RestRequest.httpGet(str, new RestCallback() {
            @Override
            public void onFinished(RestResult restResult) {
                if (restResult.httpStatus == 200) {
                    FacebookWrapper.this.onFacebookRequestComplete(i, restResult.content);
                } else {
                    FacebookWrapper.this.onFacebookRequestComplete(i, "{");
                }
            }
        });
    }

    public void publishStreamDialog(final int i, Bundle bundle) {
        Application.trace("FacebookWrapper: publishStreamDialogRequest params = " + bundle.toString(), new Object[0]);
        if (isSessionOpened()) {
            ShareDialog shareDialog = new ShareDialog(ActivityManager.getActivity());
            if (ShareDialog.canShow(ShareLinkContent.class)) {
                ShareLinkContent build = new ShareLinkContent.Builder().setContentUrl(Uri.parse(bundle.getString(HelpshiftEvent.DATA_ACTION_TYPE_LINK))).build();
                ActivityManager.getActivity().addActivityResultCallback(FACEBOOK_SHARE_APP_ID, this);
                shareDialog.registerCallback(this.m_callbackManager, new FacebookCallback<Sharer.Result>() {
                    public void onSuccess(Sharer.Result result) {
                        Application.trace("FacebookWrapper: publishStreamDialog success", new Object[0]);
                        FacebookWrapper.this.onFacebookRequestComplete(i, FacebookWrapper.SUCCESS_STRING);
                    }

                    public void onCancel() {
                        Application.trace("FacebookWrapper: publishStreamDialog cancel", new Object[0]);
                        FacebookWrapper.this.onFacebookRequestComplete(i, FacebookWrapper.CANCEL_STRING);
                    }

                    public void onError(FacebookException facebookException) {
                        Application.trace("FacebookWrapper: publishStreamDialog error = " + facebookException.toString() + Arrays.toString(facebookException.getStackTrace()) + facebookException.getMessage(), new Object[0]);
                        FacebookWrapper.this.onFacebookRequestComplete(i, FacebookWrapper.ERROR_STRING);
                    }
                });
                shareDialog.show(build);
                return;
            }
            return;
        }
        Application.trace("FacebookWrapper: Session isn't opened!", new Object[0]);
        onFacebookRequestComplete(i, ERROR_STRING);
    }

    public void appRequests(final int i, Bundle bundle, String[] strArr) {
        Application.trace("FacebookWrapper: appRequests params : " + bundle.toString(), new Object[0]);
        if (isSessionOpened()) {
            GameRequestDialog gameRequestDialog = new GameRequestDialog(ActivityManager.getActivity());
            GameRequestContent build = new GameRequestContent.Builder().setMessage(bundle.getString("message")).setRecipients(Arrays.asList(strArr)).build();
            ActivityManager.getActivity().addActivityResultCallback(FACEBOOK_REQUEST_APP_ID, this);
            gameRequestDialog.registerCallback(this.m_callbackManager, new FacebookCallback<GameRequestDialog.Result>() {
                public void onSuccess(GameRequestDialog.Result result) {
                    FacebookWrapper.this.onFacebookRequestComplete(i, FacebookWrapper.SUCCESS_STRING);
                }

                public void onCancel() {
                    Application.trace("FacebookWrapper: appRequests cancel", new Object[0]);
                    FacebookWrapper.this.onFacebookRequestComplete(i, FacebookWrapper.CANCEL_STRING);
                }

                public void onError(FacebookException facebookException) {
                    Application.trace("FacebookWrapper: appRequests error = " + facebookException.toString() + Arrays.toString(facebookException.getStackTrace()) + facebookException.getMessage(), new Object[0]);
                    FacebookWrapper.this.onFacebookRequestComplete(i, FacebookWrapper.ERROR_STRING);
                }
            });
            gameRequestDialog.show(build);
            return;
        }
        Application.trace("FacebookWrapper: Session isn't opened!", new Object[0]);
        onFacebookRequestComplete(i, ERROR_STRING);
    }

    public void logout() {
        LoginManager.getInstance().logOut();
    }

    @Override
    public void onActivityResult(int i, int i2, Intent intent) {
        Application.trace("FacebookWrapper : onActivityResult requestCode: " + i + " resultCode:" + i2, new Object[0]);
        ActivityManager.getActivity().removeActivityResultCallback(i);
        this.m_callbackManager.onActivityResult(i, i2, intent);
    }

    private boolean isSessionOpened() {
        return AccessToken.getCurrentAccessToken() != null;
    }

    public String[] getCurrentPermissionsArray() {
        AccessToken currentAccessToken = AccessToken.getCurrentAccessToken();
        return (String[]) currentAccessToken.getPermissions().toArray(new String[currentAccessToken.getPermissions().size()]);
    }
}