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 {
|
||||
compileSdk = 35
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.geode.launcher"
|
||||
minSdk = 23
|
||||
targetSdk = 35
|
||||
targetSdk = 36
|
||||
versionCode = 21
|
||||
versionName = "1.6.0"
|
||||
|
||||
|
||||
@@ -146,6 +146,11 @@ fun DeveloperSettingsScreen(onBackPressedDispatcher: OnBackPressedDispatcher?) {
|
||||
}
|
||||
|
||||
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(
|
||||
title = stringResource(R.string.preference_release_channel_tag_name),
|
||||
dialogTitle = stringResource(R.string.preference_release_channel_select),
|
||||
|
||||
@@ -120,6 +120,17 @@ class ReleaseManager private constructor(
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
return when (targetTag) {
|
||||
@@ -128,6 +139,7 @@ class ReleaseManager private constructor(
|
||||
else -> releaseRepository.getReleaseByTag(targetTag)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun downloadLauncherUpdate(release: Downloadable) {
|
||||
val download = release.getDownload() ?: return
|
||||
|
||||
@@ -165,10 +165,10 @@ class ReleaseRepository(private val httpClient: OkHttpClient) {
|
||||
}
|
||||
|
||||
@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()!!
|
||||
.newBuilder()
|
||||
.addQueryParameter("gd", gd)
|
||||
.addQueryParameter("gd", gd.toString())
|
||||
.addQueryParameter("platform", "android")
|
||||
.addQueryParameter("prerelease", prerelease.toString())
|
||||
.build()
|
||||
|
||||
@@ -147,7 +147,8 @@ class PreferenceUtils(private val sharedPreferences: SharedPreferences) {
|
||||
CUSTOM_ASPECT_RATIO,
|
||||
SCREEN_ZOOM,
|
||||
SCREEN_ZOOM_FIT,
|
||||
LIMIT_FRAME_RATE
|
||||
LIMIT_FRAME_RATE,
|
||||
USE_INDEX_API,
|
||||
}
|
||||
|
||||
private fun defaultValueForBooleanKey(key: Key): Boolean {
|
||||
@@ -195,6 +196,7 @@ class PreferenceUtils(private val sharedPreferences: SharedPreferences) {
|
||||
Key.SCREEN_ZOOM -> "PreferenceScreenZoom"
|
||||
Key.SCREEN_ZOOM_FIT -> "PreferenceScreenZoomFit"
|
||||
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_description">Uses exception_symbols.txt to patch</string>
|
||||
<string name="preference_use_index_update_api">Use index release API</string>
|
||||
</resources>
|
||||
Reference in new issue
Block a user