MainActivity.java 7.72 KB
package com.gumptech.sdk.demo;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.ClipboardManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.gumptech.sdk.GumpPreference;
import com.gumptech.sdk.GumpSDK;
import com.gumptech.sdk.PaymentVersion;
import com.gumptech.sdk.SDKSettings;
import com.gumptech.sdk.bean.GumpUser;
import com.gumptech.sdk.bean.PurchaseResult;
import com.gumptech.sdk.callback.InitializeCallback;
import com.gumptech.sdk.callback.LoginStateListener;
import com.gumptech.sdk.callback.PurchaseCallback;
import com.gumptech.sdk.callback.ResultCallback;
import com.gumptech.sdk.passport.fb.FBAccessToken;

public class MainActivity extends Activity implements PurchaseCallback {

    private static final String TAG = "MainActivity";

    private TextView tvVersion;
    private TextView userInfo;

    private Button btnLoginOrLogout;

    private String appId = "100";
    private String appKey = "f899139df5e1059396431415e770c6dd";
    private String sessionKey;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tvVersion = (TextView) findViewById(R.id.version);
        userInfo = (TextView) findViewById(R.id.user_info);
        btnLoginOrLogout = (Button) findViewById(R.id.login_or_logout);
        btnLoginOrLogout.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0)
                    GumpSDK.start(MainActivity.this);
                else
                    GumpSDK.logout(MainActivity.this);
            }
        });
        findViewById(R.id.pay).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Bundle payInfo = new Bundle();
                payInfo.putString("product", "test2");
                payInfo.putFloat("amount", 0.1f);
                payInfo.putString("extraInfo", "This is demo!");
                payInfo.putString("serverId", "100");
                payInfo.putString("roleId", "100123");
                payInfo.putString("sessionKey", sessionKey);
                GumpSDK.pay(MainActivity.this, payInfo, MainActivity.this);
            }
        });
        findViewById(R.id.iap).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Bundle payInfo = new Bundle();
                payInfo.putString("product", "180010");
                payInfo.putFloat("amount", 0.1f);
                payInfo.putString("extraInfo", "This is demo!");
                payInfo.putString("serverId", "100");
                payInfo.putString("roleId", "100123");
                GumpSDK.iap(MainActivity.this, payInfo, MainActivity.this);
            }
        });
        /**
         * 设置否是打印debug日志
         */
        GumpSDK.getSettings().enableDebugLogging(true);
        /**
         * 设置启用facebook登录
         */
        GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_FB);
        /**
         * 设置启用Vk登录
         */
//        GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_VK);

        /**
         * 设置启用Wechat登录
         *
         */
//        GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_WECHAT);

        /**
         * 设置启用google登录
         */
        GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_GOOGLE);

        /**
         * 设置启用Line登录
         */
        GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_LINE);
        /**
         * 设置屏幕方向
         */
        GumpSDK.getSettings().setScreenLandscape(true);

        /**
         * 设置支付版本
         */
        GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4);

        /**
         * 设置用户登录状态监听器
         */

        GumpSDK.setUserStateListener(new LoginStateListener() {
            @Override
            public void onLoginSuccess(GumpUser user) {
                ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                cm.setText(user.getSessionKey());
                sessionKey = user.getSessionKey();
                String userType = null;
                switch (user.getAccountType()) {
                    case GumpPreference.ACCOUNT_TYPE_FB:
                        userType = "Facebook登录";
                        String fbToken = FBAccessToken.getCurrentAccessToken().getToken();
                        Log.d(TAG, "FBAccessToken:" + fbToken);
                        break;
                    case GumpPreference.ACCOUNT_TYPE_QUICK_REG:
                        userType = "快速登录";
                        break;
                    case GumpPreference.ACCOUNT_TYPE_REG:
                        userType = "gump注册用户";
                        break;
                    case GumpPreference.ACCOUNT_TYPE_VK:
                        userType = "vk登录";
                        break;
                    case GumpPreference.ACCOUNT_TYPE_GOOGLE:
                        userType = "google 登录";
                        break;
                    case GumpPreference.ACCOUNT_TYPE_WECHAT:
                        userType = "微信登录";
                        break;
                    case GumpPreference.ACCOUNT_TYPE_LINE:
                        userType = "Line登录";
                        break;
                }
                userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType() + ") " + userType + "\n sessionKey:" + user.getSessionKey());
                btnLoginOrLogout.setText("Logout");
                btnLoginOrLogout.setTag(1);
            }

            @Override
            public void onLoginFailed(int code, String msg) {
                userInfo.setText(msg);
                Toast.makeText(MainActivity.this, "Login failed:code=" + code + ",message=" + msg, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onLoginCanceled() {
                Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onLogout() {
                btnLoginOrLogout.setText("Login");
                btnLoginOrLogout.setTag(0);
                userInfo.setText("User is logout");
            }
        });
        /**
         * 初始化sdk
         */
        GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() {
            @Override
            public void initComplete(int result) {
                if (result == GumpSDK.CODE.OK) {
                    btnLoginOrLogout.setEnabled(true);

                    //checkRisk();
                }
            }
        });

        tvVersion.setText("SDK Version:" + GumpSDK.getVersion());

    }

    private void checkRisk() {
        GumpSDK.checkRisk(this, new ResultCallback() {
            @Override
            public void onResult(boolean isRisk) {
                Log.i(TAG, isRisk ? "There is some risks" : "Nothing is risk");
            }
        });
    }

    @Override
    public void onPurchaseCompleted(PurchaseResult result) {
        Log.i(TAG, "purchase completed");
    }

    @Override
    public void onPurchaseError(int code, String msg) {
        Log.i(TAG, "purchase error");
    }

    @Override
    public void onPurchaseCanceled() {
        Log.i(TAG, "purchase canceled");
    }


}