From c4d0022c42c437aaabd24985ae5ee2fd862d28f8 Mon Sep 17 00:00:00 2001
From: lwb <q3213421wrwqr>
Date: 星期二, 02 三月 2021 11:45:26 +0800
Subject: [PATCH] 9527 bt2
---
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load05.png | 0
SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java | 331 ++++++++++++++++
SdkProject/library/src/main/java/com/secondworld/sdk/PermissionManager.java | 13
SdkProject/library/build.gradle | 3
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java | 6
SdkProject/channel/GTGame/java/com/secondworld/sdk/MySdkMgr.java | 24
SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameMain.java | 89 ++++
SdkProject/plugins/quick/res/xml/filepaths.xml | 6
SdkProject/plugins/quick/java/com/secondworld/sdk/SplashActivity.java | 21 +
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load06.png | 0
SdkProject/plugins/quick/deps.gradle | 3
SdkProject/channel/qkbt2game/deps.gradle | 1
SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLogin.java | 38 +
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java | 6
SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java | 14
Channel/Android/qkbt2game/deps.gradle | 4
Channel/Android/qkbt2game/debug/libs/library-debug-qkbt2game.aar | 0
SdkProject/plugins/quick/java/com/secondworld/sdk/QuickApp.java | 19
SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java | 5
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load07.png | 0
SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java | 4
SdkProject/channel/qkbt2game/build.gradle | 4
SdkProject/library/src/main/java/com/secondworld/sdk/PlatformSdkMgr.java | 3
Channel/Android/qkbt2game/release/libs/library-release-qkbt2game.aar | 0
SdkProject/plugins/quick/libs/armeabi/libqkcheck.so | 0
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load08.png | 0
SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameApp.java | 21 +
SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java | 16
SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogout.java | 18
SdkProject/plugins/quick/libs/armeabi-v7a/libqkcheck.so | 0
SdkProject/channel/gtgame/java/com/secondworld/sdk/GTGameApp.java | 19
SdkProject/plugins/quick/libs/quicksdk_v2.7.1_20200309.jar | 0
SdkProject/channel/qkbt2game/config.properties | 1
SdkProject/app/src/main/AndroidManifest.xml | 2
SdkProject/library/src/main/java/com/secondworld/sdk/GameAppProxy.java | 50 ++
SdkProject/plugins/quick/res/values/qk_game_style.xml | 15
SdkProject/plugins/quick/res/layout/qk_game_view_loading.xml | 14
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load01.png | 0
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_loadbg.png | 0
SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLevelUp.java | 38 +
build.gradle | 37 +
SdkProject/library/src/main/AndroidManifest.xml | 1
SdkProject/app/src/main/java/com/secondworld/demo/MyApp.java | 18
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load02.png | 0
SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGamePlatform.java | 9
SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java | 30 +
SdkProject/library/src/main/java/com/secondworld/sdk/GameActivityProxy.java | 21
SdkProject/plugins/quick/res/drawable/qk_game_loading.xml | 30 +
SdkProject/channel/qkbt2game/AndroidManifest.xml | 44 ++
SdkProject/plugins/appsflyer/java/com/secondworld/sdk/AppsFlyerUtil.java | 6
SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformPay.java | 60 +++
SdkProject/library/src/main/java/com/secondworld/sdk/utils/RequestCode.java | 6
SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogin.java | 18
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load03.png | 0
SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java | 35 +
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java | 6
SdkProject/plugins/quick/libs/x86/libqkcheck.so | 0
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java | 4
/dev/null | 0
SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPayFinished.java | 16
SdkProject/channel/GTGame/java/com/secondworld/sdk/command/CmdPlatformPay.java | 4
SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load04.png | 0
SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdCreateRole.java | 37 +
SdkProject/gradle.properties | 2
SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java | 6
65 files changed, 1,091 insertions(+), 87 deletions(-)
diff --git a/Channel/Android/qkbt2game/debug/libs/library-debug-qkbt2game.aar b/Channel/Android/qkbt2game/debug/libs/library-debug-qkbt2game.aar
new file mode 100644
index 0000000..2872a99
--- /dev/null
+++ b/Channel/Android/qkbt2game/debug/libs/library-debug-qkbt2game.aar
Binary files differ
diff --git a/Channel/Android/qkbt2game/deps.gradle b/Channel/Android/qkbt2game/deps.gradle
new file mode 100644
index 0000000..7526ca5
--- /dev/null
+++ b/Channel/Android/qkbt2game/deps.gradle
@@ -0,0 +1,4 @@
+//姝よ剼鏈负娓犻亾鐨勭涓夋柟杩滅▼渚濊禆搴撻厤缃紝浼氬鍒跺埌unity涓敤浜庢瀯寤�
+dependencies {
+
+}
diff --git a/Channel/Android/qkbt2game/release/libs/library-release-qkbt2game.aar b/Channel/Android/qkbt2game/release/libs/library-release-qkbt2game.aar
new file mode 100644
index 0000000..91b85eb
--- /dev/null
+++ b/Channel/Android/qkbt2game/release/libs/library-release-qkbt2game.aar
Binary files differ
diff --git a/SdkProject/app/src/main/AndroidManifest.xml b/SdkProject/app/src/main/AndroidManifest.xml
index 898f0d5..0a0be1d 100644
--- a/SdkProject/app/src/main/AndroidManifest.xml
+++ b/SdkProject/app/src/main/AndroidManifest.xml
@@ -6,7 +6,7 @@
<uses-permission android:name="android.permission.INTERNET" />
<application
- android:name=".MyApp"
+ android:name="com.secondworld.sdk.BtGameApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
diff --git a/SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java b/SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java
index c0fc998..bb0eb5b 100644
--- a/SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java
+++ b/SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java
@@ -5,7 +5,9 @@
import android.support.annotation.NonNull;
import android.widget.RelativeLayout;
+import com.secondworld.sdk.BtGameMain;
import com.secondworld.sdk.GameActivityProxy;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.UnityMsgHandler;
import com.secondworld.sdk.utils.CodeU2A;
import com.secondworld.sdk.utils.LogUtil;
@@ -16,7 +18,7 @@
public class MainActivity extends Activity {
- private static Class<? extends GameActivityProxy> proxyClass;
+ private static Class<? extends GameActivityProxy> proxyClass= BtGameMain.class;
GameActivityProxy proxy;
@@ -28,6 +30,7 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ GameAppProxy.isDemo=true;
setContentView(R.layout.activity_main);
RelativeLayout webContainer = findViewById(com.secondworld.sdk.R.id.webContainer);
WebViewUtil.I.init(this, webContainer);
@@ -59,13 +62,23 @@
findViewById(R.id.pay).setOnClickListener((v -> {
JSONObject json = new JSONObject();
try {
+ json.put("sid","10");
+ json.put("serverName","bt2server");
+ json.put("roleName","hahaha");
+ json.put("roleID","123");
+ json.put("money","110");
+ json.put("vipLevel","5");
+ json.put("level","10");
+ json.put("familyName","hengha");
+ json.put("createTime","");
+
json.put("code", CodeU2A.PlatformPay);
json.put("cpInfo", "com.sanxiagame.zmjgp099");
json.put("orderId", System.currentTimeMillis() / 1000 + "");
json.put("sid", "1");
json.put("roleID", "test_role");
json.put("title", "goods_100");
- json.put("mount", "0.01");
+ json.put("mount", "0.009999999776482582");
} catch (JSONException e) {
e.printStackTrace();
}
@@ -84,7 +97,23 @@
});
findViewById(R.id.btnB).setOnClickListener(v -> {
- unityMessage(CodeU2A.ShareToFaceBook);
+ JSONObject json = new JSONObject();
+ try {
+ json.put("sid","bt2");
+ json.put("serverName","bt2server");
+ json.put("roleName","hahaha");
+ json.put("roleID","123");
+ json.put("money","110");
+ json.put("vipLevel","5");
+ json.put("level","10");
+ json.put("familyName","hengha");
+ json.put("createTime","");
+
+ json.put("code", CodeU2A.CreateRole);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ UnityMsgHandler.onUnityMessage(json.toString());
});
}
diff --git a/SdkProject/app/src/main/java/com/secondworld/demo/MyApp.java b/SdkProject/app/src/main/java/com/secondworld/demo/MyApp.java
index 6af5ddc..db80e71 100644
--- a/SdkProject/app/src/main/java/com/secondworld/demo/MyApp.java
+++ b/SdkProject/app/src/main/java/com/secondworld/demo/MyApp.java
@@ -1,21 +1,19 @@
package com.secondworld.demo;
-import com.secondworld.sdk.GTGameApp;
-import com.secondworld.sdk.GTGameMain;
+import android.app.Application;
-public class MyApp extends GTGameApp {
+import com.secondworld.sdk.BtGameMain;
+import com.secondworld.sdk.GameAppProxy;
+
+public class MyApp extends Application {
@Override
public void onCreate() {
- isDemo=true;
super.onCreate();
- }
-
- @Override
- protected void registerProxy() {
- super.registerProxy();
+ GameAppProxy.create(this,null);
+ GameAppProxy.isDemo=true;
//涓荤晫闈唬鐞嗘敞鍐�
- MainActivity.registerProxy(GTGameMain.class);
+ MainActivity.registerProxy(BtGameMain.class);
}
}
diff --git a/SdkProject/channel/GTGame/java/com/secondworld/sdk/MySdkMgr.java b/SdkProject/channel/GTGame/java/com/secondworld/sdk/MySdkMgr.java
index 991d060..e00dfaa 100644
--- a/SdkProject/channel/GTGame/java/com/secondworld/sdk/MySdkMgr.java
+++ b/SdkProject/channel/GTGame/java/com/secondworld/sdk/MySdkMgr.java
@@ -37,7 +37,7 @@
case UNKNOWN: {
if (GTGameMain.I.activity != null)
init(GTGameMain.I.activity);
- Toast.makeText(GameApp.I, "姝e湪鍒濆鍖栦腑锛岃绋嶇瓑", Toast.LENGTH_LONG).show();
+ Toast.makeText(GameAppProxy.app, "姝e湪鍒濆鍖栦腑锛岃绋嶇瓑", Toast.LENGTH_LONG).show();
break;
}
case SUCCEED: {
@@ -45,14 +45,13 @@
break;
}
case LOADING: {
- Toast.makeText(GameApp.I, "姝e湪鍒濆鍖栦腑锛岃绋嶇瓑", Toast.LENGTH_LONG).show();
+ Toast.makeText(GameAppProxy.app, "姝e湪鍒濆鍖栦腑锛岃绋嶇瓑", Toast.LENGTH_LONG).show();
break;
}
}
}
public void setListener() {
- args = new HashMap<>();
// 鍒濆鍖栫洃鍚�
SdkManager.getInstance().setInitListener(new InitListener() {
@Override
@@ -82,7 +81,7 @@
info.put("game_id", SdkManager.getInstance().getGameId());
info.put("session_id", SdkManager.getInstance().getSessionId());
args.put("info", info);
- UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args);
} catch (JSONException e) {
e.printStackTrace();
LogUtil.e("SdkManager 鐧诲綍鎴愬姛", e);
@@ -95,7 +94,7 @@
LogUtil.e("SdkManager", "娉ㄥ唽鎴愬姛" + " isNewReg锛�" + isNewReg + " type锛�" + reg_type);
args.clear();
args.put("reg_type", reg_type);
- UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformRegisterOk,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformRegisterOk, args);
}
@Override
@@ -115,16 +114,19 @@
@Override
public void onSuccess(String status, String orderId) {
LogUtil.debug("SdkManager", "onSuccess status:" + status + ",orderId:" + orderId);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk);
}
@Override
public void onError() {
LogUtil.e("SdkManager", "onError");
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayFail);
}
@Override
public void onCancel() {
LogUtil.debug("SdkManager", "onCancel");
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayCancel);
}
});
@@ -177,7 +179,7 @@
public void onSuccess(String type) {
Map<String, Object> args = new HashMap<>();
args.put("state", CallBackState.Success);
- UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState, args);
LogUtil.debug("鍒嗕韩鍥炶皟", "onSuccess锛�" + type);
}
@@ -185,7 +187,7 @@
public void onError(String type, String msg) {
Map<String, Object> args = new HashMap<>();
args.put("state", CallBackState.Error);
- UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState, args);
LogUtil.debug("鍒嗕韩鍥炶皟", "type锛�" + type + ";msg锛�" + msg);
}
@@ -193,7 +195,7 @@
public void onCancel(String type) {
Map<String, Object> args = new HashMap<>();
args.put("state", CallBackState.Cancel);
- UnityMsgHandler.sendMessageToUnity( CodeA2U.ShareState,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState, args);
LogUtil.debug("鍒嗕韩鍥炶皟", type + "锛歰nCancel");
}
});
@@ -204,7 +206,7 @@
public void onSuccess() {
Map<String, Object> args = new HashMap<>();
args.put("state", CallBackState.Success);
- UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState, args);
LogUtil.debug("璇勫垎鍥炶皟", "鎴愬姛");
}
@@ -212,7 +214,7 @@
public void onError(String s) {
Map<String, Object> args = new HashMap<>();
args.put("state", CallBackState.Error);
- UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState, args);
LogUtil.debug("璇勫垎鍥炶皟", "澶辫触锛�" + s);
}
@@ -220,7 +222,7 @@
public void onCancel() {
Map<String, Object> args = new HashMap<>();
args.put("state", CallBackState.Cancel);
- UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState,args);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState, args);
LogUtil.debug("璇勫垎鍥炶皟", "鍙栨秷");
}
});
diff --git a/SdkProject/channel/GTGame/java/com/secondworld/sdk/command/CmdPlatformPay.java b/SdkProject/channel/GTGame/java/com/secondworld/sdk/command/CmdPlatformPay.java
index 5364240..b66722d 100644
--- a/SdkProject/channel/GTGame/java/com/secondworld/sdk/command/CmdPlatformPay.java
+++ b/SdkProject/channel/GTGame/java/com/secondworld/sdk/command/CmdPlatformPay.java
@@ -3,7 +3,7 @@
import android.util.Base64;
import com.cy.yyjia.sdk.center.SdkManager;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
@@ -19,7 +19,7 @@
@Override
public void process(JSONObject json) throws Exception {
JSONObject extraData = new JSONObject();
- extraData.put("appid", GameApp.I.appId);
+ extraData.put("appid", GameAppProxy.appId);
extraData.put("cpinfo", json.getString("cpInfo"));
extraData.put("cporderid", json.getString("orderId"));
byte[] bytes = extraData.toString().getBytes(StandardCharsets.UTF_8);
diff --git a/SdkProject/channel/gtgame/java/com/secondworld/sdk/GTGameApp.java b/SdkProject/channel/gtgame/java/com/secondworld/sdk/GTGameApp.java
index ef4e096..c34aa63 100644
--- a/SdkProject/channel/gtgame/java/com/secondworld/sdk/GTGameApp.java
+++ b/SdkProject/channel/gtgame/java/com/secondworld/sdk/GTGameApp.java
@@ -1,26 +1,25 @@
package com.secondworld.sdk;
-public class GTGameApp extends GameApp {
+import android.app.Application;
+public class GTGameApp extends Application {
@Override
+ public void onCreate() {
+ super.onCreate();
+ GameAppProxy.create(this,new GTGamePlatform());
+ registerProxy();
+ initSdk();
+ }
+
protected void registerProxy() {
- super.registerProxy();
//涓荤晫闈唬鐞嗘敞鍐�
GameActivity.registerProxy(GTGameMain.class);
AppsFlyerUtil.init();
}
- @Override
- protected void initPlatformDiff() {
- PlatformDiff.I = new GTGamePlatform();
- }
-
- @Override
protected void initSdk() {
- super.initSdk();
MySdkMgr.I.setListener();
}
-
}
diff --git a/SdkProject/channel/qkbt2game/AndroidManifest.xml b/SdkProject/channel/qkbt2game/AndroidManifest.xml
new file mode 100644
index 0000000..68ae4b3
--- /dev/null
+++ b/SdkProject/channel/qkbt2game/AndroidManifest.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.secondworld.sdk">
+
+ <uses-permission android:name="android.permission.GET_TASKS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+ <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+
+ <application
+ android:name=".BtGameApp"
+ android:allowBackup="true"
+ android:requestLegacyExternalStorage="true"
+ android:usesCleartextTraffic="true"
+ tools:replace="android:name">
+
+ <meta-data
+ android:name="unityplayer.ForwardNativeEventsToDalvik"
+ android:value="true" />
+
+ <activity
+ android:name="com.secondworld.sdk.SplashActivity"
+ android:screenOrientation="sensorLandscape">
+ </activity>
+
+ <provider
+ android:name="android.support.v4.content.FileProvider"
+ android:authorities="quicksdk_packName.Provider"
+ android:exported="false"
+ android:grantUriPermissions="true">
+ <meta-data
+ android:name="android.support.FILE_PROVIDER_PATHS"
+ android:resource="@xml/filepaths" />
+ </provider>
+
+
+ </application>
+
+</manifest>
\ No newline at end of file
diff --git a/SdkProject/channel/qkbt2game/build.gradle b/SdkProject/channel/qkbt2game/build.gradle
new file mode 100644
index 0000000..c8f58a8
--- /dev/null
+++ b/SdkProject/channel/qkbt2game/build.gradle
@@ -0,0 +1,4 @@
+//褰撳墠鑴氭湰涓烘笭閬撶殑宸紓鍖栭厤缃�
+dependencies {
+// implementation project(path: ':quick')
+}
\ No newline at end of file
diff --git a/SdkProject/channel/qkbt2game/config.properties b/SdkProject/channel/qkbt2game/config.properties
new file mode 100644
index 0000000..4218897
--- /dev/null
+++ b/SdkProject/channel/qkbt2game/config.properties
@@ -0,0 +1 @@
+PLUGINS=quick
\ No newline at end of file
diff --git a/SdkProject/channel/qkbt2game/deps.gradle b/SdkProject/channel/qkbt2game/deps.gradle
new file mode 100644
index 0000000..124a6b8
--- /dev/null
+++ b/SdkProject/channel/qkbt2game/deps.gradle
@@ -0,0 +1 @@
+//姝よ剼鏈负娓犻亾鐨勭涓夋柟杩滅▼渚濊禆搴撻厤缃紝浼氬鍒跺埌unity涓敤浜庢瀯寤�
\ No newline at end of file
diff --git a/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameApp.java b/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameApp.java
new file mode 100644
index 0000000..8dbf6f4
--- /dev/null
+++ b/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameApp.java
@@ -0,0 +1,21 @@
+package com.secondworld.sdk;
+
+public class BtGameApp extends QuickApp {
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ QuickSdkMgr.I.register("25969262062227241391437599980432","93995626");
+ }
+
+ @Override
+ protected PlatformDiff getPlatform() {
+ return new BtGamePlatform();
+ }
+
+ @Override
+ protected Class<? extends GameActivityProxy> getMainProxy() {
+ return BtGameMain.class;
+ }
+
+}
diff --git a/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameMain.java b/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameMain.java
new file mode 100644
index 0000000..3878320
--- /dev/null
+++ b/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGameMain.java
@@ -0,0 +1,89 @@
+package com.secondworld.sdk;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.view.KeyEvent;
+
+import com.quicksdk.QuickSDK;
+import com.quicksdk.Sdk;
+
+public class BtGameMain extends GameActivityProxy {
+
+ @Override
+ public void onCreate(Activity activity) {
+ super.onCreate(activity);
+ QuickSdkMgr.I.requestPermissions(activity);
+ com.quicksdk.Sdk.getInstance().onCreate(activity);
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ com.quicksdk.Sdk.getInstance().onStart(activity);
+ }
+
+ @Override
+ public void onRestart() {
+ super.onRestart();
+ com.quicksdk.Sdk.getInstance().onRestart(activity);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ com.quicksdk.Sdk.getInstance().onResume(activity);
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ com.quicksdk.Sdk.getInstance().onStop(activity);
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ com.quicksdk.Sdk.getInstance().onDestroy(activity);
+ }
+
+ @Override
+ public void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ com.quicksdk.Sdk.getInstance().onNewIntent(intent);
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ QuickSdkMgr.I.onActivityResult(activity, requestCode);
+ com.quicksdk.Sdk.getInstance().onActivityResult(activity, requestCode, resultCode, data);
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ QuickSdkMgr.I.onRequestPermissionsResult(activity, requestCode, grantResults);
+ }
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ if (QuickSDK.getInstance().isShowExitDialog()) {
+ Sdk.getInstance().exit(activity);
+ } else {
+ // 娓告垙璋冪敤鑷韩鐨勯��鍑哄璇濇锛岀偣鍑荤‘瀹氬悗锛岃皟鐢╭uick鐨別xit鎺ュ彛
+ new AlertDialog.Builder(activity).setTitle("閫�鍑�").setMessage("鏄惁閫�鍑烘父鎴�?").setPositiveButton("纭畾", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface arg0, int arg1) {
+ Sdk.getInstance().exit(activity);
+ }
+ }).setNegativeButton("鍙栨秷", null).show();
+ }
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+}
diff --git a/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGamePlatform.java b/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGamePlatform.java
new file mode 100644
index 0000000..f86841f
--- /dev/null
+++ b/SdkProject/channel/qkbt2game/java/com/secondworld/sdk/BtGamePlatform.java
@@ -0,0 +1,9 @@
+ package com.secondworld.sdk;
+
+public class BtGamePlatform extends PlatformDiff {
+
+ @Override
+ public String platformName() {
+ return "sanxia";
+ }
+}
diff --git a/SdkProject/gradle.properties b/SdkProject/gradle.properties
index 636bdd6..4af83fa 100644
--- a/SdkProject/gradle.properties
+++ b/SdkProject/gradle.properties
@@ -18,4 +18,4 @@
## Automatically convert third-party libraries to use AndroidX
android.enableJetifier=false
#褰撳墠鏋勫缓鐨勬笭閬撳悕绉�
-CHANNEL_NAME=gtgame
\ No newline at end of file
+CHANNEL_NAME=qkbt2game
diff --git a/SdkProject/library/build.gradle b/SdkProject/library/build.gradle
index 0d9da87..f7a0d8a 100644
--- a/SdkProject/library/build.gradle
+++ b/SdkProject/library/build.gradle
@@ -186,6 +186,9 @@
// implementation 'com.github.pqpo:Log4a:1.4.2@aar'
implementation fileTree(dir: "../channel/${CHANNEL_NAME}/libs/", include: ['*.jar'])
+ plugins.each {
+ implementation fileTree(dir: "${rootPath}/plugins/${it}/libs/", include: ['*.jar'])
+ }
implementation fileTree(dir: 'libs', include: ['*.jar'], exclude: ['unity-classes.jar'])
compileOnly files('libs/unity-classes.jar')
}
\ No newline at end of file
diff --git a/SdkProject/library/src/main/AndroidManifest.xml b/SdkProject/library/src/main/AndroidManifest.xml
index 2db666b..b4a7691 100644
--- a/SdkProject/library/src/main/AndroidManifest.xml
+++ b/SdkProject/library/src/main/AndroidManifest.xml
@@ -13,7 +13,6 @@
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
- android:name="com.secondworld.sdk.GameApp"
android:allowBackup="true"
android:supportsRtl="true">
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
index 16c23a6..0181734 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
@@ -1,7 +1,9 @@
package com.secondworld.sdk;
+import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
+import android.view.KeyEvent;
import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
@@ -53,6 +55,13 @@
}
@Override
+ protected void onRestart() {
+ super.onRestart();
+ if (proxy != null)
+ proxy.onRestart();
+ }
+
+ @Override
protected void onResume() {
super.onResume();
if (proxy != null)
@@ -81,10 +90,31 @@
}
@Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ if (proxy != null)
+ proxy.onNewIntent(intent);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (proxy != null)
+ proxy.onActivityResult(requestCode, resultCode, data);
+ }
+
+ @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (proxy != null)
proxy.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (proxy == null)
+ return super.onKeyDown(keyCode, event);
+ boolean b = proxy.onKeyDown(keyCode, event);
+ return b ? b : super.onKeyDown(keyCode, event);
+ }
}
\ No newline at end of file
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivityProxy.java b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivityProxy.java
index 00de247..409a520 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivityProxy.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivityProxy.java
@@ -1,7 +1,9 @@
package com.secondworld.sdk;
import android.app.Activity;
+import android.content.Intent;
import android.support.annotation.NonNull;
+import android.view.KeyEvent;
/**
@@ -9,7 +11,7 @@
*/
public class GameActivityProxy {
- protected Activity activity;
+ public Activity activity;
public static GameActivityProxy I;
@@ -19,6 +21,10 @@
}
public void onStart() {
+
+ }
+
+ public void onRestart() {
}
@@ -39,8 +45,19 @@
I = null;
}
+ public void onNewIntent(Intent intent) {
+ }
+
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+
+ }
+
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- PermissionManager.I.onRequestPermissionsResult(activity,requestCode, permissions, grantResults);
+ PermissionManager.I.onRequestPermissionsResult(activity, requestCode, permissions, grantResults);
+ }
+
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ return false;
}
}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/GameApp.java b/SdkProject/library/src/main/java/com/secondworld/sdk/GameApp.java
deleted file mode 100644
index 163abee..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/GameApp.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.secondworld.sdk;
-
-import android.app.Application;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.os.Handler;
-
-import com.secondworld.sdk.utils.LogUtil;
-import com.unity3d.player.UnityPlayer;
-
-public abstract class GameApp extends Application {
-
- public static GameApp I;
-
- public String appId = "";
-
- protected boolean isDemo = false;
-
- @Override
- public void onCreate() {
- super.onCreate();
- newInstance();
- initPlatformDiff();
- LogUtil.Init(this);
- UnityMsgHandler.initCommandMap();
- registerProxy();
- initSdk();
- }
-
- protected void newInstance() {
- I = this;
- }
-
- protected abstract void initPlatformDiff();
-
- protected void registerProxy() {
-
- }
-
- protected void initSdk() {
- }
-
- public void appExit() {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- android.os.Process.killProcess(android.os.Process.myPid());// 鏉�杩涚▼
- }
- }, 1000);
- if (UnityPlayer.currentActivity != null)
- UnityPlayer.currentActivity.finish();
- }
-
- public void restartApp() {
- new Handler().postDelayed(() -> {
- String _pn = I.getPackageName();
- PackageManager packageManager = I.getPackageManager();
- Intent intent = packageManager.getLaunchIntentForPackage(_pn);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- I.startActivity(intent);
- android.os.Process.killProcess(android.os.Process.myPid());// 鏉�杩涚▼
- }, 1000);
- if (UnityPlayer.currentActivity != null)
- UnityPlayer.currentActivity.finish();
- }
-
- //鏄惁浣峝emo
- public boolean isDemo() {
- return isDemo;
- }
-
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/GameAppProxy.java b/SdkProject/library/src/main/java/com/secondworld/sdk/GameAppProxy.java
new file mode 100644
index 0000000..dd3404d
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/GameAppProxy.java
@@ -0,0 +1,50 @@
+package com.secondworld.sdk;
+
+import android.app.Application;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Handler;
+
+import com.unity3d.player.UnityPlayer;
+
+public class GameAppProxy {
+
+ public static Application app;
+
+ public static String appId = "";
+
+ public static boolean isDemo = false;
+
+ public static void create(Application app, PlatformDiff diff) {
+ PlatformDiff.I = diff;
+ GameAppProxy.app = app;
+ UnityMsgHandler.initCommandMap();
+ }
+
+ public static void appExit() {
+ new Handler().postDelayed(() -> {
+ android.os.Process.killProcess(android.os.Process.myPid());// 鏉�杩涚▼
+ }, 1000);
+ if (UnityPlayer.currentActivity != null)
+ UnityPlayer.currentActivity.finish();
+ }
+
+ public static void restartApp() {
+ new Handler().postDelayed(() -> {
+ String _pn = app.getPackageName();
+ PackageManager packageManager = app.getPackageManager();
+ Intent intent = packageManager.getLaunchIntentForPackage(_pn);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ app.startActivity(intent);
+ android.os.Process.killProcess(android.os.Process.myPid());// 鏉�杩涚▼
+ }, 1000);
+ if (UnityPlayer.currentActivity != null)
+ UnityPlayer.currentActivity.finish();
+ }
+
+ //鏄惁浣峝emo
+ public static boolean isDemo() {
+ return isDemo;
+ }
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/PermissionManager.java b/SdkProject/library/src/main/java/com/secondworld/sdk/PermissionManager.java
index 7163eac..e49a265 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/PermissionManager.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/PermissionManager.java
@@ -9,6 +9,7 @@
import com.secondworld.sdk.utils.CallBackState;
import com.secondworld.sdk.utils.CodeA2U;
+import com.secondworld.sdk.utils.RequestCode;
import java.util.HashMap;
import java.util.Map;
@@ -20,14 +21,12 @@
public static PermissionManager I = new PermissionManager();
- private static final int REQUEST_CODE = 9527;
-
/**
* 鏌ヨ鏄惁鏈夋潈闄�
*/
public boolean hasPermission(String permission) {
- return ContextCompat.checkSelfPermission(GameApp.I, permission) == PackageManager.PERMISSION_GRANTED
- && PermissionChecker.checkSelfPermission(GameApp.I, permission) == PackageManager.PERMISSION_GRANTED;
+ return ContextCompat.checkSelfPermission(GameAppProxy.app, permission) == PackageManager.PERMISSION_GRANTED
+ && PermissionChecker.checkSelfPermission(GameAppProxy.app, permission) == PackageManager.PERMISSION_GRANTED;
}
/**
@@ -36,15 +35,15 @@
public void requestPermissions(String permission) {
if (GameActivityProxy.I == null || GameActivityProxy.I.activity == null)
return;
- ActivityCompat.requestPermissions(GameActivityProxy.I.activity, new String[]{permission}, REQUEST_CODE);
+ ActivityCompat.requestPermissions(GameActivityProxy.I.activity, new String[]{permission}, RequestCode.UNITY);
}
public void onRequestPermissionsResult(Activity activity, int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- if (activity == null||permissions.length==0||requestCode!=REQUEST_CODE)
+ if (activity == null || permissions.length == 0 || requestCode != RequestCode.UNITY)
return;
Map<String, Object> map = new HashMap<>();
- map.put("permission",permissions[0]);
+ map.put("permission", permissions[0]);
if (hasPermission(permissions[0])) {
map.put("state", CallBackState.Success);
} else {
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/PlatformSdkMgr.java b/SdkProject/library/src/main/java/com/secondworld/sdk/PlatformSdkMgr.java
index 4593281..d212a95 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/PlatformSdkMgr.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/PlatformSdkMgr.java
@@ -1,5 +1,6 @@
package com.secondworld.sdk;
+import java.util.HashMap;
import java.util.Map;
public class PlatformSdkMgr {
@@ -11,7 +12,7 @@
LOADING//姝e湪鍒濆鍖�
}
- protected Map<String, Object> args;
+ protected Map<String, Object> args = new HashMap<>();;
public SdkInitState sdkInitState = SdkInitState.UNKNOWN; //sdk鍒濆鍖栫姸鎬�
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java b/SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java
index 9077d87..c0cdbe8 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java
@@ -2,7 +2,6 @@
import com.secondworld.sdk.command.CmdInit;
import com.secondworld.sdk.command.ICommand;
-import com.secondworld.sdk.utils.CodeA2U;
import com.secondworld.sdk.utils.LogUtil;
import com.secondworld.sdk.utils.StaticDefine;
import com.unity3d.player.UnityPlayer;
@@ -75,7 +74,7 @@
*/
public static List<String> getClassName(String packageName) throws IOException {
List<String> classNameList = new ArrayList<String>();
- DexFile df = new DexFile(GameApp.I.getPackageCodePath());//閫氳繃DexFile鏌ユ壘褰撳墠鐨凙PK涓彲鎵ц鏂囦欢
+ DexFile df = new DexFile(GameAppProxy.app.getPackageCodePath());//閫氳繃DexFile鏌ユ壘褰撳墠鐨凙PK涓彲鎵ц鏂囦欢
Enumeration<String> enumeration = df.entries();//鑾峰彇df涓殑鍏冪礌 杩欓噷鍖呭惈浜嗘墍鏈夊彲鎵ц鐨勭被鍚� 璇ョ被鍚嶅寘鍚簡鍖呭悕+绫诲悕鐨勬柟寮�
while (enumeration.hasMoreElements()) {//閬嶅巻
String className = (String) enumeration.nextElement();
@@ -100,7 +99,7 @@
args = new HashMap<>();
args.put("code", code);
JSONObject jsonObject = new JSONObject(args);
- if (GameApp.I.isDemo()) {
+ if (GameAppProxy.isDemo()) {
LogUtil.debug("鍙戦�佹秷鎭埌unity", jsonObject.toString());
return;
}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java
index 9e34fdd..4d8ecbc 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java
@@ -4,12 +4,10 @@
import android.content.ClipboardManager;
import android.content.Context;
-import com.secondworld.sdk.AsyncTaskOperator;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.utils.CodeU2A;
import com.secondworld.sdk.utils.LogUtil;
-import org.json.JSONException;
import org.json.JSONObject;
public class CmdCopyContent implements ICommand {
@@ -23,7 +21,7 @@
public void process(JSONObject json) {
try {
String content = json.getString("content");
- ClipboardManager mgr = (ClipboardManager) GameApp.I.getSystemService(
+ ClipboardManager mgr = (ClipboardManager) GameAppProxy.app.getSystemService(
Context.CLIPBOARD_SERVICE);
ClipData data = ClipData.newPlainText("playerId", content);
mgr.setPrimaryClip(data);
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java
index 1e54fda..f1cce9d 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java
@@ -3,7 +3,7 @@
import android.app.AlertDialog;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.PlatformDiff;
import com.secondworld.sdk.UnityMsgHandler;
import com.secondworld.sdk.utils.CodeA2U;
@@ -31,7 +31,7 @@
@Override
public void process(JSONObject json) throws JSONException {
- GameApp.I.appId = json.getString("appID");
+ GameAppProxy.appId = json.getString("appID");
long size = DeviceUtil.getTotalRAMSize() / 1024 / 1024;
LogUtil.debug("CmdInit", "鍐呭瓨锛�" + size + " mb");
@@ -42,7 +42,7 @@
_builder.setCancelable(false);
_builder.setMessage("鎮ㄧ殑璁惧杩愯鍐呭瓨涓嶆弧瓒宠姹�,鏃犳硶姝e父杩愯娓告垙");
_builder.setPositiveButton("纭畾", (dialogInterface, i) -> {
- GameApp.I.appExit();
+ GameAppProxy.appExit();
});
_builder.show();
return;
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java
index 05cf764..74cfe73 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java
@@ -4,7 +4,7 @@
import android.net.Uri;
import android.widget.Toast;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.utils.CodeU2A;
import com.secondworld.sdk.utils.LogUtil;
@@ -25,14 +25,14 @@
File file = new File(path);
if (!file.exists()) {
LogUtil.w("InstallApp", "鏂囦欢涓嶅瓨鍦�");
- Toast.makeText(GameApp.I, "鎵句笉瀹夎鏂囦欢", Toast.LENGTH_SHORT).show();
+ Toast.makeText(GameAppProxy.app, "鎵句笉瀹夎鏂囦欢", Toast.LENGTH_SHORT).show();
return;
}
Intent _intent = new Intent(Intent.ACTION_VIEW);
_intent.setDataAndType(Uri.fromFile(file),
"application/vnd.android.package-archive");
_intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- GameApp.I.startActivity(_intent);
+ GameAppProxy.app.startActivity(_intent);
} catch (Exception e) {
LogUtil.e("CmdInstallAPK", e);
}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java
index 0ffcfd1..1f12873 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java
@@ -1,6 +1,6 @@
package com.secondworld.sdk.command;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.utils.CodeU2A;
import org.json.JSONObject;
@@ -13,6 +13,6 @@
@Override
public void process(JSONObject json) {
- GameApp.I.restartApp();
+ GameAppProxy.restartApp();
}
}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java
index b72978e..3ab7e57 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java
@@ -6,7 +6,7 @@
import android.content.IntentFilter;
import android.os.BatteryManager;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.UnityMsgHandler;
import java.util.HashMap;
@@ -35,13 +35,13 @@
public void start() {
m_BatteryBroadCastReceiver = new BatteryBroadCastReceiver();
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
- GameApp.I.registerReceiver(m_BatteryBroadCastReceiver, filter);
+ GameAppProxy.app.registerReceiver(m_BatteryBroadCastReceiver, filter);
}
public void stop() {
if (m_BatteryBroadCastReceiver != null) {
try {
- GameApp.I.unregisterReceiver(m_BatteryBroadCastReceiver);
+ GameAppProxy.app.unregisterReceiver(m_BatteryBroadCastReceiver);
m_BatteryBroadCastReceiver = null;
} catch (IllegalArgumentException e) {
if (!Objects.requireNonNull(e.getMessage()).contains("Receiver not registered")) {
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java
index df62599..81ac489 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java
@@ -9,7 +9,7 @@
import android.os.Build;
import android.provider.Settings;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import java.net.NetworkInterface;
import java.util.Enumeration;
@@ -25,9 +25,9 @@
public static long getVersionCode() {
long appVersionCode = 0;
try {
- PackageInfo packageInfo = GameApp.I.getApplicationContext()
+ PackageInfo packageInfo = GameAppProxy.app.getApplicationContext()
.getPackageManager()
- .getPackageInfo(GameApp.I.getPackageName(), 0);
+ .getPackageInfo(GameAppProxy.app.getPackageName(), 0);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
appVersionCode = packageInfo.getLongVersionCode();
} else {
@@ -43,9 +43,9 @@
public static String getVersionName() {
String appVersionName = "";
try {
- PackageInfo packageInfo = GameApp.I.getApplicationContext()
+ PackageInfo packageInfo = GameAppProxy.app.getApplicationContext()
.getPackageManager()
- .getPackageInfo(GameApp.I.getPackageName(), 0);
+ .getPackageInfo(GameAppProxy.app.getPackageName(), 0);
appVersionName = packageInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
LogUtil.e("getAppVersionName", e);
@@ -60,14 +60,14 @@
* @return
*/
public static long getTotalRAMSize() {
- ActivityManager manager = (ActivityManager) GameApp.I.getSystemService(Context.ACTIVITY_SERVICE);
+ ActivityManager manager = (ActivityManager) GameAppProxy.app.getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();
manager.getMemoryInfo(info);
return info.totalMem;
}
public static String getAndroidId() {
- String ANDROID_ID = Settings.System.getString(GameApp.I.getContentResolver(), Settings.System.ANDROID_ID);
+ String ANDROID_ID = Settings.System.getString(GameAppProxy.app.getContentResolver(), Settings.System.ANDROID_ID);
if (ANDROID_ID == null || ANDROID_ID.equals("9774d56d682e549c"))
return "";
return ANDROID_ID;
@@ -129,7 +129,7 @@
break;
}
} else {
- WifiManager wifi = (WifiManager) GameApp.I.getSystemService(Context.WIFI_SERVICE);
+ WifiManager wifi = (WifiManager) GameAppProxy.app.getSystemService(Context.WIFI_SERVICE);
if (wifi != null) {
WifiInfo wifiInfo = wifi.getConnectionInfo();
if (wifiInfo != null) {
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java
index 8cefb12..443a481 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java
@@ -2,7 +2,7 @@
import android.content.res.AssetManager;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
import com.secondworld.sdk.UnityMsgHandler;
import java.io.File;
@@ -37,8 +37,8 @@
return;
}
- String _dest = GameApp.I.getExternalFilesDir("").getAbsolutePath();
- AssetManager _assetMgr = GameApp.I.getAssets();
+ String _dest = GameAppProxy.app.getExternalFilesDir("").getAbsolutePath();
+ AssetManager _assetMgr = GameAppProxy.app.getAssets();
try {
String[] _fileNames = _assetMgr.list("android");
if (_fileNames != null) {
@@ -64,7 +64,7 @@
*/
public static void copyOneAsset(String fileName) {
String originalPath = "android" + File.separator + fileName;
- String destPath = GameApp.I.getExternalFilesDir(
+ String destPath = GameAppProxy.app.getExternalFilesDir(
"").getAbsolutePath() + File.separator + fileName;
String _destDir = destPath.substring(0, destPath.lastIndexOf('/') + 1);
File _file = new File(_destDir);
@@ -72,7 +72,7 @@
boolean mkdir = _file.mkdir();
}
try {
- InputStream _is = GameApp.I.getAssets().open(originalPath);
+ InputStream _is = GameAppProxy.app.getAssets().open(originalPath);
FileOutputStream _fos = new FileOutputStream(new File(destPath));
byte[] _buffer = new byte[1024];
int _byteCount;
@@ -89,7 +89,7 @@
public static void copy(String original, String dest) {
try {
- String[] fileNames = GameApp.I.getAssets().list(original);
+ String[] fileNames = GameAppProxy.app.getAssets().list(original);
if (fileNames.length > 0) {
File dir = new File(dest);
String mkdir = dir.mkdir() ? "鎴愬姛" : "澶辫触";
@@ -99,7 +99,7 @@
dest + File.separator + _fileName);
}
} else {
- InputStream _is = GameApp.I.getAssets().open(original);
+ InputStream _is = GameAppProxy.app.getAssets().open(original);
FileOutputStream _fos = new FileOutputStream(new File(dest));
byte[] _buffer = new byte[1024];
int _byteCount;
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/RequestCode.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/RequestCode.java
new file mode 100644
index 0000000..8bd38a2
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/RequestCode.java
@@ -0,0 +1,6 @@
+package com.secondworld.sdk.utils;
+
+public interface RequestCode {
+ int UNITY=1000;
+ int QUICK = 1001;
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java
index d0b02a6..c0c145a 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java
@@ -3,7 +3,7 @@
import android.content.Context;
import android.content.SharedPreferences;
-import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.GameAppProxy;
public class SPUtils {
@@ -11,7 +11,7 @@
public static SharedPreferences get() {
if (data == null)
- data = GameApp.I.getSharedPreferences("data", Context.MODE_PRIVATE);
+ data = GameAppProxy.app.getSharedPreferences("data", Context.MODE_PRIVATE);
return data;
}
diff --git a/SdkProject/plugins/appsflyer/java/com/secondworld/sdk/AppsFlyerUtil.java b/SdkProject/plugins/appsflyer/java/com/secondworld/sdk/AppsFlyerUtil.java
index b2f5006..a52e0f4 100644
--- a/SdkProject/plugins/appsflyer/java/com/secondworld/sdk/AppsFlyerUtil.java
+++ b/SdkProject/plugins/appsflyer/java/com/secondworld/sdk/AppsFlyerUtil.java
@@ -41,15 +41,15 @@
}
};
- AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionListener, GameApp.I);
- AppsFlyerLib.getInstance().startTracking(GameApp.I);
+ AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionListener, GameAppProxy.app);
+ AppsFlyerLib.getInstance().startTracking(GameAppProxy.app);
}
//缁熻浜嬩欢
public static void trackEvent(String eventName, Map<String, Object> eventValues) {
if (eventValues == null)
eventValues = new HashMap<>();
- AppsFlyerLib.getInstance().trackEvent(GameApp.I, eventName, eventValues);
+ AppsFlyerLib.getInstance().trackEvent(GameAppProxy.app, eventName, eventValues);
}
}
diff --git a/SdkProject/plugins/bugly/build.gradle b/SdkProject/plugins/bugly/build.gradle
deleted file mode 100644
index e69de29..0000000
--- a/SdkProject/plugins/bugly/build.gradle
+++ /dev/null
diff --git a/SdkProject/plugins/quick/deps.gradle b/SdkProject/plugins/quick/deps.gradle
new file mode 100644
index 0000000..0ce6a16
--- /dev/null
+++ b/SdkProject/plugins/quick/deps.gradle
@@ -0,0 +1,3 @@
+dependencies {
+
+}
\ No newline at end of file
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickApp.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickApp.java
new file mode 100644
index 0000000..a03683c
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickApp.java
@@ -0,0 +1,19 @@
+package com.secondworld.sdk;
+
+import com.quicksdk.QuickSdkApplication;
+
+public abstract class QuickApp extends QuickSdkApplication {
+
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ GameAppProxy.create(this, getPlatform());
+ GameActivity.registerProxy(getMainProxy());
+ }
+
+ protected abstract PlatformDiff getPlatform();
+
+ protected abstract Class<? extends GameActivityProxy> getMainProxy();
+
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java
new file mode 100644
index 0000000..a4b0e47
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java
@@ -0,0 +1,331 @@
+package com.secondworld.sdk;
+
+
+import android.Manifest;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.provider.Settings;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
+import android.widget.Toast;
+
+import com.quicksdk.BaseCallBack;
+import com.quicksdk.Extend;
+import com.quicksdk.FuncType;
+import com.quicksdk.Payment;
+import com.quicksdk.QuickSDK;
+import com.quicksdk.Sdk;
+import com.quicksdk.User;
+import com.quicksdk.entity.GameRoleInfo;
+import com.quicksdk.entity.OrderInfo;
+import com.quicksdk.entity.UserInfo;
+import com.quicksdk.notifier.ExitNotifier;
+import com.quicksdk.notifier.InitNotifier;
+import com.quicksdk.notifier.LoginNotifier;
+import com.quicksdk.notifier.LogoutNotifier;
+import com.quicksdk.notifier.PayNotifier;
+import com.quicksdk.notifier.SwitchAccountNotifier;
+import com.secondworld.sdk.utils.CodeA2U;
+import com.secondworld.sdk.utils.LogUtil;
+import com.secondworld.sdk.utils.RequestCode;
+import com.unity3d.player.UnityPlayer;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+public class QuickSdkMgr extends PlatformSdkMgr {
+
+ public static QuickSdkMgr I = new QuickSdkMgr();
+
+ String productCode;
+ String productKey;
+
+ int REQUEST_RECORD_PERMISSION_SETTING = 110;
+
+ private boolean hasPermissions(Activity activity) {
+ return (ContextCompat.checkSelfPermission(activity,
+ Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)
+ && (ContextCompat.checkSelfPermission(activity,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
+ }
+
+ public void requestPermissions(Activity activity) {
+ try {
+ // check鏉冮檺
+ if (!hasPermissions(activity)) {
+ // 娌℃湁鍒欑敵璇锋潈闄�
+ ActivityCompat.requestPermissions(activity, new String[]{
+ Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, RequestCode.QUICK);
+ } else {
+ QuickSdkMgr.I.init(activity);
+ }
+ } catch (Exception e) {
+ QuickSdkMgr.I.init(activity);
+ }
+ }
+
+ public void onRequestPermissionsResult(Activity activity, int requestCode, int[] grantResults) {
+ if (requestCode != RequestCode.QUICK) return;
+ if (hasPermissions(activity)) {
+ QuickSdkMgr.I.init(activity);
+ return;
+ }
+ final AlertDialog.Builder normalDialog = new AlertDialog.Builder(activity);
+ normalDialog.setTitle("鏉冮檺璁剧疆");
+ normalDialog.setMessage("娓告垙闇�瑕侀儴鍒嗘潈闄愭墠鑳芥甯歌繍琛岋紝璇峰墠寰�璁剧疆涓墦寮�鐢佃瘽鏉冮檺涓庡瓨鍌ㄦ潈闄�");
+ normalDialog.setPositiveButton("鍓嶅線璁剧疆", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
+ intent.setData(uri);
+ activity.startActivityForResult(intent, REQUEST_RECORD_PERMISSION_SETTING);
+ dialog.dismiss();
+ }
+ });
+ normalDialog.setNegativeButton("閫�鍑�", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ GameAppProxy.appExit();
+ }
+ });
+ // 鏄剧ず
+ normalDialog.show();
+ }
+
+ public void onActivityResult(Activity activity, int requestCode) {
+ if (requestCode == REQUEST_RECORD_PERMISSION_SETTING)
+ requestPermissions(activity);
+ }
+
+ public void init(Activity activity) {
+ sdkInitState = SdkInitState.LOADING;
+ Sdk.getInstance().init(activity, productCode, productKey);
+ }
+
+ public void login() {
+ switch (sdkInitState) {
+ case FAILED:
+ case UNKNOWN: {
+ if (GameActivityProxy.I.activity == null)
+ return;
+ if (hasPermissions(GameActivityProxy.I.activity)) {
+ init(BtGameMain.I.activity);
+ Toast.makeText(GameAppProxy.app, "姝e湪鍒濆鍖栦腑锛岃绋嶇瓑", Toast.LENGTH_LONG).show();
+ }
+ break;
+ }
+ case SUCCEED: {
+ User.getInstance().login(GameActivityProxy.I.activity);
+ break;
+ }
+ case LOADING: {
+ Toast.makeText(GameAppProxy.app, "姝e湪鍒濆鍖栦腑锛岃绋嶇瓑", Toast.LENGTH_LONG).show();
+ break;
+ }
+ }
+ }
+
+ public void loginOut() {
+ if (GameActivityProxy.I.activity == null)
+ return;
+ User.getInstance().logout(GameActivityProxy.I.activity);
+ }
+
+ public void setGameRoleInfo(GameRoleInfo roleInfo, boolean createRole) {
+ if (GameActivityProxy.I.activity == null)
+ return;
+ User.getInstance().setGameRoleInfo(GameActivityProxy.I.activity, roleInfo, createRole);
+ }
+
+ public void pay(OrderInfo orderInfo, GameRoleInfo roleInfo) {
+ if (GameActivityProxy.I.activity == null)
+ return;
+ Payment.getInstance().pay(GameActivityProxy.I.activity, orderInfo, roleInfo);
+ }
+
+ public void verifyRealName() {
+ if (GameActivityProxy.I.activity == null)
+ return;
+ // 鍒ゆ柇娓犻亾鏄惁鏀寔瀹炲悕璁よ瘉鍔熻兘
+ if (Extend.getInstance().isFunctionSupported(FuncType.REAL_NAME_REGISTER)) {
+ Extend.getInstance().callFunctionWithParamsCallBack(GameActivityProxy.I.activity, FuncType.REAL_NAME_REGISTER, new BaseCallBack() {
+ @Override
+ public void onSuccess(Object... arg0) {
+ if (arg0 != null && arg0.length > 0) {
+ JSONObject jsonObject = (JSONObject) arg0[0];
+ try {
+ // 鐢ㄦ埛id
+ String uid = jsonObject.getString("uid");
+ // 骞撮緞, 濡傛灉娓犻亾娌¤繑鍥為粯璁や负-1
+ int age = jsonObject.getInt("age");
+ // 鏄惁宸插疄鍚� true琛ㄧず宸插疄鍚�
+ // false琛ㄧず鏈疄鍚�,濡傛灉娓犻亾娌¤繑鍥為粯璁や负false
+ boolean realName = jsonObject.getBoolean("realName");
+ // oppo瀹炲悕璁よ瘉澶辫触涔嬪悗鏄惁鍙互缁х画娓告垙 true琛ㄧず鍙互
+ // false琛ㄧず涓嶅彲浠�,濡傛灉娓犻亾娌¤繑鍥為粯璁や负true
+ boolean resumeGame = jsonObject.getBoolean("resumeGame");
+ // 棰勭暀瀛楁,濡傛灉娓犻亾娌¤繑鍥為粯璁や负""鐨勫瓧绗︿覆
+ String other = jsonObject.getString("other");
+ // 娓告垙鏍规嵁杩斿洖淇℃伅鍋氬搴旂殑閫昏緫澶勭悊
+
+ } catch (JSONException e) {
+
+ }
+ }
+ }
+
+ @Override
+ public void onFailed(Object... arg0) {
+
+ }
+ });
+ }
+ }
+
+ public void register(String productCode, String productKey) {
+ this.productCode = productCode;
+ this.productKey = productKey;
+ QuickSDK.getInstance().setInitNotifier(new InitNotifier() {
+ @Override
+ public void onSuccess() {
+ //鍒濆鍖栨垚鍔�
+ sdkInitState = SdkInitState.SUCCEED;
+ LogUtil.debug("SdkManager", "鍒濆鍖栨垚鍔�");
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk);
+ }
+
+ @Override
+ public void onFailed(String message, String trace) {
+ //鍒濆鍖栧け璐�
+ sdkInitState = SdkInitState.FAILED;
+ LogUtil.e("SdkManager", "鍒濆鍖栧け璐� msg锛�" + message);
+ LogUtil.e("SdkManager", "鍒濆鍖栧け璐� trace锛�" + trace);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitFail);
+ }
+ });
+ QuickSDK.getInstance().setLoginNotifier(new LoginNotifier() {
+ @Override
+ public void onSuccess(UserInfo userInfo) {
+ //鐧诲綍鎴愬姛锛岃幏鍙栧埌鐢ㄦ埛淇℃伅userInfo
+ //閫氳繃userInfo涓殑UID銆乼oken鍋氭湇鍔″櫒鐧诲綍璁よ瘉
+ LogUtil.e("SdkManager", "鐧诲綍鎴愬姛");
+ try {
+ args.clear();
+ JSONObject info = new JSONObject();
+ String cid = com.quicksdk.Extend.getInstance().getExtrasConfig("cid");
+ if (cid == null || cid.isEmpty())
+ cid = com.quicksdk.Extend.getInstance().getChannelType() + "";
+ String account = userInfo.getUID() + "@" + cid;
+ info.put("account", account);
+ info.put("userName", userInfo.getUID());
+ info.put("token", userInfo.getToken());
+ args.put("info", info);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ LogUtil.e("SdkManager 鐧诲綍鎴愬姛", e);
+ }
+ verifyRealName();
+ }
+
+ @Override
+ public void onCancel() {
+ //鐧诲綍鍙栨秷
+ LogUtil.e("SdkManager", "鐧诲綍澶辫触锛�");
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail);
+ }
+
+ @Override
+ public void onFailed(final String message, String trace) {
+ //鐧诲綍澶辫触
+ LogUtil.e("SdkManager", "鐧诲綍澶辫触锛�");
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail);
+ }
+ });
+ QuickSDK.getInstance().setLogoutNotifier(new LogoutNotifier() {
+ @Override
+ public void onSuccess() {
+ //娉ㄩ攢鎴愬姛
+ //娉ㄩ攢鎴愬姛,闇�瑕佹妸娓告垙鍒囨崲鍥炵櫥闄嗗墠鐨勫満鏅�,骞堕噸鏂板脊鍑虹櫥褰曟绛夋搷浣�
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk);
+ }
+
+ @Override
+ public void onFailed(String message, String trace) {
+ //娉ㄩ攢澶辫触锛屼笉鍋氬鐞�
+ }
+ });
+ QuickSDK.getInstance().setSwitchAccountNotifier(new SwitchAccountNotifier() {
+ @Override
+ public void onSuccess(UserInfo userInfo) {
+ //鍒囨崲璐﹀彿鎴愬姛鐨勫洖璋冿紝杩斿洖鏂拌处鍙风殑userInfo
+ LogUtil.e("SdkManager", "鍒囨崲璐﹀彿鎴愬姛");
+ try {
+ args.clear();
+ JSONObject info = new JSONObject();
+ String cid = com.quicksdk.Extend.getInstance().getExtrasConfig("cid");
+ if (cid == null || cid.isEmpty())
+ cid = com.quicksdk.Extend.getInstance().getChannelType() + "";
+ String account = userInfo.getUID() + "@" + cid;
+ info.put("account", account);
+ info.put("userName", userInfo.getUID());
+ info.put("token", userInfo.getToken());
+ args.put("info", info);
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformSwitchAccountOk, args);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ LogUtil.e("SdkManager 鐧诲綍鎴愬姛", e);
+ }
+ }
+
+ @Override
+ public void onCancel() {
+ //鍒囨崲璐﹀彿鍙栨秷
+ }
+
+ @Override
+ public void onFailed(String message, String trace) {
+ //鍒囨崲璐﹀彿澶辫触
+ }
+ });
+ QuickSDK.getInstance().setPayNotifier(new PayNotifier() {
+ @Override
+ public void onSuccess(String sdkOrderID, String cpOrderID,
+ String extrasParams) {
+ //鏀粯鎴愬姛
+ //sdkOrderID:quick璁㈠崟鍙� cpOrderID锛氭父鎴忚鍗曞彿
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk);
+ }
+
+ @Override
+ public void onCancel(String cpOrderID) {
+ //鏀粯鍙栨秷
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayCancel);
+ }
+
+ @Override
+ public void onFailed(String cpOrderID, String message, String trace) {
+ //鏀粯澶辫触
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayFail);
+ }
+ });
+ QuickSDK.getInstance().setExitNotifier(new ExitNotifier() {
+ @Override
+ public void onSuccess() {
+ //閫�鍑烘垚鍔燂紝娓告垙鍦ㄦ鍋氳嚜韬殑閫�鍑洪�昏緫澶勭悊
+ UnityMsgHandler.sendMessageToUnity(CodeA2U.ExitGame);
+ }
+
+ @Override
+ public void onFailed(String message, String trace) {
+ //閫�鍑哄け璐ワ紝涓嶅仛澶勭悊
+ }
+ });
+ }
+
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/SplashActivity.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/SplashActivity.java
new file mode 100644
index 0000000..a007eee
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/SplashActivity.java
@@ -0,0 +1,21 @@
+package com.secondworld.sdk;
+
+import android.content.Intent;
+import android.graphics.Color;
+
+import com.quicksdk.QuickSdkSplashActivity;
+
+public class SplashActivity extends QuickSdkSplashActivity {
+
+ @Override
+ public int getBackgroundColor() {
+ return Color.WHITE;
+ }
+
+ @Override
+ public void onSplashStop() {
+ Intent intent = new Intent(this, GameActivity.class);
+ startActivity(intent);
+ this.finish();
+ }
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdCreateRole.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdCreateRole.java
new file mode 100644
index 0000000..e459504
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdCreateRole.java
@@ -0,0 +1,37 @@
+package com.secondworld.sdk.command;
+
+import com.quicksdk.entity.GameRoleInfo;
+import com.secondworld.sdk.QuickSdkMgr;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdCreateRole implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.CreateRole;
+ }
+
+ @Override
+ public void process(JSONObject json) throws Exception {
+ GameRoleInfo roleInfo = new GameRoleInfo();
+ roleInfo.setServerID(json.getString("sid"));
+ roleInfo.setServerName(json.getString("serverName"));
+ roleInfo.setGameRoleName(json.getString("roleName").trim().replace(" ", ""));
+ roleInfo.setGameRoleID(json.getString("roleID"));
+ roleInfo.setGameBalance(json.getString("money"));
+ roleInfo.setVipLevel( json.getString("vipLevel")); //璁剧疆褰撳墠鐢ㄦ埛vip绛夌骇锛屽繀椤讳负鏁板瓧鏁村瀷瀛楃涓�,璇峰嬁浼�"vip1"绛夌被浼煎瓧绗︿覆
+ roleInfo.setGameUserLevel(json.getString("level"));//璁剧疆娓告垙瑙掕壊绛夌骇
+ roleInfo.setPartyName(json.getString("familyName").trim().replace(" ",""));//璁剧疆甯淳鍚嶇О
+ roleInfo.setRoleCreateTime( json.getString("createTime")); //UC锛屽綋涔愪笌1881锛孴T娓犻亾蹇呬紶锛屽�间负10浣嶆暟鏃堕棿鎴�
+
+ roleInfo.setPartyId("1100"); //360娓犻亾鍙傛暟锛岃缃府娲緄d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setGameRolePower("38"); //360,TT璇煶娓犻亾鍙傛暟锛岃缃鑹叉垬鍔涳紝蹇呴』涓烘暣鍨嬪瓧绗︿覆
+ roleInfo.setPartyRoleId("11"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑id
+ roleInfo.setPartyRoleName("甯富"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑鍚嶇О
+ roleInfo.setProfessionId("38"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓歩d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setProfession("娉曞笀"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓氬悕绉�
+ roleInfo.setFriendlist("鏃�"); //360娓犻亾鍙傛暟锛岃缃ソ鍙嬪叧绯诲垪琛紝鏍煎紡璇峰弬鑰冿細http://open.quicksdk.net/help/detail/aid/190
+ QuickSdkMgr.I.setGameRoleInfo(roleInfo, true);
+ }
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPayFinished.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPayFinished.java
new file mode 100644
index 0000000..5938411
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPayFinished.java
@@ -0,0 +1,16 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdPayFinished implements ICommand{
+ @Override
+ public int getCode() {
+ return CodeU2A.PayFinished;
+ }
+
+ @Override
+ public void process(JSONObject json) throws Exception {
+ }
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogin.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogin.java
new file mode 100644
index 0000000..f133a40
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogin.java
@@ -0,0 +1,18 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.QuickSdkMgr;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdPlatformLogin implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.PlatformLogin;
+ }
+
+ @Override
+ public void process(JSONObject json) throws Exception {
+ QuickSdkMgr.I.login();
+ }
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogout.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogout.java
new file mode 100644
index 0000000..fd1d7d7
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformLogout.java
@@ -0,0 +1,18 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.QuickSdkMgr;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdPlatformLogout implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.PlatformLogout;
+ }
+
+ @Override
+ public void process(JSONObject json) throws Exception {
+ QuickSdkMgr.I.loginOut();
+ }
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformPay.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformPay.java
new file mode 100644
index 0000000..25b5140
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdPlatformPay.java
@@ -0,0 +1,60 @@
+package com.secondworld.sdk.command;
+
+import com.quicksdk.entity.GameRoleInfo;
+import com.quicksdk.entity.OrderInfo;
+import com.secondworld.sdk.GameAppProxy;
+import com.secondworld.sdk.QuickSdkMgr;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+import java.net.URLEncoder;
+
+public class CmdPlatformPay implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.PlatformPay;
+ }
+
+ @Override
+ public void process(JSONObject json) throws Exception {
+
+
+ JSONObject extraData = new JSONObject();
+ extraData.put("appid", GameAppProxy.appId);
+ extraData.put("cpinfo", json.getString("cpInfo"));
+ extraData.put("cporderid", json.getString("orderId"));
+
+ GameRoleInfo roleInfo = new GameRoleInfo();
+ roleInfo.setServerID(json.getString("sid"));
+ roleInfo.setServerName(json.getString("serverName"));
+ roleInfo.setGameRoleName(json.getString("roleName").trim().replace(" ", ""));
+ roleInfo.setGameRoleID(json.getString("roleID"));
+ roleInfo.setGameBalance(json.getString("money"));
+ roleInfo.setVipLevel(json.getString("vipLevel")); //璁剧疆褰撳墠鐢ㄦ埛vip绛夌骇锛屽繀椤讳负鏁板瓧鏁村瀷瀛楃涓�,璇峰嬁浼�"vip1"绛夌被浼煎瓧绗︿覆
+ roleInfo.setGameUserLevel(json.getString("level"));//璁剧疆娓告垙瑙掕壊绛夌骇
+ roleInfo.setPartyName(json.getString("familyName").trim().replace(" ", ""));//璁剧疆甯淳鍚嶇О
+ roleInfo.setRoleCreateTime(json.getString("createTime")); //UC锛屽綋涔愪笌1881锛孴T娓犻亾蹇呬紶锛屽�间负10浣嶆暟鏃堕棿鎴�
+
+ roleInfo.setPartyId("1100"); //360娓犻亾鍙傛暟锛岃缃府娲緄d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setGameRolePower("38"); //360,TT璇煶娓犻亾鍙傛暟锛岃缃鑹叉垬鍔涳紝蹇呴』涓烘暣鍨嬪瓧绗︿覆
+ roleInfo.setPartyRoleId("11"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑id
+ roleInfo.setPartyRoleName("甯富"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑鍚嶇О
+ roleInfo.setProfessionId("38"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓歩d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setProfession("娉曞笀"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓氬悕绉�
+ roleInfo.setFriendlist("鏃�"); //360娓犻亾鍙傛暟锛岃缃ソ鍙嬪叧绯诲垪琛紝鏍煎紡璇峰弬鑰冿細http://open.quicksdk.net/help/detail/aid/190
+
+
+ OrderInfo orderInfo = new OrderInfo();
+ orderInfo.setCpOrderID(json.getString("orderId"));
+ orderInfo.setGoodsName(json.getString("title"));//鍟嗗搧鍚嶇О锛屼笉甯︽暟閲�
+ orderInfo.setCount(1);//娓告垙甯佹暟閲�
+ orderInfo.setAmount((float) json.getDouble("mount"));
+ orderInfo.setGoodsID(json.getString("cpInfo"));
+ orderInfo.setGoodsDesc(json.getString("title"));
+ orderInfo.setExtrasParams(
+ URLEncoder.encode(extraData.toString(), "utf-8"));
+
+ QuickSdkMgr.I.pay(orderInfo, roleInfo);
+ }
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLevelUp.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLevelUp.java
new file mode 100644
index 0000000..57e6d06
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLevelUp.java
@@ -0,0 +1,38 @@
+package com.secondworld.sdk.command;
+
+import com.quicksdk.entity.GameRoleInfo;
+import com.secondworld.sdk.QuickSdkMgr;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdRoleLevelUp implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.RoleLevelUp;
+ }
+
+ @Override
+ public void process(JSONObject json) throws Exception {
+ GameRoleInfo roleInfo = new GameRoleInfo();
+ roleInfo.setServerID(json.getString("sid"));
+ roleInfo.setServerName(json.getString("serverName"));
+ roleInfo.setGameRoleName(json.getString("roleName").trim().replace(" ", ""));
+ roleInfo.setGameRoleID(json.getString("roleID"));
+ roleInfo.setGameBalance(json.getString("money"));
+ roleInfo.setVipLevel(json.getString("vipLevel")); //璁剧疆褰撳墠鐢ㄦ埛vip绛夌骇锛屽繀椤讳负鏁板瓧鏁村瀷瀛楃涓�,璇峰嬁浼�"vip1"绛夌被浼煎瓧绗︿覆
+ roleInfo.setGameUserLevel(json.getString("level"));//璁剧疆娓告垙瑙掕壊绛夌骇
+ roleInfo.setPartyName(json.getString("familyName").trim().replace(" ", ""));//璁剧疆甯淳鍚嶇О
+ roleInfo.setRoleCreateTime(json.getString("createTime")); //UC锛屽綋涔愪笌1881锛孴T娓犻亾蹇呬紶锛屽�间负10浣嶆暟鏃堕棿鎴�
+
+ roleInfo.setPartyId("1100"); //360娓犻亾鍙傛暟锛岃缃府娲緄d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setGameRolePower("38"); //360,TT璇煶娓犻亾鍙傛暟锛岃缃鑹叉垬鍔涳紝蹇呴』涓烘暣鍨嬪瓧绗︿覆
+ roleInfo.setPartyRoleId("11"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑id
+ roleInfo.setPartyRoleName("甯富"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑鍚嶇О
+ roleInfo.setProfessionId("38"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓歩d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setProfession("娉曞笀"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓氬悕绉�
+ roleInfo.setFriendlist("鏃�"); //360娓犻亾鍙傛暟锛岃缃ソ鍙嬪叧绯诲垪琛紝鏍煎紡璇峰弬鑰冿細http://open.quicksdk.net/help/detail/aid/190
+
+ QuickSdkMgr.I.setGameRoleInfo(roleInfo, false);
+ }
+}
diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLogin.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLogin.java
new file mode 100644
index 0000000..91ac99e
--- /dev/null
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/command/CmdRoleLogin.java
@@ -0,0 +1,38 @@
+package com.secondworld.sdk.command;
+
+import com.quicksdk.entity.GameRoleInfo;
+import com.secondworld.sdk.QuickSdkMgr;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdRoleLogin implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.RoleLogin;
+ }
+
+ @Override
+ public void process(JSONObject json) throws Exception {
+ GameRoleInfo roleInfo = new GameRoleInfo();
+ roleInfo.setServerID(json.getString("sid"));
+ roleInfo.setServerName(json.getString("serverName"));
+ roleInfo.setGameRoleName(json.getString("roleName").trim().replace(" ", ""));
+ roleInfo.setGameRoleID(json.getString("roleID"));
+ roleInfo.setGameBalance(json.getString("money"));
+ roleInfo.setVipLevel(json.getString("vipLevel")); //璁剧疆褰撳墠鐢ㄦ埛vip绛夌骇锛屽繀椤讳负鏁板瓧鏁村瀷瀛楃涓�,璇峰嬁浼�"vip1"绛夌被浼煎瓧绗︿覆
+ roleInfo.setGameUserLevel(json.getString("level"));//璁剧疆娓告垙瑙掕壊绛夌骇
+ roleInfo.setPartyName(json.getString("familyName").trim().replace(" ", ""));//璁剧疆甯淳鍚嶇О
+ roleInfo.setRoleCreateTime(json.getString("createTime")); //UC锛屽綋涔愪笌1881锛孴T娓犻亾蹇呬紶锛屽�间负10浣嶆暟鏃堕棿鎴�
+
+ roleInfo.setPartyId("1100"); //360娓犻亾鍙傛暟锛岃缃府娲緄d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setGameRolePower("38"); //360,TT璇煶娓犻亾鍙傛暟锛岃缃鑹叉垬鍔涳紝蹇呴』涓烘暣鍨嬪瓧绗︿覆
+ roleInfo.setPartyRoleId("11"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑id
+ roleInfo.setPartyRoleName("甯富"); //360娓犻亾鍙傛暟锛岃缃鑹插湪甯淳涓殑鍚嶇О
+ roleInfo.setProfessionId("38"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓歩d锛屽繀椤讳负鏁村瀷瀛楃涓�
+ roleInfo.setProfession("娉曞笀"); //360娓犻亾鍙傛暟锛岃缃鑹茶亴涓氬悕绉�
+ roleInfo.setFriendlist("鏃�"); //360娓犻亾鍙傛暟锛岃缃ソ鍙嬪叧绯诲垪琛紝鏍煎紡璇峰弬鑰冿細http://open.quicksdk.net/help/detail/aid/190
+
+ QuickSdkMgr.I.setGameRoleInfo(roleInfo, false);
+ }
+}
diff --git a/SdkProject/plugins/quick/libs/armeabi-v7a/libqkcheck.so b/SdkProject/plugins/quick/libs/armeabi-v7a/libqkcheck.so
new file mode 100644
index 0000000..8afb828
--- /dev/null
+++ b/SdkProject/plugins/quick/libs/armeabi-v7a/libqkcheck.so
Binary files differ
diff --git a/SdkProject/plugins/quick/libs/armeabi/libqkcheck.so b/SdkProject/plugins/quick/libs/armeabi/libqkcheck.so
new file mode 100644
index 0000000..e5f9d2e
--- /dev/null
+++ b/SdkProject/plugins/quick/libs/armeabi/libqkcheck.so
Binary files differ
diff --git a/SdkProject/plugins/quick/libs/quicksdk_v2.7.1_20200309.jar b/SdkProject/plugins/quick/libs/quicksdk_v2.7.1_20200309.jar
new file mode 100644
index 0000000..ddb3cb4
--- /dev/null
+++ b/SdkProject/plugins/quick/libs/quicksdk_v2.7.1_20200309.jar
Binary files differ
diff --git a/SdkProject/plugins/quick/libs/x86/libqkcheck.so b/SdkProject/plugins/quick/libs/x86/libqkcheck.so
new file mode 100644
index 0000000..6f95276
--- /dev/null
+++ b/SdkProject/plugins/quick/libs/x86/libqkcheck.so
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load01.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load01.png
new file mode 100644
index 0000000..1719063
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load01.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load02.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load02.png
new file mode 100644
index 0000000..e3bda2f
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load02.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load03.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load03.png
new file mode 100644
index 0000000..220e840
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load03.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load04.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load04.png
new file mode 100644
index 0000000..bf8a5de
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load04.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load05.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load05.png
new file mode 100644
index 0000000..8bb753f
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load05.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load06.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load06.png
new file mode 100644
index 0000000..6761071
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load06.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load07.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load07.png
new file mode 100644
index 0000000..57f8458
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load07.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load08.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load08.png
new file mode 100644
index 0000000..fb44182
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_load08.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_loadbg.png b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_loadbg.png
new file mode 100644
index 0000000..3cc9f72
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable-hdpi/qk_game_loadbg.png
Binary files differ
diff --git a/SdkProject/plugins/quick/res/drawable/qk_game_loading.xml b/SdkProject/plugins/quick/res/drawable/qk_game_loading.xml
new file mode 100644
index 0000000..5891d83
--- /dev/null
+++ b/SdkProject/plugins/quick/res/drawable/qk_game_loading.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
+ android:oneshot="false" >
+
+ <item
+ android:drawable="@drawable/qk_game_load01"
+ android:duration="50"/>
+ <item
+ android:drawable="@drawable/qk_game_load02"
+ android:duration="50"/>
+ <item
+ android:drawable="@drawable/qk_game_load03"
+ android:duration="50"/>
+ <item
+ android:drawable="@drawable/qk_game_load04"
+ android:duration="50"/>
+ <item
+ android:drawable="@drawable/qk_game_load05"
+ android:duration="50"/>
+ <item
+ android:drawable="@drawable/qk_game_load06"
+ android:duration="50"/>
+ <item
+ android:drawable="@drawable/qk_game_load07"
+ android:duration="50"/>
+ <item
+ android:drawable="@drawable/qk_game_load08"
+ android:duration="50"/>
+
+</animation-list>
\ No newline at end of file
diff --git a/SdkProject/plugins/quick/res/layout/qk_game_view_loading.xml b/SdkProject/plugins/quick/res/layout/qk_game_view_loading.xml
new file mode 100644
index 0000000..846151c
--- /dev/null
+++ b/SdkProject/plugins/quick/res/layout/qk_game_view_loading.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <ImageView
+ android:id="@+id/qk_img_loading"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:scaleType="center"
+ android:src="@drawable/qk_game_loading" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/SdkProject/plugins/quick/res/values/qk_game_style.xml b/SdkProject/plugins/quick/res/values/qk_game_style.xml
new file mode 100644
index 0000000..4e6b020
--- /dev/null
+++ b/SdkProject/plugins/quick/res/values/qk_game_style.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <!-- 鑷畾涔塴oading dialog -->
+ <style name="qk_game_style_loading" parent="android:style/Theme.Dialog">
+ <item name="android:windowFrame">@null</item>
+ <item name="android:windowNoTitle">true</item>
+ <item name="android:windowBackground">@drawable/qk_game_loadbg</item>
+ <item name="android:windowIsFloating">true</item>
+ <item name="android:windowContentOverlay">@null</item>
+ </style>
+
+
+
+</resources>
\ No newline at end of file
diff --git a/SdkProject/plugins/quick/res/xml/filepaths.xml b/SdkProject/plugins/quick/res/xml/filepaths.xml
new file mode 100644
index 0000000..f188c4e
--- /dev/null
+++ b/SdkProject/plugins/quick/res/xml/filepaths.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<paths xmlns:android="http://schemas.android.com/apk/res/android">
+ <external-path
+ name="external"
+ path="." />
+</paths>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..2aecd9e
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,37 @@
+plugins {
+ id 'com.android.library'
+}
+
+android {
+ compileSdkVersion 29
+ buildToolsVersion "30.0.2"
+
+ defaultConfig {
+ minSdkVersion 21
+ targetSdkVersion 29
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ consumerProguardFiles "consumer-rules.pro"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation 'com.android.support:appcompat-v7:28.0.0'
+ testImplementation 'junit:junit:4.+'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+}
\ No newline at end of file
--
Gitblit v1.8.0