In my chat Application I send and receive request successfully,but on request accept or decline presence not subscribed or unsubscribed and RosterEntry type set from/to instead of both.
How can I set RosterEntry type “both” in sender-receiver rosterlist? Here is my code for accept and decline request,
//Accept Request code
Roster roster = Utils.manager.getconnection().getRoster();
Collection entries = roster.getEntries();
for (RosterEntry entry : entries) {
//example: get presence, type, mode, status
if(entry.getUser().equals(String.valueOf(from_user)) && entry.getType().equals(ItemType.from))
{
Presence accept = new Presence(Presence.Type.subscribed);
accept.setFrom(loginuser);
accept.setTo(entry.getUser() + “/” + entry.getUser().split("@")[0]);
accept.setPriority(24);
accept.setMode(Presence.Mode.available);
Utils.manager.getconnection().sendPacket(accept);
break;
}
System.out.println(“roster entry after accept request” + " " + entry.getUser() + " " + entry.getType());
}
//Decline Request code
Roster roster = Utils.manager.getconnection().getRoster();
Collection entries = roster.getEntries();
Log.d(“TRACE”, “entries.size()=” + entries.size());
for (RosterEntry e : entries) {
if(e.getUser().equals(String.valueOf(from_user)) && e.getType().equals(ItemType.from))
{
try {
roster.removeEntry(e);
//Presence subscribep = new Presence(Presence.Type.unsubscribed);
//subscribep.setTo(e.getUser());
//subscribep.setFrom(loginuser);
//Utils.manager.getconnection().sendPacket(subscribep);
} catch (XMPPException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
}
}