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

import android.app.Activity;
import android.os.Bundle;
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;

import java.util.Locale;

public class MainActivity extends Activity implements PurchaseCallback {

    private static final String TAG = "MainActivity";

    private TextView tvVersion;
    private TextView userInfo;

    private Button btnLoginOrLogout;
    private Button btnInit;

    private String appId = "100";
    private String appKey = "f899139df5e1059396431415e770c6dd";
    private GumpUser gumpUser;


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

        tvVersion = findViewById(R.id.version);
        userInfo = findViewById(R.id.user_info);
        btnLoginOrLogout = findViewById(R.id.login_or_logout);
        btnInit = findViewById(R.id.init);
        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);
            }
        });
        btnInit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btnInit.setEnabled(false);
                GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() {
                    @Override
                    public void initComplete(int result) {
                        if (result == GumpSDK.CODE.OK) {
                            btnLoginOrLogout.setEnabled(true);
                            userInfo.setText("initialization has finished");
                        } else {
                            btnInit.setEnabled(true);
                            userInfo.setText("initialization has error");
                        }
                    }
                });
            }
        });
        findViewById(R.id.pay).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Bundle payInfo = new Bundle();
                payInfo.putString("product", "wa2");
                payInfo.putFloat("amount", 0.1f);
                payInfo.putString("extraInfo", "This is demo!");
                payInfo.putString("serverId", "s1");
                payInfo.putString("roleId", "100123");
                payInfo.putString("sessionKey", gumpUser.getSessionKey().getToken());
                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);
            }
        });


        Log.i("DEMO", "country:" + Locale.getDefault().getCountry() + ",language:" + Locale.getDefault().getLanguage());

        GumpSDK.getSettings().setDebug(false);
        /**
         * 设置是否打印debug日志
         */
        GumpSDK.getSettings().enableDebugLogging(true);
        /**
         * 设置启用facebook登录
         */
        GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_FB);

        /**
         * 设置启用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) {
                gumpUser = user;
                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_GOOGLE:
                        userType = "google 登录";
                        break;
                    case GumpPreference.ACCOUNT_TYPE_LINE:
                        userType = "Line登录";
                        break;
                }
                userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType() + ") " + userType + "\n sessionKey:" + user.getSessionKey()
                        .getToken());
                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");
            }

            @Override
            public void onPermissionDenied(String[] deniedPermissions) {
                StringBuilder sb = new StringBuilder();
                for (String s : deniedPermissions) {
                    sb.append(s);
                    sb.append(",");
                }
                Toast.makeText(MainActivity.this, "Permission denied:" + sb.toString(), Toast.LENGTH_SHORT).show();
            }
        });
        /**
         * 初始化sdk
         */
        GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() {
            @Override
            public void initComplete(int result) {
                if (result == GumpSDK.CODE.OK) {
                    btnLoginOrLogout.setEnabled(true);
                    userInfo.setText("initialization has finished");
                    //checkRisk();
                } else {
                    btnInit.setEnabled(true);
                    userInfo.setText("initialization has error");
                }
            }
        });

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


}