Search in sources :

Example 1 with StickerPack

use of im.actor.core.entity.StickerPack 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)

Example 2 with StickerPack

use of im.actor.core.entity.StickerPack in project actor-platform by actorapp.

the class StickersActor method onStickerCollectionsChanged.

private void onStickerCollectionsChanged(List<ApiStickerCollection> updated) {
    for (int i = 0; i < stickersStorage.getStickerPacks().size(); i++) {
        StickerPack collection = stickersStorage.getStickerPacks().get(i);
        for (ApiStickerCollection c : updated) {
            if (c.getId() == collection.getId()) {
                stickersStorage.getStickerPacks().set(i, new StickerPack(c));
                break;
            }
        }
    }
    notifyVM();
    saveStorage();
}
Also used : ApiStickerCollection(im.actor.core.api.ApiStickerCollection) StickerPack(im.actor.core.entity.StickerPack)

Example 3 with StickerPack

use of im.actor.core.entity.StickerPack in project actor-platform by actorapp.

the class StickersActor method onOwnStickerCollectionChanged.

private void onOwnStickerCollectionChanged(List<ApiStickerCollection> ownStickers) {
    stickersStorage.getStickerPacks().clear();
    for (ApiStickerCollection collection : ownStickers) {
        stickersStorage.getStickerPacks().add(new StickerPack(collection));
    }
    notifyVM();
    saveStorage();
}
Also used : ApiStickerCollection(im.actor.core.api.ApiStickerCollection) StickerPack(im.actor.core.entity.StickerPack)

Aggregations

StickerPack (im.actor.core.entity.StickerPack)3 ApiStickerCollection (im.actor.core.api.ApiStickerCollection)2 Contact (im.actor.core.entity.Contact)1 Dialog (im.actor.core.entity.Dialog)1 Message (im.actor.core.entity.Message)1 Sticker (im.actor.core.entity.Sticker)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 JsSticker (im.actor.core.js.entity.JsSticker)1 JsUser (im.actor.core.js.entity.JsUser)1 DialogGroup (im.actor.core.viewmodel.DialogGroup)1 DialogSmall (im.actor.core.viewmodel.DialogSmall)1 GroupVM (im.actor.core.viewmodel.GroupVM)1 UserVM (im.actor.core.viewmodel.UserVM)1