only explicitly request device list for users not in roster fixups
This commit is contained in:
parent
a09d63d9a4
commit
90ace36b18
|
@ -759,6 +759,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
|
||||||
mXmppConnectionService.getAvatarService().clear(conversation);
|
mXmppConnectionService.getAvatarService().clear(conversation);
|
||||||
mXmppConnectionService.updateMucRosterUi();
|
mXmppConnectionService.updateMucRosterUi();
|
||||||
mXmppConnectionService.updateConversationUi();
|
mXmppConnectionService.updateConversationUi();
|
||||||
|
Contact contact = user.getContact();
|
||||||
if (!user.getAffiliation().ranks(MucOptions.Affiliation.MEMBER)) {
|
if (!user.getAffiliation().ranks(MucOptions.Affiliation.MEMBER)) {
|
||||||
Jid jid = user.getRealJid();
|
Jid jid = user.getRealJid();
|
||||||
List<Jid> cryptoTargets = conversation.getAcceptedCryptoTargets();
|
List<Jid> cryptoTargets = conversation.getAcceptedCryptoTargets();
|
||||||
|
@ -767,7 +768,11 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
|
||||||
conversation.setAcceptedCryptoTargets(cryptoTargets);
|
conversation.setAcceptedCryptoTargets(cryptoTargets);
|
||||||
mXmppConnectionService.updateConversation(conversation);
|
mXmppConnectionService.updateConversation(conversation);
|
||||||
}
|
}
|
||||||
} else if (isNew && user.getRealJid() != null && account.getAxolotlService().hasEmptyDeviceList(user.getRealJid())) {
|
} else if (isNew
|
||||||
|
&& user.getRealJid() != null
|
||||||
|
&& conversation.getMucOptions().isPrivateAndNonAnonymous()
|
||||||
|
&& (contact == null || !contact.mutualPresenceSubscription())
|
||||||
|
&& account.getAxolotlService().hasEmptyDeviceList(user.getRealJid())) {
|
||||||
account.getAxolotlService().fetchDeviceIds(user.getRealJid());
|
account.getAxolotlService().fetchDeviceIds(user.getRealJid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,12 @@ public class PresenceParser extends AbstractParser implements
|
||||||
}
|
}
|
||||||
boolean isNew = mucOptions.updateUser(user);
|
boolean isNew = mucOptions.updateUser(user);
|
||||||
final AxolotlService axolotlService = conversation.getAccount().getAxolotlService();
|
final AxolotlService axolotlService = conversation.getAccount().getAxolotlService();
|
||||||
if (isNew && user.getRealJid() != null && mucOptions.isPrivateAndNonAnonymous() && axolotlService.hasEmptyDeviceList(user.getRealJid())) {
|
Contact contact = user.getContact();
|
||||||
|
if (isNew
|
||||||
|
&& user.getRealJid() != null
|
||||||
|
&& mucOptions.isPrivateAndNonAnonymous()
|
||||||
|
&& (contact == null || !contact.mutualPresenceSubscription())
|
||||||
|
&& axolotlService.hasEmptyDeviceList(user.getRealJid())) {
|
||||||
axolotlService.fetchDeviceIds(user.getRealJid());
|
axolotlService.fetchDeviceIds(user.getRealJid());
|
||||||
}
|
}
|
||||||
if (codes.contains(MucOptions.STATUS_CODE_ROOM_CREATED) && mucOptions.autoPushConfiguration()) {
|
if (codes.contains(MucOptions.STATUS_CODE_ROOM_CREATED) && mucOptions.autoPushConfiguration()) {
|
||||||
|
|
Loading…
Reference in a new issue