VegeFruits v7.1版本的 MD5 值为:2ff167dfba698c783e879938fe00b9ce
以下内容为反编译后的 MainActivity.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.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.vk.sdk.VKAccessToken;
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.api.photo.VKImageParameters;
import com.vk.sdk.api.photo.VKUploadImage;
import com.vk.sdk.util.VKUtil;
import java.io.IOException;
public class MainActivity extends Activity {
private static final String[] sMyScope = {"wall", "photos", "nohttps"};
Button btnLogin;
Button btnLogout;
Button btnWallPost;
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(MainActivity.sMyScope);
}
@Override
public void onAccessDenied(VKError authorizationError) {
new AlertDialog.Builder(MainActivity.this).setMessage(authorizationError.errorMessage).show();
}
@Override
public void onReceiveNewToken(VKAccessToken newToken) {
MainActivity.this.RefreshStatus();
}
@Override
public void onAcceptUserToken(VKAccessToken token) {
MainActivity.this.RefreshStatus();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.btnLogin = (Button) findViewById(R.id.btnLogin);
this.btnLogout = (Button) findViewById(R.id.btnLogout);
this.btnWallPost = (Button) findViewById(R.id.wallPost);
VKUIHelper.onCreate(this);
VKSdk.initialize(this.sdkListener, "4365907");
VKSdk.wakeUpSession();
RefreshStatus();
}
protected void RefreshStatus() {
String[] fingerprint = VKUtil.getCertificateFingerprint(this, getPackageName());
Log.d("Fingerprint", fingerprint[0]);
this.btnLogin.setEnabled(VKSdk.isLoggedIn() ? false : true);
this.btnLogout.setEnabled(VKSdk.isLoggedIn());
}
public void onBtnClick(View v) {
int id = v.getId();
if (id == R.id.btnLogin) {
Log.d("DIS", "btnLogin");
VKSdk.authorize(sMyScope, true, false);
RefreshStatus();
return;
}
if (id == R.id.btnLogout) {
Log.d("DIS", "btnLogout");
VKSdk.logout();
RefreshStatus();
} else if (id == R.id.wallPost) {
Log.d("DIS", "wallPost");
UploadPhotoToWall();
} else if (id == R.id.btnTest) {
Log.d("DIS", "Test");
ShowProgressDialog();
HideProgressDialog();
} else if (id == R.id.btnTest2) {
Log.d("DIS", "Test");
TestSendLink();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == 4) {
Log.d("DIS", "KeyEvent.KEYCODE_BACK");
}
return super.onKeyDown(keyCode, event);
}
public void GoImmersiveMode(Boolean immersiveOn) {
View mDecorView = getWindow().getDecorView();
if (immersiveOn.booleanValue()) {
mDecorView.setSystemUiVisibility(5894);
} else {
mDecorView.setSystemUiVisibility(1792);
}
}
public void ShowProgressDialog() {
if (this.pd == null) {
this.pd = new ProgressDialog(this);
this.pd.setMessage("Отправка награды");
this.pd.setCancelable(false);
this.pd.setButton(-1, getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.pd.dismiss();
MainActivity.this.pd = null;
}
});
this.pd.show();
return;
}
Log.d("DIS", "ERROR: pd != null");
}
public void HideProgressDialog() {
if (this.pd == null) {
this.pd.dismiss();
this.pd = null;
}
}
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 ShowAlertDialog() {
AlertDialog.Builder alert = new AlertDialog.Builder(this, 3);
alert.setMessage("Введите имя и возраст малыша :");
alert.setCancelable(false);
final EditText input = new EditText(this);
input.setSingleLine();
input.setHint("Саша Пушкин, возраст 2 года");
input.setImeOptions(268435456);
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", "Pin Value : " + value);
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = alert.create();
dialog.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) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onResume() {
super.onResume();
VKUIHelper.onResume(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
VKUIHelper.onDestroy(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
VKUIHelper.onActivityResult(requestCode, resultCode, data);
}
private Bitmap getPhoto() {
try {
Bitmap b = BitmapFactory.decodeStream(getAssets().open("android.jpg"));
return b;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
private void UploadPhotoToWall() {
Log.d("DIS", "UploadPhotoToWall()");
final Bitmap photo = getPhoto();
VKRequest request = VKApi.uploadWallPhotoRequest(new VKUploadImage(photo, VKImageParameters.jpgImage(0.9f)), 0L, 0);
request.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
Log.d("DIS", "onComplete(VKResponse response)");
photo.recycle();
VKApiPhoto photoModel = ((VKPhotoArray) response.parsedModel).get(0);
MainActivity.this.makePost(new VKAttachments(photoModel), "Тестовое сообщение 1, #cleverbit");
}
@Override
public void onError(VKError error) {
Log.d("DIS", "onError:" + error.errorMessage);
MainActivity.this.showError(error);
}
});
}
private void makePost(VKAttachments attachments) {
makePost(attachments, null);
}
public void makePost(VKAttachments attachments, String message) {
Log.d("DIS", "makePost");
VKRequest post = VKApi.wall().post(VKParameters.from(VKApiConst.ATTACHMENTS, attachments, "message", message, VKApiConst.FRIENDS_ONLY));
post.setModelClass(VKWallPostResult.class);
post.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
Log.d("DIS", "onComplete(VKResponse response)");
super.onComplete(response);
Toast.makeText(MainActivity.this.getApplicationContext(), "Сообщение отправлено!", 0).show();
}
@Override
public void onError(VKError error) {
MainActivity mainActivity = MainActivity.this;
if (error.apiError != null) {
error = error.apiError;
}
mainActivity.showError(error);
}
});
}
public void TestSendLink() {
VKRequest request = VKApi.wall().post(VKParameters.from("message", "Hello, world!", VKApiConst.ATTACHMENTS, "http://cleverbit.net"));
request.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
Log.d("DIS", "onComplete(VKResponse response)");
super.onComplete(response);
Toast.makeText(MainActivity.this.getApplicationContext(), "Сообщение отправлено!", 0).show();
}
@Override
public void onError(VKError error) {
MainActivity mainActivity = MainActivity.this;
if (error.apiError != null) {
error = error.apiError;
}
mainActivity.showError(error);
}
});
}
private void makePost(VKParameters vkparams) {
Log.d("DIS", "makePost");
VKRequest post = VKApi.wall().post(vkparams);
post.setModelClass(VKWallPostResult.class);
post.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onComplete(VKResponse response) {
Log.d("DIS", "onComplete(VKResponse response)");
super.onComplete(response);
Toast.makeText(MainActivity.this.getApplicationContext(), "Сообщение отправлено!", 0).show();
}
@Override
public void onError(VKError error) {
MainActivity mainActivity = MainActivity.this;
if (error.apiError != null) {
error = error.apiError;
}
mainActivity.showError(error);
}
});
}
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);
}
}
}