diff --git a/libsession/src/main/java/org/session/libsession/messaging/messages/control/unused/NullMessage.kt b/libsession/src/main/java/org/session/libsession/messaging/messages/control/unused/NullMessage.kt index a2bb642008..b46bbc0231 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/messages/control/unused/NullMessage.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/messages/control/unused/NullMessage.kt @@ -1,19 +1,37 @@ package org.session.libsession.messaging.messages.control.unused +import com.google.protobuf.ByteString import org.session.libsession.messaging.messages.control.ControlMessage -import org.session.libsession.messaging.messages.control.ExpirationTimerUpdate +import org.session.libsession.messaging.messages.control.TypingIndicator +import org.session.libsignal.libsignal.logging.Log import org.session.libsignal.service.internal.push.SignalServiceProtos +import java.security.SecureRandom class NullMessage() : ControlMessage() { companion object { + const val TAG = "NullMessage" + fun fromProto(proto: SignalServiceProtos.Content): NullMessage? { - TODO("Not yet implemented") + if (proto.nullMessage == null) return null + return NullMessage() } } override fun toProto(): SignalServiceProtos.Content? { - TODO("Not yet implemented") + val nullMessageProto = SignalServiceProtos.NullMessage.newBuilder() + val sr = SecureRandom() + val paddingSize = sr.nextInt(512) + val padding = ByteArray(paddingSize) + nullMessageProto.padding = ByteString.copyFrom(padding) + val contentProto = SignalServiceProtos.Content.newBuilder() + try { + contentProto.nullMessage = nullMessageProto.build() + return contentProto.build() + } catch (e: Exception) { + Log.w(TAG, "Couldn't construct null message proto from: $this") + return null + } } } \ No newline at end of file