diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/entities/Account.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/Account.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Account.java b/src/main/java/de/pixart/messenger/entities/Account.java index 03673c689..3cb5e027f 100644 --- a/src/main/java/de/pixart/messenger/entities/Account.java +++ b/src/main/java/de/pixart/messenger/entities/Account.java @@ -314,9 +314,17 @@ public class Account extends AbstractEntity { public boolean setJid(final Jid next) { final Jid prev = this.jid != null ? this.jid.toBareJid() : null; + final boolean changed = prev == null || (next != null && !prev.equals(next.toBareJid())); + if (changed) { + final AxolotlService oldAxolotlService = this.axolotlService; + if (oldAxolotlService != null) { + oldAxolotlService.destroy(); + this.jid = next; + this.axolotlService = oldAxolotlService.makeNew(); + } + } this.jid = next; - return prev == null || (next != null && !prev.equals(next.toBareJid()) - ); + return changed; } public Jid getServer() { |