64 lines
1.9 KiB
Java
64 lines
1.9 KiB
Java
package org.mercury_im.messenger.persistence.room.repository;
|
|
|
|
import org.jxmpp.jid.EntityBareJid;
|
|
import org.mercury_im.messenger.persistence.model.AccountModel;
|
|
import org.mercury_im.messenger.persistence.model.ContactAttributes;
|
|
import org.mercury_im.messenger.persistence.model.ContactModel;
|
|
import org.mercury_im.messenger.persistence.model.EntityModel;
|
|
import org.mercury_im.messenger.persistence.repository.ChatRepository;
|
|
import org.mercury_im.messenger.persistence.room.dao.ChatDao;
|
|
import org.mercury_im.messenger.persistence.room.model.RoomChatModel;
|
|
|
|
import java.util.List;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import io.reactivex.Completable;
|
|
import io.reactivex.Maybe;
|
|
import io.reactivex.Observable;
|
|
|
|
public class IChatRepository implements ChatRepository<RoomChatModel> {
|
|
|
|
private final ChatDao chatDao;
|
|
|
|
@Inject
|
|
public IChatRepository(ChatDao dao) {
|
|
this.chatDao = dao;
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomChatModel>> getAllChats() {
|
|
return chatDao.getAllChats();
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomChatModel>> getAllChatsOf(AccountModel accountModel) {
|
|
return chatDao.getAllChatsOf(accountModel.getId());
|
|
}
|
|
|
|
@Override
|
|
public Maybe<RoomChatModel> getChatWith(EntityModel identity) {
|
|
return chatDao.getChatWithIdentity(identity.getId());
|
|
}
|
|
|
|
@Override
|
|
public Maybe<RoomChatModel> getChatWith(AccountModel account, EntityBareJid jid) {
|
|
return chatDao.getChatWithJid(account.getId(), jid);
|
|
}
|
|
|
|
@Override
|
|
public Maybe<RoomChatModel> getChatWith(ContactAttributes contact) {
|
|
return chatDao.getChatWithContact(contact.getId());
|
|
}
|
|
|
|
@Override
|
|
public Maybe<RoomChatModel> getChatWith(ContactModel contact) {
|
|
return getChatWith(contact.getContact());
|
|
}
|
|
|
|
@Override
|
|
public Completable closeChat(RoomChatModel chat) {
|
|
return chatDao.delete(chat);
|
|
}
|
|
}
|