|
@@ -0,0 +1,278 @@
|
|
|
+package com.yyxx.eyuancomm.demo;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.content.DialogInterface;
|
|
|
+import android.content.Intent;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.view.KeyEvent;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.Button;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.ScrollView;
|
|
|
+import android.widget.Toast;
|
|
|
+
|
|
|
+import androidx.annotation.NonNull;
|
|
|
+import androidx.annotation.Nullable;
|
|
|
+import androidx.appcompat.app.AlertDialog;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import cn.yyxx.eyuancomm.comm.EYuanCommSdk;
|
|
|
+import cn.yyxx.eyuancomm.comm.entity.SdkChargeInfo;
|
|
|
+import cn.yyxx.eyuancomm.comm.entity.SdkRoleInfo;
|
|
|
+import cn.yyxx.eyuancomm.comm.internal.ICallback;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author #Suyghur.
|
|
|
+ * Created on 2021/07/12
|
|
|
+ */
|
|
|
+public class DemoActivity extends Activity implements View.OnClickListener {
|
|
|
+
|
|
|
+ private final List<Item> events = new ArrayList<Item>() {
|
|
|
+ {
|
|
|
+ add(new Item(0, "00 用户登录"));
|
|
|
+ add(new Item(1, "01 用户登出"));
|
|
|
+ add(new Item(2, "02 角色创建"));
|
|
|
+ add(new Item(3, "03 角色登录"));
|
|
|
+ add(new Item(4, "04 角色升级"));
|
|
|
+ add(new Item(5, "05 定额充值"));
|
|
|
+ }
|
|
|
+ };
|
|
|
+ private CacheRoleInfo.RoleInfo cacheRoleInfo = null;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+ initView();
|
|
|
+ EYuanCommSdk.getInstance().initialize(this, true, new ICallback() {
|
|
|
+ @Override
|
|
|
+ public void onResult(int code, @NonNull String result) {
|
|
|
+ toast(result);
|
|
|
+ if (code == 0) {
|
|
|
+ EYuanCommSdk.getInstance().setOnFloatBallLogout(new ICallback() {
|
|
|
+ @Override
|
|
|
+ public void onResult(int code2, @NonNull String result2) {
|
|
|
+ if (code2 == 0) {
|
|
|
+ // 用户触发浮标切换账号,游戏需退回到登录选服页,并调用SDK的login()接口拉起登录
|
|
|
+ EYuanCommSdk.getInstance().login(DemoActivity.this, new ICallback() {
|
|
|
+ @Override
|
|
|
+ public void onResult(int code3, @NonNull String result3) {
|
|
|
+ toast(result3);
|
|
|
+ if (code3 == 0) {
|
|
|
+ cacheRoleInfo = CacheRoleInfo.getDemoRoleInfo(DemoActivity.this, EYuanCommSdk.getInstance().getCurrentUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
+ LinearLayout layout = new LinearLayout(this);
|
|
|
+ layout.setOrientation(LinearLayout.VERTICAL);
|
|
|
+ for (Item event : events) {
|
|
|
+ Button button = new Button(this);
|
|
|
+ button.setId(event.id);
|
|
|
+ button.setTag(event.id);
|
|
|
+ button.setText(event.name);
|
|
|
+ button.setOnClickListener(DemoActivity.this);
|
|
|
+ layout.addView(button);
|
|
|
+ }
|
|
|
+ ScrollView scrollView = new ScrollView(this);
|
|
|
+ scrollView.addView(layout);
|
|
|
+ setContentView(scrollView);
|
|
|
+ }
|
|
|
+
|
|
|
+ private SdkRoleInfo getSdkRoleInfo() {
|
|
|
+ SdkRoleInfo roleInfo = new SdkRoleInfo();
|
|
|
+ roleInfo.setUserId(EYuanCommSdk.getInstance().getCurrentUserId());
|
|
|
+ roleInfo.setRoleId(cacheRoleInfo.getRoleId());
|
|
|
+ roleInfo.setRoleName(cacheRoleInfo.getRoleName());
|
|
|
+ roleInfo.setRoleLevel(cacheRoleInfo.getRoleLevel());
|
|
|
+ roleInfo.setRoleCTime(cacheRoleInfo.getRoleCTime());
|
|
|
+ roleInfo.setServerId(cacheRoleInfo.getServerCode());
|
|
|
+ roleInfo.setServerName(cacheRoleInfo.getServerName());
|
|
|
+ roleInfo.setBalance(cacheRoleInfo.getBalance());
|
|
|
+ roleInfo.setVipLevel(cacheRoleInfo.getVipLevel());
|
|
|
+ roleInfo.setTotalPurchase(cacheRoleInfo.getTotalPurchase());
|
|
|
+ return roleInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ private SdkChargeInfo getSdkChargeInfo() {
|
|
|
+ long ts = System.currentTimeMillis();
|
|
|
+ SdkChargeInfo chargeInfo = new SdkChargeInfo();
|
|
|
+ chargeInfo.setUserId(EYuanCommSdk.getInstance().getCurrentUserId());
|
|
|
+ chargeInfo.setRoleId(cacheRoleInfo.getRoleId());
|
|
|
+ chargeInfo.setRoleName(cacheRoleInfo.getRoleName());
|
|
|
+ chargeInfo.setRoleLevel(cacheRoleInfo.getRoleLevel());
|
|
|
+ chargeInfo.setRoleCTime(cacheRoleInfo.getRoleCTime());
|
|
|
+ chargeInfo.setServerId(cacheRoleInfo.getServerCode());
|
|
|
+ chargeInfo.setServerName(cacheRoleInfo.getServerName());
|
|
|
+ chargeInfo.setAmount(100);
|
|
|
+ chargeInfo.setProductId("p.1yuan");
|
|
|
+ chargeInfo.setProductName("60元寶");
|
|
|
+ chargeInfo.setProductDesc("60元寶");
|
|
|
+ chargeInfo.setCpOrderId("order_" + ts);
|
|
|
+ chargeInfo.setCpExt("cp_ext_info||" + chargeInfo.getCpOrderId());
|
|
|
+ chargeInfo.setCpPayTime(ts / 100);
|
|
|
+ chargeInfo.setCpPaySign("test123");
|
|
|
+ return chargeInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onStart() {
|
|
|
+ super.onStart();
|
|
|
+ EYuanCommSdk.getInstance().onStart(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onRestart() {
|
|
|
+ super.onRestart();
|
|
|
+ EYuanCommSdk.getInstance().onRestart(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onResume() {
|
|
|
+ super.onResume();
|
|
|
+ EYuanCommSdk.getInstance().onResume(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onPause() {
|
|
|
+ super.onPause();
|
|
|
+ EYuanCommSdk.getInstance().onPause(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onStop() {
|
|
|
+ super.onStop();
|
|
|
+ EYuanCommSdk.getInstance().onStop(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onDestroy() {
|
|
|
+ super.onDestroy();
|
|
|
+ EYuanCommSdk.getInstance().onDestroy(this);
|
|
|
+ //如果要杀进程需要在onDestroy中处理
|
|
|
+ System.exit(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data);
|
|
|
+ EYuanCommSdk.getInstance().onActivityResult(this, requestCode, resultCode, data);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onNewIntent(Intent intent) {
|
|
|
+ super.onNewIntent(intent);
|
|
|
+ EYuanCommSdk.getInstance().onNewIntent(this, intent);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
|
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
|
|
|
+ if (EYuanCommSdk.getInstance().hasExitView(this)) {
|
|
|
+ EYuanCommSdk.getInstance().openExitView(this, (code, result) -> {
|
|
|
+ if (code == 0) {
|
|
|
+ // 如果要杀进程需要在onDestroy中处理,不然会不执行SDK的onDestroy方法
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 显示游戏自己的退出框
|
|
|
+ AlertDialog exitDialog = new AlertDialog.Builder(this)
|
|
|
+ .setCancelable(true)
|
|
|
+ .setMessage("您确定退出游戏吗?")
|
|
|
+ .setNeutralButton("下次再见", new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ dialog.dismiss();
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .setPositiveButton("再玩一下", new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ dialog.dismiss();
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .create();
|
|
|
+ exitDialog.show();
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return super.onKeyDown(keyCode, event);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ if (v == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ switch ((Integer) v.getTag()) {
|
|
|
+ case 0: {
|
|
|
+ EYuanCommSdk.getInstance().login(this, new ICallback() {
|
|
|
+ @Override
|
|
|
+ public void onResult(int code, @NonNull String result) {
|
|
|
+ toast(result);
|
|
|
+ if (code == 0) {
|
|
|
+ cacheRoleInfo = CacheRoleInfo.getDemoRoleInfo(DemoActivity.this, EYuanCommSdk.getInstance().getCurrentUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 1: {
|
|
|
+ EYuanCommSdk.getInstance().logout(this, new ICallback() {
|
|
|
+ @Override
|
|
|
+ public void onResult(int code, @NonNull String result) {
|
|
|
+ if (code == 0) {
|
|
|
+ EYuanCommSdk.getInstance().login(DemoActivity.this, new ICallback() {
|
|
|
+ @Override
|
|
|
+ public void onResult(int code2, @NonNull String result2) {
|
|
|
+ toast(result2);
|
|
|
+ if (code2 == 0) {
|
|
|
+ cacheRoleInfo = CacheRoleInfo.getDemoRoleInfo(DemoActivity.this, EYuanCommSdk.getInstance().getCurrentUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 2: {
|
|
|
+ cacheRoleInfo = null;
|
|
|
+ cacheRoleInfo = CacheRoleInfo.setDemoRoleInfo(this, EYuanCommSdk.getInstance().getCurrentUserId());
|
|
|
+ EYuanCommSdk.getInstance().roleCreate(this, getSdkRoleInfo());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 3:
|
|
|
+ EYuanCommSdk.getInstance().roleLauncher(this, getSdkRoleInfo());
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ EYuanCommSdk.getInstance().roleLevelUp(this, getSdkRoleInfo());
|
|
|
+ break;
|
|
|
+ case 5: {
|
|
|
+ EYuanCommSdk.getInstance().charge(this, getSdkChargeInfo(), new ICallback() {
|
|
|
+ @Override
|
|
|
+ public void onResult(int code, @NonNull String result) {
|
|
|
+ toast(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void toast(String msg) {
|
|
|
+ Toast.makeText(DemoActivity.this, msg, Toast.LENGTH_SHORT).show();
|
|
|
+ }
|
|
|
+}
|