Quellcode durchsuchen

添加订阅号在messagefragment

gongpm vor 9 Jahren
Ursprung
Commit
40c3d31f79

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/message/SortSubsrciprion.java

@@ -5,9 +5,9 @@ import java.util.ArrayList;
 /**
  * Created by gongpm on 2016/6/14.
  */
-public class SortSubsrciprion   {
+public class SortSubsrciprion {
     public int num_id;
     public ArrayList<SubscriptionMessage> beans;
-
+    public long tiem;
 
 }

+ 18 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/message/SubscriptionMessage.java

@@ -14,6 +14,24 @@ public class SubscriptionMessage {
     private int STATUS_;      //阅读状态
     private int EMP_ID_;
     private int RN;
+    private String SONTITLE_;
+    private String SUMDATA_;
+
+    public String getSONTITLE_() {
+        return SONTITLE_;
+    }
+
+    public void setSONTITLE_(String SONTITLE_) {
+        this.SONTITLE_ = SONTITLE_;
+    }
+
+    public String getSUMDATA_() {
+        return SUMDATA_;
+    }
+
+    public void setSUMDATA_(String SUMDATA_) {
+        this.SUMDATA_ = SUMDATA_;
+    }
 
     public int getID_() {
         return ID_;

Datei-Diff unterdrückt, da er zu groß ist
+ 537 - 537
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/FriendDao.java


+ 121 - 324
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NoticeMenuActivity.java

@@ -1,386 +1,183 @@
 package com.xzjmyk.pm.activity.ui.erp.activity;
 
-import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
+import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.handmark.pulltorefresh.library.PullToRefreshBase;
-import com.roamer.slidelistview.SlideBaseAdapter;
-import com.roamer.slidelistview.SlideListView;
-import com.xzjmyk.pm.activity.bean.message.ChatMessage;
-import com.xzjmyk.pm.activity.db.dao.ChatMessageDao;
-import com.xzjmyk.pm.activity.db.dao.FriendDao;
-import com.xzjmyk.pm.activity.helper.AvatarHelper;
-import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
-import com.xzjmyk.pm.activity.sortlist.PingYinUtil;
-import com.xzjmyk.pm.activity.util.HtmlUtils;
-import com.xzjmyk.pm.activity.util.StringUtils;
-import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
-import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.Friend;
-import com.xzjmyk.pm.activity.bean.message.XmppMessage;
-import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.util.ViewHolder;
-import com.xzjmyk.pm.activity.view.ClearEditText;
-import com.xzjmyk.pm.activity.xmpp.listener.ChatMessageListener;
+import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
 
 import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
 
 public class NoticeMenuActivity extends BaseActivity {
+    private ArrayList<Bean> beans;
+    private PullToRefreshSlideListView listView;
+    private int GONGGAO_count = 0, NOTICE_count = 0, NES_count = 0;
+    public static final String GONGGAO = "GONGGAO", NOTICE = "NOTICE", NES = "NES";
+    private int[] src = {
+            R.drawable.iconfont_bokexinwen, R.drawable.iconfont_tongzhi, R.drawable.iconfont_gonggao
+    };
 
-    private ClearEditText mClearEditText;
-
-    private PullToRefreshSlideListView mPullToRefreshListView;
-
-    private List<BaseSortModel<Friend>> mFriendList=new ArrayList<BaseSortModel<Friend>>();;// 筛选后的朋友数据
-    private List<BaseSortModel<Friend>> mOriginalFriendList=new ArrayList<BaseSortModel<Friend>>();;// 原始的朋友数据,也就是从数据库查询出来,没有筛选的
-    private NearlyMessageAdapter mAdapter;
-    private boolean isRefeshed;
-    private Handler mHandler = new Handler();
     @Override
+
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_notice_menu);
+        init();
         initView();
-       // initData();
     }
 
-
-    /**
-     * @desc:initView
-     * @author:Administrator on 2016/3/10 14:38
-     */
-    public void initView(){
-        getSupportActionBar().setTitle("通知公告");
-        mPullToRefreshListView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
-        mPullToRefreshListView.setShowIndicator(false);
-        mPullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
-        mAdapter = new NearlyMessageAdapter(NoticeMenuActivity.this);
-        mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
-        mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<SlideListView>() {
+    private void initView() {
+        listView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
+        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
-            public void onRefresh(PullToRefreshBase<SlideListView> refreshView) {
-                //upDataFriend();
-                initData();
+            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+                distribute(i, itemClick);
             }
         });
+        listView.setAdapter(new MAdapter());
+    }
 
+    private Bean bean = null;//临时的变量
+
+    private void init() {
+        Intent intent = getIntent();
+        GONGGAO_count = intent.getIntExtra(GONGGAO, 0);
+        NOTICE_count = intent.getIntExtra(NOTICE, 0);
+        NES_count = intent.getIntExtra(NES, 0);
+        beans = new ArrayList<>();
+        for (int i = 0; i < 3; i++) {
+            bean = new Bean();
+            bean.imageSrc = src[i];
+            distribute(i, setData);
+            beans.add(bean);
+        }
+    }
 
-        mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
-                Friend friend = (Friend) arg0.getItemAtPosition(position);
-                if (friend.getRoomFlag() == 0) {
-                    if (friend.getUserId().equals(Friend.ID_ERP_NEWS)) {//新闻
-                        updateNewsMsg("暂无未读新闻");
-                        startActivity(new Intent(NoticeMenuActivity.this, NewsTwoActivity.class).putExtra("type", 0));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_NOTICE)) {//通知
-                        updateNoticeMsg("暂无未读通知");
-                        startActivity(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 1));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_GONGGAO)) {//公告
-                        updateGonggaoMsg("暂无未读公告");
-                        startActivity(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 2));
+    private int itemClick = 0x00a, setData = 0xaab;
+
+    public void distribute(int i, int type) {
+        switch (i) {
+            case 0:
+                if (type == itemClick)
+                    startActivity(new Intent(NoticeMenuActivity.this, NewsTwoActivity.class).putExtra("type", 0));
+                else if (setData == type) {
+                    bean.unReNun = NES_count;
+                    if (bean.unReNun > 0) {
+                        bean.subTitle = "您有" + bean.unReNun + "条新闻未阅读";
+                    } else {
+                        bean.subTitle = "您有暂无未阅读新闻消息";
                     }
+                    bean.time = "刚刚";
+                    bean.title = "新闻";
                 }
-                if (friend.getUnReadNum() > 0) {
-                    MsgBroadcast.broadcastMsgNumUpdate(NoticeMenuActivity.this, false, friend.getUnReadNum());
-                    friend.setUnReadNum(0);
-                    mAdapter.notifyDataSetChanged();
-                }
-            }
-        });
-    }
-     List<Friend> friends =new ArrayList<Friend>();
 
-    /**
-     * @desc:initData
-     * @author:Administrator on 2016/3/10 14:38
-     */
-    public void initData(){
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-                long startTime = System.currentTimeMillis();
-                friends.clear();
-                //取通知公告的时间,赋值给新闻,通知,公告;一级菜单给二级菜单赋值
-                int sendtime= FriendDao.getInstance().getFriend(mLoginUserId,Friend.ID_ERP_ZHIHUI).getTimeSend();
-                Friend news=  FriendDao.getInstance().getFriend(mLoginUserId, Friend.ID_ERP_NEWS);
-                Friend notic=  FriendDao.getInstance().getFriend(mLoginUserId,Friend.ID_ERP_NOTICE);
-                Friend gonggao = FriendDao.getInstance().getFriend(mLoginUserId, Friend.ID_ERP_GONGGAO);
-                news.setTimeSend(sendtime);
-                notic.setTimeSend(sendtime);
-                gonggao.setTimeSend(sendtime);
-
-                friends.add(news);
-                friends.add(notic);
-                friends.add(gonggao);
-                Log.i("NoticeMenu","friend.size="+friends.size());
-                long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
-                if (delayTime < 0) {
-                    delayTime = 0;
+                break;
+            case 1:
+                if (type == itemClick)
+                    startActivity(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 1));
+                else if (setData == type) {
+                    bean.unReNun = NOTICE_count;
+                    if (bean.unReNun > 0) {
+                        bean.subTitle = "您有" + bean.unReNun + "条通知未阅读";
+                    } else {
+                        bean.subTitle = "您有暂无未阅读通知内容";
+                    }
+                    bean.time = "刚刚";
+                    bean.title = "通知";
                 }
-                mHandler.postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        mOriginalFriendList.clear();
-                        mFriendList.clear();
-                        String filter ="";
-                        if (friends != null && friends.size() > 0) {
-                            for (int i = 0; i < friends.size(); i++) {
-                                BaseSortModel<Friend> mode = new BaseSortModel<Friend>();
-                                mode.setBean(friends.get(i));
-                                setSortCondition(mode);
-                                mOriginalFriendList.add(mode);
-                                // 获取筛选的数据
-                                if (TextUtils.isEmpty(filter) || mode.getSimpleSpell().startsWith(filter) || mode.getWholeSpell().startsWith(filter)
-                                        || mode.getBean().getShowName().startsWith(filter)) {
-                                    mFriendList.add(mode);
-                                }
-
-                            }
-                        }
-                        mAdapter.notifyDataSetChanged();
-                        mPullToRefreshListView.onRefreshComplete();
+                break;
+            case 2:
+                if (type == itemClick)
+                    startActivity(new Intent(NoticeMenuActivity.this, NoticesActivity.class).putExtra("type", 2));
+                else if (setData == type) {
+                    bean.unReNun = GONGGAO_count;
+                    if (bean.unReNun > 0) {
+                        bean.subTitle = "您有" + bean.unReNun + "条公告未阅读";
+                    } else {
+                        bean.subTitle = "您有暂无未阅读公告消息";
                     }
-                }, delayTime);
-            }
-        }).start();
-    }
-
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        mHandler.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-            initData();
-            }
-        },10);
-    }
-
-    private final void setSortCondition(BaseSortModel<Friend> mode) {
-        Friend friend = mode.getBean();
-        if (friend == null) {
-            return;
-        }
-        String name = friend.getShowName();
-        String wholeSpell = PingYinUtil.getPingYin(name);
-        if (!TextUtils.isEmpty(wholeSpell)) {
-            String firstLetter = Character.toString(wholeSpell.charAt(0));
-            mode.setWholeSpell(wholeSpell);
-            mode.setFirstLetter(firstLetter);
-            mode.setSimpleSpell(PingYinUtil.converterToFirstSpell(name));
-        } else {// 如果全拼为空,理论上是一种错误情况,因为这代表着昵称为空
-            mode.setWholeSpell("#");
-            mode.setFirstLetter("#");
-            mode.setSimpleSpell("#");
+                    bean.time = "刚刚";
+                    bean.title = "公告";
+                }
+                break;
         }
     }
 
