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 = "10117"; private String channelId = "1030"; 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"); } }