Search in sources :

Example 1 with DecryptionResult

use of org.thoughtcrime.securesms.messages.MessageDecryptionUtil.DecryptionResult in project Signal-Android by signalapp.

the class PushDecryptMessageJob method onRun.

@Override
public void onRun() throws RetryLaterException {
    if (needsMigration()) {
        Log.w(TAG, "Migration is still needed.");
        postMigrationNotification();
        throw new RetryLaterException();
    }
    List<Job> jobs = new LinkedList<>();
    DecryptionResult result = MessageDecryptionUtil.decrypt(context, envelope);
    if (result.getContent() != null) {
        if (result.getContent().getSenderKeyDistributionMessage().isPresent()) {
            handleSenderKeyDistributionMessage(result.getContent().getSender(), result.getContent().getSenderDevice(), result.getContent().getSenderKeyDistributionMessage().get());
        }
        jobs.add(new PushProcessMessageJob(result.getContent(), smsMessageId, envelope.getTimestamp()));
    } else if (result.getException() != null && result.getState() != MessageState.NOOP) {
        jobs.add(new PushProcessMessageJob(result.getState(), result.getException(), smsMessageId, envelope.getTimestamp()));
    }
    jobs.addAll(result.getJobs());
    for (Job job : jobs) {
        ApplicationDependencies.getJobManager().add(job);
    }
}
Also used : DecryptionResult(org.thoughtcrime.securesms.messages.MessageDecryptionUtil.DecryptionResult) RetryLaterException(org.thoughtcrime.securesms.transport.RetryLaterException) Job(org.thoughtcrime.securesms.jobmanager.Job) LinkedList(java.util.LinkedList)

Example 2 with DecryptionResult

use of org.thoughtcrime.securesms.messages.MessageDecryptionUtil.DecryptionResult in project Signal-Android by WhisperSystems.

the class PushDecryptMessageJob method onRun.

@Override
public void onRun() throws RetryLaterException {
    if (needsMigration()) {
        Log.w(TAG, "Migration is still needed.");
        postMigrationNotification();
        throw new RetryLaterException();
    }
    List<Job> jobs = new LinkedList<>();
    DecryptionResult result = MessageDecryptionUtil.decrypt(context, envelope);
    if (result.getContent() != null) {
        if (result.getContent().getSenderKeyDistributionMessage().isPresent()) {
            handleSenderKeyDistributionMessage(result.getContent().getSender(), result.getContent().getSenderDevice(), result.getContent().getSenderKeyDistributionMessage().get());
        }
        jobs.add(new PushProcessMessageJob(result.getContent(), smsMessageId, envelope.getTimestamp()));
    } else if (result.getException() != null && result.getState() != MessageState.NOOP) {
        jobs.add(new PushProcessMessageJob(result.getState(), result.getException(), smsMessageId, envelope.getTimestamp()));
    }
    jobs.addAll(result.getJobs());
    for (Job job : jobs) {
        ApplicationDependencies.getJobManager().add(job);
    }
}
Also used : DecryptionResult(org.thoughtcrime.securesms.messages.MessageDecryptionUtil.DecryptionResult) RetryLaterException(org.thoughtcrime.securesms.transport.RetryLaterException) Job(org.thoughtcrime.securesms.jobmanager.Job) LinkedList(java.util.LinkedList)

Aggregations

LinkedList (java.util.LinkedList)2 Job (org.thoughtcrime.securesms.jobmanager.Job)2 DecryptionResult (org.thoughtcrime.securesms.messages.MessageDecryptionUtil.DecryptionResult)2 RetryLaterException (org.thoughtcrime.securesms.transport.RetryLaterException)2