Matthias,
Sounds like you're saying "if you don't like it fix it yourself". How rude.
I'm a user. This is the user mailing list. For me I can make it work as it is. I'm just pointing out a regression.
You can leave it as it is, but you should let your users know that category names will now be restricted to the characters that are accepted by Google Topics for topic names. You should also add the validation check to all the other devices
to prevent invalid category names from being used by them. UPS is a multi-device platform and category names are used by all devices, not just Android. A restriction in one affects them all.
Or you could ask the programmer who added Topics to categories to submit a pull request.
Kelvin
From: aerogear-users-bounces@lists.jboss.org [mailto:aerogear-users-bounces@lists.jboss.org]
On Behalf Of Matthias Wessendorf
Sent: Monday, September 12, 2016 1:12 PM
To: aerogear-users@lists.jboss.org
Subject: Re: [Aerogear-users] categories have been hijacked
On Mon, Sep 12, 2016 at 9:13 PM, Kelvin Lunsford <kelvin@qantel.com> wrote:
This is not caused by the GSON bug. It is not a problem in Aerogear Android Store.
Topics is more restrictive than JSON.
When Topics was implemented this validation check was added to Aerogear Android Push:
private static final String FCM_TOPIC_PATTERN = "[a-zA-Z0-9-_.~%]{1,900}";
private static void validateCategories(String... categories) {
for (String category : categories) {
if (!category.matches(FCM_TOPIC_PATTERN)) {
throw new IllegalArgumentException(String.format("%s does not match %s", category, FCM_TOPIC_PATTERN));
}
}
}
This validation check should not be required. Topics was supposed to be implemented into categories transparently. Instead of a validation check the Topic names should have been
encoded (i.e. percent encoding) before being given to the Topics interface to avoid this Topics restriction.
feel free to send a pull request w/ the suggested behavior
Category names should not be stored as Topic encoded because they might be used for non-Topic notifications (e.g. a push with a category and an alias).
- Kelvin
From: aerogear-users-bounces@lists.jboss.org [mailto:aerogear-users-bounces@lists.jboss.org] On Behalf Of Daniel Passos
Sent: Monday, September 12, 2016 9:10 AM
To: aerogear-users@lists.jboss.org
Subject: Re: [Aerogear-users] categories have been hijacked
Hey Kelvin,
It's a knowledge[1] bug fixed[2] in AeroGear Android Store cause by a GSON bug[3]. I'm going to create a new version of AeroGear Android Push library using the new Store version to fix this bug.
[1] https://issues.jboss.org/browse/AGDROID-564
[2] https://github.com/aerogear/aerogear-android-store/pull/41
[3] https://github.com/google/gson/issues/210
On Mon, Sep 12, 2016 at 4:33 AM, Matthias Wessendorf <matzew@apache.org> wrote:
Hello,
sorry for the problems you are encountering with our UPS and its client side libraries. I've created a JIRA ticket to capture the problem:
greetings,
Matthias
On Fri, Sep 9, 2016 at 10:40 PM, Kelvin Lunsford <kelvin@qantel.com> wrote:
My categories no longer work on android because I use ":" characters in my category names.
Last May aerogear-android-push:3.0.0 was released with Topics and now the android plugin refuses to accept my category names with non-Topic compatible characters.
IOS still works with non-Topic compatible characters, but there is a regression in android.
I warned you. Category names should have been percent encoded before applying them to the Topic interfaces in the plugin and UPS. It would have prevented the regression, but nobody did it.
Now notifications are broken on the android version of my app.
If I want to make it work with the current plugin I will have to change my category names to avoid using non-topic compatible characters. If I make the change it will affect my android and IOS mobile apps, and I will have to change the system that posts the notification requests to UPS so it also changes the names.
If no one responds with a "No, wait, we'll fix it!" that is what I will do.
- Kelvin
From: Kelvin Lunsford
Sent: Tuesday, August 18, 2015 3:25 PM
To: 'aerogear-users@lists.jboss.org'
Subject: RE: [Aerogear-users] categories have been hijacked
You need topic compliant percent encoding/decoding functions to use on category names when setting them to/from topic names.
You can encode by using the android.net.Uri.encode() function and replacing the characters missed by the encode() function. Uri.decode() will work as is.
Equivalent encoding would have to be done in java for UPS when it accesses a topic.
- Kelvin
From: aerogear-users-bounces@lists.jboss.org [mailto:aerogear-users-bounces@lists.jboss.org] On Behalf Of Summers Pittman
Sent: Tuesday, August 18, 2015 6:26 AM
To: aerogear-users@lists.jboss.org
Subject: Re: [Aerogear-users] categories have been hijacked
On Mon, Aug 17, 2015 at 6:01 PM, Kelvin Lunsford <kelvin@qantel.com> wrote:
Summers,
What happens if a category name is not GCM topic compatible?
That is a good question. Currently you will get a error because it fails validation. We've created a JIRA to track this issue here : https://issues.jboss.org/browse/AGPUSH-1501
Keep the hits coming.
- Kelvin
From: aerogear-users-bounces@lists.jboss.org [mailto:aerogear-users-bounces@lists.jboss.org] On Behalf Of Summers Pittman
Sent: Tuesday, August 11, 2015 10:03 AM
To: aerogear-users@lists.jboss.org
Subject: Re: [Aerogear-users] categories have been hijacked
On Tue, Aug 11, 2015 at 8:31 AM, Summers Pittman <supittma@redhat.com> wrote:
On Tue, Aug 11, 2015 at 12:43 AM, Kelvin Lunsford <kelvin@qantel.com> wrote:
Hi Summers,
GCM topic messages go to all devices registered for the topic. Topic notifications cannot be restricted to an alias or list of aliases.
The way it worked before, and still works on ios, you can send a command to UPS with an "alias" name AND a "categories" name and it will only go to devices that have registered using that "alias" name AND that "categories" name. UPS finds which devices meet the selection criteria and push notification requests are sent for those devices.
Requests with aliases and categories can target specific users in a group.
With real "categories" you can segment users into groups, so every device can be assigned a category, and sub-groups can be defined by using more than one category per device. This is useful for geographic or organizational targeting.
I have no problem with GCM topics. Just make it a new feature. Give me back my categories.
So the goal isn't to replace or hijack categories with topics. The goal is to leverage Google's API fully and transparently to the UPS user so that we make fewer calls and provide a better experience. You have some great use cases that haven't been brought up. Keep in mind that the PRs open right now are a "first draft" of the technology. Feel free to join in on the discussion about topics on aerogear-dev. It is really important we do this right and I think you can help with that.
Summers
- Kelvin
---------------------------------------------------------------------------------------
From: aerogear-users-bounces@lists.jboss.org [mailto:aerogear-users-bounces@lists.jboss.org] On Behalf Of Summers Pittman
Sent: Monday, August 10, 2015 6:12 PM
To: aerogear-users@lists.jboss.org
Subject: Re: [Aerogear-users] categories have been hijacked
>
>On Mon, Aug 10, 2015 at 8:36 PM, Kelvin Lunsford <kelvin@qantel.com> wrote:
>Setting "categories" in the push payload was working for android and ios in cordova push plugin 1.1.1.
>
>For version 2.0.2 "categories" only works for ios.
>
>It looks like "categories" is being hijacked in android for a GCM feature called "topics".
>
>I liked "categories". I was using it. Now it's gone. GCM topics is not a drop-in replacement. It's not the same thing.
What do categories do that topics do not do?
>New features should get new names and new commands.
>
>- Kelvin
_______________________________________________
Aerogear-users mailing list
Aerogear-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-users
_______________________________________________
Aerogear-users mailing list
Aerogear-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-users
_______________________________________________
Aerogear-users mailing list
Aerogear-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-users
--
Matthias Wessendorf
blog: http://matthiaswessendorf.wordpress.com/
twitter: http://twitter.com/mwessendorf
_______________________________________________
Aerogear-users mailing list
Aerogear-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-users
---- Passos
_______________________________________________
Aerogear-users mailing list
Aerogear-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-users
--
Matthias Wessendorf
blog: http://matthiaswessendorf.wordpress.com/
twitter: http://twitter.com/mwessendorf