diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java index 41d1d14ea..211951d1e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java @@ -692,19 +692,14 @@ public class SmsDatabase extends MessageDatabase { @NonNull Collection peekJoinedUuids, boolean isCallFull) { - SQLiteDatabase db = databaseHelper.getWritableDatabase(); - - long threadId; + SQLiteDatabase db = databaseHelper.getWritableDatabase(); + Recipient recipient = Recipient.resolved(groupRecipientId); + long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipient); + boolean peerEraIdSameAsPrevious = updatePreviousGroupCall(threadId, peekGroupCallEraId, peekJoinedUuids, isCallFull); try { db.beginTransaction(); - Recipient recipient = Recipient.resolved(groupRecipientId); - - threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipient); - - boolean peerEraIdSameAsPrevious = updatePreviousGroupCall(threadId, peekGroupCallEraId, peekJoinedUuids, isCallFull); - if (!peerEraIdSameAsPrevious && !Util.isEmpty(peekGroupCallEraId)) { Recipient self = Recipient.self(); boolean markRead = peekJoinedUuids.contains(self.requireUuid()) || self.getId().equals(sender); @@ -825,9 +820,10 @@ public class SmsDatabase extends MessageDatabase { @Override public boolean updatePreviousGroupCall(long threadId, @Nullable String peekGroupCallEraId, @NonNull Collection peekJoinedUuids, boolean isCallFull) { - SQLiteDatabase db = databaseHelper.getWritableDatabase(); - String where = TYPE + " = ? AND " + THREAD_ID + " = ?"; - String[] args = SqlUtil.buildArgs(Types.GROUP_CALL_TYPE, threadId); + SQLiteDatabase db = databaseHelper.getWritableDatabase(); + String where = TYPE + " = ? AND " + THREAD_ID + " = ?"; + String[] args = SqlUtil.buildArgs(Types.GROUP_CALL_TYPE, threadId); + boolean sameEraId = false; try (Reader reader = new Reader(db.query(TABLE_NAME, MESSAGE_PROJECTION, where, args, null, null, DATE_RECEIVED + " DESC", "1"))) { MessageRecord record = reader.getNext(); @@ -836,9 +832,10 @@ public class SmsDatabase extends MessageDatabase { } GroupCallUpdateDetails groupCallUpdateDetails = GroupCallUpdateDetailsUtil.parse(record.getBody()); - boolean sameEraId = groupCallUpdateDetails.getEraId().equals(peekGroupCallEraId) && !Util.isEmpty(peekGroupCallEraId); boolean containsSelf = peekJoinedUuids.contains(Recipient.self().requireUuid()); + sameEraId = groupCallUpdateDetails.getEraId().equals(peekGroupCallEraId) && !Util.isEmpty(peekGroupCallEraId); + List inCallUuids = sameEraId ? Stream.of(peekJoinedUuids).map(UUID::toString).toList() : Collections.emptyList(); @@ -852,9 +849,11 @@ public class SmsDatabase extends MessageDatabase { } db.update(TABLE_NAME, contentValues, ID_WHERE, SqlUtil.buildArgs(record.getId())); - - return sameEraId; } + + notifyConversationListeners(threadId); + + return sameEraId; } private @NonNull Pair insertCallLog(@NonNull RecipientId recipientId, long type, boolean unread, long timestamp) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java index 36b0f2c96..506ac411a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java @@ -8,7 +8,6 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.impl.WebsocketDrainedConstraint; import org.thoughtcrime.securesms.recipients.RecipientId; -import org.thoughtcrime.securesms.service.webrtc.WebRtcData; /** * Allows the enqueueing of one peek operation per group while the web socket is not drained. @@ -19,35 +18,32 @@ public final class GroupCallPeekJob extends BaseJob { private static final String QUEUE = "__GroupCallPeekJob__"; - private static final String KEY_SENDER = "sender"; - private static final String KEY_GROUP_RECIPIENT_ID = "group_recipient_id"; - private static final String KEY_GROUP_CALL_ERA_ID = "group_call_era_id"; - private static final String KEY_SERVER_RECEIVED_TIMESTAMP = "server_timestamp"; + private static final String KEY_GROUP_RECIPIENT_ID = "group_recipient_id"; - @NonNull private final WebRtcData.GroupCallUpdateMetadata updateMetadata; + @NonNull private final RecipientId groupRecipientId; - public static void enqueue(@NonNull WebRtcData.GroupCallUpdateMetadata updateMetadata) { + public static void enqueue(@NonNull RecipientId groupRecipientId) { JobManager jobManager = ApplicationDependencies.getJobManager(); - String queue = QUEUE + updateMetadata.getGroupRecipientId().serialize(); + String queue = QUEUE + groupRecipientId.serialize(); Parameters.Builder parameters = new Parameters.Builder() .setQueue(queue) .addConstraint(WebsocketDrainedConstraint.KEY); jobManager.cancelAllInQueue(queue); - jobManager.add(new GroupCallPeekJob(parameters.build(), updateMetadata)); + jobManager.add(new GroupCallPeekJob(parameters.build(), groupRecipientId)); } private GroupCallPeekJob(@NonNull Parameters parameters, - @NonNull WebRtcData.GroupCallUpdateMetadata updateMetadata) + @NonNull RecipientId groupRecipientId) { super(parameters); - this.updateMetadata = updateMetadata; + this.groupRecipientId = groupRecipientId; } @Override protected void onRun() { - ApplicationDependencies.getJobManager().add(new GroupCallPeekWorkerJob(updateMetadata)); + ApplicationDependencies.getJobManager().add(new GroupCallPeekWorkerJob(groupRecipientId)); } @Override @@ -58,10 +54,7 @@ public final class GroupCallPeekJob extends BaseJob { @Override public @NonNull Data serialize() { return new Data.Builder() - .putString(KEY_SENDER, updateMetadata.getSender().serialize()) - .putString(KEY_GROUP_RECIPIENT_ID, updateMetadata.getGroupRecipientId().serialize()) - .putString(KEY_GROUP_CALL_ERA_ID, updateMetadata.getGroupCallEraId()) - .putLong(KEY_SERVER_RECEIVED_TIMESTAMP, updateMetadata.getServerReceivedTimestamp()) + .putString(KEY_GROUP_RECIPIENT_ID, groupRecipientId.serialize()) .build(); } @@ -78,12 +71,7 @@ public final class GroupCallPeekJob extends BaseJob { @Override public @NonNull GroupCallPeekJob create(@NonNull Parameters parameters, @NonNull Data data) { - RecipientId sender = RecipientId.from(data.getString(KEY_SENDER)); - RecipientId group = RecipientId.from(data.getString(KEY_GROUP_RECIPIENT_ID)); - String era = data.getString(KEY_GROUP_CALL_ERA_ID); - long serverTimestamp = data.getLong(KEY_SERVER_RECEIVED_TIMESTAMP); - - return new GroupCallPeekJob(parameters, new WebRtcData.GroupCallUpdateMetadata(sender, group, era, serverTimestamp)); + return new GroupCallPeekJob(parameters, RecipientId.from(data.getString(KEY_GROUP_RECIPIENT_ID))); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java index 1c71a14b8..8b3cb7e93 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java @@ -7,8 +7,8 @@ import androidx.annotation.NonNull; import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.recipients.RecipientId; +import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.service.WebRtcCallService; -import org.thoughtcrime.securesms.service.webrtc.WebRtcData; /** * Runs in the same queue as messages for the group. @@ -17,36 +17,28 @@ final class GroupCallPeekWorkerJob extends BaseJob { public static final String KEY = "GroupCallPeekWorkerJob"; - private static final String KEY_SENDER = "sender"; private static final String KEY_GROUP_RECIPIENT_ID = "group_recipient_id"; - private static final String KEY_GROUP_CALL_ERA_ID = "group_call_era_id"; - private static final String KEY_SERVER_RECEIVED_TIMESTAMP = "server_timestamp"; - @NonNull private final WebRtcData.GroupCallUpdateMetadata updateMetadata; + @NonNull private final RecipientId groupRecipientId; - public GroupCallPeekWorkerJob(@NonNull WebRtcData.GroupCallUpdateMetadata updateMetadata) { + public GroupCallPeekWorkerJob(@NonNull RecipientId groupRecipientId) { this(new Parameters.Builder() - .setQueue(PushProcessMessageJob.getQueueName(updateMetadata.getGroupRecipientId())) + .setQueue(PushProcessMessageJob.getQueueName(groupRecipientId)) + .setMaxInstancesForQueue(2) .build(), - updateMetadata); + groupRecipientId); } - private GroupCallPeekWorkerJob(@NonNull Parameters parameters, - @NonNull WebRtcData.GroupCallUpdateMetadata updateMetadata) - { + private GroupCallPeekWorkerJob(@NonNull Parameters parameters, @NonNull RecipientId groupRecipientId) { super(parameters); - this.updateMetadata = updateMetadata; + this.groupRecipientId = groupRecipientId; } @Override protected void onRun() { Intent intent = new Intent(context, WebRtcCallService.class); - - intent.setAction(WebRtcCallService.ACTION_GROUP_CALL_UPDATE_MESSAGE) - .putExtra(WebRtcCallService.EXTRA_GROUP_CALL_UPDATE_SENDER, updateMetadata.getSender().serialize()) - .putExtra(WebRtcCallService.EXTRA_GROUP_CALL_UPDATE_GROUP, updateMetadata.getGroupRecipientId().serialize()) - .putExtra(WebRtcCallService.EXTRA_GROUP_CALL_ERA_ID, updateMetadata.getGroupCallEraId()) - .putExtra(WebRtcCallService.EXTRA_SERVER_RECEIVED_TIMESTAMP, updateMetadata.getServerReceivedTimestamp()); + intent.setAction(WebRtcCallService.ACTION_GROUP_CALL_PEEK) + .putExtra(WebRtcCallService.EXTRA_REMOTE_PEER, new RemotePeer(groupRecipientId)); context.startService(intent); } @@ -59,10 +51,7 @@ final class GroupCallPeekWorkerJob extends BaseJob { @Override public @NonNull Data serialize() { return new Data.Builder() - .putString(KEY_SENDER, updateMetadata.getSender().serialize()) - .putString(KEY_GROUP_RECIPIENT_ID, updateMetadata.getGroupRecipientId().serialize()) - .putString(KEY_GROUP_CALL_ERA_ID, updateMetadata.getGroupCallEraId()) - .putLong(KEY_SERVER_RECEIVED_TIMESTAMP, updateMetadata.getServerReceivedTimestamp()) + .putString(KEY_GROUP_RECIPIENT_ID, groupRecipientId.serialize()) .build(); } @@ -79,12 +68,7 @@ final class GroupCallPeekWorkerJob extends BaseJob { @Override public @NonNull GroupCallPeekWorkerJob create(@NonNull Parameters parameters, @NonNull Data data) { - RecipientId sender = RecipientId.from(data.getString(KEY_SENDER)); - RecipientId group = RecipientId.from(data.getString(KEY_GROUP_RECIPIENT_ID)); - String era = data.getString(KEY_GROUP_CALL_ERA_ID); - long serverTimestamp = data.getLong(KEY_SERVER_RECEIVED_TIMESTAMP); - - return new GroupCallPeekWorkerJob(parameters, new WebRtcData.GroupCallUpdateMetadata(sender, group, era, serverTimestamp)); + return new GroupCallPeekWorkerJob(parameters, RecipientId.from(data.getString(KEY_GROUP_RECIPIENT_ID))); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java index d0042da4b..9e19fbb5b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java @@ -74,7 +74,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.ringrtc.IceCandidateParcel; import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.service.WebRtcCallService; -import org.thoughtcrime.securesms.service.webrtc.WebRtcData; import org.thoughtcrime.securesms.sms.IncomingEncryptedMessage; import org.thoughtcrime.securesms.sms.IncomingEndSessionMessage; import org.thoughtcrime.securesms.sms.IncomingTextMessage; @@ -662,19 +661,14 @@ public final class PushProcessMessageJob extends BaseJob { return; } - RecipientId groupRecipientId = DatabaseFactory.getRecipientDatabase(context).getOrInsertFromPossiblyMigratedGroupId(groupId.get()); - WebRtcData.GroupCallUpdateMetadata updateMetadata = new WebRtcData.GroupCallUpdateMetadata(RecipientId.from(content.getSender()), - groupRecipientId, - message.getGroupCallUpdate().get().getEraId(), - content.getServerReceivedTimestamp()); + RecipientId groupRecipientId = DatabaseFactory.getRecipientDatabase(context).getOrInsertFromPossiblyMigratedGroupId(groupId.get()); - DatabaseFactory.getSmsDatabase(context).insertOrUpdateGroupCall(updateMetadata.getGroupRecipientId(), - updateMetadata.getSender(), - updateMetadata.getServerReceivedTimestamp(), - updateMetadata.getGroupCallEraId()); + DatabaseFactory.getSmsDatabase(context).insertOrUpdateGroupCall(groupRecipientId, + RecipientId.from(content.getSender()), + content.getServerReceivedTimestamp(), + message.getGroupCallUpdate().get().getEraId()); - - GroupCallPeekJob.enqueue(updateMetadata); + GroupCallPeekJob.enqueue(groupRecipientId); } private void handleEndSessionMessage(@NonNull SignalServiceContent content, diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java index faf0b76d7..8d21a723b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.java @@ -52,7 +52,6 @@ import org.thoughtcrime.securesms.ringrtc.IceCandidateParcel; import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.ringrtc.TurnServerInfoParcel; import org.thoughtcrime.securesms.service.webrtc.IdleActionProcessor; -import org.thoughtcrime.securesms.service.webrtc.WebRtcData; import org.thoughtcrime.securesms.service.webrtc.WebRtcInteractor; import org.thoughtcrime.securesms.service.webrtc.WebRtcUtil; import org.thoughtcrime.securesms.service.webrtc.state.WebRtcServiceState; @@ -203,7 +202,6 @@ public class WebRtcCallService extends Service implements CallManager.Observer, public static final String ACTION_GROUP_REQUEST_UPDATE_MEMBERS = "GROUP_REQUEST_UPDATE_MEMBERS"; public static final String ACTION_GROUP_UPDATE_RENDERED_RESOLUTIONS = "GROUP_UPDATE_RENDERED_RESOLUTIONS"; public static final String ACTION_GROUP_CALL_ENDED = "GROUP_CALL_ENDED"; - public static final String ACTION_GROUP_CALL_UPDATE_MESSAGE = "GROUP_CALL_UPDATE_MESSAGE"; public static final String ACTION_GROUP_CALL_PEEK = "GROUP_CALL_PEEK"; public static final String ACTION_GROUP_MESSAGE_SENT_ERROR = "GROUP_MESSAGE_SENT_ERROR"; public static final String ACTION_GROUP_APPROVE_SAFETY_CHANGE = "GROUP_APPROVE_SAFETY_CHANGE"; @@ -700,37 +698,6 @@ public class WebRtcCallService extends Service implements CallManager.Observer, SignalExecutors.BOUNDED.execute(() -> ApplicationDependencies.getJobManager().add(GroupCallUpdateSendJob.create(recipient.getId(), groupCallEraId))); } - public void peekGroupCall(@NonNull WebRtcData.GroupCallUpdateMetadata groupCallUpdateMetadata) { - networkExecutor.execute(() -> { - try { - Recipient group = Recipient.resolved(groupCallUpdateMetadata.getGroupRecipientId()); - GroupId.V2 groupId = group.requireGroupId().requireV2(); - GroupExternalCredential credential = GroupManager.getGroupExternalCredential(this, groupId); - - List members = Stream.of(GroupManager.getUuidCipherTexts(this, groupId)) - .map(entry -> new GroupCall.GroupMemberInfo(entry.getKey(), entry.getValue().serialize())) - .toList(); - - callManager.peekGroupCall(BuildConfig.SIGNAL_SFU_URL, credential.getTokenBytes().toByteArray(), members, peekInfo -> { - DatabaseFactory.getSmsDatabase(this).insertOrUpdateGroupCall(group.getId(), - groupCallUpdateMetadata.getSender(), - groupCallUpdateMetadata.getServerReceivedTimestamp(), - peekInfo.getEraId(), - peekInfo.getJoinedMembers(), - WebRtcUtil.isCallFull(peekInfo)); - - long threadId = DatabaseFactory.getThreadDatabase(this).getThreadIdFor(group); - ApplicationDependencies.getMessageNotifier().updateNotification(this, threadId, true); - - EventBus.getDefault().postSticky(new GroupCallPeekEvent(group.getId(), peekInfo.getEraId(), peekInfo.getDeviceCount(), peekInfo.getMaxDevices())); - }); - - } catch (IOException | VerificationFailedException | CallException e) { - Log.e(TAG, "error peeking from message", e); - } - }); - } - public void peekGroupCall(@NonNull RecipientId id) { networkExecutor.execute(() -> { try { @@ -742,6 +709,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer, .map(entry -> new GroupCall.GroupMemberInfo(entry.getKey(), entry.getValue().serialize())) .toList(); + //noinspection ConstantConditions callManager.peekGroupCall(BuildConfig.SIGNAL_SFU_URL, credential.getTokenBytes().toByteArray(), members, peekInfo -> { long threadId = DatabaseFactory.getThreadDatabase(this).getThreadIdFor(group); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java index 4001f9d35..58c48ec2c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java @@ -21,7 +21,6 @@ import org.thoughtcrime.securesms.ringrtc.CameraState; import org.thoughtcrime.securesms.ringrtc.IceCandidateParcel; import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.service.webrtc.WebRtcData.CallMetadata; -import org.thoughtcrime.securesms.service.webrtc.WebRtcData.GroupCallUpdateMetadata; import org.thoughtcrime.securesms.service.webrtc.WebRtcData.HttpData; import org.thoughtcrime.securesms.service.webrtc.WebRtcData.OfferMetadata; import org.thoughtcrime.securesms.service.webrtc.WebRtcData.ReceivedOfferMetadata; @@ -64,7 +63,6 @@ import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_FLIP_C import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_GROUP_APPROVE_SAFETY_CHANGE; import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_GROUP_CALL_ENDED; import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_GROUP_CALL_PEEK; -import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_GROUP_CALL_UPDATE_MESSAGE; import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_GROUP_JOINED_MEMBERSHIP_CHANGED; import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_GROUP_LOCAL_DEVICE_STATE_CHANGED; import static org.thoughtcrime.securesms.service.WebRtcCallService.ACTION_GROUP_MESSAGE_SENT_ERROR; @@ -242,7 +240,6 @@ public abstract class WebRtcActionProcessor { case ACTION_GROUP_REQUEST_UPDATE_MEMBERS: return handleGroupRequestUpdateMembers(currentState); case ACTION_GROUP_UPDATE_RENDERED_RESOLUTIONS: return handleUpdateRenderedResolutions(currentState); case ACTION_GROUP_CALL_ENDED: return handleGroupCallEnded(currentState, getGroupCallHash(intent), getGroupCallEndReason(intent)); - case ACTION_GROUP_CALL_UPDATE_MESSAGE: return handleGroupCallUpdateMessage(currentState, GroupCallUpdateMetadata.fromIntent(intent)); case ACTION_GROUP_CALL_PEEK: return handleGroupCallPeek(currentState, getRemotePeer(intent)); case ACTION_GROUP_MESSAGE_SENT_ERROR: return handleGroupMessageSentError(currentState, getRemotePeer(intent), getErrorCallState(intent), getErrorIdentityKey(intent)); case ACTION_GROUP_APPROVE_SAFETY_CHANGE: return handleGroupApproveSafetyNumberChange(currentState, RecipientId.fromSerializedList(intent.getStringExtra(EXTRA_RECIPIENT_IDS))); @@ -730,11 +727,6 @@ public abstract class WebRtcActionProcessor { return currentState; } - protected @NonNull WebRtcServiceState handleGroupCallUpdateMessage(@NonNull WebRtcServiceState currentState, @NonNull GroupCallUpdateMetadata groupCallUpdateMetadata) { - webRtcInteractor.peekGroupCall(groupCallUpdateMetadata); - return currentState; - } - protected @NonNull WebRtcServiceState handleGroupCallPeek(@NonNull WebRtcServiceState currentState, @NonNull RemotePeer remotePeer) { webRtcInteractor.peekGroupCall(remotePeer.getId()); return currentState; diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcData.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcData.java index 79d46d35f..2c04559ce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcData.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcData.java @@ -309,44 +309,4 @@ public class WebRtcData { return messageAgeSeconds; } } - - /** - * Metadata associated with a group call update message. - */ - public static class GroupCallUpdateMetadata { - private final RecipientId sender; - private final RecipientId groupRecipientId; - private final String groupCallEraId; - private final long serverReceivedTimestamp; - - static @NonNull GroupCallUpdateMetadata fromIntent(@NonNull Intent intent) { - return new GroupCallUpdateMetadata(getRecipientId(intent, EXTRA_GROUP_CALL_UPDATE_SENDER), - getRecipientId(intent, EXTRA_GROUP_CALL_UPDATE_GROUP), - intent.getStringExtra(EXTRA_GROUP_CALL_ERA_ID), - intent.getLongExtra(EXTRA_SERVER_RECEIVED_TIMESTAMP, 0)); - } - - public GroupCallUpdateMetadata(@NonNull RecipientId sender, @NonNull RecipientId groupRecipientId, @Nullable String groupCallEraId, long serverReceivedTimestamp) { - this.sender = sender; - this.groupRecipientId = groupRecipientId; - this.groupCallEraId = groupCallEraId; - this.serverReceivedTimestamp = serverReceivedTimestamp; - } - - public @NonNull RecipientId getSender() { - return sender; - } - - public @NonNull RecipientId getGroupRecipientId() { - return groupRecipientId; - } - - public @Nullable String getGroupCallEraId() { - return groupCallEraId; - } - - public long getServerReceivedTimestamp() { - return serverReceivedTimestamp; - } - } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java index 8ab6eebd2..465177b98 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java @@ -154,10 +154,6 @@ public class WebRtcInteractor { audioManager.startCommunication(preserveSpeakerphone); } - void peekGroupCall(@NonNull WebRtcData.GroupCallUpdateMetadata groupCallUpdateMetadata) { - webRtcCallService.peekGroupCall(groupCallUpdateMetadata); - } - void peekGroupCall(@NonNull RecipientId recipientId) { webRtcCallService.peekGroupCall(recipientId); }