diff --git a/app/build.gradle b/app/build.gradle index d6e5b8806..6f84c6ca8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -158,8 +158,8 @@ dependencies { testImplementation 'org.robolectric:shadows-multidex:4.2' } -def canonicalVersionCode = 141 -def canonicalVersionName = "1.7.3" +def canonicalVersionCode = 142 +def canonicalVersionName = "1.7.4" def postFixSize = 10 def abiPostFix = ['armeabi-v7a' : 1, diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt index 387108f3a..8b52e0166 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt @@ -34,7 +34,7 @@ object MultiDeviceProtocol { }.map { recipient -> ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey) } - val configurationMessage = ConfigurationMessage.getCurrent(contacts) + val configurationMessage = ConfigurationMessage.getCurrent(contacts) ?: return val serializedMessage = configurationMessage.toProto()!!.toByteArray() val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender() val address = SignalServiceAddress(userPublicKey) @@ -58,7 +58,7 @@ object MultiDeviceProtocol { }.map { recipient -> ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey) } - val configurationMessage = ConfigurationMessage.getCurrent(contacts) + val configurationMessage = ConfigurationMessage.getCurrent(contacts) ?: return val serializedMessage = configurationMessage.toProto()!!.toByteArray() val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender() val address = SignalServiceAddress(userPublicKey) diff --git a/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt b/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt index 421c58c58..846413ce9 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt @@ -67,7 +67,11 @@ class ConfigurationMessage(val closedGroups: List, val openGroups: fun toProto(): SignalServiceProtos.ConfigurationMessage.Contact? { val result = SignalServiceProtos.ConfigurationMessage.Contact.newBuilder() result.name = this.name - result.publicKey = ByteString.copyFrom(Hex.fromStringCondensed(publicKey)) + try { + result.publicKey = ByteString.copyFrom(Hex.fromStringCondensed(publicKey)) + } catch (e: Exception) { + return null + } if (!this.profilePicture.isNullOrEmpty()) { result.profilePicture = this.profilePicture } @@ -83,13 +87,13 @@ class ConfigurationMessage(val closedGroups: List, val openGroups: companion object { - fun getCurrent(contacts: List): ConfigurationMessage { + fun getCurrent(contacts: List): ConfigurationMessage? { val closedGroups = mutableListOf() val openGroups = mutableListOf() val sharedConfig = MessagingConfiguration.shared val storage = sharedConfig.storage val context = sharedConfig.context - val displayName = TextSecurePreferences.getProfileName(context)!! + val displayName = TextSecurePreferences.getProfileName(context) ?: return null val profilePicture = TextSecurePreferences.getProfilePictureURL(context) val profileKey = ProfileKeyUtil.getProfileKey(context) val groups = storage.getAllGroups()