Identificatorii Jami

Există multe identificatori în Jami. Trebuie să unificăm denumirea acestor identificatori între toate implementările.

  • Jami Infohash sau Jami public key fingerprint: o amprentă de la cheia publică, cum ar fi 3d1112ab2bb089370c0744a44bb0786418d40b

  • Nume înregistrat: un nume de utilizator asociat unui Jami Infohash pe blockchain, cum ar fi jeandupont

  • URI: un Jami sau un SIP URI cum ar fi jami:3d1112ab2bb089370c0744a44bb0786418d40b sau jami:jeandupont sau <sip:nnnnn@host:5060>. Trebuie să fie conforme cu [rfc3986]https://tools.ietf.org/html/rfc3986). Dacă este un SIP URI, trebuie să fie conforme cu rfc3261#19.1.

  • ** URI canonic**: jami:3d1112ab2bb089370c0744a44bb0786418d40b sau sip:nnnnn@host:5060. Forma cea mai simplificată a URI. Numele înscris trebuie rezolvat, nu include <> paranteze sau numele afișat. Prefixat cu schema (jami: sau sip: sau sips:).

  • ID-ul utilizatorului: nume înregistrat (preferit) sau amprentă digitale cu cheia publică.

  • Nume afișat sau Nume de profil: un nume de profil modificabil stabilit de utilizator, cum ar fi „Jean Dupont”.

Atunci când afișează un contact:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Dacă „Numele afișat” lipsește, se afișează în loc ID-ul utilizatorului

  • Dacă ambele linii au același conținut, se afișează doar prima linie

  • If no photo is available and a registered name (jami) or display name (sip) is available, the first letter of this name can be used to generate a placeholder. Otherwise a generic placeholder is used.

  • Dacă nu există nicio fotografie, se poate utiliza un dispozitiv de plasare cu o culoare de fundal specifică URI-ului Canonical:

final int[] contactColors = {
    color.red_500, color.pink_500,
    color.purple_500, color.deep_purple_500,
    color.indigo_500, color.blue_500,
    color.cyan_500, color.teal_500,
    color.green_500, color.light_green_500,
    color.grey_500, color.lime_500,
    color.amber_500, color.deep_orange_500,
    color.brown_500, color.blue_grey_500
};

int generateAvatarColor(String canonicalUri) {
    if (isEmpty(canonicalUri))
        return R.color.grey_500;
    String h = md5(canonicalUri);
    if (h == null)
        return R.color.grey_500;
    int colorIndex = Integer.parseInt(h.charAt(0) + "", 16);
    return contactColors[colorIndex % contactColors.length];
}

Valorile de culoare sunt din paleta de materiale: https://material.io/tools/color

! références_couleurs_jami