From b8454f3db24001c2df5a98acb0cd78ef48e30bf9 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Tue, 23 Jun 2020 12:23:58 +1000 Subject: [PATCH] Fix crash --- .../securesms/groups/GroupMessageProcessor.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java b/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java index 463093b5ca..5dacafdd65 100644 --- a/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java +++ b/src/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java @@ -131,10 +131,12 @@ public class GroupMessageProcessor { String id = GroupUtil.getEncodedId(group); String userMasterDevice = TextSecurePreferences.getMasterHexEncodedPublicKey(context); + if (userMasterDevice == null) { userMasterDevice = TextSecurePreferences.getLocalNumber(context); } if (group.getGroupType() == SignalServiceGroup.GroupType.SIGNAL) { // Loki - Only update the group if the group admin sent the message String masterDevice = MultiDeviceProtocol.shared.getMasterDevice(content.getSender()); + if (masterDevice == null) { masterDevice = content.getSender(); } if (!groupRecord.getAdmins().contains(Address.fromSerialized(masterDevice))) { Log.d("Loki", "Received a group update message from a non-admin user for: " + id +"; ignoring."); return null; @@ -212,6 +214,7 @@ public class GroupMessageProcessor { @NonNull GroupRecord record) { String masterDevice = MultiDeviceProtocol.shared.getMasterDevice(content.getSender()); + if (masterDevice == null) { masterDevice = content.getSender(); } if (record.getMembers().contains(Address.fromSerialized(masterDevice))) { ApplicationContext.getInstance(context) .getJobManager() @@ -234,6 +237,7 @@ public class GroupMessageProcessor { builder.setType(GroupContext.Type.QUIT); String masterDevice = MultiDeviceProtocol.shared.getMasterDevice(content.getSender()); + if (masterDevice == null) { masterDevice = content.getSender(); } if (members.contains(Address.fromExternal(context, masterDevice))) { database.remove(id, Address.fromExternal(context, masterDevice)); if (outgoing) database.setActive(id, false); @@ -259,7 +263,7 @@ public class GroupMessageProcessor { try { if (outgoing) { MmsDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(context); - Address address = Address.fromExternal(context, GroupUtil.getEncodedId(group)); + Address address = Address.fromExternal(context, GroupUtil.getEncodedId(group)); Recipient recipient = Recipient.from(context, address, false); OutgoingGroupMediaMessage outgoingMessage = new OutgoingGroupMediaMessage(recipient, storage, null, content.getTimestamp(), 0, null, Collections.emptyList(), Collections.emptyList()); long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipient);