Pārlūkot izejas kodu

我的好友联系人真实名,通讯录是好友加星号

gongpm 10 gadi atpakaļ
vecāks
revīzija
9e2b0274f7

+ 10 - 32
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/FriendSortAdapter.java

@@ -10,10 +10,10 @@ import android.widget.ImageView;
 import android.widget.SectionIndexer;
 import android.widget.TextView;
 
-import com.xzjmyk.pm.activity.helper.AvatarHelper;
-import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.Friend;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
+import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
 import com.xzjmyk.pm.activity.util.ViewHolder;
 
 import java.util.HashMap;
@@ -70,49 +70,28 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
         if (position == getPositionForSection(section)) {
             isFrist = true;
         }
-//        if (isLog.get(position) == null || isLog.get(position).isEmpty()) {
-//            if (isFrist) {
-//                isLog.put(position, "true");
-//                RelativeLayout relativeLayout= (RelativeLayout) convertView.findViewById(R.id.rela);
-//                relativeLayout.setBackgroundColor(mContext.getResources().getColor(R.color.item_color1));
-//                if (relativeLayout!=null)
-//                ViewAlphaUtil.setViewAlpha(relativeLayout);
-//            } else {
-//                isLog.put(position, "false");
-//                convertView.setBackgroundColor(mContext.getResources().getColor(R.color.item_color2));
-//            }
-//
-//        } else {
-//            if (isLog.get(position).equals("true")) {
-//                convertView.setBackgroundColor(mContext.getResources().getColor(R.color.item_color1));
-//                ViewAlphaUtil.setViewAlpha(convertView);
-//            } else {
-//                convertView.setBackgroundColor(mContext.getResources().getColor(R.color.item_color2));
-//            }
-//        }
-
-//        if (isFrist) {
-//            convertView.setBackgroundColor(mContext.getResources().getColor(R.color.item_color1));
-//            ViewAlphaUtil.setViewAlpha(convertView);
-//        } else {
-//            convertView.setBackgroundColor(mContext.getResources().getColor(R.color.item_color2));
-//        }
-
         isFrist = !isFrist;
         TextView catagoryTitleTv = ViewHolder.get(convertView, R.id.catagory_title);
         ImageView avatar_img = ViewHolder.get(convertView, R.id.avatar_img);
         TextView nick_name_tv = ViewHolder.get(convertView, R.id.nick_name_tv);
         TextView des_tv = ViewHolder.get(convertView, R.id.des_tv);
+        ImageView img_tag_friend = ViewHolder.get(convertView, R.id.img_tag_friend);
         // 如果当前位置等于该分类首字母的Char的位置 ,则认为是第一次出现
         if (position == getPositionForSection(section)) {
             catagoryTitleTv.setVisibility(View.VISIBLE);
             catagoryTitleTv.setText(mSortFriends.get(position).getFirstLetter());
-//            ViewAlphaUtil.setViewAlpha(catagoryTitleTv,127);
+
         } else {
             catagoryTitleTv.setVisibility(View.GONE);
         }
+
         // 设置头像
         final Friend friend = mSortFriends.get(position).getBean();
+        if (friend.isFriend()) {
+            img_tag_friend.setVisibility(View.VISIBLE);
+        } else {
+            img_tag_friend.setVisibility(View.GONE);
+        }
         if (friend.getRoomFlag() == 0) {// 这是单个人
             if (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE)) {// 系统消息的头像
                 avatar_img.setImageResource(R.drawable.im_notice);
@@ -140,7 +119,6 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
             name = friend.getNickName();
         }
         nick_name_tv.setText(name);
-
         // 个性签名
         des_tv.setText(friend.getDescription());
         return convertView;

+ 250 - 241
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/Friend.java

@@ -12,293 +12,302 @@ import java.io.Serializable;
 
 @DatabaseTable
 public class Friend implements Serializable {
-	private static final long serialVersionUID = -6859528031175998594L;
-	public static final String ID_SYSTEM_MESSAGE = "10000";// 系统消息ID
-	public static final String ID_NEW_FRIEND_MESSAGE = "10001";// 新朋友消息 ID
-	public static final String ID_BLOG_MESSAGE = "10002";// 商务圈消息ID
-	public static final String ID_INTERVIEW_MESSAGE = "10004";// 面试中心ID(用于职位、初试、面试的推送)
-	public static final String ID_MUC_ROOM = "10005";// 群聊管理ID(群聊房间的推送)
+    private static final long serialVersionUID = -6859528031175998594L;
+    public static final String ID_SYSTEM_MESSAGE = "10000";// 系统消息ID
+    public static final String ID_NEW_FRIEND_MESSAGE = "10001";// 新朋友消息 ID
+    public static final String ID_BLOG_MESSAGE = "10002";// 商务圈消息ID
+    public static final String ID_INTERVIEW_MESSAGE = "10004";// 面试中心ID(用于职位、初试、面试的推送)
+    public static final String ID_MUC_ROOM = "10005";// 群聊管理ID(群聊房间的推送)
 
-	public static final String ID_ERP_PROCESS = "10006";// 待办事宜
-	public static final String ID_ERP_TASK = "10007";// 我的任务
-	public static final String ID_ERP_ZHIHUI = "10008";// 我的知会
+    public static final String ID_ERP_PROCESS = "10006";// 待办事宜
+    public static final String ID_ERP_TASK = "10007";// 我的任务
+    public static final String ID_ERP_ZHIHUI = "10008";// 我的知会
 
-	public static final String ID_ERP_NEWS = "10009";// 我的新闻
-	public static final String ID_ERP_NOTICE = "100010";// 我的通知
-	public static final String ID_ERP_GONGGAO = "100011";// 我的公告
+    public static final String ID_ERP_NEWS = "10009";// 我的新闻
+    public static final String ID_ERP_NOTICE = "100010";// 我的通知
+    public static final String ID_ERP_GONGGAO = "100011";// 我的公告
 
-	public static final String NICKNAME_SYSTEM_MESSAGE = "系统消息";// 系统消息ID
-	public static final String NICKNAME_NEW_FRIEND_MESSAGE = "新朋友消息";// 新朋友消息
-	public static final String NICKNAME_BLOG_MESSAGE = "商务圈消息";// 商务圈消息ID
-	public static final String NICKNAME_INTERVIEW_MESSAGE = "面试中心";// 面试中心ID
+    public static final String NICKNAME_SYSTEM_MESSAGE = "系统消息";// 系统消息ID
+    public static final String NICKNAME_NEW_FRIEND_MESSAGE = "新朋友消息";// 新朋友消息
+    public static final String NICKNAME_BLOG_MESSAGE = "商务圈消息";// 商务圈消息ID
+    public static final String NICKNAME_INTERVIEW_MESSAGE = "面试中心";// 面试中心ID
 
-	public static final String NICKNAME_ERP_PROCESS = "待审批流程";// 待办事宜
-	public static final String NICKNAME_ERP_TASK = "我的任务";// 我的任务
-	public static final String NICKNAME_ERP_ZHIHUI = "通知公告";// 我的知会
-	public static final String NICKNAME_ERP_NEWS = "新闻";// 新闻
-	public static final String NICKNAME_ERP_NOTICE= "通知";// 通知
-	public static final String NICKNAME_ERP_GONGGAO = "公告";// 公告
+    public static final String NICKNAME_ERP_PROCESS = "待审批流程";// 待办事宜
+    public static final String NICKNAME_ERP_TASK = "我的任务";// 我的任务
+    public static final String NICKNAME_ERP_ZHIHUI = "通知公告";// 我的知会
+    public static final String NICKNAME_ERP_NEWS = "新闻";// 新闻
+    public static final String NICKNAME_ERP_NOTICE = "通知";// 通知
+    public static final String NICKNAME_ERP_GONGGAO = "公告";// 公告
 
-	// -1:黑名单;0:陌生人;1:单方关注;2:互为好友;8:显示系统号;9:非显示系统号
-	public static final int STATUS_NO_SHOW_SYSTEM = 9;// 非显示系统号
-	public static final int STATUS_SYSTEM = 8;// 显示系统号
+    // -1:黑名单;0:陌生人;1:单方关注;2:互为好友;8:显示系统号;9:非显示系统号
+    public static final int STATUS_NO_SHOW_SYSTEM = 9;// 非显示系统号
+    public static final int STATUS_SYSTEM = 8;// 显示系统号
 
-	public static final int STATUS_FRIEND = 2;// 好友
-	public static final int STATUS_ATTENTION = 1;// 关注
-	public static final int STATUS_UNKNOW = 0;// 陌生人(不可能出现在好友表,只可能在新朋友消息表)
+    public static final int STATUS_FRIEND = 2;// 好友
+    public static final int STATUS_ATTENTION = 1;// 关注
+    public static final int STATUS_UNKNOW = 0;// 陌生人(不可能出现在好友表,只可能在新朋友消息表)
 
-	public static final int STATUS_BLACKLIST = -1;// 黑名单
-	public static final int STATUS_SELF = 9999;// 本人,特殊状态,在数据库中没有,在UI层判断是不是当前登陆者本人,显示控制不同表现
+    public static final int STATUS_BLACKLIST = -1;// 黑名单
+    public static final int STATUS_SELF = 9999;// 本人,特殊状态,在数据库中没有,在UI层判断是不是当前登陆者本人,显示控制不同表现
 
-	@DatabaseField(generatedId = true)
-	private int _id;
+    @DatabaseField(generatedId = true)
+    private int _id;
 
-	@DatabaseField(canBeNull = false)
-	private String ownerId; // 属于哪个用户的id
+    private boolean isFriend = false;
+    @DatabaseField(canBeNull = false)
+    private String ownerId; // 属于哪个用户的id
 
-	@DatabaseField(canBeNull = false)
-	private String userId; // 用户id或者聊天室id
+    @DatabaseField(canBeNull = false)
+    private String userId; // 用户id或者聊天室id
 
-	@DatabaseField(canBeNull = false)
-	@JSONField(name = "nickname")
-	private String nickName;// 用户昵称或者聊天室名称
+    @DatabaseField(canBeNull = false)
+    @JSONField(name = "nickname")
+    private String nickName;// 用户昵称或者聊天室名称
 
-	@DatabaseField
-	private String description;// 签名
+    @DatabaseField
+    private String description;// 签名
 
-	@DatabaseField
-	private int timeCreate;// 创建好友关系的时间
+    @DatabaseField
+    private int timeCreate;// 创建好友关系的时间
 
-	@DatabaseField(defaultValue = "0")
-	private int unReadNum; // 未读消息数量
+    @DatabaseField(defaultValue = "0")
+    private int unReadNum; // 未读消息数量
 
-	@DatabaseField
-	private String content;// 最后一条消息内容
+    @DatabaseField
+    private String content;// 最后一条消息内容
 
-	@DatabaseField
-	private int type;// 最后一条消息类型
+    @DatabaseField
+    private int type;// 最后一条消息类型
 
-	@DatabaseField
-	private int timeSend;// 最后一条消息发送时间
+    @DatabaseField
+    private int timeSend;// 最后一条消息发送时间
 
-	@DatabaseField(defaultValue = "0")
-	private int roomFlag;// 0朋友 1群组
+    @DatabaseField(defaultValue = "0")
+    private int roomFlag;// 0朋友 1群组
 
-	@DatabaseField(defaultValue = "0")
-	private int companyId; // 0表示不是公司
+    @DatabaseField(defaultValue = "0")
+    private int companyId; // 0表示不是公司
 
-	@DatabaseField
-	private int status;// -1:黑名单;0:陌生人;1:单方关注;2:互为好友;8:系统号;9:非显示系统号
+    @DatabaseField
+    private int status;// -1:黑名单;0:陌生人;1:单方关注;2:互为好友;8:系统号;9:非显示系统号
 
-	@DatabaseField
-	private String privacy;// 隐私
+    @DatabaseField
+    private String privacy;// 隐私
 
-	@DatabaseField
-	private String remarkName;// 备注
+    @DatabaseField
+    private String remarkName;// 备注
 
-	@DatabaseField
-	private int version;// 本地表的版本
+    @DatabaseField
+    private int version;// 本地表的版本
 
-	@DatabaseField
-	private String roomId;// 仅仅当roomFlag==1,为群组的时候才有效
+    @DatabaseField
+    private String roomId;// 仅仅当roomFlag==1,为群组的时候才有效
 
-	@DatabaseField
-	private String roomCreateUserId;// 仅仅当roomFlag==1,为群组的时候才有效
+    @DatabaseField
+    private String roomCreateUserId;// 仅仅当roomFlag==1,为群组的时候才有效
 
-	@DatabaseField
-	private String roomMyNickName;// 我在这个房间的昵称
+    @DatabaseField
+    private String roomMyNickName;// 我在这个房间的昵称
 
-	@DatabaseField
-	private int roomTalkTime;// wi在这个房间的禁言时间
+    @DatabaseField
+    private int roomTalkTime;// wi在这个房间的禁言时间
 
-	public String getRoomId() {
-		return roomId;
-	}
+    public String getRoomId() {
+        return roomId;
+    }
 
-	public void setRoomId(String roomId) {
-		this.roomId = roomId;
-	}
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
 
-	public String getRoomCreateUserId() {
-		return roomCreateUserId;
-	}
+    public String getRoomCreateUserId() {
+        return roomCreateUserId;
+    }
 
-	public void setRoomCreateUserId(String roomCreateUserId) {
-		this.roomCreateUserId = roomCreateUserId;
-	}
+    public void setRoomCreateUserId(String roomCreateUserId) {
+        this.roomCreateUserId = roomCreateUserId;
+    }
 
-	public String getRemarkName() {
-		return remarkName;
-	}
+    public boolean isFriend() {
+        return isFriend;
+    }
 
-	public void setRemarkName(String remarkName) {
-		this.remarkName = remarkName;
-	}
+    public void setFriend(boolean friend) {
+        isFriend = friend;
+    }
 
-	public int get_id() {
-		return _id;
-	}
+    public String getRemarkName() {
+        return remarkName;
+    }
 
-	public void set_id(int _id) {
-		this._id = _id;
-	}
+    public void setRemarkName(String remarkName) {
+        this.remarkName = remarkName;
+    }
 
-	public String getOwnerId() {
-		return ownerId;
-	}
+    public int get_id() {
+        return _id;
+    }
 
-	public void setOwnerId(String ownerId) {
-		this.ownerId = ownerId;
-	}
+    public void set_id(int _id) {
+        this._id = _id;
+    }
 
-	public String getUserId() {
-		return userId;
-	}
+    public String getOwnerId() {
+        return ownerId;
+    }
 
-	public void setUserId(String userId) {
-		this.userId = userId;
-	}
+    public void setOwnerId(String ownerId) {
+        this.ownerId = ownerId;
+    }
 
-	public String getNickName() {
-		return nickName;
-	}
+    public String getUserId() {
+        return userId;
+    }
 
-	public void setNickName(String nickname) {
-		this.nickName = nickname;
-	}
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
 
-	public String getDescription() {
-		return description;
-	}
+    public String getNickName() {
+        return nickName;
+    }
 
-	public void setDescription(String description) {
-		this.description = description;
-	}
+    public void setNickName(String nickname) {
+        this.nickName = nickname;
+    }
 
-	public int getTimeCreate() {
-		return timeCreate;
-	}
+    public String getDescription() {
+        return description;
+    }
 
-	public void setTimeCreate(int timeCreate) {
-		this.timeCreate = timeCreate;
-	}
+    public void setDescription(String description) {
+        this.description = description;
+    }
 
-	public int getUnReadNum() {
-		return unReadNum;
-	}
+    public int getTimeCreate() {
+        return timeCreate;
+    }
 
-	public void setUnReadNum(int unReadNum) {
-		this.unReadNum = unReadNum;
-	}
-
-	public String getContent() {
-		return content;
-	}
-
-	public void setContent(String content) {
-		this.content = content;
-	}
-
-	public int getType() {
-		return type;
-	}
-
-	public void setType(int type) {
-		this.type = type;
-	}
-
-	public int getTimeSend() {
-		return timeSend;
-	}
-
-	public void setTimeSend(int timeSend) {
-		this.timeSend = timeSend;
-	}
-
-	public int getRoomFlag() {
-		return roomFlag;
-	}
-
-	public void setRoomFlag(int roomFlag) {
-		this.roomFlag = roomFlag;
-	}
-
-	public int getCompanyId() {
-		return companyId;
-	}
-
-	public void setCompanyId(int companyId) {
-		this.companyId = companyId;
-	}
-
-	public int getStatus() {
-		return status;
-	}
-
-	public void setStatus(int status) {
-		this.status = status;
-	}
-
-	public String getPrivacy() {
-		return privacy;
-	}
-
-	public void setPrivacy(String privacy) {
-		this.privacy = privacy;
-	}
-
-	public int getVersion() {
-		return version;
-	}
-
-	public void setVersion(int version) {
-		this.version = version;
-	}
-
-	public String getRoomMyNickName() {
-		return roomMyNickName;
-	}
-
-	public void setRoomMyNickName(String roomMyNickName) {
-		this.roomMyNickName = roomMyNickName;
-	}
-
-	public int getRoomTalkTime() {
-		return roomTalkTime;
-	}
-
-	public void setRoomTalkTime(int roomTalkTime) {
-		this.roomTalkTime = roomTalkTime;
-	}
-
-	/* 快捷方法,获取在好友列表中显示的名称 */
-	public String getShowName() {
-		if (!TextUtils.isEmpty(remarkName)) {
-			return remarkName.trim();
-		} else if (!TextUtils.isEmpty(nickName)) {
-			return nickName.trim();
-		} else {
-			return "";
-		}
-	}
-
-	/**
-	 * 快捷方法
-	 * 
-	 * @param userId
-	 * @param nickName
-	 * @return
-	 */
-	public static String getShowName(String userId, String nickName) {
-		User loginUser = MyApplication.getInstance().mLoginUser;
-		if (loginUser == null || TextUtils.isEmpty(loginUser.getUserId())) {
-			return nickName;
-		}
-		String showName = FriendDao.getInstance().getRemarkName(loginUser.getUserId(), userId);
-		if (TextUtils.isEmpty(showName)) {
-			showName = nickName;
-		}
-		return showName;
-	}
+    public void setTimeCreate(int timeCreate) {
+        this.timeCreate = timeCreate;
+    }
+
+    public int getUnReadNum() {
+        return unReadNum;
+    }
+
+    public void setUnReadNum(int unReadNum) {
+        this.unReadNum = unReadNum;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public int getTimeSend() {
+        return timeSend;
+    }
+
+    public void setTimeSend(int timeSend) {
+        this.timeSend = timeSend;
+    }
+
+    public int getRoomFlag() {
+        return roomFlag;
+    }
+
+    public void setRoomFlag(int roomFlag) {
+        this.roomFlag = roomFlag;
+    }
+
+    public int getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(int companyId) {
+        this.companyId = companyId;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public String getPrivacy() {
+        return privacy;
+    }
+
+    public void setPrivacy(String privacy) {
+        this.privacy = privacy;
+    }
+
+    public int getVersion() {
+        return version;
+    }
+
+    public void setVersion(int version) {
+        this.version = version;
+    }
+
+    public String getRoomMyNickName() {
+        return roomMyNickName;
+    }
+
+    public void setRoomMyNickName(String roomMyNickName) {
+        this.roomMyNickName = roomMyNickName;
+    }
+
+    public int getRoomTalkTime() {
+        return roomTalkTime;
+    }
+
+    public void setRoomTalkTime(int roomTalkTime) {
+        this.roomTalkTime = roomTalkTime;
+    }
+
+    /* 快捷方法,获取在好友列表中显示的名称 */
+    public String getShowName() {
+        if (!TextUtils.isEmpty(remarkName)) {
+            return remarkName.trim();
+        } else if (!TextUtils.isEmpty(nickName)) {
+            return nickName.trim();
+        } else {
+            return "";
+        }
+    }
+
+    /**
+     * 快捷方法
+     *
+     * @param userId
+     * @param nickName
+     * @return
+     */
+    public static String getShowName(String userId, String nickName) {
+        User loginUser = MyApplication.getInstance().mLoginUser;
+        if (loginUser == null || TextUtils.isEmpty(loginUser.getUserId())) {
+            return nickName;
+        }
+        String showName = FriendDao.getInstance().getRemarkName(loginUser.getUserId(), userId);
+        if (TextUtils.isEmpty(showName)) {
+            showName = nickName;
+        }
+        return showName;
+    }
 
 }

+ 6 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java

@@ -117,7 +117,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         @Override
         public void onReceive(Context context, Intent intent) {
             if ("home".equals(intent.getStringExtra("falg"))) {
-                Log.i("gongpengming", "onReceive");
                 upDataFriend();
                 loadData();
             }
@@ -127,7 +126,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     private View headview;
 
     public void onResult() {
-        Log.i("gongpengming", "onResult");
         upDataFriend();
         loadData();
     }
@@ -189,8 +187,8 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         List<EmployeesEntity> emList = manager.select_getEmployee(
                 new String[]{master},
                 "whichsys=?");
-        Log.i("gongpengming", "emList.size()=" + emList.size());
         List<Friend> friends = new ArrayList<>();
+        boolean isf = false;
         for (int i = 0; i < emList.size(); i++) {//企业通讯人员
             // friends.add(EnterChatAction(emList.get(i)));
             String fId = String.valueOf(emList.get(i).getEm_IMID());
@@ -200,15 +198,19 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                         //改昵称
                         friend.get(j).setNickName(emList.get(i).getEM_NAME());
                         friend.get(j).setRemarkName(emList.get(i).getEM_NAME());//备注
+                        FriendDao.getInstance().createOrUpdateFriend(friend.get(j));
                         break;
                     } else if ((j == (friend.size() - 1)) && !(fId.equals(friend.get(j).getUserId()))) {
                         friends.add(EnterChatAction(emList.get(i)));
                     }
                 }
-            }else{
+            } else {
                 friends.add(EnterChatAction(emList.get(i)));
             }
         }
+        //下面两行待优化
+        for (int i = 0; i < friend.size(); i++) friend.get(i).setFriend(true);
+        for (int i = 0; i < friend.size(); i++) friends.get(i).setFriend(false);
         friend.addAll(friends);
     }
 

BIN
WeiChat/src/main/res/drawable-hdpi/is_friend.png


+ 9 - 1
WeiChat/src/main/res/layout/row_sort_friend.xml

@@ -58,7 +58,15 @@
                 android:ellipsize="end"
                 android:singleLine="true"
                 android:textColor="@color/text_hine"
-                android:textSize="14sp" />
+                android:textSize="14sp"
+                android:visibility="gone" />
+
+            <ImageView
+                android:id="@+id/img_tag_friend"
+                android:visibility="gone"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/is_friend" />
         </LinearLayout>
     </RelativeLayout>
 

+ 1 - 1
build.gradle

@@ -5,7 +5,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:1.3.0'
+        classpath 'com.android.tools.build:gradle:2.0.0'
     }
 }