Rename PushMediaSendJob -> IndividualSendJob.
This commit is contained in:
parent
3850c9c89d
commit
32b66643c5
8 changed files with 32 additions and 35 deletions
|
@ -38,7 +38,7 @@ import org.thoughtcrime.securesms.jobs.MarkerJob;
|
|||
import org.thoughtcrime.securesms.jobs.PreKeysSyncJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushDecryptMessageJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushGroupSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushMediaSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.IndividualSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushProcessMessageJob;
|
||||
import org.thoughtcrime.securesms.jobs.ReactionSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.TypingSendJob;
|
||||
|
@ -180,7 +180,7 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
|
|||
.setJobStorage(new FastJobStorage(JobDatabase.getInstance(context)))
|
||||
.setJobMigrator(new JobMigrator(TextSecurePreferences.getJobManagerVersion(context), JobManager.CURRENT_VERSION, JobManagerFactories.getJobMigrations(context)))
|
||||
.addReservedJobRunner(new FactoryJobPredicate(PushDecryptMessageJob.KEY, PushProcessMessageJob.KEY, MarkerJob.KEY))
|
||||
.addReservedJobRunner(new FactoryJobPredicate(PushMediaSendJob.KEY, PushGroupSendJob.KEY, ReactionSendJob.KEY, TypingSendJob.KEY, GroupCallUpdateSendJob.KEY))
|
||||
.addReservedJobRunner(new FactoryJobPredicate(IndividualSendJob.KEY, PushGroupSendJob.KEY, ReactionSendJob.KEY, TypingSendJob.KEY, GroupCallUpdateSendJob.KEY))
|
||||
.build();
|
||||
return new JobManager(context, config);
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
|||
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.mms.MmsException;
|
||||
import org.thoughtcrime.securesms.mms.OutgoingMessage;
|
||||
|
@ -56,22 +57,29 @@ import java.util.List;
|
|||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class PushMediaSendJob extends PushSendJob {
|
||||
public class IndividualSendJob extends PushSendJob {
|
||||
|
||||
public static final String KEY = "PushMediaSendJob";
|
||||
|
||||
private static final String TAG = Log.tag(PushMediaSendJob.class);
|
||||
private static final String TAG = Log.tag(IndividualSendJob.class);
|
||||
|
||||
private static final String KEY_MESSAGE_ID = "message_id";
|
||||
|
||||
private long messageId;
|
||||
private final long messageId;
|
||||
|
||||
public PushMediaSendJob(long messageId, @NonNull Recipient recipient, boolean hasMedia) {
|
||||
this(constructParameters(recipient, hasMedia), messageId);
|
||||
public IndividualSendJob(long messageId, @NonNull Recipient recipient, boolean hasMedia) {
|
||||
this(new Parameters.Builder()
|
||||
.setQueue(recipient.getId().toQueueKey(hasMedia))
|
||||
.addConstraint(NetworkConstraint.KEY)
|
||||
.setLifespan(TimeUnit.DAYS.toMillis(1))
|
||||
.setMaxAttempts(Parameters.UNLIMITED)
|
||||
.build(),
|
||||
messageId);
|
||||
}
|
||||
|
||||
private PushMediaSendJob(Job.Parameters parameters, long messageId) {
|
||||
private IndividualSendJob(Job.Parameters parameters, long messageId) {
|
||||
super(parameters);
|
||||
this.messageId = messageId;
|
||||
}
|
||||
|
@ -83,11 +91,10 @@ public class PushMediaSendJob extends PushSendJob {
|
|||
throw new AssertionError("No ServiceId!");
|
||||
}
|
||||
|
||||
MessageTable database = SignalDatabase.messages();
|
||||
OutgoingMessage message = database.getOutgoingMessage(messageId);
|
||||
OutgoingMessage message = SignalDatabase.messages().getOutgoingMessage(messageId);
|
||||
Set<String> attachmentUploadIds = enqueueCompressingAndUploadAttachmentsChains(jobManager, message);
|
||||
|
||||
jobManager.add(new PushMediaSendJob(messageId, recipient, attachmentUploadIds.size() > 0), attachmentUploadIds, recipient.getId().toQueueKey());
|
||||
jobManager.add(new IndividualSendJob(messageId, recipient, attachmentUploadIds.size() > 0), attachmentUploadIds, recipient.getId().toQueueKey());
|
||||
|
||||
} catch (NoSuchMessageException | MmsException e) {
|
||||
Log.w(TAG, "Failed to enqueue message.", e);
|
||||
|
@ -322,10 +329,10 @@ public class PushMediaSendJob extends PushSendJob {
|
|||
return data.getLong(KEY_MESSAGE_ID);
|
||||
}
|
||||
|
||||
public static final class Factory implements Job.Factory<PushMediaSendJob> {
|
||||
public static final class Factory implements Job.Factory<IndividualSendJob> {
|
||||
@Override
|
||||
public @NonNull PushMediaSendJob create(@NonNull Parameters parameters, @NonNull Data data) {
|
||||
return new PushMediaSendJob(parameters, data.getLong(KEY_MESSAGE_ID));
|
||||
public @NonNull IndividualSendJob create(@NonNull Parameters parameters, @NonNull Data data) {
|
||||
return new IndividualSendJob(parameters, data.getLong(KEY_MESSAGE_ID));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -108,6 +108,7 @@ public final class JobManagerFactories {
|
|||
put(GroupCallPeekJob.KEY, new GroupCallPeekJob.Factory());
|
||||
put(GroupCallPeekWorkerJob.KEY, new GroupCallPeekWorkerJob.Factory());
|
||||
put(GroupV2UpdateSelfProfileKeyJob.KEY, new GroupV2UpdateSelfProfileKeyJob.Factory());
|
||||
put(IndividualSendJob.KEY, new IndividualSendJob.Factory());
|
||||
put(KbsEnclaveMigrationWorkerJob.KEY, new KbsEnclaveMigrationWorkerJob.Factory());
|
||||
put(LeaveGroupV2Job.KEY, new LeaveGroupV2Job.Factory());
|
||||
put(LeaveGroupV2WorkerJob.KEY, new LeaveGroupV2WorkerJob.Factory());
|
||||
|
@ -151,7 +152,6 @@ public final class JobManagerFactories {
|
|||
put(PushDistributionListSendJob.KEY, new PushDistributionListSendJob.Factory());
|
||||
put(PushGroupSendJob.KEY, new PushGroupSendJob.Factory());
|
||||
put(PushGroupSilentUpdateSendJob.KEY, new PushGroupSilentUpdateSendJob.Factory());
|
||||
put(PushMediaSendJob.KEY, new PushMediaSendJob.Factory());
|
||||
put(PushNotificationReceiveJob.KEY, new PushNotificationReceiveJob.Factory());
|
||||
put(PushProcessEarlyMessagesJob.KEY, new PushProcessEarlyMessagesJob.Factory());
|
||||
put(PushProcessMessageJob.KEY, new PushProcessMessageJob.Factory());
|
||||
|
@ -253,7 +253,7 @@ public final class JobManagerFactories {
|
|||
put("CreateSignedPreKeyJob", new PreKeysSyncJob.Factory());
|
||||
put("RefreshPreKeysJob", new PreKeysSyncJob.Factory());
|
||||
put("RecipientChangedNumberJob", new FailingJob.Factory());
|
||||
put("PushTextSendJob", new PushMediaSendJob.Factory());
|
||||
put("PushTextSendJob", new IndividualSendJob.Factory());
|
||||
}};
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ import kotlin.time.Duration.Companion.seconds
|
|||
/**
|
||||
* Crafts a [OutgoingPaymentsNotificationMessage] and uses the regular media sending framework to send it
|
||||
* instead of attempting to send directly. The logic for actually creating over-the-wire representation is
|
||||
* now in [PushMediaSendJob] which gets enqueued by [MessageSender.send].
|
||||
* now in [IndividualSendJob] which gets enqueued by [MessageSender.send].
|
||||
*/
|
||||
class PaymentNotificationSendJobV2 private constructor(
|
||||
parameters: Parameters,
|
||||
|
|
|
@ -36,7 +36,6 @@ import org.thoughtcrime.securesms.events.PartProgressEvent;
|
|||
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.BackoffUtil;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
||||
import org.thoughtcrime.securesms.keyvalue.CertificateType;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
|
||||
|
@ -90,15 +89,6 @@ public abstract class PushSendJob extends SendJob {
|
|||
super(parameters);
|
||||
}
|
||||
|
||||
protected static Job.Parameters constructParameters(@NonNull Recipient recipient, boolean hasMedia) {
|
||||
return new Parameters.Builder()
|
||||
.setQueue(recipient.getId().toQueueKey(hasMedia))
|
||||
.addConstraint(NetworkConstraint.KEY)
|
||||
.setLifespan(TimeUnit.DAYS.toMillis(1))
|
||||
.setMaxAttempts(Parameters.UNLIMITED)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void onSend() throws Exception {
|
||||
if (SignalStore.account().aciPreKeys().getSignedPreKeyFailureCount() > 5) {
|
||||
|
|
|
@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase;
|
|||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||
import org.thoughtcrime.securesms.jobs.PushGroupSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushMediaSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.IndividualSendJob;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -38,7 +38,7 @@ public final class RateLimitUtil {
|
|||
ApplicationDependencies.getJobManager().update((job, serializer) -> {
|
||||
Data data = serializer.deserialize(job.getSerializedData());
|
||||
|
||||
if (job.getFactoryKey().equals(PushMediaSendJob.KEY) && messageIds.contains(PushMediaSendJob.getMessageId(data))) {
|
||||
if (job.getFactoryKey().equals(IndividualSendJob.KEY) && messageIds.contains(IndividualSendJob.getMessageId(data))) {
|
||||
return job.withNextRunAttemptTime(System.currentTimeMillis());
|
||||
} else if (job.getFactoryKey().equals(PushGroupSendJob.KEY) && messageIds.contains(PushGroupSendJob.getMessageId(data))) {
|
||||
return job.withNextRunAttemptTime(System.currentTimeMillis());
|
||||
|
|
|
@ -58,7 +58,7 @@ import org.thoughtcrime.securesms.jobs.MmsSendJob;
|
|||
import org.thoughtcrime.securesms.jobs.ProfileKeySendJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushDistributionListSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushGroupSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushMediaSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.IndividualSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.ReactionSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.RemoteDeleteSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.ResumableUploadSpecJob;
|
||||
|
@ -407,7 +407,7 @@ public class MessageSender {
|
|||
} else if (recipient.isDistributionList()) {
|
||||
jobManager.add(new PushDistributionListSendJob(messageId, recipient.getId(), true, Collections.emptySet()), messageDependsOnIds, recipient.getId().toQueueKey());
|
||||
} else {
|
||||
jobManager.add(new PushMediaSendJob(messageId, recipient, true), messageDependsOnIds, recipient.getId().toQueueKey());
|
||||
jobManager.add(new IndividualSendJob(messageId, recipient, true), messageDependsOnIds, recipient.getId().toQueueKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -533,10 +533,10 @@ public class MessageSender {
|
|||
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||
|
||||
if (uploadJobIds.size() > 0) {
|
||||
Job mediaSend = new PushMediaSendJob(messageId, recipient, true);
|
||||
Job mediaSend = new IndividualSendJob(messageId, recipient, true);
|
||||
jobManager.add(mediaSend, uploadJobIds);
|
||||
} else {
|
||||
PushMediaSendJob.enqueue(context, jobManager, messageId, recipient);
|
||||
IndividualSendJob.enqueue(context, jobManager, messageId, recipient);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob;
|
|||
import org.thoughtcrime.securesms.jobs.MultiDeviceVerifiedUpdateJob;
|
||||
import org.thoughtcrime.securesms.jobs.MultiDeviceViewOnceOpenJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushGroupSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.PushMediaSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.IndividualSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob;
|
||||
import org.thoughtcrime.securesms.jobs.SendDeliveryReceiptJob;
|
||||
import org.thoughtcrime.securesms.jobs.SmsSendJob;
|
||||
|
@ -258,7 +258,7 @@ public class RecipientIdJobMigrationTest {
|
|||
assertEquals(RecipientId.from(1).toQueueKey(), converted.getQueueKey());
|
||||
assertEquals(1, converted.getData().getLong("message_id"));
|
||||
|
||||
new PushMediaSendJob.Factory().create(mock(Job.Parameters.class), converted.getData());
|
||||
new IndividualSendJob.Factory().create(mock(Job.Parameters.class), converted.getData());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Add table
Reference in a new issue