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
|
|
|
}
|
|
|
|
}
|