From d937ac8e03c92d1339cd2876de0db15b08c44884 Mon Sep 17 00:00:00 2001 From: mago Date: Wed, 11 Mar 2026 09:39:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8C=85=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 26 + .gradle/8.11.1/checksums/checksums.lock | Bin 17 -> 0 bytes .gradle/8.11.1/checksums/md5-checksums.bin | Bin 28147 -> 0 bytes .gradle/8.11.1/checksums/sha1-checksums.bin | Bin 74327 -> 0 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .gradle/8.11.1/fileChanges/last-build.bin | Bin 1 -> 0 bytes .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 18597 -> 0 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 18531 -> 0 bytes .../buildOutputCleanup.lock | Bin 17 -> 0 bytes .gradle/buildOutputCleanup/cache.properties | 2 - .gradle/config.properties | 2 - .idea/.gitignore | 3 - .idea/.name | 1 - .idea/AndroidProjectSystem.xml | 6 - .idea/caches/deviceStreaming.xml | 1490 ----------------- .idea/compiler.xml | 6 - .idea/deploymentTargetSelector.xml | 10 - .idea/gradle.xml | 20 - .idea/migrations.xml | 10 - .idea/misc.xml | 10 - .idea/runConfigurations.xml | 17 - android/app/AndroidManifest.xml | 156 +- android/app/build.gradle | 37 +- android/app/google-services.json | 55 + .../app/src/com/cocos/game/AdjustUtil.java | 95 ++ android/app/src/com/cocos/game/AdsHelper.java | 303 ++++ .../app/src/com/cocos/game/AppActivity.java | 471 +++++- .../app/src/com/cocos/game/EventNameUtil.java | 39 + .../src/com/cocos/game/EventToScriptUtil.java | 69 + .../app/src/com/cocos/game/GlideEngine.java | 113 ++ .../app/src/com/cocos/game/GoogleUtil.java | 855 ++++++++++ .../src/com/cocos/game/ImageLoaderUtils.java | 28 + .../app/src/com/cocos/game/JSCallJava.java | 268 +++ android/app/src/com/cocos/game/MD5Util.java | 43 + .../app/src/com/cocos/game/MyApplication.java | 85 + .../game/MyFirebaseMessagingService.java | 198 +++ .../src/com/cocos/game/PermissionsUtil.java | 547 ++++++ .../cocos/game/PictureSelectlucksiege.java | 406 +++++ .../app/src/com/cocos/game/ShakeDetector.java | 153 ++ android/app/src/com/cocos/game/ZegoUtil.java | 469 ++++++ android/build.gradle | 1 + android/res/drawable/ps_image_placeholder.xml | 5 + android/res/drawable/ps_permission.png | Bin 0 -> 13851 bytes android/res/drawable/splash.png | Bin 0 -> 136022 bytes android/res/mipmap-hdpi/ic_launcher.png | Bin 6780 -> 13851 bytes android/res/mipmap-mdpi/ic_launcher.png | Bin 3964 -> 7384 bytes android/res/mipmap-xhdpi/ic_launcher.png | Bin 9915 -> 21798 bytes android/res/mipmap-xxhdpi/ic_launcher.png | Bin 16236 -> 67751 bytes android/res/mipmap-xxxhdpi/ic_launcher.png | Bin 23478 -> 65784 bytes android/res/values/colors.xml | 5 + android/res/values/ids.xml | 7 + android/res/values/strings.xml | 16 + build.gradle | 1 + common/CMakeLists.txt | 57 + common/Classes/Game.cpp | 65 + common/Classes/Game.h | 44 + common/cocos-version.json | 1 + common/localCfg.cmake | 3 + common/xr.cmake | 20 + gradle.properties | 15 +- .../aapt/AndroidManifest.xml | 7 + .../aapt/output-metadata.json | 18 + .../release/syncReleaseLibJars/classes.jar | Bin 0 -> 4758 bytes .../aar-metadata.properties | 6 + .../annotationProcessors.json | 1 + .../extractReleaseAnnotations/typedefs.txt | 0 .../bundleLibCompileToJarRelease/classes.jar | Bin 0 -> 10260 bytes .../release/generateReleaseRFile/R.jar | Bin 0 -> 282 bytes .../release/generateReleaseRFile/R.txt | 0 .../proguard-android-optimize.txt-8.10.1 | 89 + .../global/proguard-android.txt-8.10.1 | 95 ++ .../global/proguard-defaults.txt-8.10.1 | 89 + .../release/createFullJarRelease/full.jar | Bin 0 -> 9708 bytes .../lintVitalAnalyzeRelease/module.xml | 19 + .../release-artifact-dependencies.xml | 38 + .../release-artifact-libraries.xml | 31 + .../lintVitalAnalyzeRelease/release.xml | 31 + .../incremental/mergeReleaseAssets/merger.xml | 2 + .../mergeReleaseJniLibFolders/merger.xml | 2 + .../mergeReleaseShaders/merger.xml | 2 + .../release-mergeJavaRes/merge-state | Bin 0 -> 478 bytes .../compile-file-map.properties | 1 + .../packageReleaseResources/merger.xml | 2 + .../com/cocos/service/SDKWrapper$1.class | Bin 0 -> 214 bytes .../service/SDKWrapper$SDKInterface.class | Bin 0 -> 1776 bytes .../SDKWrapper$SDKWrapperInstance.class | Bin 0 -> 721 bytes .../com/cocos/service/SDKWrapper.class | Bin 0 -> 6331 bytes .../lint-cache-version.txt | 1 + .../generateReleaseLintModel/module.xml | 19 + .../release-artifact-dependencies.xml | 38 + .../release-artifact-libraries.xml | 21 + .../generateReleaseLintModel/release.xml | 31 + .../lint-model-metadata.properties | 3 + .../generateReleaseLintVitalModel/module.xml | 19 + .../release-artifact-dependencies.xml | 38 + .../release-artifact-libraries.xml | 21 + .../generateReleaseLintVitalModel/release.xml | 31 + .../out/lint-resources.xml | 0 .../local_aar_for_lint/release/out.aar | Bin 0 -> 6092 bytes .../parseReleaseLocalResources/R-def.txt | 2 + .../manifest-merger-blame-release-report.txt | 7 + .../feature-libservice.jar | Bin 0 -> 22 bytes .../AndroidManifest.xml | 7 + .../extractDeepLinksRelease/navigation.json | 1 + .../nestedResourcesValidationReport.txt | 1 + .../bundleLibRuntimeToJarRelease/classes.jar | Bin 0 -> 10000 bytes .../generateReleaseRFile/package-aware-r.txt | 1 + .../logs/manifest-merger-release-report.txt | 16 + .../previous-compilation-data.bin | Bin 0 -> 691 bytes 110 files changed, 5296 insertions(+), 1627 deletions(-) create mode 100644 .gitignore delete mode 100644 .gradle/8.11.1/checksums/checksums.lock delete mode 100644 .gradle/8.11.1/checksums/md5-checksums.bin delete mode 100644 .gradle/8.11.1/checksums/sha1-checksums.bin delete mode 100644 .gradle/8.11.1/executionHistory/executionHistory.lock delete mode 100644 .gradle/8.11.1/fileChanges/last-build.bin delete mode 100644 .gradle/8.11.1/fileHashes/fileHashes.bin delete mode 100644 .gradle/8.11.1/fileHashes/fileHashes.lock delete mode 100644 .gradle/8.11.1/fileHashes/resourceHashesCache.bin delete mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock delete mode 100644 .gradle/buildOutputCleanup/cache.properties delete mode 100644 .gradle/config.properties delete mode 100644 .idea/.gitignore delete mode 100644 .idea/.name delete mode 100644 .idea/AndroidProjectSystem.xml delete mode 100644 .idea/caches/deviceStreaming.xml delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/deploymentTargetSelector.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/migrations.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/runConfigurations.xml create mode 100644 android/app/google-services.json create mode 100644 android/app/src/com/cocos/game/AdjustUtil.java create mode 100644 android/app/src/com/cocos/game/AdsHelper.java create mode 100644 android/app/src/com/cocos/game/EventNameUtil.java create mode 100644 android/app/src/com/cocos/game/EventToScriptUtil.java create mode 100644 android/app/src/com/cocos/game/GlideEngine.java create mode 100644 android/app/src/com/cocos/game/GoogleUtil.java create mode 100644 android/app/src/com/cocos/game/ImageLoaderUtils.java create mode 100644 android/app/src/com/cocos/game/JSCallJava.java create mode 100644 android/app/src/com/cocos/game/MD5Util.java create mode 100644 android/app/src/com/cocos/game/MyApplication.java create mode 100644 android/app/src/com/cocos/game/MyFirebaseMessagingService.java create mode 100644 android/app/src/com/cocos/game/PermissionsUtil.java create mode 100644 android/app/src/com/cocos/game/PictureSelectlucksiege.java create mode 100644 android/app/src/com/cocos/game/ShakeDetector.java create mode 100644 android/app/src/com/cocos/game/ZegoUtil.java create mode 100644 android/res/drawable/ps_image_placeholder.xml create mode 100644 android/res/drawable/ps_permission.png create mode 100644 android/res/drawable/splash.png create mode 100644 android/res/values/colors.xml create mode 100644 android/res/values/ids.xml create mode 100644 common/CMakeLists.txt create mode 100644 common/Classes/Game.cpp create mode 100644 common/Classes/Game.h create mode 100644 common/cocos-version.json create mode 100644 common/localCfg.cmake create mode 100644 common/xr.cmake create mode 100644 libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml create mode 100644 libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json create mode 100644 libservice/build/intermediates/aar_main_jar/release/syncReleaseLibJars/classes.jar create mode 100644 libservice/build/intermediates/aar_metadata/release/writeReleaseAarMetadata/aar-metadata.properties create mode 100644 libservice/build/intermediates/annotation_processor_list/release/javaPreCompileRelease/annotationProcessors.json rename .gradle/8.11.1/gc.properties => libservice/build/intermediates/annotations_typedef_file/release/extractReleaseAnnotations/typedefs.txt (100%) create mode 100644 libservice/build/intermediates/compile_library_classes_jar/release/bundleLibCompileToJarRelease/classes.jar create mode 100644 libservice/build/intermediates/compile_r_class_jar/release/generateReleaseRFile/R.jar rename .gradle/vcs-1/gc.properties => libservice/build/intermediates/compile_symbol_list/release/generateReleaseRFile/R.txt (100%) create mode 100644 libservice/build/intermediates/default_proguard_files/global/proguard-android-optimize.txt-8.10.1 create mode 100644 libservice/build/intermediates/default_proguard_files/global/proguard-android.txt-8.10.1 create mode 100644 libservice/build/intermediates/default_proguard_files/global/proguard-defaults.txt-8.10.1 create mode 100644 libservice/build/intermediates/full_jar/release/createFullJarRelease/full.jar create mode 100644 libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/module.xml create mode 100644 libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-dependencies.xml create mode 100644 libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml create mode 100644 libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml create mode 100644 libservice/build/intermediates/incremental/mergeReleaseAssets/merger.xml create mode 100644 libservice/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml create mode 100644 libservice/build/intermediates/incremental/mergeReleaseShaders/merger.xml create mode 100644 libservice/build/intermediates/incremental/release-mergeJavaRes/merge-state create mode 100644 libservice/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties create mode 100644 libservice/build/intermediates/incremental/release/packageReleaseResources/merger.xml create mode 100644 libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper$1.class create mode 100644 libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper$SDKInterface.class create mode 100644 libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper$SDKWrapperInstance.class create mode 100644 libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper.class create mode 100644 libservice/build/intermediates/lint-cache/lintVitalAnalyzeRelease/lint-cache-version.txt create mode 100644 libservice/build/intermediates/lint_model/release/generateReleaseLintModel/module.xml create mode 100644 libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-dependencies.xml create mode 100644 libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-libraries.xml create mode 100644 libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release.xml create mode 100644 libservice/build/intermediates/lint_model_metadata/release/writeReleaseLintModelMetadata/lint-model-metadata.properties create mode 100644 libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/module.xml create mode 100644 libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-dependencies.xml create mode 100644 libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-libraries.xml create mode 100644 libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release.xml create mode 100644 libservice/build/intermediates/lint_vital_partial_results/release/lintVitalAnalyzeRelease/out/lint-resources.xml create mode 100644 libservice/build/intermediates/local_aar_for_lint/release/out.aar create mode 100644 libservice/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt create mode 100644 libservice/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt create mode 100644 libservice/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/feature-libservice.jar create mode 100644 libservice/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml create mode 100644 libservice/build/intermediates/navigation_json/release/extractDeepLinksRelease/navigation.json create mode 100644 libservice/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt create mode 100644 libservice/build/intermediates/runtime_library_classes_jar/release/bundleLibRuntimeToJarRelease/classes.jar create mode 100644 libservice/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt create mode 100644 libservice/build/outputs/logs/manifest-merger-release-report.txt create mode 100644 libservice/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3bc60d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Android Studio +.idea/ +*.iml +.gradle/ +local.properties + +# Build outputs +/build/ +/proj/ +android/app/build/ +android/build/ + +# Gradle cache +.gradle/ + +# NDK / CMake generated files +.cxx/ +android/app/.cxx/ + +# Keystore (不要提交签名文件) +*.jks +*.keystore +/data/ +# OS +.DS_Store +Thumbs.db diff --git a/.gradle/8.11.1/checksums/checksums.lock b/.gradle/8.11.1/checksums/checksums.lock deleted file mode 100644 index 5b2fb61caf02d071f0685799931dcb2341dde0f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZS9J9}31_@QZx3}C>_2LLn`1SS9g diff --git a/.gradle/8.11.1/checksums/md5-checksums.bin b/.gradle/8.11.1/checksums/md5-checksums.bin deleted file mode 100644 index 7efdabe1a443f110394e4f32af9f5f009cd45efd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28147 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 DJ{cgJ diff --git a/.gradle/8.11.1/checksums/sha1-checksums.bin b/.gradle/8.11.1/checksums/sha1-checksums.bin deleted file mode 100644 index 2bf4f7a11868ba5414849c30288f22112dd3c082..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74327 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 P?px7aEUdQJch&y^v|W6} diff --git a/.gradle/8.11.1/executionHistory/executionHistory.lock b/.gradle/8.11.1/executionHistory/executionHistory.lock deleted file mode 100644 index 104dc3f7bb2c6864980e4f5719a80afd35f788de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZQh6rK6<_F|s|1}FdkGhYNI diff --git a/.gradle/8.11.1/fileChanges/last-build.bin b/.gradle/8.11.1/fileChanges/last-build.bin deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin deleted file mode 100644 index 606d764a7940238478c26e5229e323022afeaefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18597 zcmeI%JxT*X6ae7KHi8JoLbHX9f`uSK^aKGBQEY@Xf=DVm8-D`YS)>qAP_VJGkbqcv znYD;#2-sQZth-C_0v7TO%)G}N9y9Z`vlc>H|0+iqjp zsH#^n)?3A%l>h+(1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&U_)CG+c-Uf`bNQ_IRvx>v*ZaMv;mJ diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin deleted file mode 100644 index 19d5076211fee2bf2108e13b4ca15618a18bfc99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18531 zcmeI%K?*@p6adio4Gg4wiZC!SA&N3I5J@&*Eq3v<0!xw^d$0i$@$~&{K{~hYd$)Th z@1E&fhtN)+p9tS*eoGYr0t5&UAV7cs0RjXF5FkK+009C72oNCfF9N%`NF`sUJubbA z+CGG7H5SQe(&(SF%P}8sm&N}sr1ox~n7`oDQ+s FdjYkMC5He2 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock deleted file mode 100644 index dfc627e5da406e355618ab261ec85d3c49ec4a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 UcmZSXb^8Bqs - - - - \ No newline at end of file diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml deleted file mode 100644 index 23267a6..0000000 --- a/.idea/caches/deviceStreaming.xml +++ /dev/null @@ -1,1490 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index b86273d..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml deleted file mode 100644 index 3eaf5c6..0000000 --- a/.idea/deploymentTargetSelector.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index fe9675f..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml deleted file mode 100644 index f8051a6..0000000 --- a/.idea/migrations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 74dd639..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 16660f1..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/android/app/AndroidManifest.xml b/android/app/AndroidManifest.xml index d4f80c6..d25fa14 100644 --- a/android/app/AndroidManifest.xml +++ b/android/app/AndroidManifest.xml @@ -1,16 +1,140 @@ - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/build.gradle b/android/app/build.gradle index 9f5e206..37b09e3 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,6 +1,7 @@ import org.apache.tools.ant.taskdefs.condition.Os apply plugin: 'com.android.application' +apply plugin: 'com.google.gms.google-services' RES_PATH = RES_PATH.replace("\\", "/") COCOS_ENGINE_PATH = COCOS_ENGINE_PATH.replace("\\", "/") @@ -35,7 +36,7 @@ android { sourceSets.main { java.srcDirs "../src", "src" - res.srcDirs "../res", 'res', "${RES_PATH}/proj/res" + res.srcDirs "../res", 'res' jniLibs.srcDirs "../libs", 'libs' manifest.srcFile "AndroidManifest.xml" assets.srcDir "${RES_PATH}/data" @@ -116,4 +117,38 @@ dependencies { implementation 'com.google.android.libraries.play.games:inputmapping:1.1.0-beta' implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.10" } + + // Google + implementation 'com.google.android.gms:play-services-location:21.2.0' + implementation 'com.google.android.gms:play-services-auth:21.0.0' + implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' + implementation 'com.android.billingclient:billing:7.0.0' + implementation 'com.google.android.gms:play-services-games:23.1.0' + + // Firebase + implementation platform('com.google.firebase:firebase-bom:32.3.1') + implementation 'com.google.firebase:firebase-messaging' + implementation 'com.google.firebase:firebase-analytics' + + // Adjust + implementation 'com.adjust.sdk:adjust-android:4.38.3' + implementation 'com.android.installreferrer:installreferrer:2.2' + + // Bugly + implementation 'com.tencent.bugly:crashreport:4.0.0' + implementation 'com.tencent.bugly:nativecrashreport:3.9.2' + + // Zego + implementation 'im.zego:express-audio:3.18.0' + + // Glide + implementation 'com.github.bumptech.glide:glide:4.11.0' + + // PictureSelector + implementation 'io.github.lucksiege:pictureselector:v3.11.1' + implementation 'io.github.lucksiege:compress:v3.11.1' + implementation 'io.github.lucksiege:ucrop:v3.11.1' + implementation 'io.github.lucksiege:camerax:v3.11.1' + + implementation 'org.jetbrains:annotations:15.0' } diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..00ad545 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,55 @@ +{ + "project_info": { + "project_number": "77777777777", + "project_id": "dsfdsfsdfsdfsdfsdfsd", + "storage_bucket": "dsfdsfsdfsdfsdfsdfsd.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:77777777777:android:0c23bf41a19dbf9031520a", + "android_client_info": { + "package_name": "com.ddddd.one" + } + }, + "oauth_client": [ + { + "client_id": "77777777777-31c3v95gqmgiitcbdbm7g89g2dvbo3g3.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.ddddd.one", + "certificate_hash": "88c6508575eb69e0170802f358beaa008c14ec1a" + } + }, + { + "client_id": "77777777777-mst1841ado9heklp3h3gda3o9at4q8op.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.ddddd.one", + "certificate_hash": "7db6c283bbdb01a4a21a1755b4c9d52bab58966e" + } + }, + { + "client_id": "77777777777-pe7pidhpuc9ohkg5t8aqip7qboire346.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBnPj5TP43ELp4TAeRKjSmEvPvGKFPI_RA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "77777777777-pe7pidhpuc9ohkg5t8aqip7qboire346.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/com/cocos/game/AdjustUtil.java b/android/app/src/com/cocos/game/AdjustUtil.java new file mode 100644 index 0000000..d533d80 --- /dev/null +++ b/android/app/src/com/cocos/game/AdjustUtil.java @@ -0,0 +1,95 @@ +package com.cocos.game; + +import android.util.Log; + +import com.adjust.sdk.Adjust; +import com.adjust.sdk.AdjustAttribution; +import com.adjust.sdk.AdjustEvent; +import com.adjust.sdk.OnDeviceIdsRead; + +import org.json.JSONObject; + +public class AdjustUtil { + + private static final String TAG = "AdjustUtil"; + private static AdjustUtil sInstance = null; + + public static AdjustUtil getInstance() { + if (sInstance == null) { + sInstance = new AdjustUtil(); + } + return sInstance; + } + + /** + * 获取Adjust归因信息 + * + * @return + */ + public String getAdjustTrackerToken() { + try { + AdjustAttribution attribution = Adjust.getAttribution(); + Log.d(TAG, "getAdjustTrackerToken: " + attribution); + // Attribution: tt:r3wk5qm tn:CC-Test net:CC-Test cam: adg: cre: cl: adid:43b4d43b1f581a69e0f53fb8614f16ff ct: ca:NaN cc: + if (null != attribution && null != attribution.trackerToken) { + String clickLabel = null == attribution.clickLabel ? "" : attribution.clickLabel; + String trackerName = null == attribution.trackerName ? "" : attribution.trackerName; + String network = null == attribution.network ? "" : attribution.network; + String trackerToken = null == attribution.trackerToken ? "" : attribution.trackerToken; + String adjustTT = trackerToken + "@" + trackerName + "@" + network + "@" + clickLabel; + return adjustTT; + } + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + /** + * 获取google adid、用户游客登录 + */ + public void getAdidByVisitor(AppActivity nAppActivity) { + try { + Adjust.getGoogleAdId(nAppActivity, new OnDeviceIdsRead() { + @Override + public void onGoogleAdIdRead(String googleAdId) { + String _adid = googleAdId != null ? googleAdId : Adjust.getAdid(); + _adid = _adid + "|" + Adjust.getAdid(); + Log.d(TAG, "getAdidByVisitor: " + _adid); + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_Adid, _adid == null ? "" : _adid); + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Adjust 事件 供LUA调用 + * + * @param jsonStr eventToken,revenue, + */ + public void onTrackAdjustEventFun(String jsonStr) { + try { + Log.d(TAG, "onTrackAdjustEventFun:=>jsonStr :" + jsonStr); + // 获取数据 + JSONObject json = new JSONObject(jsonStr); + String eventToken = json.getString("eventToken");//事件编码 + double revenue = json.getDouble("revenue");//金额 + String currency = json.getString("currency");//货币代码 + String orderId = json.getString("orderId");//剔重编码 + // 事件推送 + AdjustEvent event = new AdjustEvent(eventToken); + // 金额大于0 + if (revenue > 0) { + event.setRevenue(revenue, currency); + } + if (orderId != "") { + event.setOrderId(orderId); + } + Adjust.trackEvent(event); + } catch (Exception e) { + Log.d(TAG, "onTrackAdjustEventFun:=>error:" + e.getMessage()); + } + } +} diff --git a/android/app/src/com/cocos/game/AdsHelper.java b/android/app/src/com/cocos/game/AdsHelper.java new file mode 100644 index 0000000..cdf2173 --- /dev/null +++ b/android/app/src/com/cocos/game/AdsHelper.java @@ -0,0 +1,303 @@ +package com.cocos.game; + +import android.Manifest; +import android.app.Service; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.content.res.Resources; +import android.net.Uri; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; +import android.os.Build; +import android.os.Bundle; +import android.os.Vibrator; +import android.provider.Settings; +import android.telephony.TelephonyManager; +import android.util.Log; +import android.widget.Toast; + +import com.cocos.lib.JsbBridgeWrapper; +import com.ddddd.one.R; + +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class AdsHelper { + private static final String TAG = "AdsHelper"; + private static AdsHelper sInstance = null; + + public static AdsHelper getInstance() { + if (sInstance == null) { + sInstance = new AdsHelper(); + } + return sInstance; + } + + // JAVA + private JsbBridgeWrapper jbw = null; + + public JsbBridgeWrapper GetJsbBridgeWrapper() { + if (jbw == null) { + jbw = JsbBridgeWrapper.getInstance(); + } + return jbw; + } + + public void initEventListener(AppActivity nAppActivity) { + GetSysVersion(nAppActivity); + GetMachineName(nAppActivity); + GetHDID(nAppActivity); + GetMacAddress(nAppActivity); + GetBiosID(nAppActivity); + GetCpuID(nAppActivity); + GetChannel(nAppActivity); + + SetShare(nAppActivity); + SetShake(nAppActivity); + SetCopy(nAppActivity); + SetOpenUri(nAppActivity); + } + + //#region 基础信息获取 + public void GetSysVersion(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_AppVersion, arg -> { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_AppVersion, getPackageInfo(nAppActivity).versionName); + }); + } + + public void GetMachineName(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_MachineName, arg -> { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_MachineName, android.os.Build.MODEL); + }); + } + + public void GetHDID(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_HDID, arg -> { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_HDID, getDeviceId(nAppActivity)); + }); + } + + public void GetMacAddress(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_MacAddress, arg -> { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_MacAddress, getLocalMacAddress(nAppActivity)); + }); + } + + public void GetBiosID(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_BiosID, arg -> { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_BiosID, getAndroidId(nAppActivity)); + }); + } + + public void GetCpuID(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_CpuID, arg -> { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_CpuID, android.os.Build.MODEL); + }); + } + + private PackageInfo getPackageInfo(Context context) { + PackageInfo pi = null; + try { + PackageManager pm = context.getPackageManager(); + pi = pm.getPackageInfo(context.getPackageName(), + PackageManager.GET_CONFIGURATIONS); + return pi; + } catch (Exception e) { + e.printStackTrace(); + } + return pi; + } + + private String getDeviceId(Context context) { + String deviceId; + //android api版本不同导致的,我们使用的28版本,没有Q,29版本有Q + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); + } else { + final TelephonyManager mTelephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (context.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { + return ""; + } + } + assert mTelephony != null; + if (mTelephony.getDeviceId() != null) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + deviceId = mTelephony.getImei(); + } else { + deviceId = mTelephony.getDeviceId(); + } + } else { + deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); + } + } + return deviceId; + } + + private String getLocalMacAddress(Context context) { + //Android 获取本机Mac地址,需要开启wifi + WifiManager wifi = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); + WifiInfo info = wifi.getConnectionInfo(); + return info.getMacAddress(); + } + + private String getAndroidId(Context context) { + String ANDROID_ID = Settings.Secure.getString(context.getContentResolver(), + Settings.Secure.ANDROID_ID); + return ANDROID_ID; + } + //#endregion + + //#region 基础操作 + public void SetShare(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_Share, arg -> { + Log.d(TAG, "SetShare: " + arg); + if (arg != "") { + shareGameLink(nAppActivity, arg); + } + }); + } + + public void SetShake(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_Shake, arg -> { + Log.d(TAG, "SetShake: " + arg); + try { + Vibrator vib = (Vibrator) nAppActivity.getSystemService(Service.VIBRATOR_SERVICE); + boolean b = vib.hasVibrator(); + if (b) { + //当前设备有振动器 + vib.vibrate(new long[]{300, 500}, -1); + } else { + //当前设备没有振动器 + } + } catch (Exception e) { + e.printStackTrace(); + } + }); + + } + + public void SetCopy(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_Copy, arg -> { + Log.d(TAG, "SetCopy: " + arg); + if (arg != "") { + nAppActivity.runOnUiThread(new Runnable() { + @Override + public void run() { + ClipboardManager cm = (ClipboardManager) AppActivity.nAppActivity + .getSystemService(Context.CLIPBOARD_SERVICE); + // 创建普通字符型ClipData + ClipData mClipData = ClipData.newPlainText("Label", arg); + // 将ClipData内容放到系统剪贴板里。 + cm.setPrimaryClip(mClipData); + //已复制到剪贴板 + Toast.makeText(AppActivity.nAppActivity, "Kopyalandı", + Toast.LENGTH_LONG).show(); + } + }); + } + }); + } + + public void SetOpenUri(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_Open, arg -> { + Log.d(TAG, "SetOpenUri: " + arg); + try { + Intent mIntent = new Intent(Intent.ACTION_VIEW); + mIntent.setData(Uri.parse(arg)); + nAppActivity.startActivity(mIntent); + } catch (Exception e) { + // 防止crash (如果手机上没有安装处理某个scheme开头的url的APP, + // 会导致crash) + } + }); + } + + + private void shareGameLink(AppActivity nAppActivity, String jsonStr) { + try { + JSONObject jo = new JSONObject(jsonStr); + String title = jo.getString("title"); + String text = jo.getString("text"); + String sendType = jo.getString("type"); + String filter = jo.getString("filter"); + String[] filterArr = filter.split("\\|"); + //for (int i = 0; i < filterArr.length; i++) { + // Log.i("FILTER:::: ", filterArr[i]); + //} + + Resources r = nAppActivity.getApplicationContext().getResources(); + Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + + r.getResourcePackageName(R.mipmap.ic_launcher) + "/" + + r.getResourceTypeName(R.mipmap.ic_launcher) + "/" + + r.getResourceEntryName(R.mipmap.ic_launcher)); + + Intent sendIntent = new Intent(Intent.ACTION_SEND); + sendIntent.setType(sendType); + sendIntent.putExtra(Intent.EXTRA_TEXT, text); + //sendIntent.putExtra(Intent.EXTRA_STREAM, uri); + + PackageManager pm = nAppActivity.getPackageManager(); + List activityList = pm.queryIntentActivities(sendIntent, 0); + List shareIntents = new ArrayList(); + + HashMap hashMap = new HashMap(); + for (ResolveInfo info : activityList) { + String packageName = info.activityInfo.packageName; + if (!hashMap.containsKey(packageName) && isFilterPackageName(packageName, filterArr)) { + Intent targeted = new Intent(Intent.ACTION_SEND); + if (packageName.contains("facebook")) { + targeted.setType("text/plain"); + } else { + targeted.setType(sendType); + } + targeted.setPackage(packageName); + targeted.putExtra(Intent.EXTRA_TEXT, text); + //targeted.putExtra(Intent.EXTRA_STREAM, uri); + shareIntents.add(targeted); + Log.i("__ADD:::: ", packageName); + hashMap.put(packageName, true); + } + } + + if (shareIntents.size() > 0) { + Intent chooserIntent = Intent.createChooser(shareIntents.remove(0), title); + chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, shareIntents.toArray(new Intent[0])); + //getInstance().startActivity(chooserIntent); + nAppActivity.startActivityForResult(chooserIntent, nAppActivity.REQUEST_CODE_SHARE_GAME_LINK); + } else { + nAppActivity.startActivityForResult(sendIntent, nAppActivity.REQUEST_CODE_SHARE_GAME_LINK); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + private boolean isFilterPackageName(String sname, String[] filterArr) { + for (int i = 0; i < filterArr.length; i++) { + if (sname.contains(filterArr[i])) { + return true; + } + } + return false; + } + //#endregion + + //#region 获取渠道编号 + public void GetChannel(AppActivity nAppActivity) { + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_Channel, arg -> { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_Channel, "liuhaotest"); + }); + } + //#endregion +} diff --git a/android/app/src/com/cocos/game/AppActivity.java b/android/app/src/com/cocos/game/AppActivity.java index 5aaece8..dec9369 100644 --- a/android/app/src/com/cocos/game/AppActivity.java +++ b/android/app/src/com/cocos/game/AppActivity.java @@ -1,44 +1,217 @@ /**************************************************************************** -Copyright (c) 2015-2016 Chukong Technologies Inc. -Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + Copyright (c) 2015-2016 Chukong Technologies Inc. + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. -http://www.cocos2d-x.org + http://www.cocos2d-x.org -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -****************************************************************************/ + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ package com.cocos.game; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.content.Intent; import android.content.res.Configuration; +import android.os.Handler; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.view.WindowManager; +import android.widget.FrameLayout; +import android.widget.ImageView; +import com.cocos.lib.JsbBridgeWrapper; import com.cocos.service.SDKWrapper; import com.cocos.lib.CocosActivity; +import com.google.android.gms.auth.api.signin.GoogleSignIn; +import com.google.android.gms.auth.api.signin.GoogleSignInAccount; +import com.google.android.gms.auth.api.signin.GoogleSignInClient; +import com.google.android.gms.auth.api.signin.GoogleSignInOptions; +import com.google.android.gms.common.Scopes; +import com.google.android.gms.common.api.Scope; +import com.google.android.gms.tasks.Task; +import com.luck.picture.lib.basic.PictureSelector; +import com.luck.picture.lib.config.SelectMimeType; +import com.luck.picture.lib.config.SelectModeConfig; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.interfaces.OnResultCallbackListener; +import com.luck.picture.lib.language.LanguageConfig; +import com.ddddd.one.R; +import com.tencent.bugly.crashreport.CrashReport; +import com.cocos.game.PermissionsUtil.IPermissionsCallback; -public class AppActivity extends CocosActivity { +import java.io.File; +import java.util.ArrayList; +import java.util.Locale; + +public class AppActivity extends CocosActivity implements + IPermissionsCallback { + + public static final int REQUEST_CODE_SHARE_GAME_LINK = 1001; //游戏分享 + public static final int REQUEST_CODE_GOOGLE_LOGIN = 9001; //Google登录 + public static final int REQUEST_CODE_GOOGLE_PAY_SERVICES = 10001; //Google支付服务 + + //动态权限 + private static final int MY_PERMISSIONS_REQUEST_CAMERA = 0; // 相机相册 + private static final int MY_PERMISSIONS_REQUEST_StART = 1; // 启动游戏 + private static final int MY_PERMISSIONS_REQUEST_RECORD_AUDIO = 3;//语音 + + private static final String TAG = "AppActivity"; + private GoogleSignInClient mGoogleSignInClient; + private JsbBridgeWrapper jbw = null; + ShakeDetector mShaker; + static SharedPreferences sharedPreferences; + public static int selectImageIndex = 0; + public static PermissionsUtil permissionsUtil; + + private static CocosActivity sContext = null; + public static AppActivity nAppActivity = null; + + public AppActivity() { + nAppActivity = this; + } + + public static Context getContext() { + return sContext; + } + + private static ImageView sSplashBgImageView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // DO OTHER INITIALIZATION BELOW SDKWrapper.shared().init(this); + sContext = this; + if (jbw == null) + jbw = JsbBridgeWrapper.getInstance(); + + jbw.addScriptEventListener(EventNameUtil.Android_CloseSplash, arg -> { + if (sSplashBgImageView != null) { + Log.d(TAG, "onCreate: " + EventNameUtil.Android_CloseSplash); + hideSplash(); + } + }); + showSplash(); + + CrashReport.initCrashReport(getApplicationContext()); + sharedPreferences = getSharedPreferences("path", MODE_PRIVATE); + + // 初始化 RtcEngine,并加入频道。 + ZegoUtil.getInstance().zegoInitializeEngine(nAppActivity, getApplicationContext()); + + // google play game service sign + GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN) + //.requestScopes(new Scope(Scopes.PROFILE)) + .requestScopes(new Scope(Scopes.PROFILE)) + .requestServerAuthCode(getString(R.string.google_client_id)) + .requestEmail() + .build(); +// GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) +// .requestIdToken(getString(R.string.google_client_id)) +// .requestEmail() +// .build(); + // Build a GoogleSignInClient with the options specified by gso. + mGoogleSignInClient = GoogleSignIn.getClient(nAppActivity, gso); + + GoogleUtil.getInstance().InitLogin(nAppActivity, getApplicationContext(), mGoogleSignInClient); + GoogleUtil.getInstance().InitLoginOut(nAppActivity, getApplicationContext(), mGoogleSignInClient); + GoogleUtil.getInstance().initGooglePay(nAppActivity, getApplicationContext()); + + + //游客账号 + jbw.addScriptEventListener(EventNameUtil.Android_Adid, arg -> { + AdjustUtil.getInstance().getAdidByVisitor(nAppActivity); + }); + //adjust归因 + jbw.addScriptEventListener(EventNameUtil.Android_AdjustTT, arg -> { + final String adjustTT = AdjustUtil.getInstance().getAdjustTrackerToken(); + EventToScriptUtil.getInstance().actCallBack(nAppActivity, adjustTT); + }); + //adjust发送事件 + jbw.addScriptEventListener(EventNameUtil.Android_AdjustSend, arg -> { + AdjustUtil.getInstance().onTrackAdjustEventFun(arg); + }); + + //图片上传 + jbw.addScriptEventListener(EventNameUtil.Android_FeedImage, arg -> { + Log.d(TAG, "onCreate: Android_FeedImage"); + selectImageIndex = 1; + Message msg = new Message(); + msg.what = HANDLER_IMAGE_CHOOSE; + msg.obj = ""; + handler.sendMessage(msg); + }); + jbw.addScriptEventListener(EventNameUtil.Android_HeadImage, arg -> { + Log.d(TAG, "onCreate: Android_HeadImage"); + selectImageIndex = 0; + Message msg = new Message(); + msg.what = HANDLER_IMAGE_CHOOSE; + msg.obj = ""; + handler.sendMessage(msg); + }); + + //基础信息 + AdsHelper.getInstance().initEventListener(nAppActivity); + try { + mShaker = new ShakeDetector(this); + mShaker.registerOnShakeListener(new ShakeDetector.OnShakeListener() { + @Override + public void onShake() { + // TODO Auto-generated method stub + Log.d("shake2", "shake2: " + "shake2"); + } + }); + mShaker.start(); + + } catch (Exception e) { + e.printStackTrace(); + } + // 防止屏幕休眠 + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + SDKWrapper.shared().onActivityResult(requestCode, resultCode, data); + Log.d(TAG, "onActivityResult: " + requestCode); + if (requestCode == REQUEST_CODE_SHARE_GAME_LINK) { + EventToScriptUtil.getInstance().setToScript(nAppActivity, EventNameUtil.Android_Share, resultCode + ""); + } else if (requestCode == REQUEST_CODE_GOOGLE_LOGIN) { + Log.d(TAG, "onActivityResult: " + requestCode); + Task task = GoogleSignIn.getSignedInAccountFromIntent(data); + GoogleUtil.getInstance().HandleSignInResult(nAppActivity, getApplicationContext(), task); + } else if (requestCode == REQUEST_CODE_GOOGLE_PAY_SERVICES) { + // The Task returned from this call is always completed, no need to attach + // a listener. + Log.d(TAG, "onActivityResult: REQUEST_CODE_GOOGLE_PAY_SERVICES"); + } } @Override @@ -60,13 +233,10 @@ public class AppActivity extends CocosActivity { if (!isTaskRoot()) { return; } - SDKWrapper.shared().onDestroy(); - } - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - SDKWrapper.shared().onActivityResult(requestCode, resultCode, data); + SDKWrapper.shared().onDestroy(); + mShaker.stop(); + ZegoUtil.getInstance().zegoDestroyEngine(); } @Override @@ -122,4 +292,253 @@ public class AppActivity extends CocosActivity { SDKWrapper.shared().onLowMemory(); super.onLowMemory(); } + + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + // TODO Auto-generated method stub + + //应用第一次安装,并且权限被禁用时,返回true + //权限被禁用时,返回true + //权限被禁用且不再提示时,返回false + //已授权时返回false + int mRequestPermissionCount = sharedPreferences.getInt(requestCode + "", 0); + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_DENIED) { + mRequestPermissionCount = mRequestPermissionCount + 1; + //// Should we show an explanation? + //// 1.第一次拒绝后提示用户为何需要此类权限、做第二次授权请求 + //if (ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[0])) { + // //Show permission explanation dialog... + // permissionsUtil.onRequestPermissionsResult(requestCode, permissions, grantResults); + //} else { + // // 用户已经选择:禁用且不再提示、此时一般不需要再次提示授权说明 + // //Never ask again selected, or device policy prohibits the app from having that permission. + // //So, disable that feature, or fall back to another situation... + // permissionsUtil.onRequestPermissionsResult(requestCode, permissions, grantResults); + //} + // permissionsUtil.onRequestPermissionsResult(requestCode, permissions, grantResults); + } else { + mRequestPermissionCount = 0; + } + sharedPreferences.edit().putInt(requestCode + "", mRequestPermissionCount).apply(); + if (requestCode == MY_PERMISSIONS_REQUEST_RECORD_AUDIO && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + Log.d(TAG, "onRequestPermissionsResult:joinChannel " + requestCode); + ZegoUtil.getInstance().zegoLoginFun(nAppActivity, getContext(), ZegoUtil.ZegoJoinJsonStr); + } + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + } + + // /////////////////////////////////////////////////////////////////////// + // 动态权限获取结果回调 + // /////////////////////////////////////////////////////////////////////// + @Override + public void onPermissionsGranted(int requestCode, String... permission) { + Log.d("cocos1", "onPermissionsGranted joinChannel " + requestCode); + // 权限获取回调 + switch (requestCode) { + case MY_PERMISSIONS_REQUEST_CAMERA: // 打开相机相册 + ChooseImageDialog(); + break; + case MY_PERMISSIONS_REQUEST_StART: // 启动游戏 + break; + case MY_PERMISSIONS_REQUEST_RECORD_AUDIO://打开语音 + ZegoUtil.getInstance().zegoLoginFun(nAppActivity, getContext(), ZegoUtil.ZegoJoinJsonStr); + break; + default: + break; + } + } + + @Override + public void onPermissionsDenied(int requestCode, String... permission) { + // 权限被拒绝回调 + switch (requestCode) { + case MY_PERMISSIONS_REQUEST_CAMERA:// 打开相机相册 + + break; + case MY_PERMISSIONS_REQUEST_StART:// 启动游戏 + nAppActivity.finish(); + System.exit(0); + break; + case MY_PERMISSIONS_REQUEST_RECORD_AUDIO://打开语音 + Log.d(TAG, "onPermissionsDenied: " + "1"); + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_Login, "1"); + break; + default: + break; + } + } + + private static final int HANDLER_IMAGE_CHOOSE = 1; + public static final int HANDLER_ZEGOLOGIN = 3;//加入频道 + + public static Handler handler = new Handler() { + public void handleMessage(Message msg) { + switch (msg.what) { + case HANDLER_IMAGE_CHOOSE: + ChooseImageDialog(); + break; + case HANDLER_ZEGOLOGIN: { + // 版本判断。当手机系统大于 23 时,才有必要去判断权限是否获取 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + permissionsUtil = PermissionsUtil + .with(nAppActivity) + .requestCode(MY_PERMISSIONS_REQUEST_RECORD_AUDIO) + .isDebug(true) + .requestPermissionCount(sharedPreferences.getInt(MY_PERMISSIONS_REQUEST_RECORD_AUDIO + "", 0)) + // 开启log + .permissions( + PermissionsUtil.Permission.Microphone.RECORD_AUDIO) + .request(); + } else { + String strParam = (String) msg.obj; + ZegoUtil.getInstance().zegoLoginFun(nAppActivity, getContext(), strParam); + } + } + break; + } + } + }; + + /** + * 弹出选择图片的选择框 android选择图片 + */ + public static void ChooseImageDialog() { + int languageConfig = LanguageConfig.ENGLISH; + Locale _locale = Locale.getDefault(); + Log.i(TAG, "onCancel: "+_locale); + if (_locale.equals(Locale.ENGLISH) +// || _locale.equals(Locale.CHINESE) +// || _locale.equals(Locale.SIMPLIFIED_CHINESE) +// || _locale.equals(Locale.TRADITIONAL_CHINESE) + || _locale.equals(Locale.KOREA) + || _locale.equals(Locale.GERMANY) + || _locale.equals(Locale.FRANCE) + || _locale.equals(Locale.JAPAN) + || _locale.equals(new Locale("vi")) + || _locale.equals(new Locale("es", "ES")) + || _locale.equals(new Locale("pt", "PT")) + || _locale.equals(new Locale("ar", "AE")) + || _locale.equals(new Locale("ru", "rRU")) + || _locale.equals(new Locale("cs", "rCZ")) + || _locale.equals(new Locale("kk", "rKZ")) + ) { + languageConfig = LanguageConfig.SYSTEM_LANGUAGE; + } + if (_locale.equals(Locale.CHINESE) + || _locale.equals(Locale.SIMPLIFIED_CHINESE) + || _locale.equals(Locale.TRADITIONAL_CHINESE)) { + languageConfig = LanguageConfig.ENGLISH; + } + if (selectImageIndex == 0) { + PictureSelector.create(nAppActivity) + .openGallery(SelectMimeType.ofImage()) + .setImageEngine(GlideEngine.createGlideEngine())//设置相册图片加载引擎 + .setSelectionMode(SelectModeConfig.SINGLE)//单选或是多选 + .setCompressEngine(new PictureSelectlucksiege.ImageFileCompressEngine())//设置相册压缩引擎 + .setCropEngine(new PictureSelectlucksiege.ImageFileCropEngine())//设置相册裁剪引擎 + //.setCameraInterceptListener(new PictureSelectlucksiege.MeOnCameraInterceptListener())//自定义拍照 + //.setPermissionDescriptionListener(new PictureSelectlucksiege.MeOnPermissionDescriptionListener()) + .setPermissionDeniedListener(new PictureSelectlucksiege.MeOnPermissionDeniedListener()) + .setLanguage(languageConfig) + .setDefaultLanguage(languageConfig) + .forResult(new OnResultCallbackListener() { + @Override + public void onResult(ArrayList result) { + if (result != null && result.size() > 0) { + Log.i(TAG, "onResult: " + result.get(0).getAvailablePath()); + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Android_HeadImage, result.get(0).getAvailablePath()); + } + } + + @Override + public void onCancel() { + Log.i(TAG, "onCancel: "); + } + }); + } else { + PictureSelector.create(nAppActivity) + .openGallery(SelectMimeType.ofImage()) + .setImageEngine(GlideEngine.createGlideEngine())//设置相册图片加载引擎 + .setSelectionMode(SelectModeConfig.SINGLE)//单选或是多选 + .setCompressEngine(new PictureSelectlucksiege.ImageFileCompressEngine())//设置相册压缩引擎 + .setCropEngine(new PictureSelectlucksiege.ImageFileCropEngine())//设置相册裁剪引擎 + .setCameraInterceptListener(new PictureSelectlucksiege.MeOnCameraInterceptListener())//自定义拍照 + //.setPermissionDescriptionListener(new PictureSelectlucksiege.MeOnPermissionDescriptionListener()) + .setPermissionDeniedListener(new PictureSelectlucksiege.MeOnPermissionDeniedListener()) + .setLanguage(languageConfig) + .setDefaultLanguage(languageConfig) + .forResult(new OnResultCallbackListener() { + @Override + public void onResult(ArrayList result) { + if (result != null && result.size() > 0) { + Log.i(TAG, "onResult: " + result.get(0).getAvailablePath()); + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Android_FeedImage, result.get(0).getAvailablePath()); + } + } + + @Override + public void onCancel() { + Log.i(TAG, "onCancel: "); + } + }); + } + } + + /** + * 供 JS 通过 jsb.reflection 调用的 Adjust 事件上报方法 + */ + public static void trackAdjustEvent(String eventToken) { + try { + com.adjust.sdk.AdjustEvent event = new com.adjust.sdk.AdjustEvent(eventToken); + com.adjust.sdk.Adjust.trackEvent(event); + Log.d(TAG, "trackAdjustEvent: " + eventToken); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 开屏背景 + */ + private static void showSplash() { + sSplashBgImageView = new ImageView(sContext); + // sSplashBgImageView.setBackgroundColor( + // // sContext.getResources().getColor(R.color.splashBg) + // sContext.getResources().getColor(R.color.viewfinder_laser, null) + //); + //全屏背景图 + sSplashBgImageView.setImageResource(R.drawable.splash); + //logo居中、其他区域颜色覆盖 + //sSplashBgImageView.setImageResource(R.drawable.splash_slogan_with_bg); + //sSplashBgImageView.setScaleType(ImageView.ScaleType.FIT_XY); + sContext.addContentView(sSplashBgImageView, + new WindowManager.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.MATCH_PARENT + ) + ); + } + + /** + * 这是给 CC JS 调用的隐藏原生开屏背景的方法 + */ + public static void hideSplash() { + sContext.runOnUiThread(new Runnable() { + @Override + public void run() { + if (sSplashBgImageView != null) { + // sSplashBgImageView.setVisibility(View.GONE); + sSplashBgImageView.animate() + .alpha(0f) + .setDuration(1000) + .setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + sSplashBgImageView.setVisibility(View.GONE); + } + }); + } + } + }); + } } diff --git a/android/app/src/com/cocos/game/EventNameUtil.java b/android/app/src/com/cocos/game/EventNameUtil.java new file mode 100644 index 0000000..183553a --- /dev/null +++ b/android/app/src/com/cocos/game/EventNameUtil.java @@ -0,0 +1,39 @@ +package com.cocos.game; + + +public class EventNameUtil { + public static final String Android_AppVersion = "Native_AppVersion"; + public static final String Android_MachineName = "Native_MachineName"; + public static final String Android_MacAddress = "Native_MacAddress"; + public static final String Android_HDID = "Native_HDID"; + public static final String Android_BiosID = "Native_BiosID"; + public static final String Android_CpuID = "Native_CpuID"; + public static final String Android_Channel = "Native_Channel"; + + public static final String Android_CloseSplash = "Native_CloseSplash"; + + public static final String Android_Share = "Native_Share"; + public static final String Android_Copy = "Native_Copy"; + public static final String Android_Open = "Native_Open"; + public static final String Android_Shake = "Native_Shake"; + + public static final String Android_Adid = "Native_Adid"; + public static final String Android_AdjustTT = "Native_AdjustTT"; + public static final String Android_AdjustSend = "Native_AdjustSend"; + + public static final String Android_FeedImage = "Native_FeedImage";//反馈图片 + public static final String Android_HeadImage = "Native_HeadImage";//头像图片 + + public static final String Android_Login = "Native_GoogleLogin"; + public static final String Android_LoginOut = "Native_GoogleLoginOut"; + public static final String Android_Pay = "Native_GooglePay"; + + public static final String Zg_Login = "Native_ZgLogin"; + public static final String Zg_LoginOut = "Native_ZgLoginOut"; + public static final String Zg_StopPlay = "Native_ZgStopPlay"; + public static final String Zg_StartPlay = "Native_ZgStartPlay"; + public static final String Zg_StopPublish = "Native_ZgStopPublish"; + public static final String Zg_StartPublish = "Native_ZgStartPublish"; + public static final String Zg_AllPlay = "Native_ZgAllPlay"; + public static final String Zg_AudioVolume = "Native_ZgAudioVolume"; +} diff --git a/android/app/src/com/cocos/game/EventToScriptUtil.java b/android/app/src/com/cocos/game/EventToScriptUtil.java new file mode 100644 index 0000000..b124548 --- /dev/null +++ b/android/app/src/com/cocos/game/EventToScriptUtil.java @@ -0,0 +1,69 @@ +package com.cocos.game; + +import android.util.Log; + +import com.cocos.lib.JsbBridgeWrapper; + +public class EventToScriptUtil { + + private static final String TAG = "EventToScriptUtil"; + private static EventToScriptUtil _instance = null; + + public static EventToScriptUtil getInstance() { + if (_instance == null) { + _instance = new EventToScriptUtil(); + } + return _instance; + } + + private AppActivity curAppActivity = null; + private String adjustTT = ""; + private JsbBridgeWrapper jbw = null; + + public void actCallBack(AppActivity nAppActivity, String _adjustTT) { + Log.i(TAG, "actCallBack: " + _adjustTT); + if (this.curAppActivity == null) + this.curAppActivity = nAppActivity; + if (_adjustTT != "") { + this.callBackToLua(_adjustTT); + } else if (this.adjustTT != "") { + this.callBackToLua(this.adjustTT); + } + } + + public void appCallBack(String _adjustTT) { + Log.i(TAG, "appCallBack: " + _adjustTT); + if (_adjustTT != "" && this.curAppActivity != null) { + this.adjustTT = _adjustTT; + this.callBackToLua(_adjustTT); + } + } + + public void setToScript(AppActivity nAppActivity, String _eventName, String _val) { + if (this.curAppActivity == null) + this.curAppActivity = nAppActivity; + + Log.d(TAG, "setToScript: " + _eventName + " " + _val); + dispatchEventToScript(_eventName, _val); + } + + private void callBackToLua(final String adjustTT) { + dispatchEventToScript(EventNameUtil.Android_AdjustTT, adjustTT); + } + + + public void dispatchEventToScript(final String _eventName, final String _val) { +// if (this.curAppActivity == null) { +// return; +// } + try { + if (jbw == null) { + jbw = JsbBridgeWrapper.getInstance(); + } + jbw.dispatchEventToScript(_eventName, _val); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/android/app/src/com/cocos/game/GlideEngine.java b/android/app/src/com/cocos/game/GlideEngine.java new file mode 100644 index 0000000..847de52 --- /dev/null +++ b/android/app/src/com/cocos/game/GlideEngine.java @@ -0,0 +1,113 @@ +package com.cocos.game; + +import android.content.Context; +import android.widget.ImageView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.CenterCrop; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.luck.picture.lib.engine.ImageEngine; +import com.luck.picture.lib.utils.ActivityCompatHelper; + +import com.ddddd.one.R; + +public class GlideEngine implements ImageEngine { + + /** + * 加载图片 + * + * @param context 上下文 + * @param url 资源url + * @param imageView 图片承载控件 + */ + @Override + public void loadImage(Context context, String url, ImageView imageView) { + if (!ActivityCompatHelper.assertValidRequest(context)) { + return; + } + Glide.with(context) + .load(url) + .into(imageView); + } + + @Override + public void loadImage(Context context, ImageView imageView, String url, int maxWidth, int maxHeight) { + if (!ActivityCompatHelper.assertValidRequest(context)) { + return; + } + Glide.with(context) + .load(url) + .override(maxWidth, maxHeight) + .into(imageView); + } + + /** + * 加载相册目录封面 + * + * @param context 上下文 + * @param url 图片路径 + * @param imageView 承载图片ImageView + */ + @Override + public void loadAlbumCover(Context context, String url, ImageView imageView) { + if (!ActivityCompatHelper.assertValidRequest(context)) { + return; + } + Glide.with(context) + .asBitmap() + .load(url) + .override(180, 180) + .sizeMultiplier(0.5f) + .transform(new CenterCrop(), new RoundedCorners(8)) + .placeholder(R.drawable.ps_image_placeholder) + .into(imageView); + } + + + /** + * 加载图片列表图片 + * + * @param context 上下文 + * @param url 图片路径 + * @param imageView 承载图片ImageView + */ + @Override + public void loadGridImage(Context context, String url, ImageView imageView) { + if (!ActivityCompatHelper.assertValidRequest(context)) { + return; + } + Glide.with(context) + .load(url) + .override(200, 200) + .centerCrop() + .placeholder(R.drawable.ps_image_placeholder) + .into(imageView); + } + + @Override + public void pauseRequests(Context context) { + if (!ActivityCompatHelper.assertValidRequest(context)) { + return; + } + Glide.with(context).pauseRequests(); + } + + @Override + public void resumeRequests(Context context) { + if (!ActivityCompatHelper.assertValidRequest(context)) { + return; + } + Glide.with(context).resumeRequests(); + } + + private GlideEngine() { + } + + private static final class InstanceHolder { + static final GlideEngine instance = new GlideEngine(); + } + + public static GlideEngine createGlideEngine() { + return InstanceHolder.instance; + } +} \ No newline at end of file diff --git a/android/app/src/com/cocos/game/GoogleUtil.java b/android/app/src/com/cocos/game/GoogleUtil.java new file mode 100644 index 0000000..abd9414 --- /dev/null +++ b/android/app/src/com/cocos/game/GoogleUtil.java @@ -0,0 +1,855 @@ +package com.cocos.game; + +import android.content.Context; +import android.content.Intent; +import android.util.Log; +import android.widget.Toast; + +import androidx.annotation.NonNull; + +import com.adjust.sdk.Adjust; +import com.adjust.sdk.OnDeviceIdsRead; +import com.android.billingclient.api.BillingClient; +import com.android.billingclient.api.BillingClientStateListener; +import com.android.billingclient.api.BillingFlowParams; +import com.android.billingclient.api.BillingResult; +import com.android.billingclient.api.ConsumeParams; +import com.android.billingclient.api.ConsumeResponseListener; +import com.android.billingclient.api.ProductDetails; +import com.android.billingclient.api.ProductDetailsResponseListener; +import com.android.billingclient.api.Purchase; +import com.android.billingclient.api.PurchasesResponseListener; +import com.android.billingclient.api.PurchasesUpdatedListener; +import com.android.billingclient.api.QueryProductDetailsParams; +import com.android.billingclient.api.QueryPurchasesParams; +import com.android.billingclient.api.SkuDetails; +import com.android.billingclient.api.SkuDetailsParams; +import com.android.billingclient.api.SkuDetailsResponseListener; +import com.cocos.lib.JsbBridgeWrapper; +import com.google.android.gms.auth.api.signin.GoogleSignIn; +import com.google.android.gms.auth.api.signin.GoogleSignInAccount; +import com.google.android.gms.auth.api.signin.GoogleSignInClient; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GoogleApiAvailability; +import com.google.android.gms.common.api.ApiException; +import com.google.android.gms.games.Games; +import com.google.android.gms.games.Player; +import com.google.android.gms.games.PlayersClient; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.tencent.bugly.crashreport.CrashReport; + +import org.jetbrains.annotations.NotNull; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GoogleUtil { + + private static final String TAG = "GoogleUtil"; + private static GoogleUtil sInstance = null; + /** + * 缓存的SKU列表 + */ + private static Map skuDetailsMap = new HashMap<>(); + private static Map productDetailsMap = new HashMap<>(); + private static PurchasesUpdatedListener purchasesUpdatedListener; + private static BillingClient billingClient; + + public static GoogleUtil getInstance() { + if (sInstance == null) { + sInstance = new GoogleUtil(); + } + return sInstance; + } + + // JAVA + private JsbBridgeWrapper jbw = null; + + public JsbBridgeWrapper GetJsbBridgeWrapper() { + if (jbw == null) { + jbw = JsbBridgeWrapper.getInstance(); + } + return jbw; + } + + private static Context mContext; + private static AppActivity mActivity; + + /** + * 初始化信息 + * + * @param activity + */ + private static void InitInfo(AppActivity activity, Context _context) { + if (mActivity == null) + mActivity = activity; + if (mContext == null) + mContext = _context; + } + + /** + * 初始化Google登录信息 + * + * @param nAppActivity + * @param _context + * @param mGoogleSignInClient + */ + public void InitLogin(AppActivity nAppActivity, Context _context, GoogleSignInClient mGoogleSignInClient) { + InitInfo(nAppActivity, _context); + + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_Login, arg -> { + Log.d(TAG, "InitLogin: " + arg); + // 判断Google服务是否可用 + if (!IsGooglePlayServices()) { + GoogleLoginSuccess(-3, null); + return; + } + // 检查现有的登录用户 + GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(mContext);//getApplicationContext() + if (null != account && account.getServerAuthCode() != null) { + //未登录 + GoogleLoginSuccess(1, account); + return; + } + try { + //设置回调时requestCode + Intent signInIntent = mGoogleSignInClient.getSignInIntent(); + mActivity.startActivityForResult(signInIntent, nAppActivity.REQUEST_CODE_GOOGLE_LOGIN); + } catch (Exception e) { + GoogleLoginSuccess(-2, null); + e.printStackTrace(); + } + }); + } + + /** + * 初始化Google登出信息 + * + * @param nAppActivity + * @param _context + * @param mGoogleSignInClient + */ + public void InitLoginOut(AppActivity nAppActivity, Context _context, GoogleSignInClient mGoogleSignInClient) { + InitInfo(nAppActivity, _context); + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_LoginOut, arg -> { + Log.d(TAG, "InitLogin: " + arg); + // 判断Google服务是否可用 + if (!IsGooglePlayServicesNoShow()) { + Log.d(TAG, "InitLoginOut: IsGooglePlayServicesNoShow"); + return; + } + // 检查现有的登录用户 + GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(mContext); + if (null != account && account.getServerAuthCode() != null) { + mGoogleSignInClient.signOut().addOnCompleteListener(mActivity, + new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + // at this point, the user is signed out. + Log.d(TAG, "onComplete:signOut "); + } + }); + } + }); + } + + /** + * 初始化google支付 + */ + public void initGooglePay(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Android_Pay, strParam -> { + try { + JSONObject jo = new JSONObject(strParam); + final String sku_id = jo.getString("sku_id"); + final String order_Id = jo.getString("order_Id"); + final int pay_Type = jo.getInt("pay_Type"); + final String o_uid = jo.getString("uid"); + + CrashReport.setUserId(o_uid);// Bugly 设置用户ID + + // 判断Google服务是否可用 + if (!IsGooglePlayServicesNoShow()) { + if (pay_Type == 1) { + googlePaySuccess(-3, "", sku_id, "", pay_Type); + } + return; + } + // 初始化(监听支付事件) + if (billingClient == null) { + purchasesUpdatedListener = new PurchasesUpdatedListener() { + @Override + public void onPurchasesUpdated(BillingResult billingResult, List purchases) { + onPurchasesUpdatedFun(billingResult, purchases, sku_id, pay_Type); + } + }; + billingClient = BillingClient.newBuilder(nAppActivity) + .setListener(purchasesUpdatedListener) + .enablePendingPurchases() + .build(); + } + if (billingClient != null) { + // 连接Google服务器(必须) + if (!billingClient.isReady()) { + Log.d(TAG, "BillingClient: Start connection..."); + billingClient.startConnection(new BillingClientStateListener() { + @Override + public void onBillingSetupFinished(BillingResult billingResult) { + if (billingResult != null) { + Log.d(TAG, "BillingClient: Start connection..." + billingResult.getResponseCode()); + if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { + // The BillingClient is ready. You can query purchases here. + if (pay_Type == 1) { + // 判断Google服务是否支持ProductDetails服务支付 + if (IsUseProductDetails()) + getGoogleProductDetail(sku_id, order_Id, pay_Type, o_uid); + else + getGoogleSkuDetail(sku_id, order_Id, pay_Type, o_uid); + } else { + if (IsUseProductDetails()) + queryProductGoogleHistoryOrder(); + else + queryGoogleHistoryOrder(); + } + } else { + Log.d(TAG, "onBillingSetupFinished--error==" + billingResult.getDebugMessage() + "====" + billingResult.getResponseCode()); + googlePaySuccess(-3, "", sku_id, "", pay_Type); + // Toast.makeText(nAppActivity, "Bu cihaz desteklenmiyor", Toast.LENGTH_SHORT).show();//不支持此设备 + } + } else { + Log.d(TAG, "onBillingSetupFinished: billingResult ==== null"); + googlePaySuccess(-3, "", sku_id, "", pay_Type); + // Toast.makeText(nAppActivity, "Bu cihaz desteklenmiyor", Toast.LENGTH_SHORT).show();//不支持此设备 + } + } + + @Override + public void onBillingServiceDisconnected() { + Log.d(TAG, "onBillingServiceDisconnected"); + // Try to restart the connection on the next request to + // Google Play by calling the startConnection() method. + //if(billingClient != null) + // billingClient.startConnection(this); + } + }); + } else { + if (pay_Type == 1) { + if (IsUseProductDetails()) + getGoogleProductDetail(sku_id, order_Id, pay_Type, o_uid); + else + getGoogleSkuDetail(sku_id, order_Id, pay_Type, o_uid); + } else { + if (IsUseProductDetails()) + queryProductGoogleHistoryOrder(); + else + queryGoogleHistoryOrder(); + } + } + } + } catch (Exception e) { + Log.i(TAG, "initGooglePay=>json_error " + e.toString()); + } + }); + } + + /** + * @param purchase + */ + public void handlePurchase(Purchase purchase) { + // Purchase retrieved from BillingClient#queryPurchasesAsync or your PurchasesUpdatedListener. + + // Verify the purchase. + // Ensure entitlement was not already granted for this purchaseToken. + // Grant entitlement to the user. + // 已支付状态处理 + if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) { + String sku_id = purchase.getSkus().get(0); + String packageName = purchase.getPackageName(); +// {"orderId":"GPA.3328-7219-1739-02590","packageName":"com.cxhdgame.kxddz","productId":"cx101_1","purchaseTime":1636445521030,"purchaseState":0,"purchaseToken":"edmllomemkamjnhijmiainna.AO-J1OyyWeKcqednsYd1xS3hCTj1dPU2VmClddFHAwu5k8tI2a3uUYSmwyl7syqweO1aNRri3eSno94iBSE_kiKlktdk_pYbQg","quantity":1,"acknowledged":false} + Log.d(TAG, "handlePurchase: packageName:" + sku_id); + Log.d(TAG, "handlePurchase: productId:" + packageName); + Log.d(TAG, "handlePurchase: purchase" + purchase); + +// googlePaySuccess(1, purchase.getPurchaseToken()); + + ConsumeParams consumeParams = + ConsumeParams.newBuilder() + .setPurchaseToken(purchase.getPurchaseToken()) + .build(); + ConsumeResponseListener listener = new ConsumeResponseListener() { + @Override + public void onConsumeResponse(BillingResult billingResult, String purchaseToken) { + if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { + // Handle the success of the consume operation. + googlePaySuccess(1, purchaseToken, sku_id, packageName, 1); + } else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) { + googlePaySuccess(-1, "", sku_id, packageName, 1); + } else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.FEATURE_NOT_SUPPORTED) { + googlePaySuccess(-3, "", sku_id, packageName, 1); + } else { + googlePaySuccess(-2, "", sku_id, packageName, 1); + } + } + }; + billingClient.consumeAsync(consumeParams, listener); + } else if (purchase.getPurchaseState() == Purchase.PurchaseState.PENDING) { + googlePaySuccess(-4, "", "", "", 1); + } + } + + //#region 登录相关方法 + + /** + * Google登录返回 + * + * @param completedTask + */ + public void HandleSignInResult(AppActivity nAppActivity, Context _context, Task completedTask) { + try { + InitInfo(nAppActivity, _context); + Log.d(TAG, "HandleSignInResult: "); + GoogleSignInAccount account = completedTask.getResult(ApiException.class); + GoogleLoginSuccess(1, account); + // Signed in successfully, show authenticated UI. + // updateUI(account); + } catch (ApiException e) { + // The ApiException status code indicates the detailed failure reason. + // Please refer to the GoogleSignInStatusCodes class reference for more information. + // updateUI(null); + Log.d(TAG, "HandleSignInResult: signInResult:failed code=" + e.toString()); + // https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInStatusCodes + // 12500 使用当前帐户登录尝试失败。 + // 12501 用户已取消登录。即用户取消了一些登录解决方案,例如帐户选择或 OAuth 同意。 + // 12502 当前正在进行登录过程,当前无法继续。例如,用户多次单击 SignInButton 并且启动了多个登录意图。 + GoogleLoginSuccess(e.getStatusCode() == 12501 ? -1 : -2, null); + } + } + + /** + * 验证Google服务是否可用、有弹窗 + * + * @return boolean + */ + private boolean IsGooglePlayServices() { + GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance(); + int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(mActivity); + // ConnectionResult:SUCCESS、SERVICE_MISSING、SERVICE_UPDATING、SERVICE_VERSION_UPDATE_REQUIRED、SERVICE_DISABLED、SERVICE_INVALID + if (resultCode != ConnectionResult.SUCCESS) { + if (googleApiAvailability.isUserResolvableError(resultCode)) + googleApiAvailability.getErrorDialog(mActivity, resultCode, mActivity.REQUEST_CODE_GOOGLE_PAY_SERVICES).show(); + else + Log.d(TAG, "IsGooglePlayServices: This device is not supported"); + return false; + } + return true; + } + + /** + * 验证Google服务是否可用、无弹窗 + * + * @return boolean + */ + private boolean IsGooglePlayServicesNoShow() { + GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance(); + int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(mActivity); + // ConnectionResult:SUCCESS、SERVICE_MISSING、SERVICE_UPDATING、SERVICE_VERSION_UPDATE_REQUIRED、SERVICE_DISABLED、SERVICE_INVALID + if (resultCode != ConnectionResult.SUCCESS) { + return false; + } + return true; + } + + /** + * google登录成功、回传Lua + * + * @param state 状态:-1.用户取消登录、1.登录成功、-2.登录异常、-3.不支持此设备 + * @param account 用户登录信息 + */ + private void GoogleLoginSuccess(int state, GoogleSignInAccount account) { + if (state == 1) { + try { + PlayersClient mPlayersClient = Games.getPlayersClient(mActivity, account); + mPlayersClient.getCurrentPlayer() + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + Log.d(TAG, "GoogleLoginSuccess onComplete:getDisplayName " + task.getResult().getDisplayName()); + googleLoginSendToLua(task.getResult().getDisplayName(), state, account); + } else { + Log.d(TAG, "GoogleLoginSuccess onComplete: task.getResult().getDisplayName() error "); + googleLoginSendToLua("", state, account); + } + + } + }); + } catch (Exception e) { + googleLoginSendToLua("", state, account); + Log.d(TAG, "GoogleLoginSuccess: " + e.getMessage()); + } + } else { + // 不支持此设备 + String toast_msg = ""; + if (state == -1) + toast_msg = "Kullanıcı girişi iptal etti";//用户取消登录 + else if (state == -2) + toast_msg = "Oturum açma istisnası";//登录异常 + else + toast_msg = "Bu cihaz desteklenmiyor";//不支持此设备 + + Toast.makeText(mActivity, toast_msg, Toast.LENGTH_SHORT).show(); + googleLoginSendToLua("", state, account); + } + } + + /** + * google登录成功、回传Lua + * + * @param accountName + * @param state 状态:-1.用户取消登录、1.登录成功、-2.登录异常、-3.不支持此设备 + * @param account 用户登录信息 + */ + private void googleLoginSendToLua(String accountName, int state, GoogleSignInAccount account) { + //状态|ID|token|名称|归因信息|adid_idfa|adid + String reStr = state + "||||||"; + if (null != account) { + if (null == accountName || accountName == "") { + accountName = null == account.getDisplayName() ? "" : account.getDisplayName(); + accountName = null == accountName ? "" : null == account.getGivenName() ? "" : account.getGivenName(); + } + reStr = state + + "|" + account.getId() + //+ "|" + account.getIdToken() + + "|" + account.getServerAuthCode() + + "|" + accountName + + "|" + AdjustUtil.getInstance().getAdjustTrackerToken() + + "|" + "" + + "|" + Adjust.getAdid(); + } + + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Android_Login, reStr); + } + //#endregion + + //#region 支付相关方法 + + /** + * 获取Google待支付商品信息 + */ + private void getGoogleSkuDetail(String sku_id, String order_Id, int pay_type, String o_uid) { + // 检查是否在缓存中 + if (skuDetailsMap != null && skuDetailsMap.containsKey(sku_id)) { + SkuDetails curr_skuDetails = skuDetailsMap.get(sku_id); + Log.d(TAG, "getGoogleSkuDetail skuDetailsMap => curr_skuDetails: ..." + curr_skuDetails); + if (curr_skuDetails != null) { + launchGooglePay(curr_skuDetails, order_Id, o_uid); + } + return; + } + + // 查询SKU商品是否存在 + List skuList = new ArrayList<>(); + skuList.add(sku_id); + SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder(); + params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP); + billingClient.querySkuDetailsAsync(params.build(), + new SkuDetailsResponseListener() { + @Override + public void onSkuDetailsResponse(BillingResult billingResult, + List skuDetailsList) { + Log.d(TAG, "getGoogleSkuDetail onSkuDetailsResponse:" + billingResult + ";skuDetailsList:" + skuDetailsList); + // Process the result. + if (billingResult == null) { + Log.d(TAG, "getGoogleSkuDetail onSkuDetailsResponse: billingResult ==== null"); + return; + } + + int responseCode = billingResult.getResponseCode(); + String debugMessage = billingResult.getDebugMessage(); + switch (responseCode) { + case BillingClient.BillingResponseCode.OK: + if (skuDetailsList == null) { + Log.d(TAG, "getGoogleSkuDetail onSkuDetailsResponse: skuDetailsList ==== null"); + } else { + SkuDetails curr_skuDetails = null; + for (SkuDetails skuDetails : skuDetailsList) { + if (null != skuDetails) { + curr_skuDetails = skuDetails; + if (!skuDetailsMap.containsKey(skuDetails.getSku())) { + skuDetailsMap.put(skuDetails.getSku(), skuDetails); + } + } + } + if (curr_skuDetails != null) { + Log.d(TAG, "getGoogleSkuDetail onSkuDetailsResponse => curr_skuDetails: ..." + curr_skuDetails); + launchGooglePay(curr_skuDetails, order_Id, o_uid); + } + } + break; + case BillingClient.BillingResponseCode.SERVICE_DISCONNECTED: + case BillingClient.BillingResponseCode.SERVICE_UNAVAILABLE: + case BillingClient.BillingResponseCode.BILLING_UNAVAILABLE: + case BillingClient.BillingResponseCode.ITEM_UNAVAILABLE: + case BillingClient.BillingResponseCode.DEVELOPER_ERROR: + case BillingClient.BillingResponseCode.ERROR: + Log.d(TAG, "getGoogleSkuDetail onSkuDetailsResponse: " + responseCode + " " + debugMessage); + googlePaySuccess(-3, "", sku_id, "", pay_type); + break; + case BillingClient.BillingResponseCode.USER_CANCELED: + Log.d(TAG, "getGoogleSkuDetail onSkuDetailsResponse: " + responseCode + " " + debugMessage); + googlePaySuccess(-1, "", sku_id, "", pay_type); + break; + // These response codes are not expected. + case BillingClient.BillingResponseCode.FEATURE_NOT_SUPPORTED: + case BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED: + case BillingClient.BillingResponseCode.ITEM_NOT_OWNED: + default: + Log.d(TAG, "getGoogleSkuDetail onSkuDetailsResponse: " + responseCode + " " + debugMessage); + googlePaySuccess(-2, "", sku_id, "", pay_type); + } + } + }); + } + + /** + * 拉起Google支付 + */ + private void launchGooglePay(SkuDetails curr_skuDetails, String order_Id, String o_uid) { + // if (!billingClient.isReady()) { + // Log.e(TAG, "launchBillingFlow: BillingClient is not ready"); + // } + + BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() + .setSkuDetails(curr_skuDetails) //商品信息 + .setObfuscatedProfileId(order_Id) //订单号 + .setObfuscatedAccountId(MD5Util.MD5Encode(o_uid, "")) //系统对应的ID + .build(); + + BillingResult billingResult = billingClient.launchBillingFlow(mActivity, billingFlowParams); + int responseCode = billingResult.getResponseCode(); + String debugMessage = billingResult.getDebugMessage(); + Log.d(TAG, "launchGooglePay: BillingResponse " + responseCode + " " + debugMessage); + } + + /** + * 查询掉单订单信息、供LUA调用 + */ + private void queryGoogleHistoryOrder() { + Log.d(TAG, "queryGoogleHistoryOrder: "); + if (billingClient != null) { + billingClient.queryPurchasesAsync(BillingClient.SkuType.INAPP, new PurchasesResponseListener() { + @Override + public void onQueryPurchasesResponse(@NonNull @NotNull BillingResult billingResult, @NonNull @NotNull List purchases) { + if (purchases != null) { + for (Purchase purchase : purchases) { + if (purchase.isAcknowledged()) + consumeProduct(purchase.getPurchaseToken()); + else { + googlePaySuccess(1, purchase.getPurchaseToken(), purchase.getSkus().get(0), purchase.getPackageName(), 2); + } + } + } + } + }); + } + } + + /** + * 处理Google支付结果 + * + * @param billingResult + * @param purchases + */ + private void onPurchasesUpdatedFun(BillingResult billingResult, List purchases, String sku_id, int pay_type) { + if (billingResult == null) { + Log.d(TAG, "onPurchasesUpdatedFun: null BillingResult"); + googlePaySuccess(-3, "", sku_id, "", pay_type); + return; + } + int responseCode = billingResult.getResponseCode(); + String debugMessage = billingResult.getDebugMessage(); + Log.d(TAG, "onPurchasesUpdatedFun: " + responseCode + " " + debugMessage); + switch (responseCode) { + case BillingClient.BillingResponseCode.OK: + if (purchases == null) { + Log.d(TAG, "onPurchasesUpdatedFun: null purchase list"); +// processPurchases(null); + googlePaySuccess(-3, "", sku_id, "", pay_type); + } else { + for (Purchase purchase : purchases) { +// handlePurchase(purchase); + googlePaySuccess(1, purchase.getPurchaseToken(), purchase.getSkus().get(0), purchase.getPackageName(), pay_type); + } + } + break; + case BillingClient.BillingResponseCode.USER_CANCELED: + Log.d(TAG, "onPurchasesUpdatedFun: User canceled the purchase"); + googlePaySuccess(-1, "", sku_id, "", pay_type); + break; + case BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED: + Log.d(TAG, "onPurchasesUpdatedFun: The user already owns this item"); + if (IsUseProductDetails()) + queryProductGoogleHistoryOrder(); + else + queryGoogleHistoryOrder(); + break; + case BillingClient.BillingResponseCode.DEVELOPER_ERROR: + googlePaySuccess(-1, "", sku_id, "", pay_type); + Log.d(TAG, "onPurchasesUpdatedFun: Developer error means that Google Play " + + "does not recognize the configuration. If you are just getting started, " + + "make sure you have configured the application correctly in the " + + "Google Play Console. The SKU product ID must match and the APK you " + + "are using must be signed with release keys." + ); + break; + default: + googlePaySuccess(-1, "", sku_id, "", pay_type); + break; + } + } + + /** + * google支付完成、回传Lua + * + * @param state 状态:-1.用户取消支付、1.支付成功、-2.支付异常、-3.不支持此设备、-4.交易未完成 + * @param purchaseToken 购买Token、服务端用于校验并进行发放道具的校验码 + * @param sku_id 商品sku_id + * @param packgeName 包名 + * @param pay_Type 操作方式:1.支付、2.查询掉单 + */ + private void googlePaySuccess(int state, String purchaseToken, String sku_id, String packgeName, int pay_Type) { + String reStr = state + "|" + " " + "|" + " " + "|" + " "; + if (state == 1) { + reStr = state + "|" + sku_id + "|" + packgeName + "|" + purchaseToken; + Log.d(TAG, "googlePaySuccess:handleSignInResult:" + reStr); + //SendToJs(EventNameUtil.Android_Pay, reStr); + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Android_Pay, reStr); + } else { + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Android_Pay, reStr); + //SendToJs(EventNameUtil.Android_Pay, reStr); +// if (pay_Type == 1) { +// String toast_msg = ""; +// if (state == -1) +// toast_msg = "Kullanıcı ödemeyi iptal etti";//用户取消支付 +// else if (state == -2) +// toast_msg = "Ödeme istisnası";//支付异常 +// else if (state == -3) +// toast_msg = "Bu cihaz desteklenmiyor";//不支持此设备 +// else +// toast_msg = "İşlem tamamlanmadı";//交易未完成 +// Toast.makeText(mActivity, toast_msg, Toast.LENGTH_SHORT).show(); +// } + } + } + + /** + * 消耗商品 + * + * @param purchaseToken 商品token + */ + private void consumeProduct(String purchaseToken) { + Log.d(TAG, "consumeProduct:::" + purchaseToken); + if (billingClient != null && billingClient.isReady()) { + ConsumeParams consumeParams = + ConsumeParams.newBuilder() + .setPurchaseToken(purchaseToken) + .build(); + ConsumeResponseListener listener = new ConsumeResponseListener() { + @Override + public void onConsumeResponse(BillingResult billingResult, String purchaseToken) { + if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { + // Handle the success of the consume operation. + } + } + }; + billingClient.consumeAsync(consumeParams, listener); + } + } + //#endregion + + //#region 6.0支付方法 + + /** + * 判断ProductDetails是否可用、不可用请使用SkuDetails + * + * @return + */ + private boolean IsUseProductDetails() { + //在极少数情况下,某些设备无法支持 ProductDetails 和 queryProductDetailsAsync(),这通常是因为 Google Play 服务版本已过时。 + //为了确保对此场景提供适当的支持,请先针对 PRODUCT_DETAILS 功能调用 isFeatureSupported(),然后再调用 queryProductDetailsAsync。 + //如果响应为 OK,表示设备支持该功能,您可以继续调用 queryProductDetailsAsync()。 + //如果响应为 FEATURE_NOT_SUPPORTED,您可以改用 querySkuDetailsAsync() 请求可用的向后兼容产品列表。 + //如需详细了解如何使用向后兼容功能,请参阅 2022 年 5 月的订阅功能指南。 + BillingResult _billingResult = billingClient.isFeatureSupported(BillingClient.FeatureType.PRODUCT_DETAILS); + return _billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK; + } + + /** + * 获取Google待支付商品信息 + */ + private void getGoogleProductDetail(String product_id, String order_Id, int pay_type, String o_uid) { + // 检查是否在缓存中 + if (productDetailsMap != null && productDetailsMap.containsKey(product_id)) { + ProductDetails curr_productDetails = productDetailsMap.get(product_id); + Log.d(TAG, "getGoogleProductDetail productDetailsMap => curr_skuDetails: ..." + curr_productDetails); + if (curr_productDetails != null) { + launchProductGooglePay(curr_productDetails, order_Id, o_uid); + } + return; + } + + List productList = new ArrayList<>(); + productList.add(QueryProductDetailsParams.Product.newBuilder() + .setProductId(product_id) + .setProductType(BillingClient.ProductType.INAPP) + .build()); + QueryProductDetailsParams params = QueryProductDetailsParams.newBuilder() + .setProductList(productList) + .build(); + + billingClient.queryProductDetailsAsync( + params, + new ProductDetailsResponseListener() { + public void onProductDetailsResponse(BillingResult billingResult, List productDetailsList) { + // Process the result + Log.d(TAG, "getGoogleProductDetail onProductDetailsResponse:" + billingResult + ";productDetailsList:" + productDetailsList); + if (billingResult == null) { + Log.d(TAG, "getGoogleProductDetail onProductDetailsResponse: billingResult ==== null"); + return; + } + + int responseCode = billingResult.getResponseCode(); + String debugMessage = billingResult.getDebugMessage(); + switch (responseCode) { + case BillingClient.BillingResponseCode.OK: + if (productDetailsList == null) { + Log.d(TAG, "getGoogleProductDetail onProductDetailsResponse: productDetailsList ==== null"); + } else { + ProductDetails curr_productDetails = null; + for (ProductDetails productDetails : productDetailsList) { + if (null != productDetails) { + curr_productDetails = productDetails; + if (!productDetailsMap.containsKey(productDetails.getProductId())) { + productDetailsMap.put(productDetails.getProductId(), productDetails); + } + } + } + if (curr_productDetails != null) { + Log.d(TAG, "getGoogleProductDetail onProductDetailsResponse => curr_productDetails: ..." + curr_productDetails); + launchProductGooglePay(curr_productDetails, order_Id, o_uid); + } + } + break; + case BillingClient.BillingResponseCode.SERVICE_DISCONNECTED: + case BillingClient.BillingResponseCode.SERVICE_UNAVAILABLE: + case BillingClient.BillingResponseCode.BILLING_UNAVAILABLE: + case BillingClient.BillingResponseCode.ITEM_UNAVAILABLE: + case BillingClient.BillingResponseCode.DEVELOPER_ERROR: + case BillingClient.BillingResponseCode.ERROR: + Log.d(TAG, "getGoogleProductDetail onProductDetailsResponse: " + responseCode + " " + debugMessage); + googlePaySuccess(-3, "", product_id, "", pay_type); + break; + case BillingClient.BillingResponseCode.USER_CANCELED: + Log.d(TAG, "getGoogleProductDetail onProductDetailsResponse: " + responseCode + " " + debugMessage); + googlePaySuccess(-1, "", product_id, "", pay_type); + break; + // These response codes are not expected. + case BillingClient.BillingResponseCode.FEATURE_NOT_SUPPORTED: + case BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED: + case BillingClient.BillingResponseCode.ITEM_NOT_OWNED: + default: + Log.d(TAG, "getGoogleProductDetail onProductDetailsResponse: " + responseCode + " " + debugMessage); + googlePaySuccess(-2, "", product_id, "", pay_type); + } + } + } + ); + } + + /** + * 拉起Google支付 + */ + private void launchProductGooglePay(ProductDetails curr_productDetails, String order_Id, String o_uid) { + //if (!billingClient.isReady()) { + // Log.e(TAG, "launchBillingFlow: BillingClient is not ready"); + //} + + // 获取优惠信息 + // Retrieve a value for "productDetails" by calling queryProductDetailsAsync() + // Get the offerToken of the selected offer + // String offerToken = curr_productDetails + // .getSubscriptionOfferDetails() + // .get(selectedOfferIndex) + // .getOfferToken(); + + // 支付信息组合 + // Set the parameters for the offer that will be presented + // in the billing flow creating separate productDetailsParamsList variable + List productDetailsParamsList = new ArrayList<>(); + productDetailsParamsList.add( + BillingFlowParams.ProductDetailsParams.newBuilder() + .setProductDetails(curr_productDetails) + // .setOfferToken(offerToken) //优惠信息 + .build() + ); + BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() + .setProductDetailsParamsList(productDetailsParamsList) + .setObfuscatedProfileId(order_Id) //订单号 + .setObfuscatedAccountId(MD5Util.MD5Encode(o_uid, "")) //系统对应的ID + .build(); + + // Launch the billing flow 拉起支付 + BillingResult billingResult = billingClient.launchBillingFlow(mActivity, billingFlowParams); + int responseCode = billingResult.getResponseCode(); + String debugMessage = billingResult.getDebugMessage(); + Log.d(TAG, "launchProductGooglePay: BillingResponse " + responseCode + " " + debugMessage); + } + + /** + * 查询掉单订单信息、供LUA调用 + */ + private void queryProductGoogleHistoryOrder() { + Log.d(TAG, "queryProductGoogleHistoryOrder: "); + if (billingClient != null) { + billingClient.queryPurchasesAsync( + QueryPurchasesParams.newBuilder().setProductType(BillingClient.ProductType.INAPP).build(), + new PurchasesResponseListener() { + public void onQueryPurchasesResponse( + BillingResult billingResult, + List purchases) { + // Process the result + for (Purchase purchase : purchases) { + if (purchase.isAcknowledged()) + consumeProduct(purchase.getPurchaseToken()); + else { + googlePaySuccess(1, purchase.getPurchaseToken(), purchase.getProducts().get(0), purchase.getPackageName(), 2); + } + } + } + } + ); + } + } + //#endregion + +// private void SendToJs(String eventName, String params) { +//// mActivity.runOnGLThread(new Runnable() { +//// @Override +//// public void run() { +//// Log.d(TAG, "SendToJs: " + eventName + " " + params); +//// GetJsbBridgeWrapper().dispatchEventToScript(eventName, params); +//// } +//// }); +// try { +// Log.d(TAG, "SendToJs: " + eventName + " " + params); +// GetJsbBridgeWrapper().dispatchEventToScript(eventName, params); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +} diff --git a/android/app/src/com/cocos/game/ImageLoaderUtils.java b/android/app/src/com/cocos/game/ImageLoaderUtils.java new file mode 100644 index 0000000..ae947ce --- /dev/null +++ b/android/app/src/com/cocos/game/ImageLoaderUtils.java @@ -0,0 +1,28 @@ +package com.cocos.game; + +import android.app.Activity; +import android.content.Context; +import android.content.ContextWrapper; + +public class ImageLoaderUtils { + public static boolean assertValidRequest(Context context) { + if (context instanceof Activity) { + Activity activity = (Activity) context; + return !isDestroy(activity); + } else if (context instanceof ContextWrapper) { + ContextWrapper contextWrapper = (ContextWrapper) context; + if (contextWrapper.getBaseContext() instanceof Activity) { + Activity activity = (Activity) contextWrapper.getBaseContext(); + return !isDestroy(activity); + } + } + return true; + } + + private static boolean isDestroy(Activity activity) { + if (activity == null) { + return true; + } + return activity.isFinishing() || activity.isDestroyed(); + } +} diff --git a/android/app/src/com/cocos/game/JSCallJava.java b/android/app/src/com/cocos/game/JSCallJava.java new file mode 100644 index 0000000..2ce7597 --- /dev/null +++ b/android/app/src/com/cocos/game/JSCallJava.java @@ -0,0 +1,268 @@ +package com.cocos.game; + +import android.Manifest; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; +import android.content.pm.ActivityInfo; +import android.content.pm.PackageManager; +import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkCapabilities; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.provider.Settings; +import android.telephony.TelephonyManager; +import android.util.Log; + +import com.adjust.sdk.Adjust; +import com.adjust.sdk.AdjustEvent; + +import java.io.BufferedReader; +import java.io.InputStreamReader; + +public class JSCallJava { + private static final String TAG = "JSCallJava"; + + public static void setOrientationPortrait() { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return; + activity.runOnUiThread(() -> + activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) + ); + } + + public static void setOrientationLandscape() { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return; + activity.runOnUiThread(() -> + activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE) + ); + } + + public static void setClipboardData(String data) { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return; + activity.runOnUiThread(() -> { + ClipboardManager cm = (ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE); + if (cm != null) { + cm.setPrimaryClip(ClipData.newPlainText("Label", data)); + } + }); + } + + public static String GetAppVersion() { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return ""; + try { + return activity.getPackageManager() + .getPackageInfo(activity.getPackageName(), 0).versionName; + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static String GetAndroidId() { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return ""; + return Settings.Secure.getString(activity.getContentResolver(), Settings.Secure.ANDROID_ID); + } + + public static long GetOperatorsID() { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return 0; + try { + TelephonyManager tm = (TelephonyManager) activity.getSystemService(Context.TELEPHONY_SERVICE); + if (tm != null) { + String numeric = tm.getNetworkOperator(); + if (numeric != null && !numeric.isEmpty()) { + return Long.parseLong(numeric); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return 0; + } + + public static void SendADJustEvent(String eventToken) { + try { + AdjustEvent event = new AdjustEvent(eventToken); + Adjust.trackEvent(event); + Log.d(TAG, "SendADJustEvent: " + eventToken); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static String HasVpnTransport() { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return "0"; + try { + ConnectivityManager cm = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE); + if (cm != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + Network activeNetwork = cm.getActiveNetwork(); + if (activeNetwork != null) { + NetworkCapabilities caps = cm.getNetworkCapabilities(activeNetwork); + if (caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) { + return "1"; + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return "0"; + } + + public static String getADId() { + try { + String adid = Adjust.getAdid(); + return adid != null ? adid : ""; + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static void ShakePhoneOnece(int duration) { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return; + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + VibratorManager vm = (VibratorManager) activity.getSystemService(Context.VIBRATOR_MANAGER_SERVICE); + if (vm != null) { + vm.getDefaultVibrator().vibrate( + VibrationEffect.createOneShot(duration, VibrationEffect.DEFAULT_AMPLITUDE)); + } + } else { + Vibrator vib = (Vibrator) activity.getSystemService(Context.VIBRATOR_SERVICE); + if (vib != null && vib.hasVibrator()) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + vib.vibrate(VibrationEffect.createOneShot(duration, VibrationEffect.DEFAULT_AMPLITUDE)); + } else { + vib.vibrate(duration); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static String GetSysInfo(int sysState) { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return ""; + try { + switch (sysState) { + case 0: // SYSSTATE_MACADDRESS + return getMacAddress(activity); + case 1: // SYSSTATE_BIOSID (Android ID) + return GetAndroidId(); + case 2: // SYSSTATE_CUPID (CPU hardware) + return getCpuInfo(); + case 3: // SYSSTATE_HDID (Device ID) + return getDeviceId(activity); + case 4: // SYSSTATE_VERSION + return GetAppVersion(); + case 5: // SYSSTATE_MODEL + return Build.MODEL; + case 6: // SYSSTATE_UUID + return GetAndroidId(); + case 7: // SYSSTATE_OAID + return getADId(); + default: + return ""; + } + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static String GetChannel() { + return "liuhaotest"; + } + + /** + * 从本地选择图片 + * tempDir: 保存目录 + * fileName: 文件名 + * writePath: 可写根目录 + * callbackEvent: 回调事件名 + */ + public static void AdChooseImage(String tempDir, String fileName, String writePath, String callbackEvent) { + AppActivity activity = AppActivity.nAppActivity; + if (activity == null) return; + Log.d(TAG, "AdChooseImage tempDir=" + tempDir + " fileName=" + fileName); + activity.runOnUiThread(() -> { + AppActivity.selectImageIndex = 0; + AppActivity.ChooseImageDialog(); + }); + } + + // ------------------------------------------------------------------------- + // Private helpers + // ------------------------------------------------------------------------- + + private static String getMacAddress(Context context) { + try { + WifiManager wifi = (WifiManager) context.getApplicationContext() + .getSystemService(Context.WIFI_SERVICE); + if (wifi != null) { + WifiInfo info = wifi.getConnectionInfo(); + return info.getMacAddress(); + } + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + private static String getDeviceId(Context context) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); + } + try { + TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (context.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { + return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); + } + } + if (tm != null && tm.getDeviceId() != null) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + return tm.getImei(); + } else { + return tm.getDeviceId(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); + } + + private static String getCpuInfo() { + try { + Process process = Runtime.getRuntime().exec("cat /proc/cpuinfo"); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + if (line.startsWith("Hardware")) { + String[] parts = line.split(":"); + if (parts.length > 1) return parts[1].trim(); + } + } + reader.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return Build.HARDWARE; + } +} diff --git a/android/app/src/com/cocos/game/MD5Util.java b/android/app/src/com/cocos/game/MD5Util.java new file mode 100644 index 0000000..764b306 --- /dev/null +++ b/android/app/src/com/cocos/game/MD5Util.java @@ -0,0 +1,43 @@ +package com.cocos.game; + +import java.security.MessageDigest; + +public class MD5Util { + + private static String byteArrayToHexString(byte b[]) { + StringBuffer resultSb = new StringBuffer(); + for (int i = 0; i < b.length; i++) + resultSb.append(byteToHexString(b[i])); + + return resultSb.toString(); + } + + private static String byteToHexString(byte b) { + int n = b; + if (n < 0) + n += 256; + int d1 = n / 16; + int d2 = n % 16; + return hexDigits[d1] + hexDigits[d2]; + } + + public static String MD5Encode(String origin, String charsetname) { + String resultString = null; + try { + resultString = new String(origin); + MessageDigest md = MessageDigest.getInstance("MD5"); + if (charsetname == null || "".equals(charsetname)) + resultString = byteArrayToHexString(md.digest(resultString + .getBytes())); + else + resultString = byteArrayToHexString(md.digest(resultString + .getBytes(charsetname))); + } catch (Exception exception) { + } + return resultString; + } + + private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5", + "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"}; + +} \ No newline at end of file diff --git a/android/app/src/com/cocos/game/MyApplication.java b/android/app/src/com/cocos/game/MyApplication.java new file mode 100644 index 0000000..c5d0827 --- /dev/null +++ b/android/app/src/com/cocos/game/MyApplication.java @@ -0,0 +1,85 @@ +package com.cocos.game; + +import android.app.Activity; +import android.app.Application; +import android.os.Bundle; +import android.util.Log; + +import com.adjust.sdk.Adjust; +import com.adjust.sdk.AdjustAttribution; +import com.adjust.sdk.AdjustConfig; +import com.adjust.sdk.LogLevel; +import com.adjust.sdk.OnAttributionChangedListener; +import com.ddddd.one.R; + +public class MyApplication extends Application { + private static final String TAG = "MyApplication"; + + @Override + public void onCreate() { + super.onCreate(); + + // Configure adjust SDK. + String appToken = getString(R.string.Adjust_AppToken); + String environment = AdjustConfig.ENVIRONMENT_PRODUCTION; + AdjustConfig config = new AdjustConfig(this, appToken, environment); + + // Change the log level. 如果希望禁用所有日志,请将日志级别设为 suppress: + config.setLogLevel(LogLevel.VERBOSE); + + // Set attribution delegate. + config.setOnAttributionChangedListener(new OnAttributionChangedListener() { + @Override + public void onAttributionChanged(AdjustAttribution attribution) { + //Log.d("cocos1", "Attribution callback called!"); + Log.d(TAG, "Attribution: " + attribution.toString()); + if (null != attribution) { + String clickLabel = null == attribution.clickLabel ? "" : attribution.clickLabel; + String trackerName = null == attribution.trackerName ? "" : attribution.trackerName; + String network = null == attribution.network ? "" : attribution.network; + String trackerToken = null == attribution.trackerToken ? "" : attribution.trackerToken; + String adjustTT = trackerToken + "@" + trackerName + "@" + network + "@" + clickLabel; + + EventToScriptUtil.getInstance().appCallBack(adjustTT); + } + } + }); + + // Initialise the adjust SDK. + Adjust.onCreate(config); + registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks()); + } + + // You can use this class if your app is for Android 4.0 or higher + private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks { + @Override + public void onActivityResumed(Activity activity) { + Adjust.onResume(); + } + + @Override + public void onActivityPaused(Activity activity) { + Adjust.onPause(); + } + + @Override + public void onActivityStopped(Activity activity) { + } + + @Override + public void onActivitySaveInstanceState(Activity activity, Bundle outState) { + } + + @Override + public void onActivityDestroyed(Activity activity) { + } + + @Override + public void onActivityCreated(Activity activity, Bundle savedInstanceState) { + } + + @Override + public void onActivityStarted(Activity activity) { + } + } +} diff --git a/android/app/src/com/cocos/game/MyFirebaseMessagingService.java b/android/app/src/com/cocos/game/MyFirebaseMessagingService.java new file mode 100644 index 0000000..961fbfe --- /dev/null +++ b/android/app/src/com/cocos/game/MyFirebaseMessagingService.java @@ -0,0 +1,198 @@ + + +/** + * Copyright 2016 Google Inc. All Rights Reserved. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.cocos.game; + +//import android.app.NotificationChannel; +//import android.app.NotificationManager; +//import android.app.PendingIntent; +//import android.content.Context; +//import android.content.Intent; +//import android.media.RingtoneManager; +//import android.net.Uri; +//import android.os.Build; +//import androidx.core.app.NotificationCompat; + +import android.util.Log; + +import com.adjust.sdk.Adjust; +import com.google.android.gms.common.GoogleApiAvailability; +import com.google.firebase.messaging.FirebaseMessagingService; +import com.google.firebase.messaging.RemoteMessage; +//import com.google.firebase.quickstart.fcm.R; +// +//import androidx.work.OneTimeWorkRequest; +//import androidx.work.WorkManager; + +/** + * NOTE: There can only be one service in each app that receives FCM messages. If multiple + * are declared in the Manifest then the first one will be chosen. + *

+ * In order to make this Java sample functional, you must remove the following from the Kotlin messaging + * service in the AndroidManifest.xml: + *

+ * + * + * + */ +public class MyFirebaseMessagingService extends FirebaseMessagingService { + + private static final String TAG = "MyFirebaseMsgService"; + + /** + * Called when message is received. + * + * @param remoteMessage Object representing the message received from Firebase Cloud Messaging. + */ + // [START receive_message] + @Override + public void onMessageReceived(RemoteMessage remoteMessage) { + // [START_EXCLUDE] + // There are two types of messages data messages and notification messages. Data messages + // are handled + // here in onMessageReceived whether the app is in the foreground or background. Data + // messages are the type + // traditionally used with GCM. Notification messages are only received here in + // onMessageReceived when the app + // is in the foreground. When the app is in the background an automatically generated + // notification is displayed. + // When the user taps on the notification they are returned to the app. Messages + // containing both notification + // and data payloads are treated as notification messages. The Firebase console always + // sends notification + // messages. For more see: https://firebase.google.com/docs/cloud-messaging/concept-options + // [END_EXCLUDE] + + // TODO(developer): Handle FCM messages here. + // Not getting messages here? See why this may be: https://goo.gl/39bRNJ + Log.d(TAG, "From: " + remoteMessage.getFrom()); + +// // Check if message contains a data payload. +// if (remoteMessage.getData().size() > 0) { +// Log.d(TAG, "Message data payload: " + remoteMessage.getData()); +// +// if (/* Check if data needs to be processed by long running job */ true) { +// // For long-running tasks (10 seconds or more) use WorkManager. +// scheduleJob(); +// } else { +// // Handle message within 10 seconds +// handleNow(); +// } +// +// } + + // Check if message contains a notification payload. + if (remoteMessage.getNotification() != null) { + Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody()); + } + + // Also if you intend on generating your own notifications as a result of a received FCM + // message, here is where that should be initiated. See sendNotification method below. + } + // [END receive_message] + + + // [START on_new_token] + + /** + * There are two scenarios when onNewToken is called: + * 1) When a new token is generated on initial app startup + * 2) Whenever an existing token is changed + * Under #2, there are three scenarios when the existing token is changed: + * A) App is restored to a new device + * B) User uninstalls/reinstalls the app + * C) User clears app data + */ + @Override + public void onNewToken(String token) { + Log.d(TAG, "Refreshed token: " + token); + Adjust.setPushToken(token, getApplicationContext()); + + // If you want to send messages to this application instance or + // manage this apps subscriptions on the server side, send the + // FCM registration token to your app server. +// sendRegistrationToServer(token); + + } + // [END on_new_token] + +// /** +// * Schedule async work using WorkManager. +// */ +// private void scheduleJob() { +// // [START dispatch_job] +// OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(MyWorker.class) +// .build(); +// WorkManager.getInstance(this).beginWith(work).enqueue(); +// // [END dispatch_job] +// } + + /** + * Handle time allotted to BroadcastReceivers. + */ + private void handleNow() { + Log.d(TAG, "Short lived task is done."); + } + + /** + * Persist token to third-party servers. + *

+ * Modify this method to associate the user's FCM registration token with any + * server-side account maintained by your application. + * + * @param token The new token. + */ + private void sendRegistrationToServer(String token) { + // TODO: Implement this method to send token to your app server. + } + +// /** +// * Create and show a simple notification containing the received FCM message. +// * +// * @param messageBody FCM message body received. +// */ +// private void sendNotification(String messageBody) { +// Intent intent = new Intent(this, MainActivity.class); +// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); +// PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, +// PendingIntent.FLAG_ONE_SHOT); +// +// String channelId = getString(R.string.default_notification_channel_id); +// Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); +// NotificationCompat.Builder notificationBuilder = +// new NotificationCompat.Builder(this, channelId) +// .setSmallIcon(R.drawable.ic_stat_ic_notification) +// .setContentTitle(getString(R.string.fcm_message)) +// .setContentText(messageBody) +// .setAutoCancel(true) +// .setSound(defaultSoundUri) +// .setContentIntent(pendingIntent); +// +// NotificationManager notificationManager = +// (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); +// +// // Since android Oreo notification channel is needed. +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +// NotificationChannel channel = new NotificationChannel(channelId, +// "Channel human readable title", +// NotificationManager.IMPORTANCE_DEFAULT); +// notificationManager.createNotificationChannel(channel); +// } +// +// notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); +// } +} \ No newline at end of file diff --git a/android/app/src/com/cocos/game/PermissionsUtil.java b/android/app/src/com/cocos/game/PermissionsUtil.java new file mode 100644 index 0000000..7be7ff4 --- /dev/null +++ b/android/app/src/com/cocos/game/PermissionsUtil.java @@ -0,0 +1,547 @@ +package com.cocos.game; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; + +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +/** + * 动态申请权限工具类 + */ + +public class PermissionsUtil { + + private PermissionsUtil() { + } + + /** + * 危险权限,targetSdkVersion >=23必须动态申请 + */ + public static final class Permission { + private static final List sCalendars = new ArrayList(2); + private static final List sCameras = new ArrayList(1); + private static final List sContactes = new ArrayList(3); + private static final List sLocations = new ArrayList(2); + private static final List sMicrophones = new ArrayList(1); + private static final List sPhones = new ArrayList(7); + private static final List sSensorses = new ArrayList(1); + private static final List sSmses = new ArrayList(5); + private static final List sStorages = new ArrayList(2); + + static { + //Calendar + sCalendars.add(Calendar.READ_CALENDAR); + sCalendars.add(Calendar.WRITE_CALENDAR); + //Camera + sCameras.add(Camera.CAMERA); + //Contacts + sContactes.add(Contacts.WRITE_CONTACTS); + sContactes.add(Contacts.READ_CONTACTS); + sContactes.add(Contacts.GET_ACCOUNTS); + //Location + sLocations.add(Location.ACCESS_FINE_LOCATION); + sLocations.add(Location.ACCESS_COARSE_LOCATION); + //Microphone + sMicrophones.add(Microphone.RECORD_AUDIO); + //Phone + sPhones.add(Phone.READ_PHONE_STATE); + sPhones.add(Phone.CALL_PHONE); + sPhones.add(Phone.READ_CALL_LOG); + sPhones.add(Phone.WRITE_CALL_LOG); + sPhones.add(Phone.ADD_VOICEMAIL); + sPhones.add(Phone.USE_SIP); + sPhones.add(Phone.PROCESS_OUTGOING_CALLS); + //Sensors + sSensorses.add(Sensors.BODY_SENSORS); + //Sms + sSmses.add(Sms.SEND_SMS); + sSmses.add(Sms.RECEIVE_SMS); + sSmses.add(Sms.READ_SMS); + sSmses.add(Sms.RECEIVE_WAP_PUSH); + sSmses.add(Sms.RECEIVE_MMS); + //Storage + sStorages.add(Storage.READ_EXTERNAL_STORAGE); + sStorages.add(Storage.WRITE_EXTERNAL_STORAGE); + } + + public static final class Calendar { + public static final String READ_CALENDAR = Manifest.permission.READ_CALENDAR; + public static final String WRITE_CALENDAR = Manifest.permission.WRITE_CALENDAR; + private static final String MSG = "日历"; + } + + public static final class Camera { + public static final String CAMERA = Manifest.permission.CAMERA; + private static final String MSG = "kamera";//相机 + } + + public static final class Contacts { + public static final String READ_CONTACTS = Manifest.permission.READ_CONTACTS; + public static final String WRITE_CONTACTS = Manifest.permission.WRITE_CONTACTS; + public static final String GET_ACCOUNTS = Manifest.permission.GET_ACCOUNTS; + private static final String MSG = "联系人"; + } + + public static final class Location { + public static final String ACCESS_FINE_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION; + public static final String ACCESS_COARSE_LOCATION = Manifest.permission.ACCESS_COARSE_LOCATION; + private static final String MSG = "定位"; + } + + public static final class Microphone { + public static final String RECORD_AUDIO = Manifest.permission.RECORD_AUDIO; + private static final String MSG = "mikrofon";//麦克风 + } + + public static final class Phone { + public static final String READ_PHONE_STATE = Manifest.permission.READ_PHONE_STATE; + public static final String CALL_PHONE = Manifest.permission.CALL_PHONE; + public static final String READ_CALL_LOG = Manifest.permission.READ_CALL_LOG; + public static final String WRITE_CALL_LOG = Manifest.permission.WRITE_CALL_LOG; + public static final String ADD_VOICEMAIL = Manifest.permission.ADD_VOICEMAIL; + public static final String USE_SIP = Manifest.permission.USE_SIP; + public static final String PROCESS_OUTGOING_CALLS = Manifest.permission.PROCESS_OUTGOING_CALLS; + private static final String MSG = "电话"; + } + + public static final class Sensors { + public static final String BODY_SENSORS = Manifest.permission.BODY_SENSORS; + private static final String MSG = "传感器"; + } + + + public static final class Sms { + public static final String SEND_SMS = Manifest.permission.SEND_SMS; + public static final String RECEIVE_SMS = Manifest.permission.RECEIVE_SMS; + public static final String READ_SMS = Manifest.permission.READ_SMS; + public static final String RECEIVE_WAP_PUSH = Manifest.permission.RECEIVE_WAP_PUSH; + public static final String RECEIVE_MMS = Manifest.permission.RECEIVE_MMS; + private static final String MSG = "短信"; + } + + public static final class Storage { + public static final String READ_EXTERNAL_STORAGE = Manifest.permission.READ_EXTERNAL_STORAGE; + public static final String WRITE_EXTERNAL_STORAGE = Manifest.permission.WRITE_EXTERNAL_STORAGE; + public static final String CAMERA = Manifest.permission.CAMERA; + private static final String MSG = "Hafıza";//存储 + } + } + + public static final int SETTINGS_REQ_CODE = 99; + private static final String TAG = "PermissionsUtil"; + private static final String KEY_DENIED_PERMISSIONS = "deniedPermissions"; + private static final String KEY_REQUEST_CODE = "requestCode"; + private static final int MSG_UI_HANDLER_DEAL_DENIED_PERMISSION = 100; + private static boolean sDebug = true; + private Object mObject; + private String[] mPermissions; + private int mRequestCode; + private String mRationaleTitle; + private String mPositiveText = "Emin ol";//确定 + private String mNegativeText = "İptal";//取消 + private int mRequestPermissionCount = 0;//请求授权次数 + private Handler mUiHandler = new Handler(Looper.getMainLooper()) { + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_UI_HANDLER_DEAL_DENIED_PERMISSION: + Bundle data = msg.getData(); + int requestCode = data.getInt(KEY_REQUEST_CODE); + String[] permissions = data.getStringArray(KEY_DENIED_PERMISSIONS); + Object object = msg.obj; + showAlertDialog(object, requestCode, permissions); + break; + } + } + }; + + + private PermissionsUtil(@NonNull Object object) { + if (isObjectIllegality(object)) + throw new IllegalArgumentException("Activity or Fragment must implements IPermissionsCallback"); + mObject = object; + } + + public static PermissionsUtil with(@NonNull Activity activity) { + return new PermissionsUtil(activity); + } + + public static PermissionsUtil with(@NonNull Fragment fragment) { + return new PermissionsUtil(fragment); + } + + public static PermissionsUtil with(@NonNull android.app.Fragment fragment) { + return new PermissionsUtil(fragment); + } + + public PermissionsUtil permissions(@NonNull String... permissions) { + if (hasEmpty(permissions)) + throw new IllegalArgumentException("permissions can't contain null"); + mPermissions = permissions; + return this; + } + + public PermissionsUtil requestCode(int requestCode) { + mRequestCode = requestCode; + return this; + } + + public PermissionsUtil rationaleTitle(String title) { + mRationaleTitle = title; + return this; + } + + public PermissionsUtil positiveText(String positiveText) { + mPositiveText = positiveText; + return this; + } + + public PermissionsUtil negativeText(String negativeText) { + mNegativeText = negativeText; + return this; + } + + public PermissionsUtil isDebug(boolean isDebug) { + sDebug = isDebug; + return this; + } + + public PermissionsUtil requestPermissionCount(int requestPermissionCount) { + mRequestPermissionCount = requestPermissionCount; + return this; + } + + public PermissionsUtil request() { + request(mObject, mRequestCode, mPermissions); + return this; + } + + public void request(Object object, int requestCode, String... permissions) { + if (needRequest() && notGrantedAllPermissions(getActivity(object), permissions)) { + if (mRequestPermissionCount > 2) { + dealDeniedPermissions(object, requestCode, permissions); + } else { + List unGrantedPermissionsList = createUnGrantedPermissionsList(object, permissions); + PLog.d("request---" + "requestCode : " + requestCode + "---unGrantedPermissionsList : " + unGrantedPermissionsList); + if (unGrantedPermissionsList.size() > 0) { + requestPermissions(object, requestCode, listToStringArray(unGrantedPermissionsList)); + unGrantedPermissionsList.clear(); + } else { + invokePermissionsGranted(object, requestCode, permissions); + } + unGrantedPermissionsList = null; + } + } else { + PLog.d("request---" + "requestCode : " + requestCode + "---permissionsGranted : " + stringArrayToList(permissions)); + invokePermissionsGranted(object, requestCode, permissions); + } + } + + private List createUnGrantedPermissionsList(Object object, String... permissions) { + List unGrantedPermissionsList = new ArrayList(); + for (String permission : permissions) { + if (notGrantedPermission(getActivity(object), permission)) { + unGrantedPermissionsList.add(permission); + } + } + return unGrantedPermissionsList; + } + + + @SuppressLint("NewApi") + private void requestPermissions(Object object, int requestCode, String... permissions) { + PLog.d("requestPermissions---" + "requestCode : " + requestCode + "---requestPermissions : " + stringArrayToList(permissions)); + if (object instanceof Activity) { + ActivityCompat.requestPermissions((Activity) object, permissions, requestCode); + } else if (object instanceof Fragment) { + ((Fragment) object).requestPermissions(permissions, requestCode); + } else if (object instanceof android.app.Fragment) { + ((android.app.Fragment) object).requestPermissions(permissions, requestCode); + } + } + + /** + * @param object + * @param requestCode + * @param deniedPermissions denied permissions + * @return + */ + private void showAlertDialog(final Object object, final int requestCode, final String... deniedPermissions) { + PLog.d("showAlertDialog --- " + "requestCode : " + requestCode + "--- deniedPermissions : " + stringArrayToList(deniedPermissions)); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(mObject)); + if (!TextUtils.isEmpty(mRationaleTitle)) { + builder.setTitle(mRationaleTitle); + } + builder.setMessage(createRationaleMsg(getActivity(object), deniedPermissions)) + .setPositiveButton(mPositiveText, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + goSetting(object); + } + + + }) + .setNegativeButton(mNegativeText, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + invokePermissionsDenied(object, requestCode, deniedPermissions); + } + }) + .create() + .show(); + } + + private boolean needRequest() { + return Build.VERSION.SDK_INT >= 23; + } + + private Activity getActivity(Object object) { + Activity activity = null; + if (object instanceof Activity) { + activity = (Activity) object; + } else if (object instanceof Fragment) { + activity = ((Fragment) object).getActivity(); + } else if (object instanceof android.app.Fragment) { + activity = ((android.app.Fragment) object).getActivity(); + } + return activity; + } + + public boolean grantedPermission(Activity activity, String permission) { + return ContextCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_GRANTED; + } + + public boolean notGrantedPermission(Activity activity, String permission) { + return !grantedPermission(activity, permission); + } + + public boolean grantedAllPermissions(Activity activity, String... permissions) { + for (String permission : permissions) { + if (notGrantedPermission(activity, permission)) { + return false; + } + } + return true; + } + + public boolean notGrantedAllPermissions(Activity activity, String... permissions) { + return !grantedAllPermissions(activity, permissions); + } + + private void dealDeniedPermissions(Object object, int requestCode, String... deniedPermissions) { + PLog.d("dealDeniedPermissions --- " + "requestCode : " + requestCode + "--- deniedPermissions : " + stringArrayToList(deniedPermissions)); + Message message = mUiHandler.obtainMessage(); + Bundle bundle = new Bundle(); + bundle.putStringArray(KEY_DENIED_PERMISSIONS, deniedPermissions); + bundle.putInt(KEY_REQUEST_CODE, requestCode); + message.setData(bundle); + message.obj = object; + message.what = MSG_UI_HANDLER_DEAL_DENIED_PERMISSION; + mUiHandler.sendMessage(message); + } + + private boolean isObjectLegal(Object object) { + return (object instanceof IPermissionsCallback); + } + + private boolean isObjectIllegality(Object object) { + return !isObjectLegal(object); + } + + private boolean hasEmpty(String... strings) { + boolean hasEmpty = false; + if (strings != null && strings.length > 0) { + for (String s : strings) { + if (TextUtils.isEmpty(s)) { + hasEmpty = true; + break; + } + } + } else { + hasEmpty = true; + } + return hasEmpty; + } + + private String[] listToStringArray(List stringList) { + return stringList.toArray(new String[stringList.size()]); + } + + private List stringArrayToList(String[] strings) { + return Arrays.asList(strings); + } + + private String getAppName(Context context) { + String appName = ""; + PackageManager packageManager = context.getPackageManager(); + try { + ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0); + appName = (String) packageManager.getApplicationLabel(applicationInfo); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + return appName; + } + + private String createRationaleMsg(Context context, String... permissions) { + String permissionsMsg = createPermissionsMsg(permissions); + permissionsMsg = permissionsMsg.substring(0, permissionsMsg.length() - 1); + // return getAppName(context) + "需要" + permissionsMsg + "权限,是否去设置"; + return getAppName(context) + permissionsMsg + " iznine ihtiyacınız var,ayarlanıp ayarlanmayacağı?"; + } + + private String createPermissionsMsg(String... permissions) { + StringBuilder builder = new StringBuilder(); + boolean grantedCalendar = false; + boolean grantedCamera = false; + boolean grantedContacts = false; + boolean grantedLocation = false; + boolean grantedMicrophone = false; + boolean grantedPhone = false; + boolean grantedSensors = false; + boolean grantedSms = false; + boolean grantedStorage = false; + for (String permission : permissions) { + if (!grantedCalendar && Permission.sCalendars.contains(permission)) { + builder.append(Permission.Calendar.MSG); + builder.append("、"); + grantedCalendar = true; + } + if (!grantedCamera && Permission.sCameras.contains(permission)) { + builder.append(Permission.Camera.MSG); + builder.append("、"); + grantedCamera = true; + } + if (!grantedContacts && Permission.sContactes.contains(permission)) { + builder.append(Permission.Contacts.MSG); + builder.append("、"); + grantedContacts = true; + } + if (!grantedLocation && Permission.sLocations.contains(permission)) { + builder.append(Permission.Location.MSG); + builder.append("、"); + grantedLocation = true; + } + if (!grantedMicrophone && Permission.sMicrophones.contains(permission)) { + builder.append(Permission.Microphone.MSG); + builder.append("、"); + grantedMicrophone = true; + } + if (!grantedPhone && Permission.sPhones.contains(permission)) { + builder.append(Permission.Phone.MSG); + builder.append("、"); + grantedPhone = true; + } + if (!grantedSensors && Permission.sSensorses.contains(permission)) { + builder.append(Permission.Sensors.MSG); + builder.append("、"); + grantedSensors = true; + } + if (!grantedSms && Permission.sSmses.contains(permission)) { + builder.append(Permission.Sms.MSG); + builder.append("、"); + grantedSms = true; + } + if (!grantedStorage && Permission.sStorages.contains(permission)) { + builder.append(Permission.Storage.MSG); + builder.append("、"); + grantedStorage = true; + } + } + return builder.toString(); + } + + private IPermissionsCallback getPermissionsCallback(Object object) { + return (IPermissionsCallback) object; + } + + private void invokePermissionsGranted(Object object, int requestCode, String... permissions) { + getPermissionsCallback(object).onPermissionsGranted(requestCode, permissions); + } + + private void invokePermissionsDenied(Object object, int requestCode, String... permissions) { + getPermissionsCallback(object).onPermissionsDenied(requestCode, permissions); + } + + public interface IPermissionsCallback { + void onPermissionsGranted(int requestCode, String... permission); + + void onPermissionsDenied(int requestCode, String... permission); + } + + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + if (requestCode == mRequestCode) { + List deniedPermissions = new ArrayList(); + for (int i = 0; i < grantResults.length; i++) { + if (grantResults[i] != PackageManager.PERMISSION_GRANTED) + deniedPermissions.add(permissions[i]); + } + PLog.d("onRequestPermissionsResult--- " + "requestCode : " + requestCode + "--- deniedPermissions : " + deniedPermissions); + if (deniedPermissions.size() > 0) { + dealDeniedPermissions(mObject, requestCode, listToStringArray(deniedPermissions)); + } else { + invokePermissionsGranted(mObject, requestCode, permissions); + } + } + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == SETTINGS_REQ_CODE) { + List unGrantedPermissionsList = createUnGrantedPermissionsList(mObject, mPermissions); + PLog.d("onActivityResult --- " + "requestCode : " + requestCode + "---" + "unGrantedPermissionsList : " + unGrantedPermissionsList); + if (unGrantedPermissionsList.size() > 0) { + invokePermissionsDenied(mObject, mRequestCode, listToStringArray(unGrantedPermissionsList)); + } else { + invokePermissionsGranted(mObject, mRequestCode, mPermissions); + } + } + } + + private void goSetting(Object object) { + PLog.d("goSetting"); + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", getActivity(object).getPackageName(), null); + intent.setData(uri); + if (object instanceof Activity) { + ((Activity) object).startActivityForResult(intent, SETTINGS_REQ_CODE); + } else if (object instanceof Fragment) { + ((Fragment) object).startActivityForResult(intent, SETTINGS_REQ_CODE); + } else if (object instanceof android.app.Fragment) { + ((android.app.Fragment) object).startActivityForResult(intent, SETTINGS_REQ_CODE); + } + } + + static final class PLog { + private static void d(String msg) { + if (sDebug) + Log.d(TAG, msg); + } + + private static void e(String msg) { + if (sDebug) + Log.e(TAG, msg); + } + } +} diff --git a/android/app/src/com/cocos/game/PictureSelectlucksiege.java b/android/app/src/com/cocos/game/PictureSelectlucksiege.java new file mode 100644 index 0000000..fd0cbe0 --- /dev/null +++ b/android/app/src/com/cocos/game/PictureSelectlucksiege.java @@ -0,0 +1,406 @@ +package com.cocos.game; + +import android.Manifest; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.text.TextUtils; +import android.text.style.AbsoluteSizeSpan; +import android.text.style.ForegroundColorSpan; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.constraintlayout.widget.ConstraintSet; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.target.CustomTarget; +import com.bumptech.glide.request.transition.Transition; +import com.luck.lib.camerax.CameraImageEngine; +import com.luck.lib.camerax.SimpleCameraX; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.config.SelectLimitType; +import com.luck.picture.lib.config.SelectorConfig; +import com.luck.picture.lib.dialog.RemindDialog; +import com.luck.picture.lib.engine.CompressFileEngine; +import com.luck.picture.lib.engine.CropFileEngine; +import com.luck.picture.lib.engine.UriToFileTransformEngine; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.interfaces.OnCallbackListener; +import com.luck.picture.lib.interfaces.OnCameraInterceptListener; +import com.luck.picture.lib.interfaces.OnKeyValueResultCallbackListener; +import com.luck.picture.lib.interfaces.OnPermissionDeniedListener; +import com.luck.picture.lib.interfaces.OnPermissionDescriptionListener; +import com.luck.picture.lib.interfaces.OnSelectLimitTipsListener; +import com.luck.picture.lib.permissions.PermissionConfig; +import com.luck.picture.lib.permissions.PermissionUtil; +import com.luck.picture.lib.style.SelectMainStyle; +import com.luck.picture.lib.utils.DateUtils; +import com.luck.picture.lib.utils.DensityUtil; +import com.luck.picture.lib.utils.SandboxTransformUtils; +import com.luck.picture.lib.utils.ToastUtils; +import com.luck.picture.lib.widget.MediumBoldTextView; +import com.yalantis.ucrop.UCrop; +import com.yalantis.ucrop.UCropImageEngine; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; + +import top.zibin.luban.CompressionPredicate; +import top.zibin.luban.Luban; +import top.zibin.luban.OnNewCompressListener; +import top.zibin.luban.OnRenameListener; + +import com.ddddd.one.R; + +public class PictureSelectlucksiege { + + private final static String TAG_EXPLAIN_VIEW = "TAG_EXPLAIN_VIEW"; + + /** + * 自定义压缩 + */ + public static class ImageFileCompressEngine implements CompressFileEngine { + + @Override + public void onStartCompress(Context context, ArrayList source, OnKeyValueResultCallbackListener call) { + Luban.with(context).load(source).ignoreBy(100).setRenameListener(new OnRenameListener() { + @Override + public String rename(String filePath) { + int indexOf = filePath.lastIndexOf("."); + String postfix = indexOf != -1 ? filePath.substring(indexOf) : ".jpg"; + String path_ = DateUtils.getCreateFileName("CMP_") + postfix; + Log.i("onResult", "rename: " + path_); + return path_; + } + }).filter(new CompressionPredicate() { + @Override + public boolean apply(String path) { + if (PictureMimeType.isUrlHasImage(path) && !PictureMimeType.isHasHttp(path)) { + return true; + } + return !PictureMimeType.isUrlHasGif(path); + } + }).setCompressListener(new OnNewCompressListener() { + @Override + public void onStart() { + + } + + @Override + public void onSuccess(String source, File compressFile) { + if (call != null) { + Log.i("onResult", "onSuccess: xxx "); + call.onCallback(source, compressFile.getAbsolutePath()); + } + } + + @Override + public void onError(String source, Throwable e) { + if (call != null) { + Log.i("onResult", "onError: xxx "); + call.onCallback(source, null); + } + } + }).launch(); + + } + } + + /** + * 自定义裁剪 + */ + public static class ImageFileCropEngine implements CropFileEngine { + @Override + public void onStartCrop(Fragment fragment, Uri srcUri, Uri destinationUri, ArrayList dataSource, int requestCode) { + UCrop.Options options = PictureSelectlucksiege.buildOptions(); + UCrop uCrop = UCrop.of(srcUri, destinationUri, dataSource); + uCrop.withOptions(options); + uCrop.setImageEngine(new UCropImageEngine() { + @Override + public void loadImage(Context context, String url, ImageView imageView) { + if (!ImageLoaderUtils.assertValidRequest(context)) { + return; + } + Glide.with(context).load(url).override(240, 240).into(imageView); + } + + @Override + public void loadImage(Context context, Uri url, int maxWidth, int maxHeight, OnCallbackListener call) { + Glide.with(context).asBitmap().load(url).override(maxWidth, maxHeight).into(new CustomTarget() { + @Override + public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition transition) { + if (call != null) { + call.onCall(resource); + } + } + + @Override + public void onLoadCleared(@Nullable Drawable placeholder) { + if (call != null) { + call.onCall(null); + } + } + }); + } + }); + uCrop.start(fragment.requireActivity(), fragment, requestCode); + } + } + + /** + * 拦截自定义提示 + */ + public static class MeOnSelectLimitTipsListener implements OnSelectLimitTipsListener { + + @Override + public boolean onSelectLimitTips(Context context, @Nullable LocalMedia media, SelectorConfig config, int limitType) { + if (limitType == SelectLimitType.SELECT_MIN_SELECT_LIMIT) { + ToastUtils.showToast(context, "图片最少不能低于" + config.minSelectNum + "张"); + return true; + } else if (limitType == SelectLimitType.SELECT_MIN_VIDEO_SELECT_LIMIT) { + ToastUtils.showToast(context, "视频最少不能低于" + config.minVideoSelectNum + "个"); + return true; + } else if (limitType == SelectLimitType.SELECT_MIN_AUDIO_SELECT_LIMIT) { + ToastUtils.showToast(context, "音频最少不能低于" + config.minAudioSelectNum + "个"); + return true; + } + return false; + } + } + + /** + * 添加权限说明 + */ + public static class MeOnPermissionDescriptionListener implements OnPermissionDescriptionListener { + + @Override + public void onPermissionDescription(Fragment fragment, String[] permissionArray) { + View rootView = fragment.requireView(); + if (rootView instanceof ViewGroup) { + addPermissionDescription(false, (ViewGroup) rootView, permissionArray); + } + } + + @Override + public void onDismiss(Fragment fragment) { + removePermissionDescription((ViewGroup) fragment.requireView()); + } + } + + /** + * 权限拒绝后回调 + */ + public static class MeOnPermissionDeniedListener implements OnPermissionDeniedListener { + + @Override + public void onDenied(Fragment fragment, String[] permissionArray, + int requestCode, OnCallbackListener call) { + String tips; + if (TextUtils.equals(permissionArray[0], PermissionConfig.CAMERA[0])) { + tips = "Kamera erişimi yok\nKamera işlevinin kullanılamamasıyla sonuçlanacaktır.";// "缺少相机权限\n可能会导致不能使用摄像头功能"; + } else if (TextUtils.equals(permissionArray[0], Manifest.permission.RECORD_AUDIO)) { + tips = "Ses kayıt erİşimi yok\nCihazınızdaki ses medya içeriği ve dosyalara erişin";// "缺少录音权限\n访问您设备上的音频、媒体内容和文件"; + } else { + tips = "Depolama erişmi yok\nCihazınızdaki fotoğraf ortamı içeriğine ve dosyalara erişin";//"缺少存储权限\n访问您设备上的照片、媒体内容和文件"; + } + RemindDialog dialog = RemindDialog.buildDialog(fragment.getContext(), tips); + dialog.setButtonText("Ayarlara git");//去设置 + dialog.setButtonTextColor(0xFF7D7DFF); + dialog.setContentTextColor(0xFF333333); + dialog.setOnDialogClickListener(new RemindDialog.OnDialogClickListener() { + @Override + public void onClick(View view) { + PermissionUtil.goIntentSetting(fragment, requestCode); + dialog.dismiss(); + } + }); + dialog.show(); + } + } + + /** + * 自定义沙盒文件处理 + */ + public static class MeSandboxFileEngine implements UriToFileTransformEngine { + + @Override + public void onUriToFileAsyncTransform(Context context, String srcPath, String mineType, OnKeyValueResultCallbackListener call) { + if (call != null) { + call.onCallback(srcPath, SandboxTransformUtils.copyPathToSandbox(context, srcPath, mineType)); + } + } + } + + /** + * 自定义拍照 + */ + public static class MeOnCameraInterceptListener implements OnCameraInterceptListener { + @Override + public void openCamera(Fragment fragment, int cameraMode, int requestCode) { + SimpleCameraX camera = SimpleCameraX.of(); + camera.isAutoRotation(true);//是否自动纠偏 + camera.setCameraMode(cameraMode);//相机模式 + camera.setVideoFrameRate(25); + //camera.setVideoBitRate(3 * 1024 * 1024); + //camera.isDisplayRecordChangeTime(true); + //camera.isManualFocusCameraPreview(cb_camera_focus.isChecked()); + camera.isZoomCameraPreview(true);//是否可缩放相机 + camera.setOutputPathDir(getSandboxCameraOutputPath()); + //camera.setPermissionDeniedListener(getSimpleXPermissionDeniedListener()); + //camera.setPermissionDescriptionListener(getSimpleXPermissionDescriptionListener()); + camera.setImageEngine(new CameraImageEngine() { + @Override + public void loadImage(Context context, String url, ImageView imageView) { + Glide.with(context).load(url).into(imageView); + } + }); + camera.start(fragment.requireActivity(), fragment, requestCode); + } + } + + /** + * 添加权限说明 + * + * @param viewGroup + * @param permissionArray + */ + private static void addPermissionDescription(boolean isHasSimpleXCamera, ViewGroup viewGroup, String[] permissionArray) { + int dp10 = DensityUtil.dip2px(viewGroup.getContext(), 10); + int dp15 = DensityUtil.dip2px(viewGroup.getContext(), 15); + MediumBoldTextView view = new MediumBoldTextView(viewGroup.getContext()); + view.setTag(TAG_EXPLAIN_VIEW); + view.setTextSize(14); + view.setTextColor(Color.parseColor("#333333")); + view.setPadding(dp10, dp15, dp10, dp15); + + String title; + String explain; + + if (TextUtils.equals(permissionArray[0], PermissionConfig.CAMERA[0])) { + title = "Kamera izinlerini kullanma açıklaması";//"相机权限使用说明"; + explain = "Fotoğraf çekmek/Video kaydetmek için";//"相机权限使用说明\n用户app用于拍照/录视频"; + } else if (TextUtils.equals(permissionArray[0], Manifest.permission.RECORD_AUDIO)) { + if (isHasSimpleXCamera) { + title = "Mikrofon izinlerini kullanma açıklaması";//""麦克风权限使用说明"; + explain = "Video kaydederken ses toplama için";//""麦克风权限使用说明\n用户app用于录视频时采集声音"; + } else { + title = "Ses kayıt izinlerini kullanma açıklaması";//"录音权限使用说明"; + explain = "Ses toplama için";//"录音权限使用说明\n用户app用于采集声音"; + } + } else { + title = "Depolama izinlerini kullanma açıklaması";// "存储权限使用说明"; + explain = "yazma/indirme/kaydetme/okuma/değiştirme/video/dosya ve bilgiler ve resimleri silmek için kullanılır";//"存储权限使用说明\n用户app写入/下载/保存/读取/修改/删除图片、视频、文件等信息"; + } + int startIndex = 0; + int endOf = startIndex + title.length(); + SpannableStringBuilder builder = new SpannableStringBuilder(explain); + builder.setSpan(new AbsoluteSizeSpan(DensityUtil.dip2px(viewGroup.getContext(), 16)), startIndex, endOf, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + builder.setSpan(new ForegroundColorSpan(0xFF333333), startIndex, endOf, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + view.setText(builder); + view.setBackground(ContextCompat.getDrawable(viewGroup.getContext(), R.drawable.ps_permission)); + + if (isHasSimpleXCamera) { + RelativeLayout.LayoutParams layoutParams = + new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); + layoutParams.topMargin = DensityUtil.getStatusBarHeight(viewGroup.getContext()); + layoutParams.leftMargin = dp10; + layoutParams.rightMargin = dp10; + viewGroup.addView(view, layoutParams); + } else { + ConstraintLayout.LayoutParams layoutParams = + new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT); + layoutParams.topToBottom = R.id.title_bar; + layoutParams.leftToLeft = ConstraintSet.PARENT_ID; + layoutParams.leftMargin = dp10; + layoutParams.rightMargin = dp10; + viewGroup.addView(view, layoutParams); + } + } + + /** + * 移除权限说明 + * + * @param viewGroup + */ + private static void removePermissionDescription(ViewGroup viewGroup) { + View tagExplainView = viewGroup.findViewWithTag(TAG_EXPLAIN_VIEW); + viewGroup.removeView(tagExplainView); + } + + + /** + * 配制UCrop,可根据需求自我扩展 + * + * @return + */ + private static UCrop.Options buildOptions() { + UCrop.Options options = new UCrop.Options(); + options.setHideBottomControls(true);//设置为true以隐藏底部控件(默认显示) + options.setFreeStyleCropEnabled(true);//允许用户调整裁剪边界的大小 + options.setShowCropFrame(true);//图像顶部看到裁剪框矩形 + options.setShowCropGrid(true);//如果希望在图像顶部看到裁剪网格/指导线,请设置为true + options.setCircleDimmedLayer(true);//如果希望暗显层内部有一个圆圈,请将其设置为true + options.withAspectRatio(240, 240);//设置裁剪边界的纵横比。用户将看不到带有其他比例选项的菜单。 +// options.setCropOutputPathDir(getSandboxPath()); + options.isCropDragSmoothToCenter(true);//自动居中裁剪和拖动 +// options.setSkipCropMimeType(getNotSupportCrop());//Skip crop mimeType +// options.isForbidCropGifWebp(cb_not_gif.isChecked());//你需要支持剪切动态图形吗gif或webp +// options.isForbidSkipMultipleCrop(true);//切割多个图纸时禁止跳过 + options.setMaxScaleMultiplier(100);//该方法设置用于从最小图像比例计算最大图像比例的乘数 +// if (selectorStyle != null && selectorStyle.getSelectMainStyle().getStatusBarColor() != 0) { +// SelectMainStyle mainStyle = selectorStyle.getSelectMainStyle(); +// boolean isDarkStatusBarBlack = mainStyle.isDarkStatusBarBlack(); +// int statusBarColor = mainStyle.getStatusBarColor(); +// options.isDarkStatusBarBlack(isDarkStatusBarBlack); +// if (StyleUtils.checkStyleValidity(statusBarColor)) { +// options.setStatusBarColor(statusBarColor); +// options.setToolbarColor(statusBarColor); +// } else { +// options.setStatusBarColor(ContextCompat.getColor(getContext(), R.color.ps_color_grey)); +// options.setToolbarColor(ContextCompat.getColor(getContext(), R.color.ps_color_grey)); +// } +// TitleBarStyle titleBarStyle = selectorStyle.getTitleBarStyle(); +// if (StyleUtils.checkStyleValidity(titleBarStyle.getTitleTextColor())) { +// options.setToolbarWidgetColor(titleBarStyle.getTitleTextColor()); +// } else { +// options.setToolbarWidgetColor(ContextCompat.getColor(getContext(), R.color.ps_color_white)); +// } +// } else { +// options.setStatusBarColor(ContextCompat.getColor(getContext(), R.color.ps_color_grey)); +// options.setToolbarColor(ContextCompat.getColor(getContext(), R.color.ps_color_grey)); +// options.setToolbarWidgetColor(ContextCompat.getColor(getContext(), R.color.ps_color_white)); +// } + options.setStatusBarColor(ContextCompat.getColor(AppActivity.nAppActivity, R.color.ps_color_grey)); + options.setToolbarColor(ContextCompat.getColor(AppActivity.nAppActivity, R.color.ps_color_grey)); + options.setToolbarWidgetColor(ContextCompat.getColor(AppActivity.nAppActivity, R.color.ps_color_white)); + + return options; + } + + /** + * 创建相机自定义输出目录 + * + * @return + */ + private static String getSandboxCameraOutputPath() { + File externalFilesDir = AppActivity.nAppActivity.getExternalFilesDir(""); + File customFile = new File(externalFilesDir.getAbsolutePath(), "Sandbox"); + if (!customFile.exists()) { + customFile.mkdirs(); + } + return customFile.getAbsolutePath() + File.separator; + } +} diff --git a/android/app/src/com/cocos/game/ShakeDetector.java b/android/app/src/com/cocos/game/ShakeDetector.java new file mode 100644 index 0000000..7c9136a --- /dev/null +++ b/android/app/src/com/cocos/game/ShakeDetector.java @@ -0,0 +1,153 @@ +package com.cocos.game; + +import java.util.ArrayList; + +import android.content.Context; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; + +/** + * 用于检测手机摇晃 + * + * @author 郑智仁 + * @see Blog + */ +public class ShakeDetector implements SensorEventListener { + /** + * 检测的时间间隔 + */ + static final int UPDATE_INTERVAL = 100; + /** + * 上一次检测的时间 + */ + long mLastUpdateTime; + /** + * 上一次检测时,加速度在x、y、z方向上的分量,用于和当前加速度比较求差。 + */ + float mLastX, mLastY, mLastZ; + float[] poses = new float[3]; + Context mContext; + SensorManager mSensorManager; + ArrayList mListeners; + /** + * 摇晃检测阈值,决定了对摇晃的敏感程度,越小越敏感。 + */ + public int shakeThreshold = 300; + + public ShakeDetector(Context context) { + mContext = context; + mSensorManager = (SensorManager) context + .getSystemService(Context.SENSOR_SERVICE); + mListeners = new ArrayList(); + + } + + public float[] getposes() { + return poses; + } + + ; + + /** + * 当摇晃事件发生时,接收通知 + */ + public interface OnShakeListener { + /** + * 当手机摇晃时被调用 + */ + void onShake(); + } + + /** + * 注册OnShakeListener,当摇晃时接收通知 + * + * @param listener + */ + public void registerOnShakeListener(OnShakeListener listener) { + if (mListeners.contains(listener)) + return; + mListeners.add(listener); + } + + /** + * 移除已经注册的OnShakeListener + * + * @param listener + */ + public void unregisterOnShakeListener(OnShakeListener listener) { + mListeners.remove(listener); + } + + /** + * 启动摇晃检测 + */ + public void start() { + if (mSensorManager == null) { + throw new UnsupportedOperationException(); + } + Sensor sensor = mSensorManager + .getDefaultSensor(Sensor.TYPE_ACCELEROMETER); + if (sensor == null) { + throw new UnsupportedOperationException(); + } + boolean success = mSensorManager.registerListener(this, sensor, + SensorManager.SENSOR_DELAY_GAME); + if (!success) { + throw new UnsupportedOperationException(); + } + } + + /** + * 停止摇晃检测 + */ + public void stop() { + if (mSensorManager != null) + mSensorManager.unregisterListener(this); + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) { + // TODO Auto-generated method stub + } + + @Override + public void onSensorChanged(SensorEvent event) { + long currentTime = System.currentTimeMillis(); + long diffTime = currentTime - mLastUpdateTime; + if (diffTime < UPDATE_INTERVAL) + return; + mLastUpdateTime = currentTime; + float x = event.values[0]; + float y = event.values[1]; + float z = event.values[2]; + float deltaX = x - mLastX; + float deltaY = y - mLastY; + float deltaZ = z - mLastZ; + mLastX = x; + mLastY = y; + mLastZ = z; + float delta = (float) Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ + * deltaZ); + + delta = delta * 10000 / diffTime; +// Log.d("delta", "解析delta,: " + delta + "diffTime :" + diffTime); + if (delta > shakeThreshold) { // 当加速度的差值大于指定的阈值,认为这是一个摇晃 + this.notifyListeners(); + } + + poses[0] = x; + poses[1] = y; + poses[2] = z; + } + + /** + * 当摇晃事件发生时,通知所有的listener + */ + private void notifyListeners() { + for (OnShakeListener listener : mListeners) { + listener.onShake(); + } + } +} \ No newline at end of file diff --git a/android/app/src/com/cocos/game/ZegoUtil.java b/android/app/src/com/cocos/game/ZegoUtil.java new file mode 100644 index 0000000..de57479 --- /dev/null +++ b/android/app/src/com/cocos/game/ZegoUtil.java @@ -0,0 +1,469 @@ +package com.cocos.game; + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Build; +import android.os.Message; +import android.util.Log; + +import androidx.annotation.RequiresApi; + +import com.cocos.lib.JsbBridgeWrapper; +import com.ddddd.one.R; + +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import im.zego.zegoexpress.ZegoExpressEngine; +import im.zego.zegoexpress.callback.IZegoEventHandler; +import im.zego.zegoexpress.constants.ZegoPlayerState; +import im.zego.zegoexpress.constants.ZegoPublisherState; +import im.zego.zegoexpress.constants.ZegoRoomStateChangedReason; +import im.zego.zegoexpress.constants.ZegoScenario; +import im.zego.zegoexpress.constants.ZegoUpdateType; +import im.zego.zegoexpress.entity.ZegoEngineConfig; +import im.zego.zegoexpress.entity.ZegoEngineProfile; +import im.zego.zegoexpress.entity.ZegoStream; +import im.zego.zegoexpress.entity.ZegoUser; + +public class ZegoUtil { + private static final String TAG = "ZegoUtil"; + private static ZegoUtil sInstance = null; + + public static ZegoUtil getInstance() { + if (sInstance == null) { + sInstance = new ZegoUtil(); + } + return sInstance; + } + + // JAVA + private JsbBridgeWrapper jbw = null; + + public JsbBridgeWrapper GetJsbBridgeWrapper() { + if (jbw == null) { + jbw = JsbBridgeWrapper.getInstance(); + } + return jbw; + } + + private static Context mContext; + private static AppActivity mActivity; + + /** + * 初始化信息 + * + * @param activity + */ + private static void InitInfo(AppActivity activity, Context _context) { + if (mActivity == null) + mActivity = activity; + if (mContext == null) + mContext = _context; + } + + /** + * 定义 SDK 引擎对象 + */ + private ZegoExpressEngine zegoExpressEngine; + /** + * 加入频道json字符串 + */ + public static String ZegoJoinJsonStr = ""; + private static List ZegoStreamList = new ArrayList<>(); + private static List CloseZegoStreamList = new ArrayList<>(); + private static boolean isClosePublishingStream = true; + + public void zegoDestroyEngine() { + if (zegoExpressEngine != null) { + ZegoJoinJsonStr = ""; + ZegoStreamList.clear(); + CloseZegoStreamList.clear(); + isClosePublishingStream = true; + // 退出全部房间 + zegoExpressEngine.logoutRoom(); + /** 销毁 SDK */ + zegoExpressEngine.destroyEngine(null); + zegoExpressEngine = null; + } + } + + /** + * 调用 zego SDK 的方法初始化。 + */ + public void zegoInitializeEngine(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + + try { + String zego_id = mActivity.getResources().getString(R.string.zego_appID); + Log.d(TAG, "zegoInitializeEngine: => " + zego_id); + + ZegoEngineConfig engineConfig = new ZegoEngineConfig(); + engineConfig.advancedConfig.put("audio_device_mode", "1"); + ZegoExpressEngine.setEngineConfig(engineConfig); + + ZegoEngineProfile profile = new ZegoEngineProfile(); + /** 请通过官网注册获取,格式为 123456789L */ + profile.appID = Long.parseLong(zego_id.replace("zego_", ""));//mActivity.getResources().getInteger(R.integer.zego_appID); + /** 64个字符,请通过官网注册获取,格式为"0123456789012345678901234567890123456789012345678901234567890123" */ + profile.appSign = mActivity.getString(R.string.zego_appSign).replace("zego_", ""); + /** 通用场景接入 */ + profile.scenario = ZegoScenario.STANDARD_CHATROOM;//; + /** 设置app的application 对象 */ + profile.application = mActivity.getApplication(); + /** 创建引擎 */ + zegoExpressEngine = ZegoExpressEngine.createEngine(profile, zegoEventHandler); + + zegoLogin(nAppActivity, _context); + zegoLoginOut(nAppActivity, _context); + zegoStartPublishingStream(nAppActivity, _context); + zegoStopPublishingStream(nAppActivity, _context); + zegoMuteAllPlayStreamAudio(nAppActivity, _context); + zegoStartPlayingStream(nAppActivity, _context); + zegoStopPlayingStream(nAppActivity, _context); + } catch (Exception e) { + Log.d(TAG, "zegoInitializeEngine: error=> " + Log.getStackTraceString(e)); + } + } + + /** + * 加入频道:供LUA调用 + */ + public void zegoLogin(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Zg_Login, arg -> { + try { + Log.d(TAG, "zegoLogin: " + arg); + ZegoJoinJsonStr = arg; + + Message msg = new Message(); + msg.what = nAppActivity.HANDLER_ZEGOLOGIN; + msg.obj = arg; + nAppActivity.handler.sendMessage(msg); + + } catch (Exception exception) { + Log.d(TAG, "zegoLogin:=>error " + exception.toString()); + exception.printStackTrace(); + } + }); + } + + /** + * 加入频道:供LUA调用 + */ + public void zegoLoginFun(AppActivity nAppActivity, Context _context, String param) { + InitInfo(nAppActivity, _context); + try { + Log.d(TAG, "zegoLoginFun: " + param); + + JSONObject jo = new JSONObject(param); + String userId = jo.getString("userId"); + String roomId = jo.getString("roomId"); + + /** 创建用户 */ + ZegoUser user = new ZegoUser(userId); + /** 开始登陆房间 */ + zegoExpressEngine.loginRoom(roomId, user); + zegoExpressEngine.startPublishingStream(userId); + zegoExpressEngine.startSoundLevelMonitor(200);//启动声浪监控 + isClosePublishingStream = false; + + String reStr = "0"; + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_Login, reStr); + } catch (Exception exception) { + Log.d(TAG, "zegoLoginFun:=>error " + exception.toString()); + exception.printStackTrace(); + } + } + + /** + * 离开频道:供LUA调用 + */ + public void zegoLoginOut(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Zg_LoginOut, arg -> { + try { + CloseZegoStreamList.clear(); + zegoExpressEngine.logoutRoom(); + } catch (Exception exception) { + Log.d(TAG, "zegoLoginOut: =>error " + exception.toString()); + } + }); + } + + /** + * 取消或恢复发布本地音频流:供LUA调用 - 推流 + */ + public void zegoStartPublishingStream(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Zg_StartPublish, strParam -> { + try { + Log.i(TAG, "zegoStartPublishingStream:=>strParam " + strParam); + + JSONObject jo = new JSONObject(strParam); + String streamId = jo.getString("streamId"); + isClosePublishingStream = false; + zegoExpressEngine.startPublishingStream(streamId); + + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_StartPublish, "0|false"); + } catch (Exception e) { + Log.i(TAG, "zegoStartPublishingStream: =>error " + e.toString()); + } + }); + } + + /** + * 取消或恢复发布本地音频流:供LUA调用 - 停推流 + */ + public void zegoStopPublishingStream(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Zg_StopPublish, strParam -> { + try { + Log.i(TAG, "zegoStopPublishingStream:=>strParam " + strParam); + isClosePublishingStream = true; + zegoExpressEngine.stopPublishingStream(); + + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_StopPublish, "0|true"); + } catch (Exception e) { + Log.i(TAG, "zegoStopPublishingStream: =>error " + e.toString()); + } + }); + } + + /** + * 取消或恢复订阅所有远端用户的音频流:供LUA调用 + */ + public void zegoMuteAllPlayStreamAudio(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Zg_AllPlay, muteBean -> { + try { + Log.i(TAG, "zegoMuteAllPlayStreamAudio:=>strParam " + muteBean); + + JSONObject jo = new JSONObject(muteBean); + boolean muted = jo.getBoolean("muted"); + + zegoExpressEngine.muteAllPlayStreamAudio(muted); + + } catch (Exception e) { + Log.i(TAG, "zegoMuteAllPlayStreamAudio: =>error " + e.toString()); + } + }); + } + + /** + * 取消或恢复订阅指定远端用户的音频流:供LUA调用 - 拉流 + */ + public void zegoStartPlayingStream(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Zg_StartPlay, muteBean -> { + try { + Log.i(TAG, "zegoStartPlayingStream:=>strParam " + muteBean); + + JSONObject jo = new JSONObject(muteBean); + String streamId = jo.getString("streamId"); + + if (CloseZegoStreamList.contains(streamId)) + CloseZegoStreamList.remove(streamId); + + zegoExpressEngine.startPlayingStream(streamId); + + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_StartPlay, "0|" + streamId + "|false"); + } catch (Exception e) { + Log.i(TAG, "zegoStartPlayingStream: =>error " + e.toString()); + } + }); + } + + /** + * 取消或恢复订阅指定远端用户的音频流:供LUA调用 - 停拉流 + */ + public void zegoStopPlayingStream(AppActivity nAppActivity, Context _context) { + InitInfo(nAppActivity, _context); + GetJsbBridgeWrapper().addScriptEventListener(EventNameUtil.Zg_StopPlay, muteBean -> { + try { + Log.i(TAG, "zegoStartPlayingStream:=>strParam " + muteBean); + + JSONObject jo = new JSONObject(muteBean); + String streamId = jo.getString("streamId"); + if (!CloseZegoStreamList.contains(streamId)) + CloseZegoStreamList.add(streamId); + + zegoExpressEngine.stopPlayingStream(streamId); + + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_StopPlay, "0|" + streamId + "|true"); + } catch (Exception e) { + Log.i(TAG, "zegoStartPlayingStream: =>error " + e.toString()); + } + }); + } + + /** + * 判断是否有语音权限 + * + * @return + */ + @RequiresApi(api = Build.VERSION_CODES.M) + public boolean checkAudioSelfPermission() { + return mActivity.getApplicationContext().checkSelfPermission(Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED; + } + + private final IZegoEventHandler zegoEventHandler = new IZegoEventHandler() { + /** 房间状态更新回调 */ + @Override + public void onRoomStateChanged(String roomID, ZegoRoomStateChangedReason reason, int errorCode, JSONObject extendedData) { + super.onRoomStateChanged(roomID, reason, errorCode, extendedData); + Log.i(TAG, "onRoomStatZg_LogineUpdate: 🚩 🚪 Login room reason " + reason + " roomID:" + roomID + " errorCode:" + errorCode); + if (reason == ZegoRoomStateChangedReason.LOGINING) { + // 登录中 + Log.i(TAG, "onRoomStateChanged: 登录中"); + } else if (reason == ZegoRoomStateChangedReason.LOGINED) { + // 登录成功 + //只有当房间状态是登录成功或重连成功时,推流(startPublishingStream)、拉流(startPlayingStream)才能正常收发音视频 + //将自己的音视频流推送到 ZEGO 音视频云 + Log.i(TAG, "onRoomStateChanged: 登录成功"); + } else if (reason == ZegoRoomStateChangedReason.LOGIN_FAILED) { + // 登录失败 + Log.i(TAG, "onRoomStateChanged: 登录失败"); + } else if (reason == ZegoRoomStateChangedReason.RECONNECTING) { + // 重连中 + Log.i(TAG, "onRoomStateChanged: 重连中"); + } else if (reason == ZegoRoomStateChangedReason.RECONNECTED) { + // 重连成功 + Log.i(TAG, "onRoomStateChanged: 重连成功"); + } else if (reason == ZegoRoomStateChangedReason.RECONNECT_FAILED) { + // 重连失败 + Log.i(TAG, "onRoomStateChanged: 重连失败"); + } else if (reason == ZegoRoomStateChangedReason.KICK_OUT) { + // 被踢出房间 + Log.i(TAG, "onRoomStateChanged: 被踢出房间"); + } else if (reason == ZegoRoomStateChangedReason.LOGOUT) { + // 登出成功 + Log.i(TAG, "onRoomStateChanged: 登出成功"); + } else if (reason == ZegoRoomStateChangedReason.LOGOUT_FAILED) { + // 登出失败 + Log.i(TAG, "onRoomStateChanged: 登出失败"); + } + } +// /** 房间状态更新回调 */ +// @Override +// public void onRoomStateUpdate(String roomID, ZegoRoomState state, int errorCode, JSONObject extendedData) { +// /** 根据需要实现事件回调 */ +// if (state == ZegoRoomState.CONNECTED && errorCode == 0) { +// Log.i(TAG, "onRoomStatZg_LogineUpdate: 🚩 🚪 Login room success"); +// } +// if (errorCode != 0) { +// Log.i(TAG, "onRoomStateUpdate: 🚩 ❌ 🚪 Login room fail, errorCode: " + errorCode); +// } +// } + + /** 用户状态更新 */ + @Override + public void onRoomUserUpdate(String roomID, ZegoUpdateType updateType, ArrayList userList) { + super.onRoomUserUpdate(roomID, updateType, userList); + /** 根据需要实现事件回调 */ + } + + /** + * 流状态更新 + */ + @Override + public void onRoomStreamUpdate(String roomID, ZegoUpdateType updateType, ArrayList streamList, JSONObject extendedData) { + /** 根据需要实现事件回调 */ + super.onRoomStreamUpdate(roomID, updateType, streamList, extendedData); + // Log.i(Zego_TAG, "🚩 🌊 onRoomStreamUpdate: roomID" + roomID + ", updateType:" + updateType.value() + ", streamList: " + streamList); + + // Add the rendered view dynamically after pulling the stream here + if (updateType == ZegoUpdateType.ADD) { + for (ZegoStream zegoStream : streamList) { + if (!ZegoStreamList.contains(zegoStream)) { + ZegoStreamList.add(zegoStream); + } + + if (!CloseZegoStreamList.contains(zegoStream.streamID)) + ZegoExpressEngine.getEngine().startPlayingStream(zegoStream.streamID); + } + } else if (updateType == ZegoUpdateType.DELETE) { + for (ZegoStream zegoStream : streamList) { + if (ZegoStreamList.contains(zegoStream)) { + ZegoStreamList.remove(zegoStream); + } + + ZegoExpressEngine.getEngine().stopPlayingStream(zegoStream.streamID); + } + } + } + + /** 推流状态更新回调*/ + @Override + public void onPublisherStateUpdate(String streamID, ZegoPublisherState state, int errorCode, JSONObject extendedData) { + // Log.i(Zego_TAG, "onPublisherStateUpdate streamID:"+streamID+" state:"+state); + if (state == ZegoPublisherState.PUBLISHING && errorCode == 0) { + Log.i(TAG, "onPublisherStateUpdate:🚩 📤 Publishing stream success"); + } + if (errorCode != 0) { + Log.i(TAG, "onPublisherStateUpdate: 🚩 ❌ 📤 Publishing stream fail, errorCode: " + errorCode); + } + } + + /** 拉流状态更新回调*/ + @Override + public void onPlayerStateUpdate(String streamID, ZegoPlayerState state, int errorCode, JSONObject extendedData) { + // Log.i(Zego_TAG, "onPlayerStateUpdate streamID:"+streamID+" state:"+state); + if (state == ZegoPlayerState.PLAYING && errorCode == 0) { + Log.i(TAG, "onPlayerStateUpdate: 🚩 📥 Playing stream success"); + } + if (errorCode != 0) { + Log.i(TAG, "onPlayerStateUpdate: 🚩 ❌ 📥 Playing stream fail, errorCode: " + errorCode); + } + } + + /** 接收远端拉流音频声浪回调 */ + @Override + public void onRemoteSoundLevelUpdate(HashMap soundLevels) { + super.onRemoteSoundLevelUpdate(soundLevels); +// Log.i(Zego_TAG, "onRemoteSoundLevelUpdate:"+ soundLevels.size()); + for (HashMap.Entry entry : soundLevels.entrySet()) { + String streamid = entry.getKey(); + Float value = entry.getValue(); + if (value > 10 && !streamid.equals("")) { + String speakers_str = streamid + "|" + value; + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_AudioVolume, speakers_str); + } + } + } + + /** 本地采集音频声浪回调 */ + @Override + public void onCapturedSoundLevelUpdate(float soundLevel) { + super.onCapturedSoundLevelUpdate(soundLevel); + // Log.v(TAG, "onCapturedSoundLevelUpdate:" + soundLevel); + if (!isClosePublishingStream && soundLevel > 10) { + String speakers_str = "0|" + soundLevel; + EventToScriptUtil.getInstance().dispatchEventToScript(EventNameUtil.Zg_AudioVolume, speakers_str); + } + } + +// @Override +// public void onCapturedSoundLevelInfoUpdate(ZegoSoundLevelInfo soundLevelInfo) { +// super.onCapturedSoundLevelInfoUpdate(soundLevelInfo); +// Log.v("ZegoAudioTalk", "onCapturedSoundLevelUpdate:" + soundLevelInfo.soundLevel); +//// if(soundLevelInfo.soundLevel > 0 && soundLevelInfo.vad == 1){ +//// +//// } +// final String speakers_str = "0|" + soundLevelInfo.soundLevel; +// nAppActivity.runOnGLThread(new Runnable() { +// @Override +// public void run() { +// // 用户的音量 > 0 回调到lua 对应的玩家显示正在说话的状态 +// Cocos2dxLuaJavaBridge.callLuaGlobalFunctionWithString( +// "Zego_OnAudioVolume", speakers_str + ""); +// } +// }); +// } + }; +} diff --git a/android/build.gradle b/android/build.gradle index 183885e..a6985ee 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -17,6 +17,7 @@ buildscript { allprojects { repositories { + maven { url 'https://storage.zego.im/maven' } google() mavenCentral() // jcenter() // keeped as anchor, will be removed soon diff --git a/android/res/drawable/ps_image_placeholder.xml b/android/res/drawable/ps_image_placeholder.xml new file mode 100644 index 0000000..bdf2627 --- /dev/null +++ b/android/res/drawable/ps_image_placeholder.xml @@ -0,0 +1,5 @@ + + + + diff --git a/android/res/drawable/ps_permission.png b/android/res/drawable/ps_permission.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ef3478a9242d469aa0d7dcf03d4d14bc7a09e8 GIT binary patch literal 13851 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℞(wW72XU3r)SLIzkaU?wL)T>XFOtPv(d3@MK zQrO?fb)eKeXP1vP1G)MCNB+%WZ~b|Mt88H;$Ur65o3P%a44)+2h-8Ns`ZEWhboeD7 zH^P$xoZuAjPCUiw+rLD=r_hJ@`X7bk+O-V;H4v_p_n9x9@qY(aceHHn;9{*|T{?)?%)6)FE zGyA9gi26VO|EKj;@4p>?FW!Hy|4z>TFDU2rWhRsK{oiYPf5GKT^R-a&$Uh#RrG#D6K`+J9N&|6>_J@$B05 X6w!PuTjO`X#S&OWOSxF_+1vjEkS9!< literal 0 HcmV?d00001 diff --git a/android/res/mipmap-hdpi/ic_launcher.png b/android/res/mipmap-hdpi/ic_launcher.png index 888c0d56abef8d4ca9123954777b6f820c967b6f..b6e92ec225ce6028484edda5d4b60641029a4457 100644 GIT binary patch literal 13851 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 DK9(@U literal 6780 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 eYH%K`QgCNZe5)y(#x1gkyK_ewC2sogGlmbdg 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 literal 3964 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 WdzkUv`@Bv70000+-N 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 diff --git a/android/res/mipmap-xxhdpi/ic_launcher.png b/android/res/mipmap-xxhdpi/ic_launcher.png index 2f1e5a6b3776489f893d8ed4768ae9fe356b4df8..1aa11126ee17b14748ccf0724ec8cf874a5ace0c 100644 GIT binary patch literal 67751 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

#xiuxFP_2n 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 z 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‹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 diff --git a/android/res/values/colors.xml b/android/res/values/colors.xml new file mode 100644 index 0000000..3010a63 --- /dev/null +++ b/android/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #666666 + #FFFFFF + diff --git a/android/res/values/ids.xml b/android/res/values/ids.xml new file mode 100644 index 0000000..d6948b9 --- /dev/null +++ b/android/res/values/ids.xml @@ -0,0 +1,7 @@ + + + + 77777777777 + + + \ No newline at end of file diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index 8542005..4fed8d4 100644 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -1,2 +1,18 @@ + 101 Okey Neşeli + + + + 77777777777-pe7pidhpuc9ohkg5t8aqip7qboire346.apps.googleusercontent.com + + + 4fbx099pwqv4 + + 63f5a8b9d4 + 1.0.0 + happyokey + false + + zego_57566727 + zego_e7e8723ad58492924c5c26087f735ee2f8b748cbd30acff1194ef1b37810f389 diff --git a/build.gradle b/build.gradle index 899d584..a42ed4d 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,7 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:8.10.1' + classpath 'com.google.gms:google-services:4.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt new file mode 100644 index 0000000..2a65780 --- /dev/null +++ b/common/CMakeLists.txt @@ -0,0 +1,57 @@ +enable_language(C ASM) +set(DEVELOPMENT_TEAM "" CACHE STRING "APPLE Developtment Team") +set(RES_DIR "" CACHE STRING "Resource path") +set(COCOS_X_PATH "" CACHE STRING "Path to engine/native/") + +set(TARGET_OSX_VERSION "10.14" CACHE STRING "Target MacOSX version" FORCE) +set(TARGET_IOS_VERSION "11.0" CACHE STRING "Target iOS version" FORCE) + +set(CMAKE_CXX_STANDARD 17) +option(CC_DEBUG_FORCE "Force enable CC_DEBUG in release mode" OFF) +option(USE_SE_V8 "Use V8 JavaScript Engine" ON) +option(USE_SE_JSVM "Use JSVM JavaScript Engine" OFF) +option(USE_SE_JSC "Use JavaScriptCore on MacOSX/iOS" OFF) +option(USE_V8_DEBUGGER "Compile v8 inspector ws server" ON) +option(USE_V8_DEBUGGER_FORCE "Force enable debugger in release mode" OFF) +option(USE_SOCKET "Enable WebSocket & SocketIO" ON) +option(USE_AUDIO "Enable Audio" ON) #Enable AudioEngine +option(USE_EDIT_BOX "Enable EditBox" ON) +option(USE_VIDEO "Enable VideoPlayer Component" ON) +option(USE_WEBVIEW "Enable WebView Component" ON) +option(USE_MIDDLEWARE "Enable Middleware" ON) +option(USE_DRAGONBONES "Enable Dragonbones" ON) +option(USE_SPINE_3_8 "Enable Spine 3.8" ON) +option(USE_SPINE_4_2 "Enable Spine 4.2" OFF) +option(USE_WEBSOCKET_SERVER "Enable WebSocket Server" OFF) +option(USE_JOB_SYSTEM_TASKFLOW "Use taskflow as job system backend" OFF) +option(USE_JOB_SYSTEM_TBB "Use tbb as job system backend" OFF) +option(USE_PHYSICS_PHYSX "Use PhysX Physics" ON) +option(USE_OCCLUSION_QUERY "Use Occlusion Query" ON) +option(USE_DEBUG_RENDERER "Use Debug Renderer" ON) +option(USE_GEOMETRY_RENDERER "Use Geometry Renderer" ON) +option(USE_WEBP "Use Webp" ON) + +if(NOT RES_DIR) + message(FATAL_ERROR "RES_DIR is not set!") +endif() + +include(${RES_DIR}/proj/cfg.cmake) + +if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/localCfg.cmake) + include(${CMAKE_CURRENT_LIST_DIR}/localCfg.cmake) +endif() + +if(NOT COCOS_X_PATH) + message(FATAL_ERROR "COCOS_X_PATH is not set!") +endif() + +if(USE_XR OR USE_AR_MODULE) + include(${CMAKE_CURRENT_LIST_DIR}/xr.cmake) +endif() + +include(${COCOS_X_PATH}/CMakeLists.txt) + +list(APPEND CC_COMMON_SOURCES + ${CMAKE_CURRENT_LIST_DIR}/Classes/Game.h + ${CMAKE_CURRENT_LIST_DIR}/Classes/Game.cpp +) diff --git a/common/Classes/Game.cpp b/common/Classes/Game.cpp new file mode 100644 index 0000000..c15664c --- /dev/null +++ b/common/Classes/Game.cpp @@ -0,0 +1,65 @@ +/**************************************************************************** + Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You + shall not use Cocos Creator software for developing other software or tools + that's used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to + you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ +#include "Game.h" + +#ifndef GAME_NAME +#define GAME_NAME "CocosGame"; +#endif + +#ifndef SCRIPT_XXTEAKEY +#define SCRIPT_XXTEAKEY ""; +#endif + +Game::Game() = default; + +int Game::init() { + _windowInfo.title = GAME_NAME; + // configurate window size + // _windowInfo.height = 600; + // _windowInfo.width = 800; + +#if CC_DEBUG + _debuggerInfo.enabled = true; +#else + _debuggerInfo.enabled = false; +#endif + _debuggerInfo.port = 6086; + _debuggerInfo.address = "0.0.0.0"; + _debuggerInfo.pauseOnStart = false; + + _xxteaKey = SCRIPT_XXTEAKEY; + + BaseGame::init(); + return 0; +} + +void Game::onPause() { BaseGame::onPause(); } + +void Game::onResume() { BaseGame::onResume(); } + +void Game::onClose() { BaseGame::onClose(); } + +CC_REGISTER_APPLICATION(Game); diff --git a/common/Classes/Game.h b/common/Classes/Game.h new file mode 100644 index 0000000..521615e --- /dev/null +++ b/common/Classes/Game.h @@ -0,0 +1,44 @@ +/**************************************************************************** + Copyright (c) 2018 Xiamen Yaji Software Co., Ltd. + + http://www.cocos.com + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated engine source code (the "Software"), a limited, + worldwide, royalty-free, non-assignable, revocable and non-exclusive license + to use Cocos Creator solely to develop games on your target platforms. You + shall not use Cocos Creator software for developing other software or tools + that's used for developing games. You are not granted to publish, distribute, + sublicense, and/or sell copies of Cocos Creator. + + The software or tools in this License Agreement are licensed, not sold. + Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to + you. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ +#pragma once + +#include "cocos/cocos.h" + +/** + @brief The cocos2d Application. + + The reason for implement as private inheritance is to hide some interface call + by Director. + */ +class Game : public cc::BaseGame { +public: + Game(); + int init() override; + // bool init() override; + void onPause() override; + void onResume() override; + void onClose() override; +}; diff --git a/common/cocos-version.json b/common/cocos-version.json new file mode 100644 index 0000000..6d8c4d7 --- /dev/null +++ b/common/cocos-version.json @@ -0,0 +1 @@ +{"version":"3.8.8","skipCheck":false} diff --git a/common/localCfg.cmake b/common/localCfg.cmake new file mode 100644 index 0000000..f17333e --- /dev/null +++ b/common/localCfg.cmake @@ -0,0 +1,3 @@ +## Add or overwrite options from cfg.cmake. +## This file is ignored from git. +# set(NODE_EXECUTABLE /opt/...) \ No newline at end of file diff --git a/common/xr.cmake b/common/xr.cmake new file mode 100644 index 0000000..e4d666d --- /dev/null +++ b/common/xr.cmake @@ -0,0 +1,20 @@ + +include(${COCOS_X_PATH}/cmake/predefine.cmake) + +if(NOT DEFINED XR_COMMON_SOURCES) + set(XR_COMMON_SOURCES) +endif() + +if(NOT DEFINED XR_LIBS) + set(XR_LIBS) +endif() + +if(NOT DEFINED XR_COMMON_PATH) + set(XR_COMMON_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../extensions/xr-plugin/common) +endif() + +if(NOT DEFINED XR_LIBRARY_PATH) + set(XR_LIBRARY_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../extensions/xr-plugin/platforms) +endif() + +include(${XR_COMMON_PATH}/xr.cmake) diff --git a/gradle.properties b/gradle.properties index c840969..0a78375 100644 --- a/gradle.properties +++ b/gradle.properties @@ -36,7 +36,7 @@ PROP_TARGET_SDK_VERSION=35 PROP_BUILD_TOOLS_VERSION=36.0.0 # Android Application Name -PROP_APP_NAME=magotest +PROP_APP_NAME=Klasik 101 Okey # Instant App PROP_ENABLE_INSTANT_APP=false @@ -44,24 +44,25 @@ PROP_ENABLE_INSTANT_APP=false # InputSDK PROP_ENABLE_INPUTSDK=false -PROP_NDK_VERSION=29.0.14206865 +PROP_NDK_VERSION=25.2.9519653 -PROP_ENABLE_COMPRESS_SO=true + +PROP_ENABLE_COMPRESS_SO=false # Build variant -PROP_IS_DEBUG=false +PROP_IS_DEBUG=true # Cocos Engine Path COCOS_ENGINE_PATH=C:/ProgramData/cocos/editors/Creator/3.8.8/resources/resources/3d/engine/native # Res path -RES_PATH=E:/project/okey101_native_sm/okey/build/android +RES_PATH=E:/project/okey_an_test # Native source dir -NATIVE_DIR=E:/project/okey101_native_sm/okey/native/engine/android +NATIVE_DIR=E:/project/okey_an_test/android # Application ID -APPLICATION_ID=top.android.test +APPLICATION_ID=com.ddddd.one # List of CPU Archtexture to build that application with # Available architextures (armeabi-v7a | arm64-v8a | x86 | x86_64) diff --git a/libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml b/libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml new file mode 100644 index 0000000..8f53dcc --- /dev/null +++ b/libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json b/libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json new file mode 100644 index 0000000..a601f77 --- /dev/null +++ b/libservice/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json @@ -0,0 +1,18 @@ +{ + "version": 3, + "artifactType": { + "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", + "kind": "Directory" + }, + "applicationId": "com.cocos.service", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "outputFile": "AndroidManifest.xml" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/libservice/build/intermediates/aar_main_jar/release/syncReleaseLibJars/classes.jar b/libservice/build/intermediates/aar_main_jar/release/syncReleaseLibJars/classes.jar new file mode 100644 index 0000000000000000000000000000000000000000..5da6a5d58955f3d216dcfa9fed79bab7a8a7c2fa GIT binary patch literal 4758 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 O)Xo1+8s8&}2 z?E}i2FmN$42xC#j&cMjXAdr<K$Gz|P3P;+&t7%3#RA1muDMBaj7@1=5^Ao*e!Y|e+sFfc4>1hKF<6XKZwZ&o&t0+0pnKzc8T!vFv-xHaAY literal 0 HcmV?d00001 diff --git a/.gradle/vcs-1/gc.properties b/libservice/build/intermediates/compile_symbol_list/release/generateReleaseRFile/R.txt similarity index 100% rename from .gradle/vcs-1/gc.properties rename to libservice/build/intermediates/compile_symbol_list/release/generateReleaseRFile/R.txt diff --git a/libservice/build/intermediates/default_proguard_files/global/proguard-android-optimize.txt-8.10.1 b/libservice/build/intermediates/default_proguard_files/global/proguard-android-optimize.txt-8.10.1 new file mode 100644 index 0000000..5a3e3a5 --- /dev/null +++ b/libservice/build/intermediates/default_proguard_files/global/proguard-android-optimize.txt-8.10.1 @@ -0,0 +1,89 @@ +# This is a configuration file for ProGuard. +# http://proguard.sourceforge.net/index.html#manual/usage.html +# +# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with +# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and +# will be ignored by new version of the Android plugin for Gradle. + +# Optimizations: If you don't want to optimize, use the proguard-android.txt configuration file +# instead of this one, which turns off the optimization flags. +-allowaccessmodification + +# Preserve some attributes that may be required for reflection. +-keepattributes AnnotationDefault, + EnclosingMethod, + InnerClasses, + RuntimeVisibleAnnotations, + RuntimeVisibleParameterAnnotations, + RuntimeVisibleTypeAnnotations, + Signature + +-keep public class com.google.vending.licensing.ILicensingService +-keep public class com.android.vending.licensing.ILicensingService +-keep public class com.google.android.vending.licensing.ILicensingService +-dontnote com.android.vending.licensing.ILicensingService +-dontnote com.google.vending.licensing.ILicensingService +-dontnote com.google.android.vending.licensing.ILicensingService + +# For native methods, see https://www.guardsquare.com/manual/configuration/examples#native +-keepclasseswithmembernames,includedescriptorclasses class * { + native ; +} + +# Keep setters in Views so that animations can still work. +-keepclassmembers public class * extends android.view.View { + void set*(***); + *** get*(); +} + +# We want to keep methods in Activity that could be used in the XML attribute onClick. +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +# For enumeration classes, see https://www.guardsquare.com/manual/configuration/examples#enumerations +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keepclassmembers class * implements android.os.Parcelable { + public static final ** CREATOR; +} + +# Preserve annotated Javascript interface methods. +-keepclassmembers class * { + @android.webkit.JavascriptInterface ; +} + +# The support libraries contains references to newer platform versions. +# Don't warn about those in case this app is linking against an older +# platform version. We know about them, and they are safe. +-dontnote android.support.** +-dontnote androidx.** +-dontwarn android.support.** +-dontwarn androidx.** + +# Understand the @Keep support annotation. +-keep class android.support.annotation.Keep + +-keep @android.support.annotation.Keep class * {*;} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep ; +} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep ; +} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep (...); +} + +# These classes are duplicated between android.jar and org.apache.http.legacy.jar. +-dontnote org.apache.http.** +-dontnote android.net.http.** + +# These classes are duplicated between android.jar and core-lambda-stubs.jar. +-dontnote java.lang.invoke.** diff --git a/libservice/build/intermediates/default_proguard_files/global/proguard-android.txt-8.10.1 b/libservice/build/intermediates/default_proguard_files/global/proguard-android.txt-8.10.1 new file mode 100644 index 0000000..6f7e4ef --- /dev/null +++ b/libservice/build/intermediates/default_proguard_files/global/proguard-android.txt-8.10.1 @@ -0,0 +1,95 @@ +# This is a configuration file for ProGuard. +# http://proguard.sourceforge.net/index.html#manual/usage.html +# +# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with +# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and +# will be ignored by new version of the Android plugin for Gradle. + +# Optimization is turned off by default. Dex does not like code run +# through the ProGuard optimize steps (and performs some +# of these optimizations on its own). +# Note that if you want to enable optimization, you cannot just +# include optimization flags in your own project configuration file; +# instead you will need to point to the +# "proguard-android-optimize.txt" file instead of this one from your +# project.properties file. +-dontoptimize + +# Preserve some attributes that may be required for reflection. +-keepattributes AnnotationDefault, + EnclosingMethod, + InnerClasses, + RuntimeVisibleAnnotations, + RuntimeVisibleParameterAnnotations, + RuntimeVisibleTypeAnnotations, + Signature + +-keep public class com.google.vending.licensing.ILicensingService +-keep public class com.android.vending.licensing.ILicensingService +-keep public class com.google.android.vending.licensing.ILicensingService +-dontnote com.android.vending.licensing.ILicensingService +-dontnote com.google.vending.licensing.ILicensingService +-dontnote com.google.android.vending.licensing.ILicensingService + +# For native methods, see https://www.guardsquare.com/manual/configuration/examples#native +-keepclasseswithmembernames,includedescriptorclasses class * { + native ; +} + +# Keep setters in Views so that animations can still work. +-keepclassmembers public class * extends android.view.View { + void set*(***); + *** get*(); +} + +# We want to keep methods in Activity that could be used in the XML attribute onClick. +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +# For enumeration classes, see https://www.guardsquare.com/manual/configuration/examples#enumerations +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keepclassmembers class * implements android.os.Parcelable { + public static final ** CREATOR; +} + +# Preserve annotated Javascript interface methods. +-keepclassmembers class * { + @android.webkit.JavascriptInterface ; +} + +# The support libraries contains references to newer platform versions. +# Don't warn about those in case this app is linking against an older +# platform version. We know about them, and they are safe. +-dontnote android.support.** +-dontnote androidx.** +-dontwarn android.support.** +-dontwarn androidx.** + +# Understand the @Keep support annotation. +-keep class android.support.annotation.Keep + +-keep @android.support.annotation.Keep class * {*;} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep ; +} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep ; +} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep (...); +} + +# These classes are duplicated between android.jar and org.apache.http.legacy.jar. +-dontnote org.apache.http.** +-dontnote android.net.http.** + +# These classes are duplicated between android.jar and core-lambda-stubs.jar. +-dontnote java.lang.invoke.** diff --git a/libservice/build/intermediates/default_proguard_files/global/proguard-defaults.txt-8.10.1 b/libservice/build/intermediates/default_proguard_files/global/proguard-defaults.txt-8.10.1 new file mode 100644 index 0000000..7bbb228 --- /dev/null +++ b/libservice/build/intermediates/default_proguard_files/global/proguard-defaults.txt-8.10.1 @@ -0,0 +1,89 @@ +# This is a configuration file for ProGuard. +# http://proguard.sourceforge.net/index.html#manual/usage.html +# +# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with +# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and +# will be ignored by new version of the Android plugin for Gradle. + +# Optimizations can be turned on and off in the 'postProcessing' DSL block. +# The configuration below is applied if optimizations are enabled. +-allowaccessmodification + +# Preserve some attributes that may be required for reflection. +-keepattributes AnnotationDefault, + EnclosingMethod, + InnerClasses, + RuntimeVisibleAnnotations, + RuntimeVisibleParameterAnnotations, + RuntimeVisibleTypeAnnotations, + Signature + +-keep public class com.google.vending.licensing.ILicensingService +-keep public class com.android.vending.licensing.ILicensingService +-keep public class com.google.android.vending.licensing.ILicensingService +-dontnote com.android.vending.licensing.ILicensingService +-dontnote com.google.vending.licensing.ILicensingService +-dontnote com.google.android.vending.licensing.ILicensingService + +# For native methods, see https://www.guardsquare.com/manual/configuration/examples#native +-keepclasseswithmembernames,includedescriptorclasses class * { + native ; +} + +# Keep setters in Views so that animations can still work. +-keepclassmembers public class * extends android.view.View { + void set*(***); + *** get*(); +} + +# We want to keep methods in Activity that could be used in the XML attribute onClick. +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +# For enumeration classes, see https://www.guardsquare.com/manual/configuration/examples#enumerations +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keepclassmembers class * implements android.os.Parcelable { + public static final ** CREATOR; +} + +# Preserve annotated Javascript interface methods. +-keepclassmembers class * { + @android.webkit.JavascriptInterface ; +} + +# The support libraries contains references to newer platform versions. +# Don't warn about those in case this app is linking against an older +# platform version. We know about them, and they are safe. +-dontnote android.support.** +-dontnote androidx.** +-dontwarn android.support.** +-dontwarn androidx.** + +# Understand the @Keep support annotation. +-keep class android.support.annotation.Keep + +-keep @android.support.annotation.Keep class * {*;} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep ; +} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep ; +} + +-keepclasseswithmembers class * { + @android.support.annotation.Keep (...); +} + +# These classes are duplicated between android.jar and org.apache.http.legacy.jar. +-dontnote org.apache.http.** +-dontnote android.net.http.** + +# These classes are duplicated between android.jar and core-lambda-stubs.jar. +-dontnote java.lang.invoke.** diff --git a/libservice/build/intermediates/full_jar/release/createFullJarRelease/full.jar b/libservice/build/intermediates/full_jar/release/createFullJarRelease/full.jar new file mode 100644 index 0000000000000000000000000000000000000000..6fb825935ab1e92c6d200c49e1f17695176ef47b GIT binary patch literal 9708 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 JifFCe{SO+V!$JT6 literal 0 HcmV?d00001 diff --git a/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/module.xml b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/module.xml new file mode 100644 index 0000000..51ce3aa --- /dev/null +++ b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/module.xml @@ -0,0 +1,19 @@ + + + + diff --git a/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-dependencies.xml b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-dependencies.xml new file mode 100644 index 0000000..75ba889 --- /dev/null +++ b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-dependencies.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + diff --git a/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml new file mode 100644 index 0000000..3cc905f --- /dev/null +++ b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml new file mode 100644 index 0000000..a9638ca --- /dev/null +++ b/libservice/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/libservice/build/intermediates/incremental/mergeReleaseAssets/merger.xml b/libservice/build/intermediates/incremental/mergeReleaseAssets/merger.xml new file mode 100644 index 0000000..61d59c6 --- /dev/null +++ b/libservice/build/intermediates/incremental/mergeReleaseAssets/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/libservice/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml b/libservice/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml new file mode 100644 index 0000000..14b7453 --- /dev/null +++ b/libservice/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/libservice/build/intermediates/incremental/mergeReleaseShaders/merger.xml b/libservice/build/intermediates/incremental/mergeReleaseShaders/merger.xml new file mode 100644 index 0000000..e3ad3ed --- /dev/null +++ b/libservice/build/intermediates/incremental/mergeReleaseShaders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/libservice/build/intermediates/incremental/release-mergeJavaRes/merge-state b/libservice/build/intermediates/incremental/release-mergeJavaRes/merge-state new file mode 100644 index 0000000000000000000000000000000000000000..1c983fc9343932a9c78c9a72427de638643c16d4 GIT binary patch literal 478 zcma)(Jx;?w5QWEvB!~*Z6)2Ks-2e@JBufhvX(FXs+aqhk{+RV{JC zM;Km`!U>02vCmBtyoWibV_9u&tuUijTSG-DEPa-19lR*$jA-sToXfcKC^WVn7RT&y z*?L->S|@91Uf>OquAu<8F~H!-22U!zC;RPry+S92lCM}Tt0 z6PXgG&Yp@bQAfX>PyyTMH|d(-;A+#$Sd_6*_Wrg0xM&wD1?ZZ1Iz;^}c0_o01Yu0~ YFJiKRGgSRo5atN*hm*(-jt^fc4 literal 0 HcmV?d00001 diff --git a/libservice/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties b/libservice/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties new file mode 100644 index 0000000..eb7653a --- /dev/null +++ b/libservice/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties @@ -0,0 +1 @@ +#Tue Mar 10 16:09:39 CST 2026 diff --git a/libservice/build/intermediates/incremental/release/packageReleaseResources/merger.xml b/libservice/build/intermediates/incremental/release/packageReleaseResources/merger.xml new file mode 100644 index 0000000..6b49f2f --- /dev/null +++ b/libservice/build/intermediates/incremental/release/packageReleaseResources/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper$1.class b/libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8421648fc4e3622bbf5f91f14f1b303286beff32 GIT binary patch literal 214 zcmaKmO$x#=5QSfCHMI)%03t428w79Q4~U41E?mbr)Rvl*r1o$wJb;H1Q#bB>FyDj6 z8)jbb#}mL31C9>EM46jVMj0m@*(O&c()IpiWmS=#EjU7kq>zmirPP@?o(obnL!6qs zRkY1ZVi^54=55s{8?8#?a-AKhzM2b1pJDv(6vJ?*HQ7}uog|qSf<^&e%SOTIp^f$-kbjV{o^MQEz!d=6&TG0s_6wPP_Y*a-HHO?ZLPomqWR&W z&@%{qX@uV8fhbdv(YXWO;$DNxJ@4brfd~wvVk9H{OxNmMhFV1--dJ%*RdeXRhc zVmKL8@{@>@Cc=^hsY6B;CD%o4v^sGy_EYYVk{ja4=0-wks`u{c zmb-c>YQrXbY_(CytCDX66SX39Vm&kDXd`4C6sOds6jrJ1FO@zrlY9~TQv%Q`{w>9g4o&AawN9ih~+dYPQIqpnc!YD0#iG0aGAmavU zo#>p2ep^js*bwfFv6#0+*o7Yddsqj|XdI;hxC=X|64O3pM9EbieBFez*j^N+s;i?9 zqNy~BSlv>I4#d02_TFfx)fa7JGaB}#6nd?}!Hvu0p|Ahdf*_oJA|*y>E4(hEvxv@6 z31beL)6G-0ouX+_ZLzK*a&1A^AUlAS>vW?n+qY#_`Z&8uw?M@krI|d5mwhDe w(5#cVn=kRIk3_94F_&MP*G{6lap&`iZ!(Al_dp7CkM1M2Rd=e;!dMkYZEdD;WZasXnBD;9rijZx)2?oky0y^!f%Vn)BXs| z3~s%c&`4(f-<2l85>l!-b{h3Mp;E0SQgFPvC;idgt@CggNpTYefpDYV(CZ5VOjmyugG7~GYU^2t@b-( Yo3)o2OJRkX!3rsU^H_t0GW)Fk2@G+h9smFU literal 0 HcmV?d00001 diff --git a/libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper.class b/libservice/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/cocos/service/SDKWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e04780daf88deca97e3a6e1602190c07044fc889 GIT binary patch literal 6331 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 literal 0 HcmV?d00001 diff --git a/libservice/build/intermediates/lint-cache/lintVitalAnalyzeRelease/lint-cache-version.txt b/libservice/build/intermediates/lint-cache/lintVitalAnalyzeRelease/lint-cache-version.txt new file mode 100644 index 0000000..0b53a2d --- /dev/null +++ b/libservice/build/intermediates/lint-cache/lintVitalAnalyzeRelease/lint-cache-version.txt @@ -0,0 +1 @@ +Cache for Android Lint31.10.1 diff --git a/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/module.xml b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/module.xml new file mode 100644 index 0000000..51ce3aa --- /dev/null +++ b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/module.xml @@ -0,0 +1,19 @@ + + + + diff --git a/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-dependencies.xml b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-dependencies.xml new file mode 100644 index 0000000..19a761e --- /dev/null +++ b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-dependencies.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + diff --git a/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-libraries.xml b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-libraries.xml new file mode 100644 index 0000000..8094328 --- /dev/null +++ b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release-artifact-libraries.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release.xml b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release.xml new file mode 100644 index 0000000..d025e5b --- /dev/null +++ b/libservice/build/intermediates/lint_model/release/generateReleaseLintModel/release.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/libservice/build/intermediates/lint_model_metadata/release/writeReleaseLintModelMetadata/lint-model-metadata.properties b/libservice/build/intermediates/lint_model_metadata/release/writeReleaseLintModelMetadata/lint-model-metadata.properties new file mode 100644 index 0000000..cd8efb2 --- /dev/null +++ b/libservice/build/intermediates/lint_model_metadata/release/writeReleaseLintModelMetadata/lint-model-metadata.properties @@ -0,0 +1,3 @@ +mavenArtifactId=libservice +mavenGroupId=magotest +mavenVersion=unspecified \ No newline at end of file diff --git a/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/module.xml b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/module.xml new file mode 100644 index 0000000..51ce3aa --- /dev/null +++ b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/module.xml @@ -0,0 +1,19 @@ + + + + diff --git a/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-dependencies.xml b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-dependencies.xml new file mode 100644 index 0000000..19a761e --- /dev/null +++ b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-dependencies.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + diff --git a/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-libraries.xml b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-libraries.xml new file mode 100644 index 0000000..8094328 --- /dev/null +++ b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release-artifact-libraries.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release.xml b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release.xml new file mode 100644 index 0000000..abcad71 --- /dev/null +++ b/libservice/build/intermediates/lint_vital_lint_model/release/generateReleaseLintVitalModel/release.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/libservice/build/intermediates/lint_vital_partial_results/release/lintVitalAnalyzeRelease/out/lint-resources.xml b/libservice/build/intermediates/lint_vital_partial_results/release/lintVitalAnalyzeRelease/out/lint-resources.xml new file mode 100644 index 0000000..e69de29 diff --git a/libservice/build/intermediates/local_aar_for_lint/release/out.aar b/libservice/build/intermediates/local_aar_for_lint/release/out.aar new file mode 100644 index 0000000000000000000000000000000000000000..b0e4fcf042dc62face158956e0bb9b969b028ef9 GIT binary patch literal 6092 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 C#Vc$8 literal 0 HcmV?d00001 diff --git a/libservice/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt b/libservice/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt new file mode 100644 index 0000000..78ac5b8 --- /dev/null +++ b/libservice/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt @@ -0,0 +1,2 @@ +R_DEF: Internal format may change without notice +local diff --git a/libservice/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt b/libservice/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt new file mode 100644 index 0000000..1aa59dc --- /dev/null +++ b/libservice/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt @@ -0,0 +1,7 @@ +1 +2 +4 +5 +6 +7 diff --git a/libservice/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/feature-libservice.jar b/libservice/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/feature-libservice.jar new file mode 100644 index 0000000000000000000000000000000000000000..15cb0ecb3e219d1701294bfdf0fe3f5cb5d208e7 GIT binary patch literal 22 NcmWIWW@Tf*000g10H*)| literal 0 HcmV?d00001 diff --git a/libservice/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml b/libservice/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml new file mode 100644 index 0000000..8f53dcc --- /dev/null +++ b/libservice/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/libservice/build/intermediates/navigation_json/release/extractDeepLinksRelease/navigation.json b/libservice/build/intermediates/navigation_json/release/extractDeepLinksRelease/navigation.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/libservice/build/intermediates/navigation_json/release/extractDeepLinksRelease/navigation.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/libservice/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt b/libservice/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt new file mode 100644 index 0000000..08f4ebe --- /dev/null +++ b/libservice/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt @@ -0,0 +1 @@ +0 Warning/Error \ No newline at end of file diff --git a/libservice/build/intermediates/runtime_library_classes_jar/release/bundleLibRuntimeToJarRelease/classes.jar b/libservice/build/intermediates/runtime_library_classes_jar/release/bundleLibRuntimeToJarRelease/classes.jar new file mode 100644 index 0000000000000000000000000000000000000000..11fc624268d8bbb66e1187f0b3ef995319b8788e GIT binary patch literal 10000 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Μ zc`O0+c1ic(k^Hq7n9|hgSb>dXX8P9LcwjA&YMpv3w`MhEsBeoais64Oj`R}5}<9}DXJREz;G-A^UkW@4DfaZOaL-{JSB09M2WumXR; ztHdMAE`#I0n5p9Gcg@NUgG3wXE?z}$i{ijK2*Lzb#TyHlVEv3jT(2i^Rha7=WYQj_ z%7&DBLEBS)7+qX`v`?%Zehx8KXooOcXl`MZq|@P!yld ziefiWoKF-N5XFUsqF~%@qqvKL6+`sIcSPKny(hEf&f1ifu4>n;*-Zy=x05^ba{A6( zM03BG=5h%Z({YO9T}o4#Pg9Yd5x3%rYl;W2(bb5`d+<8%WZyjaBmP9yi0>O;XH$Em zzRxh<#(F7-ikjEPvF1|i`_k0fQlHByvMX5VzmjTll?hVRc}|i#*TzBC;?D$>q|TNi z$)Ujv!Ui;9b>5S83$Nka*K!N5;}%|D=oT_#DHO%SSy9|T6gLvZO+;~Xp(vOn6^h~u zSy9|V6t@z^ZA5WnTgRpc*tgY(99HlZTS>Iw$* zWL7};5zzev^Z)@pm>19?yqO&kQ^kS-9mopkAp&}sfF2>BNAm*uYc4>{O>ICEHlnet zit`xp?4{!DqvAYXsNygiE)>PnSyAjKiV>n1C5i(Dp(y7o6TD@kIG$H=hw>7|e!D8c zi+}_}EAgw=3tCs)QMvFp{M{sbo4pSF1OMc8CLP-pKK+XxSVHE17nkBcY&TzhD12if z_dvGaJ6S!zp*FdbS0UXSa#P3;cVeGIZ3}ptczH4&oxJsleGav)=WT*6_RFPo`t;vN z#pv(9#F1^-d_AdHS2z1oP*a`Q&4s^*wC* g6zMOn5>vd*-&Kq^MGUe_4u772Dl{tIn>F(EKXsSq2mk;8 literal 0 HcmV?d00001 diff --git a/libservice/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt b/libservice/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt new file mode 100644 index 0000000..d98b5bc --- /dev/null +++ b/libservice/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt @@ -0,0 +1 @@ +com.cocos.service diff --git a/libservice/build/outputs/logs/manifest-merger-release-report.txt b/libservice/build/outputs/logs/manifest-merger-release-report.txt new file mode 100644 index 0000000..9e55c87 --- /dev/null +++ b/libservice/build/outputs/logs/manifest-merger-release-report.txt @@ -0,0 +1,16 @@ +-- Merging decision tree log --- +manifest +ADDED from E:\project\okey_an_test\libservice\AndroidManifest.xml:1:1-3:12 +INJECTED from E:\project\okey_an_test\libservice\AndroidManifest.xml:1:1-3:12 + package + INJECTED from E:\project\okey_an_test\libservice\AndroidManifest.xml + xmlns:android + ADDED from E:\project\okey_an_test\libservice\AndroidManifest.xml:1:11-69 +uses-sdk +INJECTED from E:\project\okey_an_test\libservice\AndroidManifest.xml reason: use-sdk injection requested +INJECTED from E:\project\okey_an_test\libservice\AndroidManifest.xml +INJECTED from E:\project\okey_an_test\libservice\AndroidManifest.xml + android:targetSdkVersion + INJECTED from E:\project\okey_an_test\libservice\AndroidManifest.xml + android:minSdkVersion + INJECTED from E:\project\okey_an_test\libservice\AndroidManifest.xml diff --git a/libservice/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin b/libservice/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..0bc14e75f814c96b7ecb97459c035df2d1bcb13f GIT binary patch literal 691 zcmX|8O-vI(82tuV6)5adtwK>y{;VQX0g*qY6be!bEmEN>T*mFTU8pn7?$UsX3F5Yt zzndpL7%y`1riK_VBwjq2crhmEnHW51^q?0HPD^wSUtVV3`@V19D*!L@<$3ah1$9E` zfbXE^P_Pge;bLq7Q)ahIAT2YQ>7|g-6)maCiU{{aQIud=BZ-8faV(a>3N;ihLS#j% z4Ek)}eDTUJujQvh#YJI38gZ<3yEdQyw7hGo+9}40^oqte?HJ0 zY#DCF7jPSxOp9KG)Qrw()+(_b(zj+5*+85NkgFY|o$lH$Na?y_bi*>CB&uk+7i+Fw zayu_WO4G=~zG#sP|DVNwD8I+=^7ne(1AVw3d+-1r#BEn#C6``Hczy^nY&K>XiB>PH zsM)wEi4Vg%p_Cc9PwS!&R+EahV8m1!9f2i%l>0~hV9v$k($>RYtnr2Ud3t(pO4{2V z58#0@*hmn0mT%jn(g>5hv5wyjtKFS{KJG^Dls$@F#p8G|2q`wJvN7q&o2sqR-48XP zAFjupQ*WQ49`08FV3Fqq=o+2~P5MHf>%kk&o6aexrKB|LmNd<+BT2$31%eH%SuXqq D#6!8q literal 0 HcmV?d00001