贾米标识符

贾米中有许多标识符.我们需要在所有实现中统一这些标识符的命名.本页面引用了相关例子的各种类型的标识符.

  • Jami InfohashJami公钥指纹:公钥指纹如: 3d1112ab2bb089370c0744a44bb0786418d40b

  • 注册名称:在区块链上与一个 Jami Infohash 相关的用户名,例如 jeandupont

  • URI:一个 Jami或SIP URI如: jami:3d1112ab2bb089370c0744a44bb0786418d40bjami:jeandupont<sip:nnnnn@host:5060>.必须符合 [rfc3986]https://tools.ietf.org/html/rfc3986).如果是SIP URI,则必须符合 [rfc3261#19.1]https://tools.ietf.org/html/rfc3261#第-19.1).

  • 可нони化URI: jami:3d1112ab2bb089370c0744a44bb0786418d40bsip:nnnnn@host:5060. URI的最简单形式.注册名称必须解决,不包括 <>括号或显示名称.前置于方案 (jami:sip:sips:).

  • *用户身份:注册名称 (优先) 或公钥指纹. 帐户公钥的用户面向标识符.

  • 显示名称个人资料名称:可编辑的用户定义个人资料名称,如 Jean Dupont.

在显示联系人时:

 _____
|photo|   Display name or User ID
|_____|   User ID
  • 如果显示名称是空的,则显示用户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

们的照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片,照片