do not invoke onPushFailed() on timeout
This commit is contained in:
parent
8d5a7c79da
commit
d3b20544c9
|
@ -574,8 +574,9 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
mXmppConnectionService.sendIqPacket(account, publish, new OnIqPacketReceived() {
|
mXmppConnectionService.sendIqPacket(account, publish, new OnIqPacketReceived() {
|
||||||
@Override
|
@Override
|
||||||
public void onIqPacketReceived(Account account, IqPacket packet) {
|
public void onIqPacketReceived(Account account, IqPacket packet) {
|
||||||
Element error = packet.getType() == IqPacket.TYPE.ERROR ? packet.findChild("error") : null;
|
final Element error = packet.getType() == IqPacket.TYPE.ERROR ? packet.findChild("error") : null;
|
||||||
if (firstAttempt && error != null && error.hasChild("precondition-not-met", Namespace.PUBSUB_ERROR)) {
|
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");
|
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() {
|
mXmppConnectionService.pushNodeConfiguration(account, AxolotlService.PEP_DEVICE_LIST, publishOptions, new XmppConnectionService.OnConfigurationPushed() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -595,9 +596,14 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
mXmppConnectionService.databaseBackend.updateAccount(account);
|
mXmppConnectionService.databaseBackend.updateAccount(account);
|
||||||
}
|
}
|
||||||
if (packet.getType() == IqPacket.TYPE.ERROR) {
|
if (packet.getType() == IqPacket.TYPE.ERROR) {
|
||||||
|
if (preConditionNotMet) {
|
||||||
|
Log.d(Config.LOGTAG,account.getJid().asBareJid()+": pre condition still not met on second attempt");
|
||||||
|
} else if (error != null) {
|
||||||
pepBroken = true;
|
pepBroken = true;
|
||||||
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing own device id" + packet.findChild("error"));
|
Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while publishing own device id" + packet.findChild("error"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -2546,15 +2546,15 @@ public class XmppConnectionService extends Service {
|
||||||
public void onIqPacketReceived(Account account, IqPacket packet) {
|
public void onIqPacketReceived(Account account, IqPacket packet) {
|
||||||
if (packet.getType() == IqPacket.TYPE.RESULT && callback != null) {
|
if (packet.getType() == IqPacket.TYPE.RESULT && callback != null) {
|
||||||
callback.onPushSucceeded();
|
callback.onPushSucceeded();
|
||||||
} else {
|
} else if (packet.getType() == IqPacket.TYPE.ERROR && callback != null) {
|
||||||
Log.d(Config.LOGTAG, packet.toString());
|
callback.onPushFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (callback != null) {
|
} else if (callback != null) {
|
||||||
callback.onPushFailed();
|
callback.onPushFailed();
|
||||||
}
|
}
|
||||||
} else if (callback != null) {
|
} else if (packet.getType() == IqPacket.TYPE.ERROR && callback != null) {
|
||||||
callback.onPushFailed();
|
callback.onPushFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue