Identifikasi Jami
Ada banyak identifier di Jami. Kita perlu menyatukan nama identifier ini antara semua implementasi. Halaman ini merujuk berbagai jenis identifier yang digunakan di Jami dengan contoh yang relevan.
Jami Infohash atau Jami Key Fingerprint: cetakan jari kunci publik seperti
3d1112ab2bb089370c0744a44bb0786418d40b
Nama terdaftar: nama pengguna yang terkait dengan Jami Infohash di blockchain seperti
jeandupont
URI: sebuah Jami atau SIP URI seperti
jami:3d1112ab2bb089370c0744a44bb0786418d40b
ataujami:jeandupont
atau<sip:nnnnn@host:5060>
. Harus sesuai dengan [rfc3986]https://tools.ietf.org/html/rfc3986). Jika itu adalah SIP URI, itu harus sesuai dengan rfc3261#19.1.** URI kanonik**:
jami:3d1112ab2bb089370c0744a44bb0786418d40b
atausip:nnnnn@host:5060
. Bentuk URI yang paling disederhanakan. Nama terdaftar harus diatasi, tidak termasuk <> gelang atau nama tampilan. Diutamakan dengan skema (jami:
atausip:
atausips:
).ID pengguna: nama terdaftar (diutamakan) atau sidik jari kunci publik. Identifikasi pengguna untuk kunci publik akun.
Nama tampilan atau Nama profil: nama profil yang dapat diedit yang didefinisikan pengguna seperti
Jean Dupont
.
Saat menampilkan kontak:
_____
|photo| Display name or User ID
|_____| User ID
Jika nama Tampilan kosong, ID Pengguna ditampilkan sebagai gantinya
Jika kedua baris memiliki konten yang sama, hanya baris pertama yang ditampilkan
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.
Jika tidak ada foto yang tersedia, tempat pengendali dengan warna latar belakang khusus URI Canonical dapat digunakan:
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];
}
Nilai warna adalah dari palet bahan: https://material.io/tools/color