+    class Bean {
+        String time;       //时间
+        String title;    //标题
+        String subTitle; //简介
+        int unReNun;  //未读消息
+        int imageSrc;  //图片资源
+    }
 
-    public class NearlyMessageAdapter extends SlideBaseAdapter {
-
-        public NearlyMessageAdapter(Context context) {
-            super(context);
-        }
+    class MAdapter extends BaseAdapter {
 
         @Override
         public int getCount() {
-            return mFriendList==null?0:mFriendList.size();
+            return beans.size();
         }
 
         @Override
-        public Object getItem(int position) {
-            return mFriendList.get(position).getBean();
+        public Object getItem(int i) {
+            return beans.get(i);
         }
 
         @Override
-        public long getItemId(int position) {
-            return position;
+        public long getItemId(int i) {
+            return i;
         }
 
         @Override
-        public View getView(final int position, View convertView, ViewGroup parent) {
-            if (convertView == null) {
-                convertView = createConvertView(position);
-            }
-            ImageView avatar_img = ViewHolder.get(convertView, R.id.avatar_img);
-            TextView num_tv = ViewHolder.get(convertView, R.id.num_tv);
-            TextView nick_name_tv = ViewHolder.get(convertView, R.id.nick_name_tv);
-            TextView content_tv = ViewHolder.get(convertView, R.id.content_tv);
-            TextView time_tv = ViewHolder.get(convertView, R.id.time_tv);
-
-            TextView delete_tv = ViewHolder.get(convertView, R.id.delete_tv);
-
-            final Friend friend = mFriendList.get(position).getBean();
-
-            if (position%2==0){
-                convertView.setBackgroundColor(getResources().getColor(R.color.item_color1));
-            }
-
-
-            if (friend.getRoomFlag() == 0) {// 这是单个人
-                 if(friend.getUserId().equals(Friend.ID_ERP_NEWS)){
-                     avatar_img.setBackgroundResource(android.R.color.transparent);
-                    avatar_img.setImageResource(R.drawable.iconfont_bokexinwen);
-                } else if(friend.getUserId().equals(Friend.ID_ERP_NOTICE)){
-                     avatar_img.setBackgroundResource(android.R.color.transparent);
-                     avatar_img.setImageResource(R.drawable.iconfont_tongzhi);
-                } else if(friend.getUserId().equals(Friend.ID_ERP_GONGGAO)){
-                     avatar_img.setBackgroundResource(android.R.color.transparent);
-                     avatar_img.setImageResource(R.drawable.iconfont_gonggao);
-                }else {// 其他
-                     avatar_img.setBackgroundResource(R.color.gray_light);
-                    if(isRefeshed){
-                        AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, true,true);//每次刷新都会去删除此人缓存
-                        isRefeshed=false;
-
-                    }else{
-                        AvatarHelper.getInstance().displayAvatar(friend.getUserId(), avatar_img,true);
-                    }
-                }
-            } else {// 这是1个房间
-                if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
-                    //					avatar_img.setImageResource(R.drawable.avatar_normal);
-                    avatar_img.setImageResource(R.drawable.muc_icons);
-                } else {
-                    //					AvatarHelper.getInstance().displayAvatar(friend.getRoomCreateUserId(), avatar_img, true);// 目前在备注名放房间的创建者Id
-                    avatar_img.setImageResource(R.drawable.muc_icons);
-                }
-            }
-            nick_name_tv.setText(friend.getRemarkName()!=null?friend.getRemarkName():friend.getNickName());
-            //			nick_name_tv.setText(friend.getShowName());
-            time_tv.setText(TimeUtils.getFriendlyTimeDesc(NoticeMenuActivity.this, friend.getTimeSend()));
-
-            CharSequence content = "";
-            if (friend.getType() == XmppMessage.TYPE_TEXT) {
-                String s = StringUtils.replaceSpecialChar(friend.getContent());
-                content = HtmlUtils.transform200SpanString(s.replaceAll("\n", "\r\n"), true);
+        public View getView(int i, View view, ViewGroup viewGroup) {
+            Bean bean = beans.get(i);
+            MViewHolder holder = null;
+            if (view == null) {
+                holder = new MViewHolder();
+                view = LayoutInflater.from(NoticeMenuActivity.this).inflate(R.layout.row_nearly_message, null);
+                holder.imgHead = (ImageView) view.findViewById(R.id.avatar_img);
+                holder.tvTime = (TextView) view.findViewById(R.id.time_tv);
+                holder.tvSubTitle = (TextView) view.findViewById(R.id.content_tv);
+                holder.tvTitle = (TextView) view.findViewById(R.id.nick_name_tv);
+                holder.tvNum = (TextView) view.findViewById(R.id.num_tv);
             } else {
-                content = friend.getContent();
+                holder = (MViewHolder) view.getTag();
             }
-            content_tv.setText(content);
-
-            if (friend.getUnReadNum() > 0) {
-                String numStr = friend.getUnReadNum() >= 99 ? "99+" : friend.getUnReadNum() + "";
-                num_tv.setText(numStr);
-                num_tv.setVisibility(View.VISIBLE);
+            if (i % 2 == 0) {
+                view.setBackgroundColor(getResources().getColor(R.color.item_color1));
             } else {
-                num_tv.setVisibility(View.GONE);
+                view.setBackgroundColor(getResources().getColor(R.color.item_color2));
             }
-
-            delete_tv.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-                    if (friend.getRoomFlag() == 0) {
-                        if (friend.getUnReadNum() > 0) {
-                            MsgBroadcast.broadcastMsgNumUpdate(NoticeMenuActivity.this, false, friend.getUnReadNum());
-                        }
-                        BaseSortModel<Friend> mode = mFriendList.get(position);
-
-                        mFriendList.remove(mode);
-                        mOriginalFriendList.remove(mode);
-
-                        mAdapter.notifyDataSetChanged();
-                        // 如果是普通的人,从好友表中删除最后一条消息的记录,这样就不会查出来了
-                        FriendDao.getInstance().resetFriendMessage(mLoginUserId, friend.getUserId());
-
-                        // 消息表中删除
-                        ChatMessageDao.getInstance().deleteMessageTable(mLoginUserId, friend.getUserId());
-                    } else {
-                        //deleteRoom(mLoginUserId, mFriendList.get(position));
-                    }
-
-                }
-            });
-            return convertView;
-        }
-        //控制侧滑删除
-        @Override
-        public SlideListView.SlideMode getSlideModeInPosition(int position) {
-            Friend friend = mFriendList.get(position).getBean();
-            if (friend != null && (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE) || friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)
-                    ||friend.getUserId().equals(Friend.ID_ERP_PROCESS)||friend.getUserId().equals(Friend.ID_ERP_TASK)||friend.getUserId().equals(Friend.ID_ERP_ZHIHUI)
-            )) {
-                return SlideListView.SlideMode.NONE;
+            holder.imgHead.setBackgroundResource(R.color.transparent);
+            holder.tvTime.setText(bean.time);
+            holder.tvTitle.setText(bean.title);
+            holder.tvSubTitle.setText(bean.subTitle);
+            if (bean.unReNun > 0) {
+                holder.tvNum.setText(bean.unReNun + "");
+                holder.tvNum.setVisibility(View.VISIBLE);
+            } else {
+                holder.tvNum.setVisibility(View.GONE);
             }
-            return super.getSlideModeInPosition(position);
+            holder.imgHead.setImageDrawable(getResources().getDrawable(bean.imageSrc));
+            return view;
         }
 
-        @Override
-        public int getFrontViewId(int position) {
-            return R.layout.row_nearly_message;
-        }
-
-        @Override
-        public int getLeftBackViewId(int position) {
-            return 0;
-        }
+        class MViewHolder {
+            TextView tvTime;
+            TextView tvSubTitle;
+            TextView tvTitle;
+            TextView tvNum;
+            ImageView imgHead;
 
-        @Override
-        public int getRightBackViewId(int position) {
-            return R.layout.row_item_delete;
         }
     }
 
-    public void updateNewsMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        chatMessage.setTimeSend(TimeUtils.sk_time_current_time());
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_NEWS);
-        chatMessage.setContent(msg);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_NEWS, chatMessage);
-    }
-
-
-    public void updateNoticeMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        chatMessage.setTimeSend(TimeUtils.sk_time_current_time());
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_NOTICE);
-        chatMessage.setContent(msg);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_NOTICE, chatMessage);
-    }
-
-    public void updateGonggaoMsg(String msg) {
-        String ownerId=MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        chatMessage.setTimeSend(TimeUtils.sk_time_current_time());
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_GONGGAO);
-        chatMessage.setContent(msg);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_GONGGAO, chatMessage);
-    }
-
-
 }

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/WorksFragment.java

