lines = IOUtils.readLines(in, urlConnection.getContentEncoding());
+ StringBuffer strBuf = new StringBuffer();
+ for (String line : lines) {
+ strBuf.append(line);
+ }
+// LOG.info(strBuf.toString());
+ return strBuf.toString();
+ } finally {
+ IOUtils.closeQuietly(outPut);
+ IOUtils.closeQuietly(in);
+ if (urlConnection != null) {
+ urlConnection.disconnect();
+ }
+ }
+ }
+}
diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/AlertPayload.java b/src/main/java/cn/wildfirechat/push/hm/payload/AlertPayload.java
new file mode 100644
index 0000000..a1dcd08
--- /dev/null
+++ b/src/main/java/cn/wildfirechat/push/hm/payload/AlertPayload.java
@@ -0,0 +1,60 @@
+package cn.wildfirechat.push.hm.payload;
+
+import cn.wildfirechat.push.PushMessage;
+import cn.wildfirechat.push.PushMessageType;
+import cn.wildfirechat.push.Utility;
+import cn.wildfirechat.push.hm.payload.internal.ClickAction;
+import cn.wildfirechat.push.hm.payload.internal.Notification;
+import cn.wildfirechat.push.hm.payload.internal.Payload;
+import cn.wildfirechat.push.hm.payload.internal.Target;
+import com.google.gson.Gson;
+import org.json.simple.JSONObject;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+
+
+public class AlertPayload {
+ Payload payload;
+ Target target;
+
+ @Override
+ public String toString() {
+ return new Gson().toJson(this);
+ }
+
+ public static AlertPayload buildAlertPayload(PushMessage pushMessage) {
+ Notification notification = new Notification();
+ String[] titleAndBody = Utility.getPushTitleAndContent(pushMessage);
+ notification.title = titleAndBody[0];
+ notification.body = titleAndBody[1];
+
+ ClickAction clickAction = new ClickAction();
+
+ if (pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_NORMAL) {
+ JSONObject data = new JSONObject();
+ JSONObject conv = new JSONObject();
+ conv.put("type", pushMessage.convType);
+ conv.put("target", pushMessage.target);
+ conv.put("line", pushMessage.line);
+ data.put("conversation", conv);
+ clickAction.data = data;
+ } else {
+ // TODO
+ }
+
+ notification.clickAction = clickAction;
+
+ Target target = new Target();
+ target.token = new ArrayList<>();
+ target.token.add(pushMessage.deviceToken);
+
+ AlertPayload alertPayload = new AlertPayload();
+ alertPayload.payload = new Payload();
+ alertPayload.payload.notification = notification;
+ alertPayload.target = target;
+
+ return alertPayload;
+ }
+}
+
diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/VoipPayload.java b/src/main/java/cn/wildfirechat/push/hm/payload/VoipPayload.java
new file mode 100644
index 0000000..34db9c2
--- /dev/null
+++ b/src/main/java/cn/wildfirechat/push/hm/payload/VoipPayload.java
@@ -0,0 +1,34 @@
+package cn.wildfirechat.push.hm.payload;
+
+import cn.wildfirechat.push.PushMessage;
+import cn.wildfirechat.push.hm.payload.internal.Payload;
+import cn.wildfirechat.push.hm.payload.internal.Target;
+import com.google.gson.Gson;
+
+import java.util.ArrayList;
+
+
+public class VoipPayload {
+ Payload payload;
+ Target target;
+
+ @Override
+ public String toString() {
+ return new Gson().toJson(this);
+ }
+
+ public static VoipPayload buildAlertPayload(PushMessage pushMessage) {
+ Target target = new Target();
+ target.token = new ArrayList<>();
+ target.token.add(pushMessage.deviceToken);
+
+ VoipPayload voipPayload = new VoipPayload();
+ voipPayload.payload = new Payload();
+ voipPayload.payload.extraData = "TODO";
+ voipPayload.target = target;
+
+ return voipPayload;
+ }
+}
+
+
diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/internal/ClickAction.java b/src/main/java/cn/wildfirechat/push/hm/payload/internal/ClickAction.java
new file mode 100644
index 0000000..2b3010f
--- /dev/null
+++ b/src/main/java/cn/wildfirechat/push/hm/payload/internal/ClickAction.java
@@ -0,0 +1,16 @@
+package cn.wildfirechat.push.hm.payload.internal;
+
+import org.json.simple.JSONObject;
+
+public class ClickAction {
+ /**
+ * 0:打开应用首页
+ *
+ * 1:打开应用自定义页面
+ */
+ public int actionType;
+
+ public String action;
+ public String uri;
+ public JSONObject data;
+}
diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/internal/Notification.java b/src/main/java/cn/wildfirechat/push/hm/payload/internal/Notification.java
new file mode 100644
index 0000000..71237c6
--- /dev/null
+++ b/src/main/java/cn/wildfirechat/push/hm/payload/internal/Notification.java
@@ -0,0 +1,11 @@
+package cn.wildfirechat.push.hm.payload.internal;
+
+public class Notification {
+ public String category = "IM";
+ public String title;
+ public String body;
+ public ClickAction clickAction;
+ public int style;
+ public String image;
+ public Integer notifyId;
+}
diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/internal/Payload.java b/src/main/java/cn/wildfirechat/push/hm/payload/internal/Payload.java
new file mode 100644
index 0000000..54fd429
--- /dev/null
+++ b/src/main/java/cn/wildfirechat/push/hm/payload/internal/Payload.java
@@ -0,0 +1,6 @@
+package cn.wildfirechat.push.hm.payload.internal;
+
+public class Payload {
+ public Notification notification;
+ public String extraData;
+}
diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/internal/Target.java b/src/main/java/cn/wildfirechat/push/hm/payload/internal/Target.java
new file mode 100644
index 0000000..aef219a
--- /dev/null
+++ b/src/main/java/cn/wildfirechat/push/hm/payload/internal/Target.java
@@ -0,0 +1,7 @@
+package cn.wildfirechat.push.hm.payload.internal;
+
+import java.util.ArrayList;
+
+public class Target {
+ public ArrayList token;
+}