正在查看: Jurassic World v1.83.4 应用的 FacebookWrapper.java JAVA 源代码文件
本页面展示 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()]);
}
}