Properly migrate existing users to new plugin setup

This commit is contained in:
Torsten Grote 2024-04-24 17:08:13 -03:00
parent a95ba41196
commit 0e51c00bca
No known key found for this signature in database
GPG key ID: 3E5F77D92CF891FF

View file

@ -102,11 +102,23 @@ class SettingsManager(private val context: Context) {
}
internal val storagePluginType: StoragePluginEnum?
get() = prefs.getString(PREF_KEY_STORAGE_PLUGIN, StoragePluginEnum.SAF.name)?.let {
try {
StoragePluginEnum.valueOf(it)
} catch (e: IllegalArgumentException) {
null
get() {
val savedType = prefs.getString(PREF_KEY_STORAGE_PLUGIN, null)
return if (savedType == null) {
// check if this is an existing user that needs to be migrated
// this check could be removed after a reasonable migration time (added 2024)
if (prefs.getString(PREF_KEY_STORAGE_URI, null) != null) {
prefs.edit()
.putString(PREF_KEY_STORAGE_PLUGIN, StoragePluginEnum.SAF.name)
.apply()
StoragePluginEnum.SAF
} else null
} else savedType.let {
try {
StoragePluginEnum.valueOf(it)
} catch (e: IllegalArgumentException) {
null
}
}
}