Fix error handling for announce check retrieval

Andreas Straub created

Only aborts when a timeout was received. Error conditions (most notably
item-not-found) are interpreted as no other devices existing.

Change summary

src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java | 6 
1 file changed, 3 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java 🔗

@@ -323,14 +323,14 @@ public class AxolotlService {
 		mXmppConnectionService.sendIqPacket(account, packet, new OnIqPacketReceived() {
 			@Override
 			public void onIqPacketReceived(Account account, IqPacket packet) {
-				if (packet.getType() == IqPacket.TYPE.RESULT) {
+				if (packet.getType() == IqPacket.TYPE.TIMEOUT) {
+					Log.d(Config.LOGTAG, getLogprefix(account) + "Timeout received while retrieving own Device Ids.");
+				} else {
 					Element item = mXmppConnectionService.getIqParser().getItem(packet);
 					Set<Integer> deviceIds = mXmppConnectionService.getIqParser().deviceIds(item);
 					if (!deviceIds.contains(getOwnDeviceId())) {
 						publishOwnDeviceId(deviceIds);
 					}
-				} else {
-					Log.d(Config.LOGTAG, getLogprefix(account) + "Error received while retrieving Device Ids" + packet.findChild("error"));
 				}
 			}
 		});