package com.badoo.chateau.core.repos.istyping; import android.support.annotation.NonNull; import com.badoo.barf.data.repo.annotations.Handles; import com.badoo.chateau.core.model.User; import rx.Observable; /** * Defines a data source for providing information about whether a participant of a conversation is typing. */ public interface IsTypingDataSource<U extends User> { /** * Should be called when the user is typing a message. */ @Handles(IsTypingQueries.SendIsTyping.class) Observable<Void> sendUserIsTyping(@NonNull IsTypingQueries.SendIsTyping query); /** * Returns an observable that will be updated whenever a user is typing. */ @NonNull @Handles(IsTypingQueries.SubscribeToUsersTypingQuery.class) Observable<U> subscribeToUsersTyping(@NonNull IsTypingQueries.SubscribeToUsersTypingQuery query); }