Skip to content

Commit 08cec67

Browse files
committed
feat: Toggle to use pre-release versions of ReVanced Patches
1 parent 95fb97e commit 08cec67

File tree

5 files changed

+35
-2
lines changed

5 files changed

+35
-2
lines changed

app/src/main/java/app/revanced/manager/domain/manager/PreferencesManager.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class PreferencesManager(
2323
val managerAutoUpdates = booleanPreference("manager_auto_updates", false)
2424
val showManagerUpdateDialogOnLaunch = booleanPreference("show_manager_update_dialog_on_launch", true)
2525
val useManagerPrereleases = booleanPreference("manager_prereleases", false)
26+
val usePatchesPrereleases = booleanPreference("patches_prereleases", false)
2627

2728
val disablePatchVersionCompatCheck = booleanPreference("disable_patch_version_compatibility_check", false)
2829
val disableSelectionWarning = booleanPreference("disable_selection_warning", false)

app/src/main/java/app/revanced/manager/network/api/ReVancedAPI.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class ReVancedAPI(
3535
suspend fun getLatestAppInfo() =
3636
request<ReVancedAsset>("manager?prerelease=${prefs.useManagerPrereleases.get()}")
3737

38-
suspend fun getPatchesUpdate() = request<ReVancedAsset>("patches")
38+
suspend fun getPatchesUpdate() = request<ReVancedAsset>("patches?prerelease=${prefs.usePatchesPrereleases.get()}")
3939

4040
suspend fun getContributors() = request<List<ReVancedGitRepository>>("contributors")
4141

app/src/main/java/app/revanced/manager/ui/component/bundle/BundleInformationDialog.kt

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import app.revanced.manager.domain.bundles.LocalPatchBundle
4545
import app.revanced.manager.domain.bundles.PatchBundleSource
4646
import app.revanced.manager.domain.bundles.PatchBundleSource.Extensions.asRemoteOrNull
4747
import app.revanced.manager.domain.bundles.PatchBundleSource.Extensions.isDefault
48+
import app.revanced.manager.domain.manager.PreferencesManager
4849
import app.revanced.manager.domain.repository.PatchBundleRepository
4950
import app.revanced.manager.ui.component.ColumnWithScrollbar
5051
import app.revanced.manager.ui.component.ExceptionViewerDialog
@@ -65,12 +66,14 @@ fun BundleInformationDialog(
6566
) {
6667
val bundleRepo = koinInject<PatchBundleRepository>()
6768
val networkInfo = koinInject<NetworkInfo>()
69+
val prefs = koinInject<PreferencesManager>()
6870
val hasNetwork = remember { networkInfo.isConnected() }
6971
val composableScope = rememberCoroutineScope()
7072
var viewCurrentBundlePatches by remember { mutableStateOf(false) }
7173
val isLocal = src is LocalPatchBundle
7274
val bundleManifestAttributes = src.patchBundle?.manifestAttributes
73-
val (autoUpdate, endpoint) = src.asRemoteOrNull?.let { it.autoUpdate to it.endpoint } ?: (null to null)
75+
val (autoUpdate, endpoint) = src.asRemoteOrNull?.let { it.autoUpdate to it.endpoint }
76+
?: (null to null)
7477

7578
fun onAutoUpdateChange(new: Boolean) = composableScope.launch {
7679
with(bundleRepo) {
@@ -173,6 +176,32 @@ fun BundleInformationDialog(
173176
)
174177
}
175178

179+
if (src.isDefault) {
180+
val usePrereleases by prefs.usePatchesPrereleases.getAsState()
181+
182+
BundleListItem(
183+
headlineText = stringResource(R.string.patches_prereleases),
184+
supportingText = stringResource(R.string.patches_prereleases_description),
185+
trailingContent = {
186+
HapticSwitch(
187+
checked = usePrereleases,
188+
onCheckedChange = {
189+
composableScope.launch {
190+
prefs.usePatchesPrereleases.update(
191+
it
192+
)
193+
}
194+
}
195+
)
196+
},
197+
modifier = Modifier.clickable {
198+
composableScope.launch {
199+
prefs.usePatchesPrereleases.update(!usePrereleases)
200+
}
201+
}
202+
)
203+
}
204+
176205
endpoint?.takeUnless { src.isDefault }?.let { url ->
177206
var showUrlInputDialog by rememberSaveable {
178207
mutableStateOf(false)

app/src/main/java/app/revanced/manager/ui/viewmodel/MainViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ class MainViewModel(
122122
}
123123
settings.usePrereleases?.let { prereleases ->
124124
prefs.useManagerPrereleases.update(prereleases)
125+
prefs.usePatchesPrereleases.update(prereleases)
125126
}
126127
settings.apiUrl?.let { api ->
127128
prefs.api.update(api.removeSuffix("/"))

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,8 @@
437437
<string name="auto_update">Auto update</string>
438438
<string name="add_patches">Add patches</string>
439439
<string name="auto_update_description">Automatically update when a new version is available</string>
440+
<string name="patches_prereleases">Prereleases</string>
441+
<string name="patches_prereleases_description">Use prerelease versions</string>
440442
<string name="patches_url">Patches URL</string>
441443
<string name="incompatible_patches_dialog">These patches are not compatible with the selected app version (%1$s).\n\nClick on the patches to see more details.</string>
442444
<string name="incompatible_patch">Incompatible patch</string>

0 commit comments

Comments
 (0)