@@ -113,7 +113,6 @@ public class WorksFragment extends XutilsFragment implements View.OnClickListene
                 startActivity(intent);
                 break;
             case R.id.my_data_rl:
-                startActivity(new Intent(getActivity(), SubscriptionActivity.class));
                 ToastUtil.showToast(getActivity(), "抱歉,该功能尚未完善");
                 break;
 

+ 175 - 354
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -1,6 +1,5 @@
 package com.xzjmyk.pm.activity.ui.message;
 
-import android.app.ProgressDialog;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -11,11 +10,12 @@ import android.os.Message;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.ImageView;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
@@ -32,7 +32,6 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.AttentionUser;
 import com.xzjmyk.pm.activity.bean.Friend;
-import com.xzjmyk.pm.activity.bean.message.ChatMessage;
 import com.xzjmyk.pm.activity.bean.message.XmppMessage;
 import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.broadcast.MucgroupUpdateUtil;
@@ -45,9 +44,7 @@ import com.xzjmyk.pm.activity.sortlist.PingYinUtil;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
-import com.xzjmyk.pm.activity.ui.erp.activity.NewsTwoActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.NoticeMenuActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.NoticesActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.ScheduleActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.TaskActivity;
 import com.xzjmyk.pm.activity.ui.erp.model.AllProcess;
@@ -58,8 +55,8 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ObjectUtils;
+import com.xzjmyk.pm.activity.ui.tool.ThreadPool;
 import com.xzjmyk.pm.activity.util.HtmlUtils;
-import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
@@ -67,18 +64,14 @@ import com.xzjmyk.pm.activity.util.ViewHolder;
 import com.xzjmyk.pm.activity.view.ClearEditText;
 import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
 import com.xzjmyk.pm.activity.volley.ArrayResult;
-import com.xzjmyk.pm.activity.volley.ObjectResult;
 import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
-import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
-import com.xzjmyk.pm.activity.xmpp.listener.ChatMessageListener;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 /**
  * @desc:消息列表
@@ -159,19 +152,14 @@ public class MessageFragment extends EasyFragment {
             public void run() {
                 if (mNeedUpdate) {
                     mNeedUpdate = false;
-                    //  loadData();
-                    FriendDao.getInstance().markUserMessageRead(MyApplication.getInstance().mLoginUser.getUserId(), Friend.ID_ERP_ZHIHUI);
-                    loadERPMsgNum(getActivity());//另外的线程网络请求
-                    loadGongGaoCount(getActivity());
-                    loadNoticeCount(getActivity());
-                    loadERPNewsNum(getActivity());
+                    refreshUI();
                 }
             }
         }, 100);
     }
 
     private void initView() {
-        initHeaderView();
+
         mClearEditText = (ClearEditText) findViewById(R.id.search_edit);
         mClearEditText.addTextChangedListener(new TextWatcher() {
             @Override
@@ -214,7 +202,7 @@ public class MessageFragment extends EasyFragment {
                 refreshUI();
             }
         });
-
+        mPullToRefreshListView.getRefreshableView().addHeaderView(getHeaderView());
         mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
@@ -222,19 +210,6 @@ public class MessageFragment extends EasyFragment {
                 if (friend.getRoomFlag() == 0) {
                     if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
                         startActivity(new Intent(getActivity(), NewFriendActivity.class));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_PROCESS)) {//待办事宜
-                        //ViewUtil.ShowMessageFDialogAutoDismiss(getActivity(),"待审批流程",2000);
-                        startActivity(new Intent(getActivity(), ScheduleActivity.class));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_TASK)) {//我的任务
-                        startActivity(new Intent(getActivity(), TaskActivity.class));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_ZHIHUI)) {//我的知会
-                        startActivity(new Intent(getActivity(), NoticeMenuActivity.class));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_NEWS)) {//新闻
-                        startActivity(new Intent(getActivity(), NewsTwoActivity.class).putExtra("type", 0));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_NOTICE)) {//通知
-                        startActivity(new Intent(getActivity(), NoticesActivity.class).putExtra("type", 1));
-                    } else if (friend.getUserId().equals(Friend.ID_ERP_GONGGAO)) {//公告
-                        startActivity(new Intent(getActivity(), NoticesActivity.class).putExtra("type", 2));
                     } else {
                         Intent intent = new Intent(getActivity(), ChatActivity.class);
                         intent.putExtra(ChatActivity.FRIEND, friend);
@@ -255,17 +230,72 @@ public class MessageFragment extends EasyFragment {
                 }
             }
         });
+
     }
 
-    private void initHeaderView() {
-        //将头部四个放在这里
 
+    /**
+     * 头视图相关
+     * by gongpm 2016/06/15
+     */
+    private TextView schedule_num_tv, schedule_content_tv, schedule_time_tv;
+    private TextView task_num_tv, task_content_tv, task_time_tv;
+    private TextView notice_num_tv, notice_content_tv, notice_time_tv;
+    private TextView num_tv, content_tv, time_tv;
+    private RelativeLayout schedule_rl, task_rl, _rl, notice_rl;
+
+    private View getHeaderView() {
+        View view = LayoutInflater.from(getActivity()).inflate(R.layout.message_header, null);
+        schedule_num_tv = (TextView) view.findViewById(R.id.schedule_num_tv);
+        schedule_content_tv = (TextView) view.findViewById(R.id.schedule_content_tv);
+        schedule_time_tv = (TextView) view.findViewById(R.id.schedule_time_tv);
+
+        task_num_tv = (TextView) view.findViewById(R.id.task_num_tv);
+        task_content_tv = (TextView) view.findViewById(R.id.task_content_tv);
+        task_time_tv = (TextView) view.findViewById(R.id.task_time_tv);
+
+        notice_num_tv = (TextView) view.findViewById(R.id.notice_num_tv);
+        notice_content_tv = (TextView) view.findViewById(R.id.notice_content_tv);
+        notice_time_tv = (TextView) view.findViewById(R.id.notice_time_tv);
+
+        num_tv = (TextView) view.findViewById(R.id.num_tv);
+        content_tv = (TextView) view.findViewById(R.id.content_tv);
+        time_tv = (TextView) view.findViewById(R.id.time_tv);
+
+        view.findViewById(R.id.schedule_rl).setOnClickListener(listener);
+        view.findViewById(R.id.task_rl).setOnClickListener(listener);
+        view.findViewById(R.id.notice_rl).setOnClickListener(listener);
+        view.findViewById(R.id._rl).setOnClickListener(listener);
+        return view;
+    }
+
+    View.OnClickListener listener = new View.OnClickListener() {
+        @Override
+        public void onClick(View view) {
+            switch (view.getId()) {
+                case R.id.schedule_rl:
+                    startActivity(new Intent(getActivity(), ScheduleActivity.class));
+                    break;
+                case R.id.task_rl:
+                    startActivity(new Intent(getActivity(), TaskActivity.class));
+                    break;
+                case R.id.notice_rl:
+                    Intent intent = new Intent(getActivity(), NoticeMenuActivity.class);
+                    intent.putExtra(NoticeMenuActivity.GONGGAO, GONGGAO_count);
+                    intent.putExtra(NoticeMenuActivity.NOTICE, NOTICE_count);
+                    intent.putExtra(NoticeMenuActivity.NES, NES_count);
+                    startActivity(intent);
+                    break;
+                case R.id._rl:
+                    startActivity(new Intent(getActivity(), SubscriptionActivity.class));
+                    break;
+            }
+        }
+    };
 
