Identificadores Jami

Há muitos identificadores em Jami. Precisamos unificar o nomeamento desses identificadores entre todas as implementações. Esta página refere-se a vários tipos de identificadores utilizados em Jami com exemplos relevantes.

  • Jami Infohash ou Jami Key Public Fingerprint: uma impressão digital de chave pública, como 3d1112ab2bb089370c0744a44bb0786418d40b

  • Nome registrado: um nome de usuário associado a um Jami Infohash na blockchain, como jeandupont

  • URI: um URI Jami ou SIP, como jami:3d1112ab2bb089370c0744a44bbbb0786418d40b ou jami:jeandupont ou <sip:nnnnn@host:5060>. Deve estar em conformidade com [rfc3986] (https://tools.ietf.org/html/rfc3986). Se for um URI SIP, deve estar em conformidade com rfc3261#19.1.

  • URI canônico: jami:3d1112ab2bb089370c0744a44bbbb0786418d40b ou sip:nnnnn@host:5060. A forma mais simplificada do URI. O nome registrado deve ser resolvido, não inclui <> colchetes 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 exibição ou Nome de perfil: um nome de perfil definido por utilizador que pode ser editado, como Jean Dupont.

Ao exibir um contato:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Se o nome do Display estiver vazio, o ID do usuário será exibido em vez disso

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

  • Se nenhuma foto estiver disponível e um nome registrado (jami) ou nome de exibição (sip) estiver disponível, a primeira letra desse nome poderá ser usada para gerar um espaço reservado. Caso contrário, será usado um espaço reservado genérico.

  • Se não estiver disponível nenhuma foto, pode ser utilizado um marcador de espaço com uma cor de fundo específica do URI 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];
}

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

referências_cores_jami