Fix retry issues with RotateProfileKeyJob.
This commit is contained in:
parent
5468f1705c
commit
6a9476c6d0
3 changed files with 12 additions and 20 deletions
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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> {
|
||||||
|
|
Loading…
Add table
Reference in a new issue