mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-15 16:14:52 +02:00
63 lines
1.9 KiB
Java
63 lines
1.9 KiB
Java
package org.mercury_im.messenger.ui.chatlist;
|
|
|
|
import androidx.lifecycle.LiveData;
|
|
import androidx.lifecycle.MutableLiveData;
|
|
import androidx.lifecycle.ViewModel;
|
|
|
|
import org.mercury_im.messenger.MercuryImApplication;
|
|
import org.mercury_im.messenger.persistence.model.ChatModel;
|
|
import org.mercury_im.messenger.persistence.model.MessageModel;
|
|
import org.mercury_im.messenger.persistence.repository.ChatRepository;
|
|
import org.mercury_im.messenger.persistence.repository.MessageRepository;
|
|
import org.mercury_im.messenger.persistence.pojo.Chat;
|
|
|
|
import java.util.List;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
import io.reactivex.disposables.CompositeDisposable;
|
|
import io.reactivex.functions.Consumer;
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
|
public class ChatListViewModel extends ViewModel {
|
|
|
|
@Inject
|
|
ChatRepository chatRepository;
|
|
|
|
@Inject
|
|
MessageRepository messageRepository;
|
|
|
|
private CompositeDisposable disposable = new CompositeDisposable();
|
|
|
|
private final MutableLiveData<List<Chat>> chats = new MutableLiveData<>();
|
|
|
|
public ChatListViewModel() {
|
|
MercuryImApplication.getApplication().getAppComponent().inject(this);
|
|
|
|
disposable.add(chatRepository.getDisplayableChats()
|
|
.subscribeOn(Schedulers.io())
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
.subscribe((Consumer<List<Chat>>) chats::setValue));
|
|
|
|
disposable.add(messageRepository.getAllMessages()
|
|
.subscribeOn(Schedulers.io())
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
.subscribe((Consumer<List<MessageModel>>) messageModels -> {
|
|
for (MessageModel message : messageModels) {
|
|
|
|
}
|
|
}));
|
|
}
|
|
|
|
public LiveData<List<Chat>> getChats() {
|
|
return chats;
|
|
}
|
|
|
|
@Override
|
|
protected void onCleared() {
|
|
super.onCleared();
|
|
disposable.dispose();
|
|
}
|
|
}
|