Change WebsocketDrainedConstraint to DecryptionsDrainedConstraint.

This commit is contained in:
Greyson Parrelli
2020-12-08 16:51:03 -05:00
parent 84e9282f87
commit 9f8e31db78
7 changed files with 121 additions and 40 deletions

View File

@@ -9,19 +9,19 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.jobmanager.Constraint;
/**
* A constraint that is met once we have pulled down all messages from the websocket during initial
* load. See {@link org.thoughtcrime.securesms.messages.IncomingMessageObserver}.
* A constraint that is met once we have pulled down and decrypted all messages from the websocket
* during initial load. See {@link org.thoughtcrime.securesms.messages.IncomingMessageObserver}.
*/
public final class WebsocketDrainedConstraint implements Constraint {
public final class DecryptionsDrainedConstraint implements Constraint {
public static final String KEY = "WebsocketDrainedConstraint";
private WebsocketDrainedConstraint() {
private DecryptionsDrainedConstraint() {
}
@Override
public boolean isMet() {
return ApplicationDependencies.getIncomingMessageObserver().isWebsocketDrained();
return ApplicationDependencies.getIncomingMessageObserver().isDecryptionDrained();
}
@Override
@@ -34,11 +34,11 @@ public final class WebsocketDrainedConstraint implements Constraint {
public void applyToJobInfo(@NonNull JobInfo.Builder jobInfoBuilder) {
}
public static final class Factory implements Constraint.Factory<WebsocketDrainedConstraint> {
public static final class Factory implements Constraint.Factory<DecryptionsDrainedConstraint> {
@Override
public WebsocketDrainedConstraint create() {
return new WebsocketDrainedConstraint();
public DecryptionsDrainedConstraint create() {
return new DecryptionsDrainedConstraint();
}
}
}

View File

@@ -6,17 +6,17 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.jobmanager.ConstraintObserver;
/**
* An observer for {@link WebsocketDrainedConstraint}. Will fire when the websocket is drained
* (i.e. it has received an empty response).
* An observer for {@link DecryptionsDrainedConstraint}. Will fire when the websocket is drained and
* the relevant decryptions have finished.
*/
public class WebsocketDrainedConstraintObserver implements ConstraintObserver {
public class DecryptionsDrainedConstraintObserver implements ConstraintObserver {
private static final String REASON = WebsocketDrainedConstraintObserver.class.getSimpleName();
private static final String REASON = DecryptionsDrainedConstraintObserver.class.getSimpleName();
private volatile Notifier notifier;
public WebsocketDrainedConstraintObserver() {
ApplicationDependencies.getIncomingMessageObserver().addWebsocketDrainedListener(() -> {
public DecryptionsDrainedConstraintObserver() {
ApplicationDependencies.getIncomingMessageObserver().addDecryptionDrainedListener(() -> {
if (notifier != null) {
notifier.onConstraintMet(REASON);
}