kopia lustrzana https://github.com/ryukoposting/Signal-Android
Attempt to reduce number of peek jobs run after being offline.
rodzic
3949f4fd45
commit
84e9282f87
|
@ -692,19 +692,14 @@ public class SmsDatabase extends MessageDatabase {
|
|||
@NonNull Collection<UUID> 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<UUID> 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<String> 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<Long, Long> insertCallLog(@NonNull RecipientId recipientId, long type, boolean unread, long timestamp) {
|
||||
|
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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<GroupCall.GroupMemberInfo> 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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue