diff options
author | Christian Schneppe <christian@pix-art.de> | 2019-07-01 08:42:54 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2019-07-01 08:42:54 +0200 |
commit | 037932dc02ff27cd452cd37378aa66d0bfcd5d7f (patch) | |
tree | 4bb9f580df46f1b2f3520a58d470d9849cec555e /src/main/java/de/pixart/messenger/generator | |
parent | 66a57e01292d576dc7df6480ad8f3fa9090094d5 (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 '')
-rw-r--r-- | src/main/java/de/pixart/messenger/generator/IqGenerator.java | 14 |
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); |