diff --git a/pom.xml b/pom.xml index 7adeb63..c239e55 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 it.ernytech tdlib - 2.167.10 + 2.168.0 JTDLib jar diff --git a/src/main/java/it/ernytech/tdlib/TdApi.java b/src/main/java/it/ernytech/tdlib/TdApi.java index 558e57f..9ac7aee 100644 --- a/src/main/java/it/ernytech/tdlib/TdApi.java +++ b/src/main/java/it/ernytech/tdlib/TdApi.java @@ -110,8 +110,6 @@ public class TdApi { return new BotInfo(input); case Call.CONSTRUCTOR: return new Call(input); - case CallConnection.CONSTRUCTOR: - return new CallConnection(input); case CallDiscardReasonEmpty.CONSTRUCTOR: return new CallDiscardReasonEmpty(input); case CallDiscardReasonMissed.CONSTRUCTOR: @@ -140,6 +138,12 @@ public class TdApi { return new CallProblemDropped(input); case CallProtocol.CONSTRUCTOR: return new CallProtocol(input); + case CallServer.CONSTRUCTOR: + return new CallServer(input); + case CallServerTypeTelegramReflector.CONSTRUCTOR: + return new CallServerTypeTelegramReflector(input); + case CallServerTypeWebrtc.CONSTRUCTOR: + return new CallServerTypeWebrtc(input); case CallStatePending.CONSTRUCTOR: return new CallStatePending(input); case CallStateExchangingKeys.CONSTRUCTOR: @@ -824,6 +828,8 @@ public class TdApi { return new MessagePassportDataReceived(input); case MessageUnsupported.CONSTRUCTOR: return new MessageUnsupported(input); + case MessageCopyOptions.CONSTRUCTOR: + return new MessageCopyOptions(input); case MessageForwardInfo.CONSTRUCTOR: return new MessageForwardInfo(input); case MessageForwardOriginUser.CONSTRUCTOR: @@ -838,6 +844,8 @@ public class TdApi { return new MessageSchedulingStateSendAtDate(input); case MessageSchedulingStateSendWhenOnline.CONSTRUCTOR: return new MessageSchedulingStateSendWhenOnline(input); + case MessageSendOptions.CONSTRUCTOR: + return new MessageSendOptions(input); case MessageSendingStatePending.CONSTRUCTOR: return new MessageSendingStatePending(input); case MessageSendingStateFailed.CONSTRUCTOR: @@ -1258,8 +1266,6 @@ public class TdApi { return new SecretChatStateReady(input); case SecretChatStateClosed.CONSTRUCTOR: return new SecretChatStateClosed(input); - case SendMessageOptions.CONSTRUCTOR: - return new SendMessageOptions(input); case Session.CONSTRUCTOR: return new Session(input); case Sessions.CONSTRUCTOR: @@ -1518,6 +1524,8 @@ public class TdApi { return new UpdateFileGenerationStop(input); case UpdateCall.CONSTRUCTOR: return new UpdateCall(input); + case UpdateNewCallSignalingData.CONSTRUCTOR: + return new UpdateNewCallSignalingData(input); case UpdateUserPrivacySettingRules.CONSTRUCTOR: return new UpdateUserPrivacySettingRules(input); case UpdateUnreadMessageCount.CONSTRUCTOR: @@ -2228,6 +2236,8 @@ public class TdApi { return new SendCallDebugInformation(input); case SendCallRating.CONSTRUCTOR: return new SendCallRating(input); + case SendCallSignalingData.CONSTRUCTOR: + return new SendCallSignalingData(input); case SendChatAction.CONSTRUCTOR: return new SendChatAction(input); case SendChatScreenshotTakenNotification.CONSTRUCTOR: @@ -2430,6 +2440,8 @@ public class TdApi { public abstract static class CallProblem extends Object {} + public abstract static class CallServerType extends Object {} + public abstract static class CallState extends Object {} public abstract static class CallbackQueryPayload extends Object {} @@ -4320,16 +4332,18 @@ public class TdApi { public int id; public int userId; public boolean isOutgoing; + public boolean isVideo; public CallState state; - public static final int CONSTRUCTOR = -1837599107; + public static final int CONSTRUCTOR = 1504070790; public Call() {} - public Call(int id, int userId, boolean isOutgoing, CallState state) { + public Call(int id, int userId, boolean isOutgoing, boolean isVideo, CallState state) { this.id = id; this.userId = userId; this.isOutgoing = isOutgoing; + this.isVideo = isVideo; this.state = state; } @@ -4337,6 +4351,7 @@ public class TdApi { this.id = input.readInt(); this.userId = input.readInt(); this.isOutgoing = input.readBoolean(); + this.isVideo = input.readBoolean(); if (input.readBoolean()) { switch(input.readInt()) { case CallStatePending.CONSTRUCTOR: @@ -4372,6 +4387,7 @@ public class TdApi { output.writeInt(this.id); output.writeInt(this.userId); output.writeBoolean(this.isOutgoing); + output.writeBoolean(this.isVideo); if (this.state == null) { output.writeBoolean(false); } else { @@ -4381,78 +4397,6 @@ public class TdApi { } } - public static class CallConnection extends Object { - public long id; - public String ip; - public String ipv6; - public int port; - public byte[] peerTag; - - public static final int CONSTRUCTOR = 1318542714; - - public CallConnection() {} - - public CallConnection(long id, String ip, String ipv6, int port, byte[] peerTag) { - this.id = id; - this.ip = ip; - this.ipv6 = ipv6; - this.port = port; - this.peerTag = peerTag; - } - - public CallConnection(DataInput input) throws IOException { - this.id = input.readLong(); - if (input.readBoolean()) { - var ipTmp = new byte[input.readInt()]; - input.readFully(ipTmp); - this.ip = new String(ipTmp, StandardCharsets.UTF_8); - } - if (input.readBoolean()) { - var ipv6Tmp = new byte[input.readInt()]; - input.readFully(ipv6Tmp); - this.ipv6 = new String(ipv6Tmp, StandardCharsets.UTF_8); - } - this.port = input.readInt(); - if (input.readBoolean()) { - this.peerTag = new byte[input.readInt()]; - input.readFully(this.peerTag); - } - } - - public int getConstructor() { - return CONSTRUCTOR; - } - - public void serialize(DataOutputStream output) throws IOException { - output.writeInt(CONSTRUCTOR); - output.writeLong(this.id); - if (this.ip == null) { - output.writeBoolean(false); - } else { - output.writeBoolean(true); - var ipTmp = this.ip.getBytes(StandardCharsets.UTF_8); - output.writeInt(ipTmp.length); - output.write(ipTmp); - } - if (this.ipv6 == null) { - output.writeBoolean(false); - } else { - output.writeBoolean(true); - var ipv6Tmp = this.ipv6.getBytes(StandardCharsets.UTF_8); - output.writeInt(ipv6Tmp.length); - output.write(ipv6Tmp); - } - output.writeInt(this.port); - if (this.peerTag == null) { - output.writeBoolean(false); - } else { - output.writeBoolean(true); - output.writeInt(this.peerTag.length); - output.write(this.peerTag); - } - } - } - public static class CallDiscardReasonEmpty extends CallDiscardReason { public static final int CONSTRUCTOR = -1258917949; @@ -4752,6 +4696,178 @@ public class TdApi { } } + public static class CallServer extends Object { + public long id; + public String ipAddress; + public String ipv6Address; + public int port; + public CallServerType type; + + public static final int CONSTRUCTOR = 1865932695; + + public CallServer() {} + + public CallServer(long id, String ipAddress, String ipv6Address, int port, CallServerType type) { + this.id = id; + this.ipAddress = ipAddress; + this.ipv6Address = ipv6Address; + this.port = port; + this.type = type; + } + + public CallServer(DataInput input) throws IOException { + this.id = input.readLong(); + if (input.readBoolean()) { + var ipAddressTmp = new byte[input.readInt()]; + input.readFully(ipAddressTmp); + this.ipAddress = new String(ipAddressTmp, StandardCharsets.UTF_8); + } + if (input.readBoolean()) { + var ipv6AddressTmp = new byte[input.readInt()]; + input.readFully(ipv6AddressTmp); + this.ipv6Address = new String(ipv6AddressTmp, StandardCharsets.UTF_8); + } + this.port = input.readInt(); + if (input.readBoolean()) { + switch(input.readInt()) { + case CallServerTypeTelegramReflector.CONSTRUCTOR: + this.type = new CallServerTypeTelegramReflector(input); + break; + case CallServerTypeWebrtc.CONSTRUCTOR: + this.type = new CallServerTypeWebrtc(input); + break; + default: + throw new UnsupportedOperationException(); + } + } + } + + public int getConstructor() { + return CONSTRUCTOR; + } + + public void serialize(DataOutputStream output) throws IOException { + output.writeInt(CONSTRUCTOR); + output.writeLong(this.id); + if (this.ipAddress == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + var ipAddressTmp = this.ipAddress.getBytes(StandardCharsets.UTF_8); + output.writeInt(ipAddressTmp.length); + output.write(ipAddressTmp); + } + if (this.ipv6Address == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + var ipv6AddressTmp = this.ipv6Address.getBytes(StandardCharsets.UTF_8); + output.writeInt(ipv6AddressTmp.length); + output.write(ipv6AddressTmp); + } + output.writeInt(this.port); + if (this.type == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + this.type.serialize(output); + } + } + } + + public static class CallServerTypeTelegramReflector extends CallServerType { + public byte[] peerTag; + + public static final int CONSTRUCTOR = -1507850700; + + public CallServerTypeTelegramReflector() {} + + public CallServerTypeTelegramReflector(byte[] peerTag) { + this.peerTag = peerTag; + } + + public CallServerTypeTelegramReflector(DataInput input) throws IOException { + if (input.readBoolean()) { + this.peerTag = new byte[input.readInt()]; + input.readFully(this.peerTag); + } + } + + public int getConstructor() { + return CONSTRUCTOR; + } + + public void serialize(DataOutputStream output) throws IOException { + output.writeInt(CONSTRUCTOR); + if (this.peerTag == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + output.writeInt(this.peerTag.length); + output.write(this.peerTag); + } + } + } + + public static class CallServerTypeWebrtc extends CallServerType { + public String username; + public String password; + public boolean supportsTurn; + public boolean supportsStun; + + public static final int CONSTRUCTOR = 1250622821; + + public CallServerTypeWebrtc() {} + + public CallServerTypeWebrtc(String username, String password, boolean supportsTurn, boolean supportsStun) { + this.username = username; + this.password = password; + this.supportsTurn = supportsTurn; + this.supportsStun = supportsStun; + } + + public CallServerTypeWebrtc(DataInput input) throws IOException { + if (input.readBoolean()) { + var usernameTmp = new byte[input.readInt()]; + input.readFully(usernameTmp); + this.username = new String(usernameTmp, StandardCharsets.UTF_8); + } + if (input.readBoolean()) { + var passwordTmp = new byte[input.readInt()]; + input.readFully(passwordTmp); + this.password = new String(passwordTmp, StandardCharsets.UTF_8); + } + this.supportsTurn = input.readBoolean(); + this.supportsStun = input.readBoolean(); + } + + public int getConstructor() { + return CONSTRUCTOR; + } + + public void serialize(DataOutputStream output) throws IOException { + output.writeInt(CONSTRUCTOR); + if (this.username == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + var usernameTmp = this.username.getBytes(StandardCharsets.UTF_8); + output.writeInt(usernameTmp.length); + output.write(usernameTmp); + } + if (this.password == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + var passwordTmp = this.password.getBytes(StandardCharsets.UTF_8); + output.writeInt(passwordTmp.length); + output.write(passwordTmp); + } + output.writeBoolean(this.supportsTurn); + output.writeBoolean(this.supportsStun); + } + } + public static class CallStatePending extends CallState { public boolean isCreated; public boolean isReceived; @@ -4801,19 +4917,19 @@ public class TdApi { public static class CallStateReady extends CallState { public CallProtocol protocol; - public CallConnection[] connections; + public CallServer[] servers; public String config; public byte[] encryptionKey; public String[] emojis; public boolean allowP2p; - public static final int CONSTRUCTOR = 1848397705; + public static final int CONSTRUCTOR = -2000107571; public CallStateReady() {} - public CallStateReady(CallProtocol protocol, CallConnection[] connections, String config, byte[] encryptionKey, String[] emojis, boolean allowP2p) { + public CallStateReady(CallProtocol protocol, CallServer[] servers, String config, byte[] encryptionKey, String[] emojis, boolean allowP2p) { this.protocol = protocol; - this.connections = connections; + this.servers = servers; this.config = config; this.encryptionKey = encryptionKey; this.emojis = emojis; @@ -4828,12 +4944,12 @@ public class TdApi { this.protocol = new CallProtocol(input); } if (input.readBoolean()) { - this.connections = new CallConnection[input.readInt()]; - for (int i = 0; i < this.connections.length; i++) { - if (CallConnection.CONSTRUCTOR != input.readInt()) { + this.servers = new CallServer[input.readInt()]; + for (int i = 0; i < this.servers.length; i++) { + if (CallServer.CONSTRUCTOR != input.readInt()) { throw new UnsupportedOperationException(); } - this.connections[i] = new CallConnection(input); + this.servers[i] = new CallServer(input); } } if (input.readBoolean()) { @@ -4868,13 +4984,13 @@ public class TdApi { output.writeBoolean(true); this.protocol.serialize(output); } - if (this.connections == null) { + if (this.servers == null) { output.writeBoolean(false); } else { output.writeBoolean(true); - output.writeInt(this.connections.length); - for (int i = 0; i < this.connections.length; i++) { - this.connections[i].serialize(output); + output.writeInt(this.servers.length); + for (int i = 0; i < this.servers.length; i++) { + this.servers[i].serialize(output); } } if (this.config == null) { @@ -17379,27 +17495,29 @@ public class TdApi { public long fromChatId; public long messageId; public boolean inGameShare; - public boolean sendCopy; - public boolean removeCaption; + public MessageCopyOptions copyOptions; - public static final int CONSTRUCTOR = 1503132333; + public static final int CONSTRUCTOR = 1696232440; public InputMessageForwarded() {} - public InputMessageForwarded(long fromChatId, long messageId, boolean inGameShare, boolean sendCopy, boolean removeCaption) { + public InputMessageForwarded(long fromChatId, long messageId, boolean inGameShare, MessageCopyOptions copyOptions) { this.fromChatId = fromChatId; this.messageId = messageId; this.inGameShare = inGameShare; - this.sendCopy = sendCopy; - this.removeCaption = removeCaption; + this.copyOptions = copyOptions; } public InputMessageForwarded(DataInput input) throws IOException { this.fromChatId = input.readLong(); this.messageId = input.readLong(); this.inGameShare = input.readBoolean(); - this.sendCopy = input.readBoolean(); - this.removeCaption = input.readBoolean(); + if (input.readBoolean()) { + if (MessageCopyOptions.CONSTRUCTOR != input.readInt()) { + throw new UnsupportedOperationException(); + } + this.copyOptions = new MessageCopyOptions(input); + } } public int getConstructor() { @@ -17411,8 +17529,12 @@ public class TdApi { output.writeLong(this.fromChatId); output.writeLong(this.messageId); output.writeBoolean(this.inGameShare); - output.writeBoolean(this.sendCopy); - output.writeBoolean(this.removeCaption); + if (this.copyOptions == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + this.copyOptions.serialize(output); + } } } @@ -21250,19 +21372,22 @@ public class TdApi { } public static class MessageCall extends MessageContent { + public boolean isVideo; public CallDiscardReason discardReason; public int duration; - public static final int CONSTRUCTOR = 366512596; + public static final int CONSTRUCTOR = 538893824; public MessageCall() {} - public MessageCall(CallDiscardReason discardReason, int duration) { + public MessageCall(boolean isVideo, CallDiscardReason discardReason, int duration) { + this.isVideo = isVideo; this.discardReason = discardReason; this.duration = duration; } public MessageCall(DataInput input) throws IOException { + this.isVideo = input.readBoolean(); if (input.readBoolean()) { switch(input.readInt()) { case CallDiscardReasonEmpty.CONSTRUCTOR: @@ -21293,6 +21418,7 @@ public class TdApi { public void serialize(DataOutputStream output) throws IOException { output.writeInt(CONSTRUCTOR); + output.writeBoolean(this.isVideo); if (this.discardReason == null) { output.writeBoolean(false); } else { @@ -22131,6 +22257,49 @@ public class TdApi { } } + public static class MessageCopyOptions extends Object { + public boolean sendCopy; + public boolean replaceCaption; + public FormattedText newCaption; + + public static final int CONSTRUCTOR = 1208442937; + + public MessageCopyOptions() {} + + public MessageCopyOptions(boolean sendCopy, boolean replaceCaption, FormattedText newCaption) { + this.sendCopy = sendCopy; + this.replaceCaption = replaceCaption; + this.newCaption = newCaption; + } + + public MessageCopyOptions(DataInput input) throws IOException { + this.sendCopy = input.readBoolean(); + this.replaceCaption = input.readBoolean(); + if (input.readBoolean()) { + if (FormattedText.CONSTRUCTOR != input.readInt()) { + throw new UnsupportedOperationException(); + } + this.newCaption = new FormattedText(input); + } + } + + public int getConstructor() { + return CONSTRUCTOR; + } + + public void serialize(DataOutputStream output) throws IOException { + output.writeInt(CONSTRUCTOR); + output.writeBoolean(this.sendCopy); + output.writeBoolean(this.replaceCaption); + if (this.newCaption == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + this.newCaption.serialize(output); + } + } + } + public static class MessageForwardInfo extends Object { public MessageForwardOrigin origin; public int date; @@ -22397,6 +22566,55 @@ public class TdApi { } } + public static class MessageSendOptions extends Object { + public boolean disableNotification; + public boolean fromBackground; + public MessageSchedulingState schedulingState; + + public static final int CONSTRUCTOR = 914544314; + + public MessageSendOptions() {} + + public MessageSendOptions(boolean disableNotification, boolean fromBackground, MessageSchedulingState schedulingState) { + this.disableNotification = disableNotification; + this.fromBackground = fromBackground; + this.schedulingState = schedulingState; + } + + public MessageSendOptions(DataInput input) throws IOException { + this.disableNotification = input.readBoolean(); + this.fromBackground = input.readBoolean(); + if (input.readBoolean()) { + switch(input.readInt()) { + case MessageSchedulingStateSendAtDate.CONSTRUCTOR: + this.schedulingState = new MessageSchedulingStateSendAtDate(input); + break; + case MessageSchedulingStateSendWhenOnline.CONSTRUCTOR: + this.schedulingState = new MessageSchedulingStateSendWhenOnline(input); + break; + default: + throw new UnsupportedOperationException(); + } + } + } + + public int getConstructor() { + return CONSTRUCTOR; + } + + public void serialize(DataOutputStream output) throws IOException { + output.writeInt(CONSTRUCTOR); + output.writeBoolean(this.disableNotification); + output.writeBoolean(this.fromBackground); + if (this.schedulingState == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + this.schedulingState.serialize(output); + } + } + } + public static class MessageSendingStatePending extends MessageSendingState { public static final int CONSTRUCTOR = -1381803582; @@ -33012,55 +33230,6 @@ public class TdApi { } } - public static class SendMessageOptions extends Object { - public boolean disableNotification; - public boolean fromBackground; - public MessageSchedulingState schedulingState; - - public static final int CONSTRUCTOR = 669760254; - - public SendMessageOptions() {} - - public SendMessageOptions(boolean disableNotification, boolean fromBackground, MessageSchedulingState schedulingState) { - this.disableNotification = disableNotification; - this.fromBackground = fromBackground; - this.schedulingState = schedulingState; - } - - public SendMessageOptions(DataInput input) throws IOException { - this.disableNotification = input.readBoolean(); - this.fromBackground = input.readBoolean(); - if (input.readBoolean()) { - switch(input.readInt()) { - case MessageSchedulingStateSendAtDate.CONSTRUCTOR: - this.schedulingState = new MessageSchedulingStateSendAtDate(input); - break; - case MessageSchedulingStateSendWhenOnline.CONSTRUCTOR: - this.schedulingState = new MessageSchedulingStateSendWhenOnline(input); - break; - default: - throw new UnsupportedOperationException(); - } - } - } - - public int getConstructor() { - return CONSTRUCTOR; - } - - public void serialize(DataOutputStream output) throws IOException { - output.writeInt(CONSTRUCTOR); - output.writeBoolean(this.disableNotification); - output.writeBoolean(this.fromBackground); - if (this.schedulingState == null) { - output.writeBoolean(false); - } else { - output.writeBoolean(true); - this.schedulingState.serialize(output); - } - } - } - public static class Session extends Object { public long id; public boolean isCurrent; @@ -38580,6 +38749,44 @@ public class TdApi { } } + public static class UpdateNewCallSignalingData extends Update { + public int callId; + public byte[] data; + + public static final int CONSTRUCTOR = 583634317; + + public UpdateNewCallSignalingData() {} + + public UpdateNewCallSignalingData(int callId, byte[] data) { + this.callId = callId; + this.data = data; + } + + public UpdateNewCallSignalingData(DataInput input) throws IOException { + this.callId = input.readInt(); + if (input.readBoolean()) { + this.data = new byte[input.readInt()]; + input.readFully(this.data); + } + } + + public int getConstructor() { + return CONSTRUCTOR; + } + + public void serialize(DataOutputStream output) throws IOException { + output.writeInt(CONSTRUCTOR); + output.writeInt(this.callId); + if (this.data == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + output.writeInt(this.data.length); + output.write(this.data); + } + } + } + public static class UpdateUserPrivacySettingRules extends Update { public UserPrivacySetting setting; public UserPrivacySettingRules rules; @@ -40245,6 +40452,9 @@ public class TdApi { case UpdateCall.CONSTRUCTOR: this.updates[i] = new UpdateCall(input); break; + case UpdateNewCallSignalingData.CONSTRUCTOR: + this.updates[i] = new UpdateNewCallSignalingData(input); + break; case UpdateUserPrivacySettingRules.CONSTRUCTOR: this.updates[i] = new UpdateUserPrivacySettingRules(input); break; @@ -40569,6 +40779,7 @@ public class TdApi { public ChatPhoto photo; public boolean isBlocked; public boolean canBeCalled; + public boolean supportsVideoCalls; public boolean hasPrivateCalls; public boolean needPhoneNumberPrivacyException; public String bio; @@ -40576,14 +40787,15 @@ public class TdApi { public int groupInCommonCount; public BotInfo botInfo; - public static final int CONSTRUCTOR = -1528139639; + public static final int CONSTRUCTOR = -710655904; public UserFullInfo() {} - public UserFullInfo(ChatPhoto photo, boolean isBlocked, boolean canBeCalled, boolean hasPrivateCalls, boolean needPhoneNumberPrivacyException, String bio, String shareText, int groupInCommonCount, BotInfo botInfo) { + public UserFullInfo(ChatPhoto photo, boolean isBlocked, boolean canBeCalled, boolean supportsVideoCalls, boolean hasPrivateCalls, boolean needPhoneNumberPrivacyException, String bio, String shareText, int groupInCommonCount, BotInfo botInfo) { this.photo = photo; this.isBlocked = isBlocked; this.canBeCalled = canBeCalled; + this.supportsVideoCalls = supportsVideoCalls; this.hasPrivateCalls = hasPrivateCalls; this.needPhoneNumberPrivacyException = needPhoneNumberPrivacyException; this.bio = bio; @@ -40601,6 +40813,7 @@ public class TdApi { } this.isBlocked = input.readBoolean(); this.canBeCalled = input.readBoolean(); + this.supportsVideoCalls = input.readBoolean(); this.hasPrivateCalls = input.readBoolean(); this.needPhoneNumberPrivacyException = input.readBoolean(); if (input.readBoolean()) { @@ -40636,6 +40849,7 @@ public class TdApi { } output.writeBoolean(this.isBlocked); output.writeBoolean(this.canBeCalled); + output.writeBoolean(this.supportsVideoCalls); output.writeBoolean(this.hasPrivateCalls); output.writeBoolean(this.needPhoneNumberPrivacyException); if (this.bio == null) { @@ -44219,14 +44433,16 @@ public class TdApi { public static class CreateCall extends Function { public int userId; public CallProtocol protocol; + public boolean isVideo; - public static final int CONSTRUCTOR = -1742408159; + public static final int CONSTRUCTOR = 1837533340; public CreateCall() {} - public CreateCall(int userId, CallProtocol protocol) { + public CreateCall(int userId, CallProtocol protocol, boolean isVideo) { this.userId = userId; this.protocol = protocol; + this.isVideo = isVideo; } public CreateCall(DataInput input) throws IOException { @@ -44237,6 +44453,7 @@ public class TdApi { } this.protocol = new CallProtocol(input); } + this.isVideo = input.readBoolean(); } public int getConstructor() { @@ -44252,6 +44469,7 @@ public class TdApi { output.writeBoolean(true); this.protocol.serialize(output); } + output.writeBoolean(this.isVideo); } } @@ -45104,16 +45322,18 @@ public class TdApi { public int callId; public boolean isDisconnected; public int duration; + public boolean isVideo; public long connectionId; - public static final int CONSTRUCTOR = -923187372; + public static final int CONSTRUCTOR = -1784044162; public DiscardCall() {} - public DiscardCall(int callId, boolean isDisconnected, int duration, long connectionId) { + public DiscardCall(int callId, boolean isDisconnected, int duration, boolean isVideo, long connectionId) { this.callId = callId; this.isDisconnected = isDisconnected; this.duration = duration; + this.isVideo = isVideo; this.connectionId = connectionId; } @@ -45121,6 +45341,7 @@ public class TdApi { this.callId = input.readInt(); this.isDisconnected = input.readBoolean(); this.duration = input.readInt(); + this.isVideo = input.readBoolean(); this.connectionId = input.readLong(); } @@ -45133,6 +45354,7 @@ public class TdApi { output.writeInt(this.callId); output.writeBoolean(this.isDisconnected); output.writeInt(this.duration); + output.writeBoolean(this.isVideo); output.writeLong(this.connectionId); } } @@ -46384,16 +46606,16 @@ public class TdApi { public long chatId; public long fromChatId; public long[] messageIds; - public SendMessageOptions options; + public MessageSendOptions options; public boolean asAlbum; public boolean sendCopy; public boolean removeCaption; - public static final int CONSTRUCTOR = -1633531094; + public static final int CONSTRUCTOR = 705611900; public ForwardMessages() {} - public ForwardMessages(long chatId, long fromChatId, long[] messageIds, SendMessageOptions options, boolean asAlbum, boolean sendCopy, boolean removeCaption) { + public ForwardMessages(long chatId, long fromChatId, long[] messageIds, MessageSendOptions options, boolean asAlbum, boolean sendCopy, boolean removeCaption) { this.chatId = chatId; this.fromChatId = fromChatId; this.messageIds = messageIds; @@ -46413,10 +46635,10 @@ public class TdApi { } } if (input.readBoolean()) { - if (SendMessageOptions.CONSTRUCTOR != input.readInt()) { + if (MessageSendOptions.CONSTRUCTOR != input.readInt()) { throw new UnsupportedOperationException(); } - this.options = new SendMessageOptions(input); + this.options = new MessageSendOptions(input); } this.asAlbum = input.readBoolean(); this.sendCopy = input.readBoolean(); @@ -53501,6 +53723,44 @@ public class TdApi { } } + public static class SendCallSignalingData extends Function { + public int callId; + public byte[] data; + + public static final int CONSTRUCTOR = 1412280732; + + public SendCallSignalingData() {} + + public SendCallSignalingData(int callId, byte[] data) { + this.callId = callId; + this.data = data; + } + + public SendCallSignalingData(DataInput input) throws IOException { + this.callId = input.readInt(); + if (input.readBoolean()) { + this.data = new byte[input.readInt()]; + input.readFully(this.data); + } + } + + public int getConstructor() { + return CONSTRUCTOR; + } + + public void serialize(DataOutputStream output) throws IOException { + output.writeInt(CONSTRUCTOR); + output.writeInt(this.callId); + if (this.data == null) { + output.writeBoolean(false); + } else { + output.writeBoolean(true); + output.writeInt(this.data.length); + output.write(this.data); + } + } + } + public static class SendChatAction extends Function { public long chatId; public ChatAction action; @@ -53723,16 +53983,16 @@ public class TdApi { public static class SendInlineQueryResultMessage extends Function { public long chatId; public long replyToMessageId; - public SendMessageOptions options; + public MessageSendOptions options; public long queryId; public String resultId; public boolean hideViaBot; - public static final int CONSTRUCTOR = 729880339; + public static final int CONSTRUCTOR = -1624402875; public SendInlineQueryResultMessage() {} - public SendInlineQueryResultMessage(long chatId, long replyToMessageId, SendMessageOptions options, long queryId, String resultId, boolean hideViaBot) { + public SendInlineQueryResultMessage(long chatId, long replyToMessageId, MessageSendOptions options, long queryId, String resultId, boolean hideViaBot) { this.chatId = chatId; this.replyToMessageId = replyToMessageId; this.options = options; @@ -53745,10 +54005,10 @@ public class TdApi { this.chatId = input.readLong(); this.replyToMessageId = input.readLong(); if (input.readBoolean()) { - if (SendMessageOptions.CONSTRUCTOR != input.readInt()) { + if (MessageSendOptions.CONSTRUCTOR != input.readInt()) { throw new UnsupportedOperationException(); } - this.options = new SendMessageOptions(input); + this.options = new MessageSendOptions(input); } this.queryId = input.readLong(); if (input.readBoolean()) { @@ -53789,15 +54049,15 @@ public class TdApi { public static class SendMessage extends Function { public long chatId; public long replyToMessageId; - public SendMessageOptions options; + public MessageSendOptions options; public ReplyMarkup replyMarkup; public InputMessageContent inputMessageContent; - public static final int CONSTRUCTOR = -1314396596; + public static final int CONSTRUCTOR = -1693468857; public SendMessage() {} - public SendMessage(long chatId, long replyToMessageId, SendMessageOptions options, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { + public SendMessage(long chatId, long replyToMessageId, MessageSendOptions options, ReplyMarkup replyMarkup, InputMessageContent inputMessageContent) { this.chatId = chatId; this.replyToMessageId = replyToMessageId; this.options = options; @@ -53809,10 +54069,10 @@ public class TdApi { this.chatId = input.readLong(); this.replyToMessageId = input.readLong(); if (input.readBoolean()) { - if (SendMessageOptions.CONSTRUCTOR != input.readInt()) { + if (MessageSendOptions.CONSTRUCTOR != input.readInt()) { throw new UnsupportedOperationException(); } - this.options = new SendMessageOptions(input); + this.options = new MessageSendOptions(input); } if (input.readBoolean()) { switch(input.readInt()) { @@ -53923,14 +54183,14 @@ public class TdApi { public static class SendMessageAlbum extends Function { public long chatId; public long replyToMessageId; - public SendMessageOptions options; + public MessageSendOptions options; public InputMessageContent[] inputMessageContents; - public static final int CONSTRUCTOR = -818794592; + public static final int CONSTRUCTOR = 1301182434; public SendMessageAlbum() {} - public SendMessageAlbum(long chatId, long replyToMessageId, SendMessageOptions options, InputMessageContent[] inputMessageContents) { + public SendMessageAlbum(long chatId, long replyToMessageId, MessageSendOptions options, InputMessageContent[] inputMessageContents) { this.chatId = chatId; this.replyToMessageId = replyToMessageId; this.options = options; @@ -53941,10 +54201,10 @@ public class TdApi { this.chatId = input.readLong(); this.replyToMessageId = input.readLong(); if (input.readBoolean()) { - if (SendMessageOptions.CONSTRUCTOR != input.readInt()) { + if (MessageSendOptions.CONSTRUCTOR != input.readInt()) { throw new UnsupportedOperationException(); } - this.options = new SendMessageOptions(input); + this.options = new MessageSendOptions(input); } if (input.readBoolean()) { this.inputMessageContents = new InputMessageContent[input.readInt()]; diff --git a/src/main/jni/td b/src/main/jni/td index 17b82c8..b93239f 160000 --- a/src/main/jni/td +++ b/src/main/jni/td @@ -1 +1 @@ -Subproject commit 17b82c8bd1a89e5f4700f1805363077d41605a0e +Subproject commit b93239f6d4315e9823076390d5e16db1379e9058