-    }
 
     //by gongpm 刷新数据提取方法
     private void refreshUI() {
-        //upDataFriend();
         loadData();
         FriendDao.getInstance().markUserMessageRead(
                 MyApplication.getInstance().mLoginUser.getUserId(),
@@ -278,7 +308,7 @@ public class MessageFragment extends EasyFragment {
 
 
     /**
-     * 更新朋友信息
+     * TODO 获取关注列表(需调式查看访问数据内容)  更新朋友信息
      */
     private void upDataFriend() {
         isRefeshed = true;
@@ -392,51 +422,6 @@ public class MessageFragment extends EasyFragment {
         }
     }
 
-    /**
-     * 删除房间
-     *
-     * @param sortFriend
-     */
-    private void deleteRoom(final String loginUserId, final BaseSortModel<Friend> sortFriend) {
-        BaseActivity activity = (BaseActivity) getActivity();
-        boolean deleteRoom = false;
-        if (loginUserId.equals(sortFriend.getBean().getRoomCreateUserId())) {
-            deleteRoom = true;
-        }
-        String url = null;
-        if (deleteRoom) {
-            url = activity.mConfig.ROOM_DELETE;
-        } else {
-            url = activity.mConfig.ROOM_MEMBER_DELETE;
-        }
-        HashMap<String, String> params = new HashMap<String, String>();
-        params.put("access_token", MyApplication.getInstance().mAccessToken);
-        params.put("roomId", sortFriend.getBean().getRoomId());
-        if (!deleteRoom) {
-            params.put("userId", loginUserId);
-        }
-
-        final ProgressDialog dialog = ProgressDialogUtil.init(getActivity(), null, getString(R.string.please_wait));
-        ProgressDialogUtil.show(dialog);
-        StringJsonObjectRequest<Void> request = new StringJsonObjectRequest<Void>(url, new ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError arg0) {
-                ProgressDialogUtil.dismiss(dialog);
-                ToastUtil.showErrorNet(getActivity());
-            }
-        }, new StringJsonObjectRequest.Listener<Void>() {
-            @Override
-            public void onResponse(ObjectResult<Void> result) {
-                boolean success = Result.defaultParser(getActivity(), result, true);
-                if (success) {
-                    deleteFriend(loginUserId, sortFriend);
-                    sendBroadcast();
-                }
-                ProgressDialogUtil.dismiss(dialog);
-            }
-        }, Void.class, params);
-        activity.addDefaultRequest(request);
-    }
 
     private void deleteFriend(final String loginUserId, final BaseSortModel<Friend> sortFriend) {
         Friend friend = sortFriend.getBean();
@@ -504,55 +489,26 @@ public class MessageFragment extends EasyFragment {
 
             final Friend friend = mFriendList.get(position).getBean();
 
+            avatar_img.setBackgroundResource(R.color.gray_light);
             if (friend.getRoomFlag() == 0) {// 这是单个人
-                if (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE)) {// 系统消息的头像
-                    avatar_img.setImageResource(R.drawable.system_img);
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                } else if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友的头像
-                    avatar_img.setImageResource(R.drawable.friend_u);
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                } else if (friend.getUserId().equals(Friend.ID_ERP_PROCESS)) { //待办
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                    avatar_img.setImageResource(R.drawable.home_image_01_u);
-                } else if (friend.getUserId().equals(Friend.ID_ERP_TASK)) {  //我的任务
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                    avatar_img.setImageResource(R.drawable.home_image_02_u);
-                } else if (friend.getUserId().equals(Friend.ID_ERP_ZHIHUI)) {//通知公告
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                    avatar_img.setImageResource(R.drawable.home_image_03_u);
-                } else if (friend.getUserId().equals(Friend.ID_ERP_NEWS)) {
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                    avatar_img.setImageResource(R.drawable.iconfont_bokexinwen);
-                } else if (friend.getUserId().equals(Friend.ID_ERP_NOTICE)) {
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                    avatar_img.setImageResource(R.drawable.iconfont_tongzhi);
-                } else if (friend.getUserId().equals(Friend.ID_ERP_GONGGAO)) {
-                    avatar_img.setBackgroundResource(android.R.color.transparent);
-                    avatar_img.setImageResource(R.drawable.iconfont_gonggao);
-                } else {// 其他
-                    avatar_img.setBackgroundResource(R.color.gray_light);
-                    if (isRefeshed) {
-                        AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, false, true);//每次刷新都会去删除此人缓存
-                        isRefeshed = false;
 
-                    } else {
-
-                        AvatarHelper.getInstance().displayAvatar(friend.getUserId(), avatar_img, false);
-                    }
+                if (isRefeshed) {
+                    AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, false, true);//每次刷新都会去删除此人缓存
+                    isRefeshed = false;
+                } else {
+                    AvatarHelper.getInstance().displayAvatar(friend.getUserId(), avatar_img, false);
                 }
-            } else {// 这是1个房间
-                avatar_img.setBackgroundResource(R.color.gray_light);
+
+            } else {
+
                 if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
-                    //					avatar_img.setImageResource(R.drawable.avatar_normal);
                     avatar_img.setImageResource(R.drawable.qunliao);
                 } else {
                     if (position >= 3)
                         AvatarHelper.getInstance().displayAvatarPng(friend.getRoomCreateUserId(), avatar_img, false);// 目前在备注名放房间的创建者Id
-                    // avatar_img.setImageResource(R.drawable.qunliao);
                 }
             }
             nick_name_tv.setText(friend.getRemarkName() != null ? friend.getRemarkName() : friend.getNickName());
-            //			nick_name_tv.setText(friend.getShowName());
             time_tv.setText(TimeUtils.getFriendlyTimeDesc(getActivity(), friend.getTimeSend()));
 
             CharSequence content = "";
@@ -569,11 +525,7 @@ public class MessageFragment extends EasyFragment {
                 num_tv.setText(numStr);
                 num_tv.setVisibility(View.VISIBLE);
             } else {
-//				if (friend.getUnReadNum()==0) {
-//					num_tv.setVisibility(View.VISIBLE);
-//				}else{
                 num_tv.setVisibility(View.GONE);
-//				}
             }
 
             delete_tv.setOnClickListener(new View.OnClickListener() {
@@ -596,7 +548,6 @@ public class MessageFragment extends EasyFragment {
                         // 消息表中删除
                         ChatMessageDao.getInstance().deleteMessageTable(mLoginUserId, friend.getUserId());
                     } else {
-                        //deleteRoom(mLoginUserId, mFriendList.get(position));
                         deleteFriend(mLoginUserId, mFriendList.get(position));
                     }
 
@@ -619,11 +570,9 @@ public class MessageFragment extends EasyFragment {
 
         @Override
         public int getFrontViewId(int position) {
-//            if (position%2==0) {
+
             return R.layout.row_nearly_message;
-//            }else{
-//                return R.layout.row_nearly_message1;
-//            }
+
         }
 
         @Override
@@ -638,81 +587,6 @@ public class MessageFragment extends EasyFragment {
     }
 
 
-    /**
-     * @desc:获取erp 流程数据的条数
-     * @author:Administrator on 2016/3/10 14:25
-     */
-    public Map<String, Object> getErpMsgNums(Message msg) {
-        Map<String, Object> numMap = new HashMap<String, Object>();
-        String reString = msg.getData().getString("result");
-        //Log.i("MessageFragment", "result:" + reString);
-        if (reString != null && !reString.equals("500")) {
-            Map<String, Object> results = FlexJsonUtil.fromJson(reString);
-            if (results.get("allProcess") != null) {
-                List<AllProcess> allProcesses = new ArrayList<AllProcess>();
-                try {
-                    allProcesses = FlexJsonUtil.fromJsonArray(
-                            FlexJsonUtil.toJson(results.get("allProcess")),
-                            AllProcess.class);
-                } catch (Exception e) {
-                }
-                int task_num = 0, pagin_num = 0, daiban_num = 0;
-                for (int i = 0; i < allProcesses.size(); i++) {
-                    if (allProcesses.get(i).getTypecode().contains("task")) {
-                        task_num++;
-                    } else if (allProcesses.get(i).getTypecode()
-                            .contains("pagingrelease")) {
-                        pagin_num++;
-                    } else {
-                        daiban_num++;
-                    }
-                }
-                String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                //clear
-                FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_PROCESS);
-                FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_TASK);
-                //FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_ZHIHUI);
-//                Log.i("MessageFragment", "任务:" + task_num);
-//                Log.i("MessageFragment", "流程:" + daiban_num);
-//                Log.i("MessageFragment", "知会:" + pagin_num);
-                FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_PROCESS, daiban_num);
-                FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_TASK, task_num);
-                if (daiban_num > 0) {
-                    updateProcessMsg("您有" + daiban_num + "条新的待审批流程");
-                } else {
-                    updateProcessMsg("暂无待审批流程");
-                }
-                if (task_num > 0) {
-                    updateTaskMsg("您有" + task_num + "条新的任务");
-                } else {
-                    updateTaskMsg("暂无任务");
-                }
-                //FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, pagin_num);
-                //MsgBroadcast.broadcastMsgUiUpdate(MyApplication.getInstance());//刷新界面
-                //MsgBroadcast.broadcastMsgNumUpdate(MyApplication.getInstance(), true, 1);
-                return numMap;
-            } else {
-                String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_PROCESS);
-                FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_TASK);
-                //FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_ZHIHUI);
-                return numMap;
-            }
-        } else {
-            String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-            FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_PROCESS);
-            FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_TASK);
-            //FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_ZHIHUI);
-            return numMap;
-        }
-
-    }
-
-
-    /**
-     * @desc:加载通知,获取未读数量
-     * @author:Administrator on 2016/3/24 14:58
-     */
     public void loadNoticeCount(Context ct) {
         String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/inform.action";
         final Map<String, Object> param = new HashMap<>();
@@ -723,10 +597,7 @@ public class MessageFragment extends EasyFragment {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.LOAD_SUCCESS, null, null, "get");
     }
 
