Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73d91000 authored by cketti's avatar cketti
Browse files

Make `AccountManager.getAccountsFlow()` only return fully set up accounts

parent 14693afd
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -110,6 +110,9 @@ class Preferences internal constructor(
            }
        }

    private val completeAccounts: List<Account>
        get() = accounts.filter { it.isFinishedSetup }

    override fun getAccount(accountUuid: String): Account? {
        synchronized(accountLock) {
            if (accountsMap == null) {
@@ -151,10 +154,10 @@ class Preferences internal constructor(
    @OptIn(ExperimentalCoroutinesApi::class)
    override fun getAccountsFlow(): Flow<List<Account>> {
        return callbackFlow {
            send(accounts)
            send(completeAccounts)

            val listener = AccountsChangeListener {
                trySendBlocking(accounts)
                trySendBlocking(completeAccounts)
            }
            addOnAccountsChangeListener(listener)

+2 −3
Original line number Diff line number Diff line
@@ -77,11 +77,10 @@ class SettingsListFragment : Fragment(), ItemTouchCallback {

    private fun populateSettingsList() {
        viewModel.accounts.observeNotNull(this) { accounts ->
            val accountsFinishedSetup = accounts.filter { it.isFinishedSetup }
            if (accountsFinishedSetup.isEmpty()) {
            if (accounts.isEmpty()) {
                launchOnboarding()
            } else {
                populateSettingsList(accountsFinishedSetup)
                populateSettingsList(accounts)
            }
        }
    }