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();
}
}
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());
}
}
Aggregations