Identificatori Jami

Ci sono molti identificatori in Jami. Dobbiamo unificare il nome di questi identificatori tra tutte le implementazioni. Questa pagina fa riferimento a vari tipi di identificatori utilizzati in Jami con esempi pertinenti.

  • Jami Infohash o Jami Key Public Fingerprint: un’impronta digitale di chiave pubblica come 3d1112ab2bb089370c0744a44bb0786418d40b

  • Nome registrato: un nome utente associato a un Jami Infohash sulla blockchain come jeandupont

  • URI: un Jami o SIP URI come jami:3d1112ab2bb089370c0744a44bb0786418d40b o jami:jeandupont o <sip:nnnnn@host:5060>. Deve essere conforme a [rfc3986]https://tools.ietf.org/html/rfc3986). Se è un SIP URI, deve essere conforme a rfc3261#19.1.

  • URI canonica: jami:3d1112ab2bb089370c0744a44bb0786418d40b o sip:nnnnn@host:5060. La forma più semplificata dell’URI. Il nome registrato deve essere risolto, non include <> parentesi o nome di visualizzazione. Prefisso con lo schema (jami: o sip: o sips:).

  • User ID: nome registrato (preferito) o impronta digitale della chiave pubblica. Identificatore di un account rivolto all’utente per una chiave pubblica.

  • Nome di visualizzazione o Nome di profilo: un nome di profilo modificabile definito dall’utente come Jean Dupont.

Quando si visualizza un contatto:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Se il nome dello schermo è vuoto, viene visualizzato l’ID utente

  • Se entrambe le righe hanno lo stesso contenuto, viene visualizzata solo la prima riga

  • 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.

  • Se non è disponibile una foto, può essere utilizzato un contenitore di posizione con un colore di sfondo specifico per l’URI canonica:

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

I valori dei colori sono dalla palette di materiali: https://material.io/tools/color

! [références_couleurs_jami]