MainActivity.java 6.58 KB
package com.gump.game.sdk.demo;

import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.gump.game.sdk.GameSDK;
import com.gump.game.sdk.GumpPreference;
import com.gump.game.sdk.SDKSettings;
import com.gump.game.sdk.bean.GumpUser;
import com.gump.game.sdk.callback.LoginStateListener;
import com.gump.game.sdk.callback.RechargeCallback;
import com.gump.game.sdk.passport.fb.FBAccessToken;

import java.util.Locale;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements RechargeCallback {

    private static final String TAG = "MainActivity";

    private TextView tvVersion;
    private TextView userInfo;

    private Button btnLoginOrLogout;
    private Button btnCheckState;
    private Button btnPay;
    private Button btnIap;

    private String appId = "100";
    private String channelId = "1001";
    private GumpUser gumpUser;

    /**
     * 测试数据
     */
    String serverId = "S168";
    String roleId = "168000089";


    @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);
        btnCheckState = findViewById(R.id.check_state);
        btnLoginOrLogout.setOnClickListener(v -> {
            if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0)
                GameSDK.login(MainActivity.this);
            else
                GameSDK.logout(MainActivity.this);
        });
        btnCheckState.setOnClickListener(v -> {
            GameSDK.iapUsable(MainActivity.this, serverId, roleId, usable -> {
                btnIap.setEnabled(usable);
                btnPay.setEnabled(!usable);
            });
        });
        btnPay = findViewById(R.id.pay);
        btnPay.setOnClickListener(v -> {
            PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.pay(MainActivity.this, payInfo, MainActivity.this));
            submitFragment.show(getSupportFragmentManager(), "pay");
        });
        btnIap = findViewById(R.id.iap);
        btnIap.setOnClickListener(v -> {
            PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.iap(MainActivity.this, payInfo, MainActivity.this));
            submitFragment.show(getSupportFragmentManager(), "iap");
        });


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

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

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

        /**
         * 设置启用Line登录
         */
        GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_LINE);


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

        GameSDK.setUserStateListener(new LoginStateListener() {
            @Override
            public void onLoginSuccess(GumpUser user) {
                btnCheckState.setEnabled(true);
                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
         */
        GameSDK.init(getApplicationContext(), appId,channelId);

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

    }

    private void checkRisk() {
        GameSDK.inspectRiskLevel(this, isRisk -> Log.i(TAG, isRisk ? "There is some risks" : "Nothing is risk"));
    }

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

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

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


}