identyfikator Jami

W Jami istnieje wiele identyfikatorów. Musimy zjednoczyć nazwę tych identyfikatorów między wszystkimi implementacjami.

  • Jami Infohash lub Jami public key fingerprint: odciski palców z klucza publicznego, takie jak 3d1112ab2bb089370c0744a44bb0786418d40b

  • Nazwisko zarejestrowane: nazwisko użytkownika powiązane z informacją Jami na blockchainie, takie jak jeandupont

  • URI: Jami lub SIP URI, takie jak : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

  • Kanoniczne URI: jami:3d1112ab2bb089370c0744a44bb0786418d40b lub sip:nnnnn@host:5060. Najprostsza forma URI. Nazwa zarejestrowana musi zostać rozwiązana, nie zawiera <> zawieszek ani nazwy wyświetlacza.

  • Identytet użytkownika: nazwisko zarejestrowane (preferencje) lub odciski palców klucza publicznego.

  • Nazwa wyświetlania lub Nazwa profilu: edytowana przez użytkownika nazwa profilu, np. Jean Dupont.

W przypadku wyświetlania kontaktu:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Jeśli nazwa wyświetlacza jest pusta, zamiast tego wyświetlana jest identyfikator użytkownika

  • Jeżeli obie linie mają tę samą treść, wyświetlana jest tylko pierwsza linia

  • Jeśli zdjęcie nie jest dostępne, a zarejestrowana nazwa (jami) lub nazwa wyświetlana (sip) jest dostępna, pierwsza litera tej nazwy może zostać użyta do wygenerowania symbolu zastępczego. W przeciwnym razie używany jest ogólny symbol zastępczy.

  • Jeżeli nie ma zdjęcia, można użyć przestrzeni z kolorem tła specyficznym dla Canonical URI:

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

Wartości kolorów pochodzą z palety materiałów: https://material.io/tools/color

! [références_couleurs_jami]