Replace DeliveryStatus with a simple boolean.

This commit is contained in:
Jon Chambers 2020-09-08 11:22:21 -04:00 committed by Jon Chambers
parent 12fe28d8ab
commit 1a93df92d4
2 changed files with 9 additions and 24 deletions

View File

@ -21,7 +21,6 @@ import com.codahale.metrics.SharedMetricRegistries;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.whispersystems.textsecuregcm.metrics.PushLatencyManager; import org.whispersystems.textsecuregcm.metrics.PushLatencyManager;
import org.whispersystems.textsecuregcm.push.WebsocketSender.DeliveryStatus;
import org.whispersystems.textsecuregcm.redis.RedisOperation; import org.whispersystems.textsecuregcm.redis.RedisOperation;
import org.whispersystems.textsecuregcm.storage.Account; import org.whispersystems.textsecuregcm.storage.Account;
import org.whispersystems.textsecuregcm.storage.Device; import org.whispersystems.textsecuregcm.storage.Device;
@ -101,9 +100,9 @@ public class PushSender implements Managed {
} }
private void sendGcmMessage(Account account, Device device, Envelope message, boolean online) { private void sendGcmMessage(Account account, Device device, Envelope message, boolean online) {
DeliveryStatus deliveryStatus = webSocketSender.sendMessage(account, device, message, WebsocketSender.Type.GCM, online); final boolean delivered = webSocketSender.sendMessage(account, device, message, WebsocketSender.Type.GCM, online);
if (!deliveryStatus.isDelivered() && !online) { if (!delivered && !online) {
sendGcmNotification(account, device); sendGcmNotification(account, device);
} }
} }
@ -118,9 +117,9 @@ public class PushSender implements Managed {
} }
private void sendApnMessage(Account account, Device device, Envelope outgoingMessage, boolean online) { private void sendApnMessage(Account account, Device device, Envelope outgoingMessage, boolean online) {
DeliveryStatus deliveryStatus = webSocketSender.sendMessage(account, device, outgoingMessage, WebsocketSender.Type.APN, online); final boolean delivered = webSocketSender.sendMessage(account, device, outgoingMessage, WebsocketSender.Type.APN, online);
if (!deliveryStatus.isDelivered() && outgoingMessage.getType() != Envelope.Type.RECEIPT && !online) { if (!delivered && outgoingMessage.getType() != Envelope.Type.RECEIPT && !online) {
sendApnNotification(account, device, false); sendApnNotification(account, device, false);
} }
} }

View File

@ -80,15 +80,15 @@ public class WebsocketSender {
this.featureFlagsManager = featureFlagsManager; this.featureFlagsManager = featureFlagsManager;
} }
public DeliveryStatus sendMessage(Account account, Device device, Envelope message, Type channel, boolean online) { public boolean sendMessage(Account account, Device device, Envelope message, Type channel, boolean online) {
if (online && featureFlagsManager.isFeatureFlagActive(KEYSPACE_DELIVERY_FEATURE_FLAG)) { if (online && featureFlagsManager.isFeatureFlagActive(KEYSPACE_DELIVERY_FEATURE_FLAG)) {
if (clientPresenceManager.isPresent(account.getUuid(), device.getId())) { if (clientPresenceManager.isPresent(account.getUuid(), device.getId())) {
ephemeralOnlineCounter.increment(); ephemeralOnlineCounter.increment();
messagesManager.insertEphemeral(account.getUuid(), device.getId(), message); messagesManager.insertEphemeral(account.getUuid(), device.getId(), message);
return new DeliveryStatus(true); return true;
} else { } else {
ephemeralOfflineCounter.increment(); ephemeralOfflineCounter.increment();
return new DeliveryStatus(false); return false;
} }
} else { } else {
WebsocketAddress address = new WebsocketAddress(account.getNumber(), device.getId()); WebsocketAddress address = new WebsocketAddress(account.getNumber(), device.getId());
@ -104,14 +104,14 @@ public class WebsocketSender {
else if (channel == Type.GCM) gcmOnlineMeter.mark(); else if (channel == Type.GCM) gcmOnlineMeter.mark();
else websocketOnlineMeter.mark(); else websocketOnlineMeter.mark();
return new DeliveryStatus(true); return true;
} else { } else {
if (channel == Type.APN) apnOfflineMeter.mark(); if (channel == Type.APN) apnOfflineMeter.mark();
else if (channel == Type.GCM) gcmOfflineMeter.mark(); else if (channel == Type.GCM) gcmOfflineMeter.mark();
else websocketOfflineMeter.mark(); else websocketOfflineMeter.mark();
if (!online) queueMessage(account, device, message); if (!online) queueMessage(account, device, message);
return new DeliveryStatus(false); return false;
} }
} }
} }
@ -141,18 +141,4 @@ public class WebsocketSender {
return false; return false;
} }
} }
static class DeliveryStatus {
private final boolean delivered;
DeliveryStatus(boolean delivered) {
this.delivered = delivered;
}
boolean isDelivered() {
return delivered;
}
}
} }