Search in sources :

Example 31 with Void

use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.

the class GroupRouter method onRequestLoadFullGroup.

private void onRequestLoadFullGroup(int gid) {
    if (requestedFullGroups.contains(gid)) {
        return;
    }
    requestedFullGroups.add(gid);
    freeze();
    groups().getValueAsync(gid).flatMap(new Function<Group, Promise<Group>>() {

        @Override
        public Promise<Group> apply(Group group) {
            if (!group.isHaveExtension()) {
                ArrayList<ApiGroupOutPeer> groups = new ArrayList<>();
                groups.add(new ApiGroupOutPeer(gid, group.getAccessHash()));
                return api(new RequestLoadFullGroups(groups)).map(r -> group.updateExt(r.getGroups().get(0)));
            } else {
                return Promise.failure(new RuntimeException("Already loaded"));
            }
        }
    }).then(r -> groups().addOrUpdateItem(r)).after((r, e) -> unfreeze());
}
Also used : ModuleContext(im.actor.core.modules.ModuleContext) RouterApplyGroups(im.actor.core.modules.groups.router.entity.RouterApplyGroups) Promise(im.actor.runtime.promise.Promise) UpdateGroupAvatarChanged(im.actor.core.api.updates.UpdateGroupAvatarChanged) RouterLoadFullGroup(im.actor.core.modules.groups.router.entity.RouterLoadFullGroup) UpdateGroupFullPermissionsChanged(im.actor.core.api.updates.UpdateGroupFullPermissionsChanged) RouterFetchMissingGroups(im.actor.core.modules.groups.router.entity.RouterFetchMissingGroups) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) UpdateGroupMemberChanged(im.actor.core.api.updates.UpdateGroupMemberChanged) ApiMapValue(im.actor.core.api.ApiMapValue) PromisesArray(im.actor.runtime.promise.PromisesArray) UpdateGroupMemberAdminChanged(im.actor.core.api.updates.UpdateGroupMemberAdminChanged) UpdateGroupTitleChanged(im.actor.core.api.updates.UpdateGroupTitleChanged) UpdateGroupTopicChanged(im.actor.core.api.updates.UpdateGroupTopicChanged) RouterInt(im.actor.core.modules.messaging.router.RouterInt) RouterGroupUpdate(im.actor.core.modules.groups.router.entity.RouterGroupUpdate) UpdateGroupMemberDiff(im.actor.core.api.updates.UpdateGroupMemberDiff) Tuple2(im.actor.runtime.function.Tuple2) ApiGroup(im.actor.core.api.ApiGroup) UpdateGroupDeleted(im.actor.core.api.updates.UpdateGroupDeleted) Void(im.actor.runtime.actors.messages.Void) UpdateGroupOwnerChanged(im.actor.core.api.updates.UpdateGroupOwnerChanged) Verified(im.actor.runtime.annotations.Verified) ApiMember(im.actor.core.api.ApiMember) Group(im.actor.core.entity.Group) UpdateGroupAboutChanged(im.actor.core.api.updates.UpdateGroupAboutChanged) UpdateGroupFullExtChanged(im.actor.core.api.updates.UpdateGroupFullExtChanged) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) ModuleActor(im.actor.core.modules.ModuleActor) UpdateGroupPermissionsChanged(im.actor.core.api.updates.UpdateGroupPermissionsChanged) UpdateGroupMembersCountChanged(im.actor.core.api.updates.UpdateGroupMembersCountChanged) UpdateGroupMembersBecameAsync(im.actor.core.api.updates.UpdateGroupMembersBecameAsync) ApiGroupOutPeer(im.actor.core.api.ApiGroupOutPeer) ApiAvatar(im.actor.core.api.ApiAvatar) UpdateGroupHistoryShared(im.actor.core.api.updates.UpdateGroupHistoryShared) UpdateGroupShortNameChanged(im.actor.core.api.updates.UpdateGroupShortNameChanged) Function(im.actor.runtime.function.Function) RequestLoadFullGroups(im.actor.core.api.rpc.RequestLoadFullGroups) UpdateGroupExtChanged(im.actor.core.api.updates.UpdateGroupExtChanged) Update(im.actor.core.network.parser.Update) UpdateGroupMembersUpdated(im.actor.core.api.updates.UpdateGroupMembersUpdated) RouterLoadFullGroup(im.actor.core.modules.groups.router.entity.RouterLoadFullGroup) ApiGroup(im.actor.core.api.ApiGroup) Group(im.actor.core.entity.Group) Promise(im.actor.runtime.promise.Promise) RequestLoadFullGroups(im.actor.core.api.rpc.RequestLoadFullGroups) ArrayList(java.util.ArrayList) ApiGroupOutPeer(im.actor.core.api.ApiGroupOutPeer)

