Преглед изворни кода

Merge branch 'developer_master' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer_master

LiuJie пре 10 година
родитељ
комит
0a919e038d

+ 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;
+    }
 
 }

+ 17 - 17
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -28,42 +28,42 @@ import com.baidu.android.pushservice.PushManager;
 import com.baidu.autoupdatesdk.BDAutoUpdateSDK;
 import com.baidu.autoupdatesdk.UICheckUpdateCallback;
 import com.xzjmyk.pm.activity.AppConfig;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.NetWorkObservable;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.User;
 import com.xzjmyk.pm.activity.bean.circle.CircleMessage;
 import com.xzjmyk.pm.activity.bean.message.NewFriendMessage;
 import com.xzjmyk.pm.activity.broadcast.CardcastUiUpdateUtil;
+import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.db.dao.UserDao;
+import com.xzjmyk.pm.activity.helper.LoginHelper;
+import com.xzjmyk.pm.activity.ui.account.LoginActivity;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.cardcast.AttentionFragment;
 import com.xzjmyk.pm.activity.ui.cardcast.FriendFragment;
 import com.xzjmyk.pm.activity.ui.cardcast.RoomFragment;
+import com.xzjmyk.pm.activity.ui.circle.BusinessCircleFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.LinksManFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.WorksFragment;
+import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.groupchat.GroupChatFragment;
 import com.xzjmyk.pm.activity.ui.me.MeFragment;
+import com.xzjmyk.pm.activity.ui.me.ScreenListener;
 import com.xzjmyk.pm.activity.ui.message.MessageFragment;
+import com.xzjmyk.pm.activity.ui.nearby.NearbyFragment;
+import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.DivideRadioGroup;
 import com.xzjmyk.pm.activity.volley.ArrayResult;
+import com.xzjmyk.pm.activity.volley.FastVolley;
+import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 import com.xzjmyk.pm.activity.xmpp.CoreService;
 import com.xzjmyk.pm.activity.xmpp.ListenerManager;
 import com.xzjmyk.pm.activity.xmpp.listener.AuthStateListener;
-import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.User;
-import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
-import com.xzjmyk.pm.activity.helper.LoginHelper;
-import com.xzjmyk.pm.activity.ui.account.LoginActivity;
-import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.circle.BusinessCircleFragment;
-import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
-import com.xzjmyk.pm.activity.ui.me.ScreenListener;
-import com.xzjmyk.pm.activity.ui.nearby.NearbyFragment;
-import com.xzjmyk.pm.activity.util.Constants;
-import com.xzjmyk.pm.activity.util.ToastUtil;
-import com.xzjmyk.pm.activity.volley.FastVolley;
-import com.xzjmyk.pm.activity.volley.Result;
 
 import java.util.HashMap;
 import java.util.List;
@@ -327,20 +327,20 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                 removeNeedUserFragment(false);
 
             } else if (action.equals(LoginHelper.ACTION_CONFLICT)) {
+
                 // 改变用户状态
                 MyApplication.getInstance().mUserStatus = LoginHelper.STATUS_USER_TOKEN_CHANGE;
                 mCoreService.logout();
-                // mFindRb.setChecked(true);
                 removeNeedUserFragment(true);
                 cancelUserCheckIfExist();
                 // 弹出对话框
                 startActivity(new Intent(MainActivity.this, UserCheckedActivity.class));
-
                 if (Build.VERSION.SDK_INT == Build.VERSION_CODES.HONEYCOMB) {
                     mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_WITH_HOME);
                 } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
                     mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
                 }
+
             } else if (action.equals(LoginHelper.ACTION_NEED_UPDATE)) {
                 // mFindRb.setChecked(true);
                 removeNeedUserFragment(true);

+ 3 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/UserCheckedActivity.java

@@ -57,8 +57,11 @@ public class UserCheckedActivity extends ActionBackActivity {
 			mTitleTv.setText(R.string.overdue_title);
 			mDesTv.setText(R.string.deficiency_data_des);
 		} else if (status == LoginHelper.STATUS_USER_TOKEN_CHANGE) {
+			//TODO 下线通知
 			mTitleTv.setText(R.string.logout_title);
 			mDesTv.setText(R.string.logout_des);
+
+
 		} else {// 其他的状态,一般不会出现,为了容错,加个判断
 			loginAgain();
 			return;

+ 14 - 5
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);
     }
 
@@ -366,7 +368,11 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 try {
-                    friend = mSortFriends.get((int) id).getBean();
+                    if (isSeaching)
+                        friend = sortFrientSeach.get((int) id).getBean();
+                    else
+                        friend = mSortFriends.get((int) id).getBean();
+
                 } catch (ArrayIndexOutOfBoundsException e) {
                     return;
                 }
@@ -404,7 +410,10 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         mProgressDialog = ProgressDialogUtil.init(getActivity(), null, getString(R.string.please_wait));
     }
 
