mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-24 16:57:50 +00:00
fix: return early if no profile name (prefs likely invalid state) and ignore contacts whose publicKey fails to parse
This commit is contained in:
parent
2a741049cc
commit
85336238a7
@ -34,7 +34,7 @@ object MultiDeviceProtocol {
|
|||||||
}.map { recipient ->
|
}.map { recipient ->
|
||||||
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
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 serializedMessage = configurationMessage.toProto()!!.toByteArray()
|
||||||
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
||||||
val address = SignalServiceAddress(userPublicKey)
|
val address = SignalServiceAddress(userPublicKey)
|
||||||
@ -58,7 +58,7 @@ object MultiDeviceProtocol {
|
|||||||
}.map { recipient ->
|
}.map { recipient ->
|
||||||
ConfigurationMessage.Contact(recipient.address.serialize(), recipient.name!!, recipient.profileAvatar, recipient.profileKey)
|
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 serializedMessage = configurationMessage.toProto()!!.toByteArray()
|
||||||
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
val messageSender = ApplicationContext.getInstance(context).communicationModule.provideSignalMessageSender()
|
||||||
val address = SignalServiceAddress(userPublicKey)
|
val address = SignalServiceAddress(userPublicKey)
|
||||||
|
@ -67,7 +67,11 @@ class ConfigurationMessage(val closedGroups: List<ClosedGroup>, val openGroups:
|
|||||||
fun toProto(): SignalServiceProtos.ConfigurationMessage.Contact? {
|
fun toProto(): SignalServiceProtos.ConfigurationMessage.Contact? {
|
||||||
val result = SignalServiceProtos.ConfigurationMessage.Contact.newBuilder()
|
val result = SignalServiceProtos.ConfigurationMessage.Contact.newBuilder()
|
||||||
result.name = this.name
|
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()) {
|
if (!this.profilePicture.isNullOrEmpty()) {
|
||||||
result.profilePicture = this.profilePicture
|
result.profilePicture = this.profilePicture
|
||||||
}
|
}
|
||||||
@ -83,13 +87,13 @@ class ConfigurationMessage(val closedGroups: List<ClosedGroup>, val openGroups:
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
fun getCurrent(contacts: List<Contact>): ConfigurationMessage {
|
fun getCurrent(contacts: List<Contact>): ConfigurationMessage? {
|
||||||
val closedGroups = mutableListOf<ClosedGroup>()
|
val closedGroups = mutableListOf<ClosedGroup>()
|
||||||
val openGroups = mutableListOf<String>()
|
val openGroups = mutableListOf<String>()
|
||||||
val sharedConfig = MessagingConfiguration.shared
|
val sharedConfig = MessagingConfiguration.shared
|
||||||
val storage = sharedConfig.storage
|
val storage = sharedConfig.storage
|
||||||
val context = sharedConfig.context
|
val context = sharedConfig.context
|
||||||
val displayName = TextSecurePreferences.getProfileName(context)!!
|
val displayName = TextSecurePreferences.getProfileName(context) ?: return null
|
||||||
val profilePicture = TextSecurePreferences.getProfilePictureURL(context)
|
val profilePicture = TextSecurePreferences.getProfilePictureURL(context)
|
||||||
val profileKey = ProfileKeyUtil.getProfileKey(context)
|
val profileKey = ProfileKeyUtil.getProfileKey(context)
|
||||||
val groups = storage.getAllGroups()
|
val groups = storage.getAllGroups()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user