فهرست منبع

v1.0.0开发:
1)谷歌账号登录切增加注销操作
2)修复通知发货接口由于iap服务问题导致重复调用

#Suyghur 3 سال پیش
والد
کامیت
065a2ef9b5

+ 1 - 1
build.gradle

@@ -4,7 +4,7 @@ buildscript {
     // demo远程依赖
     ext.REMOTE_LIBRARY = false
     // 发布开关
-    ext.PUBLISH_ENABLE = true
+    ext.PUBLISH_ENABLE = false
     // 混淆开关
     ext.MINIFY_ENABLE = true
     // ndk版本

+ 1 - 1
gradle.properties

@@ -6,7 +6,7 @@
 # http://www.gradle.org/docs/current/userguide/build_environment.html
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx1024m -Xms1024m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+org.gradle.jvmargs=-Xmx2048m -Xms2048m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects

+ 1 - 52
library_core/src/main/cpp/sdk_drive.cpp

@@ -30,7 +30,6 @@ static void SetParam(JNIEnv *env, jobject thiz, jstring key, jstring value) {
         }
     }
     CommMap::GetInstance()->comm_params[key_] = value_;
-    Logger::D(env, ToolKit::ToJsonString(CommMap::GetInstance()->comm_params));
 }
 
 static jstring GetParam(JNIEnv *env, jobject thiz, jstring key) {
@@ -46,75 +45,26 @@ static jstring InvokeJob(JNIEnv *env, jobject thiz, jobject context, jstring key
     Json::Value root = ToolKit::ToJsonObject(data_);
     root["common"] = CommMap::GetInstance()->comm_params;
 
-    //生成aes key
-//    char *raw_key = AesUtils::GetRawKey();
-//    std::string md5_key = md5(raw_key);
-//    auto *key64= static_cast<char *>(malloc(65));
-//    memset(key64,0,64);
-//    sprintf(key64,"%s%s",md5_key,reverse(md5_key.begin(),md5_key.end()))
-//    std::string  aes_key=md5()
-//    LOGD("test : %s", ToolKit::StrReverse(key_));
     char *p = AesUtils::Encrypt(ToolKit::ToJsonString(root).c_str(), reinterpret_cast<const uint8_t *>(key_));
     jstring result = ToolKit::GetJString(env, p);
     env->ReleaseStringUTFChars(key, key_);
     env->ReleaseStringUTFChars(data, data_);
-//    delete (raw);
     free(p);
     return result;
-
-//    std::string enc = RequestKit::EncryptRequest2(env, context, data);
-//    env->ReleaseStringUTFChars(raw, raw_);
-//    jstring result = ToolKit::GetJString(env, enc.c_str());
-//    free(src);
-//    std::string raw = ToolKit::ToJsonString(HandleRequest(env, params));
-//    //aes key
-//    char *raw_key = AesUtils::GetRawKey();
-//    std::string raw_key_md5 = md5(raw_key);
-//    char *iv_32 = AesUtils::GetIv32(raw_key_md5.c_str());
-//    char *key_64 = static_cast<char *>(malloc(65));
-//    sprintf(key_64, "%s%s", raw_key_md5.c_str(), iv_32);
-//    key_64[65] = '\0';
-//    std::string key = md5(key_64);
-//    std::string aes_key = key.substr(8, 16);
-//    std::string p = AesUtils::Encrypt(raw.c_str(), reinterpret_cast<const uint8_t *>(aes_key.c_str()));
-//    Json::Value root;
-//    root["p"] = p;
-//    root["ts"] = raw_key_md5;
-//    free(raw_key);
-//    free(iv_32);
-//    free(key_64);
-//    delete aes_key;
-//    free((void *) aes_key);
 }
 
 static jstring ParseJob(JNIEnv *env, jobject thiz, jobject context, jstring key, jstring data) {
     const char *key_ = env->GetStringUTFChars(key, JNI_FALSE);
     const char *data_ = env->GetStringUTFChars(data, JNI_FALSE);
-
-//    Json::Value root = ToolKit::ToJsonObject(data_);
-//    const char *p = root["p"].asCString();
     char *raw = AesUtils::Decrypt(data_, reinterpret_cast<const uint8_t *>(key_));
+    Logger::D(env, raw);
     jstring result = ToolKit::GetJString(env, raw);
     env->ReleaseStringUTFChars(key, key_);
     env->ReleaseStringUTFChars(data, data_);
-//    delete (p);
     free(raw);
     return result;
-//    std::string raw = RequestKit::DecryptResponse2(env, context, data);
-//    jstring result = ToolKit::GetJString(env, raw.c_str());
-//    return result;
-//    time_t ts = time(nullptr);
-//    LOGD("%ld", ts);
-//    char *key = AesUtils::GetRawKey();
-//    return env->NewStringUTF("");
 }
 
-static jstring Test(JNIEnv *env, jobject thiz) {
-    char *key = AesUtils::GetRawKey();
-    jstring result = ToolKit::GetJString(env, key);
-    free(key);
-    return result;
-}
 
 static JNINativeMethod gMethod[] = {
         {"initSdkDrive", "(Landroid/content/Context;)V",                                                      (void *) InitSdkDrive},
@@ -122,7 +72,6 @@ static JNINativeMethod gMethod[] = {
         {"getParam",     "(Ljava/lang/String;)Ljava/lang/String;",                                            (void *) GetParam},
         {"invokeJob",    "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void *) InvokeJob},
         {"parseJob",     "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void *) ParseJob},
-        {"test",         "()Ljava/lang/String;",                                                              (void *) Test},
 };
 
 extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {

+ 2 - 3
library_core/src/main/java/cn/yyxx/eyuangame/core/impl/SdkBridgeImpl.kt

@@ -80,11 +80,11 @@ class SdkBridgeImpl(context: Context) {
             if (code == 0) {
                 Logger.i("谷歌框架可以访问,请求gaid")
                 SdkDrive.instance.setParam("device_id", GAIDUtils.getGoogleAdid())
-//                FirebaseCrashlytics.getInstance().setCustomKey("device_id", GAIDUtils.getGoogleAdid())
+                FirebaseCrashlytics.getInstance().setCustomKey("device_id", GAIDUtils.getGoogleAdid())
             } else {
                 Logger.e("谷歌框架不可访问,使用android id替代")
                 SdkDrive.instance.setParam("device_id", DeviceInfoUtils.getAndroidDeviceId(application))
-//                FirebaseCrashlytics.getInstance().setCustomKey("device_id", DeviceInfoUtils.getAndroidDeviceId(application))
+                FirebaseCrashlytics.getInstance().setCustomKey("device_id", DeviceInfoUtils.getAndroidDeviceId(application))
             }
             hasReadGaid = true
         }
@@ -158,7 +158,6 @@ class SdkBridgeImpl(context: Context) {
             override fun onResponse(resultInfo: ResultInfo) {
                 if (resultInfo.code == 1 && !TextUtils.isEmpty(resultInfo.data)) {
                     initBean = InitBean.toBean(resultInfo.data)
-                    //TODO 下载图片资源
                     cacheImageResource(activity)
 
                     Linking.instance.create(activity)

+ 0 - 12
library_core/src/main/java/cn/yyxx/eyuangame/core/impl/SdkDrive.kt

@@ -12,16 +12,6 @@ class SdkDrive {
         System.loadLibrary("eyuangame")
     }
 
-//    external fun getAesKey()
-
-//    external fun aesEncrypt(src: String): String
-
-//    external fun aesDecrypt(raw: String, key: String): String
-
-//    external fun rsaEncrypt(src: String): String
-
-//    external fun rsaDecrypt(raw: String): String
-
     external fun initSdkDrive(context: Context)
 
     external fun setParam(key: String, value: String)
@@ -32,8 +22,6 @@ class SdkDrive {
 
     external fun parseJob(context: Context, key: String, data: String): String
 
-    external fun test(): String
-
     companion object {
         val instance: SdkDrive by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
             SdkDrive()

+ 7 - 0
library_core/src/main/java/cn/yyxx/eyuangame/core/impl/iab/ChargeImpl.kt

@@ -15,6 +15,7 @@ import cn.yyxx.support.hawkeye.ToastUtils
 import com.android.billingclient.api.*
 import org.json.JSONException
 import org.json.JSONObject
+import java.util.concurrent.atomic.AtomicInteger
 
 /**
  * @author #Suyghur.
@@ -123,9 +124,15 @@ class ChargeImpl : InAppBilling() {
     }
 
     override fun purchasesUpdatedFailed() {
+        disConnection()
+        dismissDialog()
+        implCallback.onResult(-1, "支付失败")
     }
 
     override fun connectGooglePlayFailed() {
+        disConnection()
+        dismissDialog()
+        implCallback.onResult(-1, "连接谷歌商店失败")
     }
 
     /**

+ 2 - 1
library_core/src/main/java/cn/yyxx/eyuangame/core/impl/login/UserSignInImpl.kt

@@ -3,7 +3,6 @@ package cn.yyxx.eyuangame.core.impl.login
 import android.app.Activity
 import android.content.Context
 import android.content.Intent
-import android.os.Looper
 import android.text.TextUtils
 import cn.yyxx.eyuangame.base.utils.Logger
 import cn.yyxx.eyuangame.base.utils.ParamsUtils
@@ -99,7 +98,9 @@ class UserSignInImpl constructor(val activity: LoginActivity, private val callba
             return
         }
 
+
         googleSignInClient?.apply {
+            signOut()
             val intent = signInIntent
             activity.startActivityForResult(intent, 10000)
         }

+ 3 - 7
library_core/src/main/java/cn/yyxx/eyuangame/core/network/VolleyRequest.kt

@@ -39,9 +39,7 @@ object VolleyRequest {
             val randomKey = time + StrUtils.getRandomString(16)
             val rawKey = Md5Utils.encodeByMD5(randomKey)
             val aesKey = Md5Utils.encodeByMD5(rawKey + StrUtils.reverseString(rawKey))
-//            val p = AesUtils.encrypt(aesKey.substring(8, 24), jsonObject.toString())
-            val hexP =
-                SdkDrive.instance.invokeJob(context, aesKey.substring(8, 24), jsonObject.toString())
+            val hexP = SdkDrive.instance.invokeJob(context, aesKey.substring(8, 24), jsonObject.toString())
             val tmp = HexUtils.hexString2Bytes(hexP)
             val p = Base64Utils.encode(tmp)
 
@@ -68,7 +66,6 @@ object VolleyRequest {
                 val resultInfo = ResultInfo()
                 resultInfo.code = -1
                 resultInfo.msg = "接口请求异常"
-                Logger.d(it)
                 it?.apply {
                     try {
                         resultInfo.code = it.getInt("code")
@@ -89,7 +86,7 @@ object VolleyRequest {
                         e.printStackTrace()
                     }
                 }
-                it.put("data", resultInfo.data)
+                it.put("data", JSONObject(resultInfo.data))
                 Logger.d("返回信息 : $it")
                 Logger.logHandler("返回信息 : $it\n")
                 callback.onResponse(resultInfo)
@@ -145,7 +142,7 @@ object VolleyRequest {
             override fun deliverResponse(response: ByteArray) {
                 Logger.d("volley download image file success, start to save file ...")
                 try {
-                    GlobalScope.launch(Dispatchers.IO){
+                    GlobalScope.launch(Dispatchers.IO) {
                         Logger.d("with io coroutines do save file")
                         FileUtils.saveFile(filePath, response)
                     }
@@ -184,7 +181,6 @@ object VolleyRequest {
                 resultInfo.msg = volleyError.message!!
             }
         }
-
         resultInfo.data = ""
         return resultInfo
     }

+ 0 - 2
settings.gradle

@@ -1,6 +1,4 @@
 rootProject.name = "EYuanGameSdk-KTX"
 include ':demo'
 include ':library_base'
-//include ':library_comm'
 include ':library_core'
-//include ':library_drive'