Search in sources :

Example 1 with DialogGroup

use of im.actor.core.viewmodel.DialogGroup in project actor-platform by actorapp.

the class RouterActor method notifyActiveDialogsVM.

private void notifyActiveDialogsVM() {
    int counter = 0;
    ArrayList<DialogGroup> groups = new ArrayList<>();
    for (ActiveDialogGroup i : activeDialogStorage.getGroups()) {
        ArrayListDialogSmall dialogSmalls = new ArrayListDialogSmall();
        for (Peer p : i.getPeers()) {
            String title;
            Avatar avatar;
            if (p.getPeerType() == PeerType.GROUP) {
                Group group = getGroup(p.getPeerId());
                title = group.getTitle();
                avatar = group.getAvatar();
            } else if (p.getPeerType() == PeerType.PRIVATE) {
                User user = getUser(p.getPeerId());
                title = user.getName();
                avatar = user.getAvatar();
            } else {
                continue;
            }
            int unreadCount = conversationStates.getValue(p.getUnuqueId()).getUnreadCount();
            counter += unreadCount;
            dialogSmalls.add(new DialogSmall(p, title, avatar, unreadCount));
        }
        groups.add(new DialogGroup(i.getTitle(), i.getKey(), dialogSmalls));
    }
    context().getMessagesModule().getDialogGroupsVM().getGroupsValueModel().change(groups);
    context().getConductor().getGlobalStateVM().onGlobalCounterChanged(counter);
}
Also used : ApiDialogGroup(im.actor.core.api.ApiDialogGroup) Group(im.actor.core.entity.Group) DialogGroup(im.actor.core.viewmodel.DialogGroup) ActiveDialogGroup(im.actor.core.modules.messaging.router.entity.ActiveDialogGroup) ArrayListDialogSmall(im.actor.core.viewmodel.generics.ArrayListDialogSmall) User(im.actor.core.entity.User) ApiDialogGroup(im.actor.core.api.ApiDialogGroup) DialogGroup(im.actor.core.viewmodel.DialogGroup) ActiveDialogGroup(im.actor.core.modules.messaging.router.entity.ActiveDialogGroup) Peer(im.actor.core.entity.Peer) ArrayList(java.util.ArrayList) ActiveDialogGroup(im.actor.core.modules.messaging.router.entity.ActiveDialogGroup) DialogSmall(im.actor.core.viewmodel.DialogSmall) ArrayListDialogSmall(im.actor.core.viewmodel.generics.ArrayListDialogSmall) Avatar(im.actor.core.entity.Avatar)

Example 2 with DialogGroup

use of im.actor.core.viewmodel.DialogGroup in project actor-platform by actorapp.

the class JsBindingModule method onFileLoaded.

