diff --git a/.gitignore b/.gitignore index 2cf9b31..aa724b7 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,3 @@ .externalNativeBuild .cxx local.properties -/app/release diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index b529e8d..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -Waje Bet \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index ca760ef..0d46093 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -5,9 +5,6 @@ - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index d3b7236..50159c6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,11 +3,11 @@ plugins { } android { - namespace 'com.hfhy.wajecasino.palmgameweb' + namespace 'com.hfhy.wajecasino.palmgamecy' compileSdk 36 defaultConfig { - applicationId "com.hfhy.wajecasino.palmgameweb" + applicationId "com.hfhy.wajecasino.palmgamecy" minSdk 21 targetSdk 36 versionCode 1 @@ -32,12 +32,13 @@ dependencies { implementation libs.appcompat implementation libs.material - implementation libs.activity - implementation libs.constraintlayout testImplementation libs.junit androidTestImplementation libs.ext.junit androidTestImplementation libs.espresso.core - // 热力引擎 ( SolarEngine ) - implementation libs.solar.engine.core + implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' + implementation 'com.adjust.sdk:adjust-android:5.5.0' + implementation 'com.android.installreferrer:installreferrer:2.2' + // Add the following if you are using the Adjust SDK inside web views on your app + implementation 'com.adjust.sdk:adjust-android-webbridge:5.5.0' } \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 481bb43..52c1e31 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -18,4 +18,9 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file +#-renamesourcefileattribute SourceFile + +-keep class com.singular.sdk.** { *; } +-keep public class com.android.installreferrer.** { *; } +# Uncomment this line in case your are calling the 'revenue' function using the Google billing library +#-keep public class com.android.billingclient.** { *; } \ No newline at end of file diff --git a/app/release/baselineProfiles/0/app-release.dm b/app/release/baselineProfiles/0/app-release.dm new file mode 100644 index 0000000..dd632a3 Binary files /dev/null and b/app/release/baselineProfiles/0/app-release.dm differ diff --git a/app/release/baselineProfiles/1/app-release.dm b/app/release/baselineProfiles/1/app-release.dm new file mode 100644 index 0000000..965d6ae Binary files /dev/null and b/app/release/baselineProfiles/1/app-release.dm differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json new file mode 100644 index 0000000..7a0954c --- /dev/null +++ b/app/release/output-metadata.json @@ -0,0 +1,37 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.hfhy.wajecasino.palmgamecy", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "1.0", + "outputFile": "app-release.apk" + } + ], + "elementType": "File", + "baselineProfiles": [ + { + "minApi": 28, + "maxApi": 30, + "baselineProfiles": [ + "baselineProfiles/1/app-release.dm" + ] + }, + { + "minApi": 31, + "maxApi": 2147483647, + "baselineProfiles": [ + "baselineProfiles/0/app-release.dm" + ] + } + ], + "minSdkVersionForDexing": 21 +} \ No newline at end of file diff --git a/app/release/wajegame.apk b/app/release/wajegame.apk new file mode 100644 index 0000000..e2f381e Binary files /dev/null and b/app/release/wajegame.apk differ diff --git a/app/src/androidTest/java/com/hfhy/wajecasino/palmgamecy/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/hfhy/wajecasino/palmgamecy/ExampleInstrumentedTest.java new file mode 100644 index 0000000..e7f1667 --- /dev/null +++ b/app/src/androidTest/java/com/hfhy/wajecasino/palmgamecy/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.hfhy.wajecasino.palmgamecy; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.hfhy.wajecasino.palmgameweb", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2c68904..888b4cd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,30 +1,30 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/hfhy/wajecasino/palmgameweb/MainActivity.java b/app/src/main/java/com/hfhy/wajecasino/palmgamecy/MainActivity.java similarity index 52% rename from app/src/main/java/com/hfhy/wajecasino/palmgameweb/MainActivity.java rename to app/src/main/java/com/hfhy/wajecasino/palmgamecy/MainActivity.java index df613fc..dcad9d6 100644 --- a/app/src/main/java/com/hfhy/wajecasino/palmgameweb/MainActivity.java +++ b/app/src/main/java/com/hfhy/wajecasino/palmgamecy/MainActivity.java @@ -1,82 +1,88 @@ -package com.hfhy.wajecasino.palmgameweb; - - -import android.os.Bundle; -import android.app.Activity; -import android.webkit.WebSettings; -import android.webkit.WebView; -import android.webkit.WebViewClient; - - -public class MainActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - // 可选:处理返回键返回上一网页 - // 你可以根据需要添加onBackPressed逻辑 - // 设置沉浸式全屏,隐藏导航栏和状态栏 - getWindow().getDecorView().setSystemUiVisibility( - android.view.View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY - | android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | android.view.View.SYSTEM_UI_FLAG_FULLSCREEN - | android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE - ); - - setContentView(R.layout.activity_main); - - SolarEngineMgr.init(this); - } - - private void configureWebViewSettings(WebView webView) { - WebSettings settings = webView.getSettings(); - // 基础缓存配置(所有版本适用) - settings.setCacheMode(WebSettings.LOAD_DEFAULT); - settings.setDomStorageEnabled(true); - settings.setJavaScriptEnabled(true); - - // API 21+ 推荐配置 - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { - settings.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); - } - } - - public void onSolarEngineInitSuccess() { - WebView webView = findViewById(R.id.webview); - configureWebViewSettings(webView); - - String packageName = getPackageName(); - String encodedPackage = android.net.Uri.encode(packageName); - String encodedSolarId = android.net.Uri.encode(SolarEngineMgr.getDistinctId()); - String urlDev = "https://test-h5.waje-special.com/?solarDeviceID="; - String urlRelease = "https://waje.bet/?solarDeviceID="; - String url = (SolarEngineMgr.isApkInDebug(this)? urlDev : urlRelease) - + encodedSolarId + "&package=" + encodedPackage; - webView.setWebViewClient(new WebViewClient()); - webView.loadUrl(url); - } - - public void onSolarEngineInitFailed() { - runOnUiThread(new Runnable() { - @Override - public void run() { - new android.app.AlertDialog.Builder(MainActivity.this) - .setTitle("Error") - .setMessage("Game failed to launch. Click Exit to quit.") - .setCancelable(false) - .setNegativeButton("Exit", new android.content.DialogInterface.OnClickListener() { - @Override - public void onClick(android.content.DialogInterface dialog, int which) { - dialog.dismiss(); - // Close the activity/app - finish(); - } - }) - .show(); - } - }); - } -} \ No newline at end of file +package com.hfhy.wajecasino.palmgamecy; + +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +import com.adjust.sdk.Adjust; +import com.adjust.sdk.AdjustConfig; +import com.adjust.sdk.LogLevel; +import com.adjust.sdk.OnAdidReadListener; +import com.google.android.gms.ads.identifier.AdvertisingIdClient; +import com.google.android.gms.common.GooglePlayServicesNotAvailableException; + +import java.io.IOException; + + +public class MainActivity extends Activity { + +// private static final String SingularKey = "init_info_264a5ee5"; +// private static final String SingularSecret = "4d99d19e03f2476a307acbff00b0337a"; + private static final String logTag = "WajeGame"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // 可选:处理返回键返回上一网页 + // 你可以根据需要添加onBackPressed逻辑 + // 设置沉浸式全屏,隐藏导航栏和状态栏 + getWindow().getDecorView().setSystemUiVisibility( + android.view.View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY + | android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | android.view.View.SYSTEM_UI_FLAG_FULLSCREEN + | android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE + ); + + setContentView(R.layout.activity_main); + + this.initAdjust(); + } + + private void configureWebViewSettings(WebView webView) { + WebSettings settings = webView.getSettings(); + // 基础缓存配置(所有版本适用) + settings.setCacheMode(WebSettings.LOAD_DEFAULT); + settings.setDomStorageEnabled(true); + settings.setJavaScriptEnabled(true); + + // API 21+ 推荐配置 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + settings.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); + } + } + + private void showWeb(boolean isDebug, String adid) { + WebView webView = findViewById(R.id.webview); + configureWebViewSettings(webView); + + String urlDev = "https://test-h5.waje-special.com/"; + String urlRelease = "https://waje.bet/"; + String url = (isDebug ? urlDev : urlRelease) + + "?adid=" + adid + + "&p=wajecyw" + ; + webView.setWebViewClient(new WebViewClient()); + webView.loadUrl(url); + } + + private void initAdjust() { + String appToken = "gfm89rtx47b4"; + boolean isDebug = (getApplicationInfo().flags & android.content.pm.ApplicationInfo.FLAG_DEBUGGABLE) != 0; + String environment = isDebug ? AdjustConfig.ENVIRONMENT_SANDBOX : AdjustConfig.ENVIRONMENT_PRODUCTION; + AdjustConfig config = new AdjustConfig(this, appToken, environment); + config.setLogLevel(isDebug ? LogLevel.VERBOSE : LogLevel.ERROR); + Adjust.initSdk(config); + Adjust.getAdid(new OnAdidReadListener(){ + public void onAdidRead(String adid) { + showWeb(isDebug, adid); + } + }); + } + +} diff --git a/app/src/main/java/com/hfhy/wajecasino/palmgameweb/Constant.java b/app/src/main/java/com/hfhy/wajecasino/palmgameweb/Constant.java deleted file mode 100644 index 23688ff..0000000 --- a/app/src/main/java/com/hfhy/wajecasino/palmgameweb/Constant.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hfhy.wajecasino.palmgameweb; - -public class Constant { - public static final String SE_APP_KEY = "9723484a319d3cc6"; -} diff --git a/app/src/main/java/com/hfhy/wajecasino/palmgameweb/SolarEngineMgr.java b/app/src/main/java/com/hfhy/wajecasino/palmgameweb/SolarEngineMgr.java deleted file mode 100644 index 3f2f138..0000000 --- a/app/src/main/java/com/hfhy/wajecasino/palmgameweb/SolarEngineMgr.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.hfhy.wajecasino.palmgameweb; - -import android.content.Context; -import android.content.pm.ApplicationInfo; -import android.util.Log; - -import com.reyun.solar.engine.OnAttributionListener; -import com.reyun.solar.engine.SolarEngineConfig; -import com.reyun.solar.engine.SolarEngineManager; -import com.reyun.solar.engine.autotrack.AutoTrackEventType; - -import org.json.JSONObject; - -import java.util.ArrayList; -import java.util.List; - -public class SolarEngineMgr { - private static final String SE_USER_CODE = "dc69164d42c5c9c2"; - - private static final String LogTag = "==SolarEngineManage=="; - - public static void init(MainActivity activity) { - - SolarEngineManager.getInstance().preInit(activity, Constant.SE_APP_KEY); - - List autoTrackEventTypeList = new ArrayList<>(); - - autoTrackEventTypeList.add(AutoTrackEventType.AutoTrackAppViewScreen); - autoTrackEventTypeList.add(AutoTrackEventType.AutotrackAppClick); - - SolarEngineConfig config = new SolarEngineConfig.Builder() - .logEnabled() //开启本地调试日志 - .isGDPRArea(false) //是否属于GDPR地区,默认为false - .enableAutoTrackEvent(autoTrackEventTypeList) //自动采集方法入口 -// .withRemoteConfig(remoteConfig) //参数下发SDK参数配置,具体配置方法请参考参数下发文档 - .isDebugModel(isApkInDebug(activity)) //开启事件上报调试模式,需要提前在后台调试设备列表中添加调试设备;验证归因服务时需要关闭此模式 - .build(); - - config.setOnAttributionListener(new OnAttributionListener() { - @Override - public void onAttributionSuccess(JSONObject attribution) { - // 获取归因结果成功 - Log.i(LogTag, "onAttributionSuccess attribution ==> " + attribution.toString()); - // 回到主线程执行 Activity 回调,避免在后台线程直接操作 UI 或 WebView - try { - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - activity.onSolarEngineInitSuccess(); - } - }); - } catch (Exception e) { - Log.w(LogTag, "Failed to post onSolarEngineInitSuccess to UI thread", e); - // fallback call (best-effort) - activity.onSolarEngineInitSuccess(); - } - } - - @Override - public void onAttributionFail(int errorCode) { - // 获取归因结果失败 - Log.i(LogTag, "onAttributionFail errorCode ==> " + errorCode); - try { - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - activity.onSolarEngineInitFailed(); - } - }); - } catch (Exception e) { - Log.w(LogTag, "Failed to post onSolarEngineInitFailed to UI thread", e); - activity.onSolarEngineInitFailed(); - } - } - }); - - SolarEngineManager.getInstance().initialize(activity.getApplicationContext(), Constant.SE_APP_KEY, SE_USER_CODE, config); - - Log.i(LogTag, "initialize"); - } - - public static void setGaid(String gaid) { - SolarEngineManager.getInstance().setGaid(gaid); - } - - public static void setChannel(String channel) { - SolarEngineManager.getInstance().setChannel(channel); - } - - public static String getDistinctId() { - return SolarEngineManager.getInstance().getDistinctId(); - } - - public static String getAttribution() { - JSONObject jsonObject = SolarEngineManager.getInstance().getAttribution(); - if (jsonObject == null) return null; - return jsonObject.toString(); - } - - public static String getVisitorID() { - return SolarEngineManager.getInstance().getVisitorID(); - } - - public static String getAccountID() { - return SolarEngineManager.getInstance().getAccountID(); - } - - - public static boolean isApkInDebug(Context context) { - try { - ApplicationInfo info = context.getApplicationInfo(); - Log.i(LogTag, "isApkInDebug => " + ((info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0)); - return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; - } catch (Exception e) { - Log.i(LogTag, "isApkInDebug false"); - return false; - } - } -} diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml similarity index 100% rename from app/src/main/res/drawable/ic_launcher_foreground.xml rename to app/src/main/res/drawable-v24/ic_launcher_foreground.xml diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index cf5748e..317f4b1 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,7 +1,16 @@ - \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c8524cd..f8c6127 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,5 +1,10 @@ + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 #FF000000 #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index b5e8e31..05a239e 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,9 +1,16 @@ - - -