minor fix

This commit is contained in:
Ryan ZHAO 2021-05-13 10:24:32 +10:00
parent 46a01010e1
commit 267a94b8ef
4 changed files with 12 additions and 5 deletions

View File

@ -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
}

View File

@ -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
}

View File

@ -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)
}

View File

@ -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