add index release api opt in

This commit is contained in:
Chloe committed 2025-05-03 03:16:29 -07:00
1 parent 67ca7707d8
commit 458c837aba
6 files changed
+30 -10

No files matched your search

+2 -2
View File
@@ -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,12 +120,24 @@ class ReleaseManager private constructor(
} }
val gameVersion = GamePackageUtils.getGameVersionCode(applicationContext.packageManager) val gameVersion = GamePackageUtils.getGameVersionCode(applicationContext.packageManager)
val targetTag = getBestReleaseForGameVersion(gameVersion) ?: return null val preferences = PreferenceUtils.get(applicationContext)
return when (targetTag) { if (preferences.getBoolean(PreferenceUtils.Key.USE_INDEX_API)) {
TAG_LATEST -> releaseRepository.getLatestGeodeRelease() val targetTag = preferences.getInt(PreferenceUtils.Key.RELEASE_CHANNEL_TAG)
TAG_BETA -> releaseRepository.getLatestGeodePreRelease()
else -> releaseRepository.getReleaseByTag(targetTag) 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) {
TAG_LATEST -> releaseRepository.getLatestGeodeRelease()
TAG_BETA -> releaseRepository.getLatestGeodePreRelease()
else -> releaseRepository.getReleaseByTag(targetTag)
}
} }
} }
@@ -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"
} }
} }
+1
View File
@@ -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>