use translated version of subject if available
This commit is contained in:
		
							parent
							
								
									7c1d91dd03
								
							
						
					
					
						commit
						3bff110587
					
				| @ -606,7 +606,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece | |||||||
| 				if (packet.hasChild("subject")) { | 				if (packet.hasChild("subject")) { | ||||||
| 					if (conversation != null && conversation.getMode() == Conversation.MODE_MULTI) { | 					if (conversation != null && conversation.getMode() == Conversation.MODE_MULTI) { | ||||||
| 						conversation.setHasMessagesLeftOnServer(conversation.countMessages() > 0); | 						conversation.setHasMessagesLeftOnServer(conversation.countMessages() > 0); | ||||||
| 						String subject = packet.findChildContent("subject"); | 						String subject = packet.findInternationalizedChildContent("subject"); | ||||||
| 						if (conversation.getMucOptions().setSubject(subject)) { | 						if (conversation.getMucOptions().setSubject(subject)) { | ||||||
| 							mXmppConnectionService.updateConversation(conversation); | 							mXmppConnectionService.updateConversation(conversation); | ||||||
| 						} | 						} | ||||||
|  | |||||||
| @ -1,10 +1,13 @@ | |||||||
| package eu.siacs.conversations.xml; | package eu.siacs.conversations.xml; | ||||||
| 
 | 
 | ||||||
|  | import android.support.annotation.NonNull; | ||||||
| import android.util.Log; | import android.util.Log; | ||||||
| 
 | 
 | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
|  | import java.util.HashMap; | ||||||
| import java.util.Hashtable; | import java.util.Hashtable; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import java.util.Locale; | ||||||
| 
 | 
 | ||||||
| import eu.siacs.conversations.Config; | import eu.siacs.conversations.Config; | ||||||
| import eu.siacs.conversations.utils.XmlHelper; | import eu.siacs.conversations.utils.XmlHelper; | ||||||
| @ -67,6 +70,29 @@ public class Element { | |||||||
| 		return element == null ? null : element.getContent(); | 		return element == null ? null : element.getContent(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	public String findInternationalizedChildContent(String name) { | ||||||
|  | 		return findInternationalizedChildContent(name, Locale.getDefault().getLanguage()); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public String findInternationalizedChildContent(String name,@NonNull String language) { | ||||||
|  | 		HashMap<String,String> contents = new HashMap<>(); | ||||||
|  | 		for(Element child : this.children) { | ||||||
|  | 			if (name.equals(child.getName())) { | ||||||
|  | 				String lang = child.getAttribute("xml:lang"); | ||||||
|  | 				String content = child.getContent(); | ||||||
|  | 				if (content != null) { | ||||||
|  | 					if (language.equals(lang)) { | ||||||
|  | 						return content; | ||||||
|  | 					} else { | ||||||
|  | 						contents.put(lang, content); | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		return contents.get(null); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	public Element findChild(String name, String xmlns) { | 	public Element findChild(String name, String xmlns) { | ||||||
| 		for (Element child : this.children) { | 		for (Element child : this.children) { | ||||||
| 			if (name.equals(child.getName()) && xmlns.equals(child.getAttribute("xmlns"))) { | 			if (name.equals(child.getName()) && xmlns.equals(child.getAttribute("xmlns"))) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch