use of im.actor.core.api.ApiServiceMessage in project actor-platform by actorapp.
the class AbsContent method convertData.
protected static AbsContent convertData(AbsContentContainer container) {
if (container instanceof ContentLocalContainer) {
ContentLocalContainer localContainer = (ContentLocalContainer) container;
AbsLocalContent content = ((ContentLocalContainer) container).getContent();
if (content instanceof LocalPhoto) {
return new PhotoContent(localContainer);
} else if (content instanceof LocalVideo) {
return new VideoContent(localContainer);
} else if (content instanceof LocalVoice) {
return new VoiceContent(localContainer);
} else if (content instanceof LocalAnimation) {
return new AnimationContent(localContainer);
} else if (content instanceof LocalDocument) {
return new DocumentContent(localContainer);
} else {
throw new RuntimeException("Unknown type");
}
} else if (container instanceof ContentRemoteContainer) {
ContentRemoteContainer remoteContainer = (ContentRemoteContainer) container;
ApiMessage content = ((ContentRemoteContainer) container).getMessage();
try {
if (content instanceof ApiDocumentMessage) {
ApiDocumentMessage d = (ApiDocumentMessage) content;
if (d.getExt() instanceof ApiDocumentExPhoto) {
return new PhotoContent(remoteContainer);
} else if (d.getExt() instanceof ApiDocumentExVideo) {
return new VideoContent(remoteContainer);
} else if (d.getExt() instanceof ApiDocumentExVoice) {
return new VoiceContent(remoteContainer);
} else if (d.getExt() instanceof ApiDocumentExAnimation) {
return new AnimationContent(remoteContainer);
} else {
return new DocumentContent(remoteContainer);
}
} else if (content instanceof ApiTextMessage) {
return new TextContent(remoteContainer);
} else if (content instanceof ApiServiceMessage) {
ApiServiceEx ext = ((ApiServiceMessage) content).getExt();
if (ext instanceof ApiServiceExContactRegistered) {
return new ServiceUserRegistered(remoteContainer);
} else if (ext instanceof ApiServiceExChangedTitle) {
return new ServiceGroupTitleChanged(remoteContainer);
} else if (ext instanceof ApiServiceExChangedTopic) {
return new ServiceGroupTopicChanged(remoteContainer);
} else if (ext instanceof ApiServiceExChangedAbout) {
return new ServiceGroupAboutChanged(remoteContainer);
} else if (ext instanceof ApiServiceExChangedAvatar) {
return new ServiceGroupAvatarChanged(remoteContainer);
} else if (ext instanceof ApiServiceExGroupCreated) {
return new ServiceGroupCreated(remoteContainer);
} else if (ext instanceof ApiServiceExUserInvited) {
return new ServiceGroupUserInvited(remoteContainer);
} else if (ext instanceof ApiServiceExUserKicked) {
return new ServiceGroupUserKicked(remoteContainer);
} else if (ext instanceof ApiServiceExUserLeft) {
return new ServiceGroupUserLeave(remoteContainer);
} else if (ext instanceof ApiServiceExUserJoined) {
return new ServiceGroupUserJoined(remoteContainer);
} else if (ext instanceof ApiServiceExPhoneCall) {
return new ServiceCallEnded(remoteContainer);
} else if (ext instanceof ApiServiceExPhoneMissed) {
return new ServiceCallMissed(remoteContainer);
} else {
return new ServiceContent(remoteContainer);
}
} else if (content instanceof ApiJsonMessage) {
ApiJsonMessage json = (ApiJsonMessage) content;
JSONObject object = new JSONObject(json.getRawJson());
if (object.getString("dataType").equals("contact")) {
return new ContactContent(remoteContainer);
} else if (object.getString("dataType").equals("location")) {
return new LocationContent(remoteContainer);
} else {
return new JsonContent(remoteContainer);
}
} else if (content instanceof ApiStickerMessage) {
return new StickerContent(remoteContainer);
}
} catch (Exception e) {
e.printStackTrace();
}
// Fallback
return new UnsupportedContent(remoteContainer);
} else {
throw new RuntimeException("Unknown type");
}
}
Aggregations