Jami-Identifikatoren

Es gibt viele Identifikatoren in Jami. Wir müssen die Benennung dieser Identifikatoren zwischen allen Implementierungen vereinen. Diese Seite bezieht sich auf verschiedene Arten von Identifikatoren, die in Jami verwendet werden, mit relevanten Beispielen.

  • Jami Infohash oder Jami Public Key Fingerabdruck: ein Fingerabdruck mit öffentlichen Schlüsseln wie 3d1112ab2bb089370c0744a44bb0786418d40b

  • Registrierte Name: ein Benutzername, das mit einem Jami Infohash auf der Blockchain verbunden ist, wie jeandupont

  • URI: ein Jami oder SIP URI wie jami:3d1112ab2bb089370c0744a44bb0786418d40b oder jami:jeandupont oder <sip:nnnnn@host:5060>. muss mit [rfc3986] (https://tools.ietf.org/html/rfc3986) übereinstimmen. Wenn es sich um ein SIP URI handelt, muss es mit [rfc3261#19.1] übereinstimmen.

  • Kanonischer URI: jami:3d1112ab2bb089370c0744a44bb0786418d40b oder sip:nnnnn@host:5060. Die vereinfachteste Form des URI. Der registrierte Name muss gelöst werden, enthält keine <> Halter oder Anzeigennamen. Vorgezeichnet mit dem Schema (jami: oder sip: oder sips:).

  • Benutzer-ID: registrierte Name (vorzuziehen) oder Fingerabdruck mit öffentlichem Schlüssel. Benutzer-gegebenen Identifikator für einen öffentlichen Schlüssel des Kontos.

  • Displayname oder Profilname: ein bearbeitbarer benutzerdefinierter Profilname wie Jean Dupont.

Bei der Anzeige eines Kontakts:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Wenn der Name des Displays leer ist, wird die Benutzer-ID stattdessen angezeigt

  • Wenn beide Zeilen denselben Inhalt haben, wird nur die erste Zeile angezeigt

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

  • Wenn kein Foto verfügbar ist, kann ein Platzhalter mit einer Canonical URI-spezifischen Hintergrundfarbe verwendet werden:

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

Farbwerte stammen aus der Materialpalette: https://material.io/tools/color

! [références_couleurs_jami]