If you think the Android project kakao-android-sdk-standalone listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/**
* Copyright 2014 Kakao Corp./*fromwww.java2s.com*/
*
* Redistribution and modification in source or binary forms are not permitted without specific prior written permission.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/package com.kakao.internal;
import android.text.TextUtils;
import com.kakao.KakaoLinkParseException;
import org.json.JSONException;
import org.json.JSONObject;
/**
* @author MJ
*/publicfinalclass LinkObject {
publicenum OBJTYPE {
UNKNOWN("", false),
TEXT("label", false),
IMAGE("image", false),
BUTTON("button", true),
TEXT_LINK("link", true);
privatefinal String value;
privatefinalboolean actionable;
OBJTYPE(final String value, finalboolean actionable) {
this.value = value;
this.actionable = actionable;
}
}
privatefinal OBJTYPE objType;
privatefinal String text;
privatefinal String imageSrc;
privatefinalint imageWidth;
privatefinalint imageHeight;
privatefinal Action action;
private LinkObject(final OBJTYPE objType, final String msg, final String imageSrc, finalint imageWidth, finalint imageHeight, final Action action) {
this.objType = objType;
this.text = msg;
this.imageSrc = imageSrc;
this.imageWidth = imageWidth;
this.imageHeight = imageHeight;
this.action = action;
}
publicstatic LinkObject newText(final String text) throws KakaoLinkParseException {
if (TextUtils.isEmpty(text)) {
thrownew KakaoLinkParseException(KakaoLinkParseException.ERROR_CODE.CORE_PARAMETER_MISSING, "text type needs text.");
}
returnnew LinkObject(OBJTYPE.TEXT, text, null, 0, 0, null);
}
publicstatic LinkObject newImage(final String src, finalint width, finalint height) throws KakaoLinkParseException {
if (TextUtils.isEmpty(src)) {
thrownew KakaoLinkParseException(KakaoLinkParseException.ERROR_CODE.CORE_PARAMETER_MISSING, "image type needs src.");
}
if (width <= 70) {
thrownew KakaoLinkParseException(KakaoLinkParseException.ERROR_CODE.MINIMUM_IMAGE_SIZE_REQUIRED, "width of image type should be bigger than 70.");
}
if (height <= 70) {
thrownew KakaoLinkParseException(KakaoLinkParseException.ERROR_CODE.MINIMUM_IMAGE_SIZE_REQUIRED, "height of image type should be bigger than 70.");
}
returnnew LinkObject(OBJTYPE.IMAGE, null, src, width, height, null);
}
publicstatic LinkObject newButton(final String text, final Action action) {
returnnew LinkObject(OBJTYPE.BUTTON, text, null, 0, 0, action);
}
publicstatic LinkObject newLink(final String text, final Action action) {
returnnew LinkObject(OBJTYPE.TEXT_LINK, text, null, 0, 0, action);
}
public JSONObject createJSONObject() throws JSONException {
JSONObject json = new JSONObject();
json.put(KakaoTalkLinkProtocol.OBJ_OBJTYPE, objType.value);
if (!TextUtils.isEmpty(text)) {
json.put(KakaoTalkLinkProtocol.OBJ_TEXT, text);
}
if (!TextUtils.isEmpty(imageSrc) && objType == OBJTYPE.IMAGE) {
json.put(KakaoTalkLinkProtocol.OBJ_SRC, imageSrc);
if (imageWidth > 0) {
json.put(KakaoTalkLinkProtocol.OBJ_WIDTH, imageWidth);
}
if (imageHeight > 0) {
json.put(KakaoTalkLinkProtocol.OBJ_HEIGHT, imageHeight);
}
}
if (action != null && objType.actionable) {
json.put(KakaoTalkLinkProtocol.OBJ_ACTION, action.createJSONObject());
}
return json;
}
}