85 lines
2.6 KiB
Java
85 lines
2.6 KiB
Java
package org.mercury_im.messenger.persistence.room.repository;
|
|
|
|
import org.jxmpp.jid.EntityBareJid;
|
|
import org.mercury_im.messenger.persistence.repository.MessageRepository;
|
|
import org.mercury_im.messenger.persistence.room.dao.MessageDao;
|
|
import org.mercury_im.messenger.persistence.room.model.RoomMessageModel;
|
|
|
|
import java.util.List;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import io.reactivex.Maybe;
|
|
import io.reactivex.Observable;
|
|
import io.reactivex.Single;
|
|
|
|
public class IMessageRepository implements MessageRepository<RoomMessageModel> {
|
|
|
|
private final MessageDao messageDao;
|
|
|
|
@Inject
|
|
public IMessageRepository(MessageDao messageDao) {
|
|
this.messageDao = messageDao;
|
|
}
|
|
|
|
@Override
|
|
public RoomMessageModel newMessageModel() {
|
|
return new RoomMessageModel();
|
|
}
|
|
|
|
@Override
|
|
public Maybe<RoomMessageModel> getMessage(long accountId, long chatId, long messageId) {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public Single<Long> insertMessage(RoomMessageModel message) {
|
|
return messageDao.insert(message);
|
|
}
|
|
|
|
@Override
|
|
public Single<List<Long>> insertMessages(List<RoomMessageModel> messages) {
|
|
return messageDao.insert(messages);
|
|
}
|
|
|
|
@Override
|
|
public Observable<RoomMessageModel> getLastMessageFrom(long accountId, EntityBareJid peer) {
|
|
return messageDao.getLastMessageFrom(accountId, peer);
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomMessageModel>> getAllMessages() {
|
|
return messageDao.getAllMessages();
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomMessageModel>> getAllMessagesOf(long accountId) {
|
|
return messageDao.getAllMessagesOf(accountId);
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomMessageModel>> getAllMessagesFrom(long accountId, EntityBareJid contact) {
|
|
return messageDao.getAllMessagesFrom(accountId, contact);
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomMessageModel>> getAllMessagesOfChat(long accountId, EntityBareJid peer) {
|
|
return messageDao.getAllMessagesInConversation(accountId, peer);
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomMessageModel>> findMessageByQuery(String query) {
|
|
return messageDao.findMessageByQuery("%" + query + "%");
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomMessageModel>> findMessageByQuery(long accountId, String query) {
|
|
return messageDao.findMessageByQuery(accountId, "%" + query + "%");
|
|
}
|
|
|
|
@Override
|
|
public Observable<List<RoomMessageModel>> findMessageByQuery(long accountId, EntityBareJid peer, String query) {
|
|
return messageDao.findMessageByQuery(accountId, peer, "%" + query + "%");
|
|
}
|
|
}
|