feat: import settings on login page

This commit is contained in:
rebelonion 2024-02-04 03:59:52 -06:00
parent d80b250650
commit 7a67fbb980
6 changed files with 123 additions and 4 deletions

View file

@ -74,7 +74,6 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene
lateinit var binding: ActivitySettingsBinding
private val extensionInstaller = Injekt.get<BasePreferences>().extensionInstaller()
private var cursedCounter = 0
private var tempPassword: CharArray? = null
@OptIn(UnstableApi::class)
@SuppressLint("SetTextI18n", "Recycle")

View file

@ -242,6 +242,13 @@ object PrefManager {
)
}
/**
* @param prefs Map of preferences to import
* @param prefLocation Location to import to
* @return true if successful, false if error
*/
@Suppress("UNCHECKED_CAST")
fun importAllPrefs(prefs: Map<String, *>, prefLocation: Location): Boolean {
val pref = getPrefLocation(prefLocation)

View file

@ -64,14 +64,17 @@ class PreferencePackager {
}
/**
* @return true if successful, false if error
*/
private fun unpackagePreferences(map: Map<String, Map<String, *>>): Boolean {
var failed = false
var success = true
map.forEach { (location, prefMap) ->
val locationEnum = locationFromString(location)
if (!PrefManager.importAllPrefs(prefMap, locationEnum))
failed = true
success = false
}
return failed
return success
}
private fun locationFromString(location: String): Location {