diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt b/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt index ac2a7d89..6acb26ab 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt @@ -135,7 +135,6 @@ class Amber : Application() { } runMigrations() - startService() } fun runMigrations() { @@ -154,6 +153,8 @@ class Amber : Application() { } LocalPreferences.migrateTorSettings(this@Amber) settings = LocalPreferences.loadSettingsFromEncryptedStorage() + LocalPreferences.reloadApp() + startService() } } diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt b/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt index 4e5898dc..3ddee6b4 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt @@ -194,6 +194,20 @@ object LocalPreferences { } } + suspend fun reloadApp() { + val context = Amber.instance + val job = context.applicationIOScope.launch { + currentAccount = null + savedAccounts = null + accountCache.evictAll() + allSavedAccounts(context).forEach { + loadFromEncryptedStorage(context, it.npub) + } + context.settings = loadSettingsFromEncryptedStorage(context) + } + job.join() + } + fun loadSettingsFromEncryptedStorage(context: Context = Amber.instance): AmberSettings { checkNotInMainThread() sharedPrefs(context).apply {