diff options
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java index d53cb130e..09592b7b7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java @@ -20,13 +20,13 @@ import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledExcepti import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogAccountSwitcherBinding; -import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.MainViewModel; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import it.niedermann.nextcloud.deck.ui.manageaccounts.ManageAccountsActivity; import it.niedermann.nextcloud.deck.util.ExceptionUtil; +import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; import static it.niedermann.nextcloud.deck.ui.MainActivity.ACTIVITY_MANAGE_ACCOUNTS; import static it.niedermann.nextcloud.deck.ui.branding.BrandedActivity.applyBrandToLayerDrawable; @@ -68,6 +68,11 @@ public class AccountSwitcherDialog extends BrandedDialogFragment { .apply(RequestOptions.circleCropTransform()) .into(binding.currentAccountItemAvatar); + observeOnce(syncManager.readAccounts(), requireActivity(), (accounts) -> { + accounts.remove(viewModel.getCurrentAccount()); + adapter.setAccounts(accounts); + }); + binding.accountLayout.setOnClickListener((v) -> dismiss()); adapter = new AccountSwitcherAdapter((localAccount -> { @@ -75,16 +80,6 @@ public class AccountSwitcherDialog extends BrandedDialogFragment { dismiss(); })); - syncManager.readAccounts().observe(requireActivity(), (localAccounts) -> { - for (Account localAccount : localAccounts) { - if (localAccount.getId() == viewModel.getCurrentAccount().getId()) { - localAccounts.remove(localAccount); - break; - } - } - adapter.setLocalAccounts(localAccounts); - }); - binding.accountsList.setAdapter(adapter); binding.addAccount.setOnClickListener((v) -> { |