Better support the VALUE and PREF parameters
Thank you for the app. Using latest version.
The problem
Per the vcard specs, VALUE and PREF are optional parameters for many properties such as TEL and IMPP. They're mostly ignored in Simple Contacts.
Example (click to reveal)
Importing an example VCard that has the following propertiesTEL;VALUE=uri;PREF=1;TYPE="voice";tel:+1-555-555-5555
TEL;VALUE=uri;PREF=2;TYPE="home";tel:+1-666-666-6666
IMPP;VALUE=uri;PREF=1;irc://irc.example.com/johndoe,isuser
Will yield this upon re-exporting
TEL;TYPE=voice:+1-555-555-5555
TEL;TYPE=HOME:+1-666-666-6666
IMPP:irc://irc.example.com/johndoe,isuser
While no indicators of PREF or VALUE are shown in-app
Why this would be a problem
- Preference orders should be used to indicate priority number(s) and determine list position of the VCard properties when possible
- The specs encourages explicitly stating what the value types are even when not needed
What have been done?
-
#952 (PR #937) defines
PREF=1to mark a preferred number in the TEL properties. However, imported VCards withPREF=1already set are ignored (the number is not marked favorite in the app). This seems to be a very limited implementation imo. -
I haven't found anything else for PREF or VALUE params.
My suggestion
-
Simple Contacts must not ignore
PREFandVALUEand preserves them in the app, so exported file = import file -
Use
PREF=to order instances of a property (e.g. list of phone number):-
PREF=1is on top of the list and is given a special UI (e.g. a star decoration and box) . Higher number == lower ranking on the list - Instances without
PREFparameter are pushed to bottom of list - In edit mode, instances can be moved up/down with help of an accent-colored "slider" section in the entry. Double tap the slider will delete the
PREFparam, uncolor the slider, and send the instance to bottom of list
-
-
The
VALUEparams can be edited in an advanced menu of sorts. I haven't figured out this part too well yet but there can be many options.
Example (click to reveal)
Input:
IMPP;VALUE=uri;PREF=1;irc://irc.example.com/johndoe,isuser
IMPP;VALUE=uri;PREF=2;irc://irc.example.com/johnalt,isuser
IMPP;VALUE=uri;PREF=4;irc://irc.example.com/doej,isuser
IMPP;VALUE=uri;PREF=3;irc://irc.example.com/johnchannel,ischannel
IMPP;VALUE=uri;irc://irc.example.com/johndoe,isuser
UI Representation:

Output: Same as input, but PREF=4 and PREF=3 switch lines
Considerations
- I am not aware of how other software treat these parameters
- Not too simple for Simple Contacts.
- This is a lot of work, it will take effort and time.
Vision
One day, all other optional properties such as ALTID and PID can be taken care of in Simple Contacts and relevant software.