refactor :

1. delete useless functions
2' init for adjust sdk
This commit is contained in:
Kirito
2026-01-13 16:23:07 +08:00
parent 03b2ac79cf
commit 79b827d17c
23 changed files with 258 additions and 264 deletions

1
.gitignore vendored
View File

@@ -13,4 +13,3 @@
.externalNativeBuild
.cxx
local.properties
/app/release

1
.idea/.name generated
View File

@@ -1 +0,0 @@
Waje Bet

View File

@@ -5,9 +5,6 @@
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
<SelectionState runConfigName="MainActivity">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>

View File

@@ -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'
}

View File

@@ -19,3 +19,8 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-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.** { *; }

Binary file not shown.

Binary file not shown.

View File

@@ -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
}

BIN
app/release/wajegame.apk Normal file

Binary file not shown.

View File

@@ -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 <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@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());
}
}

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
@@ -15,7 +15,7 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/whotgame_launcher"
android:supportsRtl="true"
android:theme="@style/Theme.WajeBet">
android:theme="@style/Theme.WajeGame">
<activity
android:name=".MainActivity"
android:exported="true">

View File

@@ -1,15 +1,28 @@
package com.hfhy.wajecasino.palmgameweb;
package com.hfhy.wajecasino.palmgamecy;
import android.os.Bundle;
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);
@@ -28,7 +41,7 @@ public class MainActivity extends Activity {
setContentView(R.layout.activity_main);
SolarEngineMgr.init(this);
this.initAdjust();
}
private void configureWebViewSettings(WebView webView) {
@@ -44,39 +57,32 @@ public class MainActivity extends Activity {
}
}
public void onSolarEngineInitSuccess() {
private void showWeb(boolean isDebug, String adid) {
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;
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);
}
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();
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);
}
});
}
}

View File

@@ -1,5 +0,0 @@
package com.hfhy.wajecasino.palmgameweb;
public class Constant {
public static final String SE_APP_KEY = "9723484a319d3cc6";
}

View File

@@ -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<AutoTrackEventType> 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;
}
}
}

View File

@@ -1,7 +1,16 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.WajeBet" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your dark theme here. -->
<!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
<style name="Theme.WajeGame" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_200</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>

View File

@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>

View File

@@ -1,9 +1,16 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.WajeBet" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
<style name="Theme.WajeGame" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
<style name="Theme.WajeBet" parent="Base.Theme.WajeBet" />
</resources>

View File

@@ -0,0 +1,17 @@
package com.hfhy.wajecasino.palmgamecy;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@@ -0,0 +1,17 @@
Create the commit messages in Simplified Chinese
为了方便追踪变更和生成 Changelog使用 Angular 规范:
格式: <type>(<scope>): <subject>
- type:
- feat: 新功能
- fix: 修补bug
- docs: 文档修改
- feat: 增加新的特征
- format: 不影响代码含义的修改,比如空格、格式化、缺失的分号、引入顺序变化等
- pref: 提高性能的代码更改
- refactor: 既不是修复bug也不是添加特征的代码重构
- build: 对构建系统或者外部依赖项进行了修改
- ci: 对CI配置文件或脚本进行了修改
- test: 增加确实的测试或者矫正已存在的测试
- scope: 影响范围(如 auth, ui, v1.0
- subject: 简短描述

View File

@@ -5,9 +5,6 @@ junitVersion = "1.1.5"
espressoCore = "3.5.1"
appcompat = "1.6.1"
material = "1.10.0"
activity = "1.8.0"
constraintlayout = "2.1.4"
solarEngineCore = "1.2.7.4"
[libraries]
junit = { group = "junit", name = "junit", version.ref = "junit" }
@@ -15,9 +12,6 @@ ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitV
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
solar-engine-core = { module = "com.reyun.solar.engine.oversea:solar-engine-core", version.ref = "solarEngineCore" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }

View File

@@ -1,4 +1,4 @@
#Wed Dec 24 17:14:22 CST 2025
#Sun Jan 04 15:04:39 CST 2026
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip

View File

@@ -16,9 +16,8 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven {url "https://dl-maven-android.mintegral.com/repository/se_sdk_for_android/"}
}
}
rootProject.name = "Waje Bet"
rootProject.name = "WajeGame"
include ':app'