瀏覽代碼

ftsx demo开发

#Suyghur 3 年之前
父節點
當前提交
7a9d701644

+ 8 - 16
build.gradle

@@ -1,30 +1,22 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
+apply from: 'config.gradle'
 buildscript {
+    ext {
+        kotlin_version = '1.5.30'
+    }
 
-    // 混淆开关
-    ext.MINIFY_ENABLE = true
-    // ndk版本
-    ext.NDK_VERSION = '21.3.6528147'
-    // kotlin版本
-    ext.KOTLIN_VERSION = '1.4.20'
-    // compileSdkVersion
-    ext.COMPILE_SDK_VERSION = 30
-    // buildToolsVersion
-    ext.BUILD_TOOLS_VERSION = '30.0.3'
-    // minSdkVersion
-    ext.MIN_SDK_VERSION = 16
-    // targetSdkVersion
-    ext.TARGET_SDK_VERSION = 30
 
     repositories {
         google()
         mavenCentral()
+        jcenter()
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:4.1.3'
-
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
+
     }
 }
 
@@ -32,7 +24,7 @@ allprojects {
     repositories {
         google()
         mavenCentral()
-        jcenter() // Warning: this repository is going to shut down soon
+        jcenter()
     }
 }
 

+ 8 - 0
config.gradle

@@ -0,0 +1,8 @@
+ext {
+    android = [
+            compileSdkVersion: 31,
+            buildToolsVersion: "30.0.3",
+            minSdkVersion    : 21,
+            targetSdkVersion : 31,
+    ]
+}

+ 41 - 36
demo/build.gradle

@@ -7,17 +7,15 @@ def keystoreProperties = new Properties()
 keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
 
 android {
-
-    compileSdkVersion COMPILE_SDK_VERSION
-    buildToolsVersion BUILD_TOOLS_VERSION
+    compileSdkVersion rootProject.ext.android.compileSdkVersion
+    buildToolsVersion rootProject.ext.android.buildToolsVersion
 
     defaultConfig {
-        applicationId "com.yyxx.eyuangame.demo"
-        minSdkVersion MIN_SDK_VERSION
-        targetSdkVersion TARGET_SDK_VERSION
+        applicationId "com.ftsx.eyuangame"
+        minSdkVersion rootProject.ext.android.minSdkVersion
+        targetSdkVersion rootProject.ext.android.targetSdkVersion
         versionCode 1
-        versionName "1.0"
-
+        versionName "0.0.1"
         multiDexEnabled true
     }
 
@@ -27,6 +25,8 @@ android {
             keyPassword keystoreProperties['keyPassword']
             storeFile file(keystoreProperties['storeFile'])
             storePassword keystoreProperties['storePassword']
+            v1SigningEnabled true
+            v2SigningEnabled true
         }
     }
 
