From a3411072ba00ba36465d707d7b1fcaa7910bcd9c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 15 Nov 2018 12:05:08 -0800 Subject: [PATCH] Remove MasterSecret job. It's no longer necessary. --- .../securesms/jobmanager/Job.java | 15 +++---- .../securesms/jobmanager/JobManager.java | 1 - .../securesms/jobmanager/JobParameters.java | 43 ++++--------------- .../securesms/jobs/AttachmentDownloadJob.java | 7 ++- .../securesms/jobs/AvatarDownloadJob.java | 7 ++- .../securesms/jobs/CleanPreKeysJob.java | 7 ++- .../securesms/jobs/CreateSignedPreKeyJob.java | 7 ++- .../securesms/jobs/MasterSecretJob.java | 39 ----------------- .../securesms/jobs/MmsDownloadJob.java | 8 ++-- .../securesms/jobs/MmsSendJob.java | 6 +-- .../jobs/MultiDeviceBlockedUpdateJob.java | 7 ++- .../jobs/MultiDeviceContactUpdateJob.java | 8 ++-- .../jobs/MultiDeviceGroupUpdateJob.java | 7 ++- .../jobs/MultiDeviceProfileKeyUpdateJob.java | 6 +-- .../jobs/MultiDeviceReadUpdateJob.java | 7 ++- .../securesms/jobs/PushGroupSendJob.java | 4 +- .../securesms/jobs/PushMediaSendJob.java | 6 +-- .../securesms/jobs/PushSendJob.java | 3 +- .../securesms/jobs/PushTextSendJob.java | 2 +- .../securesms/jobs/RefreshPreKeysJob.java | 7 ++- .../securesms/jobs/RotateSignedPreKeyJob.java | 7 ++- .../thoughtcrime/securesms/jobs/SendJob.java | 8 ++-- .../securesms/jobs/SmsSendJob.java | 7 +-- .../securesms/jobs/SmsSentJob.java | 7 ++- 24 files changed, 67 insertions(+), 159 deletions(-) delete mode 100644 src/org/thoughtcrime/securesms/jobs/MasterSecretJob.java diff --git a/src/org/thoughtcrime/securesms/jobmanager/Job.java b/src/org/thoughtcrime/securesms/jobmanager/Job.java index b8d1587c3e..5cc54edf06 100644 --- a/src/org/thoughtcrime/securesms/jobmanager/Job.java +++ b/src/org/thoughtcrime/securesms/jobmanager/Job.java @@ -30,12 +30,11 @@ public abstract class Job extends Worker implements Serializable { private static final WorkLockManager WORK_LOCK_MANAGER = new WorkLockManager(); - static final String KEY_RETRY_COUNT = "Job_retry_count"; - static final String KEY_RETRY_UNTIL = "Job_retry_until"; - static final String KEY_SUBMIT_TIME = "Job_submit_time"; - static final String KEY_REQUIRES_NETWORK = "Job_requires_network"; - static final String KEY_REQUIRES_MASTER_SECRET = "Job_requires_master_secret"; - static final String KEY_REQUIRES_SQLCIPHER = "Job_requires_sqlcipher"; + static final String KEY_RETRY_COUNT = "Job_retry_count"; + static final String KEY_RETRY_UNTIL = "Job_retry_until"; + static final String KEY_SUBMIT_TIME = "Job_submit_time"; + static final String KEY_REQUIRES_NETWORK = "Job_requires_network"; + static final String KEY_REQUIRES_SQLCIPHER = "Job_requires_sqlcipher"; private JobParameters parameters; @@ -213,10 +212,6 @@ public abstract class Job extends Worker implements Serializable { private boolean requirementsMet(@NonNull Data data) { boolean met = true; - if (data.getBoolean(KEY_REQUIRES_MASTER_SECRET, false)) { - met &= new MasterSecretRequirement(getApplicationContext()).isPresent(); - } - if (data.getBoolean(KEY_REQUIRES_SQLCIPHER, false)) { met &= new SqlCipherMigrationRequirement(getApplicationContext()).isPresent(); } diff --git a/src/org/thoughtcrime/securesms/jobmanager/JobManager.java b/src/org/thoughtcrime/securesms/jobmanager/JobManager.java index 419a5d491c..5644e75230 100644 --- a/src/org/thoughtcrime/securesms/jobmanager/JobManager.java +++ b/src/org/thoughtcrime/securesms/jobmanager/JobManager.java @@ -45,7 +45,6 @@ public class JobManager { .putLong(Job.KEY_RETRY_UNTIL, jobParameters.getRetryUntil()) .putLong(Job.KEY_SUBMIT_TIME, System.currentTimeMillis()) .putBoolean(Job.KEY_REQUIRES_NETWORK, jobParameters.requiresNetwork()) - .putBoolean(Job.KEY_REQUIRES_MASTER_SECRET, jobParameters.requiresMasterSecret()) .putBoolean(Job.KEY_REQUIRES_SQLCIPHER, jobParameters.requiresSqlCipher()); Data data = job.serialize(dataBuilder); diff --git a/src/org/thoughtcrime/securesms/jobmanager/JobParameters.java b/src/org/thoughtcrime/securesms/jobmanager/JobParameters.java index 910aea5839..39af21db7b 100644 --- a/src/org/thoughtcrime/securesms/jobmanager/JobParameters.java +++ b/src/org/thoughtcrime/securesms/jobmanager/JobParameters.java @@ -19,7 +19,6 @@ package org.thoughtcrime.securesms.jobmanager; import org.thoughtcrime.securesms.jobmanager.requirements.NetworkBackoffRequirement; import org.thoughtcrime.securesms.jobmanager.requirements.NetworkRequirement; import org.thoughtcrime.securesms.jobmanager.requirements.Requirement; -import org.thoughtcrime.securesms.jobs.requirements.MasterSecretRequirement; import org.thoughtcrime.securesms.jobs.requirements.NetworkOrServiceRequirement; import org.thoughtcrime.securesms.jobs.requirements.SqlCipherMigrationRequirement; @@ -36,7 +35,6 @@ public class JobParameters implements Serializable { private final List requirements; private final boolean requiresNetwork; - private final boolean requiresMasterSecret; private final boolean requiresSqlCipher; private final int retryCount; private final long retryUntil; @@ -46,19 +44,17 @@ public class JobParameters implements Serializable { private JobParameters(String groupId, boolean ignoreDuplicates, boolean requiresNetwork, - boolean requiresMasterSecret, boolean requiresSqlCipher, int retryCount, long retryUntil) { - this.groupId = groupId; - this.ignoreDuplicates = ignoreDuplicates; - this.requirements = Collections.emptyList(); - this.requiresNetwork = requiresNetwork; - this.requiresMasterSecret = requiresMasterSecret; - this.requiresSqlCipher = requiresSqlCipher; - this.retryCount = retryCount; - this.retryUntil = retryUntil; + this.groupId = groupId; + this.ignoreDuplicates = ignoreDuplicates; + this.requirements = Collections.emptyList(); + this.requiresNetwork = requiresNetwork; + this.requiresSqlCipher = requiresSqlCipher; + this.retryCount = retryCount; + this.retryUntil = retryUntil; } public boolean shouldIgnoreDuplicates() { @@ -69,10 +65,6 @@ public class JobParameters implements Serializable { return requiresNetwork || hasNetworkRequirement(requirements); } - public boolean requiresMasterSecret() { - return requiresMasterSecret || hasMasterSecretRequirement(requirements); - } - public boolean requiresSqlCipher() { return requiresSqlCipher || hasSqlCipherRequirement(requirements); } @@ -92,18 +84,6 @@ public class JobParameters implements Serializable { return false; } - private boolean hasMasterSecretRequirement(List requirements) { - if (requirements == null || requirements.size() == 0) return false; - - for (Requirement requirement : requirements) { - if (requirement instanceof MasterSecretRequirement) { - return true; - } - } - - return false; - } - private boolean hasSqlCipherRequirement(List requirements) { if (requirements == null || requirements.size() == 0) return false; @@ -142,19 +122,12 @@ public class JobParameters implements Serializable { private boolean ignoreDuplicates = false; private boolean requiresNetwork = false; private boolean requiresSqlCipher = false; - private boolean requiresMasterSecret = false; public Builder withNetworkRequirement() { requiresNetwork = true; return this; } - @Deprecated - public Builder withMasterSecretRequirement() { - requiresMasterSecret = true; - return this; - } - @Deprecated public Builder withSqlCipherRequirement() { requiresSqlCipher = true; @@ -216,7 +189,7 @@ public class JobParameters implements Serializable { * @return the JobParameters instance that describes a Job. */ public JobParameters create() { - return new JobParameters(groupId, ignoreDuplicates, requiresNetwork, requiresMasterSecret, requiresSqlCipher, retryCount, System.currentTimeMillis() + retryDuration); + return new JobParameters(groupId, ignoreDuplicates, requiresNetwork, requiresSqlCipher, retryCount, System.currentTimeMillis() + retryDuration); } } } diff --git a/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java b/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java index df6074d783..fe377665d4 100644 --- a/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java +++ b/src/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.java @@ -39,7 +39,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class AttachmentDownloadJob extends MasterSecretJob implements InjectableType { +public class AttachmentDownloadJob extends ContextJob implements InjectableType { private static final long serialVersionUID = 2L; private static final int MAX_ATTACHMENT_SIZE = 150 * 1024 * 1024; private static final String TAG = AttachmentDownloadJob.class.getSimpleName(); @@ -63,7 +63,6 @@ public class AttachmentDownloadJob extends MasterSecretJob implements Injectable public AttachmentDownloadJob(Context context, long messageId, AttachmentId attachmentId, boolean manual) { super(context, JobParameters.newBuilder() .withGroupId(AttachmentDownloadJob.class.getCanonicalName()) - .withMasterSecretRequirement() .withNetworkRequirement() .create()); @@ -96,7 +95,7 @@ public class AttachmentDownloadJob extends MasterSecretJob implements Injectable } @Override - public void onRun(MasterSecret masterSecret) throws IOException { + public void onRun() throws IOException { Log.i(TAG, "onRun() messageId: " + messageId + " partRowId: " + partRowId + " partUniqueId: " + partUniqueId + " manual: " + manual); final AttachmentDatabase database = DatabaseFactory.getAttachmentDatabase(context); @@ -135,7 +134,7 @@ public class AttachmentDownloadJob extends MasterSecretJob implements Injectable } @Override - public boolean onShouldRetryThrowable(Exception exception) { + protected boolean onShouldRetry(Exception exception) { return (exception instanceof PushNetworkException); } diff --git a/src/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java b/src/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java index 90e3fc43d2..760437b6e4 100644 --- a/src/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java +++ b/src/org/thoughtcrime/securesms/jobs/AvatarDownloadJob.java @@ -31,7 +31,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class AvatarDownloadJob extends MasterSecretJob implements InjectableType { +public class AvatarDownloadJob extends ContextJob implements InjectableType { private static final int MAX_AVATAR_SIZE = 20 * 1024 * 1024; private static final long serialVersionUID = 1L; @@ -50,7 +50,6 @@ public class AvatarDownloadJob extends MasterSecretJob implements InjectableType public AvatarDownloadJob(Context context, @NonNull byte[] groupId) { super(context, JobParameters.newBuilder() - .withMasterSecretRequirement() .withNetworkRequirement() .create()); @@ -72,7 +71,7 @@ public class AvatarDownloadJob extends MasterSecretJob implements InjectableType } @Override - public void onRun(MasterSecret masterSecret) throws IOException { + public void onRun() throws IOException { String encodeId = GroupUtil.getEncodedId(groupId, false); GroupDatabase database = DatabaseFactory.getGroupDatabase(context); Optional record = database.getGroup(encodeId); @@ -117,7 +116,7 @@ public class AvatarDownloadJob extends MasterSecretJob implements InjectableType public void onCanceled() {} @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof IOException) return true; return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java b/src/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java index 618567e6f8..e404c39d60 100644 --- a/src/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java +++ b/src/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java @@ -30,7 +30,7 @@ import androidx.work.Data; import static org.thoughtcrime.securesms.dependencies.AxolotlStorageModule.SignedPreKeyStoreFactory; -public class CleanPreKeysJob extends MasterSecretJob implements InjectableType { +public class CleanPreKeysJob extends ContextJob implements InjectableType { private static final String TAG = CleanPreKeysJob.class.getSimpleName(); @@ -46,7 +46,6 @@ public class CleanPreKeysJob extends MasterSecretJob implements InjectableType { public CleanPreKeysJob(Context context) { super(context, JobParameters.newBuilder() .withGroupId(CleanPreKeysJob.class.getSimpleName()) - .withMasterSecretRequirement() .withRetryCount(5) .create()); } @@ -61,7 +60,7 @@ public class CleanPreKeysJob extends MasterSecretJob implements InjectableType { } @Override - public void onRun(MasterSecret masterSecret) throws IOException { + public void onRun() throws IOException { try { Log.i(TAG, "Cleaning prekeys..."); @@ -99,7 +98,7 @@ public class CleanPreKeysJob extends MasterSecretJob implements InjectableType { } @Override - public boolean onShouldRetryThrowable(Exception throwable) { + public boolean onShouldRetry(Exception throwable) { if (throwable instanceof NonSuccessfulResponseCodeException) return false; if (throwable instanceof PushNetworkException) return true; return false; diff --git a/src/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java b/src/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java index 6e377b9d31..72a1482695 100644 --- a/src/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java +++ b/src/org/thoughtcrime/securesms/jobs/CreateSignedPreKeyJob.java @@ -22,7 +22,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class CreateSignedPreKeyJob extends MasterSecretJob implements InjectableType { +public class CreateSignedPreKeyJob extends ContextJob implements InjectableType { private static final long serialVersionUID = 1L; @@ -37,7 +37,6 @@ public class CreateSignedPreKeyJob extends MasterSecretJob implements Injectable public CreateSignedPreKeyJob(Context context) { super(context, JobParameters.newBuilder() .withNetworkRequirement() - .withMasterSecretRequirement() .withGroupId(CreateSignedPreKeyJob.class.getSimpleName()) .create()); } @@ -52,7 +51,7 @@ public class CreateSignedPreKeyJob extends MasterSecretJob implements Injectable } @Override - public void onRun(MasterSecret masterSecret) throws IOException { + public void onRun() throws IOException { if (TextSecurePreferences.isSignedPreKeyRegistered(context)) { Log.w(TAG, "Signed prekey already registered..."); return; @@ -74,7 +73,7 @@ public class CreateSignedPreKeyJob extends MasterSecretJob implements Injectable public void onCanceled() {} @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof PushNetworkException) return true; return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/MasterSecretJob.java b/src/org/thoughtcrime/securesms/jobs/MasterSecretJob.java deleted file mode 100644 index f3a6c68c43..0000000000 --- a/src/org/thoughtcrime/securesms/jobs/MasterSecretJob.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.thoughtcrime.securesms.jobs; - -import android.content.Context; - -import org.thoughtcrime.securesms.crypto.MasterSecret; -import org.thoughtcrime.securesms.jobmanager.JobParameters; -import org.thoughtcrime.securesms.service.KeyCachingService; - -public abstract class MasterSecretJob extends ContextJob { - - public MasterSecretJob(Context context, JobParameters parameters) { - super(context, parameters); - } - - @Override - public void onRun() throws Exception { - MasterSecret masterSecret = getMasterSecret(); - onRun(masterSecret); - } - - @Override - public boolean onShouldRetry(Exception exception) { - if (exception instanceof RequirementNotMetException) return true; - return onShouldRetryThrowable(exception); - } - - public abstract void onRun(MasterSecret masterSecret) throws Exception; - public abstract boolean onShouldRetryThrowable(Exception exception); - - private MasterSecret getMasterSecret() throws RequirementNotMetException { - MasterSecret masterSecret = KeyCachingService.getMasterSecret(context); - - if (masterSecret == null) throw new RequirementNotMetException(); - else return masterSecret; - } - - protected static class RequirementNotMetException extends Exception {} - -} diff --git a/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java b/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java index 358dcd2d9a..1ec9512220 100644 --- a/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MmsDownloadJob.java @@ -49,7 +49,7 @@ import java.util.Set; import androidx.work.Data; -public class MmsDownloadJob extends MasterSecretJob { +public class MmsDownloadJob extends ContextJob { private static final long serialVersionUID = 1L; @@ -69,8 +69,6 @@ public class MmsDownloadJob extends MasterSecretJob { public MmsDownloadJob(Context context, long messageId, long threadId, boolean automatic) { super(context, JobParameters.newBuilder() - .withMasterSecretRequirement() - .withMasterSecretRequirement() .withGroupId("mms-operation") .create()); @@ -103,7 +101,7 @@ public class MmsDownloadJob extends MasterSecretJob { } @Override - public void onRun(MasterSecret masterSecret) { + public void onRun() { MmsDatabase database = DatabaseFactory.getMmsDatabase(context); Optional notification = database.getNotification(messageId); @@ -186,7 +184,7 @@ public class MmsDownloadJob extends MasterSecretJob { } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/MmsSendJob.java b/src/org/thoughtcrime/securesms/jobs/MmsSendJob.java index e4bd05b553..35e6fd935b 100644 --- a/src/org/thoughtcrime/securesms/jobs/MmsSendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MmsSendJob.java @@ -23,7 +23,6 @@ import com.google.android.mms.smil.SmilHelper; import com.klinker.android.send_message.Utils; import org.thoughtcrime.securesms.attachments.Attachment; -import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.MmsDatabase; @@ -70,7 +69,6 @@ public class MmsSendJob extends SendJob { super(context, JobParameters.newBuilder() .withGroupId("mms-operation") .withNetworkRequirement() - .withMasterSecretRequirement() .withRetryCount(15) .create()); @@ -88,7 +86,7 @@ public class MmsSendJob extends SendJob { } @Override - public void onSend(MasterSecret masterSecret) throws MmsException, NoSuchMessageException, IOException { + public void onSend() throws MmsException, NoSuchMessageException, IOException { MmsDatabase database = DatabaseFactory.getMmsDatabase(context); OutgoingMediaMessage message = database.getOutgoingMessage(messageId); @@ -124,7 +122,7 @@ public class MmsSendJob extends SendJob { } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java index e4699b5b46..cd723bd316 100644 --- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java @@ -29,7 +29,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class MultiDeviceBlockedUpdateJob extends MasterSecretJob implements InjectableType { +public class MultiDeviceBlockedUpdateJob extends ContextJob implements InjectableType { private static final long serialVersionUID = 1L; @@ -45,7 +45,6 @@ public class MultiDeviceBlockedUpdateJob extends MasterSecretJob implements Inje public MultiDeviceBlockedUpdateJob(Context context) { super(context, JobParameters.newBuilder() .withNetworkRequirement() - .withMasterSecretRequirement() .withGroupId(MultiDeviceBlockedUpdateJob.class.getSimpleName()) .create()); } @@ -60,7 +59,7 @@ public class MultiDeviceBlockedUpdateJob extends MasterSecretJob implements Inje } @Override - public void onRun(MasterSecret masterSecret) + public void onRun() throws IOException, UntrustedIdentityException { if (!TextSecurePreferences.isMultiDevice(context)) { @@ -90,7 +89,7 @@ public class MultiDeviceBlockedUpdateJob extends MasterSecretJob implements Inje } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof PushNetworkException) return true; return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index 661f091f23..49a09f75db 100644 --- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -13,7 +13,6 @@ import android.support.annotation.Nullable; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.contacts.ContactAccessor; import org.thoughtcrime.securesms.contacts.ContactAccessor.ContactData; -import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.Address; @@ -52,7 +51,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class MultiDeviceContactUpdateJob extends MasterSecretJob implements InjectableType { +public class MultiDeviceContactUpdateJob extends ContextJob implements InjectableType { private static final long serialVersionUID = 2L; @@ -88,7 +87,6 @@ public class MultiDeviceContactUpdateJob extends MasterSecretJob implements Inje public MultiDeviceContactUpdateJob(@NonNull Context context, @Nullable Address address, boolean forceSync) { super(context, JobParameters.newBuilder() .withNetworkRequirement() - .withMasterSecretRequirement() .withGroupId(MultiDeviceContactUpdateJob.class.getSimpleName()) .create()); @@ -112,7 +110,7 @@ public class MultiDeviceContactUpdateJob extends MasterSecretJob implements Inje } @Override - public void onRun(MasterSecret masterSecret) + public void onRun() throws IOException, UntrustedIdentityException, NetworkException { if (!TextSecurePreferences.isMultiDevice(context)) { @@ -217,7 +215,7 @@ public class MultiDeviceContactUpdateJob extends MasterSecretJob implements Inje } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof PushNetworkException) return true; return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java index 958c8903de..38066e965c 100644 --- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceGroupUpdateJob.java @@ -38,7 +38,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class MultiDeviceGroupUpdateJob extends MasterSecretJob implements InjectableType { +public class MultiDeviceGroupUpdateJob extends ContextJob implements InjectableType { private static final long serialVersionUID = 1L; private static final String TAG = MultiDeviceGroupUpdateJob.class.getSimpleName(); @@ -52,7 +52,6 @@ public class MultiDeviceGroupUpdateJob extends MasterSecretJob implements Inject public MultiDeviceGroupUpdateJob(Context context) { super(context, JobParameters.newBuilder() .withNetworkRequirement() - .withMasterSecretRequirement() .withGroupId(MultiDeviceGroupUpdateJob.class.getSimpleName()) .create()); } @@ -67,7 +66,7 @@ public class MultiDeviceGroupUpdateJob extends MasterSecretJob implements Inject } @Override - public void onRun(MasterSecret masterSecret) throws Exception { + public void onRun() throws Exception { if (!TextSecurePreferences.isMultiDevice(context)) { Log.i(TAG, "Not multi device, aborting..."); return; @@ -118,7 +117,7 @@ public class MultiDeviceGroupUpdateJob extends MasterSecretJob implements Inject } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof PushNetworkException) return true; return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java index d0b104f85d..cabc25bf8c 100644 --- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java @@ -32,7 +32,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class MultiDeviceProfileKeyUpdateJob extends MasterSecretJob implements InjectableType { +public class MultiDeviceProfileKeyUpdateJob extends ContextJob implements InjectableType { private static final long serialVersionUID = 1L; private static final String TAG = MultiDeviceProfileKeyUpdateJob.class.getSimpleName(); @@ -60,7 +60,7 @@ public class MultiDeviceProfileKeyUpdateJob extends MasterSecretJob implements I } @Override - public void onRun(MasterSecret masterSecret) throws IOException, UntrustedIdentityException { + public void onRun() throws IOException, UntrustedIdentityException { if (!TextSecurePreferences.isMultiDevice(getContext())) { Log.i(TAG, "Not multi device..."); return; @@ -91,7 +91,7 @@ public class MultiDeviceProfileKeyUpdateJob extends MasterSecretJob implements I } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof PushNetworkException) return true; return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java b/src/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java index 5bffe4ae92..7abd69a3f6 100644 --- a/src/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java +++ b/src/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java @@ -32,7 +32,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class MultiDeviceReadUpdateJob extends MasterSecretJob implements InjectableType { +public class MultiDeviceReadUpdateJob extends ContextJob implements InjectableType { private static final long serialVersionUID = 1L; private static final String TAG = MultiDeviceReadUpdateJob.class.getSimpleName(); @@ -50,7 +50,6 @@ public class MultiDeviceReadUpdateJob extends MasterSecretJob implements Injecta public MultiDeviceReadUpdateJob(Context context, List messageIds) { super(context, JobParameters.newBuilder() .withNetworkRequirement() - .withMasterSecretRequirement() .create()); this.messageIds = new LinkedList<>(); @@ -90,7 +89,7 @@ public class MultiDeviceReadUpdateJob extends MasterSecretJob implements Injecta } @Override - public void onRun(MasterSecret masterSecret) throws IOException, UntrustedIdentityException { + public void onRun() throws IOException, UntrustedIdentityException { if (!TextSecurePreferences.isMultiDevice(context)) { Log.i(TAG, "Not multi device..."); return; @@ -106,7 +105,7 @@ public class MultiDeviceReadUpdateJob extends MasterSecretJob implements Injecta } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { return exception instanceof PushNetworkException; } diff --git a/src/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java b/src/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java index cc1df94b69..1a0f7a9210 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java @@ -45,7 +45,6 @@ import org.whispersystems.signalservice.api.util.InvalidNumberException; import org.whispersystems.signalservice.internal.push.SignalServiceProtos.GroupContext; import java.io.IOException; -import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; @@ -77,7 +76,6 @@ public class PushGroupSendJob extends PushSendJob implements InjectableType { public PushGroupSendJob(Context context, long messageId, @NonNull Address destination, @Nullable Address filterAddress) { super(context, JobParameters.newBuilder() .withGroupId(destination.toGroupString()) - .withMasterSecretRequirement() .withNetworkRequirement() .withRetryDuration(TimeUnit.DAYS.toMillis(1)) .create()); @@ -190,7 +188,7 @@ public class PushGroupSendJob extends PushSendJob implements InjectableType { } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof IOException) return true; if (exception instanceof RetryLaterException) return true; return false; diff --git a/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java b/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java index a1bfe52a9b..b8d41cbe69 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushMediaSendJob.java @@ -136,10 +136,8 @@ public class PushMediaSendJob extends PushSendJob implements InjectableType { } @Override - public boolean onShouldRetryThrowable(Exception exception) { - if (exception instanceof RequirementNotMetException) return true; - if (exception instanceof RetryLaterException) return true; - + public boolean onShouldRetry(Exception exception) { + if (exception instanceof RetryLaterException) return true; return false; } diff --git a/src/org/thoughtcrime/securesms/jobs/PushSendJob.java b/src/org/thoughtcrime/securesms/jobs/PushSendJob.java index c1a179b387..8fa6c3e100 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushSendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushSendJob.java @@ -50,7 +50,6 @@ public abstract class PushSendJob extends SendJob { protected static JobParameters constructParameters(Address destination) { JobParameters.Builder builder = JobParameters.newBuilder(); builder.withGroupId(destination.serialize()); - builder.withMasterSecretRequirement(); builder.withNetworkRequirement(); builder.withRetryDuration(TimeUnit.DAYS.toMillis(1)); @@ -58,7 +57,7 @@ public abstract class PushSendJob extends SendJob { } @Override - protected final void onSend(MasterSecret masterSecret) throws Exception { + protected final void onSend() throws Exception { if (TextSecurePreferences.getSignedPreKeyFailureCount(context) > 5) { ApplicationContext.getInstance(context) .getJobManager() diff --git a/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java b/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java index 3845728ed8..f127ef458c 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushTextSendJob.java @@ -129,7 +129,7 @@ public class PushTextSendJob extends PushSendJob implements InjectableType { } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof RetryLaterException) return true; return false; diff --git a/src/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java b/src/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java index 67723201c1..9906a0a8f0 100644 --- a/src/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java +++ b/src/org/thoughtcrime/securesms/jobs/RefreshPreKeysJob.java @@ -26,7 +26,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class RefreshPreKeysJob extends MasterSecretJob implements InjectableType { +public class RefreshPreKeysJob extends ContextJob implements InjectableType { private static final String TAG = RefreshPreKeysJob.class.getSimpleName(); @@ -42,7 +42,6 @@ public class RefreshPreKeysJob extends MasterSecretJob implements InjectableType super(context, JobParameters.newBuilder() .withGroupId(RefreshPreKeysJob.class.getSimpleName()) .withNetworkRequirement() - .withMasterSecretRequirement() .withRetryCount(5) .create()); } @@ -57,7 +56,7 @@ public class RefreshPreKeysJob extends MasterSecretJob implements InjectableType } @Override - public void onRun(MasterSecret masterSecret) throws IOException { + public void onRun() throws IOException { if (!TextSecurePreferences.isPushRegistered(context)) return; int availableKeys = accountManager.getPreKeysCount(); @@ -84,7 +83,7 @@ public class RefreshPreKeysJob extends MasterSecretJob implements InjectableType } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { if (exception instanceof NonSuccessfulResponseCodeException) return false; if (exception instanceof PushNetworkException) return true; diff --git a/src/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java b/src/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java index 2ecef2e7ba..12a9b08d1a 100644 --- a/src/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java +++ b/src/org/thoughtcrime/securesms/jobs/RotateSignedPreKeyJob.java @@ -22,7 +22,7 @@ import javax.inject.Inject; import androidx.work.Data; -public class RotateSignedPreKeyJob extends MasterSecretJob implements InjectableType { +public class RotateSignedPreKeyJob extends ContextJob implements InjectableType { private static final String TAG = RotateSignedPreKeyJob.class.getName(); @@ -35,7 +35,6 @@ public class RotateSignedPreKeyJob extends MasterSecretJob implements Injectable public RotateSignedPreKeyJob(Context context) { super(context, JobParameters.newBuilder() .withNetworkRequirement() - .withMasterSecretRequirement() .withRetryCount(5) .create()); } @@ -50,7 +49,7 @@ public class RotateSignedPreKeyJob extends MasterSecretJob implements Injectable } @Override - public void onRun(MasterSecret masterSecret) throws Exception { + public void onRun() throws Exception { Log.i(TAG, "Rotating signed prekey..."); IdentityKeyPair identityKey = IdentityKeyUtil.getIdentityKeyPair(context); @@ -68,7 +67,7 @@ public class RotateSignedPreKeyJob extends MasterSecretJob implements Injectable } @Override - public boolean onShouldRetryThrowable(Exception exception) { + public boolean onShouldRetry(Exception exception) { return exception instanceof PushNetworkException; } diff --git a/src/org/thoughtcrime/securesms/jobs/SendJob.java b/src/org/thoughtcrime/securesms/jobs/SendJob.java index 6b229668ed..7eb3b7b2d1 100644 --- a/src/org/thoughtcrime/securesms/jobs/SendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/SendJob.java @@ -23,7 +23,7 @@ import java.io.IOException; import java.util.LinkedList; import java.util.List; -public abstract class SendJob extends MasterSecretJob { +public abstract class SendJob extends ContextJob { @SuppressWarnings("unused") private final static String TAG = SendJob.class.getSimpleName(); @@ -38,7 +38,7 @@ public abstract class SendJob extends MasterSecretJob { } @Override - public final void onRun(MasterSecret masterSecret) throws Exception { + public final void onRun() throws Exception { if (Util.getDaysTillBuildExpiry() <= 0) { throw new TextSecureExpiredException(String.format("TextSecure expired (build %d, now %d)", BuildConfig.BUILD_TIMESTAMP, @@ -46,11 +46,11 @@ public abstract class SendJob extends MasterSecretJob { } Log.i(TAG, "Starting message send attempt"); - onSend(masterSecret); + onSend(); Log.i(TAG, "Message send completed"); } - protected abstract void onSend(MasterSecret masterSecret) throws Exception; + protected abstract void onSend() throws Exception; protected void markAttachmentsUploaded(long messageId, @NonNull List attachments) { AttachmentDatabase database = DatabaseFactory.getAttachmentDatabase(context); diff --git a/src/org/thoughtcrime/securesms/jobs/SmsSendJob.java b/src/org/thoughtcrime/securesms/jobs/SmsSendJob.java index b2de812659..fd53b16dd9 100644 --- a/src/org/thoughtcrime/securesms/jobs/SmsSendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/SmsSendJob.java @@ -76,7 +76,7 @@ public class SmsSendJob extends SendJob { } @Override - public void onSend(MasterSecret masterSecret) throws NoSuchMessageException, RequirementNotMetException, TooManyRetriesException { + public void onSend() throws NoSuchMessageException, RequirementNotMetException, TooManyRetriesException { if (!requirementsMet()) { Log.w(TAG, "No service. Retrying."); throw new RequirementNotMetException(); @@ -107,7 +107,7 @@ public class SmsSendJob extends SendJob { } @Override - public boolean onShouldRetryThrowable(Exception throwable) { + public boolean onShouldRetry(Exception throwable) { return false; } @@ -250,7 +250,6 @@ public class SmsSendJob extends SendJob { private static JobParameters constructParameters(String name) { JobParameters.Builder builder = JobParameters.newBuilder() - .withMasterSecretRequirement() .withRetryCount(MAX_ATTEMPTS) .withGroupId(name); return builder.create(); @@ -258,4 +257,6 @@ public class SmsSendJob extends SendJob { private static class TooManyRetriesException extends Exception { } + private static class RequirementNotMetException extends Exception { } + } diff --git a/src/org/thoughtcrime/securesms/jobs/SmsSentJob.java b/src/org/thoughtcrime/securesms/jobs/SmsSentJob.java index a34e3639fc..50c83ae485 100644 --- a/src/org/thoughtcrime/securesms/jobs/SmsSentJob.java +++ b/src/org/thoughtcrime/securesms/jobs/SmsSentJob.java @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.service.SmsDeliveryListener; import androidx.work.Data; -public class SmsSentJob extends MasterSecretJob { +public class SmsSentJob extends ContextJob { private static final long serialVersionUID = -2624694558755317560L; private static final String TAG = SmsSentJob.class.getSimpleName(); @@ -41,7 +41,6 @@ public class SmsSentJob extends MasterSecretJob { public SmsSentJob(Context context, long messageId, String action, int result, int runAttempt) { super(context, JobParameters.newBuilder() - .withMasterSecretRequirement() .create()); this.messageId = messageId; @@ -68,7 +67,7 @@ public class SmsSentJob extends MasterSecretJob { } @Override - public void onRun(MasterSecret masterSecret) { + public void onRun() { Log.i(TAG, "Got SMS callback: " + action + " , " + result); switch (action) { @@ -82,7 +81,7 @@ public class SmsSentJob extends MasterSecretJob { } @Override - public boolean onShouldRetryThrowable(Exception throwable) { + public boolean onShouldRetry(Exception throwable) { return false; }