@Override
public void onFileLoaded(HashSet<Long> fileId) {
    if (dialogsList != null) {
        for (JsDisplayListBind<JsDialog, Dialog> b : dialogsList.getActiveBinds()) {
            b.startReconverting();
            for (Dialog dialog : b.getRawItems()) {
                if (checkAvatar(dialog.getDialogAvatar(), fileId)) {
                    b.forceReconvert(dialog.getEngineId());
                }
            }
            b.stopReconverting();
        }
    }
    if (dialogsGroupedList != null) {
        ArrayList<DialogGroup> groups = context().getMessagesModule().getDialogGroupsVM().getGroupsValueModel().get();
        if (groups != null) {
            outer: for (DialogGroup g : groups) {
                for (DialogSmall ds : g.getDialogs()) {
                    if (checkAvatar(ds.getAvatar(), fileId)) {
                        context().getMessagesModule().getDialogGroupsVM().getGroupsValueModel().forceNotify();
                        break outer;
                    }
                }
            }
        }
    }
    if (contactsList != null) {
        for (JsDisplayListBind<JsContact, Contact> b : contactsList.getActiveBinds()) {
            b.startReconverting();
            for (Contact contact : b.getRawItems()) {
                if (checkAvatar(contact.getAvatar(), fileId)) {
                    b.forceReconvert(contact.getEngineId());
                }
            }
            b.stopReconverting();
        }
    }
    for (JsDisplayList<JsMessage, Message> messageList : messageLists.values()) {
        for (JsDisplayListBind<JsMessage, Message> b : messageList.getActiveBinds()) {
            b.startReconverting();
            for (Message message : b.getRawItems()) {
                UserVM user = context().getUsersModule().getUsers().get(message.getSenderId());
                if (checkAvatar(user.getAvatar().get(), fileId)) {
                    b.forceReconvert(message.getEngineId());
                    continue;
                }
                if (message.getContent() instanceof DocumentContent) {
                    DocumentContent doc = (DocumentContent) message.getContent();
                    if (doc.getSource() instanceof FileRemoteSource) {
                        if (fileId.contains(((FileRemoteSource) doc.getSource()).getFileReference().getFileId())) {
                            b.forceReconvert(message.getEngineId());
                        }
                    }
                }
                if (message.getContent() instanceof StickerContent) {
                    StickerContent content = (StickerContent) message.getContent();
                    if (content.getImage512() != null) {
                        long stickerFileId = content.getImage512().getReference().getFileId();
                        if (fileId.contains(stickerFileId)) {
                            b.forceReconvert(message.getEngineId());
                        }
                    } else if (content.getImage256() != null) {
                        long stickerFileId = content.getImage256().getReference().getFileId();
                        if (fileId.contains(stickerFileId)) {
                            b.forceReconvert(message.getEngineId());
                        }
                    }
                }
            }
            b.stopReconverting();
        }
    }
    for (JsBindedValue<JsUser> u : users.values()) {
        int uid = u.get().getUid();
        UserVM userVM = context().getUsersModule().getUsers().get(uid);
        if (checkAvatar(userVM.getAvatar().get(), fileId)) {
            u.changeValue(JsUser.fromUserVM(userVM, messenger));
        }
    }
    for (JsBindedValue<JsGroup> g : groups.values()) {
        int gid = g.get().getGid();
        GroupVM groupVM = context().getGroupsModule().getGroupsCollection().get(gid);
        if (checkAvatar(groupVM.getAvatar().get(), fileId)) {
            g.changeValue(JsGroup.fromGroupVM(groupVM, messenger));
        }
    }
    // 
    if (stickers != null) {
        outer: for (StickerPack stickerPack : messenger.getAvailableStickersVM().getOwnStickerPacks().get()) {
            for (Sticker s : stickerPack.getStickers()) {
                if (s.getImage256() != null && fileId.contains(s.getImage256().getFileId())) {
                    messenger.getAvailableStickersVM().getOwnStickerPacks().forceNotify();
                    break outer;
                }
            }
        }
    }
}
Also used : JsMessage(im.actor.core.js.entity.JsMessage) Message(im.actor.core.entity.Message) StickerPack(im.actor.core.entity.StickerPack) JsMessage(im.actor.core.js.entity.JsMessage) Sticker(im.actor.core.entity.Sticker) JsSticker(im.actor.core.js.entity.JsSticker) JsDialog(im.actor.core.js.entity.JsDialog) JsDialog(im.actor.core.js.entity.JsDialog) Dialog(im.actor.core.entity.Dialog) JsUser(im.actor.core.js.entity.JsUser) DialogSmall(im.actor.core.viewmodel.DialogSmall) StickerContent(im.actor.core.entity.content.StickerContent) GroupVM(im.actor.core.viewmodel.GroupVM) JsContact(im.actor.core.js.entity.JsContact) JsContact(im.actor.core.js.entity.JsContact) Contact(im.actor.core.entity.Contact) UserVM(im.actor.core.viewmodel.UserVM) FileRemoteSource(im.actor.core.entity.content.FileRemoteSource) DocumentContent(im.actor.core.entity.content.DocumentContent) JsDialogGroup(im.actor.core.js.entity.JsDialogGroup) DialogGroup(im.actor.core.viewmodel.DialogGroup) JsGroup(im.actor.core.js.entity.JsGroup)

Aggregations

DialogGroup (im.actor.core.viewmodel.DialogGroup)2 DialogSmall (im.actor.core.viewmodel.DialogSmall)2 ApiDialogGroup (im.actor.core.api.ApiDialogGroup)1 Avatar (im.actor.core.entity.Avatar)1 Contact (im.actor.core.entity.Contact)1 Dialog (im.actor.core.entity.Dialog)1 Group (im.actor.core.entity.Group)1 Message (im.actor.core.entity.Message)1 Peer (im.actor.core.entity.Peer)1 Sticker (im.actor.core.entity.Sticker)1 StickerPack (im.actor.core.entity.StickerPack)1 User (im.actor.core.entity.User)1 DocumentContent (im.actor.core.entity.content.DocumentContent)1 FileRemoteSource (im.actor.core.entity.content.FileRemoteSource)1 StickerContent (im.actor.core.entity.content.StickerContent)1 JsContact (im.actor.core.js.entity.JsContact)1 JsDialog (im.actor.core.js.entity.JsDialog)1 JsDialogGroup (im.actor.core.js.entity.JsDialogGroup)1 JsGroup (im.actor.core.js.entity.JsGroup)1 JsMessage (im.actor.core.js.entity.JsMessage)1