@@ -62,36 +62,41 @@ android {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
+
 }
 
 dependencies {
+    implementation 'io.github.yyxxgame.sdk:eyuangame-sdk-ktx:1.0.1-rc1'
+    implementation 'io.github.yyxxgame.sdk:eyuangame-component-lang-vn:1.0.1-rc1'
+
+//    api(name: 'library_core-release', ext: 'aar')
+//    api(name: 'library_vn_language-release', ext: 'aar')
+//
+//    //mmkv
+//    implementation 'com.tencent:mmkv-static:1.2.10'
+//
+//    //日志采集框架
+//    implementation 'io.github.suyghur.dolin:zap:1.0.0'
+//
+//    implementation 'androidx.core:core-ktx:1.7.0'
+//    implementation 'androidx.fragment:fragment-ktx:1.4.0'
+//    implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+//    implementation 'com.google.android.material:material:1.4.0'
+//    implementation 'com.android.installreferrer:installreferrer:2.2'
+//
+//    //google
+//    implementation 'com.google.android.play:core:1.10.2'
+//    implementation 'com.google.android.gms:play-services-auth:19.2.0'
+//    //4.0.0的billing库消耗商品会回调两次,后续在排查,先用3.0.3
+//    implementation "com.android.billingclient:billing-ktx:3.0.3"
+//    implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
+//    implementation 'com.google.firebase:firebase-crashlytics-ktx:18.2.4'
+//    implementation 'com.google.firebase:firebase-crashlytics-ndk:18.2.4'
+//
+//    //facebook
+//    implementation 'com.facebook.android:facebook-android-sdk:11.2.0'
+//
+//    //adjust
+//    implementation 'com.adjust.sdk:adjust-android:4.28.2'
 
-    api(name: 'library_core-release', ext: 'aar')
-
-    //mmkv
-    implementation 'com.tencent:mmkv-static:1.2.10'
-
-    //日志采集框架
-    implementation 'io.github.suyghur.dolin:zap:1.0.0'
-
-    implementation 'androidx.core:core-ktx:1.6.0'
-    implementation 'androidx.fragment:fragment-ktx:1.3.5'
-    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
-    implementation 'com.google.android.material:material:1.4.0'
-    implementation 'com.android.installreferrer:installreferrer:2.2'
-
-    //google
-    implementation 'com.google.android.play:core:1.10.0'
-    implementation 'com.google.android.gms:play-services-auth:19.0.0'
-    //4.0.0的billing库消耗商品会回调两次,后续在排查,先用3.0.3
-    implementation "com.android.billingclient:billing-ktx:3.0.3"
-    implementation 'com.google.firebase:firebase-analytics-ktx:19.0.0'
-    implementation 'com.google.firebase:firebase-crashlytics-ktx:18.1.0'
-
-    //facebook
-    implementation 'com.facebook.android:facebook-login:9.0.0'
-    implementation 'com.facebook.android:facebook-android-sdk:8.2.0'
-
-    //adjust
-    implementation 'com.adjust.sdk:adjust-android:4.28.2'
 }

二進制
demo/libs/library_core-release.aar


二進制
demo/libs/library_vn_language-release.aar


+ 1 - 1
demo/src/main/AndroidManifest.xml

@@ -20,7 +20,7 @@
             android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
             android:exported="true"
             android:launchMode="singleTask"
-            android:screenOrientation="portrait">
+            android:screenOrientation="sensorLandscape">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />

+ 71 - 16
demo/src/main/assets/yyxx_game/ext_log.json

