Mercury-IM/app/src/main/java/org/mercury_im/messenger/android/ui/account/list/AndroidAccountListViewModel.java

59 lines
2 KiB
Java
Raw Normal View History

2020-07-13 18:49:29 +02:00
package org.mercury_im.messenger.android.ui.account.list;
import android.app.Application;
import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
2020-06-06 18:45:20 +02:00
import org.mercury_im.messenger.android.MercuryImApplication;
2020-07-13 18:49:29 +02:00
import org.mercury_im.messenger.core.viewmodel.account.list.AccountViewItem;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.android.ui.base.MercuryAndroidViewModel;
2020-07-13 18:49:29 +02:00
import org.mercury_im.messenger.core.viewmodel.account.list.AccountListViewModel;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.inject.Inject;
2020-07-13 18:49:29 +02:00
public class AndroidAccountListViewModel extends AndroidViewModel implements MercuryAndroidViewModel<AccountListViewModel> {
2020-07-13 18:49:29 +02:00
private static final Logger LOGGER = Logger.getLogger(AndroidAccountListViewModel.class.getName());
private final MutableLiveData<List<AccountViewItem>> accounts = new MutableLiveData<>(Collections.emptyList());
@Inject
2020-07-13 18:49:29 +02:00
AccountListViewModel viewModel;
2020-07-13 18:49:29 +02:00
public AndroidAccountListViewModel(@NonNull Application application) {
super(application);
MercuryImApplication.getApplication().getAppComponent().inject(this);
addDisposable(getCommonViewModel().observeAccounts()
.subscribe(accounts::postValue, error -> LOGGER.log(Level.SEVERE, "Error observing accounts", error)));
}
public LiveData<List<AccountViewItem>> getAccounts() {
return accounts;
}
public void setAccountEnabled(Account accountModel, boolean enabled) {
getCommonViewModel().onToggleAccountEnabled(accountModel, enabled);
}
@Override
2020-07-13 18:49:29 +02:00
public AccountListViewModel getCommonViewModel() {
return viewModel;
}
public void onDeleteAccount(UUID accountId) {
getCommonViewModel().onDeleteAccount(accountId);
}
}