diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index bfcee9597e66a45471802d315ce1a41eae69b1e8..b18222c14df5b875f94641cb9eb33dac2cfc70e0 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -89,6 +89,7 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable private XmppConnection xmppConnection = null; private long mEndGracePeriod = 0L; private final Map bookmarks = new HashMap<>(); + private boolean bookmarksLoaded = false; private Presence.Status presenceStatus = Presence.Status.ONLINE; private String presenceStatusMessage = null; @@ -493,10 +494,13 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable } } + public boolean areBookmarksLoaded() { return bookmarksLoaded; } + public void setBookmarks(Map bookmarks) { synchronized (this.bookmarks) { this.bookmarks.clear(); this.bookmarks.putAll(bookmarks); + this.bookmarksLoaded = true; } } diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index 5e5e652d14ab7c23bac8e5269b34e3dac53f02bc..fdc4c0bbc8a62a239234a893b2ecdb8777d700d6 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -1894,6 +1894,8 @@ public class XmppConnectionService extends Service { } private void pushBookmarksPrivateXml(Account account) { + if (!account.areBookmarksLoaded()) return; + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": pushing bookmarks via private xml"); IqPacket iqPacket = new IqPacket(IqPacket.TYPE.SET); Element query = iqPacket.query("jabber:iq:private"); @@ -1905,6 +1907,8 @@ public class XmppConnectionService extends Service { } private void pushBookmarksPep(Account account) { + if (!account.areBookmarksLoaded()) return; + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": pushing bookmarks via pep"); Element storage = new Element("storage", "storage:bookmarks"); for (Bookmark bookmark : account.getBookmarks()) {