@@ -1,18 +1,73 @@
 {
-  "create_play": "apjl7l",
-  "enter_game": "qfd1ul",
-  "level_55": "lejbpf",
-  "level_120": "btff0z",
-  "level_150": "vqv099",
-  "finish_tower_1": "5t568v",
-  "finish_tower_4": "a034b1",
-  "finish_tower_8": "whtlap",
-  "vip4": "j9uu42",
-  "vip6": "uzpoi6",
-  "vip8": "nmry7k",
-  "online_20mins": "jd5uzd",
-  "boss_level90": "uk0i8w",
-  "boss_level135": "7s9qoa",
-  "boss_level180": "6922bf",
-  "finish_marry": "avl1zv"
+	"level_55": "qe3nee",
+	"credits_buy_3": "ag8tvp",
+	"buy_month_card": "ky27yi",
+	"login_3days": "jexexr",
+	"vip3": "3yisyx",
+	"vip6": "7eg16r",
+	"joinin_party": "bxafsa",
+	"online_20mins": "5m6tor",
+	"online_40mins": "4c0lkm",
+	"update_loading": "lwrdsr",
+	"finish_update": "qn64wk",
+	"multi_player": "x7i91k",
+	"online_60mins": "kt2ro2",
+	"online_100mins": "v5qe04",
+	"online_150mins": "vl2bkj",
+	"level_22": "ctdqay",
+	"level_90": "vzvm5f",
+	"level_130": "3xiabo",
+	"level_190": "4z81wd",
+	"level_250": "y6cxuz",
+	"level_300": "infvnc",
+	"level_371": "ih63em",
+	"level_470": "k5qqbv",
+	"login_5days": "g0jbom",
+	"login_7days": "tmor71",
+	"purchase_2days": "h4qx17",
+	"purchase_4days": "nmc9x3",
+	"buy_quarter_card": "7s2071",
+	"buy_halfyear_card": "b786xh",
+	"vip8": "brt9zg",
+	"vip10": "r6qpr7",
+	"credits_buy_1": "glrt2n",
+	"credits_buy_6": "lnvsmq",
+	"credits_buy_10": "clt5ac",
+	"credits_buy_15": "m9w90p",
+	"credits_buy_20": "h0i0sb",
+	"credits_buy_30": "32w7if",
+	"credits_buy_40": "2rkh74",
+	"coins_buy_1": "83stj6",
+	"coins_buy_3": "rtfc5z",
+	"coins_buy_5": "q62mxh",
+	"coins_buy_7": "12i9q0",
+	"coins_buy_10": "sv4gtk",
+	"boss_level150": "74famx",
+	"boss_level250": "dw3idj",
+	"boss_level350": "w8l02l",
+	"boss_level450": "kzc3j6",
+	"arena_1": "jc9q2u",
+	"arena_10": "nwqb6p",
+	"arena_15": "qfam3g",
+	"finish_marry": "5bed0t",
+	"finish_tower_2": "ew5lup",
+	"finish_tower_8": "lchjku",
+	"finish_tower_15": "mb05ww",
+	"finish_tower_25": "ydwc15",
+	"dungeon_1": "wafa9w",
+	"dungeon_2": "br6kjw",
+	"dungeon_3": "uxjvrz",
+	"dungeon_4": "hk5tuw",
+	"escort_beauty_1": "k2gztx",
+	"escort_beauty_3": "z4oxxh",
+	"escort_beauty_6": "bvjbh0",
+	"treasure_10times": "ww2kta",
+	"treasure_50times": "y5d6xg",
+	"treasure_100times": "az9q03",
+	"treasure_150times": "785ohs",
+	"enter_game": "tc879v",
+	"location_permission": "ili469",
+	"storage_permission": "2gfhd4",
+	"call_permission": "3dhej9",
+	"create_player": "2d3nmh",
 }

+ 9 - 9
demo/src/main/assets/yyxx_game/sdk_log.json

@@ -1,11 +1,11 @@
 {
-  "open_app": "rjo5ax",
-  "choose_login_page": "eo8k08",
-  "sign_up": "mzvwmo",
-  "login_success_quick": "3igk4b",
-  "login_success_fb": "dwbri1",
-  "login_success_google": "tk971u",
-  "login_success_account": "wp73dt",
-  "ecommerce_purchase": "qum6x5",
-  "first_purchase": "r1mt2x"
+  "sign_up": "g2ouk2",
+  "ecommerce_purchase": "93d901",
+  "choose_login_page": "hwdkly",
+  "login_success_fb": "e9vgye",
+  "login_success_account": "b221is",
+  "login_success_quick": "rsdfmo",
+  "login_success_google": "69jfz3",
+  "open_app": "fz4ld1",
+  "first_purchase": "4i1z8x"
 }

+ 10 - 8
demo/src/main/assets/yyxx_game/yyxx_cfg.properties

@@ -1,14 +1,16 @@
-# 游戏代码
-YYXX_GAME_CODE=100001
-# 应用代码
+#出包版本
 YYXX_GCP_CODE=G010101
+#分包标识
+YYXX_GAME_CODE=100001
 # 事件打点应用ID
-YYXX_ADJUST_APP_ID=43gp4f912rgg
+YYXX_ADJUST_APP_ID=4bbr3i9q8hvk
 # Google AppId
-YYXX_GOOGLE_APP_ID=740926956270
+YYXX_GOOGLE_APP_ID=821882779815
 # Google Server Client Id
-YYXX_GOOGLE_CLIENT_ID=740926956270-s3urrtiv4h9r4ja1bmngbrmc03d7h8rd.apps.googleusercontent.com
+YYXX_GOOGLE_CLIENT_ID=821882779815-su2loh0ol1hl3su982dl4q71mefqaciv.apps.googleusercontent.com
 # Facebook AppId
-YYXX_FACEBOOK_ID=348223516775059
-# debug模式(cp出正式包请关闭)
+YYXX_FACEBOOK_ID=230977702435585
+#debug模式(cp出正式包请关闭)
 YYXX_OWN_DEBUG=true
+#地区环境
+YYXX_DO_MAIN_ENV=2

+ 33 - 105
demo/src/main/java/com/yyxx/eyuangame/demo/CacheInfo.java

@@ -16,15 +16,15 @@ public class CacheInfo {
     public static RoleInfo setDemoRoleInfo(Context context, String userId) {
         RoleInfo roleInfo = new RoleInfo();
         long ts = System.currentTimeMillis() / 1000;
-        roleInfo.setRoleId("aaa" + ts);
-        roleInfo.setRoleName("角色名123");
-        roleInfo.setRoleLevel("110");
-        roleInfo.setRoleCTime(ts);
-        roleInfo.setServerId("333");
-        roleInfo.setServerName("服务器名333");
-        roleInfo.setVipLevel("1");
-        roleInfo.setBalance("600");
-        roleInfo.setTotalPurchase(0);
+        roleInfo.roleId = "aaa" + ts;
+        roleInfo.roleName = "角色名123";
+        roleInfo.roleLevel = "110";
+        roleInfo.serverCode = "333";
+        roleInfo.serverName = "服务器名333";
+        roleInfo.vipLevel = "1";
+        roleInfo.balance = "600";
+        roleInfo.totalPurchase = 0;
+        roleInfo.roleCTime = ts;
         String info = roleInfo.toJsonString();
         SharedPreferences sp = context.getSharedPreferences("app_role_info", Context.MODE_PRIVATE);
         SharedPreferences.Editor editor = sp.edit();
@@ -43,15 +43,15 @@ public class CacheInfo {
             } else {
                 JSONObject jsonObject = new JSONObject(info);
                 RoleInfo roleInfo = new RoleInfo();
-                roleInfo.setRoleId(jsonObject.getString("role_id"));
-                roleInfo.setRoleName(jsonObject.getString("role_name"));
-                roleInfo.setRoleLevel(jsonObject.getString("role_level"));
-                roleInfo.setRoleCTime(jsonObject.getLong("role_ctime"));
-                roleInfo.setServerId(jsonObject.getString("server_id"));
-                roleInfo.setServerName(jsonObject.getString("server_name"));
-                roleInfo.setVipLevel(jsonObject.getString("vip_level"));
-                roleInfo.setBalance(jsonObject.getString("balance"));
-                roleInfo.setTotalPurchase(jsonObject.getInt("total_purchase"));
+                roleInfo.roleId = jsonObject.getString("role_id");
+                roleInfo.roleName = jsonObject.getString("role_name");
+                roleInfo.roleLevel = jsonObject.getString("role_level");
+                roleInfo.serverCode = jsonObject.getString("server_id");
+                roleInfo.serverName = jsonObject.getString("server_name");
+                roleInfo.vipLevel = jsonObject.getString("vip_level");
+                roleInfo.balance = jsonObject.getString("balance");
+                roleInfo.totalPurchase = jsonObject.getInt("total_purchase");
+                roleInfo.roleCTime = jsonObject.getLong("role_ctime");
                 return roleInfo;
             }
         } catch (Exception e) {
@@ -60,89 +60,17 @@ public class CacheInfo {
         return null;
     }
 
-    public static class RoleInfo {
+    public static final class RoleInfo {
+        public String roleId = "";
+        public String roleName = "";
+        public String roleLevel = "";
+        public String serverCode = "";
+        public String serverName = "";
+        public String vipLevel = "";
+        public String balance = "";
+        public int totalPurchase = 0;
+        public long roleCTime = 0L;
 
-        private String roleId = "";
-        private String roleName = "";
-        private String roleLevel = "";
-        private long roleCTime = 0L;
-        private String serverId = "";
-        private String serverName = "";
-        private String vipLevel = "";
-        private String balance = "";
-        private int totalPurchase = 0;
-
-        public String getRoleId() {
-            return roleId;
-        }
-
-        public void setRoleId(String roleId) {
-            this.roleId = roleId;
-        }
-
-        public String getRoleName() {
-            return roleName;
-        }
-
-        public void setRoleName(String roleName) {
-            this.roleName = roleName;
-        }
-
-        public String getRoleLevel() {
-            return roleLevel;
-        }
-
-        public void setRoleLevel(String roleLevel) {
-            this.roleLevel = roleLevel;
-        }
-
-        public long getRoleCTime() {
-            return roleCTime;
-        }
-
-        public void setRoleCTime(long roleCTime) {
-            this.roleCTime = roleCTime;
-        }
-
-        public String getServerId() {
-            return serverId;
-        }
-
-        public void setServerId(String serverId) {
-            this.serverId = serverId;
-        }
-
-        public String getServerName() {
-            return serverName;
-        }
-
-        public void setServerName(String serverName) {
-            this.serverName = serverName;
-        }
-
-        public String getVipLevel() {
-            return vipLevel;
-        }
-
-        public void setVipLevel(String vipLevel) {
-            this.vipLevel = vipLevel;
-        }
-
-        public String getBalance() {
-            return balance;
-        }
-
-        public void setBalance(String balance) {
-            this.balance = balance;
-        }
-
-        public int getTotalPurchase() {
-            return totalPurchase;
-        }
-
-        public void setTotalPurchase(int totalPurchase) {
-            this.totalPurchase = totalPurchase;
-        }
 
         public final String toJsonString() {
             try {
@@ -150,15 +78,15 @@ public class CacheInfo {
                 jsonObject.put("role_id", this.roleId);
                 jsonObject.put("role_name", this.roleName);
                 jsonObject.put("role_level", this.roleLevel);
-                jsonObject.put("server_id", this.serverId);
+                jsonObject.put("server_code", this.serverCode);
                 jsonObject.put("server_name", this.serverName);
                 jsonObject.put("vip_level", this.vipLevel);
                 jsonObject.put("balance", this.balance);
                 jsonObject.put("total_purchase", this.totalPurchase);
                 jsonObject.put("role_ctime", this.roleCTime);
                 return jsonObject.toString();
-            } catch (JSONException var2) {
-                var2.printStackTrace();
+            } catch (JSONException e) {
+                e.printStackTrace();
                 return "";
             }
         }
@@ -169,12 +97,12 @@ public class CacheInfo {
                     "roleId='" + roleId + '\'' +
                     ", roleName='" + roleName + '\'' +
                     ", roleLevel='" + roleLevel + '\'' +
-                    ", roleCTime=" + roleCTime +
-                    ", serverCode='" + serverId + '\'' +
+                    ", serverCode='" + serverCode + '\'' +
                     ", serverName='" + serverName + '\'' +
                     ", vipLevel='" + vipLevel + '\'' +
                     ", balance='" + balance + '\'' +
                     ", totalPurchase=" + totalPurchase +
+                    ", roleCTime=" + roleCTime +
                     '}';
         }
     }

+ 92 - 40
demo/src/main/java/com/yyxx/eyuangame/demo/DemoActivity.java

@@ -8,7 +8,9 @@ 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 java.util.ArrayList;
@@ -19,6 +21,7 @@ import cn.yyxx.eyuangame.base.entity.SdkChargeInfo;
 import cn.yyxx.eyuangame.base.entity.SdkEvent;
 import cn.yyxx.eyuangame.base.entity.SdkRoleInfo;
 import cn.yyxx.eyuangame.base.internal.ICallback;
+import cn.yyxx.support.HostModelUtils;
 
 /**
  * @author #Suyghur.
@@ -34,32 +37,27 @@ public class DemoActivity extends Activity implements View.OnClickListener {
             add(new Item(3, "03 角色登录"));
             add(new Item(4, "04 角色升级"));
             add(new Item(5, "05 定额充值"));
-            add(new Item(6, "06 第三方充值"));
-            add(new Item(7, "07 07 模拟Facebook标准事件打点(玩家首次完成新手引导)"));
-            add(new Item(8, "08 08 模拟Facebook自定义事件打点(玩家首次完成结缘)"));
+            add(new Item(6, "06 模拟Facebook标准事件打点(玩家首次完成新手引导)"));
+            add(new Item(7, "07 模拟Facebook自定义事件打点(玩家首次完成结缘)"));
         }
     };
-
-    private String roleId = "";
-    private long roleCTime = 0;
+    private CacheInfo.RoleInfo cacheRoleInfo = null;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        this.roleCTime = System.currentTimeMillis() / 1000;
-        this.roleId = "aaa" + roleCTime;
-
         initView();
-        EYuanGame.getInstance().initialize(this, false, new ICallback() {
+        EYuanGame.getInstance().initialize(this, true, new ICallback() {
             @Override
-            public void onResult(int code, String result) {
-
+            public void onResult(int code, @NonNull String result) {
+                toast(result);
             }
         });
     }
 
     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);
@@ -76,15 +74,15 @@ public class DemoActivity extends Activity implements View.OnClickListener {
     private SdkRoleInfo getSdkRoleInfo() {
         SdkRoleInfo roleInfo = new SdkRoleInfo();
         roleInfo.setUserId(EYuanGame.getInstance().getCurrentUserId());
-        roleInfo.setRoleId(roleId);
-        roleInfo.setRoleName("角色名123");
-        roleInfo.setRoleLevel("110");
-        roleInfo.setRoleCTime(roleCTime);
-        roleInfo.setServerId("333");
-        roleInfo.setServerName("服务器名333");
-        roleInfo.setBalance("600");
-        roleInfo.setVipLevel("1");
-        roleInfo.setTotalPurchase(0);
+        roleInfo.setRoleId(cacheRoleInfo.roleId);
+        roleInfo.setRoleName(cacheRoleInfo.roleName);
+        roleInfo.setRoleLevel(cacheRoleInfo.roleLevel);
+        roleInfo.setRoleCTime(cacheRoleInfo.roleCTime);
+        roleInfo.setServerId(cacheRoleInfo.serverCode);
+        roleInfo.setServerName(cacheRoleInfo.serverName);
+        roleInfo.setBalance(cacheRoleInfo.balance);
+        roleInfo.setVipLevel(cacheRoleInfo.vipLevel);
+        roleInfo.setTotalPurchase(cacheRoleInfo.totalPurchase);
         return roleInfo;
     }
 
@@ -92,16 +90,16 @@ public class DemoActivity extends Activity implements View.OnClickListener {
         long ts = System.currentTimeMillis();
         SdkChargeInfo chargeInfo = new SdkChargeInfo();
         chargeInfo.setUserId(EYuanGame.getInstance().getCurrentUserId());
-        chargeInfo.setRoleId(roleId);
-        chargeInfo.setRoleName("角色名123");
-        chargeInfo.setRoleLevel("110");
-        chargeInfo.setRoleCTime(roleCTime);
-        chargeInfo.setServerId("333");
-        chargeInfo.setServerName("服务器名333");
-        chargeInfo.setAmount(99);
-        chargeInfo.setProductId("1");
-        chargeInfo.setProductName("60元寶");
-        chargeInfo.setProductDesc("60元寶");
+        chargeInfo.setRoleId(cacheRoleInfo.roleId);
+        chargeInfo.setRoleName(cacheRoleInfo.roleName);
+        chargeInfo.setRoleLevel(cacheRoleInfo.roleLevel);
+        chargeInfo.setRoleCTime(cacheRoleInfo.roleCTime);
+        chargeInfo.setServerId(cacheRoleInfo.serverCode);
+        chargeInfo.setServerName(cacheRoleInfo.serverName);
+        chargeInfo.setAmount(100);
+        chargeInfo.setProductId("vn.ftsx.22000vnd");
+        chargeInfo.setProductName("80NB");
+        chargeInfo.setProductDesc("80NB");
         chargeInfo.setCpOrderId("order_" + ts);
         chargeInfo.setCpExt("cp_ext_info||" + chargeInfo.getCpOrderId());
         chargeInfo.setCpPayTime(ts / 100);
@@ -162,13 +160,10 @@ public class DemoActivity extends Activity implements View.OnClickListener {
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK) {
-            EYuanGame.getInstance().openExitView(this, new ICallback() {
-                @Override
-                public void onResult(int code, String result) {
-                    if (code == 0) {
-                        finish();
-                        //如果要杀进程需要在onDestroy中处理,不然会不执行SDK的onDestroy方法
-                    }
+            EYuanGame.getInstance().openExitView(this, (code, result) -> {
+                if (code == 0) {
+                    // 如果要杀进程需要在onDestroy中处理,不然会不执行SDK的onDestroy方法
+                    finish();
                 }
             });
             return true;
@@ -182,22 +177,79 @@ public class DemoActivity extends Activity implements View.OnClickListener {
             return;
         }
         switch ((Integer) v.getTag()) {
-            case 10: {
+            case 0: {
+                EYuanGame.getInstance().login(this, true, new ICallback() {
+                    @Override
+                    public void onResult(int code, @NonNull String result) {
+                        toast(result);
+                        if (code == 0) {
+                            cacheRoleInfo = CacheInfo.getDemoRoleInfo(DemoActivity.this, EYuanGame.getInstance().getCurrentUserId());
+                        }
+                    }
+                });
+                break;
+            }
+            case 1: {
+                EYuanGame.getInstance().logout(this, new ICallback() {
+                    @Override
+                    public void onResult(int code, @NonNull String result) {
+                        if (code == 0) {
+                            EYuanGame.getInstance().login(DemoActivity.this, false, new ICallback() {
+                                @Override
+                                public void onResult(int code2, @NonNull String result2) {
+                                    toast(result2);
+                                    if (code2 == 0) {
+                                        cacheRoleInfo = CacheInfo.getDemoRoleInfo(DemoActivity.this, EYuanGame.getInstance().getCurrentUserId());
+                                    }
+                                }
+                            });
+                        }
+                    }
+                });
+                break;
+            }
+            case 2: {
+                cacheRoleInfo = null;
+                cacheRoleInfo = CacheInfo.setDemoRoleInfo(this, EYuanGame.getInstance().getCurrentUserId());
+                EYuanGame.getInstance().roleCreate(this, getSdkRoleInfo());
+                break;
+            }
+            case 3:
+                EYuanGame.getInstance().roleLauncher(this, getSdkRoleInfo());
+                break;
+            case 4:
+                EYuanGame.getInstance().roleLevelUp(this, getSdkRoleInfo());
+                break;
+            case 5: {
+                EYuanGame.getInstance().charge(this, getSdkChargeInfo(), true, new ICallback() {
+                    @Override
+                    public void onResult(int code, @NonNull String result) {
+                        toast(result);
+                    }
+                });
+            }
+            case 6: {
                 //fb标准事件
                 SdkEvent sdkEvent = new SdkEvent();
                 sdkEvent.setEventName("tutorial");
                 sdkEvent.setStandard(true);
                 sdkEvent.setFbAliasName("fb_mobile_tutorial_completion");
                 EYuanGame.getInstance().linkingEvent(this, sdkEvent);
+                break;
             }
-            case 11:{
+            case 7: {
                 //fb标准事件
                 SdkEvent sdkEvent = new SdkEvent();
                 sdkEvent.setEventName("finish_marry");
                 sdkEvent.setStandard(false);
                 sdkEvent.setFbAliasName("");
                 EYuanGame.getInstance().linkingEvent(this, sdkEvent);
+                break;
             }
         }
     }
+
+    private void toast(String msg) {
+        Toast.makeText(DemoActivity.this, msg, Toast.LENGTH_SHORT).show();
+    }
 }

+ 19 - 1
demo/src/main/res/values/strings.xml

@@ -1,3 +1,21 @@
 <resources>
-    <string name="app_name">demo</string>
+    <string name="app_name">Phi Tiên Thần Hiệp Truyện</string>
+    <string name="facebook_app_id" translatable="false">230977702435585</string>
+    <string name="fb_login_protocol_scheme" translatable="false">fb230977702435585</string>
+    <!-- project_number -->
+    <string name="gcm_defaultSenderId" translatable="false">821882779815</string>
+    <!-- current_key -->
+    <string name="google_api_key" translatable="false">AIzaSyCPSDuoxx3xOFxca0jWVZu9m8ywpZ-vshU</string>
+    <!-- mobilesdk_app_id -->
+    <string name="google_app_id" translatable="false">1:821882779815:android:576dcbd7bc798f72b38382</string>
+    <!-- current_key -->
+    <string name="google_crash_reporting_api_key" translatable="false">AIzaSyCPSDuoxx3xOFxca0jWVZu9m8ywpZ-vshU</string>
+    <!-- storage_bucket -->
+    <string name="google_storage_bucket" translatable="false">qyzvn-48274713.appspot.com</string>
+    <!-- project_id -->
+    <string name="project_id" translatable="false">qyzvn-48274713</string>
+    <!-- type3的client_id -->
+    <string name="default_web_client_id" translatable="false">821882779815-su2loh0ol1hl3su982dl4q71mefqaciv.apps.googleusercontent.com</string>
+    <string name="com.crashlytics.RequireBuildId" translatable="false">true</string>
+    <string name="com.google.firebase.crashlytics.mapping_file_id" translatable="false">00000000000000000000000000000000</string>
 </resources>

+ 4 - 15
keystore.properties

@@ -1,15 +1,4 @@
-#demo
-#storePassword=demo6ztv_yyxx2021
-#keyPassword=demo6ztv_yyxx2021
-#keyAlias=alias.demo_yyxx2021
-#storeFile=../zkeystore/demo_yyxx.keystore
-
-#storePassword=demo53ux_yyxx2021
-#keyPassword=demo53ux_yyxx2021
-#keyAlias=alias.demo_yyxx2021
-#storeFile=../zkeystore/demo_yyxx_backup.keystore
-
-storePassword=shzd1y28_yyxx2021
-keyPassword=shzd1y28_yyxx2021
-keyAlias=alias.shzd_yyxx2021
-storeFile=../zkeystore/shzd_yyxx.keystore
+storePassword=ftsxzpot_yyxx2021
+keyPassword=ftsxzpot_yyxx2021
+keyAlias=alias.ftsx_yyxx2021
+storeFile=../zkeystore/ftsx_yyxx.keystore

+ 0 - 10
library_pad/build.gradle

@@ -1,10 +0,0 @@
-// In the asset pack’s build.gradle file:
-apply plugin: 'com.android.asset-pack'
-
-assetPack {
-    packName = "library_pad" // Directory name for the asset pack
-    dynamicDelivery {
-//        deliveryType = "[ install-time | fast-follow | on-demand ]"
-        deliveryType = "on-demand"
-    }
-}

+ 0 - 4
library_pad/src/main/assets/test_assets.json

@@ -1,4 +0,0 @@
-{
-  "test": "test",
-  "feature": "feature"
-}

二進制
library_pad/src/main/assets/yyxx_float_logo_img.png


二進制
library_pad/src/main/assets/yyxx_float_logo_left_img.png


二進制
library_pad/src/main/assets/yyxx_float_logo_right_img.png


二進制
zkeystore/ftsx_yyxx.keystore