+    private boolean isSeaching = false;
+
     private void goneView(boolean b) {
+        isSeaching = b;
         if (b) {
             my_data_rl.setVisibility(View.GONE);
             // my_friends_rl.setVisibility(View.GONE);

+ 14 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -311,6 +311,19 @@ public class MessageFragment extends EasyFragment {
         mActivity = (BaseActivity) getActivity();
     }
 
+    public void setFriendName(List<Friend> friends, String id) {
+        List<Friend> f = FriendDao.getInstance().getFriends(id);
+        for (int i = 0; i < friends.size(); i++) {
+            for (int j = 0; j < f.size(); j++) {
+                if (friends.get(i).get_id() == f.get(j).get_id()) {
+                    friends.get(i).setNickName(f.get(j).getNickName());
+                    friends.get(i).setRemarkName(f.get(j).getRemarkName());
+                    break;
+                }
+            }
+        }
+    }
+
     /**
      * 请求加载新的筛选条件的数据
      * <p/>
@@ -323,6 +336,7 @@ public class MessageFragment extends EasyFragment {
                 String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
                 long startTime = System.currentTimeMillis();
                 final List<Friend> friends = FriendDao.getInstance().getNearlyFriendMsg(mLoginUserId);
+                setFriendName(friends, mLoginUserId);
                 long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
                 if (delayTime < 0) {
                     delayTime = 0;

+ 107 - 103
WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/XReconnectionManager.java

@@ -130,7 +130,8 @@ public class XReconnectionManager extends AbstractConnectionListener {
 							}
 						} else if (checkTokenStatus == 1) {// 表示检查成功Token过期(或出现不能继续请求Token状态的异常),停止重新登陆
 							doReconnecting = false;
-							conflict();
+							//TODO 关闭自动登录  可能出现账号异常情况
+//							conflict();
 						} else if (checkTokenStatus == 2) {// 2、表示检查成功,Token没有改变,可以继续下面的重新登陆
 							break;
 						}
@@ -185,128 +186,131 @@ public class XReconnectionManager extends AbstractConnectionListener {
 	 * @return
 	 */
 	private int syncCheckToken() {// 同步网络请求Token
-		if (CoreService.DEBUG)
+		if (CoreService.DEBUG) {
 			Log.d(CoreService.TAG, "开始重新登陆前的 Token 状态检查");
-		Log.d("wang","开始重新登陆前的 Token 状态检查");
-		String requestUrl = MyApplication.getInstance().getConfig().USER_LOGIN_AUTO;
-		if (requestUrl == null) {
-			return 1;
-		}
-		HttpURLConnection httpConn = null;
-		DataOutputStream out = null;
-		InputStream is = null;
-		try {
-			URL url = new URL(requestUrl);
-			httpConn = (HttpURLConnection) url.openConnection();
-			httpConn.setDoOutput(true);
-			httpConn.setDoInput(true);
-			httpConn.setConnectTimeout(5 * 1000);
-			httpConn.setReadTimeout(5 * 1000);
-			httpConn.setRequestMethod("POST");
-			httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
-			out = new DataOutputStream(httpConn.getOutputStream());
-			// 参数
-			String access_token = MyApplication.getInstance().mAccessToken;
-			if (TextUtils.isEmpty(access_token)) {
-				access_token = UserSp.getInstance(mContext).getAccessToken(null);
-			}
+			Log.d("wang", "开始重新登陆前的 Token 状态检查");
+			String requestUrl = MyApplication.getInstance().getConfig().USER_LOGIN_AUTO;
+			if (requestUrl == null) {
+				Log.i("gongpengming", "requestUrl 为空");
 
-			if (TextUtils.isEmpty(access_token)) {
 				return 1;
 			}
+			HttpURLConnection httpConn = null;
+			DataOutputStream out = null;
+			InputStream is = null;
+			try {
+				URL url = new URL(requestUrl);
+				httpConn = (HttpURLConnection) url.openConnection();
+				httpConn.setDoOutput(true);
+				httpConn.setDoInput(true);
+				httpConn.setConnectTimeout(5 * 1000);
+				httpConn.setReadTimeout(5 * 1000);
+				httpConn.setRequestMethod("POST");
+				httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
+				out = new DataOutputStream(httpConn.getOutputStream());
+				// 参数
+				String access_token = MyApplication.getInstance().mAccessToken;
+				if (TextUtils.isEmpty(access_token)) {
+					access_token = UserSp.getInstance(mContext).getAccessToken(null);
+				}
 
-			String serial = DeviceInfoUtil.getDeviceId(mContext);
-			if (TextUtils.isEmpty(serial)) {
-				return 1;
-			}
-			if (CoreService.DEBUG) {
-				Log.d(CoreService.TAG, "requestUrl:" + requestUrl);
-				Log.d(CoreService.TAG, "access_token:" + access_token);
-				Log.d(CoreService.TAG, "serial:" + serial);
-			}
+				if (TextUtils.isEmpty(access_token)) {
+					return 1;
+				}
 
-			StringBuilder sb = new StringBuilder();
-			sb.append("access_token=" + access_token + "&");
-			String user = ((XMPPTCPConnection) mConnection).getDirectUser();
-			Log.d("wang","user..."+ user);
-			if (user == null) {
-				Log.d("wang","user == null");
-				return 1;
-			}
-			sb.append("userId=" + StringUtils.parseName(user) + "&");
-			sb.append("serial=" + serial);
-			out.write(sb.toString().getBytes("UTF-8"));
-			out.flush();
-
-			int statusCode = httpConn.getResponseCode();
-			if (statusCode != 200) {
-				return 0;
-			}
-			is = httpConn.getInputStream();
-			if (is == null) {
-				return 0;
-			}
-			StringBuffer buffer = new StringBuffer();
-			int len = -1;
-			byte[] data = new byte[1024];
-			try {
-				while ((len = is.read(data)) != -1) {
-					buffer.append(new String(data, 0, len));
+				String serial = DeviceInfoUtil.getDeviceId(mContext);
+				if (TextUtils.isEmpty(serial)) {
+					return 1;
+				}
+				if (CoreService.DEBUG) {
+					Log.d(CoreService.TAG, "requestUrl:" + requestUrl);
+					Log.d(CoreService.TAG, "access_token:" + access_token);
+					Log.d(CoreService.TAG, "serial:" + serial);
 				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			String result = buffer.toString();
-			if (CoreService.DEBUG) {
-				Log.d(CoreService.TAG, "检查状态result:" + result);
-			}
 
-			if (TextUtils.isEmpty(result)) {
-				Log.d("wang","result==null");
-				return 0;
-			}
+				StringBuilder sb = new StringBuilder();
+				sb.append("access_token=" + access_token + "&");
+				String user = ((XMPPTCPConnection) mConnection).getDirectUser();
+				Log.d("wang", "user..." + user);
+				if (user == null) {
+					Log.d("wang", "user == null");
+					return 1;
+				}
+				sb.append("userId=" + StringUtils.parseName(user) + "&");
+				sb.append("serial=" + serial);
+				out.write(sb.toString().getBytes("UTF-8"));
+				out.flush();
 
-			try {
-				JSONObject jsonObject = JSON.parseObject(result);
-				int resultCode = jsonObject.getIntValue(Result.RESULT_CODE);
-				if (resultCode != 1) {
+				int statusCode = httpConn.getResponseCode();
+				if (statusCode != 200) {
+					return 0;
+				}
+				is = httpConn.getInputStream();
+				if (is == null) {
+					return 0;
+				}
+				StringBuffer buffer = new StringBuffer();
+				int len = -1;
+				byte[] data = new byte[1024];
+				try {
+					while ((len = is.read(data)) != -1) {
+						buffer.append(new String(data, 0, len));
+					}
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+				String result = buffer.toString();
+				if (CoreService.DEBUG) {
+					Log.d(CoreService.TAG, "检查状态result:" + result);
+				}
+
+				if (TextUtils.isEmpty(result)) {
+					Log.d("wang", "result==null");
 					return 0;
 				}
 
-				LoginAuto loginAuto = JSON.parseObject(jsonObject.getString(Result.DATA), LoginAuto.class);
-				if (loginAuto != null) {// 判断时候要继续重新登陆
-					int tokenExists = loginAuto.getTokenExists();// 1=令牌存在、0=令牌不存在
-					int serialStatus = loginAuto.getSerialStatus();// 1=没有设备号、2=设备号一致、3=设备号不一致
-					if (serialStatus == 2) {// 设备号一致,说明没有切换过设备
-						if (tokenExists == 1) {// Token存在,
-							return 2;
-						} else {// Token 不存在
+				try {
+					JSONObject jsonObject = JSON.parseObject(result);
+					int resultCode = jsonObject.getIntValue(Result.RESULT_CODE);
+					if (resultCode != 1) {
+						return 0;
+					}
+
+					LoginAuto loginAuto = JSON.parseObject(jsonObject.getString(Result.DATA), LoginAuto.class);
+					if (loginAuto != null) {// 判断时候要继续重新登陆
+						int tokenExists = loginAuto.getTokenExists();// 1=令牌存在、0=令牌不存在
+						int serialStatus = loginAuto.getSerialStatus();// 1=没有设备号、2=设备号一致、3=设备号不一致
+						if (serialStatus == 2) {// 设备号一致,说明没有切换过设备
+							if (tokenExists == 1) {// Token存在,
+								return 2;
+							} else {// Token 不存在
+								return 1;
+							}
+						} else {// 设备号不一致,那么就是切换过手机
 							return 1;
 						}
-					} else {// 设备号不一致,那么就是切换过手机
-						return 1;
+					} else {
+						return 0;
 					}
-				} else {
-					return 0;
+				} catch (Exception e) {
+					e.printStackTrace();
 				}
 			} catch (Exception e) {
 				e.printStackTrace();
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		} finally {
-			try {
-				if (out != null) {
-					out.close();
+			} finally {
+				try {
+					if (out != null) {
+						out.close();
+					}
+					if (is != null) {
+						is.close();
+					}
+				} catch (IOException e) {
+					e.printStackTrace();
 				}
-				if (is != null) {
-					is.close();
+				if (httpConn != null) {
+					httpConn.disconnect();
 				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			if (httpConn != null) {
-				httpConn.disconnect();
 			}
 		}
 		return 0;

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'
     }
 }