diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-12-09 19:12:32 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-12-09 19:12:32 +0300 |
commit | a2cd1b556c806c2521924b62eada5751585b1c86 (patch) | |
tree | 19bff1e5630aac90e3e63c3dbb75fb0a94c3d6af /app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java | |
parent | 12781a2ec9e0b8f0e8048a41d187176dbed4afc4 (diff) |
Decouple SyncManager from UIs and use ViewModel between them
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java new file mode 100644 index 000000000..66e9d3850 --- /dev/null +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java @@ -0,0 +1,45 @@ +package it.niedermann.nextcloud.deck.ui.manageaccounts; + +import android.app.Application; + +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.LiveData; + +import com.nextcloud.android.sso.helper.SingleAccountHelper; + +import java.util.List; + +import it.niedermann.nextcloud.deck.model.Account; +import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; + +import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentAccountId; + +@SuppressWarnings("WeakerAccess") +public class ManageAccountsViewModel extends AndroidViewModel { + + private SyncManager syncManager; + + public ManageAccountsViewModel(@NonNull Application application) { + super(application); + this.syncManager = new SyncManager(application); + } + + public LiveData<Account> readAccount(long id) { + return syncManager.readAccount(id); + } + + public LiveData<List<Account>> readAccounts() { + return syncManager.readAccounts(); + } + + public void setNewAccount(@NonNull Account account) { + SingleAccountHelper.setCurrentAccount(getApplication(), account.getName()); + syncManager = new SyncManager(getApplication()); + saveCurrentAccountId(getApplication(), account.getId()); + } + + public void deleteAccount(long id) { + syncManager.deleteAccount(id); + } +} |