Simple-Contacts icon indicating copy to clipboard operation
Simple-Contacts copied to clipboard

Better support the VALUE and PREF parameters

Open stratself opened this issue 2 years ago • 0 comments

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 properties
TEL;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=1 to mark a preferred number in the TEL properties. However, imported VCards with PREF=1 already 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 PREF and VALUE and 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=1 is 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 PREF parameter 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 PREF param, uncolor the slider, and send the instance to bottom of list
  • The VALUE params 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:

image

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.

stratself avatar Apr 15 '23 21:04 stratself