fix: Handle prerelease status when fetching changelogs

This commit is contained in:
Ushie
2026-03-22 18:35:50 +03:00
parent 118092c867
commit 742e6e8e78
3 changed files with 20 additions and 9 deletions

View File

@@ -11,10 +11,9 @@ import kotlinx.serialization.Serializable
@Parcelize
@Serializable
sealed interface ChangelogSource : Parcelable {
data object Manager : ChangelogSource {
}
data class Patches(val url: String) : ChangelogSource {
val baseUrl get() = url.toUri().let { "${it.scheme}://${it.host}" }
data object Manager : ChangelogSource
data class Patches(val url: String, val prerelease: Boolean) : ChangelogSource {
val baseUrl by lazy { url.toUri().let { "${it.scheme}://${it.host}" } }
}
}
@@ -33,7 +32,7 @@ class ChangelogsRepository(
api.getAppHistory().getOrThrow()
is ChangelogSource.Patches ->
api.getPatchesHistory(source.baseUrl).getOrThrow()
api.getPatchesHistory(source.baseUrl, source.prerelease).getOrThrow()
}
page = 1

View File

@@ -49,12 +49,12 @@ class ReVancedAPI(
suspend fun getLatestAppInfo() =
request<ReVancedAsset>("manager${prefs.useManagerPrereleases.prereleaseString()}")
suspend fun getAppHistory() = request<List<ReVancedAssetHistory>>("manager/history")
suspend fun getAppHistory() = request<List<ReVancedAssetHistory>>("manager/history${prefs.useManagerPrereleases.prereleaseString()}")
suspend fun getPatchesUpdate() = request<ReVancedAsset>("patches${prefs.usePatchesPrereleases.prereleaseString()}")
suspend fun getPatchesHistory(apiUrl: String) =
request<List<ReVancedAssetHistory>>(apiUrl, defaultApiVersion, "patches/history")
suspend fun getPatchesHistory(apiUrl: String, prerelease: Boolean) =
request<List<ReVancedAssetHistory>>(apiUrl, defaultApiVersion, "patches/history${prerelease.prereleaseString()}")
suspend fun getDownloaderUpdate() = request<ReVancedAsset>("manager/downloaders${prefs.useDownloaderPrerelease.prereleaseString()}")
@@ -64,5 +64,6 @@ class ReVancedAPI(
private companion object {
suspend fun Preference<Boolean>.prereleaseString() = if (get()) "/prerelease" else ""
fun Boolean.prereleaseString() = if (this) "/prerelease" else ""
}
}

View File

@@ -315,7 +315,18 @@ fun BundleInformationScreen(
SettingsListItem(
headlineContent = stringResource(R.string.changelog),
onClick = {
onChangelogClick(ChangelogSource.Patches(if (src.isDefault) viewModel.prefs.api.getBlocking() else endpoint))
val source = if (src.isDefault) {
ChangelogSource.Patches(
url = viewModel.prefs.api.getBlocking(),
prerelease = viewModel.prefs.usePatchesPrereleases.getBlocking()
)
} else {
ChangelogSource.Patches(
url = endpoint,
prerelease = false
)
}
onChangelogClick(source)
},
)
}