From 6a9476c6d09884d95e3003d5c1aff22ced273231 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Sun, 19 Jul 2020 10:38:57 -0400 Subject: [PATCH] Fix retry issues with RotateProfileKeyJob. --- .../securesms/jobs/ProfileUploadJob.java | 6 +++-- .../securesms/jobs/RefreshAttributesJob.java | 1 + .../securesms/jobs/RotateProfileKeyJob.java | 25 ++++++------------- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java index 78259b157b..ea2d5e9b06 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java @@ -19,6 +19,8 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.whispersystems.signalservice.api.SignalServiceAccountManager; import org.whispersystems.signalservice.api.util.StreamDetails; +import java.util.concurrent.TimeUnit; + public final class ProfileUploadJob extends BaseJob { private static final String TAG = Log.tag(ProfileUploadJob.class); @@ -34,9 +36,9 @@ public final class ProfileUploadJob extends BaseJob { this(new Job.Parameters.Builder() .addConstraint(NetworkConstraint.KEY) .setQueue(QUEUE) - .setLifespan(Parameters.IMMORTAL) + .setLifespan(TimeUnit.DAYS.toMillis(30)) .setMaxAttempts(Parameters.UNLIMITED) - .setMaxInstances(1) + .setMaxInstances(2) .build()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java index a9f05a5727..98801a20f7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java @@ -31,6 +31,7 @@ public class RefreshAttributesJob extends BaseJob { this(new Job.Parameters.Builder() .addConstraint(NetworkConstraint.KEY) .setQueue("RefreshAttributesJob") + .setMaxInstances(2) .build()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java index fc7117e80a..b6ad6b0fcd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateProfileKeyJob.java @@ -26,9 +26,7 @@ public class RotateProfileKeyJob extends BaseJob { public RotateProfileKeyJob() { this(new Job.Parameters.Builder() .setQueue("__ROTATE_PROFILE_KEY__") - .addConstraint(NetworkConstraint.KEY) - .setMaxAttempts(25) - .setMaxInstances(1) + .setMaxInstances(2) .build()); } @@ -47,21 +45,13 @@ public class RotateProfileKeyJob extends BaseJob { } @Override - public void onRun() throws Exception { - SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); - RecipientDatabase recipientDatabase = DatabaseFactory.getRecipientDatabase(context); - ProfileKey profileKey = ProfileKeyUtil.createNew(); - Recipient self = Recipient.self(); + public void onRun() { + ProfileKey newProfileKey = ProfileKeyUtil.createNew(); + Recipient self = Recipient.self(); - recipientDatabase.setProfileKey(self.getId(), profileKey); - - try (StreamDetails avatarStream = AvatarHelper.getSelfProfileAvatarStream(context)) { - accountManager.setVersionedProfile(self.getUuid().get(), - profileKey, - Recipient.self().getProfileName().serialize(), - avatarStream); - } + DatabaseFactory.getRecipientDatabase(context).setProfileKey(self.getId(), newProfileKey); + ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); updateProfileKeyOnAllV2Groups(); @@ -77,12 +67,11 @@ public class RotateProfileKeyJob extends BaseJob { @Override public void onFailure() { - } @Override protected boolean onShouldRetry(@NonNull Exception exception) { - return exception instanceof PushNetworkException; + return false; } public static final class Factory implements Job.Factory {