109 lines
4.8 KiB
Java
109 lines
4.8 KiB
Java
package org.whispersystems.signalservice.api.messages.calls;
|
|
|
|
import org.whispersystems.libsignal.util.guava.Optional;
|
|
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
public class SignalServiceCallMessage {
|
|
|
|
private final Optional<OfferMessage> offerMessage;
|
|
private final Optional<AnswerMessage> answerMessage;
|
|
private final Optional<HangupMessage> hangupMessage;
|
|
private final Optional<BusyMessage> busyMessage;
|
|
private final Optional<List<IceUpdateMessage>> iceUpdateMessages;
|
|
|
|
private SignalServiceCallMessage(Optional<OfferMessage> offerMessage,
|
|
Optional<AnswerMessage> answerMessage,
|
|
Optional<List<IceUpdateMessage>> iceUpdateMessages,
|
|
Optional<HangupMessage> hangupMessage,
|
|
Optional<BusyMessage> busyMessage)
|
|
{
|
|
this.offerMessage = offerMessage;
|
|
this.answerMessage = answerMessage;
|
|
this.iceUpdateMessages = iceUpdateMessages;
|
|
this.hangupMessage = hangupMessage;
|
|
this.busyMessage = busyMessage;
|
|
}
|
|
|
|
public static SignalServiceCallMessage forOffer(OfferMessage offerMessage) {
|
|
return new SignalServiceCallMessage(Optional.of(offerMessage),
|
|
Optional.<AnswerMessage>absent(),
|
|
Optional.<List<IceUpdateMessage>>absent(),
|
|
Optional.<HangupMessage>absent(),
|
|
Optional.<BusyMessage>absent());
|
|
}
|
|
|
|
public static SignalServiceCallMessage forAnswer(AnswerMessage answerMessage) {
|
|
return new SignalServiceCallMessage(Optional.<OfferMessage>absent(),
|
|
Optional.of(answerMessage),
|
|
Optional.<List<IceUpdateMessage>>absent(),
|
|
Optional.<HangupMessage>absent(),
|
|
Optional.<BusyMessage>absent());
|
|
}
|
|
|
|
public static SignalServiceCallMessage forIceUpdates(List<IceUpdateMessage> iceUpdateMessages) {
|
|
return new SignalServiceCallMessage(Optional.<OfferMessage>absent(),
|
|
Optional.<AnswerMessage>absent(),
|
|
Optional.of(iceUpdateMessages),
|
|
Optional.<HangupMessage>absent(),
|
|
Optional.<BusyMessage>absent());
|
|
}
|
|
|
|
public static SignalServiceCallMessage forIceUpdate(final IceUpdateMessage iceUpdateMessage) {
|
|
List<IceUpdateMessage> iceUpdateMessages = new LinkedList<>();
|
|
iceUpdateMessages.add(iceUpdateMessage);
|
|
|
|
return new SignalServiceCallMessage(Optional.<OfferMessage>absent(),
|
|
Optional.<AnswerMessage>absent(),
|
|
Optional.of(iceUpdateMessages),
|
|
Optional.<HangupMessage>absent(),
|
|
Optional.<BusyMessage>absent());
|
|
}
|
|
|
|
public static SignalServiceCallMessage forHangup(HangupMessage hangupMessage) {
|
|
return new SignalServiceCallMessage(Optional.<OfferMessage>absent(),
|
|
Optional.<AnswerMessage>absent(),
|
|
Optional.<List<IceUpdateMessage>>absent(),
|
|
Optional.of(hangupMessage),
|
|
Optional.<BusyMessage>absent());
|
|
}
|
|
|
|
public static SignalServiceCallMessage forBusy(BusyMessage busyMessage) {
|
|
return new SignalServiceCallMessage(Optional.<OfferMessage>absent(),
|
|
Optional.<AnswerMessage>absent(),
|
|
Optional.<List<IceUpdateMessage>>absent(),
|
|
Optional.<HangupMessage>absent(),
|
|
Optional.of(busyMessage));
|
|
}
|
|
|
|
|
|
public static SignalServiceCallMessage empty() {
|
|
return new SignalServiceCallMessage(Optional.<OfferMessage>absent(),
|
|
Optional.<AnswerMessage>absent(),
|
|
Optional.<List<IceUpdateMessage>>absent(),
|
|
Optional.<HangupMessage>absent(),
|
|
Optional.<BusyMessage>absent());
|
|
}
|
|
|
|
public Optional<List<IceUpdateMessage>> getIceUpdateMessages() {
|
|
return iceUpdateMessages;
|
|
}
|
|
|
|
public Optional<AnswerMessage> getAnswerMessage() {
|
|
return answerMessage;
|
|
}
|
|
|
|
public Optional<OfferMessage> getOfferMessage() {
|
|
return offerMessage;
|
|
}
|
|
|
|
public Optional<HangupMessage> getHangupMessage() {
|
|
return hangupMessage;
|
|
}
|
|
|
|
public Optional<BusyMessage> getBusyMessage() {
|
|
return busyMessage;
|
|
}
|
|
}
|