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);
        }
    }
}