Don't restore the storage provider app

otherwise it gets killed during data restore which kills our restore process
This commit is contained in:
Torsten Grote 2024-06-18 10:21:35 -03:00
parent 22ca2550c2
commit 97093ca0b2
No known key found for this signature in database
GPG key ID: 3E5F77D92CF891FF
2 changed files with 10 additions and 3 deletions

View file

@ -24,6 +24,7 @@ import com.stevesoltys.seedvault.NO_DATA_END_SENTINEL
import com.stevesoltys.seedvault.R
import com.stevesoltys.seedvault.metadata.PackageMetadataMap
import com.stevesoltys.seedvault.metadata.PackageState
import com.stevesoltys.seedvault.plugins.StoragePluginManager
import com.stevesoltys.seedvault.restore.install.isInstalled
import com.stevesoltys.seedvault.settings.SettingsManager
import com.stevesoltys.seedvault.transport.TRANSPORT_ID
@ -54,6 +55,7 @@ internal class AppDataRestoreManager(
private val backupManager: IBackupManager,
private val settingsManager: SettingsManager,
private val restoreCoordinator: RestoreCoordinator,
private val storagePluginManager: StoragePluginManager,
) {
private var session: IRestoreSession? = null
@ -97,12 +99,16 @@ internal class AppDataRestoreManager(
return
}
val providerPackageName = storagePluginManager.appPlugin.providerPackageName
val observer = RestoreObserver(
restoreCoordinator = restoreCoordinator,
restorableBackup = restorableBackup,
session = session,
// sort packages (reverse) alphabetically, since we move from bottom to top
packages = restorableBackup.packageMetadataMap.packagesSortedByNameDescending,
packages = restorableBackup.packageMetadataMap.packagesSortedByNameDescending.filter {
// filter out current plugin package name, so it doesn't kill our restore
it != providerPackageName
},
monitor = monitor,
)

View file

@ -71,8 +71,9 @@ internal class RestoreViewModel(
private val appSelectionManager =
AppSelectionManager(app, pluginManager, iconManager, viewModelScope)
private val appDataRestoreManager =
AppDataRestoreManager(app, backupManager, settingsManager, restoreCoordinator)
private val appDataRestoreManager = AppDataRestoreManager(
app, backupManager, settingsManager, restoreCoordinator, pluginManager
)
private val mDisplayFragment = MutableLiveEvent<DisplayFragment>()
internal val displayFragment: LiveEvent<DisplayFragment> = mDisplayFragment