Search in sources :

Example 6 with Data

use of org.thoughtcrime.securesms.jobmanager.Data in project Signal-Android by WhisperSystems.

the class RecipientIdJobMigration method migrateRequestGroupInfoJob.

@NonNull
private JobData migrateRequestGroupInfoJob(@NonNull JobData jobData) {
    String address = jobData.getData().getString("source");
    Recipient recipient = Recipient.external(application, address);
    Data updatedData = new Data.Builder().putString("source", recipient.getId().serialize()).putString("group_id", jobData.getData().getString("group_id")).build();
    return jobData.withData(updatedData);
}
Also used : Recipient(org.thoughtcrime.securesms.recipients.Recipient) Data(org.thoughtcrime.securesms.jobmanager.Data) NonNull(androidx.annotation.NonNull)

Example 7 with Data

use of org.thoughtcrime.securesms.jobmanager.Data in project Signal-Android by WhisperSystems.

the class RecipientIdJobMigration method migratePushGroupSendJob.

@NonNull
private JobData migratePushGroupSendJob(@NonNull JobData jobData) {
    // noinspection ConstantConditions
    Recipient queueRecipient = Recipient.external(application, jobData.getQueueKey());
    String address = jobData.getData().hasString("filter_address") ? jobData.getData().getString("filter_address") : null;
    RecipientId recipientId = address != null ? Recipient.external(application, address).getId() : null;
    Data updatedData = new Data.Builder().putString("filter_recipient", recipientId != null ? recipientId.serialize() : null).putLong("message_id", jobData.getData().getLong("message_id")).build();
    return jobData.withQueueKey(queueRecipient.getId().toQueueKey()).withData(updatedData);
}
Also used : RecipientId(org.thoughtcrime.securesms.recipients.RecipientId) Recipient(org.thoughtcrime.securesms.recipients.Recipient) Data(org.thoughtcrime.securesms.jobmanager.Data) NonNull(androidx.annotation.NonNull)

Example 8 with Data

use of org.thoughtcrime.securesms.jobmanager.Data in project Signal-Android by WhisperSystems.

the class RecipientIdJobMigration method migrateRetrieveProfileJob.

@NonNull
private JobData migrateRetrieveProfileJob(@NonNull JobData jobData) {
    String address = jobData.getData().getString("address");
    Recipient recipient = Recipient.external(application, address);
    Data updatedData = new Data.Builder().putString("recipient", recipient.getId().serialize()).build();
    return jobData.withData(updatedData);
}
Also used : Recipient(org.thoughtcrime.securesms.recipients.Recipient) Data(org.thoughtcrime.securesms.jobmanager.Data) NonNull(androidx.annotation.NonNull)

Example 9 with Data

use of org.thoughtcrime.securesms.jobmanager.Data in project Signal-Android by WhisperSystems.

the class RecipientIdJobMigration method migrateMultiDeviceReadUpdateJob.

@NonNull
private JobData migrateMultiDeviceReadUpdateJob(@NonNull JobData jobData) {
    try {
        String[] rawOld = jobData.getData().getStringArray("message_ids");
        String[] rawUpdated = new String[rawOld.length];
        for (int i = 0; i < rawOld.length; i++) {
            OldSerializableSyncMessageId old = JsonUtils.fromJson(rawOld[i], OldSerializableSyncMessageId.class);
            Recipient recipient = Recipient.external(application, old.sender);
            NewSerializableSyncMessageId updated = new NewSerializableSyncMessageId(recipient.getId().serialize(), old.timestamp);
            rawUpdated[i] = JsonUtils.toJson(updated);
        }
        Data updatedData = new Data.Builder().putStringArray("message_ids", rawUpdated).build();
        return jobData.withData(updatedData);
    } catch (IOException e) {
        throw new AssertionError(e);
    }
}
Also used : Recipient(org.thoughtcrime.securesms.recipients.Recipient) Data(org.thoughtcrime.securesms.jobmanager.Data) IOException(java.io.IOException) NonNull(androidx.annotation.NonNull)

Example 10 with Data

use of org.thoughtcrime.securesms.jobmanager.Data in project Signal-Android by WhisperSystems.

the class SendReadReceiptsJobMigration method migrateSendReadReceiptJob.

@NonNull
private static JobData migrateSendReadReceiptJob(@NonNull MmsSmsDatabase mmsSmsDatabase, @NonNull JobData jobData) {
    Data data = jobData.getData();
    if (!data.hasLong("thread")) {
        long[] messageIds = jobData.getData().getLongArray("message_ids");
        SortedSet<Long> threadIds = new TreeSet<>();
        for (long id : messageIds) {
            long threadForMessageId = mmsSmsDatabase.getThreadForMessageId(id);
            if (id != -1) {
                threadIds.add(threadForMessageId);
            }
        }
        if (threadIds.size() != 1) {
            return new JobData("FailingJob", null, new Data.Builder().build());
        } else {
            return jobData.withData(data.buildUpon().putLong("thread", threadIds.first()).build());
        }
    } else {
        return jobData;
    }
}
Also used : TreeSet(java.util.TreeSet) Data(org.thoughtcrime.securesms.jobmanager.Data) NonNull(androidx.annotation.NonNull)

Aggregations

Data (org.thoughtcrime.securesms.jobmanager.Data)42 NonNull (androidx.annotation.NonNull)34 Recipient (org.thoughtcrime.securesms.recipients.Recipient)26 IOException (java.io.IOException)10 Stream (com.annimon.stream.Stream)6 List (java.util.List)6 ApplicationDependencies (org.thoughtcrime.securesms.dependencies.ApplicationDependencies)6 Job (org.thoughtcrime.securesms.jobmanager.Job)6 RecipientId (org.thoughtcrime.securesms.recipients.RecipientId)6 Context (android.content.Context)4 TimeUnit (java.util.concurrent.TimeUnit)4 Test (org.junit.Test)4 Log (org.signal.core.util.logging.Log)4 NetworkConstraint (org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint)4 SignalStore (org.thoughtcrime.securesms.keyvalue.SignalStore)4 WorkerThread (androidx.annotation.WorkerThread)2 HashSet (java.util.HashSet)2 LinkedList (java.util.LinkedList)2 Set (java.util.Set)2 Assert.assertEquals (org.junit.Assert.assertEquals)2