Fix retry issues with RotateProfileKeyJob.

This commit is contained in:
Greyson Parrelli 2020-07-19 10:38:57 -04:00
parent 5468f1705c
commit 6a9476c6d0
3 changed files with 12 additions and 20 deletions

View file

@ -19,6 +19,8 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.signalservice.api.SignalServiceAccountManager; import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.api.util.StreamDetails; import org.whispersystems.signalservice.api.util.StreamDetails;
import java.util.concurrent.TimeUnit;
public final class ProfileUploadJob extends BaseJob { public final class ProfileUploadJob extends BaseJob {
private static final String TAG = Log.tag(ProfileUploadJob.class); private static final String TAG = Log.tag(ProfileUploadJob.class);
@ -34,9 +36,9 @@ public final class ProfileUploadJob extends BaseJob {
this(new Job.Parameters.Builder() this(new Job.Parameters.Builder()
.addConstraint(NetworkConstraint.KEY) .addConstraint(NetworkConstraint.KEY)
.setQueue(QUEUE) .setQueue(QUEUE)
.setLifespan(Parameters.IMMORTAL) .setLifespan(TimeUnit.DAYS.toMillis(30))
.setMaxAttempts(Parameters.UNLIMITED) .setMaxAttempts(Parameters.UNLIMITED)
.setMaxInstances(1) .setMaxInstances(2)
.build()); .build());
} }

View file

@ -31,6 +31,7 @@ public class RefreshAttributesJob extends BaseJob {
this(new Job.Parameters.Builder() this(new Job.Parameters.Builder()
.addConstraint(NetworkConstraint.KEY) .addConstraint(NetworkConstraint.KEY)
.setQueue("RefreshAttributesJob") .setQueue("RefreshAttributesJob")
.setMaxInstances(2)
.build()); .build());
} }

View file

@ -26,9 +26,7 @@ public class RotateProfileKeyJob extends BaseJob {
public RotateProfileKeyJob() { public RotateProfileKeyJob() {
this(new Job.Parameters.Builder() this(new Job.Parameters.Builder()
.setQueue("__ROTATE_PROFILE_KEY__") .setQueue("__ROTATE_PROFILE_KEY__")
.addConstraint(NetworkConstraint.KEY) .setMaxInstances(2)
.setMaxAttempts(25)
.setMaxInstances(1)
.build()); .build());
} }
@ -47,21 +45,13 @@ public class RotateProfileKeyJob extends BaseJob {
} }
@Override @Override
public void onRun() throws Exception { public void onRun() {
SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); ProfileKey newProfileKey = ProfileKeyUtil.createNew();
RecipientDatabase recipientDatabase = DatabaseFactory.getRecipientDatabase(context); Recipient self = Recipient.self();
ProfileKey profileKey = ProfileKeyUtil.createNew();
Recipient self = Recipient.self();
recipientDatabase.setProfileKey(self.getId(), profileKey); DatabaseFactory.getRecipientDatabase(context).setProfileKey(self.getId(), newProfileKey);
try (StreamDetails avatarStream = AvatarHelper.getSelfProfileAvatarStream(context)) {
accountManager.setVersionedProfile(self.getUuid().get(),
profileKey,
Recipient.self().getProfileName().serialize(),
avatarStream);
}
ApplicationDependencies.getJobManager().add(new ProfileUploadJob());
ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); ApplicationDependencies.getJobManager().add(new RefreshAttributesJob());
updateProfileKeyOnAllV2Groups(); updateProfileKeyOnAllV2Groups();
@ -77,12 +67,11 @@ public class RotateProfileKeyJob extends BaseJob {
@Override @Override
public void onFailure() { public void onFailure() {
} }
@Override @Override
protected boolean onShouldRetry(@NonNull Exception exception) { protected boolean onShouldRetry(@NonNull Exception exception) {
return exception instanceof PushNetworkException; return false;
} }
public static final class Factory implements Job.Factory<RotateProfileKeyJob> { public static final class Factory implements Job.Factory<RotateProfileKeyJob> {