fetch new conference configuration on every conf update
This commit is contained in:
		
							parent
							
								
									9efef24a04
								
							
						
					
					
						commit
						f3ef8d4978
					
				|  | @ -127,7 +127,6 @@ public class MucOptions { | ||||||
| 		UNKNOWN | 		UNKNOWN | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public static final String STATUS_CODE_ROOM_CONFIG_CHANGED = "104"; |  | ||||||
| 	public static final String STATUS_CODE_SELF_PRESENCE = "110"; | 	public static final String STATUS_CODE_SELF_PRESENCE = "110"; | ||||||
| 	public static final String STATUS_CODE_ROOM_CREATED = "201"; | 	public static final String STATUS_CODE_ROOM_CREATED = "201"; | ||||||
| 	public static final String STATUS_CODE_BANNED = "301"; | 	public static final String STATUS_CODE_BANNED = "301"; | ||||||
|  |  | ||||||
|  | @ -587,26 +587,27 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if (conversation != null && mucUserElement != null && from.isBareJid()) { | 			if (conversation != null && mucUserElement != null && from.isBareJid()) { | ||||||
| 				if (mucUserElement.hasChild("status")) { | 				for (Element child : mucUserElement.getChildren()) { | ||||||
| 					for (Element child : mucUserElement.getChildren()) { | 					if ("status".equals(child.getName())) { | ||||||
| 						if (child.getName().equals("status") | 						try { | ||||||
| 								&& MucOptions.STATUS_CODE_ROOM_CONFIG_CHANGED.equals(child.getAttribute("code"))) { | 							int code = Integer.parseInt(child.getAttribute("code")); | ||||||
| 							mXmppConnectionService.fetchConferenceConfiguration(conversation); | 							if ((code >= 170 && code <= 174) || (code >= 102 && code <= 104)) { | ||||||
| 						} | 								mXmppConnectionService.fetchConferenceConfiguration(conversation); | ||||||
| 					} | 								break; | ||||||
| 				} else if (mucUserElement.hasChild("item")) { |  | ||||||
| 					for(Element child : mucUserElement.getChildren()) { |  | ||||||
| 						if ("item".equals(child.getName())) { |  | ||||||
| 							MucOptions.User user = AbstractParser.parseItem(conversation,child); |  | ||||||
| 							Log.d(Config.LOGTAG,account.getJid()+": changing affiliation for " |  | ||||||
| 									+user.getRealJid()+" to "+user.getAffiliation()+" in " |  | ||||||
| 									+conversation.getJid().toBareJid()); |  | ||||||
| 							if (!user.realJidMatchesAccount()) { |  | ||||||
| 								conversation.getMucOptions().addUser(user); |  | ||||||
| 								mXmppConnectionService.getAvatarService().clear(conversation); |  | ||||||
| 								mXmppConnectionService.updateMucRosterUi(); |  | ||||||
| 								mXmppConnectionService.updateConversationUi(); |  | ||||||
| 							} | 							} | ||||||
|  | 						} catch (Exception e) { | ||||||
|  | 							//ignored | ||||||
|  | 						} | ||||||
|  | 					} else if ("item".equals(child.getName())) { | ||||||
|  | 						MucOptions.User user = AbstractParser.parseItem(conversation,child); | ||||||
|  | 						Log.d(Config.LOGTAG,account.getJid()+": changing affiliation for " | ||||||
|  | 								+user.getRealJid()+" to "+user.getAffiliation()+" in " | ||||||
|  | 								+conversation.getJid().toBareJid()); | ||||||
|  | 						if (!user.realJidMatchesAccount()) { | ||||||
|  | 							conversation.getMucOptions().addUser(user); | ||||||
|  | 							mXmppConnectionService.getAvatarService().clear(conversation); | ||||||
|  | 							mXmppConnectionService.updateMucRosterUi(); | ||||||
|  | 							mXmppConnectionService.updateConversationUi(); | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch