Ταυτοποιητές 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]