Example 32 with Void

use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.

the class PeerConnectionActor method onAnswer.

public void onAnswer(final long sessionId, @NotNull String sdp) {
    // Ignore if we are not waiting for answer
    if (state != PeerConnectionState.WAITING_ANSWER) {
        return;
    }
    // 
    // Stages
    // 1. Set Remote Description
    // 2. Enter READY mode
    // 
    peerConnection.setRemoteDescription(new WebRTCSessionDescription("answer", sdp)).then(description -> {
        onHandShakeCompleted(sessionId);
        onReady();
    }).failure(e -> {
        e.printStackTrace();
        onHandshakeFailure();
    });
}
Also used : ModuleContext(im.actor.core.modules.ModuleContext) WebRTCMediaTrack(im.actor.runtime.webrtc.WebRTCMediaTrack) WebRTC(im.actor.runtime.WebRTC) CountedReference(im.actor.runtime.function.CountedReference) WebRTCSettings(im.actor.runtime.webrtc.WebRTCSettings) ActorCreator(im.actor.runtime.actors.ActorCreator) Void(im.actor.runtime.actors.messages.Void) ApiICEServer(im.actor.core.api.ApiICEServer) Promise(im.actor.runtime.promise.Promise) AskMessage(im.actor.runtime.actors.ask.AskMessage) ManagedList(im.actor.runtime.collections.ManagedList) WebRTCPeerConnection(im.actor.runtime.webrtc.WebRTCPeerConnection) WebRTCPeerConnectionCallback(im.actor.runtime.webrtc.WebRTCPeerConnectionCallback) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) ModuleActor(im.actor.core.modules.ModuleActor) WebRTCSessionDescription(im.actor.runtime.webrtc.WebRTCSessionDescription) Property(com.google.j2objc.annotations.Property) WebRTCIceServer(im.actor.runtime.webrtc.WebRTCIceServer) Log(im.actor.runtime.Log) NotNull(org.jetbrains.annotations.NotNull) WebRTCMediaStream(im.actor.runtime.webrtc.WebRTCMediaStream) WebRTCSessionDescription(im.actor.runtime.webrtc.WebRTCSessionDescription)

Example 33 with Void

use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.

the class MessagesDefaultFragment method onLongClick.

