I have created a room for group chat. I have created group and added members successfully, but the problem is that members in group are not persisting.The group member get automatically deleted after refreshing.
code :
code : generating jabber id
private MultiUserChat getMultiUserChat("123456789"){
MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(getXmppConnection());
String jid = "123456789@conference.188.202.110.17";
return manager.getMultiUserChat(jid);
}
code : Creating and joining to room
public void createReservedRoom(Context context, String jidName, String roomName, String nickName){
try {
connect();
MultiUserChat muc = getMultiUserChat(jidName);
muc.create(nickName);
try {
//PreferenceUtils.setObject(context, muc, PreferenceUtils.MUC_OBJ);
}catch (Exception e){
e.printStackTrace();
}
Form form = getForm(muc, roomName);
// Send the completed form
muc.sendConfigurationForm(form);
muc.join(nickName);
}catch (Exception e){
e.printStackTrace();
}
}
code : create room
private Form getForm(MultiUserChat muc, String roomName){
Form form = null;
try {
form = muc.getConfigurationForm().createAnswerForm();
// Create a new form to submit based on the original form
form.setAnswer("muc#roomconfig_passwordprotectedroom", false);
form.setAnswer("muc#roomconfig_roomname", roomName);
form.setAnswer("muc#roomconfig_persistentroom", true);
form.setAnswer("muc#roomconfig_changesubject", true);
form.setAnswer("muc#roomconfig_publicroom",true);
form.setAnswer("muc#roomconfig_allowinvites",true);
form.setAnswer("muc#roomconfig_membersonly",true);
form.setAnswer("muc#roomconfig_moderatedroom",false);
// Sets the new owner of the room
List<String> owners = new ArrayList<String>();
//Be carefull: if members does not exists, it brakes!
owners.add("123456789@conference.188.202.110.17");
form.setAnswer("muc#roomconfig_roomowners", owners);
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (NotConnectedException e) {
e.printStackTrace();
}
return form;
}