aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/Account.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/entities/Account.java')
-rw-r--r--src/main/java/de/pixart/messenger/entities/Account.java12
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() {