@Override
public boolean onLongClick(final Message message, final boolean hasMyReaction) {
    if (actionMode == null) {
        messagesAdapter.clearSelection();
        messagesAdapter.setSelected(message, true);
        actionMode = ((AppCompatActivity) getActivity()).startSupportActionMode(new ActionMode.Callback() {

            @Override
            public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
                getActivity().getMenuInflater().inflate(R.menu.messages_context, menu);
                return true;
            }

            @Override
            public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
                Message[] selected = messagesAdapter.getSelected();
                if (selected.length > 0) {
                    actionMode.setTitle("" + selected.length);
                }
                boolean isAllText = true;
                for (Message k : selected) {
                    if (!(k.getContent() instanceof TextContent)) {
                        isAllText = false;
                        break;
                    }
                }
                menu.findItem(R.id.copy).setVisible(isAllText);
                menu.findItem(R.id.quote).setVisible(isAllText);
                menu.findItem(R.id.forward).setVisible(selected.length == 1 || isAllText);
                menu.findItem(R.id.like).setVisible(selected.length == 1);
                return false;
            }

            @Override
            public boolean onActionItemClicked(final ActionMode actionMode, MenuItem menuItem) {
                if (menuItem.getItemId() == R.id.delete) {
                    Message[] selected = messagesAdapter.getSelected();
                    final long[] rids = new long[selected.length];
                    for (int i = 0; i < rids.length; i++) {
                        rids[i] = selected[i].getRid();
                    }
                    new AlertDialog.Builder(getActivity()).setMessage(getString(R.string.alert_delete_messages_text).replace("{0}", "" + rids.length)).setPositiveButton(R.string.alert_delete_messages_yes, (dialog, which) -> {
                        messenger().deleteMessages(peer, rids);
                        actionMode.finish();
                    }).setNegativeButton(R.string.dialog_cancel, null).show().setCanceledOnTouchOutside(true);
                    return true;
                } else if (menuItem.getItemId() == R.id.copy) {
                    String text = messenger().getFormatter().formatMessagesExport(messagesAdapter.getSelected());
                    android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                    android.content.ClipData clip = android.content.ClipData.newPlainText("Messages", text);
                    clipboard.setPrimaryClip(clip);
                    Toast.makeText(getActivity(), R.string.toast_messages_copied, Toast.LENGTH_SHORT).show();
                    actionMode.finish();
                    return true;
                } else if (menuItem.getItemId() == R.id.like) {
                    Message currentMessage = messagesAdapter.getSelected()[0];
                    if (hasMyReaction) {
                        ActorSDK.sharedActor().getMessenger().removeReaction(getPeer(), currentMessage.getRid(), "\u2764").start(new CommandCallback<Void>() {

                            @Override
                            public void onResult(Void res) {
                            }

                            @Override
                            public void onError(Exception e) {
                            }
                        });
                    } else {
                        ActorSDK.sharedActor().getMessenger().addReaction(getPeer(), currentMessage.getRid(), "\u2764").start(new CommandCallback<Void>() {

                            @Override
                            public void onResult(Void res) {
                            }

                            @Override
                            public void onError(Exception e) {
                            }
                        });
                    }
                    actionMode.finish();
                    return true;
                } else if (menuItem.getItemId() == R.id.quote) {
                    String rawQuote = "";
                    int i = 0;
                    for (Message m : messagesAdapter.getSelected()) {
                        if (m.getContent() instanceof TextContent) {
                            UserVM user = users().get(m.getSenderId());
                            String nick = user.getNick().get();
                            String name = (nick != null && !nick.isEmpty()) ? "@" + nick : user.getName().get();
                            String text = ((TextContent) m.getContent()).getText();
                            rawQuote = rawQuote + name + ": " + text + "\n";
                        }
                    }
                    Fragment fragment = getParentFragment();
                    if (fragment instanceof MessagesFragmentCallback) {
                        ((MessagesFragmentCallback) fragment).onMessageQuote(rawQuote);
                    }
                    actionMode.finish();
                    return true;
                } else if (menuItem.getItemId() == R.id.forward) {
                    Intent i = new Intent(getActivity(), ShareActivity.class);
                    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    if (messagesAdapter.getSelected().length == 1) {
                        Message m = messagesAdapter.getSelected()[0];
                        if (m.getContent() instanceof TextContent) {
                            UserVM user = users().get(m.getSenderId());
                            String nick = user.getNick().get();
                            String name = (nick != null && !nick.isEmpty()) ? "@".concat(nick) : user.getName().get();
                            String text = ((TextContent) m.getContent()).getText();
                            String forward = name.concat(": ").concat(text).concat("\n");
                            i.putExtra(Intents.EXTRA_FORWARD_TEXT, forward);
                            i.putExtra(Intents.EXTRA_FORWARD_TEXT_RAW, forward);
                        } else if (!(m.getContent() instanceof UnsupportedContent)) {
                            AbsContent fileMessage = m.getContent();
                            try {
                                i.putExtra(Intents.EXTRA_FORWARD_CONTENT, AbsContent.serialize(fileMessage));
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    } else {
                        String quote = "";
                        String rawQuote = "";
                        int j = 0;
                        for (Message m : messagesAdapter.getSelected()) {
                            if (m.getContent() instanceof TextContent) {
                                UserVM user = users().get(m.getSenderId());
                                String nick = user.getNick().get();
                                String name = (nick != null && !nick.isEmpty()) ? "@".concat(nick) : user.getName().get();
                                String text = ((TextContent) m.getContent()).getText();
                                quote = quote.concat(name).concat(": ").concat(text);
                                rawQuote = rawQuote.concat(name).concat(": ").concat(text).concat("\n");
                                if (j++ != messagesAdapter.getSelectedCount() - 1) {
                                    quote += ";\n";
                                } else {
                                    quote += "\n";
                                }
                            }
                        }
                        i.putExtra(Intents.EXTRA_FORWARD_TEXT, quote);
                        i.putExtra(Intents.EXTRA_FORWARD_TEXT_RAW, rawQuote);
                    }
                    actionMode.finish();
                    startActivity(i);
                    getActivity().finish();
                    return true;
                }
                return false;
            }

            @Override
            public void onDestroyActionMode(ActionMode actionMode) {
                MessagesDefaultFragment.this.actionMode = null;
                messagesAdapter.clearSelection();
            }
        });
    } else {
        if (messagesAdapter.isSelected(message)) {
            messagesAdapter.setSelected(message, false);
            if (messagesAdapter.getSelectedCount() == 0) {
                actionMode.finish();
                actionMode = null;
            } else {
                actionMode.invalidate();
            }
        } else {
            messagesAdapter.setSelected(message, true);
            actionMode.invalidate();
        }
    }
    return true;
}
Also used : AlertDialog(android.app.AlertDialog) Context(android.content.Context) Bundle(android.os.Bundle) ActorSDKMessenger.myUid(im.actor.sdk.util.ActorSDKMessenger.myUid) ActorSDKMessenger.messenger(im.actor.sdk.util.ActorSDKMessenger.messenger) Intent(android.content.Intent) MenuItem(android.view.MenuItem) Toast(android.widget.Toast) Menu(android.view.Menu) CommandCallback(im.actor.core.viewmodel.CommandCallback) TextContent(im.actor.core.entity.content.TextContent) Intents(im.actor.sdk.controllers.Intents) ActorSDK(im.actor.sdk.ActorSDK) AbsContent(im.actor.core.entity.content.AbsContent) ActorSDKLauncher(im.actor.sdk.ActorSDKLauncher) ActionMode(android.support.v7.view.ActionMode) Void(im.actor.runtime.actors.messages.Void) Fragment(android.support.v4.app.Fragment) ActorSDKMessenger.users(im.actor.sdk.util.ActorSDKMessenger.users) IOException(java.io.IOException) UnsupportedContent(im.actor.core.entity.content.UnsupportedContent) AppCompatActivity(android.support.v7.app.AppCompatActivity) AlertDialog(android.app.AlertDialog) UserVM(im.actor.core.viewmodel.UserVM) R(im.actor.sdk.R) ChatActivity(im.actor.sdk.controllers.conversation.ChatActivity) Peer(im.actor.core.entity.Peer) ShareActivity(im.actor.sdk.controllers.share.ShareActivity) Message(im.actor.core.entity.Message) Message(im.actor.core.entity.Message) UnsupportedContent(im.actor.core.entity.content.UnsupportedContent) Fragment(android.support.v4.app.Fragment) Menu(android.view.Menu) Void(im.actor.runtime.actors.messages.Void) AbsContent(im.actor.core.entity.content.AbsContent) MenuItem(android.view.MenuItem) Intent(android.content.Intent) IOException(java.io.IOException) IOException(java.io.IOException) UserVM(im.actor.core.viewmodel.UserVM) CommandCallback(im.actor.core.viewmodel.CommandCallback) ActionMode(android.support.v7.view.ActionMode) TextContent(im.actor.core.entity.content.TextContent)

Example 34 with Void

use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.

the class UserRouter method onLoadFullUser.

// 
// Users changed
// 
@Verified
private void onLoadFullUser(int uid) {
    if (requestedFullUsers.contains(uid)) {
        return;
    }
    requestedFullUsers.add(uid);
    freeze();
    users().getValueAsync(uid).flatMap((Function<User, Promise<Tuple2<ResponseLoadFullUsers, User>>>) u -> {
        if (!u.isHaveExtension()) {
            ArrayList<ApiUserOutPeer> users = new ArrayList<>();
            users.add(new ApiUserOutPeer(u.getUid(), u.getAccessHash()));
            return api(new RequestLoadFullUsers(users)).map(responseLoadFullUsers -> new Tuple2<>(responseLoadFullUsers, u));
        } else {
            if (!getUserVM(uid).isInPhoneBook().get()) {
                return checkIsInPhoneBook(u).flatMap(new Function<Void, Promise<Tuple2<ResponseLoadFullUsers, User>>>() {

                    @Override
                    public Promise<Tuple2<ResponseLoadFullUsers, User>> apply(Void aVoid) {
                        return Promise.failure(new RuntimeException("Already loaded"));
                    }
                });
            } else {
                return Promise.failure(new RuntimeException("Already loaded"));
            }
        }
    }).then(r -> {
        // Changing user extension
        User upd = r.getT2().updateExt(r.getT1().getFullUsers().get(0));
        // Updating user in collection
        users().addOrUpdateItem(upd);
    }).chain(r -> checkIsInPhoneBook(r.getT2().updateExt(r.getT1().getFullUsers().get(0)))).after((r, e) -> unfreeze());
}
Also used : ModuleContext(im.actor.core.modules.ModuleContext) ContactRecord(im.actor.core.entity.ContactRecord) PhoneBookContact(im.actor.core.entity.PhoneBookContact) ApiUser(im.actor.core.api.ApiUser) UpdateUserContactsChanged(im.actor.core.api.updates.UpdateUserContactsChanged) ApiMapValue(im.actor.core.api.ApiMapValue) ApiBotCommand(im.actor.core.api.ApiBotCommand) PhoneBookEmail(im.actor.core.entity.PhoneBookEmail) PromisesArray(im.actor.runtime.promise.PromisesArray) RouterLoadFullUser(im.actor.core.modules.users.router.entity.RouterLoadFullUser) UpdateContactRegistered(im.actor.core.api.updates.UpdateContactRegistered) UpdateUserNameChanged(im.actor.core.api.updates.UpdateUserNameChanged) ContactRecordType(im.actor.core.entity.ContactRecordType) Tuple2(im.actor.runtime.function.Tuple2) UpdateUserBlocked(im.actor.core.api.updates.UpdateUserBlocked) Void(im.actor.runtime.actors.messages.Void) Verified(im.actor.runtime.annotations.Verified) UserPhone(im.actor.core.viewmodel.UserPhone) ResponseLoadFullUsers(im.actor.core.api.rpc.ResponseLoadFullUsers) UpdateUserAvatarChanged(im.actor.core.api.updates.UpdateUserAvatarChanged) List(java.util.List) UpdateUserAboutChanged(im.actor.core.api.updates.UpdateUserAboutChanged) ModuleActor(im.actor.core.modules.ModuleActor) ArrayListUserPhone(im.actor.core.viewmodel.generics.ArrayListUserPhone) UpdateUserFullExtChanged(im.actor.core.api.updates.UpdateUserFullExtChanged) UserEmail(im.actor.core.viewmodel.UserEmail) Peer(im.actor.core.entity.Peer) UpdateUserExtChanged(im.actor.core.api.updates.UpdateUserExtChanged) MessageState(im.actor.core.entity.MessageState) Message(im.actor.core.entity.Message) ApiUserOutPeer(im.actor.core.api.ApiUserOutPeer) ApiAvatar(im.actor.core.api.ApiAvatar) ApiContactRecord(im.actor.core.api.ApiContactRecord) UpdateUserTimeZoneChanged(im.actor.core.api.updates.UpdateUserTimeZoneChanged) Function(im.actor.runtime.function.Function) ServiceUserRegistered(im.actor.core.entity.content.ServiceUserRegistered) PhoneBookProvider(im.actor.core.providers.PhoneBookProvider) Promise(im.actor.runtime.promise.Promise) UpdateUserBotCommandsChanged(im.actor.core.api.updates.UpdateUserBotCommandsChanged) UpdateUserNickChanged(im.actor.core.api.updates.UpdateUserNickChanged) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) User(im.actor.core.entity.User) UpdateUserLocalNameChanged(im.actor.core.api.updates.UpdateUserLocalNameChanged) ArrayListUserEmail(im.actor.core.viewmodel.generics.ArrayListUserEmail) JavaUtil.equalsE(im.actor.core.util.JavaUtil.equalsE) UpdateUserUnblocked(im.actor.core.api.updates.UpdateUserUnblocked) RequestLoadFullUsers(im.actor.core.api.rpc.RequestLoadFullUsers) ContactsSyncActor(im.actor.core.modules.contacts.ContactsSyncActor) UserVM(im.actor.core.viewmodel.UserVM) RouterFetchMissingUsers(im.actor.core.modules.users.router.entity.RouterFetchMissingUsers) BookImportStorage(im.actor.core.modules.contacts.entity.BookImportStorage) RouterApplyUsers(im.actor.core.modules.users.router.entity.RouterApplyUsers) UpdateUserPreferredLanguagesChanged(im.actor.core.api.updates.UpdateUserPreferredLanguagesChanged) Log(im.actor.runtime.Log) PhoneBookPhone(im.actor.core.entity.PhoneBookPhone) Update(im.actor.core.network.parser.Update) RouterUserUpdate(im.actor.core.modules.users.router.entity.RouterUserUpdate) RequestLoadFullUsers(im.actor.core.api.rpc.RequestLoadFullUsers) ApiUser(im.actor.core.api.ApiUser) RouterLoadFullUser(im.actor.core.modules.users.router.entity.RouterLoadFullUser) User(im.actor.core.entity.User) ApiUserOutPeer(im.actor.core.api.ApiUserOutPeer) ArrayList(java.util.ArrayList) Function(im.actor.runtime.function.Function) Promise(im.actor.runtime.promise.Promise) Tuple2(im.actor.runtime.function.Tuple2) Void(im.actor.runtime.actors.messages.Void) ResponseLoadFullUsers(im.actor.core.api.rpc.ResponseLoadFullUsers) Verified(im.actor.runtime.annotations.Verified)

