mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 03:38:33 +00:00
Consolidate duplicated group send job logic.
This commit is contained in:
parent
1e0e2fadfd
commit
eb6ecc59ab
@ -0,0 +1,46 @@
|
|||||||
|
package org.thoughtcrime.securesms.jobs;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
|
import org.whispersystems.signalservice.api.messages.SendMessageResult;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
final class GroupSendJobHelper {
|
||||||
|
|
||||||
|
private static final String TAG = Log.tag(GroupSendJobHelper.class);
|
||||||
|
|
||||||
|
private GroupSendJobHelper() {
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<Recipient> getCompletedSends(@NonNull Context context, @NonNull Collection<SendMessageResult> results) {
|
||||||
|
List<Recipient> completions = new ArrayList<>(results.size());
|
||||||
|
|
||||||
|
for (SendMessageResult sendMessageResult : results) {
|
||||||
|
Recipient recipient = Recipient.externalPush(context, sendMessageResult.getAddress());
|
||||||
|
|
||||||
|
if (sendMessageResult.getIdentityFailure() != null) {
|
||||||
|
Log.w(TAG, "Identity failure for " + recipient.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sendMessageResult.isUnregisteredFailure()) {
|
||||||
|
Log.w(TAG, "Unregistered failure for " + recipient.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sendMessageResult.getSuccess() != null ||
|
||||||
|
sendMessageResult.getIdentityFailure() != null ||
|
||||||
|
sendMessageResult.isUnregisteredFailure())
|
||||||
|
{
|
||||||
|
completions.add(recipient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return completions;
|
||||||
|
}
|
||||||
|
}
|
@ -143,24 +143,7 @@ public class LeaveGroupJob extends BaseJob {
|
|||||||
|
|
||||||
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
||||||
|
|
||||||
Stream.of(results)
|
return GroupSendJobHelper.getCompletedSends(context, results);
|
||||||
.filter(r -> r.getIdentityFailure() != null)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Identity failure for " + r.getId()));
|
|
||||||
|
|
||||||
Stream.of(results)
|
|
||||||
.filter(SendMessageResult::isUnregisteredFailure)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId()));
|
|
||||||
|
|
||||||
|
|
||||||
return Stream.of(results)
|
|
||||||
.filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure())
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Factory implements Job.Factory<LeaveGroupJob> {
|
public static class Factory implements Job.Factory<LeaveGroupJob> {
|
||||||
|
@ -137,24 +137,7 @@ public class ProfileKeySendJob extends BaseJob {
|
|||||||
|
|
||||||
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
||||||
|
|
||||||
Stream.of(results)
|
return GroupSendJobHelper.getCompletedSends(context, results);
|
||||||
.filter(r -> r.getIdentityFailure() != null)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Identity failure for " + r.getId()));
|
|
||||||
|
|
||||||
Stream.of(results)
|
|
||||||
.filter(SendMessageResult::isUnregisteredFailure)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId()));
|
|
||||||
|
|
||||||
|
|
||||||
return Stream.of(results)
|
|
||||||
.filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure())
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Factory implements Job.Factory<ProfileKeySendJob> {
|
public static class Factory implements Job.Factory<ProfileKeySendJob> {
|
||||||
|
@ -165,23 +165,7 @@ public final class PushGroupSilentUpdateSendJob extends BaseJob {
|
|||||||
|
|
||||||
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, groupDataMessage);
|
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, groupDataMessage);
|
||||||
|
|
||||||
Stream.of(results)
|
return GroupSendJobHelper.getCompletedSends(context, results);
|
||||||
.filter(r -> r.getIdentityFailure() != null)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Identity failure for " + r.getId()));
|
|
||||||
|
|
||||||
Stream.of(results)
|
|
||||||
.filter(SendMessageResult::isUnregisteredFailure)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId()));
|
|
||||||
|
|
||||||
return Stream.of(results)
|
|
||||||
.filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure())
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Factory implements Job.Factory<PushGroupSilentUpdateSendJob> {
|
public static class Factory implements Job.Factory<PushGroupSilentUpdateSendJob> {
|
||||||
|
@ -222,24 +222,7 @@ public class ReactionSendJob extends BaseJob {
|
|||||||
|
|
||||||
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
||||||
|
|
||||||
Stream.of(results)
|
return GroupSendJobHelper.getCompletedSends(context, results);
|
||||||
.filter(r -> r.getIdentityFailure() != null)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Identity failure for " + r.getId()));
|
|
||||||
|
|
||||||
Stream.of(results)
|
|
||||||
.filter(SendMessageResult::isUnregisteredFailure)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId()));
|
|
||||||
|
|
||||||
|
|
||||||
return Stream.of(results)
|
|
||||||
.filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure())
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SignalServiceDataMessage.Reaction buildReaction(@NonNull Context context,
|
private static SignalServiceDataMessage.Reaction buildReaction(@NonNull Context context,
|
||||||
|
@ -177,23 +177,7 @@ public class RemoteDeleteSendJob extends BaseJob {
|
|||||||
|
|
||||||
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
List<SendMessageResult> results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build());
|
||||||
|
|
||||||
Stream.of(results)
|
return GroupSendJobHelper.getCompletedSends(context, results);
|
||||||
.filter(r -> r.getIdentityFailure() != null)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Identity failure for " + r.getId()));
|
|
||||||
|
|
||||||
Stream.of(results)
|
|
||||||
.filter(SendMessageResult::isUnregisteredFailure)
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId()));
|
|
||||||
|
|
||||||
return Stream.of(results)
|
|
||||||
.filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure())
|
|
||||||
.map(SendMessageResult::getAddress)
|
|
||||||
.map(a -> Recipient.externalPush(context, a))
|
|
||||||
.toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Factory implements Job.Factory<RemoteDeleteSendJob> {
|
public static class Factory implements Job.Factory<RemoteDeleteSendJob> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user