|
When a device sents its metadata with the registration, we update it in https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/service/src/main/java/org/jboss/aerogear/unifiedpush/service/impl/ClientInstallationServiceImpl.java#L143
and merge the categories in https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/service/src/main/java/org/jboss/aerogear/unifiedpush/service/impl/ClientInstallationServiceImpl.java#L145
Now for GCM-3 topic management we need to remove a devices token from a topic, on the server, if it misses a category
Example for one device
-
First registration with categories: foo, bar
-> new action needed, device is new; topic subscription to "foo" and "bar" is done on the client
-
Second registration with categories: foo, bar, lol
-> new action needed, device exists and previous categories ("foo" and "bar") still exist on the metadata, and the new category ("lol") was registered w/ GCM on the client
-
Third registration with categories: foo, lol
-> ACTION NEEDED: The "bar" category for the device is missing, and therefore the UPS needs to update this on GCM, using the GCM-server key from the variant, the device belongs to
|