Search in sources :

Example 1 with Block

use of com.xabber.xmpp.blocking.Block in project xabber-android by redsolution.

the class BlockingManager method blockContact.

public void blockContact(String account, final String contactJid, final BlockContactListener listener) {
    final Block blockRequest = new Block();
    blockRequest.setType(IQ.Type.set);
    blockRequest.addItem(contactJid);
    try {
        ConnectionManager.getInstance().sendRequest(account, blockRequest, new OnResponseListener() {

            @Override
            public void onReceived(String account, String packetId, IQ iq) {
                if (!blockRequest.getStanzaId().equals(packetId)) {
                    return;
                }
                if (iq.getType() == IQ.Type.result) {
                    requestBlockList(account);
                    listener.onSuccess();
                } else {
                    listener.onError();
                }
            }

            @Override
            public void onError(String account, String packetId, IQ iq) {
                listener.onError();
            }

            @Override
            public void onTimeout(String account, String packetId) {
                listener.onError();
            }

            @Override
            public void onDisconnect(String account, String packetId) {
                listener.onError();
            }
        });
    } catch (NetworkException e) {
        e.printStackTrace();
        listener.onError();
    }
}
Also used : OnResponseListener(com.xabber.android.data.connection.OnResponseListener) IQ(org.jivesoftware.smack.packet.IQ) Block(com.xabber.xmpp.blocking.Block) NetworkException(com.xabber.android.data.NetworkException)

Example 2 with Block

use of com.xabber.xmpp.blocking.Block in project xabber-android by redsolution.

the class BlockingManager method onPacket.

@Override
public void onPacket(ConnectionItem connection, String bareAddress, Stanza packet) {
    if (packet instanceof Block && ((Block) packet).getType() == IQ.Type.set) {
        LogManager.i(this, "Block push received");
        Block block = (Block) packet;
        for (String contact : block.getItems()) {
            blockContactLocally(packet.getTo(), contact);
        }
        requestBlockList(packet.getTo());
    }
    if (packet instanceof Unblock && ((Unblock) packet).getType() == IQ.Type.set) {
        LogManager.i(this, "Unblock push received");
        requestBlockList(packet.getTo());
    }
}
Also used : Block(com.xabber.xmpp.blocking.Block) Unblock(com.xabber.xmpp.blocking.Unblock)

Aggregations

Block (com.xabber.xmpp.blocking.Block)2 NetworkException (com.xabber.android.data.NetworkException)1 OnResponseListener (com.xabber.android.data.connection.OnResponseListener)1 Unblock (com.xabber.xmpp.blocking.Unblock)1 IQ (org.jivesoftware.smack.packet.IQ)1