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..66f48e3f 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 @@ -33,6 +33,7 @@ public class CallbackApi { private static final String CALLBACK_EVENT_MESSAGE_ALLOW = "message_allow"; private static final String CALLBACK_EVENT_MESSAGE_DENY = "message_deny"; private static final String CALLBACK_EVENT_MESSAGE_EDIT = "message_edit"; + private static final String CALLBACK_EVENT_MESSAGE_EVENT = "message_event"; private static final String CALLBACK_EVENT_PHOTO_NEW = "photo_new"; private static final String CALLBACK_EVENT_PHOTO_COMMENT_NEW = "photo_comment_new"; private static final String CALLBACK_EVENT_PHOTO_COMMENT_EDIT = "photo_comment_edit"; @@ -81,6 +82,8 @@ public class CallbackApi { }.getType()); types.put(CALLBACK_EVENT_MESSAGE_DENY, new TypeToken>() { }.getType()); + types.put(CALLBACK_EVENT_MESSAGE_EVENT, new TypeToken>() { + }.getType()); types.put(CALLBACK_EVENT_PHOTO_NEW, new TypeToken>() { }.getType()); @@ -201,6 +204,13 @@ public void messageDeny(Integer groupId, String secret, MessageDeny message) { messageDeny(groupId, message); } + public void messageEvent(Integer groupId, MessageEvent message) { + } + + public void messageEvent(Integer groupId, String secret, MessageEvent message) { + messageEvent(groupId, message); + } + public void photoNew(Integer groupId, Photo message) { } @@ -482,6 +492,10 @@ public boolean parse(JsonObject json) { messageDeny(message.getGroupId(), message.getSecret(), (MessageDeny) message.getObject()); break; + case CALLBACK_EVENT_MESSAGE_EVENT: + messageEvent(message.getGroupId(), message.getSecret(), (MessageEvent) message.getObject()); + break; + case CALLBACK_EVENT_PHOTO_NEW: photoNew(message.getGroupId(), message.getSecret(), (Photo) message.getObject()); break; diff --git a/sdk/src/main/java/com/vk/api/sdk/objects/callback/MessageEvent.java b/sdk/src/main/java/com/vk/api/sdk/objects/callback/MessageEvent.java new file mode 100644 index 00000000..23ba2fc2 --- /dev/null +++ b/sdk/src/main/java/com/vk/api/sdk/objects/callback/MessageEvent.java @@ -0,0 +1,107 @@ +package com.vk.api.sdk.objects.callback; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.google.gson.annotations.SerializedName; +import com.vk.api.sdk.objects.Validable; + +import java.util.Objects; + +/** + * MessageEvent object + */ +public class MessageEvent implements Validable { + @SerializedName("user_id") + private Integer userId; + + @SerializedName("peer_id") + private Integer peerId; + + @SerializedName("event_id") + private String eventId; + + @SerializedName("payload") + private JsonObject payload; + + @SerializedName("conversation_message_id") + private Integer conversationMessageId; + + public Integer getUserId() { + return userId; + } + + public MessageEvent setUserId(Integer userId) { + this.userId = userId; + return this; + } + + public Integer getPeerId() { + return peerId; + } + + public MessageEvent setPeerId(Integer peerId) { + this.peerId = peerId; + return this; + } + + public String getEventId() { + return eventId; + } + + public MessageEvent setEventId(String eventId) { + this.eventId = eventId; + return this; + } + + public JsonObject getPayload() { + return payload; + } + + public MessageEvent setPayload(JsonObject payload) { + this.payload = payload; + return this; + } + + public Integer getConversationMessageId() { + return conversationMessageId; + } + + public MessageEvent setConversationMessageId(Integer conversationMessageId) { + this.conversationMessageId = conversationMessageId; + return this; + } + + @Override + public int hashCode() { + return Objects.hash(userId, peerId, eventId, payload, conversationMessageId); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MessageEvent messageEvent = (MessageEvent) o; + return Objects.equals(userId, messageEvent.userId) && + Objects.equals(peerId, messageEvent.peerId) && + Objects.equals(eventId, messageEvent.eventId) && + Objects.equals(payload, messageEvent.payload) && + Objects.equals(conversationMessageId, messageEvent.conversationMessageId); + } + + @Override + public String toString() { + final Gson gson = new Gson(); + return gson.toJson(this); + } + + public String toPrettyString() { + final StringBuilder sb = new StringBuilder("MessageEvent{"); + sb.append("userId=").append(userId); + sb.append(", peerId='").append(peerId).append("'"); + sb.append(", eventId='").append(eventId).append("'"); + sb.append(", payload='").append(payload).append("'"); + sb.append(", conversationMessageId='").append(conversationMessageId).append("'"); + sb.append('}'); + return sb.toString(); + } +}