account deletion: only attempt to delete omemo id when connected
This commit is contained in:
parent
7b160a358e
commit
618d892ae7
|
@ -2198,19 +2198,24 @@ public class XmppConnectionService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteAccount(final Account account) {
|
public void deleteAccount(final Account account) {
|
||||||
|
final boolean connected = account.getStatus() == Account.State.ONLINE;
|
||||||
synchronized (this.conversations) {
|
synchronized (this.conversations) {
|
||||||
|
if (connected) {
|
||||||
account.getAxolotlService().deleteOmemoIdentity();
|
account.getAxolotlService().deleteOmemoIdentity();
|
||||||
|
}
|
||||||
for (final Conversation conversation : conversations) {
|
for (final Conversation conversation : conversations) {
|
||||||
if (conversation.getAccount() == account) {
|
if (conversation.getAccount() == account) {
|
||||||
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
if (conversation.getMode() == Conversation.MODE_MULTI) {
|
||||||
|
if (connected) {
|
||||||
leaveMuc(conversation);
|
leaveMuc(conversation);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
conversations.remove(conversation);
|
conversations.remove(conversation);
|
||||||
mNotificationService.clear(conversation);
|
mNotificationService.clear(conversation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (account.getXmppConnection() != null) {
|
if (account.getXmppConnection() != null) {
|
||||||
new Thread(() -> disconnect(account, false)).start();
|
new Thread(() -> disconnect(account, !connected)).start();
|
||||||
}
|
}
|
||||||
final Runnable runnable = () -> {
|
final Runnable runnable = () -> {
|
||||||
if (!databaseBackend.deleteAccount(account)) {
|
if (!databaseBackend.deleteAccount(account)) {
|
||||||
|
|
Loading…
Reference in a new issue