Replace DeliveryStatus with a simple boolean.
This commit is contained in:
parent
12fe28d8ab
commit
1a93df92d4
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue