Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e398ead7ba | |||
| f6938e8b8a | |||
| a2eb9d37f6 | |||
| a99eb85fdd | |||
| bd647edd48 | |||
| 77374d8b50 | |||
| a6be76cc3a | |||
| 8c56999da0 | |||
| 898b0b9235 | |||
| 2d74e99b32 | |||
| 988eeb2dd9 | |||
| f64f690a0a | |||
| b0c4a7e05a | |||
| 0a44f56c2f | |||
| 527c8176e4 | |||
| a54219b781 |
@@ -1,7 +1,11 @@
|
||||
name: Build
|
||||
run-name: ${{ gitea.actor }} build 🚀
|
||||
|
||||
on: [push]
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -13,7 +17,7 @@ jobs:
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
java-version: '21.0.7'
|
||||
java-version: '17'
|
||||
|
||||
- name: Setup Android SDK
|
||||
uses: amyu/setup-android@v5
|
||||
|
||||
2
.idea/compiler.xml
generated
2
.idea/compiler.xml
generated
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="21" />
|
||||
<bytecodeTargetLevel target="17" />
|
||||
</component>
|
||||
</project>
|
||||
2
.idea/gradle.xml
generated
2
.idea/gradle.xml
generated
@@ -6,7 +6,6 @@
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
@@ -15,5 +14,6 @@
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
<option name="parallelModelFetch" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
8
.idea/markdown.xml
generated
Normal file
8
.idea/markdown.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MarkdownSettings">
|
||||
<option name="previewPanelProviderInfo">
|
||||
<ProviderInfo name="Compose (experimental)" className="com.intellij.markdown.compose.preview.ComposePanelProvider" />
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
@file:Suppress("UnstableApiUsage")
|
||||
|
||||
import com.android.build.api.dsl.Packaging
|
||||
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.compose)
|
||||
}
|
||||
kotlin {
|
||||
jvmToolchain(17)
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
}
|
||||
android {
|
||||
namespace = "com.example.firefly_go_android"
|
||||
compileSdk = 36
|
||||
@@ -16,38 +21,29 @@ android {
|
||||
defaultConfig {
|
||||
applicationId = "com.kain344.firefly_go_android"
|
||||
minSdk = 24
|
||||
//noinspection OldTargetApi
|
||||
targetSdk = 35
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
||||
}
|
||||
|
||||
fun Packaging.() {
|
||||
jniLibs {
|
||||
useLegacyPackaging = true
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||
"proguard-rules.pro"
|
||||
)
|
||||
ndk {
|
||||
abiFilters.addAll(listOf("arm64-v8a"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
viewBinding = true
|
||||
@@ -101,5 +97,7 @@ dependencies {
|
||||
|
||||
// Local AAR library
|
||||
implementation(files("libs/firefly-go.aar"))
|
||||
|
||||
implementation(libs.slf4j.android)
|
||||
}
|
||||
|
||||
|
||||
BIN
app/libs/firefly-go.aar
LFS
BIN
app/libs/firefly-go.aar
LFS
Binary file not shown.
@@ -2,12 +2,20 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"
|
||||
tools:ignore="ForegroundServicesPolicy" />
|
||||
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
|
||||
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"
|
||||
tools:ignore="RequestInstallPackagesPolicy" />
|
||||
<uses-permission android:name="android.permission.READ_LOGS"/>
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
@@ -20,6 +28,7 @@
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:theme="@style/Theme.FireflyGoAndroid"
|
||||
tools:targetApi="31">
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
@@ -32,9 +41,12 @@
|
||||
|
||||
<service
|
||||
android:name=".GolangServerService"
|
||||
android:foregroundServiceType="dataSync"
|
||||
android:exported="false" />
|
||||
|
||||
android:foregroundServiceType="specialUse"
|
||||
android:exported="false">
|
||||
<property
|
||||
android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
|
||||
android:value="Running local Golang TCP/UDP Server" />
|
||||
</service>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
|
||||
363
app/src/main/assets/data-in-game.json
Normal file
363
app/src/main/assets/data-in-game.json
Normal file
@@ -0,0 +1,363 @@
|
||||
{
|
||||
"leader": 0,
|
||||
"lineups": {
|
||||
"0": 1415,
|
||||
"1": 1413,
|
||||
"2": 1409,
|
||||
"3": 1407
|
||||
},
|
||||
"position": {
|
||||
"x": -38,
|
||||
"z": 91788,
|
||||
"y": -2052,
|
||||
"rot_y": 0
|
||||
},
|
||||
"scene": {
|
||||
"plane_id": 10341,
|
||||
"floor_id": 10341001,
|
||||
"entry_id": 1034102
|
||||
},
|
||||
"player_outfit": [
|
||||
1003
|
||||
],
|
||||
"char_path": {
|
||||
"main": 8010,
|
||||
"march_7": 1224
|
||||
},
|
||||
"char_enhanced": {
|
||||
"1004": 1,
|
||||
"1005": 1,
|
||||
"1006": 1,
|
||||
"1102": 1,
|
||||
"1205": 1,
|
||||
"1212": 1,
|
||||
"1217": 1,
|
||||
"1306": 1,
|
||||
"1307": 1,
|
||||
"1310": 1
|
||||
},
|
||||
"challenge": {
|
||||
"challenge_id": 0,
|
||||
"skip_half": 0,
|
||||
"blessings": [],
|
||||
"is_in_challenge": false,
|
||||
"current_stage_id": 30122121,
|
||||
"path_resonance_id": 0,
|
||||
"maze_buff": 0,
|
||||
"first_lineup": [],
|
||||
"second_lineup": []
|
||||
},
|
||||
"challenge_peak": {
|
||||
"current_mode": "Boss",
|
||||
"group_id": 6,
|
||||
"is_in_challenge_peak": false,
|
||||
"challenge_peak_data": {
|
||||
"1": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 104,
|
||||
"blessing": 3033006,
|
||||
"lineup": [
|
||||
1413,
|
||||
1409,
|
||||
1407,
|
||||
1403
|
||||
],
|
||||
"stage_id": 30501022,
|
||||
"is_hard_mode": true
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 103,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1222,
|
||||
1225,
|
||||
1310,
|
||||
1303
|
||||
],
|
||||
"stage_id": 30501011,
|
||||
"challenge_id": 101
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1412,
|
||||
1414,
|
||||
1408,
|
||||
1313
|
||||
],
|
||||
"stage_id": 30501012,
|
||||
"challenge_id": 102
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1407,
|
||||
1403,
|
||||
1409,
|
||||
1413
|
||||
],
|
||||
"stage_id": 30501013,
|
||||
"challenge_id": 103
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 204,
|
||||
"blessing": 3033021,
|
||||
"lineup": [
|
||||
1415,
|
||||
1413,
|
||||
1409,
|
||||
1407
|
||||
],
|
||||
"stage_id": 30502022,
|
||||
"is_hard_mode": true
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 203,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1302,
|
||||
1309,
|
||||
1410
|
||||
],
|
||||
"stage_id": 30502011,
|
||||
"challenge_id": 201
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1221,
|
||||
1222
|
||||
],
|
||||
"stage_id": 30502012,
|
||||
"challenge_id": 202
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1415,
|
||||
8001,
|
||||
1414,
|
||||
1313
|
||||
],
|
||||
"stage_id": 30502013,
|
||||
"challenge_id": 203
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 304,
|
||||
"blessing": 3033032,
|
||||
"lineup": [
|
||||
1222,
|
||||
1225,
|
||||
1310,
|
||||
1321
|
||||
],
|
||||
"stage_id": 30503021,
|
||||
"is_hard_mode": false
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 302,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1003
|
||||
],
|
||||
"stage_id": 30503011,
|
||||
"challenge_id": 301
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1315
|
||||
],
|
||||
"stage_id": 30503012,
|
||||
"challenge_id": 302
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
8001
|
||||
],
|
||||
"stage_id": 30503013,
|
||||
"challenge_id": 303
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 404,
|
||||
"blessing": 3033045,
|
||||
"lineup": [
|
||||
1310
|
||||
],
|
||||
"stage_id": 30504021,
|
||||
"is_hard_mode": false
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 401,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1302
|
||||
],
|
||||
"stage_id": 30504011,
|
||||
"challenge_id": 401
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1321
|
||||
],
|
||||
"stage_id": 30504012,
|
||||
"challenge_id": 402
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1218
|
||||
],
|
||||
"stage_id": 30504013,
|
||||
"challenge_id": 403
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"5": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 504,
|
||||
"blessing": 3033050,
|
||||
"lineup": [
|
||||
1415,
|
||||
1413,
|
||||
1407,
|
||||
1409
|
||||
],
|
||||
"stage_id": 30505021,
|
||||
"is_hard_mode": false
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 501,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1310
|
||||
],
|
||||
"stage_id": 30505011,
|
||||
"challenge_id": 501
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1407
|
||||
],
|
||||
"stage_id": 30505012,
|
||||
"challenge_id": 502
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1502
|
||||
],
|
||||
"stage_id": 30505013,
|
||||
"challenge_id": 503
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 604,
|
||||
"blessing": 3033053,
|
||||
"lineup": [
|
||||
1505,
|
||||
1217,
|
||||
1502,
|
||||
8001
|
||||
],
|
||||
"stage_id": 30506021,
|
||||
"is_hard_mode": false
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 602,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1309
|
||||
],
|
||||
"stage_id": 30506011,
|
||||
"challenge_id": 601
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1321,
|
||||
1310,
|
||||
1225,
|
||||
1303
|
||||
],
|
||||
"stage_id": 30506012,
|
||||
"challenge_id": 602
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1415,
|
||||
1413,
|
||||
1409,
|
||||
1407
|
||||
],
|
||||
"stage_id": 30506013,
|
||||
"challenge_id": 603
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"theory_craft": {
|
||||
"hp": {
|
||||
"1": [
|
||||
200000,
|
||||
1000000,
|
||||
200000
|
||||
],
|
||||
"2": [
|
||||
2000000000,
|
||||
2000000000,
|
||||
2000000000
|
||||
],
|
||||
"3": []
|
||||
},
|
||||
"cycle_count": 1,
|
||||
"stage_id": 30118121,
|
||||
"mode": false,
|
||||
"custom_lineup": []
|
||||
},
|
||||
"profile_data": {
|
||||
"cur_chat_bubble_id": 220009,
|
||||
"cur_phone_theme_id": 221012,
|
||||
"cur_phone_case_id": 254001,
|
||||
"cur_pam_skin_id": 252000,
|
||||
"cur_pet_id": 0,
|
||||
"cur_avatar_player_icon": 202034,
|
||||
"cur_player_personal_card": 253001,
|
||||
"cur_signature": "Firefly GO By Kain",
|
||||
"cur_nickname": "Firefly GO",
|
||||
"cur_display_avatar": [
|
||||
1310,
|
||||
1309,
|
||||
1407,
|
||||
1413,
|
||||
1412
|
||||
],
|
||||
"cur_is_display_avatar": true
|
||||
},
|
||||
"skin_data": {
|
||||
"1001": 1100101,
|
||||
"1310": 1131001
|
||||
},
|
||||
"extra_setting": {
|
||||
"censorship": false,
|
||||
"cm": false,
|
||||
"first_person": false,
|
||||
"hide_ui": false
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
212
app/src/main/assets/version.json
Normal file
212
app/src/main/assets/version.json
Normal file
@@ -0,0 +1,212 @@
|
||||
{
|
||||
"CNBETAAndroid4.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14352532_e3dee8767e70_9fd758f12171f5",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14394020_12e3f0c6a002_07566508dd1394",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
||||
},
|
||||
"CNBETAAndroid4.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14427120_6f7bdcd832cf_5c861411529529",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14426018_808f7828fdd4_646eb1de0d5580",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14460274_5ed5ff5977db_299d2e7b72efe8"
|
||||
},
|
||||
"CNBETAAndroid4.1.53": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14536466_eef3376243be_0b6e5633eb67ac",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14527836_2bed15e185c1_05d2c57e28ff4e",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAAndroid4.1.54": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14611439_56f651a0b674_84a023d793fd76",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14609090_1218af71d445_3d7b85e94ad21f",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAAndroid4.1.55": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14680684_6e4cc15140f9_aef71dde394fda",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14669747_01b97b7c1a31_171acc2ac3948b",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAWin4.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14352532_e3dee8767e70_9fd758f12171f5",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14394020_12e3f0c6a002_07566508dd1394",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
||||
},
|
||||
"CNBETAWin4.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14427120_6f7bdcd832cf_5c861411529529",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14426018_808f7828fdd4_646eb1de0d5580",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14460274_5ed5ff5977db_299d2e7b72efe8"
|
||||
},
|
||||
"CNBETAWin4.1.53": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14536466_eef3376243be_0b6e5633eb67ac",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14527836_2bed15e185c1_05d2c57e28ff4e",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAWin4.1.54": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14611439_56f651a0b674_84a023d793fd76",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14609090_1218af71d445_3d7b85e94ad21f",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAWin4.1.55": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14680684_6e4cc15140f9_aef71dde394fda",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14669747_01b97b7c1a31_171acc2ac3948b",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAiOS4.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14352532_e3dee8767e70_9fd758f12171f5",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14394020_12e3f0c6a002_07566508dd1394",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
||||
},
|
||||
"CNBETAiOS4.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14427120_6f7bdcd832cf_5c861411529529",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14426018_808f7828fdd4_646eb1de0d5580",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14460274_5ed5ff5977db_299d2e7b72efe8"
|
||||
},
|
||||
"CNBETAiOS4.1.53": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14536466_eef3376243be_0b6e5633eb67ac",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14527836_2bed15e185c1_05d2c57e28ff4e",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAiOS4.1.54": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14611439_56f651a0b674_84a023d793fd76",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14609090_1218af71d445_3d7b85e94ad21f",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"CNBETAiOS4.1.55": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14680684_6e4cc15140f9_aef71dde394fda",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14669747_01b97b7c1a31_171acc2ac3948b",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAAndroid4.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14352532_e3dee8767e70_9fd758f12171f5",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14394020_12e3f0c6a002_07566508dd1394",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
||||
},
|
||||
"OSBETAAndroid4.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14427120_6f7bdcd832cf_5c861411529529",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14426018_808f7828fdd4_646eb1de0d5580",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14460274_5ed5ff5977db_299d2e7b72efe8"
|
||||
},
|
||||
"OSBETAAndroid4.1.53": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14536466_eef3376243be_0b6e5633eb67ac",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14527836_2bed15e185c1_05d2c57e28ff4e",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAAndroid4.1.54": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14611439_56f651a0b674_84a023d793fd76",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14609090_1218af71d445_3d7b85e94ad21f",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAAndroid4.1.55": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14680684_6e4cc15140f9_aef71dde394fda",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14669747_01b97b7c1a31_171acc2ac3948b",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAWin4.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14352532_e3dee8767e70_9fd758f12171f5",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14394020_12e3f0c6a002_07566508dd1394",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
||||
},
|
||||
"OSBETAWin4.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14427120_6f7bdcd832cf_5c861411529529",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14426018_808f7828fdd4_646eb1de0d5580",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14460274_5ed5ff5977db_299d2e7b72efe8"
|
||||
},
|
||||
"OSBETAWin4.1.53": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14536466_eef3376243be_0b6e5633eb67ac",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14527836_2bed15e185c1_05d2c57e28ff4e",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAWin4.1.54": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14611439_56f651a0b674_84a023d793fd76",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14609090_1218af71d445_3d7b85e94ad21f",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAWin4.1.55": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14680684_6e4cc15140f9_aef71dde394fda",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14669747_01b97b7c1a31_171acc2ac3948b",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAiOS4.1.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14372365_fa78e03ad599_36972b4e3bb553",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14352532_e3dee8767e70_9fd758f12171f5",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14394020_12e3f0c6a002_07566508dd1394",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14358961_e055a63b3c34_b199a0234548b5",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14374543_04d971175704_ab00cb3f54bb00"
|
||||
},
|
||||
"OSBETAiOS4.1.52": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_14420305_7a74f0e95f84_edf69bcd963b3a",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_14427120_6f7bdcd832cf_5c861411529529",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_14426018_808f7828fdd4_646eb1de0d5580",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_14460274_5ed5ff5977db_299d2e7b72efe8"
|
||||
},
|
||||
"OSBETAiOS4.1.53": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14511152_92f232b7216a_602de31e31b1a4",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14536466_eef3376243be_0b6e5633eb67ac",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14527836_2bed15e185c1_05d2c57e28ff4e",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAiOS4.1.54": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14608970_b10116831d46_f4a480ee801414",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14611439_56f651a0b674_84a023d793fd76",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14609090_1218af71d445_3d7b85e94ad21f",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
},
|
||||
"OSBETAiOS4.1.55": {
|
||||
"asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_14669556_c7c835eb7ee7_fc59aa87daea7f",
|
||||
"ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_14680684_6e4cc15140f9_aef71dde394fda",
|
||||
"lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_14669747_01b97b7c1a31_171acc2ac3948b",
|
||||
"ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_0_40d2ce0253_6d871f8bca6eb4"
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.example.firefly_go_android
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.app.PendingIntent
|
||||
import android.app.Service
|
||||
import android.content.Intent
|
||||
import android.content.pm.ServiceInfo
|
||||
import android.graphics.BitmapFactory
|
||||
import android.os.Build
|
||||
import android.os.IBinder
|
||||
@@ -16,6 +18,7 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import libandroid.Libandroid
|
||||
import androidx.core.content.edit
|
||||
|
||||
class GolangServerService : Service() {
|
||||
|
||||
@@ -33,9 +36,10 @@ class GolangServerService : Service() {
|
||||
createNotificationChannel()
|
||||
}
|
||||
|
||||
@SuppressLint("WakelockTimeout")
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
if (isRunning) {
|
||||
Log.d(TAG, "❗ Server is already running")
|
||||
Log.d(TAG, "Server is already running")
|
||||
return START_STICKY
|
||||
}
|
||||
isRunning = true
|
||||
@@ -64,42 +68,63 @@ class GolangServerService : Service() {
|
||||
.setCategory(NotificationCompat.CATEGORY_SERVICE)
|
||||
.build()
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 34) {
|
||||
startForeground(
|
||||
NOTIFICATION_ID,
|
||||
notification,
|
||||
ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE
|
||||
)
|
||||
} else if (Build.VERSION.SDK_INT >= 29) {
|
||||
startForeground(
|
||||
NOTIFICATION_ID,
|
||||
notification,
|
||||
ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST
|
||||
)
|
||||
} else {
|
||||
startForeground(NOTIFICATION_ID, notification)
|
||||
}
|
||||
|
||||
startForeground(NOTIFICATION_ID, notification)
|
||||
|
||||
// Khởi tạo WakeLock và WifiLock
|
||||
try {
|
||||
val powerManager = getSystemService(POWER_SERVICE) as PowerManager
|
||||
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "GolangServer::WakeLock")
|
||||
wakeLock?.acquire(10*60*1000L)
|
||||
Log.d(TAG, "✅ WakeLock acquired")
|
||||
wakeLock?.acquire()
|
||||
Log.d(TAG, "WakeLock acquired")
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "❌ WakeLock failed", e)
|
||||
Log.e(TAG, "Lock failed", e)
|
||||
}
|
||||
|
||||
Thread {
|
||||
try {
|
||||
val appDataPath = intent?.getStringExtra("appDataPath")
|
||||
val sharedPrefs = getSharedPreferences("AppPrefs", MODE_PRIVATE)
|
||||
var appDataPath = intent?.getStringExtra("appDataPath")
|
||||
|
||||
if (appDataPath != null) {
|
||||
sharedPrefs.edit { putString("saved_app_data_path", appDataPath) }
|
||||
} else {
|
||||
appDataPath = sharedPrefs.getString("saved_app_data_path", null)
|
||||
}
|
||||
|
||||
if (appDataPath != null) {
|
||||
Libandroid.setPathDataLocal(appDataPath)
|
||||
Log.d(TAG, "✅ Set path data: $appDataPath")
|
||||
Log.d(TAG, "Set path data: $appDataPath")
|
||||
} else {
|
||||
isRunning = false
|
||||
Log.e(TAG, "❌ appDataPath not received in intent")
|
||||
Log.e(TAG, "appDataPath not received and not found in SharedPreferences")
|
||||
stopSelf()
|
||||
return@Thread
|
||||
}
|
||||
|
||||
Libandroid.setServerRunning(true)
|
||||
isRunning = true
|
||||
Log.d(TAG, "✅ Server started")
|
||||
Log.d(TAG, "Server started")
|
||||
} catch (e: Exception) {
|
||||
isRunning = false
|
||||
Log.e(TAG, "❌ Error starting server", e)
|
||||
Log.e(TAG, "Error starting server", e)
|
||||
stopSelf()
|
||||
}
|
||||
}.start()
|
||||
|
||||
|
||||
return START_STICKY
|
||||
}
|
||||
|
||||
@@ -107,7 +132,6 @@ class GolangServerService : Service() {
|
||||
super.onDestroy()
|
||||
Log.d(TAG, "onDestroy called")
|
||||
|
||||
// 1. Tắt server
|
||||
try {
|
||||
val result = Libandroid.setServerRunning(false)
|
||||
isRunning = false
|
||||
@@ -116,15 +140,16 @@ class GolangServerService : Service() {
|
||||
Log.e(TAG, "Error shutting down server", e)
|
||||
}
|
||||
|
||||
// Nhả các khóa tài nguyên
|
||||
try {
|
||||
wakeLock?.let {
|
||||
if (it.isHeld) {
|
||||
it.release()
|
||||
Log.d(TAG, "✅ WakeLock released")
|
||||
Log.d(TAG, "WakeLock released")
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "❌ Failed to release WakeLock", e)
|
||||
Log.e(TAG, "Failed to release Locks", e)
|
||||
}
|
||||
isRunning = false
|
||||
}
|
||||
@@ -143,7 +168,7 @@ class GolangServerService : Service() {
|
||||
|
||||
val manager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
|
||||
manager.createNotificationChannel(channel)
|
||||
Log.d(TAG, "✅ Notification channel created")
|
||||
Log.d(TAG, "Notification channel created")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,9 @@ import AutoUpdaterManager
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
|
||||
import android.os.Environment
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.activity.ComponentActivity
|
||||
@@ -66,6 +67,12 @@ import androidx.compose.ui.window.DialogProperties
|
||||
import kotlinx.coroutines.delay
|
||||
import org.json.JSONObject
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import android.os.PowerManager
|
||||
import android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.net.toUri
|
||||
import android.provider.Settings
|
||||
|
||||
data class AppVersion(
|
||||
val latestVersion: String,
|
||||
@@ -76,14 +83,14 @@ data class AppVersion(
|
||||
class MainActivity : ComponentActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
requestBatteryExemption(this)
|
||||
requestInstallPermission(this)
|
||||
|
||||
val appDataPath = filesDir.absolutePath
|
||||
val appDataPath = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "FireflyGo").absolutePath
|
||||
val dataDir = File("$appDataPath/data")
|
||||
dataDir.mkdirs()
|
||||
if (!dataDir.exists()) dataDir.mkdirs()
|
||||
|
||||
copyRawToFile(this, dataDir, "data-in-game.json", R.raw.data_in_game_json)
|
||||
copyRawToFile(this, dataDir, "freesr-data.json", R.raw.freesr_data_json)
|
||||
copyRawToFile(this, dataDir, "version.json", R.raw.version_json)
|
||||
copyRawToFile(dataDir)
|
||||
|
||||
val jsonString = resources.openRawResource(R.raw.app_version_json).use { input ->
|
||||
input.bufferedReader().use { it.readText() }
|
||||
@@ -111,22 +118,61 @@ class MainActivity : ComponentActivity() {
|
||||
}
|
||||
|
||||
}
|
||||
@SuppressLint("BatteryLife")
|
||||
|
||||
fun copyRawToFile(context: Context, targetDir: File, fileName: String, resId: Int, override: Boolean = false) {
|
||||
val outFile = File(targetDir, fileName)
|
||||
if (!outFile.exists() || override) {
|
||||
try {
|
||||
context.resources.openRawResource(resId).use { input ->
|
||||
fun requestBatteryExemption(context: Context) {
|
||||
val powerManager = context.getSystemService(Context.POWER_SERVICE) as PowerManager
|
||||
if (!powerManager.isIgnoringBatteryOptimizations(context.packageName)) {
|
||||
val intent = Intent().apply {
|
||||
action = ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
|
||||
data = "package:${context.packageName}".toUri()
|
||||
}
|
||||
context.startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
fun requestInstallPermission(context: Context) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
if (!context.packageManager.canRequestPackageInstalls()) {
|
||||
val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).apply {
|
||||
data = "package:${context.packageName}".toUri()
|
||||
}
|
||||
context.startActivity(intent)
|
||||
Toast.makeText(context, "Please allow installing unknown apps to update", Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
fun copyRawToFile(targetDir: File, override: Boolean = false): Boolean {
|
||||
val files = listOf(
|
||||
"assets/data-in-game.json" to "data-in-game.json",
|
||||
"assets/freesr-data.json" to "freesr-data.json",
|
||||
"assets/version.json" to "version.json"
|
||||
)
|
||||
|
||||
return try {
|
||||
if (!targetDir.exists()) targetDir.mkdirs()
|
||||
|
||||
for ((assetPath, name) in files) {
|
||||
val outFile = File(targetDir, name)
|
||||
|
||||
if (outFile.exists() && !override) continue
|
||||
|
||||
val inputStream =
|
||||
MainActivity::class.java.classLoader
|
||||
?.getResourceAsStream(assetPath)
|
||||
?: return false
|
||||
|
||||
inputStream.use { input ->
|
||||
FileOutputStream(outFile).use { output ->
|
||||
input.copyTo(output)
|
||||
output.fd.sync()
|
||||
}
|
||||
}
|
||||
Log.i("FileCopy", "${if (override) "✅ Overridden" else "✅ Copied"} $fileName to ${outFile.absolutePath}")
|
||||
} catch (e: Exception) {
|
||||
Log.e("FileCopy", "❌ Failed to copy $fileName: ${e.message}")
|
||||
}
|
||||
} else {
|
||||
Log.i("FileCopy", "ℹ️ $fileName already exists at ${outFile.absolutePath}")
|
||||
|
||||
true
|
||||
} catch (e: Exception) {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,18 +181,18 @@ fun removeFile(targetDir: File, fileName: String): Boolean {
|
||||
return if (file.exists()) {
|
||||
try {
|
||||
if (file.delete()) {
|
||||
Log.i("FileRemove", "🗑️ Removed $fileName from ${file.absolutePath}")
|
||||
Log.i("FileRemove", "Removed $fileName from ${file.absolutePath}")
|
||||
true
|
||||
} else {
|
||||
Log.e("FileRemove", "❌ Failed to remove $fileName from ${file.absolutePath}")
|
||||
Log.e("FileRemove", "Failed to remove $fileName from ${file.absolutePath}")
|
||||
false
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e("FileRemove", "❌ Error removing $fileName: ${e.message}")
|
||||
Log.e("FileRemove", "Error removing $fileName: ${e.message}")
|
||||
false
|
||||
}
|
||||
} else {
|
||||
Log.i("FileRemove", "ℹ️ $fileName does not exist in ${targetDir.absolutePath}")
|
||||
Log.i("FileRemove", "$fileName does not exist in ${targetDir.absolutePath}")
|
||||
false
|
||||
}
|
||||
}
|
||||
@@ -238,7 +284,7 @@ fun ServerControlScreen(appDataPath: String, dataDir: File, appVersion: AppVersi
|
||||
if (!isRunning) {
|
||||
val intent = Intent(context, GolangServerService::class.java)
|
||||
intent.putExtra("appDataPath", appDataPath)
|
||||
context.startService(intent)
|
||||
ContextCompat.startForegroundService(context, intent)
|
||||
} else {
|
||||
context.stopService(Intent(context, GolangServerService::class.java))
|
||||
}
|
||||
@@ -381,9 +427,7 @@ fun ServerControlScreen(appDataPath: String, dataDir: File, appVersion: AppVersi
|
||||
onClick = {
|
||||
showResetDialog = false
|
||||
try {
|
||||
copyRawToFile(context, dataDir, "data-in-game.json", R.raw.data_in_game_json, true)
|
||||
copyRawToFile(context, dataDir, "freesr-data.json", R.raw.freesr_data_json, true)
|
||||
copyRawToFile(context, dataDir, "version.json", R.raw.version_json, true)
|
||||
copyRawToFile(dataDir, true)
|
||||
Toast.makeText(context, "Data has been reset successfully", Toast.LENGTH_SHORT).show()
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(context, "Reset failed: ${e.message}", Toast.LENGTH_SHORT).show()
|
||||
@@ -421,64 +465,60 @@ fun parseGoLogLine(line: String): String? {
|
||||
return if (content.isNullOrBlank()) null else content
|
||||
}
|
||||
|
||||
fun parseAnsi(text: String): AnnotatedString {
|
||||
|
||||
fun parseAnsi(text: String, defaultColor: Color): AnnotatedString {
|
||||
val regex = Regex("\u001B\\[(\\d+)(;\\d+)*m")
|
||||
val builder = buildAnnotatedString {
|
||||
var lastIndex = 0
|
||||
var currentColor = Color.Black
|
||||
var currentColor = defaultColor
|
||||
|
||||
for (match in regex.findAll(text)) {
|
||||
val start = match.range.first
|
||||
|
||||
// 1. Thêm phần text TRƯỚC mã ANSI với màu HIỆN TẠI
|
||||
val before = text.substring(lastIndex, start)
|
||||
withStyle(SpanStyle(color = currentColor)) {
|
||||
append(before)
|
||||
if (before.isNotEmpty()) {
|
||||
withStyle(SpanStyle(color = currentColor)) {
|
||||
append(before)
|
||||
}
|
||||
}
|
||||
|
||||
val code = match.groupValues[1].toInt()
|
||||
currentColor = when (code) {
|
||||
30 -> {
|
||||
Color.Black
|
||||
}
|
||||
31 -> {
|
||||
Color.Red
|
||||
}
|
||||
32 -> {
|
||||
Color(0xFF00C853)
|
||||
}
|
||||
33 -> {
|
||||
Color(0xFFFFD600)
|
||||
}
|
||||
34 -> {
|
||||
Color(0xFF2962FF)
|
||||
}
|
||||
35 -> {
|
||||
Color(0xFFD500F9)
|
||||
}
|
||||
36 -> {
|
||||
Color(0xFF00B8D4)
|
||||
}
|
||||
// 2. Lấy mã code (ví dụ 31, 36, hoặc 0)
|
||||
val code = try {
|
||||
match.groupValues[1].toInt()
|
||||
} catch (e: NumberFormatException) {
|
||||
0
|
||||
}
|
||||
|
||||
37 -> {
|
||||
Color.White
|
||||
}
|
||||
else -> {
|
||||
Color.Black
|
||||
}
|
||||
currentColor = when (code) {
|
||||
0 -> defaultColor
|
||||
30 -> Color.Black
|
||||
31 -> Color.Red
|
||||
32 -> Color(0xFF00C853) // Green
|
||||
33 -> Color(0xFFFFD600) // Yellow
|
||||
34 -> Color(0xFF2962FF) // Blue
|
||||
35 -> Color(0xFFD500F9) // Magenta
|
||||
36 -> Color(0xFF00B8D4) // Cyan
|
||||
37 -> Color.White
|
||||
else -> currentColor
|
||||
}
|
||||
|
||||
lastIndex = match.range.last + 1
|
||||
}
|
||||
|
||||
val remain = text.substring(lastIndex)
|
||||
withStyle(SpanStyle(color = currentColor)) {
|
||||
append(remain)
|
||||
if (lastIndex < text.length) {
|
||||
val remain = text.substring(lastIndex)
|
||||
if (remain.isNotEmpty()) {
|
||||
withStyle(SpanStyle(color = currentColor)) {
|
||||
append(remain)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return builder
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun LogPopup(
|
||||
onDismiss: () -> Unit
|
||||
@@ -512,6 +552,8 @@ fun LogPopup(
|
||||
}
|
||||
}
|
||||
|
||||
val defaultTextColor = LocalContentColor.current
|
||||
|
||||
Dialog(onDismissRequest = { onDismiss() }) {
|
||||
Surface(
|
||||
shape = RoundedCornerShape(12.dp),
|
||||
@@ -531,8 +573,15 @@ fun LogPopup(
|
||||
LazyColumn(state = listState, modifier = Modifier.weight(1f)) {
|
||||
items(logs.size) { index ->
|
||||
Text(
|
||||
text = parseAnsi(logs[index]),
|
||||
text = parseAnsi(logs[index], defaultTextColor),
|
||||
fontSize = 12.sp,
|
||||
|
||||
// 2. DÙNG FONT MONOSPACE
|
||||
fontFamily = FontFamily.Monospace,
|
||||
|
||||
// 3. (Tuỳ chọn) Giảm chiều cao dòng để logo liền mạch
|
||||
lineHeight = 14.sp,
|
||||
|
||||
modifier = Modifier.padding(vertical = 2.dp)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"latest_version": "3.6.4-01",
|
||||
"changelog": "UPDATE: Update to 3.6.54",
|
||||
"apk_url": "https://git.kain.io.vn/Firefly-Shelter/FireflyGo_Android/releases/download/3.6.4-01/firefly_go_android.apk"
|
||||
"latest_version": "4.1.4-04",
|
||||
"changelog": "UPDATE: Custom lineup",
|
||||
"apk_url": "https://git.kain.io.vn/Firefly-Shelter/FireflyGo_Android/releases/download/4.1.4-04/firefly_go_android.apk"
|
||||
}
|
||||
@@ -1,184 +0,0 @@
|
||||
{
|
||||
"leader": 0,
|
||||
"lineups": {
|
||||
"0": 1413,
|
||||
"1": 1415,
|
||||
"2": 1409,
|
||||
"3": 1407
|
||||
},
|
||||
"position": {
|
||||
"x": 218004,
|
||||
"z": 259263,
|
||||
"y": 53915,
|
||||
"rot_y": 79863
|
||||
},
|
||||
"scene": {
|
||||
"plane_id": 20423,
|
||||
"floor_id": 20423001,
|
||||
"entry_id": 2042301
|
||||
},
|
||||
"player_outfit": [
|
||||
1001
|
||||
],
|
||||
"char_path": {
|
||||
"main": 8008,
|
||||
"march_7": 1224
|
||||
},
|
||||
"char_enhanced": {
|
||||
"1005": 1,
|
||||
"1006": 1,
|
||||
"1205": 1,
|
||||
"1212": 1
|
||||
},
|
||||
"challenge": {
|
||||
"challenge_id": 0,
|
||||
"skip_half": 0,
|
||||
"blessings": [],
|
||||
"is_in_challenge": false,
|
||||
"current_stage_id": 30118121,
|
||||
"path_resonance_id": 0,
|
||||
"maze_buff": 0,
|
||||
"first_lineup": [],
|
||||
"second_lineup": []
|
||||
},
|
||||
"challenge_peak": {
|
||||
"current_mode": "Knight",
|
||||
"group_id": 2,
|
||||
"is_in_challenge_peak": false,
|
||||
"challenge_peak_data": {
|
||||
"1": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 104,
|
||||
"blessing": 3033006,
|
||||
"lineup": [
|
||||
1413,
|
||||
1409,
|
||||
1407,
|
||||
1403
|
||||
],
|
||||
"stage_id": 30501022,
|
||||
"is_hard_mode": true
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 103,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1222,
|
||||
1225,
|
||||
1310,
|
||||
1303
|
||||
],
|
||||
"stage_id": 30501011,
|
||||
"challenge_id": 101
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1412,
|
||||
1414,
|
||||
1408,
|
||||
1313
|
||||
],
|
||||
"stage_id": 30501012,
|
||||
"challenge_id": 102
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1407,
|
||||
1403,
|
||||
1409,
|
||||
1413
|
||||
],
|
||||
"stage_id": 30501013,
|
||||
"challenge_id": 103
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"checkmate_data": {
|
||||
"challenge_id": 204,
|
||||
"blessing": 3033021,
|
||||
"lineup": [
|
||||
1415,
|
||||
1413,
|
||||
1409,
|
||||
1407
|
||||
],
|
||||
"stage_id": 30502022,
|
||||
"is_hard_mode": true
|
||||
},
|
||||
"knight_data": {
|
||||
"current_challenge_id": 203,
|
||||
"details_data": [
|
||||
{
|
||||
"lineup": [
|
||||
1302,
|
||||
1309,
|
||||
1410
|
||||
],
|
||||
"stage_id": 30502011,
|
||||
"challenge_id": 201
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1221,
|
||||
1222
|
||||
],
|
||||
"stage_id": 30502012,
|
||||
"challenge_id": 202
|
||||
},
|
||||
{
|
||||
"lineup": [
|
||||
1415,
|
||||
8001,
|
||||
1414,
|
||||
1313
|
||||
],
|
||||
"stage_id": 30502013,
|
||||
"challenge_id": 203
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"theory_craft": {
|
||||
"hp": {
|
||||
"1": [
|
||||
200000,
|
||||
1000000,
|
||||
200000
|
||||
],
|
||||
"2": [
|
||||
500000,
|
||||
10000000,
|
||||
500000
|
||||
]
|
||||
},
|
||||
"cycle_count": 1,
|
||||
"mode": true
|
||||
},
|
||||
"profile_data": {
|
||||
"cur_chat_bubble_id": 220008,
|
||||
"cur_phone_theme_id": 221012,
|
||||
"cur_phone_case_id": 254001,
|
||||
"cur_pam_skin_id": 252000,
|
||||
"cur_pet_id": 1003,
|
||||
"cur_avatar_player_icon": 202034,
|
||||
"cur_player_personal_card": 253001,
|
||||
"cur_signature": "Firefly GO By Kain",
|
||||
"cur_display_avatar": [
|
||||
1310,
|
||||
1309,
|
||||
1407,
|
||||
1413,
|
||||
1412
|
||||
],
|
||||
"cur_is_display_avatar": true
|
||||
},
|
||||
"skin_data": {
|
||||
"1001": 1100101,
|
||||
"1310": 1131001
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"CNBETAAndroid3.6.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12056690_16bfd67c199f_f3c0367d7b051e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a"
|
||||
},
|
||||
"CNBETAWin3.6.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12056690_16bfd67c199f_f3c0367d7b051e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a"
|
||||
},
|
||||
"CNBETAiOS3.6.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12056690_16bfd67c199f_f3c0367d7b051e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a"
|
||||
},
|
||||
"OSBETAAndroid3.6.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12056690_16bfd67c199f_f3c0367d7b051e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a"
|
||||
},
|
||||
"OSBETAWin3.6.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12056690_16bfd67c199f_f3c0367d7b051e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a"
|
||||
},
|
||||
"OSBETAiOS3.6.51": {
|
||||
"asset_bundle_url": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12066992_f083970b907e_999074cab6dce6",
|
||||
"asset_bundle_url_b": "https://autopatchcn.bhsr.com/asb/BetaLive/output_12056690_16bfd67c199f_f3c0367d7b051e",
|
||||
"ex_resource_url": "https://autopatchcn.bhsr.com/design_data/BetaLive/output_12114942_e99cbde25134_e63a6b835f17f9",
|
||||
"lua_url": "https://autopatchcn.bhsr.com/lua/BetaLive/output_12103115_ee78155e9867_3626f0948d93e2",
|
||||
"ifix_url": "https://autopatchcn.bhsr.com/ifix/BetaLive/output_12118783_55113408814f_c874267d04c04a"
|
||||
}
|
||||
}
|
||||
@@ -23,3 +23,5 @@ kotlin.code.style=official
|
||||
# thereby reducing the size of the R class for that library
|
||||
android.nonTransitiveRClass=true
|
||||
#org.gradle.configuration-cache=false
|
||||
android.r8.optimizedResourceShrinking=true
|
||||
org.gradle.java.installations.auto-download=true
|
||||
13
gradle/gradle-daemon-jvm.properties
Normal file
13
gradle/gradle-daemon-jvm.properties
Normal file
@@ -0,0 +1,13 @@
|
||||
#This file is generated by updateDaemonJvm
|
||||
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect
|
||||
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/398ffe3949748bfb1d5636f023d228fd/redirect
|
||||
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect
|
||||
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/398ffe3949748bfb1d5636f023d228fd/redirect
|
||||
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e99bae143b75f9a10ead10248f02055e/redirect
|
||||
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/658299a896470fbb3103ba3a430ee227/redirect
|
||||
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect
|
||||
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/398ffe3949748bfb1d5636f023d228fd/redirect
|
||||
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/248ffb1098f61659502d0c09aa348294/redirect
|
||||
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/932015f6361ccaead0c6d9b8717ed96e/redirect
|
||||
toolchainVendor=JETBRAINS
|
||||
toolchainVersion=21
|
||||
@@ -2,23 +2,24 @@
|
||||
activityComposeVersion = "1.11.0"
|
||||
agp = "8.13.0"
|
||||
androidxJunit = "1.3.0"
|
||||
animationCore = "1.9.2"
|
||||
animationCore = "1.9.3"
|
||||
autoupdater = "1.0.1"
|
||||
espressoCoreVersion = "3.7.0"
|
||||
foundation = "1.9.2"
|
||||
foundation = "1.9.3"
|
||||
kotlin = "2.2.20"
|
||||
coreKtx = "1.17.0"
|
||||
junit = "4.13.2"
|
||||
lifecycleRuntimeKtxVersion = "2.9.4"
|
||||
material = "1.9.2"
|
||||
material = "1.9.3"
|
||||
material3WindowSizeClass = "1.4.0"
|
||||
materialIconsExtended = "1.7.8"
|
||||
ui = "1.9.2"
|
||||
uiGraphics = "1.9.2"
|
||||
uiTestJunit4 = "1.9.2"
|
||||
uiTestManifest = "1.9.2"
|
||||
uiTooling = "1.9.2"
|
||||
uiToolingPreview = "1.9.2"
|
||||
slf4jAndroidVersion = "1.7.36"
|
||||
ui = "1.9.3"
|
||||
uiGraphics = "1.9.3"
|
||||
uiTestJunit4 = "1.9.3"
|
||||
uiTestManifest = "1.9.3"
|
||||
uiTooling = "1.9.3"
|
||||
uiToolingPreview = "1.9.3"
|
||||
|
||||
[libraries]
|
||||
androidx-activity-compose-v1101 = { module = "androidx.activity:activity-compose", version.ref = "activityComposeVersion" }
|
||||
@@ -35,6 +36,7 @@ androidx-material3-window-size-class1 = { module = "androidx.compose.material3:m
|
||||
autoupdater = { module = "com.github.CSAbhiOnline:AutoUpdater", version.ref = "autoupdater" }
|
||||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||
material3 = { module = "androidx.compose.material3:material3", version.ref = "material3WindowSizeClass" }
|
||||
slf4j-android = { module = "org.slf4j:slf4j-android", version.ref = "slf4jAndroidVersion" }
|
||||
ui = { module = "androidx.compose.ui:ui", version.ref = "ui" }
|
||||
ui-graphics = { module = "androidx.compose.ui:ui-graphics", version.ref = "uiGraphics" }
|
||||
ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "uiTestJunit4" }
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
# Changelog
|
||||
## - UPDATE: Update to 3.6.54
|
||||
|
||||
## - UPDATE: Support 4.1.5X
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"tag": "3.6.4-01",
|
||||
"title": "PreBuild Version 3.6.54 - 01"
|
||||
"tag": "4.1.4-04",
|
||||
"title": "PreBuild Version 4.1.54 - 04"
|
||||
}
|
||||
|
||||
@@ -15,6 +15,9 @@ pluginManagement {
|
||||
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.10.0"
|
||||
}
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
|
||||
Reference in New Issue
Block a user