mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-27 20:15:21 +00:00
minor refactor on storing display names
This commit is contained in:
parent
9f26436041
commit
d78dc83307
@ -93,12 +93,6 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
|
|||||||
return database.getDisplayName(recipientPublicKey)
|
return database.getDisplayName(recipientPublicKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setProfileKeyForRecipient(recipientPublicKey: String, profileKey: ByteArray) {
|
|
||||||
val address = Address.fromSerialized(recipientPublicKey)
|
|
||||||
val recipient = Recipient.from(context, address, false)
|
|
||||||
DatabaseFactory.getRecipientDatabase(context).setProfileKey(recipient, profileKey)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getOrGenerateRegistrationID(): Int {
|
override fun getOrGenerateRegistrationID(): Int {
|
||||||
var registrationID = TextSecurePreferences.getLocalRegistrationId(context)
|
var registrationID = TextSecurePreferences.getLocalRegistrationId(context)
|
||||||
if (registrationID == 0) {
|
if (registrationID == 0) {
|
||||||
@ -529,14 +523,6 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
|
|||||||
return DatabaseFactory.getLokiUserDatabase(context).getDisplayName(publicKey)
|
return DatabaseFactory.getLokiUserDatabase(context).getDisplayName(publicKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setDisplayName(publicKey: String, newName: String) {
|
|
||||||
DatabaseFactory.getLokiUserDatabase(context).setDisplayName(publicKey, newName)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getServerDisplayName(serverID: String, publicKey: String): String? {
|
|
||||||
return DatabaseFactory.getLokiUserDatabase(context).getServerDisplayName(serverID, publicKey)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getProfilePictureURL(publicKey: String): String? {
|
override fun getProfilePictureURL(publicKey: String): String? {
|
||||||
return DatabaseFactory.getLokiUserDatabase(context).getProfilePictureURL(publicKey)
|
return DatabaseFactory.getLokiUserDatabase(context).getProfilePictureURL(publicKey)
|
||||||
}
|
}
|
||||||
|
@ -5,12 +5,22 @@ import org.session.libsession.messaging.threads.recipients.Recipient
|
|||||||
import org.session.libsession.utilities.SSKEnvironment
|
import org.session.libsession.utilities.SSKEnvironment
|
||||||
import org.thoughtcrime.securesms.ApplicationContext
|
import org.thoughtcrime.securesms.ApplicationContext
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory
|
import org.thoughtcrime.securesms.database.DatabaseFactory
|
||||||
import org.thoughtcrime.securesms.database.RecipientDatabase
|
|
||||||
import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob
|
import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob
|
||||||
|
|
||||||
class ProfileManager: SSKEnvironment.ProfileManagerProtocol {
|
class ProfileManager: SSKEnvironment.ProfileManagerProtocol {
|
||||||
override fun setDisplayName(context: Context, recipient: Recipient, displayName: String) {
|
override fun setDisplayName(context: Context, recipient: Recipient, displayName: String) {
|
||||||
DatabaseFactory.getLokiUserDatabase(context).setDisplayName(recipient.address.serialize(), displayName)
|
val database = DatabaseFactory.getLokiUserDatabase(context)
|
||||||
|
val publicKey = recipient.address.serialize()
|
||||||
|
if (recipient.profileName == null) {
|
||||||
|
// Migrate the profile name in LokiUserDatabase to recipient
|
||||||
|
database.getDisplayName(publicKey)?.let { setProfileName(context, recipient, it) }
|
||||||
|
}
|
||||||
|
database.setDisplayName(publicKey, displayName)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun setProfileName(context: Context, recipient: Recipient, profileName: String) {
|
||||||
|
val database = DatabaseFactory.getRecipientDatabase(context)
|
||||||
|
database.setProfileName(recipient, profileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setProfilePictureURL(context: Context, recipient: Recipient, profilePictureURL: String) {
|
override fun setProfilePictureURL(context: Context, recipient: Recipient, profilePictureURL: String) {
|
||||||
|
@ -36,7 +36,6 @@ interface StorageProtocol {
|
|||||||
|
|
||||||
fun getProfileKeyForRecipient(recipientPublicKey: String): ByteArray?
|
fun getProfileKeyForRecipient(recipientPublicKey: String): ByteArray?
|
||||||
fun getDisplayNameForRecipient(recipientPublicKey: String): String?
|
fun getDisplayNameForRecipient(recipientPublicKey: String): String?
|
||||||
fun setProfileKeyForRecipient(recipientPublicKey: String, profileKey: ByteArray)
|
|
||||||
|
|
||||||
// Signal Protocol
|
// Signal Protocol
|
||||||
|
|
||||||
@ -145,8 +144,6 @@ interface StorageProtocol {
|
|||||||
|
|
||||||
// Loki User
|
// Loki User
|
||||||
fun getDisplayName(publicKey: String): String?
|
fun getDisplayName(publicKey: String): String?
|
||||||
fun setDisplayName(publicKey: String, newName: String)
|
|
||||||
fun getServerDisplayName(serverID: String, publicKey: String): String?
|
|
||||||
fun getProfilePictureURL(publicKey: String): String?
|
fun getProfilePictureURL(publicKey: String): String?
|
||||||
|
|
||||||
// Recipient
|
// Recipient
|
||||||
|
@ -129,14 +129,16 @@ private fun MessageReceiver.handleConfigurationMessage(message: ConfigurationMes
|
|||||||
if (allOpenGroups.contains(openGroup)) continue
|
if (allOpenGroups.contains(openGroup)) continue
|
||||||
storage.addOpenGroup(openGroup, 1)
|
storage.addOpenGroup(openGroup, 1)
|
||||||
}
|
}
|
||||||
|
val profileManager = SSKEnvironment.shared.profileManager
|
||||||
|
val recipient = Recipient.from(context, Address.fromSerialized(userPublicKey), false)
|
||||||
if (message.displayName.isNotEmpty()) {
|
if (message.displayName.isNotEmpty()) {
|
||||||
TextSecurePreferences.setProfileName(context, message.displayName)
|
TextSecurePreferences.setProfileName(context, message.displayName)
|
||||||
storage.setDisplayName(userPublicKey, message.displayName)
|
profileManager.setProfileName(context, recipient, message.displayName)
|
||||||
}
|
}
|
||||||
if (message.profileKey.isNotEmpty()) {
|
if (message.profileKey.isNotEmpty()) {
|
||||||
val profileKey = Base64.encodeBytes(message.profileKey)
|
val profileKey = Base64.encodeBytes(message.profileKey)
|
||||||
ProfileKeyUtil.setEncodedProfileKey(context, profileKey)
|
ProfileKeyUtil.setEncodedProfileKey(context, profileKey)
|
||||||
storage.setProfileKeyForRecipient(userPublicKey, message.profileKey)
|
profileManager.setProfileKey(context, recipient, message.profileKey)
|
||||||
// handle profile photo
|
// handle profile photo
|
||||||
if (!message.profilePicture.isNullOrEmpty() && TextSecurePreferences.getProfilePictureURL(context) != message.profilePicture) {
|
if (!message.profilePicture.isNullOrEmpty() && TextSecurePreferences.getProfilePictureURL(context) != message.profilePicture) {
|
||||||
storage.setUserProfilePictureUrl(message.profilePicture!!)
|
storage.setUserProfilePictureUrl(message.profilePicture!!)
|
||||||
@ -160,7 +162,7 @@ fun MessageReceiver.handleVisibleMessage(message: VisibleMessage, proto: SignalS
|
|||||||
// Update the user's local name if the message came from their master device
|
// Update the user's local name if the message came from their master device
|
||||||
TextSecurePreferences.setProfileName(context, displayName)
|
TextSecurePreferences.setProfileName(context, displayName)
|
||||||
}
|
}
|
||||||
profileManager.setDisplayName(context, recipient, displayName)
|
profileManager.setProfileName(context, recipient, displayName)
|
||||||
}
|
}
|
||||||
if (recipient.profileKey == null || !MessageDigest.isEqual(recipient.profileKey, newProfile.profileKey)) {
|
if (recipient.profileKey == null || !MessageDigest.isEqual(recipient.profileKey, newProfile.profileKey)) {
|
||||||
profileManager.setProfileKey(context, recipient, newProfile.profileKey!!)
|
profileManager.setProfileKey(context, recipient, newProfile.profileKey!!)
|
||||||
|
@ -289,6 +289,8 @@ public class Recipient implements RecipientModifiedListener {
|
|||||||
String displayName = MessagingConfiguration.shared.getStorage().getDisplayName(this.address.toString());
|
String displayName = MessagingConfiguration.shared.getStorage().getDisplayName(this.address.toString());
|
||||||
if (displayName != null) { return displayName; }
|
if (displayName != null) { return displayName; }
|
||||||
|
|
||||||
|
if (this.profileName != null) { return this.profileName; }
|
||||||
|
|
||||||
if (this.name == null && isMmsGroupRecipient()) {
|
if (this.name == null && isMmsGroupRecipient()) {
|
||||||
List<String> names = new LinkedList<>();
|
List<String> names = new LinkedList<>();
|
||||||
|
|
||||||
|
@ -29,7 +29,8 @@ class SSKEnvironment(
|
|||||||
const val NAME_PADDED_LENGTH = 26
|
const val NAME_PADDED_LENGTH = 26
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setDisplayName(context: Context, recipient: Recipient, displayName: String)
|
fun setDisplayName(context: Context, recipient: Recipient, displayName: String) // Client-side Nickname
|
||||||
|
fun setProfileName(context: Context, recipient: Recipient, profileName: String)
|
||||||
fun setProfilePictureURL(context: Context, recipient: Recipient, profilePictureURL: String)
|
fun setProfilePictureURL(context: Context, recipient: Recipient, profilePictureURL: String)
|
||||||
fun setProfileKey(context: Context, recipient: Recipient, profileKey: ByteArray)
|
fun setProfileKey(context: Context, recipient: Recipient, profileKey: ByteArray)
|
||||||
fun setUnidentifiedAccessMode(context: Context, recipient: Recipient, unidentifiedAccessMode: Recipient.UnidentifiedAccessMode)
|
fun setUnidentifiedAccessMode(context: Context, recipient: Recipient, unidentifiedAccessMode: Recipient.UnidentifiedAccessMode)
|
||||||
|
Loading…
Reference in New Issue
Block a user