diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/database/SessionContactDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/database/SessionContactDatabase.kt index 4aec4b4a48..a40efb8824 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/database/SessionContactDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/database/SessionContactDatabase.kt @@ -6,6 +6,8 @@ import androidx.core.database.getStringOrNull import net.sqlcipher.Cursor import org.session.libsession.messaging.contacts.Contact import org.session.libsession.messaging.jobs.Job +import org.session.libsession.messaging.threads.Address +import org.session.libsession.messaging.threads.recipients.Recipient import org.session.libsignal.utilities.Base64 import org.thoughtcrime.securesms.database.Database import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper @@ -74,7 +76,7 @@ class SessionContactDatabase(context: Context, helper: SQLCipherOpenHelper) : Da cursor.getStringOrNull(profilePictureEncryptionKey)?.let { contact.profilePictureEncryptionKey = Base64.decode(it) } - contact.threadID = cursor.getInt(threadID) + contact.threadID = cursor.getLong(threadID) contact.isTrusted = cursor.getInt(isTrusted) != 0 return contact } diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt index 8ee64d422b..46e2f5a039 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/views/ConversationView.kt @@ -88,10 +88,10 @@ class ConversationView : LinearLayout { } private fun getUserDisplayName(recipient: Recipient): String? { - if (recipient.isLocalNumber) - return context.getString(R.string.note_to_self) + return if (recipient.isLocalNumber) + context.getString(R.string.note_to_self) else - return SSKEnvironment.shared.profileManager.getDisplayName(context, recipient) + SSKEnvironment.shared.profileManager.getDisplayName(context, recipient) } // endregion } \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/sskenvironment/ProfileManager.kt b/app/src/main/java/org/thoughtcrime/securesms/sskenvironment/ProfileManager.kt index 2450ba9ed8..2ddbd40cdc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sskenvironment/ProfileManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/sskenvironment/ProfileManager.kt @@ -15,6 +15,7 @@ class ProfileManager: SSKEnvironment.ProfileManagerProtocol { val contactDatabase = DatabaseFactory.getSessionContactDatabase(context) var contact = contactDatabase.getContactWithSessionID(sessionID) if (contact == null) contact = Contact(sessionID) + contact.threadID = DatabaseFactory.getStorage(context).getThreadIdFor(recipient.address) if (contact.nickname != displayName) { contact.nickname = displayName contactDatabase.setContact(contact) @@ -34,6 +35,7 @@ class ProfileManager: SSKEnvironment.ProfileManagerProtocol { val contactDatabase = DatabaseFactory.getSessionContactDatabase(context) var contact = contactDatabase.getContactWithSessionID(sessionID) if (contact == null) contact = Contact(sessionID) + contact.threadID = DatabaseFactory.getStorage(context).getThreadIdFor(recipient.address) if (contact.name != profileName) { contact.name = profileName contactDatabase.setContact(contact) @@ -47,6 +49,7 @@ class ProfileManager: SSKEnvironment.ProfileManagerProtocol { val contactDatabase = DatabaseFactory.getSessionContactDatabase(context) var contact = contactDatabase.getContactWithSessionID(sessionID) if (contact == null) contact = Contact(sessionID) + contact.threadID = DatabaseFactory.getStorage(context).getThreadIdFor(recipient.address) if (contact.profilePictureURL != profilePictureURL) { contact.profilePictureURL = profilePictureURL contactDatabase.setContact(contact) @@ -61,6 +64,7 @@ class ProfileManager: SSKEnvironment.ProfileManagerProtocol { val contactDatabase = DatabaseFactory.getSessionContactDatabase(context) var contact = contactDatabase.getContactWithSessionID(sessionID) if (contact == null) contact = Contact(sessionID) + contact.threadID = DatabaseFactory.getStorage(context).getThreadIdFor(recipient.address) if (!contact.profilePictureEncryptionKey.contentEquals(profileKey)) { contact.profilePictureEncryptionKey = profileKey contactDatabase.setContact(contact) @@ -82,6 +86,7 @@ class ProfileManager: SSKEnvironment.ProfileManagerProtocol { var contact = contactDatabase.getContactWithSessionID(sessionID) if (contact == null) { contact = Contact(sessionID) + contact.threadID = DatabaseFactory.getStorage(context).getThreadIdFor(recipient.address) contact.name = DatabaseFactory.getLokiUserDatabase(context).getDisplayName(sessionID) ?: recipient.profileName ?: recipient.name contactDatabase.setContact(contact) } diff --git a/libsession/src/main/java/org/session/libsession/messaging/contacts/Contact.kt b/libsession/src/main/java/org/session/libsession/messaging/contacts/Contact.kt index 392c57e3d5..05e09a10d3 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/contacts/Contact.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/contacts/Contact.kt @@ -10,7 +10,7 @@ class Contact(val sessionID: String) { // The key with which the profile picture is encrypted. var profilePictureEncryptionKey: ByteArray? = null // The ID of the thread associated with this contact. - var threadID: Int? = null + var threadID: Long? = null // This flag is used to determine whether we should auto-download files sent by this contact. var isTrusted = false