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);
}
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);
}
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);
}
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);
}
}
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;
}
}
Aggregations