Skip to content

Commit 0e9d85a

Browse files
authored
fix: Completely isolate patch options in Morphe and Expert modes (MorpheApp#90)
1 parent 25372f0 commit 0e9d85a

1 file changed

Lines changed: 15 additions & 20 deletions

File tree

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

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ fun removeMissingPatchesAndStart() {
595595
val flags = PackageManager.GET_SIGNING_CERTIFICATES or PackageManager.GET_SIGNATURES
596596
@Suppress("DEPRECATION")
597597
val pkgInfo = app.packageManager.getPackageArchiveInfo(file.absolutePath, flags) ?: return null
598-
598+
@Suppress("DEPRECATION")
599599
val signature: Signature? =
600600
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
601601
pkgInfo.signingInfo?.apkContentsSigners?.firstOrNull()
@@ -1619,6 +1619,7 @@ fun removeMissingPatchesAndStart() {
16191619
}
16201620

16211621
try {
1622+
@Suppress("DEPRECATION")
16221623
ContextCompat.startActivity(app, plan.intent, null)
16231624
} catch (error: ActivityNotFoundException) {
16241625
installerManager.cleanup(plan)
@@ -1661,7 +1662,7 @@ fun removeMissingPatchesAndStart() {
16611662
installerManager.cleanup(plan)
16621663
updateInstallingState(false)
16631664
stopInstallProgressToasts()
1664-
val installType = if (plan?.token is InstallerManager.Token.Component) InstallType.CUSTOM else InstallType.DEFAULT
1665+
val installType = if (plan.token is InstallerManager.Token.Component) InstallType.CUSTOM else InstallType.DEFAULT
16651666
markInstallSuccess(packageName)
16661667
suppressFailureAfterSuccess = true
16671668

@@ -1837,26 +1838,20 @@ fun removeMissingPatchesAndStart() {
18371838
val shouldPreserveInput =
18381839
selectedForRun is SelectedApp.Local && (selectedForRun.temporary || forceKeepLocalInput)
18391840

1840-
// Get patch options from PatchOptionsPreferencesManager based on package name
1841-
val patchOptions = runBlocking {
1842-
when (packageName) {
1843-
PACKAGE_YOUTUBE_MUSIC -> patchOptionsPrefs.exportYouTubeMusicPatchOptions()
1844-
else -> patchOptionsPrefs.exportYouTubePatchOptions()
1845-
}
1846-
}
1847-
1848-
// Merge with existing options from input
1849-
val mergedOptions = input.options.toMutableMap()
1850-
patchOptions.forEach { (bundleUid, bundlePatchOptions) ->
1851-
val existing = mergedOptions[bundleUid]?.toMutableMap() ?: mutableMapOf()
1841+
// Completely isolate Morphe and Expert modes
1842+
val useMorpheMode = prefs.useMorpheHomeScreen.getBlocking()
18521843

1853-
bundlePatchOptions.forEach { (patchName, patchOptionValues) ->
1854-
val existingPatch = existing[patchName]?.toMutableMap() ?: mutableMapOf()
1855-
existingPatch.putAll(patchOptionValues)
1856-
existing[patchName] = existingPatch
1844+
val mergedOptions = if (useMorpheMode) {
1845+
// Morphe mode: Use ONLY preferences manager options
1846+
runBlocking {
1847+
when (packageName) {
1848+
PACKAGE_YOUTUBE_MUSIC -> patchOptionsPrefs.exportYouTubeMusicPatchOptions()
1849+
else -> patchOptionsPrefs.exportYouTubePatchOptions()
1850+
}
18571851
}
1858-
1859-
mergedOptions[bundleUid] = existing
1852+
} else {
1853+
// Expert mode: Use ONLY input options
1854+
input.options
18601855
}
18611856

18621857
return PatcherWorker.Args(

0 commit comments

Comments
 (0)