/* * Copyright (C) 2015 Actor LLC. <https://actor.im> */ package im.actor.core.modules.contacts; import im.actor.core.api.updates.UpdateContactsAdded; import im.actor.core.api.updates.UpdateContactsRemoved; import im.actor.core.modules.ModuleContext; import im.actor.core.modules.sequence.processor.SequenceProcessor; import im.actor.core.network.parser.Update; import im.actor.runtime.actors.messages.Void; import im.actor.runtime.promise.Promise; public class ContactsProcessor implements SequenceProcessor { private ModuleContext context; public ContactsProcessor(ModuleContext context) { this.context = context; } @Override public Promise<Void> process(Update update) { if (update instanceof UpdateContactsAdded) { UpdateContactsAdded contactsAdded = (UpdateContactsAdded) update; int[] uids = new int[contactsAdded.getUids().size()]; for (int i = 0; i < uids.length; i++) { uids[i] = contactsAdded.getUids().get(i); } context.getContactsModule().getContactSyncActor() .send(new ContactsSyncActor.ContactsAdded(uids)); return Promise.success(null); } else if (update instanceof UpdateContactsRemoved) { UpdateContactsRemoved contactsRemoved = (UpdateContactsRemoved) update; int[] uids = new int[contactsRemoved.getUids().size()]; for (int i = 0; i < uids.length; i++) { uids[i] = contactsRemoved.getUids().get(i); } context.getContactsModule().getContactSyncActor() .send(new ContactsSyncActor.ContactsRemoved(uids)); return Promise.success(null); } return null; } }