Ταυτοποιητές Jami

Υπάρχουν πολλοί αναγνωριστικοί στα Jami. Πρέπει να ενοποιήσουμε τη ονομασία αυτών των αναγνωριστικών μεταξύ όλων των εφαρμογών.

  • Jami Infohash ή Jami Public Key Fingerprint: ένα αποτύπωμα από δημόσιο κλειδί όπως 3d1112ab2bb089370c0744a44bb0786418d40b

  • Καταχωρισμένο όνομα: όνομα χρήστη που συνδέεται με μια Jami Infohash στο blockchain όπως jeandupont

  • URI: ένα Jami ή SIP URI όπως jami:3d1112ab2bb089370c0744a44bb0786418d40b ή jami:jeandupont ή <sip:nnnnn@host:5060>. Πρέπει να συμμορφώνεται με [rfc3986]https://tools.ietf.org/html/rfc3986).

  • ** Κανονικό URI**: jami:3d1112ab2bb089370c0744a44bb0786418d40b ή sip:nnnnn@host:5060. Η πιο απλουστευμένη μορφή του URI. Το εγγεγραμμένο όνομα πρέπει να διαλυθεί, δεν περιλαμβάνει <> δέσμους ή όνομα εμφάνισης. Προπαραρτημένο με το σχήμα (jami: ή sip: ή sips:).

  • Παραγνωριστικό χρήστη: εγγεγραμμένο όνομα (προτιθέμενο) ή αποτύπωμα του δημόσιου κλειδιού.

  • Νόμος οθόνης ή Νόμος προφίλ: ένα επεξεργαζόμενο όνομα προφίλ που καθορίζεται από τον χρήστη, όπως Jean Dupont.

Κατά την εμφάνιση επαφής:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • Εάν το όνομα της οθόνης είναι κενό, εμφανίζεται το αναγνωριστικό χρήστη αντί αυτού

  • Εάν και οι δύο γραμμές έχουν το ίδιο περιεχόμενο, εμφανίζεται μόνο η πρώτη γραμμή

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

  • Εάν δεν υπάρχει φωτογραφία, μπορεί να χρησιμοποιηθεί ένας διαστημικός διακομιστής με χρώμα φόντου που είναι ειδικό για το 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];
}

Οι τιμές χρωμάτων είναι από την παλέτα υλικών: https://material.io/tools/color

! [références_couleurs_jami]