From 9a6b6703cd96f955bd3d20ed988cf61bc8353002 Mon Sep 17 00:00:00 2001 From: Doominika Date: Wed, 15 Apr 2026 11:22:09 +0200 Subject: [PATCH 01/31] refactor: remove unused, old models --- .../privmx_endpoint/model/ConnectionType.java | 6 ----- .../privmx_endpoint/model/DeviceType.java | 7 ------ .../java/privmx_endpoint/model/Frame.java | 8 ------- .../privmx_endpoint/model/MediaDevice.java | 13 ---------- .../java/privmx_endpoint/model/Stream.java | 24 ------------------- .../privmx_endpoint/model/StreamSettings.java | 17 ------------- .../privmx_endpoint/model/StreamStatus.java | 6 ----- 7 files changed, 81 deletions(-) delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/ConnectionType.java delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/DeviceType.java delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Frame.java delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/MediaDevice.java delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Stream.java delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamSettings.java delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamStatus.java diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/ConnectionType.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/ConnectionType.java deleted file mode 100644 index 0b8d605a..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/ConnectionType.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - -public enum ConnectionType { - Subscriber, - Publisher -} diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/DeviceType.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/DeviceType.java deleted file mode 100644 index d69fa62d..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/DeviceType.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - -public enum DeviceType { - Audio, - Video, - Desktop -} \ No newline at end of file diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Frame.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Frame.java deleted file mode 100644 index e1b0733b..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Frame.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - -public abstract class Frame { - public Frame() {} - public int ConvertToRGBA(byte dst_argb, int dst_stride_argb, int dest_width, int dest_height){ - return 0; - }; -} \ No newline at end of file diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/MediaDevice.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/MediaDevice.java deleted file mode 100644 index 958b7f93..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/MediaDevice.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - -public class MediaDevice { - public String name; - public String id; - public DeviceType type; - - public MediaDevice(String name, String id, DeviceType type) { - this.name = name; - this.id = id; - this.type = type; - } -} \ No newline at end of file diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Stream.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Stream.java deleted file mode 100644 index 5278665b..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/Stream.java +++ /dev/null @@ -1,24 +0,0 @@ -// -// PrivMX Endpoint Java. -// Copyright © 2024 Simplito sp. z o.o. -// -// This file is part of the PrivMX Platform (https://privmx.dev). -// This software is Licensed under the MIT License. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package com.simplito.java.privmx_endpoint.model; - -public class Stream { - public Long streamId; - public String userId; - public Stream( - Long streamId, - String userId - ) { - this.streamId = streamId; - this.userId = userId; - } -} diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamSettings.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamSettings.java deleted file mode 100644 index 68bc52a6..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamSettings.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - -import com.simplito.java.privmx_endpoint.model.stream.Settings; - -public class StreamSettings { - public Settings settings; - public boolean dropCorruptedFrames = true; - - public StreamSettings(Settings settings, boolean dropCorruptedFrames) { - this.settings = settings; - this.dropCorruptedFrames = dropCorruptedFrames; - } - - public StreamSettings(Settings settings) { - this(settings, true); - } -} \ No newline at end of file diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamStatus.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamStatus.java deleted file mode 100644 index 54ff19de..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/StreamStatus.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - -public enum StreamStatus { - Offline, - Online -} From 00c70635ab528666e5d9f842e4974734edff3e36 Mon Sep 17 00:00:00 2001 From: Doominika Date: Wed, 15 Apr 2026 11:24:52 +0200 Subject: [PATCH 02/31] refactor: move AudioTrackInfo and VideoTrackInfo to JanusPublisher class --- .../privmx_endpoint/model/AudioTrackInfo.java | 22 ----------- .../privmx_endpoint/model/VideoTrackInfo.java | 21 ---------- .../modules/stream/JanusPublisher.java | 38 ++++++++++++++++--- 3 files changed, 33 insertions(+), 48 deletions(-) delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/AudioTrackInfo.java delete mode 100644 privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/VideoTrackInfo.java diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/AudioTrackInfo.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/AudioTrackInfo.java deleted file mode 100644 index 52ea94ba..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/AudioTrackInfo.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - - -import org.webrtc.AudioTrack; -import org.webrtc.PmxFrameCryptor; -import org.webrtc.RtpSender; - -public class AudioTrackInfo { - public AudioTrack track; - public RtpSender sender; - public PmxFrameCryptor frameCryptor; - - public AudioTrackInfo( - AudioTrack track, - RtpSender sender, - PmxFrameCryptor frameCryptor - ) { - this.track = track; - this.sender = sender; - this.frameCryptor = frameCryptor; - } -} \ No newline at end of file diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/VideoTrackInfo.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/VideoTrackInfo.java deleted file mode 100644 index 44d397ad..00000000 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/model/VideoTrackInfo.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.simplito.java.privmx_endpoint.model; - -import org.webrtc.PmxFrameCryptor; -import org.webrtc.RtpSender; -import org.webrtc.VideoTrack; - -public class VideoTrackInfo { - public VideoTrack track; - public RtpSender sender; - public PmxFrameCryptor frameCryptor; - - public VideoTrackInfo( - VideoTrack track, - RtpSender sender, - PmxFrameCryptor frameCryptor - ) { - this.track = track; - this.sender = sender; - this.frameCryptor = frameCryptor; - } -} diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java index 2b8a353b..8a93043b 100644 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java +++ b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java @@ -1,11 +1,6 @@ package com.simplito.java.privmx_endpoint.modules.stream; -import androidx.annotation.Nullable; - -import com.simplito.java.privmx_endpoint.model.AudioTrackInfo; -import com.simplito.java.privmx_endpoint.model.ConnectionType; import com.simplito.java.privmx_endpoint.model.stream.SdpWithTypeModel; -import com.simplito.java.privmx_endpoint.model.VideoTrackInfo; import org.webrtc.MediaConstraints; import org.webrtc.PeerConnection; @@ -162,4 +157,37 @@ public void onRenegotiationNeeded() { }); } } + + static class AudioTrackInfo { + public AudioTrack track; + public RtpSender sender; + public PmxFrameCryptor frameCryptor; + + public AudioTrackInfo( + AudioTrack track, + RtpSender sender, + PmxFrameCryptor frameCryptor + ) { + this.track = track; + this.sender = sender; + this.frameCryptor = frameCryptor; + } + } + + static class VideoTrackInfo { + public VideoTrack track; + public RtpSender sender; + public PmxFrameCryptor frameCryptor; + + public VideoTrackInfo( + VideoTrack track, + RtpSender sender, + PmxFrameCryptor frameCryptor + ) { + this.track = track; + this.sender = sender; + this.frameCryptor = frameCryptor; + } + } + } From 7afb51ae23fb7f7f807c3866cd82e6fdbcca55e8 Mon Sep 17 00:00:00 2001 From: Doominika Date: Wed, 15 Apr 2026 11:26:26 +0200 Subject: [PATCH 03/31] refactor: move AudioTrackInfo and VideoTrackInfo to JanusPublisher class --- .../java/privmx_endpoint/modules/stream/JanusPublisher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java index 8a93043b..4d55c2b6 100644 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java +++ b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java @@ -34,7 +34,7 @@ public JanusPublisher( BiConsumer acceptRenegotiationOffer, Consumer onConnectionChange ) { - super(pcFactory, keyStore, ConnectionType.Publisher, observer, onTrickle, onConnectionChange); + super(pcFactory, keyStore, observer, onTrickle, onConnectionChange); this.setNewOfferOnReconfigure = acceptRenegotiationOffer; } From 9e53e4206ffb2774f462af7af5b6d8f9f508f20b Mon Sep 17 00:00:00 2001 From: Doominika Date: Wed, 15 Apr 2026 11:28:14 +0200 Subject: [PATCH 04/31] refactor: remove usage of removed ConnectionType class --- .../java/privmx_endpoint/modules/stream/JanusConnection.java | 5 ----- .../java/privmx_endpoint/modules/stream/JanusPublisher.java | 2 +- .../java/privmx_endpoint/modules/stream/JanusSubscriber.java | 3 +-- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusConnection.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusConnection.java index 697ebe7e..b3e03d6f 100644 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusConnection.java +++ b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusConnection.java @@ -1,7 +1,5 @@ package com.simplito.java.privmx_endpoint.modules.stream; -import com.simplito.java.privmx_endpoint.model.ConnectionType; - import org.json.JSONObject; import org.webrtc.PeerConnection; import org.webrtc.PeerConnectionFactory; @@ -19,20 +17,17 @@ public class JanusConnection { protected final PeerConnection peerConnection; protected final PeerConnectionFactory peerConnectionFactory; protected PmxKeyStore keyStore; - public final ConnectionType connectionType; private long sessionId = -1L; private final PcObserver pcObserver; public JanusConnection( PeerConnectionFactory pcFactory, PmxKeyStore keyStore, - ConnectionType connectionType, TrackObserver trackObserver, BiConsumer onTrickle, Consumer onConnectionChange ) { this.peerConnectionFactory = pcFactory; - this.connectionType = connectionType; this.keyStore = keyStore; this.pcObserver = new PcObserver( peerConnectionFactory, diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java index 8a93043b..4d55c2b6 100644 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java +++ b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java @@ -34,7 +34,7 @@ public JanusPublisher( BiConsumer acceptRenegotiationOffer, Consumer onConnectionChange ) { - super(pcFactory, keyStore, ConnectionType.Publisher, observer, onTrickle, onConnectionChange); + super(pcFactory, keyStore, observer, onTrickle, onConnectionChange); this.setNewOfferOnReconfigure = acceptRenegotiationOffer; } diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusSubscriber.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusSubscriber.java index 1a02683b..1535ed87 100644 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusSubscriber.java +++ b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusSubscriber.java @@ -1,6 +1,5 @@ package com.simplito.java.privmx_endpoint.modules.stream; -import com.simplito.java.privmx_endpoint.model.ConnectionType; import org.webrtc.MediaConstraints; import org.webrtc.PeerConnection; @@ -19,7 +18,7 @@ public JanusSubscriber( TrackObserver observer, BiConsumer onTrickle ) { - super(pcFactory, keyStore, ConnectionType.Subscriber, observer, onTrickle,null); + super(pcFactory, keyStore, observer, onTrickle,null); } public String createAnswer(String offerSdp, String type) { From 73c33811fbdea38b44a59a49077415dc61852251 Mon Sep 17 00:00:00 2001 From: Doominika Date: Wed, 15 Apr 2026 11:40:05 +0200 Subject: [PATCH 05/31] chore: organize imports --- .../java/privmx_endpoint/modules/stream/JanusPublisher.java | 3 ++- .../java/privmx_endpoint/modules/stream/StreamApi.java | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java index 4d55c2b6..bb0f74c2 100644 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java +++ b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/JanusPublisher.java @@ -2,6 +2,7 @@ import com.simplito.java.privmx_endpoint.model.stream.SdpWithTypeModel; +import org.webrtc.AudioTrack; import org.webrtc.MediaConstraints; import org.webrtc.PeerConnection; import org.webrtc.PeerConnectionFactory; @@ -10,7 +11,7 @@ import org.webrtc.PmxKeyStore; import org.webrtc.RtpSender; import org.webrtc.SessionDescription; -import org.webrtc.VideoCapturer; +import org.webrtc.VideoTrack; import java.util.HashMap; import java.util.Map; diff --git a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/StreamApi.java b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/StreamApi.java index 5ffb6f18..3c94c174 100644 --- a/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/StreamApi.java +++ b/privmx-endpoint-streams/android/src/main/java/com/simplito/java/privmx_endpoint/modules/stream/StreamApi.java @@ -5,7 +5,6 @@ import androidx.annotation.NonNull; -import com.simplito.java.privmx_endpoint.model.ConnectionType; import com.simplito.java.privmx_endpoint.model.ContainerPolicy; import com.simplito.java.privmx_endpoint.model.PagingList; import com.simplito.java.privmx_endpoint.model.UserWithPubKey; From d926721ba99b50fd25a98de8913a2c7890826041 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 13:47:25 +0200 Subject: [PATCH 06/31] refactor: remove Settings class --- jni-wrappers/privmx-endpoint/src/cpp/parsers/parser.cpp | 5 ----- .../java/privmx_endpoint/model/stream/Settings.java | 6 ------ 2 files changed, 11 deletions(-) delete mode 100644 privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/Settings.java diff --git a/jni-wrappers/privmx-endpoint/src/cpp/parsers/parser.cpp b/jni-wrappers/privmx-endpoint/src/cpp/parsers/parser.cpp index 782cd917..ed5ec795 100644 --- a/jni-wrappers/privmx-endpoint/src/cpp/parsers/parser.cpp +++ b/jni-wrappers/privmx-endpoint/src/cpp/parsers/parser.cpp @@ -838,11 +838,6 @@ privmx::endpoint::stream::StreamHandle parseStreamHandle( return jobject2long(ctx, ctx->GetObjectField(streamHandle, valueFID)); } -privmx::endpoint::stream::Settings parseSettings(JniContextUtils &ctx, jobject settings) { - auto result = privmx::endpoint::stream::Settings(); - return result; -} - privmx::endpoint::stream::StreamSubscription parseStreamSubscription(JniContextUtils &ctx, jobject streamSubscription) { privmx::endpoint::stream::StreamSubscription result; jclass cls = ctx->GetObjectClass(streamSubscription); diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/Settings.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/Settings.java deleted file mode 100644 index 225fdd24..00000000 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/Settings.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.simplito.java.privmx_endpoint.model.stream; - -public class Settings { - public Settings() { - } -} \ No newline at end of file From 6ccb67641f935c14085d93800b9243016585bb4b Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 13:49:25 +0200 Subject: [PATCH 07/31] refactor: remove talking param from StreamInfo --- .../cpp/parsers/model_native_initializers.cpp | 21 ++----------------- .../model/stream/StreamInfo.java | 10 ++------- 2 files changed, 4 insertions(+), 27 deletions(-) diff --git a/jni-wrappers/privmx-endpoint/src/cpp/parsers/model_native_initializers.cpp b/jni-wrappers/privmx-endpoint/src/cpp/parsers/model_native_initializers.cpp index eaa9b0d7..092113ee 100644 --- a/jni-wrappers/privmx-endpoint/src/cpp/parsers/model_native_initializers.cpp +++ b/jni-wrappers/privmx-endpoint/src/cpp/parsers/model_native_initializers.cpp @@ -1769,13 +1769,11 @@ namespace privmx { "Ljava/util/List;" // tracks "Ljava/lang/String;" // metadata "Ljava/lang/Boolean;" // dummy - "Ljava/lang/Boolean;" // talking ")V" ); jobject metadata = nullptr; jobject dummy = nullptr; - jobject talking = nullptr; if (streamInfo_c.metadata.has_value()) { metadata = ctx->NewStringUTF(streamInfo_c.metadata.value().c_str()); @@ -1785,20 +1783,7 @@ namespace privmx { dummy = ctx.bool2jBoolean(streamInfo_c.dummy.value()); } - if (streamInfo_c.talking.has_value()) { - talking = ctx.bool2jBoolean(streamInfo_c.talking.value()); - } - - jobject tracks = ctx->NewObject(arrayCls, initArrayMID); - for (auto &track: streamInfo_c.tracks) { - ctx->CallBooleanMethod( - tracks, - addToArrayMID, - streamTrackInfo2Java(ctx, track) - ); - } - - // todo - check null? + jobject tracks = vectorTojArray(ctx, streamInfo_c.tracks, streamTrackInfo2Java); return ctx->NewObject( itemCls, @@ -1807,10 +1792,8 @@ namespace privmx { ctx->NewStringUTF(streamInfo_c.userId.c_str()), tracks, metadata, - dummy, - talking + dummy ); - } jobject publishedStreamData2Java(JniContextUtils &ctx, privmx::endpoint::stream::PublishedStreamData publishedStreamData_c) { diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java index 61afba04..2d52d6c2 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java @@ -19,27 +19,21 @@ public class StreamInfo { public List tracks; public String metadata; // optional public Boolean dummy; // optional - public Boolean talking; // optional public StreamInfo(Long id, String userId, List tracks) { - this(id, userId, tracks, null, null, null); + this(id, userId, tracks, null, null); } public StreamInfo(Long id, String userId, List tracks, String metadata) { - this(id, userId, tracks, metadata, null, null); + this(id, userId, tracks, metadata, null); } public StreamInfo(Long id, String userId, List tracks, String metadata, Boolean dummy) { - this(id, userId, tracks, metadata, dummy, null); - } - - public StreamInfo(Long id, String userId, List tracks, String metadata, Boolean dummy, Boolean talking) { this.id = id; this.userId = userId; this.tracks = tracks; this.metadata = metadata; this.dummy = dummy; - this.talking = talking; } } From 3c89f07696b4979a983f0ff1a84efa3f6b853501 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 13:57:24 +0200 Subject: [PATCH 08/31] docs: add docs for StreamTrackModification --- .../model/stream/StreamTrackModification.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModification.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModification.java index 2b368dce..9ce5f235 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModification.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModification.java @@ -2,10 +2,26 @@ import java.util.List; +/** + * Represents a set of track modifications applied to a specific stream. + */ public class StreamTrackModification { + /** + * Identifier of the stream for which tracks were modified + */ public Long streamId; + + /** + * List of track modifications, each containing the state of a track before and after the change + */ public List tracks; + /** + * Constructs a new {@link StreamTrackModification} instance. + * + * @param streamId Identifier of the stream for which tracks were modified + * @param tracks List of track modifications, each containing the state of a track before and after the change + */ public StreamTrackModification(Long streamId, List tracks) { this.streamId = streamId; this.tracks = tracks; From ed8854be0e5ab2257a175d070b3516a743ed42ec Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:02:42 +0200 Subject: [PATCH 09/31] docs: add docs for StreamTrackInfo --- .../model/stream/StreamTrackInfo.java | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java index 98ebe871..eac26900 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java @@ -1,17 +1,53 @@ package com.simplito.java.privmx_endpoint.model.stream; +/** + * Represents metadata about a single media track within a stream. + */ public class StreamTrackInfo { + /** + * Type of the track (e.g. "audio", "video", "data") + */ public String type; + public Long mindex; + public String mid; + /** + * Indicates if the track is disabled. + * Tracks are never truly removed from the stream - they are marked as disabled instead. + */ public Boolean disabled; // optional + + /** + * Codec used by the track (e.g. "opus", "VP8") + */ public String codec; // optional + + /** + * Description of the track + */ public String description; // optional + public Boolean moderated; // optional + + /** + * Indicates if simulcast is enabled for the track + */ public Boolean simulcast; // optional + + /** + * Indicates active speech detection on the track + */ public Boolean talking; // optional + /** + * Constructs a new {@link StreamTrackInfo} instance. + * + * @param type Type of the track (e.g. "audio", "video", "data") + * @param mindex + * @param mid + */ public StreamTrackInfo( String type, Long mindex, @@ -20,6 +56,14 @@ public StreamTrackInfo( this(type, mindex, mid, null, null, null, null, null, null); } + /** + * Constructs a new {@link StreamTrackInfo} instance. + * + * @param type Type of the track (e.g. "audio", "video", "data") + * @param mindex + * @param mid + * @param disabled Indicates if the track is disabled + */ public StreamTrackInfo( String type, Long mindex, @@ -29,6 +73,15 @@ public StreamTrackInfo( this(type, mindex, mid, disabled, null, null, null, null, null); } + /** + * Constructs a new {@link StreamTrackInfo} instance. + * + * @param type Type of the track (e.g. "audio", "video", "data") + * @param mindex + * @param mid + * @param disabled Indicates if the track is disabled + * @param codec Codec used by the track (e.g. "opus", "VP8") + */ public StreamTrackInfo( String type, Long mindex, @@ -39,6 +92,16 @@ public StreamTrackInfo( this(type, mindex, mid, disabled, codec, null, null, null, null); } + /** + * Constructs a new {@link StreamTrackInfo} instance. + * + * @param type Type of the track (e.g. "audio", "video", "data") + * @param mindex + * @param mid + * @param disabled Indicates if the track is disabled + * @param codec Codec used by the track (e.g. "opus", "VP8") + * @param description Description of the track + */ public StreamTrackInfo( String type, Long mindex, @@ -50,6 +113,17 @@ public StreamTrackInfo( this(type, mindex, mid, disabled, codec, description, null, null, null); } + /** + * Constructs a new {@link StreamTrackInfo} instance. + * + * @param type Type of the track (e.g. "audio", "video", "data") + * @param mindex + * @param mid + * @param disabled Indicates if the track is disabled + * @param codec Codec used by the track (e.g. "opus", "VP8") + * @param description Description of the track + * @param moderated + */ public StreamTrackInfo( String type, Long mindex, @@ -62,6 +136,18 @@ public StreamTrackInfo( this(type, mindex, mid, disabled, codec, description, moderated, null, null); } + /** + * Constructs a new {@link StreamTrackInfo} instance. + * + * @param type Type of the track (e.g. "audio", "video", "data") + * @param mindex + * @param mid + * @param disabled Indicates if the track is disabled + * @param codec Codec used by the track (e.g. "opus", "VP8") + * @param description Description of the track + * @param moderated + * @param simulcast Indicates if simulcast is enabled for the track + */ public StreamTrackInfo( String type, Long mindex, @@ -75,6 +161,19 @@ public StreamTrackInfo( this(type, mindex, mid, disabled, codec, description, moderated, simulcast, null); } + /** + * Constructs a new {@link StreamTrackInfo} instance. + * + * @param type Type of the track (e.g. "audio", "video", "data") + * @param mindex + * @param mid + * @param disabled Indicates if the track is disabled + * @param codec Codec used by the track (e.g. "opus", "VP8") + * @param description Description of the track + * @param moderated + * @param simulcast Indicates if simulcast is enabled for the track + * @param talking Indicates active speech detection on the track + */ public StreamTrackInfo( String type, Long mindex, From efb7455b798b6a5172c36ce2fd8ad2cc545b96a3 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:05:35 +0200 Subject: [PATCH 10/31] docs: add docs for StreamTrackModificationPair --- .../stream/StreamTrackModificationPair.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModificationPair.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModificationPair.java index 5ff41eb7..0d06522d 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModificationPair.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackModificationPair.java @@ -1,19 +1,27 @@ package com.simplito.java.privmx_endpoint.model.stream; +/** + * Represents a single track modification, holding the state of a track before and after the change. + */ public class StreamTrackModificationPair { + /** + * State of the track before the modification + */ public StreamTrackInfo before; + + /** + * State of the track after the modification + */ public StreamTrackInfo after; + /** + * Constructs a new {@link StreamTrackModificationPair} instance. + * + * @param before The state of the track before the modification + * @param after The state of the track after the modification + */ public StreamTrackModificationPair(StreamTrackInfo before, StreamTrackInfo after) { this.before = before; this.after = after; } - - public StreamTrackModificationPair(StreamTrackInfo before) { - this(before, null); - } - - public StreamTrackModificationPair() { - this(null, null); - } } From f6780d8df6cb25521b874cac0329919f33d138b7 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:11:56 +0200 Subject: [PATCH 11/31] docs: add docs for StreamSubscription --- .../model/stream/StreamSubscription.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamSubscription.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamSubscription.java index 54a471b1..d9168bab 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamSubscription.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamSubscription.java @@ -1,14 +1,37 @@ package com.simplito.java.privmx_endpoint.model.stream; +/** + * Describes a remote stream or a specific track within that stream, + * used when subscribing to, modifying, or unsubscribing from remote streams. + */ public class StreamSubscription { + /** + * Unique identifier of the stream + */ public Long streamId; + + /** + * Identifier of a specific track within the stream. + * If not provided, the entire stream is targeted. + */ public String streamTrackId; + /** + * Constructs a new {@link StreamSubscription} instance. + * + * @param streamId Unique identifier of the stream + * @param streamTrackId Identifier of a specific track within the stream + */ public StreamSubscription(long streamId, String streamTrackId) { this.streamId = streamId; this.streamTrackId = streamTrackId; } + /** + * Constructs a new {@link StreamSubscription} instance. + * + * @param streamId Unique identifier of the stream + */ public StreamSubscription(long streamId) { this.streamId = streamId; } From 8306e2b5edd7cd0ec06d8e7f94b60957f807a671 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:15:23 +0200 Subject: [PATCH 12/31] docs: add docs for StreamRoom --- .../model/stream/StreamRoom.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java index 9c0b8da3..569eb525 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java @@ -15,23 +15,103 @@ import java.util.List; +/** + * Represents a stream room within a PrivMX context + */ public class StreamRoom { + /** + * Identifier of the context this stream room belongs to + */ public String contextId; + + /** + * Identifier of the stream room + */ public String streamRoomId; + + /** + * Timestamp of when the stream room was created + */ public Long createDate; + + /** + * Identifier of the user who created the stream room + */ public String creator; + + /** + * Timestamp of when the stream room was last modified + */ public Long lastModificationDate; + + /** + * Identifier of the user who last modified the stream room + */ public String lastModifier; + /** + * List of usernames with access to the stream room + */ public List users; + /** + * List of usernames with management privileges over the stream room + */ public List managers; + + /** + * Version number (changes on updates). + */ public Long version; + + /** + * StreamRoom's public metadata + */ public byte[] publicMeta; + + /** + * StreamRoom's private metadata + */ + public byte[] privateMeta; + + /** + * StreamRoom's policies + */ public ContainerPolicy policy; + + /** + * Status code of retrieval and decryption of the {@code StreamRoom} + */ public Long statusCode; + + /** + * Version of the StreamRoom data structure and how it is encoded/encrypted + */ public Long schemaVersion; + + /** + * Indicates if the stream room is closed + */ public Boolean closed; + /** + * Constructs a new {@link StreamRoom} instance. + * + * @param contextId Identifier of the context this stream room belongs to + * @param streamRoomId Identifier of the stream room + * @param createDate Timestamp of when the stream room was created + * @param creator Identifier of the user who created the stream room + * @param lastModificationDate Timestamp of when the stream room was last modified + * @param lastModifier Identifier of the user who last modified the stream room + * @param users List of usernames with access to the stream room + * @param managers List of usernames with management privileges over the stream room + * @param version Version number (changes on updates) + * @param publicMeta StreamRoom's public metadata + * @param privateMeta StreamRoom's private metadata + * @param policy StreamRoom's policies + * @param statusCode Status code of retrieval and decryption of the {@code StreamRoom} + * @param schemaVersion Version of the StreamRoom data structure and how it is encoded/encrypted + * @param closed Indicates if the stream room is closed + */ public StreamRoom( String contextId, String streamRoomId, From da9b818d7e714f8d88c2f667930703b142b8e9c2 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:16:26 +0200 Subject: [PATCH 13/31] docs: add docs for StreamPublishResult --- .../model/stream/StreamPublishResult.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java index cf3022a9..137fddc1 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java @@ -1,12 +1,34 @@ package com.simplito.java.privmx_endpoint.model.stream; +/** + * Represents the result of a stream publish/update operation. + */ public class StreamPublishResult { -public Boolean published; -public PublishedStreamData data; + /** + * Indicates if the stream was successfully published + */ + public Boolean published; + /** + * Additional information about the published stream + */ + public PublishedStreamData data; + + /** + * Constructs a new {@link StreamPublishResult} instance. + * + * @param published Indicates if the stream was successfully published + */ public StreamPublishResult(Boolean published) { this(published, null); } + + /** + * Constructs a new {@link StreamPublishResult} instance. + * + * @param published Indicates if the stream was successfully published + * @param data Additional information about the published stream + */ public StreamPublishResult(Boolean published, PublishedStreamData data) { this.published = published; this.data = data; From 02a7dcd7ce65eae616e6092a1260bc3b3617f2de Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:19:15 +0200 Subject: [PATCH 14/31] docs: add docs for StreamInfo --- .../model/stream/StreamInfo.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java index 2d52d6c2..88d5a534 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamInfo.java @@ -13,22 +13,64 @@ import java.util.List; +/** + * Contains detailed information about a stream and its associated tracks. + */ public class StreamInfo { + /** + * Unique identifier of the stream + */ public Long id; + + /** + * Identifier of the user who published the stream + */ public String userId; + + /** + * Information about the tracks within the stream + */ public List tracks; + + /** + * Additional metadata attached to the stream as a JSON string + */ public String metadata; // optional - public Boolean dummy; // optional + public Boolean dummy; // optional + /** + * Constructs a new {@link StreamInfo} instance. + * + * @param id Unique identifier of the stream + * @param userId Identifier of the user who published the stream + * @param tracks Information about the tracks within the stream + */ public StreamInfo(Long id, String userId, List tracks) { this(id, userId, tracks, null, null); } + /** + * Constructs a new {@link StreamInfo} instance. + * + * @param id Unique identifier of the stream + * @param userId Identifier of the user who published the stream + * @param tracks Information about the tracks within the stream + * @param metadata Additional metadata attached to the stream as a JSON string + */ public StreamInfo(Long id, String userId, List tracks, String metadata) { this(id, userId, tracks, metadata, null); } + /** + * Constructs a new {@link StreamInfo} instance. + * + * @param id Unique identifier of the stream + * @param userId Identifier of the user who published the stream + * @param tracks Information about the tracks within the stream + * @param metadata Additional metadata attached to the stream as a JSON string + * @param dummy + */ public StreamInfo(Long id, String userId, List tracks, String metadata, Boolean dummy) { this.id = id; this.userId = userId; From 6989013ee797c3fbfc7dbd6b6c2c46f356e807b6 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:19:59 +0200 Subject: [PATCH 15/31] docs: add docs for StreamHandle --- .../privmx_endpoint/model/stream/StreamHandle.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamHandle.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamHandle.java index 8a4e7b51..b2e5c096 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamHandle.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamHandle.java @@ -1,12 +1,26 @@ package com.simplito.java.privmx_endpoint.model.stream; +/** + * Unique handle to a stream, used to perform operations on the stream. + */ public class StreamHandle { + /** + * The value of the {@link StreamHandle}. + */ private final Long value; + /** + * Constructs a new {@link StreamHandle} instance. + * + * @param value The value of the {@link StreamHandle}. + */ public StreamHandle(Long value) { this.value = value; } + /** + * Gets the value of the {@link StreamHandle}. + */ public Long getValue() { return value; } From 0a0170b9913b0d3d4c15252cee6a45a0b8277361 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:21:56 +0200 Subject: [PATCH 16/31] docs: add docs for PublishedStreamData --- .../model/stream/PublishedStreamData.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/PublishedStreamData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/PublishedStreamData.java index 4df54f01..801d78ee 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/PublishedStreamData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/PublishedStreamData.java @@ -1,10 +1,31 @@ package com.simplito.java.privmx_endpoint.model.stream; +/** + * Represents data of a published stream. + */ public class PublishedStreamData { + /** + * Identifier of the room in which the stream is published + */ public String streamRoomId; + + /** + * Information about the published stream + */ public StreamInfo stream; + + /** + * Identifier of the user who published the stream + */ public String userId; + /** + * Constructs a new {@link PublishedStreamData} instance. + * + * @param streamRoomId Identifier of the room in which the stream is published + * @param stream Information about the published stream + * @param userId Identifier of the user who published the stream + */ public PublishedStreamData(String streamRoomId, StreamInfo stream, String userId) { this.streamRoomId = streamRoomId; this.stream = stream; From 2ed958f078637f7705b0b5b08674fcaadf01a115 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:23:30 +0200 Subject: [PATCH 17/31] refactor: move PublishedStreamData class --- .../privmx_endpoint/model/stream/StreamPublishResult.java | 2 ++ .../model/stream/{ => events}/PublishedStreamData.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) rename privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/{ => events}/PublishedStreamData.java (87%) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java index 137fddc1..3a2863b9 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamPublishResult.java @@ -1,5 +1,7 @@ package com.simplito.java.privmx_endpoint.model.stream; +import com.simplito.java.privmx_endpoint.model.stream.events.PublishedStreamData; + /** * Represents the result of a stream publish/update operation. */ diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/PublishedStreamData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/PublishedStreamData.java similarity index 87% rename from privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/PublishedStreamData.java rename to privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/PublishedStreamData.java index 801d78ee..f1e97523 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/PublishedStreamData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/PublishedStreamData.java @@ -1,4 +1,6 @@ -package com.simplito.java.privmx_endpoint.model.stream; +package com.simplito.java.privmx_endpoint.model.stream.events; + +import com.simplito.java.privmx_endpoint.model.stream.StreamInfo; /** * Represents data of a published stream. From 65ee1667618d498d210767190e89e22141bd3cea Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:25:49 +0200 Subject: [PATCH 18/31] docs: add docs for UpdatedStreamData --- .../stream/events/UpdatedStreamData.java | 51 +++++++++++-------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/UpdatedStreamData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/UpdatedStreamData.java index 86325aec..434b103e 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/UpdatedStreamData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/UpdatedStreamData.java @@ -1,16 +1,43 @@ package com.simplito.java.privmx_endpoint.model.stream.events; +/** + * Current state of a single publisher stream, received as part of {@code StreamsUpdatedData}. + */ public class UpdatedStreamData { + /** + * Track type (e.g. "audio", "video", "data") + */ public String type; - public String codec = null; // optional - public Long streamId = null; // optional - public String streamMid = null; // optional - public String streamDisplay = null; // optional public Long mindex; public String mid; Boolean send; Boolean ready; + /** + * Codec used by the stream (e.g. "opus", "VP8") + */ + public String codec = null; // optional + + /** + * Identifier of the publisher stream + */ + public Long streamId = null; // optional + public String streamMid = null; // optional + public String streamDisplay = null; // optional + + /** + * Constructs a new {@link UpdatedStreamData} instance. + * + * @param type Track type (e.g. "audio", "video", "data") + * @param mindex + * @param mid + * @param send + * @param ready + * @param codec Codec used by the stream (e.g. "opus", "VP8") + * @param streamId Identifier of the publisher stream + * @param streamMid + * @param streamDisplay + */ public UpdatedStreamData(String type, Long mindex, String mid, Boolean send, Boolean ready, String codec, Long streamId, String streamMid, String streamDisplay) { this.type = type; this.codec = codec; @@ -22,20 +49,4 @@ public UpdatedStreamData(String type, Long mindex, String mid, Boolean send, Boo this.send = send; this.ready = ready; } - - public UpdatedStreamData(String type, Long mindex, String mid, Boolean send, Boolean ready, String codec, Long streamId, String streamMid) { - this(type, mindex, mid, send, ready, codec, streamId, streamMid, null); - } - - public UpdatedStreamData(String type, Long mindex, String mid, Boolean send, Boolean ready, String codec, Long streamId) { - this(type, mindex, mid, send, ready, codec, streamId, null, null); - } - - public UpdatedStreamData(String type, Long mindex, String mid, Boolean send, Boolean ready, String codec) { - this(type, mindex, mid, send, ready, codec, null, null, null); - } - - public UpdatedStreamData(String type, Long mindex, String mid, Boolean send, Boolean ready) { - this(type, mindex, mid, send, ready, null, null, null, null); - } } \ No newline at end of file From df20b7fcdf800c8a978eedda12b84e741591598f Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:26:27 +0200 Subject: [PATCH 19/31] docs: add docs for StreamUpdatedEventData --- .../stream/events/StreamUpdatedEventData.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUpdatedEventData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUpdatedEventData.java index 274825d9..47c4f66f 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUpdatedEventData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUpdatedEventData.java @@ -6,12 +6,39 @@ import java.util.List; +/** + * Data describing changes that occurred within a stream room during an active session. + * Received when an existing publisher adds, removes, or modifies their tracks. + */ public class StreamUpdatedEventData { + /** + * Identifier of the stream room in which the update occurred + */ public String streamRoomId; + + /** + * List of streams that were added to the stream room + */ public List streamsAdded; + + /** + * List of streams that were removed from the stream room + */ public List streamsRemoved; + + /** + * List of streams that were modified in the stream room + */ public List streamsModified; + /** + * Constructs a new {@link StreamUpdatedEventData} instance. + * + * @param streamRoomId Identifier of the stream room in which the update occurred + * @param streamsAdded List of streams that were added to the stream room + * @param streamsRemoved List of streams that were removed from the stream room + * @param streamsModified List of streams that were modified in the stream room + */ public StreamUpdatedEventData(String streamRoomId, List streamsAdded, List streamsRemoved, List streamsModified) { this.streamRoomId = streamRoomId; this.streamsAdded = streamsAdded; From 958e0165f50c9d8e4f3a4e56aef6623770c49d28 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:27:30 +0200 Subject: [PATCH 20/31] docs: add docs for StreamUnpublishedEventData --- .../events/StreamUnpublishedEventData.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUnpublishedEventData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUnpublishedEventData.java index f0b8935e..5b4ceb40 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUnpublishedEventData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamUnpublishedEventData.java @@ -1,11 +1,27 @@ package com.simplito.java.privmx_endpoint.model.stream.events; +/** + * Data describing the event that occurs when a publisher stops publishing their stream in a StreamRoom. + */ public class StreamUnpublishedEventData { + /** + * Identifier of the StreamRoom in which the stream was unpublished + */ public String streamRoomId; + + /** + * Identifier of the stream that was unpublished + */ public Long streamId; + /** + * Constructs a new {@link StreamUnpublishedEventData} instance. + * + * @param streamRoomId Identifier of the StreamRoom in which the stream was unpublished + * @param streamId Identifier of the stream that was unpublished + */ public StreamUnpublishedEventData(String streamRoomId, Long streamId) { this.streamRoomId = streamRoomId; this.streamId = streamId; } -} +} \ No newline at end of file From ff16d8b648b61a890347bdc416e0b79c7f86050c Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:28:46 +0200 Subject: [PATCH 21/31] docs: add docs for StreamsUpdatedData --- .../model/stream/events/StreamsUpdatedData.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamsUpdatedData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamsUpdatedData.java index 66231546..1d341b0c 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamsUpdatedData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamsUpdatedData.java @@ -3,10 +3,27 @@ import java.util.List; +/** + * Data received when a new participant joins the StreamRoom. + * Contains a snapshot of all currently active streams in the room. + */ public class StreamsUpdatedData { + /** + * Identifier of the StreamRoom + */ public String room; + + /** + * List of streams in the room + */ public List streams; + /** + * Constructs a new {@link StreamsUpdatedData} instance. + * + * @param room Identifier of the StreamRoom + * @param streams List of streams in the room + */ public StreamsUpdatedData(String room, List streams) { this.room = room; this.streams = streams; From 47ecb6d95497fc97c01955a1f0922b2b02b60c11 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:29:27 +0200 Subject: [PATCH 22/31] docs: add docs for StreamRoomDeletedEventData --- .../stream/events/StreamRoomDeletedEventData.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamRoomDeletedEventData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamRoomDeletedEventData.java index eb81ce94..e7f10386 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamRoomDeletedEventData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamRoomDeletedEventData.java @@ -1,8 +1,19 @@ package com.simplito.java.privmx_endpoint.model.stream.events; +/** + * Data describing the event that occurs when a StreamRoom is deleted. + */ public class StreamRoomDeletedEventData { + /** + * Identifier of the StreamRoom that was deleted + */ public String streamRoomId; + /** + * Constructs a new {@link StreamRoomDeletedEventData} instance. + * + * @param streamRoomId Identifier of the StreamRoom that was deleted + */ public StreamRoomDeletedEventData(String streamRoomId) { this.streamRoomId = streamRoomId; } From 06a3c016d7aabc0b18e22c3b0c142279c2af4746 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:30:25 +0200 Subject: [PATCH 23/31] docs: add docs for StreamPublishedEventData --- .../events/StreamPublishedEventData.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamPublishedEventData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamPublishedEventData.java index 0e834766..20e17156 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamPublishedEventData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamPublishedEventData.java @@ -3,22 +3,32 @@ import com.simplito.java.privmx_endpoint.model.stream.StreamInfo; -// todo: which to choose -// same as StreamPublishedEventData +/** + * Data describing the event that occurs when a publisher starts publishing their stream in a StreamRoom. + */ public class StreamPublishedEventData { - /** - * StreamRoom ID + * Identifier of the stream room in which the stream was published */ public String streamRoomId; /** - * Stream ID's + * Detailed information about the published stream */ public StreamInfo stream; - public String userId; + /** + * Identifier of the user who published the stream + */ + public String userId; + /** + * Constructs a new {@link StreamPublishedEventData} instance. + * + * @param streamRoomId Identifier of the stream room in which the stream was published + * @param stream Detailed information about the published stream + * @param userId Identifier of the user who published the stream + */ public StreamPublishedEventData(String streamRoomId, StreamInfo stream, String userId) { this.streamRoomId = streamRoomId; this.stream = stream; From f631d5bf5e28ac5d660ef3a104084825dd2ec2fb Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:33:43 +0200 Subject: [PATCH 24/31] docs: add docs for StreamLeftEventData --- .../stream/events/StreamLeftEventData.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java index 72cda9a7..e878d5d6 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java @@ -1,12 +1,30 @@ package com.simplito.java.privmx_endpoint.model.stream.events; -import java.util.List; - +/** + * Data describing the event that occurs when a participant leaves a StreamRoom. + */ public class StreamLeftEventData { + /** + * Identifier of the StreamRoom that was left + */ public String streamRoomId; + + /** + * Identifier of the stream that was left + */ public Long streamId; + + /** + * Identifier of the user who left the StreamRoom + */ public String userId; + /** + * Constructs a new {@link StreamLeftEventData} instance. + * + * @param streamRoomId Identifier of the StreamRoom that was left + * @param streamId Identifier of the stream that was left + */ public StreamLeftEventData(String streamRoomId, Long streamId, String userId) { this.streamRoomId = streamRoomId; this.streamId = streamId; From 2f5ded5fa5d8ab849ee53edddf901f8e661b0556 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:34:46 +0200 Subject: [PATCH 25/31] docs: add docs for StreamEventData --- .../model/stream/events/StreamEventData.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamEventData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamEventData.java index 71114a60..1ee304e7 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamEventData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamEventData.java @@ -2,11 +2,29 @@ import java.util.List; +/** + * Data describing the event that occurs when a participant joins a StreamRoom. + */ public class StreamEventData { + /** + * Identifier of the stream room that was joined + */ public String streamRoomId; + public List streamIds; + + /** + * Identifier of the user who joined the StreamRoom + */ public String userId; + /** + * Constructs a new {@link StreamEventData} instance. + * + * @param streamRoomId Identifier of the stream room that was joined + * @param streamIds + * @param userId Identifier of the user who joined the StreamRoom + */ public StreamEventData(String streamRoomId, List streamIds, String userId) { this.streamRoomId = streamRoomId; this.streamIds = streamIds; From ba74e9e93b4e4faa690d6dbc1063f8caf34fc8e0 Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:35:09 +0200 Subject: [PATCH 26/31] docs: add docs for NewStreams --- .../model/stream/events/NewStreams.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/NewStreams.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/NewStreams.java index f05caf94..f9c5b4bf 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/NewStreams.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/NewStreams.java @@ -5,9 +5,26 @@ import java.util.List; +/** + * Data describing the event that occurs when new streams become available for subscription in a stream room. + */ public class NewStreams { + /** + * Identifier of the stream room + */ public String room; + + /** + * List of newly available streams that can be subscribed to + */ public List streams; + + /** + * Constructs a new {@link NewStreams} instance. + * + * @param room Identifier of the stream room + * @param streams List of newly available streams that can be subscribed to + */ public NewStreams(String room, List streams) { this.room = room; this.streams = streams; From 9b3ed5e3fc017562afbb1e0feb036eaa89f865ff Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:35:33 +0200 Subject: [PATCH 27/31] docs: add docs for StreamEventType --- .../events/eventTypes/StreamEventType.java | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventTypes/StreamEventType.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventTypes/StreamEventType.java index 44d290fd..e8283d40 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventTypes/StreamEventType.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventTypes/StreamEventType.java @@ -2,15 +2,42 @@ import com.simplito.java.privmx_endpoint.model.events.eventTypes.EventType; +/** + * Defines the types of events that can occur within the stream for which a client can subscribe. + * This enum lists the various actions or changes that can happen to + * stream rooms and their streams, allowing observers to be notified of specific occurrences. + */ public enum StreamEventType implements EventType { + /** + * Type of event triggered when a new StreamRoom is created. + */ STREAMROOM_CREATE, + /** + * Type of event triggered when an existing StreamRoom is updated. + */ STREAMROOM_UPDATE, + /** + * Type of event triggered when a StreamRoom is deleted. + */ STREAMROOM_DELETE, + /** + * Do not use. + */ EMPTY, + /** + * Type of event triggered when a participant joins a StreamRoom. + */ STREAM_JOIN, + /** + * Type of event triggered when a participant leaves a StreamRoom. + */ STREAM_LEAVE, + /** + * Type of event triggered when a participant starts publishing a stream. + */ STREAM_PUBLISH, + /** + * Type of event triggered when a participant stops publishing a stream. + */ STREAM_UNPUBLISH -} - - +} \ No newline at end of file From b5263c440099c8201dc33f82e9c2a9c3122596ee Mon Sep 17 00:00:00 2001 From: Doominika Date: Thu, 16 Apr 2026 14:35:50 +0200 Subject: [PATCH 28/31] docs: add docs for StreamEventSelectorType --- .../StreamEventSelectorType.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventSelectorTypes/StreamEventSelectorType.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventSelectorTypes/StreamEventSelectorType.java index 3ab7e769..3c3a5007 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventSelectorTypes/StreamEventSelectorType.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/eventSelectorTypes/StreamEventSelectorType.java @@ -2,8 +2,25 @@ import com.simplito.java.privmx_endpoint.model.events.eventSelectorTypes.EventSelectorType; +/** + * Specifies the type of identifier used to select a stream event. + * Stream events can be targeted based on different levels of granularity within the stream structure. + * This enum defines the possible types of selectors for these events. + * + */ public enum StreamEventSelectorType implements EventSelectorType { + /** + * Selects events based on the ID of the context. + */ CONTEXT_ID, + + /** + * Selects events based on the ID of the stream room. + */ STREAMROOM_ID, + + /** + * Selects events based on the ID of a specific stream. + */ STREAM_ID } From 147ee44f22297660a2df17730a8bdbf842d301de Mon Sep 17 00:00:00 2001 From: Doominika Date: Fri, 24 Apr 2026 15:18:25 +0200 Subject: [PATCH 29/31] feat: update StreamTrackInfo --- .../model/stream/StreamTrackInfo.java | 43 +++---------------- 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java index eac26900..d53af6f2 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamTrackInfo.java @@ -36,11 +36,6 @@ public class StreamTrackInfo { */ public Boolean simulcast; // optional - /** - * Indicates active speech detection on the track - */ - public Boolean talking; // optional - /** * Constructs a new {@link StreamTrackInfo} instance. * @@ -53,7 +48,7 @@ public StreamTrackInfo( Long mindex, String mid ) { - this(type, mindex, mid, null, null, null, null, null, null); + this(type, mindex, mid, null, null, null, null, null); } /** @@ -70,7 +65,7 @@ public StreamTrackInfo( String mid, Boolean disabled ) { - this(type, mindex, mid, disabled, null, null, null, null, null); + this(type, mindex, mid, disabled, null, null, null, null); } /** @@ -89,7 +84,7 @@ public StreamTrackInfo( Boolean disabled, String codec ) { - this(type, mindex, mid, disabled, codec, null, null, null, null); + this(type, mindex, mid, disabled, codec, null, null, null); } /** @@ -110,7 +105,7 @@ public StreamTrackInfo( String codec, String description ) { - this(type, mindex, mid, disabled, codec, description, null, null, null); + this(type, mindex, mid, disabled, codec, description, null, null); } /** @@ -133,7 +128,7 @@ public StreamTrackInfo( String description, Boolean moderated ) { - this(type, mindex, mid, disabled, codec, description, moderated, null, null); + this(type, mindex, mid, disabled, codec, description, moderated, null); } /** @@ -157,33 +152,6 @@ public StreamTrackInfo( String description, Boolean moderated, Boolean simulcast - ) { - this(type, mindex, mid, disabled, codec, description, moderated, simulcast, null); - } - - /** - * Constructs a new {@link StreamTrackInfo} instance. - * - * @param type Type of the track (e.g. "audio", "video", "data") - * @param mindex - * @param mid - * @param disabled Indicates if the track is disabled - * @param codec Codec used by the track (e.g. "opus", "VP8") - * @param description Description of the track - * @param moderated - * @param simulcast Indicates if simulcast is enabled for the track - * @param talking Indicates active speech detection on the track - */ - public StreamTrackInfo( - String type, - Long mindex, - String mid, - Boolean disabled, - String codec, - String description, - Boolean moderated, - Boolean simulcast, - Boolean talking ) { this.type = type; this.mindex = mindex; @@ -193,6 +161,5 @@ public StreamTrackInfo( this.description = description; this.moderated = moderated; this.simulcast = simulcast; - this.talking = talking; } } From cc27b8b01992e1585edff4e037a3af020f4ada78 Mon Sep 17 00:00:00 2001 From: Doominika Date: Fri, 24 Apr 2026 15:29:19 +0200 Subject: [PATCH 30/31] feat: update streamId param description --- .../model/stream/events/StreamLeftEventData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java index e878d5d6..e7c61454 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/events/StreamLeftEventData.java @@ -10,7 +10,7 @@ public class StreamLeftEventData { public String streamRoomId; /** - * Identifier of the stream that was left + * Published stream identifier of the user who left */ public Long streamId; From 64ce5b43b110619e7c804665dffebb961a56fa11 Mon Sep 17 00:00:00 2001 From: Doominika Date: Fri, 24 Apr 2026 15:31:43 +0200 Subject: [PATCH 31/31] feat: update users list description in StreamRoom class --- .../java/privmx_endpoint/model/stream/StreamRoom.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java index 569eb525..376276b3 100644 --- a/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java +++ b/privmx-endpoint/src/main/java/com/simplito/java/privmx_endpoint/model/stream/StreamRoom.java @@ -49,7 +49,7 @@ public class StreamRoom { */ public String lastModifier; /** - * List of usernames with access to the stream room + * List of user's IDs with access to the stream room */ public List users; /** @@ -102,7 +102,7 @@ public class StreamRoom { * @param creator Identifier of the user who created the stream room * @param lastModificationDate Timestamp of when the stream room was last modified * @param lastModifier Identifier of the user who last modified the stream room - * @param users List of usernames with access to the stream room + * @param users List of user's IDs with access to the stream room * @param managers List of usernames with management privileges over the stream room * @param version Version number (changes on updates) * @param publicMeta StreamRoom's public metadata