diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-05-02 22:08:15 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-05-02 22:08:15 +0200 |
commit | dbb0cfac4bf7870093c5033e31bfff6ca71b11d4 (patch) | |
tree | 48be4cab8c5d8a16147e2aa3ea5a9ca78ac3d3f4 /src/main | |
parent | cfb8c4fcdb469d25b2e1378ed850e92e66eb5a02 (diff) |
do not invoke onPushFailed() on timeout
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java | 13 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/services/XmppConnectionService.java | 6 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java b/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java index 989fe90a4..a4884e60a 100644 --- a/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java +++ b/src/main/java/de/pixart/messenger/crypto/axolotl/AxolotlService.java @@ -574,8 +574,9 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { mXmppConnectionService.sendIqPacket(account, publish, new OnIqPacketReceived() { @Override public void onIqPacketReceived(Account account, IqPacket packet) { - Element error = packet.getType() == IqPacket.TYPE.ERROR ? packet.findChild("error") : null; - if (firstAttempt && error != null && error.hasChild("precondition-not-met", Namespace.PUBSUB_ERROR)) { + final Element error = packet.getType() == IqPacket.TYPE.ERROR ? packet.findChild("error") : null; + final boolean preConditionNotMet = error != null && error.hasChild("precondition-not-met", Namespace.PUBSUB_ERROR); + if (firstAttempt && preConditionNotMet) { Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": precondition wasn't met for device list. pushing node configuration"); mXmppConnectionService.pushNodeConfiguration(account, AxolotlService.PEP_DEVICE_LIST, publishOptions, new XmppConnectionService.OnConfigurationPushed() { @Override @@ -595,8 +596,12 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { mXmppConnectionService.databaseBackend.updateAccount(account); } if (packet.getType() == IqPacket.TYPE.ERROR) { - pepBroken = true; - Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing own device id" + packet.findChild("error")); + if (preConditionNotMet) { + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": pre condition still not met on second attempt"); + } else if (error != null) { + pepBroken = true; + Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing own device id" + packet.findChild("error")); + } } } } diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index 32751d792..5fa2c1127 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -2794,15 +2794,15 @@ public class XmppConnectionService extends Service { public void onIqPacketReceived(Account account, IqPacket packet) { if (packet.getType() == IqPacket.TYPE.RESULT && callback != null) { callback.onPushSucceeded(); - } else { - Log.d(Config.LOGTAG, packet.toString()); + } else if (packet.getType() == IqPacket.TYPE.ERROR && callback != null) { + callback.onPushFailed(); } } }); } else if (callback != null) { callback.onPushFailed(); } - } else if (callback != null) { + } else if (packet.getType() == IqPacket.TYPE.ERROR && callback != null) { callback.onPushFailed(); } } |