package org.thoughtcrime.securesms.jobs; import androidx.annotation.NonNull; import org.thoughtcrime.securesms.BuildConfig; import org.thoughtcrime.securesms.TextSecureExpiredException; import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.database.AttachmentDatabase; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.MediaConstraints; import org.thoughtcrime.securesms.transport.UndeliverableMessageException; import org.thoughtcrime.securesms.util.Util; import java.util.List; public abstract class SendJob extends BaseJob { @SuppressWarnings("unused") private final static String TAG = SendJob.class.getSimpleName(); public SendJob(Job.Parameters parameters) { super(parameters); } @Override public final void onRun() throws Exception { if (Util.getDaysTillBuildExpiry() <= 0) { throw new TextSecureExpiredException(String.format("TextSecure expired (build %d, now %d)", BuildConfig.BUILD_TIMESTAMP, System.currentTimeMillis())); } Log.i(TAG, "Starting message send attempt"); onSend(); Log.i(TAG, "Message send completed"); } protected abstract void onSend() throws Exception; protected void markAttachmentsUploaded(long messageId, @NonNull List attachments) { AttachmentDatabase database = DatabaseFactory.getAttachmentDatabase(context); for (Attachment attachment : attachments) { database.markAttachmentUploaded(messageId, attachment); } } }