33 lines
923 B
Java
33 lines
923 B
Java
package org.mercury_im.messenger.persistence.repository;
|
|
|
|
import org.jxmpp.jid.EntityBareJid;
|
|
import org.mercury_im.messenger.persistence.model.AccountModel;
|
|
import org.mercury_im.messenger.persistence.model.ChatModel;
|
|
import org.mercury_im.messenger.persistence.model.ContactModel;
|
|
import org.mercury_im.messenger.persistence.model.EntityModel;
|
|
|
|
import java.util.List;
|
|
|
|
import io.reactivex.Completable;
|
|
import io.reactivex.Maybe;
|
|
import io.reactivex.Observable;
|
|
|
|
public interface ChatRepository<E extends ChatModel> {
|
|
|
|
E newChatModel();
|
|
|
|
Observable<List<E>> getAllChats();
|
|
|
|
Observable<List<E>> getAllChatsOf(AccountModel account);
|
|
|
|
Observable<E> getOrCreateChatWith(long accountId, EntityBareJid jid);
|
|
|
|
Maybe<E> getChatWith(AccountModel account, EntityBareJid jid);
|
|
|
|
Maybe<E> getChatWith(EntityModel identity);
|
|
|
|
Maybe<E> getChatWith(ContactModel contact);
|
|
|
|
Completable closeChat(E chat);
|
|
}
|