mirror of
https://github.com/geode-sdk/android-launcher.git
synced 2026-10-22 08:42:38 +00:00
add index release api opt in
This commit is contained in:
6 files changed
+25
-5
No files matched your search
@@ -14,12 +14,12 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdk = 35
|
compileSdk = 36
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "com.geode.launcher"
|
applicationId = "com.geode.launcher"
|
||||||
minSdk = 23
|
minSdk = 23
|
||||||
targetSdk = 35
|
targetSdk = 36
|
||||||
versionCode = 21
|
versionCode = 21
|
||||||
versionName = "1.6.0"
|
versionName = "1.6.0"
|
||||||
|
|
||||||
|
|||||||
@@ -146,6 +146,11 @@ fun DeveloperSettingsScreen(onBackPressedDispatcher: OnBackPressedDispatcher?) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
OptionsGroup(title = stringResource(R.string.preference_category_updater)) {
|
OptionsGroup(title = stringResource(R.string.preference_category_updater)) {
|
||||||
|
SettingsCard(
|
||||||
|
title = stringResource(R.string.preference_use_index_update_api),
|
||||||
|
preferenceKey = PreferenceUtils.Key.USE_INDEX_API
|
||||||
|
)
|
||||||
|
|
||||||
SettingsSelectCard(
|
SettingsSelectCard(
|
||||||
title = stringResource(R.string.preference_release_channel_tag_name),
|
title = stringResource(R.string.preference_release_channel_tag_name),
|
||||||
dialogTitle = stringResource(R.string.preference_release_channel_select),
|
dialogTitle = stringResource(R.string.preference_release_channel_select),
|
||||||
|
|||||||
@@ -120,6 +120,17 @@ class ReleaseManager private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val gameVersion = GamePackageUtils.getGameVersionCode(applicationContext.packageManager)
|
val gameVersion = GamePackageUtils.getGameVersionCode(applicationContext.packageManager)
|
||||||
|
val preferences = PreferenceUtils.get(applicationContext)
|
||||||
|
|
||||||
|
if (preferences.getBoolean(PreferenceUtils.Key.USE_INDEX_API)) {
|
||||||
|
val targetTag = preferences.getInt(PreferenceUtils.Key.RELEASE_CHANNEL_TAG)
|
||||||
|
|
||||||
|
return when (targetTag) {
|
||||||
|
2 -> releaseRepository.getReleaseByTag("nightly")
|
||||||
|
1 -> releaseRepository.getLatestIndexRelease(gameVersion, true)
|
||||||
|
else -> releaseRepository.getLatestIndexRelease(gameVersion, false)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
val targetTag = getBestReleaseForGameVersion(gameVersion) ?: return null
|
val targetTag = getBestReleaseForGameVersion(gameVersion) ?: return null
|
||||||
|
|
||||||
return when (targetTag) {
|
return when (targetTag) {
|
||||||
@@ -128,6 +139,7 @@ class ReleaseManager private constructor(
|
|||||||
else -> releaseRepository.getReleaseByTag(targetTag)
|
else -> releaseRepository.getReleaseByTag(targetTag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private suspend fun downloadLauncherUpdate(release: Downloadable) {
|
private suspend fun downloadLauncherUpdate(release: Downloadable) {
|
||||||
val download = release.getDownload() ?: return
|
val download = release.getDownload() ?: return
|
||||||
|
|||||||
@@ -165,10 +165,10 @@ class ReleaseRepository(private val httpClient: OkHttpClient) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalSerializationApi::class)
|
@OptIn(ExperimentalSerializationApi::class)
|
||||||
suspend fun getLatestIndexRelease(gd: String, prerelease: Boolean = false): DownloadableLoaderRelease? {
|
suspend fun getLatestIndexRelease(gd: Long, prerelease: Boolean = false): DownloadableLoaderRelease? {
|
||||||
val url = "$GEODE_API_BASE/loader/versions/latest".toHttpUrlOrNull()!!
|
val url = "$GEODE_API_BASE/loader/versions/latest".toHttpUrlOrNull()!!
|
||||||
.newBuilder()
|
.newBuilder()
|
||||||
.addQueryParameter("gd", gd)
|
.addQueryParameter("gd", gd.toString())
|
||||||
.addQueryParameter("platform", "android")
|
.addQueryParameter("platform", "android")
|
||||||
.addQueryParameter("prerelease", prerelease.toString())
|
.addQueryParameter("prerelease", prerelease.toString())
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
@@ -147,7 +147,8 @@ class PreferenceUtils(private val sharedPreferences: SharedPreferences) {
|
|||||||
CUSTOM_ASPECT_RATIO,
|
CUSTOM_ASPECT_RATIO,
|
||||||
SCREEN_ZOOM,
|
SCREEN_ZOOM,
|
||||||
SCREEN_ZOOM_FIT,
|
SCREEN_ZOOM_FIT,
|
||||||
LIMIT_FRAME_RATE
|
LIMIT_FRAME_RATE,
|
||||||
|
USE_INDEX_API,
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun defaultValueForBooleanKey(key: Key): Boolean {
|
private fun defaultValueForBooleanKey(key: Key): Boolean {
|
||||||
@@ -195,6 +196,7 @@ class PreferenceUtils(private val sharedPreferences: SharedPreferences) {
|
|||||||
Key.SCREEN_ZOOM -> "PreferenceScreenZoom"
|
Key.SCREEN_ZOOM -> "PreferenceScreenZoom"
|
||||||
Key.SCREEN_ZOOM_FIT -> "PreferenceScreenZoomFit"
|
Key.SCREEN_ZOOM_FIT -> "PreferenceScreenZoomFit"
|
||||||
Key.LIMIT_FRAME_RATE -> "PreferenceLimitFrameRate"
|
Key.LIMIT_FRAME_RATE -> "PreferenceLimitFrameRate"
|
||||||
|
Key.USE_INDEX_API -> "PreferenceUseIndexApi"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -254,4 +254,5 @@
|
|||||||
|
|
||||||
<string name="preference_override_exceptions_name">Custom exceptions fix symbols</string>
|
<string name="preference_override_exceptions_name">Custom exceptions fix symbols</string>
|
||||||
<string name="preference_override_exceptions_description">Uses exception_symbols.txt to patch</string>
|
<string name="preference_override_exceptions_description">Uses exception_symbols.txt to patch</string>
|
||||||
|
<string name="preference_use_index_update_api">Use index release API</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in new issue
Block a user