code cleanup in AxolotlService.fetchDeviceIds()
This commit is contained in:
parent
aff2b33e27
commit
7fd25abea2
|
@ -978,7 +978,8 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
fetchDeviceIds(jid, null);
|
fetchDeviceIds(jid, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fetchDeviceIds(final Jid jid, OnDeviceIdsFetched callback) {
|
private void fetchDeviceIds(final Jid jid, OnDeviceIdsFetched callback) {
|
||||||
|
IqPacket packet;
|
||||||
synchronized (this.fetchDeviceIdsMap) {
|
synchronized (this.fetchDeviceIdsMap) {
|
||||||
List<OnDeviceIdsFetched> callbacks = this.fetchDeviceIdsMap.get(jid);
|
List<OnDeviceIdsFetched> callbacks = this.fetchDeviceIdsMap.get(jid);
|
||||||
if (callbacks != null) {
|
if (callbacks != null) {
|
||||||
|
@ -986,6 +987,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
callbacks.add(callback);
|
callbacks.add(callback);
|
||||||
}
|
}
|
||||||
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": fetching device ids for " + jid + " already running. adding callback");
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": fetching device ids for " + jid + " already running. adding callback");
|
||||||
|
packet = null;
|
||||||
} else {
|
} else {
|
||||||
callbacks = new ArrayList<>();
|
callbacks = new ArrayList<>();
|
||||||
if (callback != null) {
|
if (callback != null) {
|
||||||
|
@ -993,35 +995,37 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded {
|
||||||
}
|
}
|
||||||
this.fetchDeviceIdsMap.put(jid, callbacks);
|
this.fetchDeviceIdsMap.put(jid, callbacks);
|
||||||
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": fetching device ids for " + jid);
|
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": fetching device ids for " + jid);
|
||||||
IqPacket packet = mXmppConnectionService.getIqGenerator().retrieveDeviceIds(jid);
|
packet = mXmppConnectionService.getIqGenerator().retrieveDeviceIds(jid);
|
||||||
mXmppConnectionService.sendIqPacket(account, packet, (account, response) -> {
|
}
|
||||||
synchronized (fetchDeviceIdsMap) {
|
}
|
||||||
List<OnDeviceIdsFetched> callbacks1 = fetchDeviceIdsMap.remove(jid);
|
if (packet != null) {
|
||||||
if (response.getType() == IqPacket.TYPE.RESULT) {
|
mXmppConnectionService.sendIqPacket(account, packet, (account, response) -> {
|
||||||
fetchDeviceListStatus.put(jid, true);
|
synchronized (fetchDeviceIdsMap) {
|
||||||
Element item = mXmppConnectionService.getIqParser().getItem(response);
|
List<OnDeviceIdsFetched> callbacks = fetchDeviceIdsMap.remove(jid);
|
||||||
Set<Integer> deviceIds = mXmppConnectionService.getIqParser().deviceIds(item);
|
if (response.getType() == IqPacket.TYPE.RESULT) {
|
||||||
registerDevices(jid, deviceIds);
|
fetchDeviceListStatus.put(jid, true);
|
||||||
if (callbacks1 != null) {
|
Element item = mXmppConnectionService.getIqParser().getItem(response);
|
||||||
for (OnDeviceIdsFetched callback1 : callbacks1) {
|
Set<Integer> deviceIds = mXmppConnectionService.getIqParser().deviceIds(item);
|
||||||
callback1.fetched(jid, deviceIds);
|
registerDevices(jid, deviceIds);
|
||||||
}
|
if (callbacks != null) {
|
||||||
|
for (OnDeviceIdsFetched c : callbacks) {
|
||||||
|
c.fetched(jid, deviceIds);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (response.getType() == IqPacket.TYPE.TIMEOUT) {
|
||||||
|
fetchDeviceListStatus.remove(jid);
|
||||||
} else {
|
} else {
|
||||||
if (response.getType() == IqPacket.TYPE.TIMEOUT) {
|
fetchDeviceListStatus.put(jid, false);
|
||||||
fetchDeviceListStatus.remove(jid);
|
}
|
||||||
} else {
|
if (callbacks != null) {
|
||||||
fetchDeviceListStatus.put(jid, false);
|
for (OnDeviceIdsFetched c : callbacks) {
|
||||||
}
|
c.fetched(jid, null);
|
||||||
if (callbacks1 != null) {
|
|
||||||
for (OnDeviceIdsFetched callback1 : callbacks1) {
|
|
||||||
callback1.fetched(jid, null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue