package com.netease.nim.uikit.uinfo; import com.netease.nim.uikit.NimUIKit; import com.netease.nim.uikit.cache.NimUserInfoCache; import com.netease.nim.uikit.cache.TeamDataCache; import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; import java.util.List; public class UserInfoHelper { private static UserInfoObservable userInfoObservable; // 获取用户显示在标题栏和最近联系人中的名字 public static String getUserTitleName(String id, SessionTypeEnum sessionType) { if (sessionType == SessionTypeEnum.P2P) { if (NimUIKit.getAccount().equals(id)) { return "我的电脑"; } else { return NimUserInfoCache.getInstance().getUserDisplayName(id); } } else if (sessionType == SessionTypeEnum.Team) { return TeamDataCache.getInstance().getTeamName(id); } return id; } /** * 注册用户资料变化观察者。<br> * 注意:不再观察时(如Activity destroy后),要unregister,否则会造成资源泄露 * @param observer 观察者 */ public static void registerObserver(UserInfoObservable.UserInfoObserver observer) { if (userInfoObservable == null) { userInfoObservable = new UserInfoObservable(NimUIKit.getContext()); } userInfoObservable.registerObserver(observer); } /** * 注销用户资料变化观察者。 * @param observer 观察者 */ public static void unregisterObserver(UserInfoObservable.UserInfoObserver observer) { if (userInfoObservable != null) { userInfoObservable.unregisterObserver(observer); } } /** * 当用户资料发生改动时,请调用此接口,通知更新UI * @param accounts 有用户信息改动的帐号列表 */ public static void notifyChanged(List<String> accounts) { if (userInfoObservable != null) { userInfoObservable.notifyObservers(accounts); } } }