Identifiants Jami

Il y a beaucoup d’identifiants dans Jami. Nous devons unifier le nom de ces identifiants entre toutes les implémentations. Cette page fait référence à différents types d’identifiants utilisés dans Jami avec des exemples pertinents.

  • Jami Infohash ou Jami Key Public Fingerprint: une empreinte digitale à clé publique telle que 3d1112ab2bb089370c0744a44bb0786418d40b

  • Nom enregistré: un nom d’utilisateur associé à un Jami Infohash sur la blockchain tel que jeandupont

  • URI: un URI Jami ou SIP tel que jami:3d1112ab2bb089370c0744a44bb0786418d40b ou jami:jeandupont ou <sip:nnnnn@host:5060>. Il doit être conforme à [rfc3986]https://tools.ietf.org/html/rfc3986). S’il s’agit d’un URI SIP, il doit être conforme à rfc3261#19.1.

  • URI canonique: jami:3d1112ab2bb089370c0744a44bb0786418d40b ou sip:nnnnn@host:5060. La forme la plus simplifiée de l’URI. Le nom enregistré doit être résolu, ne comprend pas de parenthèses ou de nom d’affichage. Préfixé avec le schéma (jami: ou sip: ou sips:).

  • Identification utilisateur: nom enregistré (privé) ou empreinte digitale de clé publique. Identificateur d’utilisateur d’une clé publique de compte.

  • Nom d’affichage ou Nom de profil: un nom de profil éditable défini par l’utilisateur tel que Jean Dupont.

Lors de l’affichage d’un contact:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Si le nom de l’affichage est vide, l’identifiant d’utilisateur est affiché à la place

  • Si les deux lignes ont le même contenu, seule la première ligne est affichée

  • Si aucune photo n’est disponible et qu’un nom enregistré (anneau) ou un nom d’affichage (sip) est disponible, la première lettre de ce nom peut être utilisée pour générer un placeholder.

  • Si aucune photo n’est disponible, un placeholder avec une couleur de fond spécifique à l’URI canonique peut être utilisé:

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];
}

Les valeurs de couleur sont tirées de la palette de matériaux: https://material.io/tools/color

références_couleurs_jami