mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-19 19:48:27 +00:00
Profile implementation
This commit is contained in:
parent
f5a583e7c8
commit
feec22bf72
@ -1,16 +1,65 @@
|
||||
package org.session.libsession.messaging.messages.visible
|
||||
|
||||
import com.google.protobuf.ByteString
|
||||
import org.session.libsignal.libsignal.logging.Log
|
||||
import org.session.libsignal.service.internal.push.SignalServiceProtos
|
||||
|
||||
class Profile() : VisibleMessage<SignalServiceProtos.DataMessage?>() {
|
||||
|
||||
var displayName: String? = null
|
||||
var profileKey: ByteArray? = null
|
||||
var profilePictureURL: String? = null
|
||||
|
||||
companion object {
|
||||
const val TAG = "Profile"
|
||||
|
||||
fun fromProto(proto: SignalServiceProtos.DataMessage): Profile? {
|
||||
TODO("Not yet implemented")
|
||||
val profileProto = proto.profile ?: return null
|
||||
val displayName = profileProto.displayName ?: return null
|
||||
val profileKey = proto.profileKey
|
||||
val profilePictureURL = profileProto.profilePictureURL
|
||||
profileKey?.let {
|
||||
val profilePictureURL = profilePictureURL
|
||||
profilePictureURL?.let {
|
||||
return Profile(displayName = displayName, profileKey = profileKey.toByteArray(), profilePictureURL = profilePictureURL)
|
||||
}
|
||||
return Profile(displayName)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//constructor
|
||||
internal constructor(displayName: String, profileKey: ByteArray? = nil, profilePictureURL: String? = nil) : this() {
|
||||
this.displayName = displayName
|
||||
this.profileKey = profileKey
|
||||
this.profilePictureURL = profilePictureURL
|
||||
}
|
||||
|
||||
fun toProto(): SignalServiceProtos.DataMessage? {
|
||||
return this.toProto("")
|
||||
}
|
||||
|
||||
override fun toProto(transaction: String): SignalServiceProtos.DataMessage? {
|
||||
return null
|
||||
val displayName = displayName
|
||||
if (displayName == null) {
|
||||
Log.w(TAG, "Couldn't construct link preview proto from: $this")
|
||||
return null
|
||||
}
|
||||
val dataMessageProto = SignalServiceProtos.DataMessage.newBuilder()
|
||||
val profileProto = SignalServiceProtos.LokiUserProfile.newBuilder()
|
||||
profileProto.displayName = displayName
|
||||
val profileKey = profileKey
|
||||
profileKey?.let { dataMessageProto.profileKey = ByteString.copyFrom(profileKey) }
|
||||
val profilePictureURL = profilePictureURL
|
||||
profilePictureURL?.let { profileProto.profilePictureURL = profilePictureURL }
|
||||
// Build
|
||||
try {
|
||||
dataMessageProto.profile = profileProto.build()
|
||||
return dataMessageProto.build()
|
||||
} catch (e: Exception) {
|
||||
Log.w(TAG, "Couldn't construct profile proto from: $this")
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user