Identificadores Jami

Existem muitos identificadores no Jami. Precisamos de unificar a nomenclatura destes identificadores entre todas as implementações. Esta página faz referência a vários tipos de identificadores usados no Jami com exemplos relevantes.

  • Jami Infohash ou Jami public key fingerprint : uma impressão digital de chave pública, como 3d1112ab2bb089370c0744a44bbbb0786418d40b

  • Nome registado: um nome de utilizador associado a um Jami Infohash na blockchain, tal como jeandupont

  • URI: um URI Jami ou SIP tal como jami:3d1112ab2bb089370c0744a44bbbb0786418d40b ou jami:jeandupont ou <sip:nnnnn@host:5060>. Deve estar em conformidade com rfc3986. Se for um URI SIP, deve estar em conformidade com rfc3261#19.1.

  • URI canónico: jami:3d1112ab2bb089370c0744a44bbbb0786418d40b or sip:nnnnn@host:5060. A forma mais simplificada do URI. O nome registado deve ser resolvido, não inclui <> parênteses ou nome de exibição. Prefixado com o esquema (jami: ou sip: ou sips:).

  • ID do utilizador: nome registado (preferencial) ou impressão digital da chave pública. Identificador voltado para o utilizador para uma chave pública de conta.

  • Nome de apresentação ou Nome de perfil: um nome de perfil editável definido pelo utilizador, como Jean Dupont.

Ao mostrar um contacto:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Se o nome de apresentação estiver vazio, é apresentado o ID de utilizador

  • Se ambas as linhas tiverem o mesmo conteúdo, apenas a primeira linha é mostrada

  • Se não estiver disponível nenhuma fotografia e estiver disponível um nome de registo (jami) ou um nome de apresentação (sip), a primeira letra desse nome pode ser utilizada para gerar um marcador de posição. Caso contrário, é utilizado um marcador de posição genérico.

  • Se não estiver disponível nenhuma fotografia, pode ser utilizado um marcador de posição com uma cor de fundo específica do URI canónico:

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

Os valores das cores são da paleta de materiais: https://material.io/tools/color

referências_cores_jami