-    /**
-     * @desc加载公告,获取未读数量
-     * @author:Administrator on 2016/3/24 15:01
-     */
+
     public void loadGongGaoCount(Context ct) {
         String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/notice.action";
         final Map<String, Object> param = new HashMap<>();
@@ -737,7 +608,6 @@ public class MessageFragment extends EasyFragment {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_LOGIN, null, null, "get");
     }
 
-    //String url=Constants.getAppBaseUrl(ct)+"common/desktop/news/getNews.action";
 
     public void loadERPMsgNum(Context ct) {
         String url = Constants.getAppBaseUrl(ct) + "mobile/getallprocess.action";
@@ -768,29 +638,83 @@ public class MessageFragment extends EasyFragment {
         public void handleMessage(final Message msg) {
             switch (msg.what) {
                 case Constants.SUCCESS_LOGIN://公告
-                    Log.i("MessageFragment", "接收公告");
                     updateGongGao(msg);
                     break;
                 case load_success_erpMsgNum://待办
                     getErpMsgNums(msg);
                     break;
                 case Constants.LOAD_SUCCESS://通知
-                    Log.i("MessageFragment", "接收通知");
                     updateNotice(msg);
                     break;
                 case Constants.SUCCESS_INITDATA://新闻
-                    Log.i("MessageFragment", "接收新闻");
                     updateNews(msg);
                     break;
+
+                case GONGGAO_MSG:
+                    setNOTICE_count(GONGGAO_count + NOTICE_count + NES_count);
+                    break;
+                case NOTICE_MSG:
+                    setNOTICE_count(GONGGAO_count + NOTICE_count + NES_count);
+                    break;
+                case NES_MSG:
+                    setNOTICE_count(GONGGAO_count + NOTICE_count + NES_count);
+                    break;
+                case TASK_MSG:
+                    if (TASK_count > 0) {
+                        task_num_tv.setText(TASK_count + "");
+                        task_num_tv.setVisibility(View.VISIBLE);
+                        task_content_tv.setText("您有" + TASK_count + "条任务未阅读");
+                        task_time_tv.setText("刚刚");
+                    } else {
+                        task_num_tv.setVisibility(View.GONE);
+                        content_tv.setText("您有暂无未阅读任务");
+                    }
+                    break;
+                case DAIBAN_MSG:
+                    if (DAIBAN_count > 0) {
+                        schedule_num_tv.setText(DAIBAN_count + "");
+                        schedule_num_tv.setVisibility(View.VISIBLE);
+                        schedule_content_tv.setText("您有" + DAIBAN_count + "条待审批流程为未阅读");
+                        schedule_time_tv.setText("刚刚");
+                    } else {
+                        schedule_num_tv.setVisibility(View.GONE);
+                        content_tv.setText("您有暂无未阅读待审批流程");
+                    }
+                    break;
+                case SUBRICE_MSG:
+                    if (SUBRICE_count > 0) {
+                        num_tv.setText(SUBRICE_count + "");
+                        num_tv.setVisibility(View.VISIBLE);
+                        content_tv.setText("您有" + SUBRICE_count + "条订阅消息未阅读");
+                        time_tv.setText("刚刚");
+                    } else {
+                        num_tv.setVisibility(View.GONE);
+                        content_tv.setText("您有暂无未阅读订阅消息");
+                    }
+                    break;
             }
 
         }
     };
 
+    private void setNOTICE_count(int count) {
+        if (count > 0) {
+            notice_num_tv.setText(count + "");
+            notice_num_tv.setVisibility(View.VISIBLE);
+            notice_content_tv.setText("您有" + count + "条通知未阅读");
+            notice_time_tv.setText("刚刚");
+        } else {
+            notice_num_tv.setVisibility(View.GONE);
+            content_tv.setText("您有暂无未阅读通知");
+        }
+    }
+
+    private final int GONGGAO_MSG = 0X00a, NOTICE_MSG = 0X00b, NES_MSG = 0X00c, TASK_MSG = 0X00d, DAIBAN_MSG = 0X00e, SUBRICE_MSG = 0xf;
+    private int GONGGAO_count = 0, NOTICE_count = 0, NES_count = 0, TASK_count = 0, DAIBAN_count = 0, SUBRICE_count = 0;
 
     private void updateGongGao(Message msg) {
         final String result = msg.getData().getString("result");
-        new Handler().postDelayed(new Runnable() {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
             @Override
             public void run() {
                 NoticeEntity newsEntity =
@@ -820,25 +744,15 @@ public class MessageFragment extends EasyFragment {
                         }
                     }
                 }
-                if (count != 0) {
-                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_GONGGAO);
-                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
-                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_GONGGAO, count);
-                    updateGonggaoMsg("收到" + count + "条公告");
-                    updateZhihuMsg("通知,公告,新闻信息");
-                } else {
-                    updateGonggaoMsg("暂无未读公告");
-                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_GONGGAO);
-                }
+                GONGGAO_count = count;
+                handler.sendEmptyMessage(GONGGAO_MSG);
             }
-        }, 1);
+        });
     }
 
     private void updateNotice(Message msg) {
         final String result = msg.getData().getString("result");
-        new Handler().postDelayed(new Runnable() {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
             @Override
             public void run() {
                 NoticeEntity newsEntity;
@@ -871,29 +785,15 @@ public class MessageFragment extends EasyFragment {
                         }
                     }
                 }
-                if (count != 0) {
-                    Log.i("MessageFragment", " 通知 标注红点" + count);
-                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NOTICE);
-                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
-                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NOTICE, count);
-                    updateNoticeMsg("收到" + count + "条通知");
-                    updateZhihuMsg("通知,公告,新闻信息");
-                } else {
-                    updateNoticeMsg("暂无未读通知");
-                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NOTICE);
-                }
-
-                MsgBroadcast.broadcastMsgNumReset(MyApplication.getInstance());//重置,从数据库查询
-                loadData();
+                NOTICE_count = count;
+                handler.sendEmptyMessage(NOTICE_MSG);
             }
-        }, 30);
+        });
     }
 
     private void updateNews(Message msg) {
         final String result = msg.getData().getString("result");
-        new Handler().postDelayed(new Runnable() {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
             @Override
             public void run() {
                 int size;
@@ -913,122 +813,43 @@ public class MessageFragment extends EasyFragment {
                         count++;//数据为空,算是未读
                     }
                 }
-                if (count != 0) {
-                    Log.i("MessageFragment", "新闻 标注红点" + count);
-                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
-                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_ZHIHUI, count);
-                    FriendDao.getInstance().markUserMessageUnRead(owerId, Friend.ID_ERP_NEWS, count);
-                    updateNewsMsg("收到" + count + "条新闻");
-                    updateZhihuMsg("通知,公告,新闻信息");
-                } else {
-                    updateNewsMsg("暂无未读新闻");
-                    updateZhihuMsg("通知,公告,新闻信息");
-                    String owerId = MyApplication.getInstance().mLoginUser.getUserId();
-                    FriendDao.getInstance().markUserMessageRead(owerId, Friend.ID_ERP_NEWS);
-                }
-                MsgBroadcast.broadcastMsgNumReset(MyApplication.getInstance());//重置,从数据库查询
-                loadData();
+                NES_count = count;
+                handler.sendEmptyMessage(NES_MSG);
             }
-        }, 50);
-    }
-
-    private int processMsgTime;
-
-    public void updateProcessMsg(String msg) {
-        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setFromUserId(Friend.ID_ERP_PROCESS);
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        processMsgTime = TimeUtils.sk_time_current_time();
-        chatMessage.setTimeSend(processMsgTime);
-        chatMessage.setContent(msg);
-        chatMessage.setMySend(false);// 表示不是自己发的
-        // 往消息表里插入一条记录
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_PROCESS, chatMessage);
+        });
     }
 
-    private int taskMsgTime;
-
-    public void updateTaskMsg(String msg) {
-        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        taskMsgTime = processMsgTime - 1;
-        chatMessage.setTimeSend(taskMsgTime);
-        chatMessage.setContent(msg);
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_TASK);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_TASK, chatMessage);
-    }
+    public void getErpMsgNums(Message msg) {
+        String reString = msg.getData().getString("result");
+        if (reString != null && !reString.equals("500")) {
+            Map<String, Object> results = FlexJsonUtil.fromJson(reString);
+            if (results.get("allProcess") != null) {
+                List<AllProcess> allProcesses = new ArrayList<AllProcess>();
+                try {
+                    allProcesses = FlexJsonUtil.fromJsonArray(
+                            FlexJsonUtil.toJson(results.get("allProcess")),
+                            AllProcess.class);
+                } catch (Exception e) {
+                }
+                int task_num = 0, pagin_num = 0, daiban_num = 0;
+                for (int i = 0; i < allProcesses.size(); i++) {
+                    if (allProcesses.get(i).getTypecode().contains("task")) {
+                        task_num++;
+                    } else if (allProcesses.get(i).getTypecode()
+                            .contains("pagingrelease")) {
+                        pagin_num++;
+                    } else {
+                        daiban_num++;
+                    }
+                }
+                TASK_count = task_num;
+                handler.sendEmptyMessage(TASK_MSG);
+                DAIBAN_count = daiban_num;
+                handler.sendEmptyMessage(DAIBAN_MSG);
 
-    public void updateZhihuMsg(String msg) {
-        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        if (taskMsgTime != 0) {
-            chatMessage.setTimeSend(taskMsgTime - 1);
-        } else {
-            chatMessage.setTimeSend(TimeUtils.sk_time_current_time());
+            }
         }
-        chatMessage.setContent(msg);
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_ZHIHUI);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_ZHIHUI, chatMessage);
-
-    }
-
-
-    public void updateNewsMsg(String msg) {
-        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        chatMessage.setTimeSend(TimeUtils.sk_time_current_time());
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_NEWS);
-        chatMessage.setContent(msg);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_NEWS, chatMessage);
     }
 
 
-    public void updateNoticeMsg(String msg) {
-        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        chatMessage.setTimeSend(TimeUtils.sk_time_current_time());
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_NOTICE);
-        chatMessage.setContent(msg);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_NOTICE, chatMessage);
-    }
-
-    public void updateGonggaoMsg(String msg) {
-        String ownerId = MyApplication.getInstance().mLoginUser.getUserId();
-        ChatMessage chatMessage = new ChatMessage();
-        chatMessage.setType(XmppMessage.TYPE_TIP);
-        chatMessage.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));// 随机产生一个PacketId
-        chatMessage.setMessageState(ChatMessageListener.MESSAGE_SEND_SUCCESS);
-        // 为了使得初始生成的系统消息排在新朋友前面,所以在时间节点上延迟一点 1s
-        chatMessage.setTimeSend(TimeUtils.sk_time_current_time());
-        chatMessage.setMySend(false);// 表示不是自己发的
-        chatMessage.setFromUserId(Friend.ID_ERP_GONGGAO);
-        chatMessage.setContent(msg);
-        ChatMessageDao.getInstance().saveNewSingleChatMessage(ownerId, Friend.ID_ERP_GONGGAO, chatMessage);
-    }
-
 }

+ 36 - 16
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java

@@ -3,13 +3,13 @@ package com.xzjmyk.pm.activity.ui.message;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.ImageView;
-import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -24,6 +24,7 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
+import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.MyListView;
 
 import org.json.JSONArray;
@@ -43,11 +44,13 @@ public class SubscriptionActivity extends BaseActivity {
     private SubscriptionAdapter adapter;
     private SubscriptionActivity activity = this;
     private ArrayList<SortSubsrciprion> sortSubsrciprions;
+    private int date = 20160612;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
+
+            String message = (String) msg.getData().get("result");
             if (msg.what == 2) {
-                String message = (String) msg.getData().get("result");
                 try {
                     JSONObject object = new JSONObject(message);
                     JSONArray array = object.getJSONArray("data");
@@ -56,10 +59,8 @@ public class SubscriptionActivity extends BaseActivity {
                 } catch (JSONException e) {
                     e.printStackTrace();
                 }
-
             } else if (Constants.APP_SOCKETIMEOUTEXCEPTION == msg.what) {
                 //错误信息
-                String message = (String) msg.getData().get("result");
             }
         }
     };
@@ -78,10 +79,10 @@ public class SubscriptionActivity extends BaseActivity {
             @Override
             public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                 cancelData();
-                initData();
+                initData(date);
             }
         });
