Search in sources :

Example 1 with ApiOutPeer

use of im.actor.core.api.ApiOutPeer in project actor-platform by actorapp.

the class OwnTypingActor method onTyping.

@Verified
private void onTyping(Peer peer) {
    if (ActorTime.currentTime() - lastTypingTime < TYPING_DELAY) {
        return;
    }
    lastTypingTime = ActorTime.currentTime();
    ApiOutPeer outPeer = buidOutPeer(peer);
    if (outPeer == null) {
        return;
    }
    cancelPrevRequest();
    prevRid = request(new RequestTyping(outPeer, ApiTypingType.TEXT));
    if (typingCancellable != null) {
        typingCancellable.cancel();
        typingCancellable = null;
    }
    typingCancellable = schedule(new AbortTyping(peer), TYPING_CANCEL_DELAY);
}
Also used : RequestTyping(im.actor.core.api.rpc.RequestTyping) ApiOutPeer(im.actor.core.api.ApiOutPeer) Verified(im.actor.runtime.annotations.Verified)

Example 2 with ApiOutPeer

use of im.actor.core.api.ApiOutPeer in project actor-platform by actorapp.

the class OwnTypingActor method onAbortTyping.

private void onAbortTyping(Peer peer) {
    ApiOutPeer outPeer = buidOutPeer(peer);
    if (outPeer == null) {
        return;
    }
    cancelPrevRequest();
    prevRid = request(new RequestStopTyping(outPeer, ApiTypingType.TEXT));
}
Also used : RequestStopTyping(im.actor.core.api.rpc.RequestStopTyping) ApiOutPeer(im.actor.core.api.ApiOutPeer)

Example 3 with ApiOutPeer

use of im.actor.core.api.ApiOutPeer in project actor-platform by actorapp.

the class CursorReceiverActor method perform.

@Override
protected void perform(final Peer peer, final long date) {
    ApiOutPeer outPeer = buidOutPeer(peer);
    if (outPeer == null) {
        return;
    }
    request(new RequestMessageReceived(outPeer, date), new RpcCallback<ResponseVoid>() {

        @Override
        public void onResult(ResponseVoid response) {
            onCompleted(peer, date);
        }

        @Override
        public void onError(RpcException e) {
            CursorReceiverActor.this.onError(peer, date);
        }
    });
}
Also used : ResponseVoid(im.actor.core.api.rpc.ResponseVoid) RpcException(im.actor.core.network.RpcException) ApiOutPeer(im.actor.core.api.ApiOutPeer) RequestMessageReceived(im.actor.core.api.rpc.RequestMessageReceived)

Example 4 with ApiOutPeer

use of im.actor.core.api.ApiOutPeer in project actor-platform by actorapp.

the class MessagesModule method updateMessage.

