Change summary
src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java | 7
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 3
2 files changed, 9 insertions(+), 1 deletion(-)
Detailed changes
@@ -839,6 +839,13 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
});
}
+ public void deleteOmemoIdentity() {
+ final String node = AxolotlService.PEP_BUNDLES + ":" + getOwnDeviceId();
+ final IqPacket deleteBundleNode = mXmppConnectionService.getIqGenerator().deleteNode(node);
+ mXmppConnectionService.sendIqPacket(account, deleteBundleNode, null);
+ publishDeviceIdsAndRefineAccessModel(getOwnDeviceIds());
+ }
+
public List<Jid> getCryptoTargets(Conversation conversation) {
final List<Jid> jids;
if (conversation.getMode() == Conversation.MODE_SINGLE) {
@@ -2199,6 +2199,7 @@ public class XmppConnectionService extends Service {
public void deleteAccount(final Account account) {
synchronized (this.conversations) {
+ account.getAxolotlService().deleteOmemoIdentity();
for (final Conversation conversation : conversations) {
if (conversation.getAccount() == account) {
if (conversation.getMode() == Conversation.MODE_MULTI) {
@@ -2209,7 +2210,7 @@ public class XmppConnectionService extends Service {
}
}
if (account.getXmppConnection() != null) {
- new Thread(() -> disconnect(account, true)).start();
+ new Thread(() -> disconnect(account, false)).start();
}
final Runnable runnable = () -> {
if (!databaseBackend.deleteAccount(account)) {