aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/generator/IqGenerator.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-07-01 08:42:54 +0200
committerChristian Schneppe <christian@pix-art.de>2019-07-01 08:42:54 +0200
commit037932dc02ff27cd452cd37378aa66d0bfcd5d7f (patch)
tree4bb9f580df46f1b2f3520a58d470d9849cec555e /src/main/java/de/pixart/messenger/generator/IqGenerator.java
parent66a57e01292d576dc7df6480ad8f3fa9090094d5 (diff)
attempt to unregister when receiving push for channel no longer joined
when receiving a FCM push message for a channel the user is no longer in (this can happen when the disable command failed) an attempt will be made to explicitly unregister from the app server (which in turn will then send item-not-found on next push)
Diffstat (limited to 'src/main/java/de/pixart/messenger/generator/IqGenerator.java')
-rw-r--r--src/main/java/de/pixart/messenger/generator/IqGenerator.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/generator/IqGenerator.java b/src/main/java/de/pixart/messenger/generator/IqGenerator.java
index ad977c7b4..52f9f5b01 100644
--- a/src/main/java/de/pixart/messenger/generator/IqGenerator.java
+++ b/src/main/java/de/pixart/messenger/generator/IqGenerator.java
@@ -453,6 +453,20 @@ public class IqGenerator extends AbstractGenerator {
return packet;
}
+ public IqPacket unregisterChannelOnAppServer(Jid appServer, String deviceId, String channel) {
+ final IqPacket packet = new IqPacket(IqPacket.TYPE.SET);
+ packet.setTo(appServer);
+ final Element command = packet.addChild("command", Namespace.COMMANDS);
+ command.setAttribute("node", "unregister-push-fcm");
+ command.setAttribute("action", "execute");
+ final Data data = new Data();
+ data.put("channel", channel);
+ data.put("android-id", deviceId);
+ data.submit();
+ command.addChild(data);
+ return packet;
+ }
+
public IqPacket enablePush(final Jid jid, final String node, final String secret) {
IqPacket packet = new IqPacket(IqPacket.TYPE.SET);
Element enable = packet.addChild("enable", Namespace.PUSH);