public Promise<Void> updateMessage(final Peer peer, final String message, final long rid) {
    context().getTypingModule().onMessageSent(peer);
    ArrayList<Integer> mentions = new ArrayList<>();
    TextContent content = TextContent.create(message, null, mentions);
    if (peer.getPeerType() == PeerType.GROUP) {
        Group group = groups().getValue(peer.getPeerId());
        String lowText = message.toLowerCase();
        for (GroupMember member : group.getMembers()) {
            User user = users().getValue(member.getUid());
            if (user.getNick() != null) {
                String nick = "@" + user.getNick().toLowerCase();
                // TODO: Better filtering
                if (lowText.contains(nick + ":") || lowText.contains(nick + " ") || lowText.contains(" " + nick) || lowText.endsWith(nick) || lowText.equals(nick)) {
                    mentions.add(user.getUid());
                }
            }
        }
    }
    ApiMessage editMessage = new ApiTextMessage(message, content.getMentions(), content.getTextMessageEx());
    return buildOutPeer(peer).flatMap(apiOutPeer -> api(new RequestUpdateMessage(apiOutPeer, rid, editMessage))).flatMap(responseSeqDate -> updates().applyUpdate(responseSeqDate.getSeq(), responseSeqDate.getState(), new UpdateMessageContentChanged(new ApiPeer(peer.getPeerType().toApi(), peer.getPeerId()), rid, editMessage)));
}
Also used : RequestMessageSetReaction(im.actor.core.api.rpc.RequestMessageSetReaction) DialogsInt(im.actor.core.modules.messaging.dialogs.DialogsInt) ModuleContext(im.actor.core.modules.ModuleContext) ConversationVM(im.actor.core.viewmodel.ConversationVM) FastThumb(im.actor.core.entity.content.FastThumb) RequestDeleteChat(im.actor.core.api.rpc.RequestDeleteChat) UpdateChatGroupsChanged(im.actor.core.api.updates.UpdateChatGroupsChanged) DialogGroupsVM(im.actor.core.viewmodel.DialogGroupsVM) ResponseReactionsResponse(im.actor.core.api.rpc.ResponseReactionsResponse) JsonContent(im.actor.core.entity.content.JsonContent) SyncKeyValue(im.actor.runtime.storage.SyncKeyValue) RouterInt(im.actor.core.modules.messaging.router.RouterInt) RequestFavouriteDialog(im.actor.core.api.rpc.RequestFavouriteDialog) RequestUnfavouriteDialog(im.actor.core.api.rpc.RequestUnfavouriteDialog) Actor(im.actor.runtime.actors.Actor) ApiPeer(im.actor.core.api.ApiPeer) CommandCallback(im.actor.core.viewmodel.CommandCallback) MessageDeleteActor(im.actor.core.modules.messaging.actions.MessageDeleteActor) TextContent(im.actor.core.entity.content.TextContent) Sticker(im.actor.core.entity.Sticker) RpcInternalException(im.actor.core.network.RpcInternalException) ApiTextMessage(im.actor.core.api.ApiTextMessage) UpdateReactionsUpdate(im.actor.core.api.updates.UpdateReactionsUpdate) Void(im.actor.runtime.actors.messages.Void) ResponseDialogsOrder(im.actor.core.api.rpc.ResponseDialogsOrder) GroupMember(im.actor.core.entity.GroupMember) ArchivedDialogsActor(im.actor.core.modules.messaging.history.ArchivedDialogsActor) ApiOutPeer(im.actor.core.api.ApiOutPeer) MVVMCollection(im.actor.runtime.mvvm.MVVMCollection) ActorSystem.system(im.actor.runtime.actors.ActorSystem.system) DialogsHistoryActor(im.actor.core.modules.messaging.history.DialogsHistoryActor) Nullable(org.jetbrains.annotations.Nullable) CursorReceiverActor(im.actor.core.modules.messaging.actions.CursorReceiverActor) PromiseResolver(im.actor.runtime.promise.PromiseResolver) RequestClearChat(im.actor.core.api.rpc.RequestClearChat) UpdateMessageContentChanged(im.actor.core.api.updates.UpdateMessageContentChanged) Peer(im.actor.core.entity.Peer) Props(im.actor.runtime.actors.Props) Message(im.actor.core.entity.Message) Dialog(im.actor.core.entity.Dialog) NotNull(org.jetbrains.annotations.NotNull) Function(im.actor.runtime.function.Function) ApiPeerType(im.actor.core.api.ApiPeerType) RequestArchiveChat(im.actor.core.api.rpc.RequestArchiveChat) RequestUpdateMessage(im.actor.core.api.rpc.RequestUpdateMessage) ResponseSeq(im.actor.core.api.rpc.ResponseSeq) RequestMessageRemoveReaction(im.actor.core.api.rpc.RequestMessageRemoveReaction) ResponseSeqDate(im.actor.core.api.rpc.ResponseSeqDate) ActorCreator(im.actor.runtime.actors.ActorCreator) Promise(im.actor.runtime.promise.Promise) HashMap(java.util.HashMap) UpdateChatClear(im.actor.core.api.updates.UpdateChatClear) PromiseFunc(im.actor.runtime.promise.PromiseFunc) ArrayList(java.util.ArrayList) ConversationState(im.actor.core.entity.ConversationState) AbsModule(im.actor.core.modules.AbsModule) User(im.actor.core.entity.User) BusSubscriber(im.actor.runtime.eventbus.BusSubscriber) ConversationHistoryActor(im.actor.core.modules.messaging.history.ConversationHistoryActor) PeerChatOpened(im.actor.core.events.PeerChatOpened) RpcCallback(im.actor.core.network.RpcCallback) ActorRef(im.actor.runtime.actors.ActorRef) ListEngine(im.actor.runtime.storage.ListEngine) PeerType(im.actor.core.entity.PeerType) Command(im.actor.core.viewmodel.Command) ConversationHistory(im.actor.core.modules.messaging.history.ConversationHistory) AbsContent(im.actor.core.entity.content.AbsContent) PeerChatPreload(im.actor.core.events.PeerChatPreload) ApiMessage(im.actor.core.api.ApiMessage) Group(im.actor.core.entity.Group) RpcException(im.actor.core.network.RpcException) CursorReaderActor(im.actor.core.modules.messaging.actions.CursorReaderActor) Storage(im.actor.runtime.Storage) DialogsActor(im.actor.core.modules.messaging.dialogs.DialogsActor) SenderActor(im.actor.core.modules.messaging.actions.SenderActor) FileSystemReference(im.actor.runtime.files.FileSystemReference) ResponseLoadArchived(im.actor.core.api.rpc.ResponseLoadArchived) UpdateChatDelete(im.actor.core.api.updates.UpdateChatDelete) Event(im.actor.runtime.eventbus.Event) SeqUpdate(im.actor.core.api.base.SeqUpdate) Group(im.actor.core.entity.Group) GroupMember(im.actor.core.entity.GroupMember) UpdateMessageContentChanged(im.actor.core.api.updates.UpdateMessageContentChanged) User(im.actor.core.entity.User) ApiTextMessage(im.actor.core.api.ApiTextMessage) ArrayList(java.util.ArrayList) ApiMessage(im.actor.core.api.ApiMessage) TextContent(im.actor.core.entity.content.TextContent) RequestUpdateMessage(im.actor.core.api.rpc.RequestUpdateMessage) ApiPeer(im.actor.core.api.ApiPeer)

Example 5 with ApiOutPeer

use of im.actor.core.api.ApiOutPeer in project actor-platform by actorapp.

the class CursorReaderActor method perform.

@Override
protected void perform(final Peer peer, final long date) {
    ApiOutPeer outPeer = buidOutPeer(peer);
    if (outPeer == null) {
        return;
    }
    request(new RequestMessageRead(outPeer, date), new RpcCallback<ResponseVoid>() {

        @Override
        public void onResult(ResponseVoid response) {
            onCompleted(peer, date);
        }

        @Override
        public void onError(RpcException e) {
            CursorReaderActor.this.onError(peer, date);
        }
    });
}
Also used : ResponseVoid(im.actor.core.api.rpc.ResponseVoid) RpcException(im.actor.core.network.RpcException) ApiOutPeer(im.actor.core.api.ApiOutPeer) RequestMessageRead(im.actor.core.api.rpc.RequestMessageRead)

Aggregations

ApiOutPeer (im.actor.core.api.ApiOutPeer)7 RpcException (im.actor.core.network.RpcException)5 ApiPeer (im.actor.core.api.ApiPeer)3 SeqUpdate (im.actor.core.api.base.SeqUpdate)3 ResponseSeq (im.actor.core.api.rpc.ResponseSeq)2 ResponseSeqDate (im.actor.core.api.rpc.ResponseSeqDate)2 ResponseVoid (im.actor.core.api.rpc.ResponseVoid)2 ApiMessage (im.actor.core.api.ApiMessage)1 ApiPeerType (im.actor.core.api.ApiPeerType)1 ApiTextMessage (im.actor.core.api.ApiTextMessage)1 RequestArchiveChat (im.actor.core.api.rpc.RequestArchiveChat)1 RequestClearChat (im.actor.core.api.rpc.RequestClearChat)1 RequestDeleteChat (im.actor.core.api.rpc.RequestDeleteChat)1 RequestDeleteMessage (im.actor.core.api.rpc.RequestDeleteMessage)1 RequestFavouriteDialog (im.actor.core.api.rpc.RequestFavouriteDialog)1 RequestMessageRead (im.actor.core.api.rpc.RequestMessageRead)1 RequestMessageReceived (im.actor.core.api.rpc.RequestMessageReceived)1 RequestMessageRemoveReaction (im.actor.core.api.rpc.RequestMessageRemoveReaction)1 RequestMessageSetReaction (im.actor.core.api.rpc.RequestMessageSetReaction)1 RequestSendMessage (im.actor.core.api.rpc.RequestSendMessage)1