catch conversations sort exception. not vital at this point

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/entities/Conversation.java          | 15 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 19 
2 files changed, 19 insertions(+), 15 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -28,7 +28,7 @@ import eu.siacs.conversations.xmpp.jid.InvalidJidException;
 import eu.siacs.conversations.xmpp.jid.Jid;
 
 
-public class Conversation extends AbstractEntity implements Blockable {
+public class Conversation extends AbstractEntity implements Blockable, Comparable<Conversation> {
 	public static final String TABLENAME = "conversations";
 
 	public static final int STATUS_AVAILABLE = 0;
@@ -356,6 +356,19 @@ public class Conversation extends AbstractEntity implements Blockable {
 		return getContact().isSelf();
 	}
 
+	@Override
+	public int compareTo(Conversation another) {
+		final Message left = getLatestMessage();
+		final Message right = another.getLatestMessage();
+		if (left.getTimeSent() > right.getTimeSent()) {
+			return -1;
+		} else if (left.getTimeSent() < right.getTimeSent()) {
+			return 1;
+		} else {
+			return 0;
+		}
+	}
+
 	public interface OnMessageFound {
 		void onMessageFound(final Message message);
 	}

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -1297,20 +1297,11 @@ public class XmppConnectionService extends Service {
 				}
 			}
 		}
-		Collections.sort(list, new Comparator<Conversation>() {
-			@Override
-			public int compare(Conversation lhs, Conversation rhs) {
-				Message left = lhs.getLatestMessage();
-				Message right = rhs.getLatestMessage();
-				if (left.getTimeSent() > right.getTimeSent()) {
-					return -1;
-				} else if (left.getTimeSent() < right.getTimeSent()) {
-					return 1;
-				} else {
-					return 0;
-				}
-			}
-		});
+		try {
+			Collections.sort(list);
+		} catch (IllegalArgumentException e) {
+			//ignore
+		}
 	}
 
 	public void loadMoreMessages(final Conversation conversation, final long timestamp, final OnMoreMessagesLoaded callback) {