Example 35 with Void

use of im.actor.runtime.actors.messages.Void in project actor-platform by actorapp.

the class UpdateProcessor method applyDifferenceUpdate.

// 
// Difference
// 
public Promise<Void> applyDifferenceUpdate(List<Update> updates) {
    CombinedDifference combinedDifference = GetDiffCombiner.buildDiff(updates);
    ArrayList<Supplier<Promise<Void>>> pending = new ArrayList<>();
    pending.add(() -> messagesProcessor.onDifferenceStart());
    for (Peer peer : combinedDifference.getReceived().keySet()) {
        long time = combinedDifference.getReceived().get(peer);
        pending.add(() -> processUpdate(new UpdateMessageReceived(buildApiPeer(peer), time, 0)));
    }
    for (Peer peer : combinedDifference.getRead().keySet()) {
        long time = combinedDifference.getRead().get(peer);
        pending.add(() -> processUpdate(new UpdateMessageRead(buildApiPeer(peer), time, 0)));
    }
    for (Peer peer : combinedDifference.getReadByMe().keySet()) {
        CombinedDifference.ReadByMeValue time = combinedDifference.getReadByMe().get(peer);
        pending.add(() -> processUpdate(new UpdateMessageReadByMe(buildApiPeer(peer), time.getDate(), time.getCounter())));
    }
    for (Peer peer : combinedDifference.getMessages().keySet()) {
        pending.add(() -> messagesProcessor.onDifferenceMessages(buildApiPeer(peer), combinedDifference.getMessages().get(peer)));
    }
    for (Update u : combinedDifference.getOtherUpdates()) {
        pending.add(() -> processUpdate(u));
    }
    pending.add(() -> messagesProcessor.onDifferenceEnd());
    return Promises.traverse(pending).map(v -> null);
}
Also used : CombinedDifference(im.actor.core.modules.sequence.internal.CombinedDifference) Peer(im.actor.core.entity.Peer) ArrayList(java.util.ArrayList) UpdateMessageReadByMe(im.actor.core.api.updates.UpdateMessageReadByMe) Supplier(im.actor.runtime.function.Supplier) UpdateMessageReceived(im.actor.core.api.updates.UpdateMessageReceived) Void(im.actor.runtime.actors.messages.Void) Update(im.actor.core.network.parser.Update) UpdateMessageRead(im.actor.core.api.updates.UpdateMessageRead)

Aggregations

Void (im.actor.runtime.actors.messages.Void)37 ModuleContext (im.actor.core.modules.ModuleContext)16 ModuleActor (im.actor.core.modules.ModuleActor)15 RpcException (im.actor.core.network.RpcException)15 CommandCallback (im.actor.core.viewmodel.CommandCallback)15 ArrayList (java.util.ArrayList)15 List (java.util.List)13 Log (im.actor.runtime.Log)12 Promise (im.actor.runtime.promise.Promise)11 Peer (im.actor.core.entity.Peer)10 UsedByApp (im.actor.core.js.annotations.UsedByApp)9 JsPromiseExecutor (im.actor.runtime.js.utils.JsPromiseExecutor)9 Message (im.actor.core.entity.Message)8 UserVM (im.actor.core.viewmodel.UserVM)8 Update (im.actor.core.network.parser.Update)7 HashSet (java.util.HashSet)7 Group (im.actor.core.entity.Group)6 User (im.actor.core.entity.User)6 ApiSupportConfiguration (im.actor.core.modules.api.ApiSupportConfiguration)6 AlertDialog (android.app.AlertDialog)5