Mercury-IM/domain/src/main/java/org/mercury_im/messenger/core/viewmodel/chat/ChatViewModel.java

51 lines
1.6 KiB
Java
Raw Normal View History

2020-06-09 21:52:53 +02:00
package org.mercury_im.messenger.core.viewmodel.chat;
2020-06-11 16:04:06 +02:00
import org.mercury_im.messenger.core.Messenger;
2020-06-09 21:52:53 +02:00
import org.mercury_im.messenger.core.SchedulersFacade;
import org.mercury_im.messenger.core.data.repository.Repositories;
import org.mercury_im.messenger.core.viewmodel.MercuryViewModel;
2020-06-11 16:04:06 +02:00
import org.mercury_im.messenger.entity.chat.DirectChat;
import org.mercury_im.messenger.entity.contact.Peer;
import org.mercury_im.messenger.entity.message.Message;
2020-06-09 21:52:53 +02:00
2020-06-11 16:04:06 +02:00
import java.util.List;
import io.reactivex.Observable;
import lombok.Getter;
2020-06-09 21:52:53 +02:00
public class ChatViewModel implements MercuryViewModel {
2020-06-11 16:04:06 +02:00
private final Messenger messenger;
2020-06-09 21:52:53 +02:00
private final Repositories repositories;
private final SchedulersFacade schedulers;
2020-06-11 16:04:06 +02:00
@Getter
private Observable<Peer> peer;
@Getter
private Observable<List<Message>> messages;
@Getter
private Observable<String> contactDisplayName;
public ChatViewModel(Messenger messenger,
Repositories repositories,
SchedulersFacade schedulers,
DirectChat chat) {
this.messenger = messenger;
2020-06-09 21:52:53 +02:00
this.repositories = repositories;
this.schedulers = schedulers;
2020-06-11 16:04:06 +02:00
//peer = repositories.getPeerRepository().observePeer(chat.getPeer());
messages = repositories.getMessageRepository().observeMessages(chat);
contactDisplayName = repositories.getPeerRepository().observePeer(chat.getPeer())
.map(optional -> optional.isPresent() ? optional.getItem().getDisplayName() : "DELETED");
}
public void sendMessage(String body) {
//addDisposable(messenger.sendMessage());
2020-06-09 21:52:53 +02:00
}
}