mirror of
https://github.com/ReVanced/revanced-manager
synced 2026-04-25 17:15:36 +02:00
fix: Handle prerelease status when fetching changelogs
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 ""
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user