56 lines
1.6 KiB
Java
56 lines
1.6 KiB
Java
package org.mercury_im.messenger.persistence.room.repository;
|
|
|
|
import androidx.lifecycle.LiveData;
|
|
|
|
import org.jxmpp.jid.EntityBareJid;
|
|
import org.mercury_im.messenger.persistence.model.AccountModel;
|
|
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;
|
|
|
|
public class IChatRepository implements ChatRepository<RoomChatModel> {
|
|
|
|
private final ChatDao chatDao;
|
|
|
|
@Inject
|
|
public IChatRepository(ChatDao dao) {
|
|
this.chatDao = dao;
|
|
}
|
|
|
|
@Override
|
|
public LiveData<List<RoomChatModel>> getAllChats() {
|
|
return chatDao.getAllChats();
|
|
}
|
|
|
|
@Override
|
|
public LiveData<List<RoomChatModel>> getAllChatsOf(AccountModel accountModel) {
|
|
return chatDao.getAllChatsOf(accountModel.getId());
|
|
}
|
|
|
|
@Override
|
|
public LiveData<RoomChatModel> getChatWith(EntityModel identity) {
|
|
return chatDao.getChatWithIdentity(identity.getId());
|
|
}
|
|
|
|
@Override
|
|
public LiveData<RoomChatModel> getChatWith(AccountModel account, EntityBareJid jid) {
|
|
return chatDao.getChatWithJid(account.getId(), jid);
|
|
}
|
|
|
|
@Override
|
|
public LiveData<RoomChatModel> getChatWith(ContactModel contact) {
|
|
return chatDao.getChatWithContact(contact.getId());
|
|
}
|
|
|
|
@Override
|
|
public void closeChat(RoomChatModel chat) {
|
|
chatDao.delete(chat);
|
|
}
|
|
}
|