-        initData();
+        initData(date);
     }
 
     private void cancelData() {
@@ -103,7 +104,9 @@ public class SubscriptionActivity extends BaseActivity {
         for (int i = 0; i < SubscriptionMessages.size(); i++) {
             sortSubsrciprion = new SortSubsrciprion();
             sortSubsrciprion.num_id = SubscriptionMessages.get(i).getNUM_ID_();
+            sortSubsrciprion.tiem = Long.parseLong(SubscriptionMessages.get(i).getCREATEDATE_());
             sortSubsrciprion.beans = new ArrayList<>();
+
             sortSubsrciprion.beans.add(SubscriptionMessages.get(i));
             if (sortSubsrciprions.size() > 0) {
                 for (int j = 0; j < sortSubsrciprions.size(); j++) {
@@ -119,6 +122,10 @@ public class SubscriptionActivity extends BaseActivity {
                 sortSubsrciprions.add(sortSubsrciprion);
             }
         }
+        for (int i = 0; i < sortSubsrciprions.size(); i++) {
+            for (int j = 0; j < sortSubsrciprions.get(i).beans.size(); j++)
+                Log.i("ggggg", sortSubsrciprions.get(i).beans.get(j).getSONTITLE_() == null ? "aa" : sortSubsrciprions.get(i).beans.get(j).getSONTITLE_());
+        }
         adapter = new SubscriptionAdapter();
         listView.setAdapter(adapter);
         adapter.notifyDataSetChanged();
@@ -132,12 +139,12 @@ public class SubscriptionActivity extends BaseActivity {
     }
 
 
-
-    public void initData() {
+    public void initData(int date) {
         String url = baseUrl + "common/desktop/subs/getSubs.action";
         final Map<String, Object> param = new HashMap<>();
-        param.put("count", 2);
-        param.put("condition", "where to_char(createdate_,'yyyymmdd')='20160612'");
+        param.put("count", 100);
+//        param.put("condition", "where to_char(createdate_,'yyyymmdd')='20160612'");
+        param.put("condition", "where 1=1");
         param.put("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
@@ -175,6 +182,7 @@ public class SubscriptionActivity extends BaseActivity {
             } else {
                 viewholder = (Viewholder) contextView.getTag();
             }
+            viewholder.tvTime.setText(TimeUtils.s_long_2_str(sortSubsrciprions.get(position).tiem));
             viewholder.listview.setAdapter(viewholder.adapter);
             viewholder.listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                 @Override
@@ -184,8 +192,6 @@ public class SubscriptionActivity extends BaseActivity {
                             "&mainId=" + bean.getINSTANCE_ID_() + "&insId=" + bean.getID_() +
                             "&title=" + bean.getSON_TITLE_();
                     ViewUtil.WebLinks(activity, url, "订阅");
-
-
                 }
             });
             return contextView;
@@ -230,35 +236,49 @@ public class SubscriptionActivity extends BaseActivity {
             if (contextView == null) {
                 holder = new VieweHolder();
                 contextView = LayoutInflater.from(activity).inflate(R.layout.bigimage_subscription, null);
-                holder.ll = (LinearLayout) contextView.findViewById(R.id.small_ll);
+                holder.ll = (RelativeLayout) contextView.findViewById(R.id.small_ll);
                 holder.rl = (RelativeLayout) contextView.findViewById(R.id.big_rl);
                 holder.small_tv = (TextView) contextView.findViewById(R.id.small_tv);
                 holder.big_tv = (TextView) contextView.findViewById(R.id.big_tv);
+                holder.sub_title_tv = (TextView) contextView.findViewById(R.id.sub_title_tv);
+                holder.isre_tv = (TextView) contextView.findViewById(R.id.isre_tv);
+                holder.big_sub_title_tv = (TextView) contextView.findViewById(R.id.big_sub_title_tv);
+                holder.big_isre_tv = (TextView) contextView.findViewById(R.id.big_isre_tv);
                 holder.big_img = (ImageView) contextView.findViewById(R.id.big_img);
                 holder.small_img = (ImageView) contextView.findViewById(R.id.small_img);
                 contextView.setTag(holder);
             } else {
                 holder = (VieweHolder) contextView.getTag();
             }
+
+            String sontitle = beans.get(i).getSONTITLE_() == null ? "" : beans.get(i).getSONTITLE_();
+            String sumdata = beans.get(i).getSUMDATA_() == null ? "" : beans.get(i).getSUMDATA_();
+            String chcheStr = sontitle + " : " + sumdata;
+            if (chcheStr.equals(":")) {
+                chcheStr = "";
+            }
             if (i == 0) {
                 holder.ll.setVisibility(View.GONE);
                 holder.rl.setVisibility(View.VISIBLE);
                 holder.big_tv.setText(beans.get(i).getTITLE_());
+                holder.big_isre_tv.setText(beans.get(i).getSTATUS_() == 0 ? "未读" : "已读");
+                holder.big_sub_title_tv.setText(chcheStr);
             } else {
                 holder.ll.setVisibility(View.VISIBLE);
                 holder.rl.setVisibility(View.GONE);
                 holder.small_tv.setText(beans.get(i).getTITLE_());
+                holder.sub_title_tv.setText(chcheStr);
+                holder.isre_tv.setText(beans.get(i).getSTATUS_() == 0 ? "未读" : "已读");
             }
             return contextView;
         }
 
-
         class VieweHolder {
-            LinearLayout ll;
+            RelativeLayout ll;
             RelativeLayout rl;
             TextView small_tv, big_tv;
             ImageView big_img, small_img;
-
+            TextView sub_title_tv, isre_tv, big_sub_title_tv, big_isre_tv;
         }
 
 

BIN
WeiChat/src/main/res/drawable-xhdpi/dingyue.png


BIN
WeiChat/src/main/res/drawable-xhdpi/list_01.png


BIN
WeiChat/src/main/res/drawable-xhdpi/list_02.png


BIN
WeiChat/src/main/res/drawable-xhdpi/list_03.png


BIN
WeiChat/src/main/res/drawable-xhdpi/subg.png


+ 3 - 2
WeiChat/src/main/res/layout/activity_notice_menu.xml

@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@drawable/bg_main"
     tools:context="com.xzjmyk.pm.activity.ui.erp.activity.NoticeMenuActivity">
+
     <com.xzjmyk.pm.activity.view.PullToRefreshSlideListView
         android:id="@+id/pull_refresh_list"
         android:layout_width="match_parent"
@@ -14,7 +15,7 @@
         app:ptrDrawableEnd="@drawable/default_ptr_rotate"
         app:ptrDrawableStart="@drawable/default_ptr_flip"
         app:ptrHeaderTextColor="@color/black"
-        app:ptrMode="both"
+        app:ptrMode="pullDownFromTop"
         app:ptrOverScroll="false"
         app:ptrScrollingWhileRefreshingEnabled="true"
         app:ptrShowIndicator="false"

+ 57 - 13
WeiChat/src/main/res/layout/bigimage_subscription.xml

@@ -4,19 +4,43 @@
     android:layout_height="wrap_content"
     android:layout_marginTop="10dp">
 
-    <LinearLayout
+    <RelativeLayout
         android:id="@+id/small_ll"
         android:layout_width="match_parent"
         android:layout_height="100dp"
-        android:orientation="horizontal"
-        android:visibility="gone">
+        android:orientation="horizontal">
 
         <TextView
             android:id="@+id/small_tv"
-            android:layout_width="0dp"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:layout_weight="1"
+            android:layout_marginLeft="8dp"
+            android:layout_marginTop="8dp"
+            android:maxLines="3"
+            android:padding="8dp"
+
+            android:textSize="16sp" />
+
+        <TextView
+            android:id="@+id/sub_title_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_marginBottom="10dp"
+            android:layout_marginLeft="8dp"
+            android:layout_toLeftOf="@+id/small_img"
+            android:ellipsize="end"
+            android:lines="1"
+            android:padding="8dp"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/isre_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignBottom="@+id/small_tv"
+            android:layout_marginTop="6dp"
+            android:layout_toLeftOf="@+id/small_img"
             android:maxLines="3"
             android:padding="8dp"
             android:textSize="14sp" />
@@ -25,9 +49,11 @@
             android:id="@+id/small_img"
             android:layout_width="80dp"
             android:layout_height="80dp"
-            android:padding="5dp"
-            android:src="@drawable/subg" />
-    </LinearLayout>
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="5dp"
+            android:src="@drawable/list_01" />
+    </RelativeLayout>
 
     <RelativeLayout
         android:id="@+id/big_rl"
@@ -41,18 +67,36 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:scaleType="fitXY"
-            android:src="@drawable/subg" />
+            android:src="@drawable/dingyue" />
 
         <TextView
             android:id="@+id/big_tv"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_alignParentBottom="true"
-            android:layout_marginBottom="10dp"
             android:background="@color/subscrip_text"
             android:gravity="center_horizontal"
-            android:padding="5dp"
             android:textColor="@color/white"
             android:textSize="16sp" />
+
+        <TextView
+            android:id="@+id/big_sub_title_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_marginBottom="5dp"
+            android:layout_marginLeft="10dp"
+            android:ellipsize="end"
+            android:textColor="@color/hintColor"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/big_isre_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_below="@+id/big_tv"
+            android:layout_marginRight="5dp"
+            android:textColor="@color/hintColor"
+            android:textSize="14sp" />
     </RelativeLayout>
 </FrameLayout>

+ 0 - 334
WeiChat/src/main/res/layout/message_head.xml

@@ -1,334 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <RelativeLayout
-        android:id="@+id/schedule_rl"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/item_height"
-        android:background="@color/item_color1"
-        android:descendantFocusability="blocksDescendants"
-        android:minHeight="@dimen/item_height"
-        android:paddingLeft="15dp"
-        android:paddingRight="15dp">
-        <!--android:background="@color/item_color1"-->
-        <FrameLayout
-            android:id="@+id/schedule_head_area"
-            android:layout_width="57dp"
-            android:layout_height="64dp"
-            android:layout_centerVertical="true">
-
-            <ImageView
-                android:id="@+id/schedule_avatar_img"
-                android:layout_width="@dimen/item_img_height"
-                android:layout_height="@dimen/item_img_width"
-                android:layout_gravity="center_vertical"
-                android:background="@color/transparent"
-                android:contentDescription="@string/app_name"
-                android:padding="1dp"
-                android:src="@drawable/home_image_01_u" />
-
-            <TextView
-                android:id="@+id/schedule_num_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="top|right"
-                android:background="@drawable/tab_unread_bg"
-                android:gravity="center"
-                android:textColor="@android:color/white"
-                android:textSize="10.0dip"
-                android:visibility="visible" />
-        </FrameLayout>
-
-        <RelativeLayout
-            android:id="@+id/schedule_content"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_centerVertical="true"
-            android:layout_marginLeft="3dp"
-            android:layout_toRightOf="@id/schedule_head_area"
-            android:gravity="center_vertical">
-
-            <TextView
-                android:id="@+id/schedule_name_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_toLeftOf="@+id/schedule_time_tv"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:text="待审批流"
-                android:textColor="@color/text_main"
-                android:textSize="16sp" />
-
-            <TextView
-                android:id="@+id/schedule_time_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-
-            <TextView
-                android:id="@+id/schedule_content_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/schedule_name_tv"
-                android:layout_marginTop="8dp"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-        </RelativeLayout>
-
-    </RelativeLayout>
-
-    <RelativeLayout
-        android:id="@+id/task_rl"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/item_height"
-        android:background="@color/item_color2"
-        android:descendantFocusability="blocksDescendants"
-        android:minHeight="@dimen/item_height"
-        android:paddingLeft="15dp"
-        android:paddingRight="15dp">
-        <!--android:background="@color/item_color1"-->
-        <FrameLayout
-            android:id="@+id/task_head_area"
-            android:layout_width="57dp"
-            android:layout_height="64dp"
-            android:layout_centerVertical="true">
-
-            <ImageView
-                android:id="@+id/task_avatar_img"
-                android:layout_width="@dimen/item_img_height"
-                android:layout_height="@dimen/item_img_width"
-                android:layout_gravity="center_vertical"
-                android:background="@color/transparent"
-                android:contentDescription="@string/app_name"
-                android:padding="1dp"
-                android:src="@drawable/home_image_02_u" />
-
-            <TextView
-                android:id="@+id/task_num_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="top|right"
-                android:background="@drawable/tab_unread_bg"
-                android:gravity="center"
-                android:textColor="@android:color/white"
-                android:textSize="10.0dip"
-                android:visibility="visible" />
-        </FrameLayout>
-
-        <RelativeLayout
-            android:id="@+id/task_content"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_centerVertical="true"
-            android:layout_marginLeft="3dp"
-            android:layout_toRightOf="@id/task_head_area"
-            android:gravity="center_vertical">
-
-            <TextView
-                android:id="@+id/task_name_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_toLeftOf="@+id/task_time_tv"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:text="我的任务"
-                android:textColor="@color/text_main"
-                android:textSize="16sp" />
-
-            <TextView
-                android:id="@+id/task_time_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-
-            <TextView
-                android:id="@+id/task_content_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/task_name_tv"
-                android:layout_marginTop="8dp"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-        </RelativeLayout>
-
-    </RelativeLayout>
-
-    <RelativeLayout
-        android:id="@+id/notice_rl"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/item_height"
-        android:background="@color/item_color1"
-        android:descendantFocusability="blocksDescendants"
-        android:minHeight="@dimen/item_height"
-        android:paddingLeft="15dp"
-        android:paddingRight="15dp">
-        <!--android:background="@color/item_color1"-->
-        <FrameLayout
-            android:id="@+id/notice_head_area"
-            android:layout_width="57dp"
-            android:layout_height="64dp"
-            android:layout_centerVertical="true">
-
-            <ImageView
-                android:id="@+id/notice_avatar_img"
-                android:layout_width="@dimen/item_img_height"
-                android:layout_height="@dimen/item_img_width"
-                android:layout_gravity="center_vertical"
-                android:background="@color/transparent"
-                android:contentDescription="@string/app_name"
-                android:padding="1dp"
-                android:src="@drawable/home_image_03_u" />
-
-            <TextView
-                android:id="@+id/notice_num_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="top|right"
-                android:background="@drawable/tab_unread_bg"
-                android:gravity="center"
-                android:textColor="@android:color/white"
-                android:textSize="10.0dip"
-                android:visibility="visible" />
-        </FrameLayout>
-
-        <RelativeLayout
-            android:id="@+id/notice_content"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_centerVertical="true"
-            android:layout_marginLeft="3dp"
-            android:layout_toRightOf="@id/notice_head_area"
-            android:gravity="center_vertical">
-
-            <TextView
-                android:id="@+id/notice_name_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_toLeftOf="@+id/notice_time_tv"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:text="通知公告"
-                android:textColor="@color/text_main"
-                android:textSize="16sp" />
-
-            <TextView
-                android:id="@+id/notice_time_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-
-            <TextView
-                android:id="@+id/notice_content_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/notice_name_tv"
-                android:layout_marginTop="8dp"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-        </RelativeLayout>
-
-    </RelativeLayout>
-
-    <RelativeLayout
-        android:id="@+id/_rl"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/item_height"
-        android:background="@color/item_color2"
-        android:descendantFocusability="blocksDescendants"
-        android:minHeight="@dimen/item_height"
-        android:paddingLeft="15dp"
-        android:paddingRight="15dp">
-        <!--android:background="@color/item_color1"-->
-        <FrameLayout
-            android:id="@+id/head_area"
-            android:layout_width="57dp"
-            android:layout_height="64dp"
-            android:layout_centerVertical="true">
-
-            <ImageView
-                android:id="@+id/avatar_img"
-                android:layout_width="@dimen/item_img_height"
-                android:layout_height="@dimen/item_img_width"
-                android:layout_gravity="center_vertical"
-                android:background="@color/transparent"
-                android:contentDescription="@string/app_name"
-                android:padding="1dp"
-                android:src="@drawable/tingyue" />
-
-            <TextView
-                android:id="@+id/num_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="top|right"
-                android:background="@drawable/tab_unread_bg"
-                android:gravity="center"
-                android:textColor="@android:color/white"
-                android:textSize="10.0dip"
-                android:visibility="visible" />
-        </FrameLayout>
-
-        <RelativeLayout
-            android:id="@+id/content"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_centerVertical="true"
-            android:layout_marginLeft="3dp"
-            android:layout_toRightOf="@id/head_area"
-            android:gravity="center_vertical">
-
-            <TextView
-                android:id="@+id/nick_name_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_toLeftOf="@+id/time_tv"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:text="订阅号"
-                android:textColor="@color/text_main"
-                android:textSize="16sp" />
-
-            <TextView
-                android:id="@+id/time_tv"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-
-            <TextView
-                android:id="@+id/content_tv"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/nick_name_tv"
-                android:layout_marginTop="8dp"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:textColor="@color/text_hine"
-                android:textSize="14sp" />
-        </RelativeLayout>
-
-    </RelativeLayout>
-</LinearLayout>

+ 253 - 3
WeiChat/src/main/res/layout/message_header.xml

@@ -5,8 +5,257 @@
     android:orientation="vertical">
 
     <RelativeLayout
+        android:id="@+id/schedule_rl"
         android:layout_width="match_parent"
         android:layout_height="@dimen/item_height"
+        android:background="@color/item_color1"
+        android:descendantFocusability="blocksDescendants"
+        android:minHeight="@dimen/item_height"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp">
+        <!--android:background="@color/item_color1"-->
+        <FrameLayout
+            android:id="@+id/schedule_head_area"
+            android:layout_width="57dp"
+            android:layout_height="64dp"
+            android:layout_centerVertical="true">
+
+            <ImageView
+                android:id="@+id/schedule_avatar_img"
+                android:layout_width="@dimen/item_img_height"
+                android:layout_height="@dimen/item_img_width"
+                android:layout_gravity="center_vertical"
+                android:background="@color/transparent"
+                android:contentDescription="@string/app_name"
+                android:padding="1dp"
+                android:src="@drawable/home_image_01_u" />
+
+            <TextView
+                android:id="@+id/schedule_num_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="top|right"
+                android:background="@drawable/tab_unread_bg"
+                android:gravity="center"
+
+                android:textColor="@android:color/white"
+                android:textSize="10.0dip"
+                android:visibility="gone" />
+        </FrameLayout>
+
+        <RelativeLayout
+            android:id="@+id/schedule_content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="3dp"
+            android:layout_toRightOf="@id/schedule_head_area"
+            android:gravity="center_vertical">
+
+            <TextView
+                android:id="@+id/schedule_name_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_toLeftOf="@+id/schedule_time_tv"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:text="待审批流"
+                android:textColor="@color/text_main"
+                android:textSize="16sp" />
+
+            <TextView
+                android:id="@+id/schedule_time_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/schedule_content_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/schedule_name_tv"
+                android:layout_marginTop="8dp"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+        </RelativeLayout>
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/task_rl"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/item_height"
+        android:background="@color/item_color2"
+        android:descendantFocusability="blocksDescendants"
+        android:minHeight="@dimen/item_height"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp">
+        <!--android:background="@color/item_color1"-->
+        <FrameLayout
+            android:id="@+id/task_head_area"
+            android:layout_width="57dp"
+            android:layout_height="64dp"
+            android:layout_centerVertical="true">
+
+            <ImageView
+                android:id="@+id/task_avatar_img"
+                android:layout_width="@dimen/item_img_height"
+                android:layout_height="@dimen/item_img_width"
+                android:layout_gravity="center_vertical"
+                android:background="@color/transparent"
+                android:contentDescription="@string/app_name"
+                android:padding="1dp"
+                android:src="@drawable/home_image_02_u" />
+
+            <TextView
+                android:id="@+id/task_num_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="top|right"
+                android:background="@drawable/tab_unread_bg"
+                android:gravity="center"
+                android:textColor="@android:color/white"
+                android:textSize="10.0dip"
+                android:visibility="gone" />
+        </FrameLayout>
+
+        <RelativeLayout
+            android:id="@+id/task_content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="3dp"
+            android:layout_toRightOf="@id/task_head_area"
+            android:gravity="center_vertical">
+
+            <TextView
+                android:id="@+id/task_name_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_toLeftOf="@+id/task_time_tv"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:text="我的任务"
+                android:textColor="@color/text_main"
+                android:textSize="16sp" />
+
+            <TextView
+                android:id="@+id/task_time_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/task_content_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/task_name_tv"
+                android:layout_marginTop="8dp"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+        </RelativeLayout>
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/notice_rl"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/item_height"
+        android:background="@color/item_color1"
+        android:descendantFocusability="blocksDescendants"
+        android:minHeight="@dimen/item_height"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp">
+        <!--android:background="@color/item_color1"-->
+        <FrameLayout
+            android:id="@+id/notice_head_area"
+            android:layout_width="57dp"
+            android:layout_height="64dp"
+            android:layout_centerVertical="true">
+
+            <ImageView
+                android:id="@+id/notice_avatar_img"
+                android:layout_width="@dimen/item_img_height"
+                android:layout_height="@dimen/item_img_width"
+                android:layout_gravity="center_vertical"
+                android:background="@color/transparent"
+                android:contentDescription="@string/app_name"
+                android:padding="1dp"
+                android:src="@drawable/home_image_03_u" />
+
+            <TextView
+                android:id="@+id/notice_num_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="top|right"
+                android:background="@drawable/tab_unread_bg"
+                android:gravity="center"
+                android:textColor="@android:color/white"
+                android:textSize="10.0dip"
+                android:visibility="gone" />
+        </FrameLayout>
+
+        <RelativeLayout
+            android:id="@+id/notice_content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="3dp"
+            android:layout_toRightOf="@id/notice_head_area"
+            android:gravity="center_vertical">
+
+            <TextView
+                android:id="@+id/notice_name_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_toLeftOf="@+id/notice_time_tv"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:text="通知公告"
+                android:textColor="@color/text_main"
+                android:textSize="16sp" />
+
+            <TextView
+                android:id="@+id/notice_time_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/notice_content_tv"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/notice_name_tv"
+                android:layout_marginTop="8dp"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:textColor="@color/text_hine"
+                android:textSize="14sp" />
+        </RelativeLayout>
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/_rl"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/item_height"
+        android:background="@color/item_color2"
         android:descendantFocusability="blocksDescendants"
         android:minHeight="@dimen/item_height"
         android:paddingLeft="15dp"
@@ -23,10 +272,10 @@
                 android:layout_width="@dimen/item_img_height"
                 android:layout_height="@dimen/item_img_width"
                 android:layout_gravity="center_vertical"
-                android:background="@color/gray_light"
+                android:background="@color/transparent"
                 android:contentDescription="@string/app_name"
                 android:padding="1dp"
-                android:src="@drawable/avatar_normal" />
+                android:src="@drawable/tingyue" />
 
             <TextView
                 android:id="@+id/num_tv"
@@ -37,7 +286,7 @@
                 android:gravity="center"
                 android:textColor="@android:color/white"
                 android:textSize="10.0dip"
-                android:visibility="visible" />
+                android:visibility="gone" />
         </FrameLayout>
 
         <RelativeLayout
@@ -56,6 +305,7 @@
                 android:layout_toLeftOf="@+id/time_tv"
                 android:ellipsize="end"
                 android:singleLine="true"
+                android:text="订阅号"
                 android:textColor="@color/text_main"
                 android:textSize="16sp" />
 

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.