fixed rare npe
This commit is contained in:
parent
59009ded82
commit
12c2fde61b
|
@ -25,7 +25,7 @@ public class MessageParser extends AbstractParser implements
|
||||||
}
|
}
|
||||||
|
|
||||||
private Message parseChat(MessagePacket packet, Account account) {
|
private Message parseChat(MessagePacket packet, Account account) {
|
||||||
String[] fromParts = packet.getFrom().split("/",2);
|
String[] fromParts = packet.getFrom().split("/", 2);
|
||||||
Conversation conversation = mXmppConnectionService
|
Conversation conversation = mXmppConnectionService
|
||||||
.findOrCreateConversation(account, fromParts[0], false);
|
.findOrCreateConversation(account, fromParts[0], false);
|
||||||
conversation.setLatestMarkableMessageId(getMarkableMessageId(packet));
|
conversation.setLatestMarkableMessageId(getMarkableMessageId(packet));
|
||||||
|
@ -57,9 +57,9 @@ public class MessageParser extends AbstractParser implements
|
||||||
}
|
}
|
||||||
|
|
||||||
private Message parseOtrChat(MessagePacket packet, Account account) {
|
private Message parseOtrChat(MessagePacket packet, Account account) {
|
||||||
boolean properlyAddressed = (packet.getTo().split("/",2).length == 2)
|
boolean properlyAddressed = (packet.getTo().split("/", 2).length == 2)
|
||||||
|| (account.countPresences() == 1);
|
|| (account.countPresences() == 1);
|
||||||
String[] fromParts = packet.getFrom().split("/",2);
|
String[] fromParts = packet.getFrom().split("/", 2);
|
||||||
Conversation conversation = mXmppConnectionService
|
Conversation conversation = mXmppConnectionService
|
||||||
.findOrCreateConversation(account, fromParts[0], false);
|
.findOrCreateConversation(account, fromParts[0], false);
|
||||||
String presence;
|
String presence;
|
||||||
|
@ -132,7 +132,7 @@ public class MessageParser extends AbstractParser implements
|
||||||
|
|
||||||
private Message parseGroupchat(MessagePacket packet, Account account) {
|
private Message parseGroupchat(MessagePacket packet, Account account) {
|
||||||
int status;
|
int status;
|
||||||
String[] fromParts = packet.getFrom().split("/",2);
|
String[] fromParts = packet.getFrom().split("/", 2);
|
||||||
if (mXmppConnectionService.find(account.pendingConferenceLeaves,
|
if (mXmppConnectionService.find(account.pendingConferenceLeaves,
|
||||||
account, fromParts[0]) != null) {
|
account, fromParts[0]) != null) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -221,7 +221,7 @@ public class MessageParser extends AbstractParser implements
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String[] parts = fullJid.split("/",2);
|
String[] parts = fullJid.split("/", 2);
|
||||||
Conversation conversation = mXmppConnectionService
|
Conversation conversation = mXmppConnectionService
|
||||||
.findOrCreateConversation(account, parts[0], false);
|
.findOrCreateConversation(account, parts[0], false);
|
||||||
conversation.setLatestMarkableMessageId(getMarkableMessageId(packet));
|
conversation.setLatestMarkableMessageId(getMarkableMessageId(packet));
|
||||||
|
@ -253,38 +253,39 @@ public class MessageParser extends AbstractParser implements
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseError(MessagePacket packet, Account account) {
|
private void parseError(MessagePacket packet, Account account) {
|
||||||
String[] fromParts = packet.getFrom().split("/",2);
|
String[] fromParts = packet.getFrom().split("/", 2);
|
||||||
mXmppConnectionService.markMessage(account, fromParts[0],
|
mXmppConnectionService.markMessage(account, fromParts[0],
|
||||||
packet.getId(), Message.STATUS_SEND_FAILED);
|
packet.getId(), Message.STATUS_SEND_FAILED);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseNonMessage(Element packet, Account account) {
|
private void parseNonMessage(Element packet, Account account) {
|
||||||
|
String from = packet.getAttribute("from");
|
||||||
if (packet.hasChild("event", "http://jabber.org/protocol/pubsub#event")) {
|
if (packet.hasChild("event", "http://jabber.org/protocol/pubsub#event")) {
|
||||||
Element event = packet.findChild("event",
|
Element event = packet.findChild("event",
|
||||||
"http://jabber.org/protocol/pubsub#event");
|
"http://jabber.org/protocol/pubsub#event");
|
||||||
parseEvent(event, packet.getAttribute("from"), account);
|
parseEvent(event, packet.getAttribute("from"), account);
|
||||||
} else if (packet.hasChild("displayed", "urn:xmpp:chat-markers:0")) {
|
} else if (from != null
|
||||||
|
&& packet.hasChild("displayed", "urn:xmpp:chat-markers:0")) {
|
||||||
String id = packet
|
String id = packet
|
||||||
.findChild("displayed", "urn:xmpp:chat-markers:0")
|
.findChild("displayed", "urn:xmpp:chat-markers:0")
|
||||||
.getAttribute("id");
|
.getAttribute("id");
|
||||||
String[] fromParts = packet.getAttribute("from").split("/",2);
|
|
||||||
updateLastseen(packet, account, true);
|
updateLastseen(packet, account, true);
|
||||||
mXmppConnectionService.markMessage(account, fromParts[0], id,
|
mXmppConnectionService.markMessage(account, from.split("/", 2)[0],
|
||||||
Message.STATUS_SEND_DISPLAYED);
|
id, Message.STATUS_SEND_DISPLAYED);
|
||||||
} else if (packet.hasChild("received", "urn:xmpp:chat-markers:0")) {
|
} else if (from != null
|
||||||
|
&& packet.hasChild("received", "urn:xmpp:chat-markers:0")) {
|
||||||
String id = packet.findChild("received", "urn:xmpp:chat-markers:0")
|
String id = packet.findChild("received", "urn:xmpp:chat-markers:0")
|
||||||
.getAttribute("id");
|
.getAttribute("id");
|
||||||
String[] fromParts = packet.getAttribute("from").split("/",2);
|
|
||||||
updateLastseen(packet, account, false);
|
updateLastseen(packet, account, false);
|
||||||
mXmppConnectionService.markMessage(account, fromParts[0], id,
|
mXmppConnectionService.markMessage(account, from.split("/", 2)[0],
|
||||||
Message.STATUS_SEND_RECEIVED);
|
id, Message.STATUS_SEND_RECEIVED);
|
||||||
} else if (packet.hasChild("received", "urn:xmpp:receipts")) {
|
} else if (from != null
|
||||||
|
&& packet.hasChild("received", "urn:xmpp:receipts")) {
|
||||||
String id = packet.findChild("received", "urn:xmpp:receipts")
|
String id = packet.findChild("received", "urn:xmpp:receipts")
|
||||||
.getAttribute("id");
|
.getAttribute("id");
|
||||||
String[] fromParts = packet.getAttribute("from").split("/");
|
|
||||||
updateLastseen(packet, account, false);
|
updateLastseen(packet, account, false);
|
||||||
mXmppConnectionService.markMessage(account, fromParts[0], id,
|
mXmppConnectionService.markMessage(account, from.split("/", 2)[0],
|
||||||
Message.STATUS_SEND_RECEIVED);
|
id, Message.STATUS_SEND_RECEIVED);
|
||||||
} else if (packet.hasChild("x", "http://jabber.org/protocol/muc#user")) {
|
} else if (packet.hasChild("x", "http://jabber.org/protocol/muc#user")) {
|
||||||
Element x = packet.findChild("x",
|
Element x = packet.findChild("x",
|
||||||
"http://jabber.org/protocol/muc#user");
|
"http://jabber.org/protocol/muc#user");
|
||||||
|
|
Loading…
Reference in a new issue