diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index 32e929f48b5c9137043021242efc8cda5106e9ee..a54772c5039c98ce57e7f6f0d5166d67b4367bf7 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -1769,6 +1769,9 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl if (mimeType.startsWith("image/") && "https".equals(uri.getScheme())) { final Drawable d = cache.get(uri.toString()); if (d == null) { + synchronized (CommandSession.this) { + waitingForRefresh = true; + } int size = (int)(xmppConnectionService.getResources().getDisplayMetrics().density * 288); Message dummy = new Message(Conversation.this, uri.toString(), Message.ENCRYPTION_NONE); dummy.setFileParams(new Message.FileParams(uri.toString())); @@ -2589,6 +2592,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl protected WebView actionToWebview = null; protected int fillableFieldCount = 0; protected IqPacket pendingResponsePacket = null; + protected boolean waitingForRefresh = false; CommandSession(String title, String node, XmppConnectionService xmppConnectionService) { loading(); @@ -3063,7 +3067,9 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl } public void refresh() { - notifyDataSetChanged(); + synchronized(this) { + if (waitingForRefresh) notifyDataSetChanged(); + } } protected void loading() {