External app with intent parameters

1. What is the problem? Be very detailed.
I'm using the external app fonctionality and would like to pass parameters that will be used in the external app. One of this parameter is a regular expression and contains the character ",". It seems that this character is reserved as the split of the parameters is done with it, even if the value of the parameter is between simple quotes..
In the example above, we can as value of parameter "match" :
"^[0-9]{4}W[0-9]{2}-[0-9]{1" wich is incomplete.

Is it possible to escape it ? or is it another solution/workaround ?


2. What app or server are you using and on what device and operating system? Include version numbers.
I'm using Android 8.1, and ODK Collect 1.21.2

3. What you have you tried to fix the problem?

4. What steps can we take to reproduce the problem?
Use the character "," in a value of a parameter

5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.
Ex :


Unfortunately looks as if it's not possible. I reported an issue in the collect's repository https://github.com/opendatakit/collect/issues/3114

1 Like



Could you attach the entire appearance you tried to use?

Here it is :

<input appearance="ex:ch.novelt.odkcompanion.OPEN(current_value=/afp_report/group_mini_cif/cn, match='^[0-9]{4}W[0-9]{2}-[0-9]{1,5}$', filter='^AFP:([0-9]{4}W[0-9]{2}-[0-9]{1,5})')" ref="/afp_report/group_mini_cif/cn">

Thanks a lot. I added your sample to the tests I created. Here is a pr https://github.com/opendatakit/collect/pull/3120 so you can track the progress. Hopefully we will be able to fix it in the next release.


As of ODK Collect v1.23, commas are allowed in search() parameters!