VegeFruits v7.1版本的 MD5 值为:2ff167dfba698c783e879938fe00b9ce
以下内容为反编译后的 MyUnityActivity.java 源代码,内容仅作参考
package net.cleverbit.vkplugin;
import android.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.amazon.android.Kiwi;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
import com.vk.sdk.VKAccessToken;
import com.vk.sdk.VKCaptchaDialog;
import com.vk.sdk.VKSdk;
import com.vk.sdk.VKSdkListener;
import com.vk.sdk.VKUIHelper;
import com.vk.sdk.api.VKApi;
import com.vk.sdk.api.VKApiConst;
import com.vk.sdk.api.VKError;
import com.vk.sdk.api.VKParameters;
import com.vk.sdk.api.VKRequest;
import com.vk.sdk.api.VKResponse;
import com.vk.sdk.api.model.VKApiPhoto;
import com.vk.sdk.api.model.VKAttachments;
import com.vk.sdk.api.model.VKPhotoArray;
import com.vk.sdk.api.model.VKWallPostResult;
import com.vk.sdk.util.VKUtil;
import java.io.File;
import java.io.IOException;
public class MyUnityActivity extends UnityPlayerActivity {
Runnable immersiveRunnable;
private static final String[] sMyScope = {"wall", "photos", "nohttps"};
static int counter = 0;
private Boolean _immersiveOn = false;
private boolean isVkInitialized = false;
private String callBackGameObjectName = "Main Camera";
private VKRequest currentRequest = null;
private boolean isCancelled = false;
ProgressDialog pd = null;
private final VKSdkListener sdkListener = new VKSdkListener() {
@Override
public void onCaptchaError(VKError captchaError) {
ActivityCaptchaDialog.show(VKUIHelper.getTopActivity(), captchaError);
}
@Override
public void onTokenExpired(VKAccessToken expiredToken) {
VKSdk.authorize(MyUnityActivity.sMyScope);
MyUnityActivity.this.RefreshStatus();
}
@Override
public void onAccessDenied(VKError authorizationError) {
MyUnityActivity.this.RefreshStatus();
new AlertDialog.Builder(MyUnityActivity.this).setMessage(authorizationError.errorMessage).show();
}
@Override
public void onReceiveNewToken(VKAccessToken newToken) {
MyUnityActivity.this.RefreshStatus();
}
@Override
public void onAcceptUserToken(VKAccessToken token) {
MyUnityActivity.this.RefreshStatus();
}
};
@Override
public void onCreate(Bundle icicle) {
Kiwi.onCreate((Activity) this, false);
Log.d("DIS", "MyUnityActivity.onCreate");
super.onCreate(icicle);
this.immersiveRunnable = new Runnable() {
@Override
public void run() {
if (!MyUnityActivity.this._immersiveOn.booleanValue()) {
return;
}
MyUnityActivity.this._GoImmersiveMode(true);
}
};
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && this._immersiveOn.booleanValue()) {
_GoImmersiveMode(true);
}
}
public Boolean IsKitKat() {
int SDK_INT = Build.VERSION.SDK_INT;
return SDK_INT >= 19;
}
public void _GoImmersiveMode(Boolean immersiveOn) {
if (IsKitKat().booleanValue()) {
Log.d("DIS", "MyUnityActivity.GoImmersiveMode: " + immersiveOn);
this._immersiveOn = immersiveOn;
View mDecorView = getWindow().getDecorView();
if (immersiveOn.booleanValue()) {
mDecorView.setSystemUiVisibility(5894);
} else {
mDecorView.setSystemUiVisibility(1792);
}
}
}
public void GoImmersiveMode(final boolean immersiveOn) {
if (IsKitKat().booleanValue()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
MyUnityActivity.this._GoImmersiveMode(Boolean.valueOf(immersiveOn));
}
});
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (this._immersiveOn.booleanValue() && (keyCode == 25 || keyCode == 24)) {
Log.d("DIS", "onKeyDown(VOLUME_BUTTON) -> Immersive!");
getWindow().getDecorView().postDelayed(this.immersiveRunnable, 500L);
}
return super.onKeyDown(keyCode, event);
}
public void VK_Initialize(String vkAppId, String callBackGameObjectName) {
String[] fingerprint = VKUtil.getCertificateFingerprint(this, getPackageName());
Log.d("Fingerprint", fingerprint[0]);
Log.d("DIS", "VK_Initialize: " + vkAppId + " GO:" + callBackGameObjectName);
this.callBackGameObjectName = callBackGameObjectName;
if (!this.isVkInitialized) {
VKUIHelper.onCreate(this);
VKSdk.initialize(this.sdkListener, vkAppId);
this.isVkInitialized = true;
Log.d("DIS", "Initialized");
}
VKSdk.wakeUpSession();
RefreshStatus();
}
public void VK_Login(boolean forceOAuth) {
Log.d("DIS", "VK_Login: " + forceOAuth);
try {
VKSdk.authorize(sMyScope, true, forceOAuth);
} catch (Exception e) {
showError("LOGIN ERROR:" + e.getMessage());
e.printStackTrace();
}
RefreshStatus();
}
public void VK_Logout() {
Log.d("DIS", "VK_Logout");
VKSdk.logout();
RefreshStatus();
}
public void VK_UploadPhotoToWall(final String msg, String imgFileName) {
Log.d("DIS", "UploadPhotoToWall, File:" + imgFileName);
this.isCancelled = false;
File image = new File(imgFileName);
VKRequest request = VKApi.uploadWallPhotoRequest(image, 0L, 0);
SetRequest(request);
request.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
MyUnityActivity.this.SetRequest(null);
Log.d("DIS", "onComplete(VKResponse response)");
if (!MyUnityActivity.this.isCancelled) {
VKApiPhoto photoModel = ((VKPhotoArray) response.parsedModel).get(0);
MyUnityActivity.this.makePost(new VKAttachments(photoModel), msg);
}
}
@Override
public void onError(VKError error) {
MyUnityActivity.this.SetRequest(null);
MyUnityActivity.this.showError(error);
}
});
}
public void VK_WallPostAward(String wallMessage, String imgFileName) {
VK_WallPostAward(wallMessage, imgFileName, "");
}
public void VK_WallPostAward(final String wallMessage, String imgFileName, String progressMessage) {
Log.d("DIS", "UploadPhotoToWall, File:" + imgFileName);
this.isCancelled = false;
if (!progressMessage.isEmpty()) {
ShowProgressDialog(progressMessage);
}
File image = new File(imgFileName);
VKRequest request = VKApi.uploadWallPhotoRequest(image, 0L, 0);
SetRequest(request);
request.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
MyUnityActivity.this.SetRequest(null);
Log.d("DIS", "onComplete(VKResponse response)");
if (!MyUnityActivity.this.isCancelled) {
VKApiPhoto photoModel = ((VKPhotoArray) response.parsedModel).get(0);
MyUnityActivity.this.makePost(new VKAttachments(photoModel), wallMessage);
}
}
@Override
public void onError(VKError error) {
MyUnityActivity.this.SetRequest(null);
MyUnityActivity.this.HideProgressDialog();
MyUnityActivity.this.showError(error);
}
});
}
public void VK_WallPost(String message) {
makePost(null, message);
}
public boolean VK_isLoggedIn() {
return VKSdk.isLoggedIn();
}
public boolean VK_isRequestInProgress() {
return this.currentRequest != null;
}
public void VK_CancelRequest() {
if (this.currentRequest != null) {
Log.d("DIS", "VK_CancelRequest()");
try {
this.currentRequest.cancel();
} catch (Exception e) {
Log.d("DIS", "VK_CancelRequest() ERROR:" + e.getMessage());
e.printStackTrace();
}
}
}
public void VK_InputDialog(final String captionText, final String inputText, final String inputHint, final String buttonOkMessage, final String buttonCancelMessage) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("DIS", "VK_AlertDialog() RUN");
MyUnityActivity.this._VK_InputDialog(captionText, inputText, inputHint, buttonOkMessage, buttonCancelMessage);
}
});
}
public void _VK_InputDialog(String captionText, String inputText, String inputHint, final String buttonOkMessage, final String buttonCancelMessage) {
Log.d("DIS", "_VK_InputDialog() + " + inputText);
AlertDialog.Builder alert = new AlertDialog.Builder(this, 5);
alert.setMessage(captionText);
alert.setCancelable(false);
final EditText input = new EditText(this);
input.setSingleLine();
input.setImeOptions(268435456);
input.setText(inputText);
input.setHint(inputHint);
input.setRawInputType(8192);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
Log.d("DIS", "inputText : " + value);
UnityPlayer.UnitySendMessage(MyUnityActivity.this.callBackGameObjectName, buttonOkMessage, value);
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String value = input.getText().toString();
UnityPlayer.UnitySendMessage(MyUnityActivity.this.callBackGameObjectName, buttonCancelMessage, value);
}
});
AlertDialog dialog = alert.show();
final Button ok = dialog.getButton(-1);
ok.setEnabled(input.getText().toString().trim().equals("") ? false : true);
input.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
ok.setEnabled(!input.getText().toString().trim().equals(""));
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
});
}
public void ShowMessage(String header, String message, boolean cancelable) {
final AlertDialog.Builder alert = new AlertDialog.Builder(this, 3);
if (!header.isEmpty()) {
alert.setTitle(header);
}
alert.setMessage(message);
alert.setCancelable(cancelable);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
Log.d("DIS", "ShowMessage OK");
}
});
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("DIS", "ShowMessage() RUN");
alert.show();
}
});
}
public void ShowToastMessage(final String message) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MyUnityActivity.this.getApplicationContext(), message, 0).show();
}
});
}
public void ShowProgressDialog(final String message) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("DIS", "VK_AlertDialog() RUN");
MyUnityActivity.this.__ShowProgressDialog(message);
}
});
}
public void __ShowProgressDialog(String message) {
if (this.pd == null) {
this.pd = new ProgressDialog(this, 5);
this.pd.setMessage(message);
this.pd.setCancelable(false);
this.pd.setButton(-1, getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyUnityActivity.this.VK_CancelRequest();
MyUnityActivity.this.HideProgressDialog();
}
});
this.pd.show();
return;
}
Log.d("DIS", "ERROR: pd != null");
}
public void HideProgressDialog() {
if (this.pd != null) {
Log.d("DIS", "HideProgressDialog()");
this.pd.dismiss();
this.pd = null;
}
}
protected void RefreshStatus() {
Log.d("DIS", "RefreshStatus(), Connected:" + VKSdk.isLoggedIn() + " Work:" + VK_isRequestInProgress());
UnityPlayer.UnitySendMessage(this.callBackGameObjectName, "onVkRefreshStatus", "");
}
protected void SetRequest(VKRequest request) {
Log.d("DIS", "SetRequest(" + (request != null) + ")");
this.currentRequest = request;
RefreshStatus();
}
private Bitmap getPhoto() {
try {
Bitmap b = BitmapFactory.decodeStream(getAssets().open("android.jpg"));
return b;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public void makePost(VKAttachments attachments, String message) {
Log.d("DIS", "makePost");
this.isCancelled = false;
VKRequest post = VKApi.wall().post(VKParameters.from(VKApiConst.ATTACHMENTS, attachments, "message", message, VKApiConst.FRIENDS_ONLY, "0"));
post.setModelClass(VKWallPostResult.class);
SetRequest(post);
post.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
Log.d("DIS", "onComplete(VKResponse response)");
MyUnityActivity.this.SetRequest(null);
super.onComplete(response);
MyUnityActivity.this.HideProgressDialog();
UnityPlayer.UnitySendMessage(MyUnityActivity.this.callBackGameObjectName, "onVkSuccess", "");
}
@Override
public void onError(VKError error) {
MyUnityActivity.this.SetRequest(null);
MyUnityActivity.this.HideProgressDialog();
MyUnityActivity myUnityActivity = MyUnityActivity.this;
if (error.apiError != null) {
error = error.apiError;
}
myUnityActivity.showError(error);
UnityPlayer.UnitySendMessage(MyUnityActivity.this.callBackGameObjectName, "onVkError", "");
}
});
}
public void showError(VKError error) {
Log.d("DIS", "showError:" + error.errorMessage);
String msg = error.errorMessage == null ? "Unknown error" : error.errorMessage;
new AlertDialog.Builder(this).setMessage(msg).setPositiveButton("OK", (DialogInterface.OnClickListener) null).show();
if (error.httpError != null) {
Log.w("Test", "Error in request or upload", error.httpError);
}
}
private void showError(final String errorMessage) {
runOnUiThread(new Runnable() {
@Override
public void run() {
MyUnityActivity.this._showError(errorMessage);
}
});
}
public void _showError(String errorMessage) {
Log.d("DIS", "showError:" + errorMessage);
String msg = errorMessage == null ? "Unknown error" : errorMessage;
new AlertDialog.Builder(this).setMessage(msg).setPositiveButton("OK", (DialogInterface.OnClickListener) null).show();
}
@Override
public void onResume() {
Kiwi.onResume(this);
Log.d("DIS", "MyUnityActivity.onResume()");
super.onResume();
VKUIHelper.onResume(this);
}
@Override
public void onDestroy() {
Kiwi.onDestroy(this);
Log.d("DIS", "MyUnityActivity.onDestroy()");
super.onDestroy();
VKUIHelper.onDestroy(this);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (Kiwi.onActivityResult(this, requestCode, resultCode, data)) {
return;
}
Log.d("DIS", "MyUnityActivity.onActivityResult() = " + resultCode);
super.onActivityResult(requestCode, resultCode, data);
VKUIHelper.onActivityResult(requestCode, resultCode, data);
}
public int ReturnInt() {
Log.d("DIS", "MyUnityActivity.ReturnInt()");
VKError captchaError = new VKError(VKError.VK_API_ERROR);
captchaError.captchaImg = "http://sakhscape.ru/zp-core/zp-extensions/zpCaptcha/c.php?i=65368ce2";
new VKCaptchaDialog(captchaError).show();
int i = counter;
counter = i + 1;
return i + 1000;
}
public int StartActivity2() {
Log.d("DIS", "Starting Activity2");
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("DIS", "VK_AlertDialog() RUN");
MyUnityActivity.this.ShowProgressDialog("Проверка диалога");
}
});
int i = counter;
counter = i + 1;
return i + 1000;
}
}