diff --git a/examples/youtrack-bot/src/main/java/com/vk/api/examples/youtrack/callback/CallbackApiHandler.java b/examples/youtrack-bot/src/main/java/com/vk/api/examples/youtrack/callback/CallbackApiHandler.java index 4205619c..a116581c 100644 --- a/examples/youtrack-bot/src/main/java/com/vk/api/examples/youtrack/callback/CallbackApiHandler.java +++ b/examples/youtrack-bot/src/main/java/com/vk/api/examples/youtrack/callback/CallbackApiHandler.java @@ -2,6 +2,7 @@ import com.vk.api.sdk.callback.CallbackApi; import com.vk.api.sdk.objects.messages.Message; +import com.vk.api.sdk.objects.messages.MessageNew; /** * Created by tsivarev on 07.09.16. @@ -9,7 +10,7 @@ public class CallbackApiHandler extends CallbackApi { @Override - public void messageNew(Integer groupId, Message message) { - MessagesHandler.parseMessage(groupId, message); + public void messageNew(Integer groupId, MessageNew message) { + MessagesHandler.parseMessage(groupId, message.getMessage()); } } diff --git a/sdk/src/main/java/com/vk/api/sdk/callback/CallbackApi.java b/sdk/src/main/java/com/vk/api/sdk/callback/CallbackApi.java index c9dfd0a0..310b11aa 100644 --- a/sdk/src/main/java/com/vk/api/sdk/callback/CallbackApi.java +++ b/sdk/src/main/java/com/vk/api/sdk/callback/CallbackApi.java @@ -8,6 +8,7 @@ import com.vk.api.sdk.objects.board.TopicComment; import com.vk.api.sdk.objects.callback.*; import com.vk.api.sdk.objects.messages.Message; +import com.vk.api.sdk.objects.messages.MessageNew; import com.vk.api.sdk.objects.photos.Photo; import com.vk.api.sdk.objects.video.Video; import com.vk.api.sdk.objects.wall.WallComment; @@ -71,7 +72,7 @@ public class CallbackApi { static { Map types = new HashMap<>(); - types.put(CALLBACK_EVENT_MESSAGE_NEW, new TypeToken>() { + types.put(CALLBACK_EVENT_MESSAGE_NEW, new TypeToken>() { }.getType()); types.put(CALLBACK_EVENT_MESSAGE_REPLY, new TypeToken>() { }.getType()); @@ -166,10 +167,10 @@ public CallbackApi() { gson = new Gson(); } - public void messageNew(Integer groupId, Message message) { + public void messageNew(Integer groupId, MessageNew message) { } - public void messageNew(Integer groupId, String secret, Message message) { + public void messageNew(Integer groupId, String secret, MessageNew message) { messageNew(groupId, message); } @@ -463,7 +464,7 @@ public boolean parse(JsonObject json) { switch (type) { case CALLBACK_EVENT_MESSAGE_NEW: - messageNew(message.getGroupId(), message.getSecret(), (Message) message.getObject()); + messageNew(message.getGroupId(), message.getSecret(), (MessageNew) message.getObject()); break; case CALLBACK_EVENT_MESSAGE_REPLY: diff --git a/sdk/src/main/java/com/vk/api/sdk/objects/messages/ClientInfo.java b/sdk/src/main/java/com/vk/api/sdk/objects/messages/ClientInfo.java new file mode 100644 index 00000000..0b57dd55 --- /dev/null +++ b/sdk/src/main/java/com/vk/api/sdk/objects/messages/ClientInfo.java @@ -0,0 +1,84 @@ +package com.vk.api.sdk.objects.messages; + +import com.google.gson.Gson; +import com.google.gson.annotations.SerializedName; +import com.vk.api.sdk.objects.Validable; +import com.vk.api.sdk.objects.annotations.Required; +import com.vk.api.sdk.objects.base.BoolInt; +import com.vk.api.sdk.objects.base.Geo; +import java.util.List; +import java.util.Objects; + +/** + * ClientInfo object + */ +public class ClientInfo implements Validable { + @SerializedName("button_actions") + private List buttonActions; + + @SerializedName("keyboard") + private Boolean keyboard; + + @SerializedName("inline_keyboard") + private Boolean inlineKeyboard; + + @SerializedName("carousel") + private Boolean carousel; + + @SerializedName("lang_id") + private Integer lang_id; + + public List getButtonActions() { + return buttonActions; + } + + public Boolean getKeyboard() { + return keyboard; + } + + public Boolean getInlineKeyboard() { + return inlineKeyboard; + } + + public Boolean getCarousel() { + return carousel; + } + + public Integer getLang_id() { + return lang_id; + } + + @Override + public int hashCode() { + return Objects.hash(buttonActions, keyboard, inlineKeyboard, carousel, lang_id); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ClientInfo clientInfo = (ClientInfo) o; + return Objects.equals(buttonActions, clientInfo.buttonActions) && + Objects.equals(keyboard, clientInfo.keyboard) && + Objects.equals(inlineKeyboard, clientInfo.inlineKeyboard) && + Objects.equals(carousel, clientInfo.carousel) && + Objects.equals(lang_id, clientInfo.lang_id); + } + + @Override + public String toString() { + final Gson gson = new Gson(); + return gson.toJson(this); + } + + public String toPrettyString() { + final StringBuilder sb = new StringBuilder("ClientInfo{"); + sb.append("buttonActions=").append(buttonActions); + sb.append(", keyboard=").append(keyboard); + sb.append(", inlineKeyboard=").append(inlineKeyboard); + sb.append(", carousel=").append(carousel); + sb.append(", lang_id=").append(lang_id); + sb.append('}'); + return sb.toString(); + } +} diff --git a/sdk/src/main/java/com/vk/api/sdk/objects/messages/KeyboardButtonActionType.java b/sdk/src/main/java/com/vk/api/sdk/objects/messages/KeyboardButtonActionType.java index fb48c650..bbc6f6e4 100644 --- a/sdk/src/main/java/com/vk/api/sdk/objects/messages/KeyboardButtonActionType.java +++ b/sdk/src/main/java/com/vk/api/sdk/objects/messages/KeyboardButtonActionType.java @@ -20,7 +20,22 @@ public enum KeyboardButtonActionType implements EnumParam { VKPAY("vkpay"), @SerializedName("open_app") - OPEN_APP("open_app"); + OPEN_APP("open_app"), + + @SerializedName("callback") + CALLBACK("callback"), + + @SerializedName("open_link") + OPEN_LINK("open_link"), + + @SerializedName("open_photo") + OPEN_PHOTO("open_photo"), + + @SerializedName("intent_subscribe") + INTENT_SUBSCRIBE("intent_subscribe"), + + @SerializedName("intent_unsubscribe") + INTENT_UNSUBSCRIBE("intent_unsubscribe"); private final String value; diff --git a/sdk/src/main/java/com/vk/api/sdk/objects/messages/MessageNew.java b/sdk/src/main/java/com/vk/api/sdk/objects/messages/MessageNew.java new file mode 100644 index 00000000..cef54405 --- /dev/null +++ b/sdk/src/main/java/com/vk/api/sdk/objects/messages/MessageNew.java @@ -0,0 +1,51 @@ +package com.vk.api.sdk.objects.messages; + +import com.google.gson.Gson; +import com.google.gson.annotations.SerializedName; +import com.vk.api.sdk.objects.Validable; + +import java.util.Objects; + +public class MessageNew implements Validable { + @SerializedName("message") + private Message message; + + @SerializedName("client_info") + private ClientInfo clientInfo; + + public Message getMessage() { + return message; + } + + public ClientInfo getClientInfo() { + return clientInfo; + } + + @Override + public int hashCode() { + return Objects.hash(message, clientInfo); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MessageNew messageNew = (MessageNew) o; + return Objects.equals(message, messageNew.message) && + Objects.equals(clientInfo, messageNew.clientInfo); + } + + @Override + public String toString() { + final Gson gson = new Gson(); + return gson.toJson(this); + } + + public String toPrettyString() { + final StringBuilder sb = new StringBuilder("MessageNew{"); + sb.append("message=").append(message); + sb.append(", clientInfo=").append(clientInfo); + sb.append('}'); + return sb.toString(); + } +}