better detect broken pep
mark pep as broken when publishing bundle or device list failed reset 'brokenness' when account is getting disabled
This commit is contained in:
parent
a968260b18
commit
ecaf75e5ec
|
@ -314,6 +314,11 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
|||
return this.pepBroken;
|
||||
}
|
||||
|
||||
public void resetBrokenness() {
|
||||
this.pepBroken = false;
|
||||
numPublishTriesOnEmptyPep = 0;
|
||||
}
|
||||
|
||||
public void regenerateKeys(boolean wipeOther) {
|
||||
axolotlStore.regenerate();
|
||||
sessions.clear();
|
||||
|
@ -448,7 +453,8 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
|||
mXmppConnectionService.sendIqPacket(account, publish, new OnIqPacketReceived() {
|
||||
@Override
|
||||
public void onIqPacketReceived(Account account, IqPacket packet) {
|
||||
if (packet.getType() != IqPacket.TYPE.RESULT) {
|
||||
if (packet.getType() == IqPacket.TYPE.ERROR) {
|
||||
pepBroken = true;
|
||||
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing own device id" + packet.findChild("error"));
|
||||
}
|
||||
}
|
||||
|
@ -612,7 +618,8 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
|||
Log.d(Config.LOGTAG, getLogprefix(account) + "Announcing device " + getOwnDeviceId());
|
||||
publishOwnDeviceIdIfNeeded();
|
||||
}
|
||||
} else {
|
||||
} else if (packet.getType() == IqPacket.TYPE.ERROR) {
|
||||
pepBroken = true;
|
||||
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing bundle: " + packet.findChild("error"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2581,6 +2581,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
|
|||
disconnect(account, force);
|
||||
account.getRoster().clearPresences();
|
||||
connection.resetEverything();
|
||||
account.getAxolotlService().resetBrokenness();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue