From 2c167b0cc0046812a2244f9ee726a6e808f937f4 Mon Sep 17 00:00:00 2001 From: Brice Date: Mon, 30 Nov 2020 10:29:06 +1100 Subject: [PATCH] NullMessage implementation --- .../messages/control/unused/NullMessage.kt | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) 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