Browse Source

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

FANGLH 9 years ago
parent
commit
7741398a5e
26 changed files with 1802 additions and 2042 deletions
  1. 32 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/SubscriptionAdapter.java
  2. 0 383
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/WorkLogAdapter.java
  3. 4 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  4. 4 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/TaskActivity.java
  5. 84 64
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/form/SelectCalendarActivity.java
  6. 12 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java
  7. 7 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectAimActivity.java
  8. 6 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectCollisionActivity.java
  9. 9 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/MessageAdapter.java
  10. 3 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/SelectAimAdapter.java
  11. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/SelectCollisionAdapter.java
  12. 11 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/CalendarDateFragmet.java
  13. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SearchPresenter.java
  14. 40 63
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectAimPresenter.java
  15. 7 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectCollisionPresenter.java
  16. 26 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SubscriptionPresenter.java
  17. 12 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/WorkPresenter.java
  18. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/ISubscriptionView.java
  19. 18 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java
  20. 1226 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/BackMessageFragment.java
  21. 234 1085
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  22. 0 359
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/NewMessageFragment.java
  23. 23 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java
  24. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/OACalendarView.java
  25. 22 0
      WeiChat/src/main/res/layout/activity_subscription.xml
  26. 0 1
      WeiChat/src/main/res/layout/item_select_aim_empty.xml

+ 32 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/SubscriptionAdapter.java

@@ -0,0 +1,32 @@
+package com.xzjmyk.pm.activity.adapter;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+
+/**
+ * Created by Bitliker on 2017/3/18.
+ */
+
+public class SubscriptionAdapter extends BaseAdapter {
+    @Override
+    public int getCount() {
+        return 0;
+
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return null;
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return 0;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        return null;
+    }
+}

+ 0 - 383
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/WorkLogAdapter.java

@@ -1,383 +0,0 @@
-package com.xzjmyk.pm.activity.adapter;
-
-import android.content.Context;
-import android.os.Handler;
-import android.os.Message;
-import android.text.SpannableStringBuilder;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.android.volley.Response;
-import com.android.volley.VolleyError;
-import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.User;
-import com.xzjmyk.pm.activity.bean.circle.Comment;
-import com.xzjmyk.pm.activity.bean.circle.Praise;
-import com.xzjmyk.pm.activity.bean.circle.PublicMessage;
-import com.xzjmyk.pm.activity.helper.AvatarHelper;
-import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.util.HtmlUtils;
-import com.xzjmyk.pm.activity.util.LinkMovementClickMethod;
-import com.xzjmyk.pm.activity.util.StringUtils;
-import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.util.ToastUtil;
-import com.xzjmyk.pm.activity.view.MyListView;
-import com.xzjmyk.pm.activity.volley.ObjectResult;
-import com.xzjmyk.pm.activity.volley.Result;
-import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * Created by gongpm on 2016/8/1.
- */
-public class WorkLogAdapter extends BaseAdapter {
-    private static final int PRAISE_WHAT = 0x11;
-    private User user;
-    private List<PublicMessage> messages;
-    private Context context;
-    private CommentAdapter mAdapter;
-    private int pon;//点赞的对象
-    private Handler handler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            String message = msg.getData().getString("result");
-            switch (msg.what) {
-                case PRAISE_WHAT:
-                    JSONObject json = JSON.parseObject(message);
-                    if (json.getIntValue("resultCode") != 1) return;
-                    if (json.getString("data") == null) {//为取消点赞
-                        messages.get(pon).setIsPraise(0);
-                        messages.get(pon).setPraise(messages.get(pon).getPraise() - 1);
-                        List<Praise> praises = messages.get(pon).getPraises();
-                        for (int i = 0; i < praises.size(); i++) {
-                            if (praises.get(i).getUserId().equals(MyApplication.getInstance().mLoginUser.getUserId())) {
-                                praises.remove(i);
-                                break;
-                            }
-                        }
-                    } else {//点赞
-                        messages.get(pon).setIsPraise(1);
-                        Praise bean = new Praise();
-                        bean.setNickName(MyApplication.getInstance().mLoginUser.getNickName());
-                        bean.setUserId(MyApplication.getInstance().mLoginUser.getUserId());
-                        bean.setPraiseId(json.getString("data"));
-                        messages.get(pon).getPraises().add(0, bean);
-                        messages.get(pon).setPraise(messages.get(pon).getPraise() + 1);
-                    }
-                    notifyDataSetChanged();
-                    break;
-            }
-
-        }
-    };
-
-    public WorkLogAdapter(Context context, List<PublicMessage> messages) {
-        this.context = context;
-        this.messages = messages;
-        this.user = MyApplication.getInstance().mLoginUser;
-    }
-
-    public void setData(List<PublicMessage> messages) {
-        this.messages = messages;
-    }
-
-
-    @Override
-    public int getCount() {
-        return messages == null ? 0 : messages.size();
-    }
-
-    @Override
-    public Object getItem(int i) {
-        return messages.get(i);
-    }
-
-    @Override
-    public long getItemId(int i) {
-        return i;
-    }
-
-    @Override
-    public View getView(int i, View view, ViewGroup viewGroup) {
-        ViewHolder holder;
-        if (view == null) {
-            holder = new ViewHolder();
-            view = LayoutInflater.from(context).inflate(R.layout.item_activity_worklogs, null);
-            holder.avatar_img = (ImageView) view.findViewById(R.id.avatar_img);
-            holder.comment_tag = (LinearLayout) view.findViewById(R.id.comment_tag);
-            holder.name_tv = (TextView) view.findViewById(R.id.name_tv);
-            holder.content_tv = (TextView) view.findViewById(R.id.content_tv);
-            holder.time_tv = (TextView) view.findViewById(R.id.time_tv);
-            holder.like_tv = (TextView) view.findViewById(R.id.like_tv);
-            holder.command_tv = (TextView) view.findViewById(R.id.command_tv);
-            holder.command_lv = (MyListView) view.findViewById(R.id.command_lv);
-            view.setTag(holder);
-        } else {
-            holder = (ViewHolder) view.getTag();
-        }
-        bindData(holder, i);
-        return view;
-    }
-
-    private PublicMessage.Body body;//临时变量
-
-    private void bindData(ViewHolder holder, final int i) {
-        final PublicMessage message = messages.get(i);
-        holder.name_tv.setText(message.getNickName());//名字
-        AvatarHelper.getInstance().displayAvatar(message.getUserId(), holder.avatar_img, false);//头像设置
-        holder.time_tv.setText(TimeUtils.getFriendlyTimeDesc(context, (int) message.getTime()));//时间设置
-        body = message.getBody();
-        String text;
-        if (body == null || body.getText() == null) text = "";
-        else text = body.getText();
-        holder.content_tv.setText(text);
-        final List<Comment> comments = message.getComments();
-        holder.like_tv.setText(message.getPraise() + "");
-        final boolean isPraise = message.getIsPraise() != 1;
-        holder.command_tv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if (listener == null) return;
-                listener.onClick(i, message.getMessageId(), message.getUserId(), message.getNickName());
-            }
-        });
-        holder.like_tv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                praiseOrCancle(i, isPraise);
-            }
-        });
-        if (comments == null || comments.size() <= 0) {
-            holder.comment_tag.setVisibility(View.GONE);
-        } else {
-            holder.comment_tag.setVisibility(View.VISIBLE);
-        }
-        holder.command_tv.setText(comments.size() + "");
-        mAdapter = new CommentAdapter(comments);
-        holder.command_lv.setAdapter(mAdapter);
-    }
-
-    class ViewHolder {
-        ImageView avatar_img; //头像
-        TextView name_tv,//名字
-                content_tv,//内容
-                time_tv, //发表时间
-                like_tv, //点赞按钮
-                command_tv;//评论
-        MyListView command_lv;
-        LinearLayout comment_tag;
-    }
-
-
-    //评论适配器
-    public class CommentAdapter extends BaseAdapter {
-        private int messagePosition;
-        private List<Comment> datas;
-
-        public CommentAdapter(int messagePosition, List<Comment> datas) {
-            this.messagePosition = messagePosition;
-            this.datas = datas;
-        }
-
-        public CommentAdapter(List<Comment> datas) {
-            this.datas = datas;
-        }
-
-        @Override
-        public int getCount() {
-            return datas.size();
-        }
-
-        @Override
-        public Object getItem(int position) {
-            return position;
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
-        }
-
-        @Override
-        public View getView(final int position, View convertView, ViewGroup parent) {
-            ViewHolder holder = null;
-            if (convertView == null) {
-                holder = new ViewHolder();
-                convertView = LayoutInflater.from(context).inflate(R.layout.p_msg_comment_list_item, null);
-                holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
-                convertView.setTag(holder);
-            } else {
-                holder = (ViewHolder) convertView.getTag();
-            }
-            final Comment comment = datas.get(position);
-            SpannableStringBuilder builder = new SpannableStringBuilder();
-            String showName = comment.getNickName();
-            UserClickableSpan.setClickableSpan(context, builder, showName, comment.getUserId());// 设置评论者的ClickSpanned
-            if (!TextUtils.isEmpty(comment.getToUserId()) && !TextUtils.isEmpty(comment.getToNickname())) {
-                builder.append(context.getString(R.string.replay));
-                String toShowName = comment.getToNickname();
-                UserClickableSpan.setClickableSpan(context, builder, toShowName, comment.getToUserId());// 设置被评论者的ClickSpanned
-            }
-
-            builder.append(":");
-            // 设置评论内容
-            String commentBody = comment.getBody();
-            if (!TextUtils.isEmpty(commentBody)) {
-                commentBody = StringUtils.replaceSpecialChar(comment.getBody());
-                CharSequence charSequence = HtmlUtils.transform200SpanString(commentBody.replaceAll("\n", "\r\n"),
-                        true);
-                builder.append(charSequence);
-            }
-            holder.text_view.setText(builder);
-            holder.text_view.setLinksClickable(true);
-            holder.text_view.setMovementMethod(LinkMovementClickMethod.getInstance());
-            holder.text_view.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    //点击操作
-//                    if (comment.getUserId().equals(mLoginUserId)) {// 如果消息是我发的,那么就弹出删除和复制的对话框
-//                        showCommentLongClickDialog(messagePosition, position, CommentAdapter.this);
-//                    } else {// 弹出回复的框
-//                        String toShowName = getShowName(comment.getUserId(), comment.getNickName());
-//                        // 懒得写回调的,直接强转,以后如果不适用,可以写个接口回调
-//                        if (context instanceof BusinessCircleActivity) {
-//                            ((BusinessCircleActivity) mContext).showCommentEnterView(messagePosition,
-//                                    comment.getUserId(), comment.getNickName(), toShowName);
-//
-//                        } else {
-//                            ((MainActivity) context).getBusinessCircleFragment().showCommentEnterView(messagePosition,
-//                                    comment.getUserId(), comment.getNickName(), toShowName);
-//                        }
-//                    }
-                }
-            });
-            holder.text_view.setOnLongClickListener(new View.OnLongClickListener() {
-                @Override
-                public boolean onLongClick(View v) {
-
-                    return true;
-                }
-            });
-
-            return convertView;
-        }
-
-        class ViewHolder {
-            TextView text_view;
-        }
-    }
-
-
-    private ButtonViewListener listener;
-
-    public void setButtonViewListener(ButtonViewListener listener) {
-        this.listener = listener;
-    }
-
-    public interface ButtonViewListener {
-        void onClick(int i, String messageId, String userId, String nickName);
-    }
-
-
-    /**
-     * 赞或者取消赞
-     *
-     * @param
-     * @param isPraise
-     */
-//    private void praiseOrCancle(final int position, final boolean isPraise) {
-//        pon = position;
-//        //参数
-//        final PublicMessage message = messages.get(position);
-//        String requestUrl = null;
-//        if (isPraise) {
-//            requestUrl = MyApplication.getInstance().getConfig().MSG_PRAISE_ADD;
-//        } else {
-//            requestUrl = MyApplication.getInstance().getConfig().MSG_PRAISE_DELETE;
-//        }
-//        HashMap<String, Object> params = new HashMap<>();
-//        params.put("access_token", MyApplication.getInstance().mAccessToken);
-//        params.put("messageId", message.getMessageId());
-//        ViewUtil.httpSendRequest(context, requestUrl, params, handler, null, PRAISE_WHAT, null, null, "get");
-//    }
-
-    /**
-     * 赞或者取消赞
-     *
-     * @param
-     * @param isPraise
-     */
-    private void praiseOrCancle(final int position, final boolean isPraise) {
-        pon = position;
-        final PublicMessage message = messages.get(position);
-        if (message == null) {
-            return;
-        }
-
-        HashMap<String, String> params = new HashMap<String, String>();
-        params.put("access_token", MyApplication.getInstance().mAccessToken);
-        params.put("messageId", message.getMessageId());
-        String requestUrl = null;
-        if (isPraise) {
-            requestUrl = MyApplication.getInstance().getConfig().MSG_PRAISE_ADD;
-        } else {
-            requestUrl = MyApplication.getInstance().getConfig().MSG_PRAISE_DELETE;
-        }
-
-        StringJsonObjectRequest<Void> request = new StringJsonObjectRequest<Void>(requestUrl, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError arg0) {
-                ToastUtil.showErrorNet(context);
-            }
-        }, new StringJsonObjectRequest.Listener<Void>() {
-
-            @Override
-            public void onResponse(ObjectResult<Void> result) {
-                boolean success = Result.defaultParser(context, result, true);
-                if (success) {
-                    message.setIsPraise(isPraise ? 1 : 0);
-                    List<Praise> praises = message.getPraises();
-                    if (praises == null) {
-                        praises = new ArrayList<Praise>();
-                        message.setPraises(praises);
-                    }
-                    int praiseCount = message.getPraise();
-                    if (isPraise) {// 代表我点赞
-                        // 消息实体的改变
-                        Praise praise = new Praise();
-                        praise.setUserId(MyApplication.getInstance().mLoginUser.getUserId());
-                        praise.setNickName(MyApplication.getInstance().mLoginUser.getNickName());
-                        praises.add(0, praise);
-                        praiseCount++;
-                        message.setPraise(praiseCount);
-                    } else {// 取消我的赞
-                        // 消息实体的改变
-                        for (int i = 0; i < praises.size(); i++) {
-                            if (MyApplication.getInstance().mLoginUser.getUserId().equals(praises.get(i).getUserId())) {
-                                praises.remove(i);
-                                praiseCount--;
-                                message.setPraise(praiseCount);
-                                break;
-                            }
-                        }
-                    }
-                    notifyDataSetChanged();
-                }
-            }
-        }, Void.class, params);
-        ((BaseActivity) context).addDefaultRequest(request);
-    }
-
-}

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

@@ -53,7 +53,7 @@ import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.groupchat.GroupChatFragment;
 import com.xzjmyk.pm.activity.ui.me.MeFragment;
 import com.xzjmyk.pm.activity.ui.me.ScreenListener;
-import com.xzjmyk.pm.activity.ui.message.NewMessageFragment;
+import com.xzjmyk.pm.activity.ui.message.MessageFragment;
 import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.view.DivideRadioGroup;
@@ -111,7 +111,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
      * @注释:主界面Fragment
      */
     private Fragment mLastFragment;
-    private NewMessageFragment mMessageFragment;
+    private MessageFragment mMessageFragment;
     private MyFriendFragment mMyFriendFragment;//我的朋友---相互关注,单项关注,房间
     private WorksFragment mWorksFragment;//工作
     private GroupChatFragment mGroupChatFragment;//群聊
@@ -186,7 +186,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         public void onCheckedChanged(DivideRadioGroup group, int checkedId) {
             if (checkedId == R.id.main_tab_one) {
                 if (mMessageFragment == null) {
-                    mMessageFragment = new NewMessageFragment();
+                    mMessageFragment = new MessageFragment();
                 }
                 //TODO 红点问题
 //                mMessageFragment.setOnRefreshRedUI(new MessageFragment.OnRefreshUIListener() {
@@ -657,7 +657,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
 
     private void restoreState(Bundle savedInstanceState) {
         mLastFragment = getSupportFragmentManager().findFragmentById(R.id.main_content);
-        mMessageFragment = (NewMessageFragment) getSupportFragmentManager().findFragmentByTag(TAG_MESSAGE);
+        mMessageFragment = (MessageFragment) getSupportFragmentManager().findFragmentByTag(TAG_MESSAGE);
         mMyFriendFragment = (MyFriendFragment) getSupportFragmentManager().findFragmentByTag(TAG_MY);
         mWorksFragment = (WorksFragment) getSupportFragmentManager().findFragmentByTag(TAG_NEARBY);
         mGroupChatFragment = (GroupChatFragment) getSupportFragmentManager().findFragmentByTag(TAG_GROUP_CHAT);

+ 4 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/TaskActivity.java

@@ -493,11 +493,10 @@ public class TaskActivity extends BaseActivity {
             }
         });
         state_add.setOnClickListener(new OnClickListener() {
-
             @Override
             public void onClick(View v) {
                 popupWindow.dismiss();//loadWebView("jsps/mobile/addTask.jsp");
-                context.startActivity(new Intent(context, AddTaskActivity.class));
+                TaskActivity.this.startActivityForResult(new Intent(context, AddTaskActivity.class), 0x17);
             }
         });
 
@@ -534,7 +533,7 @@ public class TaskActivity extends BaseActivity {
      */
     public void sendResquestForServer(String status, int handlerWhat) {
         String url = Constants.getAppBaseUrl(context) + "common/datalist/data.action";
-        Map<String, Object> mparams = new HashMap<String, Object>();
+        Map<String, Object> mparams = new HashMap<>();
         mparams.put("sessionId", CommonUtil.getSharedPreferences(context, "sessionId"));
         mparams.put("caller", "ResourceAssignment");
         mparams.put("page", "1");
@@ -547,10 +546,7 @@ public class TaskActivity extends BaseActivity {
             mparams.put("condition", "ra_resourcecode='" + em_code + "' and ra_statuscode='" + status + "'" + " and nvl(class,' ')<>'projecttask'");
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(context, "sessionId"));
-        ViewUtil.httpSendRequest(
-                context, url,
-                mparams,
-                handler, headers, handlerWhat, null, null, "get");
+        ViewUtil.httpSendRequest(context, url, mparams, handler, headers, handlerWhat, null, null, "get");
     }
 
     /**
@@ -625,8 +621,7 @@ public class TaskActivity extends BaseActivity {
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (data == null) return;
-        if (requestCode == 0x20 && resultCode == 0x20) {
+        if (requestCode == 0x17 || (requestCode == 0x20 && resultCode == 0x20)) {
             refreshing();
         }
     }

+ 84 - 64
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/form/SelectCalendarActivity.java

@@ -110,11 +110,11 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
     private boolean swich = false;//true 按时间段   false按时间
     private boolean isMenuShuffle = false;//默认隐藏
 
-    private  Handler mHandler=new Handler(){
+    private Handler mHandler = new Handler() {
 
         @Override
         public void handleMessage(Message msg) {
-            switch (msg.what){
+            switch (msg.what) {
                 case Constants.HTTP_SUCCESS_INIT:
                     parsedResult(msg.getData().getString("result"));
                     break;
@@ -221,18 +221,18 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
             field = intent.getStringExtra("field");
 
             String mcaller = intent.getStringExtra("caller");
-            if (!TextUtils.isEmpty(mcaller) && "Workovertime".equals(mcaller)){
+            if (!TextUtils.isEmpty(mcaller) && "Workovertime".equals(mcaller)) {
                 mWorkovertime = true;
                 v_date_start.setText(startDate);
                 v_date_end.setText(startDate);
             }
-            isMenuShuffle=  intent.getBooleanExtra("hasMenu", false);
-            LogUtil.d("start:" + startDate + " end:" + endDate+" field:"+field);
-            if (!StringUtils.isEmpty(field)){
-                if (field.contains("end")||field.contains("date2")){
+            isMenuShuffle = intent.getBooleanExtra("hasMenu", false);
+            LogUtil.d("start:" + startDate + " end:" + endDate + " field:" + field);
+            if (!StringUtils.isEmpty(field)) {
+                if (field.contains("end") || field.contains("date2")) {
                     //结束时间
                     swichDateButton(false);
-                    this.startDate=false;
+                    this.startDate = false;
                 }
             }
             id = intent.getIntExtra("id", 0);
@@ -241,21 +241,21 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
                 v_date_start.setText(startDate.substring(0, startDate.length() - 3));
                 v_date_end.setText(endDate.substring(0, endDate.length() - 3));
                 currentSelectDate = startDate.substring(0, 10);
-                Log.v("startDate1",startDate);
-                Log.v("endDate1",endDate);
-                Log.v("v_date_start1",v_date_start.getText().toString());
-                Log.v("v_date_end1",v_date_end.getText().toString());
-                Log.d("currentSelectDate1",currentSelectDate);
-            }else{
+                Log.v("startDate1", startDate);
+                Log.v("endDate1", endDate);
+                Log.v("v_date_start1", v_date_start.getText().toString());
+                Log.v("v_date_end1", v_date_end.getText().toString());
+                Log.d("currentSelectDate1", currentSelectDate);
+            } else {
                 String currentDate = TimeUtils.long_to_yMdHm_str(System.currentTimeMillis());
-                v_date_start.setText(currentDate.substring(0,currentDate.length() ));
-                v_date_end.setText(currentDate.substring(0,currentDate.length()));
+                v_date_start.setText(currentDate.substring(0, currentDate.length()));
+                v_date_end.setText(currentDate.substring(0, currentDate.length()));
                 currentSelectDate = currentDate.substring(0, 10);
                 Log.v("startDate2", currentDate);
-                Log.v("endDate2",currentDate);
+                Log.v("endDate2", currentDate);
                 Log.v("v_date_start2", v_date_start.getText().toString());
                 Log.v("v_date_end2", v_date_end.getText().toString());
-                Log.d("currentSelectDate2",currentSelectDate);
+                Log.d("currentSelectDate2", currentSelectDate);
             }
         }
         initListener();
@@ -315,14 +315,14 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
                         startDate = false;
                         if (!StringUtils.isEmpty(v_date_start.getText().toString())) {
                             currentSelectDate = v_date_start.getText().toString().substring(0, 10);//清空
-                            Log.d("currentSelectDate3",currentSelectDate);
+                            Log.d("currentSelectDate3", currentSelectDate);
                         } else {
                             currentSelectDate = null;//清空
                         }
                         v_date_end.setText(v_date_start.getText().toString());
                     } else {
                         //结束时间
-                        Log.d("currentSelectDate4",currentSelectDate);
+                        Log.d("currentSelectDate4", currentSelectDate);
                         v_date_end.setText(currentSelectDate + " " + modle.tv_text.getText().toString());
                     }
 
@@ -337,10 +337,14 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
         sendRequest();//获取班次信息
         initCalender();
     }
+
     private int posItem;           //当前为滑动到的哪个Viewpager
     private Date curDate;    //当前显示的日期  包含年月日信息
+    private int selectDay;
+
     private void initCalender() {
         setDate();
+        selectDay = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
         listenerMap = new HashMap<>();
         LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) viewPager.getLayoutParams(); // 取控件mGrid当前的布局参数   搜索
         linearParams.height = (getResources().getDisplayMetrics().heightPixels * 1 / 3);// 当控件的高强制设成50象素
@@ -359,9 +363,10 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
             @Override
             public void onPageSelected(int position) {
                 posItem = position;
-                curDate = date[position];
                 Calendar c = Calendar.getInstance();
-                c.setTime(curDate);
+                c.setTime(date[position]);
+                c.set(Calendar.DAY_OF_MONTH, selectDay);
+                curDate = c.getTime();
                 setDateTag(curDate);
             }
 
@@ -372,6 +377,8 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
         });
 
     }
+
+
     private void setDateTag(Date date) {
         Calendar c = Calendar.getInstance();
         c.setTime(date);
@@ -380,22 +387,22 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
         int day = c.get(Calendar.DAY_OF_MONTH);
         String m = "";
         String d = "";
-        if (month < 10){
+        if (month < 10) {
             m = "0" + month;
-        }else {
-            m = month+"";
+        } else {
+            m = month + "";
         }
-        if (day < 10){
+        if (day < 10) {
             d = "0" + day;
-        }else {
-            d = day+"";
+        } else {
+            d = day + "";
         }
-        if (startDate){
-            v_date_start.setText(yeas + "-" + m + "-" + d );
+        if (startDate) {
+            v_date_start.setText(yeas + "-" + m + "-" + d);
             Log.d("Slide_date", yeas + "-" + month + "-" + day);
-            Log.d("Slide_date1",yeas+"-"+m+"-"+d);
-        }else {
-            v_date_end.setText(yeas + "-" + m + "-" + d );
+            Log.d("Slide_date1", yeas + "-" + m + "-" + d);
+        } else {
+            v_date_end.setText(yeas + "-" + m + "-" + d);
         }
 
     }
@@ -405,10 +412,10 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
      * @author:Arison on 2017/1/18
      */
     private void initGridData() {
-        if (!ListUtils.isEmpty(mTimeData)){
+        if (!ListUtils.isEmpty(mTimeData)) {
             mTimeData.clear();
         }
-        if (mWorkovertime){
+        if (mWorkovertime) {
             mTimeData.add("00:00");
             mTimeData.add("01:00");
             mTimeData.add("02:00");
@@ -433,7 +440,7 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
             mTimeData.add("21:00");
             mTimeData.add("22:00");
             mTimeData.add("23:00");
-        }else {
+        } else {
             mTimeData.add("08:30");
             mTimeData.add("09:00");
             mTimeData.add("09:30");
@@ -459,8 +466,8 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
         gv_date_list.setAdapter(gAdapter);
     }
 
-    public void parsedResult(String result){
-        if (result==null) {
+    public void parsedResult(String result) {
+        if (result == null) {
             result = "{\"ifDefaultClass\":false,\"wd_degree\":2,\"wd_earlytime\":null,\"comAddressdata\":[{\"CS_WORKADDR\":\"深圳市南山区\",\"CS_VALIDRANGE\":\"300\",\"CS_ID\":10141,\"CS_LATITUDE\":\"22.540676518856678\",\"CS_LONGITUDE\":\"113.9528745854545\",\"CS_SHORTNAME\":\"宇声数码技术公司\",\"CS_CODE\":\"2017020234\",\"CS_INNERDISTANCE\":500,\"success\":true},{\"CS_WORKADDR\":\"广东省深圳市南山区高新区科技南六路29号万德莱大厦南座6楼\",\"CS_VALIDRANGE\":\"300\",\"CS_ID\":10143,\"CS_LATITUDE\":\"22.5416028163184\",\"CS_LONGITUDE\":\"113.95309916183191\",\"CS_SHORTNAME\":\"深圳市中兴供应链有限公司\",\"CS_CODE\":\"2017020236\",\"CS_INNERDISTANCE\":500,\"success\":true}],\"count\":null,\"wd_code\":\"TEST1\",\"Class3\":{\"wd_offend\":null,\"wd_onduty\":null,\"wd_offduty\":null,\"wd_onbeg\":null},\"Class2\":{\"wd_offend\":\"20:00\",\"wd_onduty\":\"13:30\",\"wd_offduty\":\"18:00\",\"wd_onbeg\":\"13:00\"},\"wd_id\":111281,\"Class1\":{\"wd_offend\":\"12:30\",\"wd_onduty\":\"08:30\",\"wd_offduty\":\"12:00\",\"wd_onbeg\":\"07:00\"},\"wd_pcount\":null,\"wd_name\":\"测试1\",\"ifNeedSignCard\":true,\"innerdistance\":null,\"distance\":null,\"sessionId\":\"729F70FB568EF25CC7F1CEE14A0900EE\",\"comaddressset\":false,\"longitude\":null,\"latitude\":null,\"success\":true,\"wd_day\":null}";
         }
         // List<String> mTimeData=new ArrayList<String>();
@@ -471,29 +478,29 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
             JSONObject Class3 = root.getJSONObject("Class3");
             int type = 0;// 默认没有班次
             String wd_onduty = Class1.getString("wd_onduty");// 上班时间
-            if (wd_onduty != null){
-                String wd_offduty=Class1.getString("wd_offduty");//结束时间
+            if (wd_onduty != null) {
+                String wd_offduty = Class1.getString("wd_offduty");//结束时间
                 type = 1;
                 //获取时间累加,加半小时
-                mTimeData.addAll(timeAddMuilt(wd_onduty,wd_offduty));
+                mTimeData.addAll(timeAddMuilt(wd_onduty, wd_offduty));
             }
             wd_onduty = Class2.getString("wd_onduty");// 上班时间
-            if (wd_onduty != null){
-                String wd_offduty=Class2.getString("wd_offduty");//结束时间
+            if (wd_onduty != null) {
+                String wd_offduty = Class2.getString("wd_offduty");//结束时间
                 type = 2;
-                mTimeData.addAll(timeAddMuilt(wd_onduty,wd_offduty));
+                mTimeData.addAll(timeAddMuilt(wd_onduty, wd_offduty));
             }
             wd_onduty = Class3.getString("wd_onduty");// 上班时间
-            if (wd_onduty != null){
-                String wd_offduty=Class3.getString("wd_offduty");//结束时间
+            if (wd_onduty != null) {
+                String wd_offduty = Class3.getString("wd_offduty");//结束时间
                 type = 3;
-                mTimeData.addAll(timeAddMuilt(wd_onduty,wd_offduty));
+                mTimeData.addAll(timeAddMuilt(wd_onduty, wd_offduty));
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
         System.out.println(JSON.toJSON(mTimeData));
-        if (ListUtils.isEmpty(mTimeData)){
+        if (ListUtils.isEmpty(mTimeData)) {
             mTimeData.add("08:30");
             mTimeData.add("09:00");
             mTimeData.add("09:30");
@@ -516,7 +523,7 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
             mTimeData.add("18:30");
         }
 
-        if (mWorkovertime){
+        if (mWorkovertime) {
             mTimeData.clear();
             mTimeData.add("00:00");
             mTimeData.add("01:00");
@@ -549,22 +556,22 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
 
     /**
      * 返回指定时间段内  循环累加半小时
+     *
      * @param start
-     * @param end
-     * 08:30-12:30  [首 +中间值累加半小时 + 尾]
+     * @param end   08:30-12:30  [首 +中间值累加半小时 + 尾]
      * @return
      */
-    public static List<String> timeAddMuilt(String start,String end){
-        List<String> result=new ArrayList<String>();
+    public static List<String> timeAddMuilt(String start, String end) {
+        List<String> result = new ArrayList<String>();
         result.add(start);
-        int i=0;
-        while(true){
-            start=DateFormatUtil.add(DateFormatUtil.getDate4StrDate(start, "HH:mm"),
-                    "HH:mm",1*1*30*60 * 1000);
-            if(start.compareTo(end)>=0){
+        int i = 0;
+        while (true) {
+            start = DateFormatUtil.add(DateFormatUtil.getDate4StrDate(start, "HH:mm"),
+                    "HH:mm", 1 * 1 * 30 * 60 * 1000);
+            if (start.compareTo(end) >= 0) {
                 result.add(end);
                 break;
-            }else{
+            } else {
                 result.add(start);
             }
             i++;
@@ -668,13 +675,13 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
      * @desc:发送网络请求
      * @author:Arison on 2017/2/15
      */
-    private void sendRequest(){
+    private void sendRequest() {
         String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") +
                 "mobile/getWorkDate.action";
         Map<String, Object> param = new HashMap<>();
-        param.put("date", DateFormatUtil.getStrDate4Date(new Date(),"yyyyMMdd"));
-        param.put("master", CommonUtil.getSharedPreferences(mContext,"erp_master"));
-        param.put("emcode",CommonUtil.getSharedPreferences(mContext,"erp_username"));
+        param.put("date", DateFormatUtil.getStrDate4Date(new Date(), "yyyyMMdd"));
+        param.put("master", CommonUtil.getSharedPreferences(mContext, "erp_master"));
+        param.put("emcode", CommonUtil.getSharedPreferences(mContext, "erp_username"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
         ViewUtil.httpSendRequest(this, url, param, mHandler, headers, Constants.HTTP_SUCCESS_INIT, null, null, "post");
@@ -788,13 +795,23 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
 
         @Override
         public Fragment getItem(int position) {
-            return CalendarDateFragmet.getInstance(date[position]);
+            return CalendarDateFragmet.getInstance(date[position], selectDay);
         }
 
         @Override
         public int getCount() {
             return MAX_PAGER;
         }
+
+        @Override
+        public void setPrimaryItem(ViewGroup container, final int position, Object object) {
+            try {
+                CalendarDateFragmet fragmet = (CalendarDateFragmet) object;
+                fragmet.setDownDay(selectDay);
+            } catch (Exception e) {
+
+            }
+        }
     }
 
     private Map<String, OnTaskChangeListener> listenerMap;
@@ -810,6 +827,9 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
     /*当点击了指定日期(点击日期、滑动时候触发)*/
     public void setClickDay(Date date) {
         currentSelectDate = DateFormatUtil.getStrDate4Date(date, "yyyy-MM-dd");
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        selectDay = c.get(Calendar.DAY_OF_MONTH);
         if (swich) {
             //按时间段
             if (startDate) {

+ 12 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java

@@ -21,6 +21,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.MeetEntity;
 import com.xzjmyk.pm.activity.bean.oa.MeetingDocBean;
+import com.xzjmyk.pm.activity.bean.oa.SearchPoiParam;
 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;
@@ -375,16 +376,15 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
                 }
                 break;
             case R.id.location_tag://点击重新定位
-//                intent = new Intent(ct, LocationMapActivity.class);
-//                intent.putExtra("action", "MeetDetailsActivity");
-//                startActivityForResult(intent, 0x11);
-                intent = new Intent(ct, LocationSearchActivity.class);
-                intent.putExtra("type", 1);
-                intent.putExtra("title", "地点微调");
-                intent.putExtra("single", true);
-                intent.putExtra("radius", 300);
-                intent.putExtra("resultCode", 0x20);
-                intent.putExtra("resultName", "resultName");
+                intent = new Intent(ct, SearchLocationActivity.class);
+                SearchPoiParam poiParam = new SearchPoiParam();
+                poiParam.setType(1);
+                poiParam.setTitle("地点微调");
+                poiParam.setRadius(300);
+                poiParam.setContrastLatLng(MyApplication.getInstance().getBdLocationHelper().getLocation());
+                poiParam.setResultCode(0x20);
+                poiParam.setDistanceTag("m");
+                intent.putExtra("data", poiParam);
                 startActivityForResult(intent, 0x20);
                 break;
             case R.id.add_task_ll://添加任务
@@ -403,8 +403,8 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
             if (poi == null) return;
             location_tv.setText(poi.address == null ? "" : poi.address);
         }
-        if (requestCode == 0x20 && resultCode == 0x20){
-            PoiInfo poi = data.getParcelableExtra("resultName");
+        if (requestCode == 0x20 && resultCode == 0x20) {
+            PoiInfo poi = data.getParcelableExtra("resultKey");
             if (poi == null) return;
             location_tv.setText(poi.address == null ? "" : poi.address);
         }

+ 7 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectAimActivity.java

@@ -6,11 +6,9 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Editable;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.View;
 import android.widget.LinearLayout;
 
-import com.alibaba.fastjson.JSON;
 import com.baidu.mapapi.map.MapView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
@@ -21,7 +19,7 @@ import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.SelectAimModel;
 import com.xzjmyk.pm.activity.ui.erp.presenter.SelectAimPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectAim;
-import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.util.AndroidUtils;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.view.ClearEditText;
@@ -91,7 +89,6 @@ public class SelectAimActivity extends OABaseActivity implements ISelectAim {
             public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                 super.onScrollStateChanged(recyclerView, newState);
                 if (newState == RecyclerView.SCROLL_STATE_DRAGGING) {
-                    Log.i("gongpengming", "进来了 addOnScrollListener");
                     AndroidUtils.hideInput(ct, search_edit);
                 }
             }
@@ -114,8 +111,12 @@ public class SelectAimActivity extends OABaseActivity implements ISelectAim {
         if (!TextUtils.isEmpty(search_edit.getText())) {
             mapView.setVisibility(View.GONE);
         } else mapView.setVisibility(View.VISIBLE);
-        LogUtil.d(JSON.toJSONString(models));
-        adapter.setModels(models, !TextUtils.isEmpty(search_edit.getText()));
+        if (ListUtils.isEmpty(models)) {
+            SelectAimModel model = new SelectAimModel();
+            model.setType(1);
+            models.add(model);
+        }
+        adapter.setModels(models);
         adapter.notifyDataSetChanged();
     }
 }

+ 6 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectCollisionActivity.java

@@ -16,9 +16,9 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.SelectEmUser;
 import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
 import com.xzjmyk.pm.activity.sortlist.SideBar;
-import com.xzjmyk.pm.activity.ui.erp.adapter.oa.SelectActiveAdapter;
+import com.xzjmyk.pm.activity.ui.erp.adapter.oa.SelectCollisionAdapter;
 import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
-import com.xzjmyk.pm.activity.ui.erp.presenter.SelectActivePresenter;
+import com.xzjmyk.pm.activity.ui.erp.presenter.SelectCollisionPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectActiveView;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
@@ -44,8 +44,8 @@ public class SelectCollisionActivity extends OABaseActivity implements ISelectAc
     private TextView sure_tv;
     @ViewInject(R.id.all_sure_cb)
     private CheckBox all_sure_cb;
-    private SelectActiveAdapter adapter;
-    private SelectActivePresenter presenter;
+    private SelectCollisionAdapter adapter;
+    private SelectCollisionPresenter presenter;
     private int allSelect = 0;
     private boolean isClickCb = true;
     private EmptyLayout emptyLayout;
@@ -66,7 +66,7 @@ public class SelectCollisionActivity extends OABaseActivity implements ISelectAc
         emptyLayout.setShowErrorButton(false);
         emptyLayout.setEmptyViewRes(R.layout.view_empty);
         sidebar.setTextView(text_dialog);
-        presenter = new SelectActivePresenter(this);
+        presenter = new SelectCollisionPresenter(this);
         if (getIntent() != null) {
             String title = getIntent().getStringExtra("title");
             if (!StringUtils.isEmpty(title))
@@ -140,7 +140,7 @@ public class SelectCollisionActivity extends OABaseActivity implements ISelectAc
     public void showModel(List<BaseSortModel<SelectEmUser>> models) {
 
         if (adapter == null) {
-            adapter = new SelectActiveAdapter();
+            adapter = new SelectCollisionAdapter();
             adapter.setListData(models);
             listView.setAdapter(adapter);
         } else {

+ 9 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/MessageAdapter.java

@@ -83,19 +83,19 @@ public class MessageAdapter extends BaseAdapter {
     private void bindView(ViewHolder holder, Friend friend) {
         holder.avatar_img.setBackgroundResource(R.color.transparent);
         //设置头像
-        if (friend.getRoomFlag() == 0) {// 这是单个人
+        if (friend.getType() == XmppMessage.TYPE_ERP) {
+            doShowMsgPhotos(holder, friend);
+        } else if (friend.getRoomFlag() == 0) {// 这是单个人
             AvatarHelper.getInstance().display(friend.getUserId(), holder.avatar_img, false, true);//每次刷新都会去删除此人缓存
 //            AvatarHelper.getInstance().displayAvatar(friend.getUserId(), holder.avatar_img, true);
-        } else if (friend.getType()==XmppMessage.TYPE_ERP){
-
-        }else{
+        } else {
             if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
                 holder.avatar_img.setImageResource(R.drawable.qunliao);
             } else {
                 AvatarHelper.getInstance().displayAvatarPng(friend.getRoomCreateUserId(), holder.avatar_img, true);// 目前在备注名放房间的创建者Id
             }
         }
-        doShowMsgPhotos(holder, friend);
+
         //设置名字和时间
         holder.nick_name_tv.setText(friend.getRemarkName() != null ? friend.getRemarkName() : friend.getNickName());
         holder.time_tv.setText(TimeUtils.getFriendlyTimeDesc(MyApplication.getInstance(), friend.getTimeSend()));
@@ -107,7 +107,7 @@ public class MessageAdapter extends BaseAdapter {
         } else {
             content = friend.getContent();
         }
-        if (!TextUtils.isEmpty(content)){
+        if (!TextUtils.isEmpty(content)) {
             holder.content_tv.setText(Html.fromHtml(content.toString()));
         }
         //设置红点显示数量
@@ -123,7 +123,7 @@ public class MessageAdapter extends BaseAdapter {
 
     private void doShowMsgPhotos(ViewHolder holder, Friend friend) {
         String msg_type = friend.getDescription();
-        if (!TextUtils.isEmpty(msg_type)){
+        if (!TextUtils.isEmpty(msg_type)) {
             int imageurl = 0;
             switch (msg_type) {
                 case "note": // 通知公告
@@ -158,7 +158,8 @@ public class MessageAdapter extends BaseAdapter {
                     break;
                 default:
                     imageurl = R.drawable.gongzuotixing;
-            }holder.avatar_img.setImageResource(imageurl);
+            }
+            holder.avatar_img.setImageResource(imageurl);
         }
     }
 

+ 3 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/SelectAimAdapter.java

@@ -23,15 +23,13 @@ import java.util.List;
 
 public class SelectAimAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
     private List<SelectAimModel> models;
-    private boolean imageShow;
 
     public List<SelectAimModel> getModels() {
         return models;
     }
 
-    public void setModels(List<SelectAimModel> models, boolean imageShow) {
+    public void setModels(List<SelectAimModel> models ) {
         this.models = models;
-        this.imageShow=imageShow;
     }
 
     @Override
@@ -103,8 +101,8 @@ public class SelectAimAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
         holder.title_tv.setText(getNull(model.getName()));
         holder.sub_tv.setText(getNull(model.getAddress()));
         holder.distance_tv.setText(getKm(BaiduMapUtil.getInstence().getDistance(model.getLatLng())));
-        holder.tag_tv.setVisibility((!imageShow&&model.isFirst()) ? View.VISIBLE : View.GONE);
-        holder.tag_view.setVisibility((!imageShow&&model.isFirst()) ? View.VISIBLE : View.GONE);
+        holder.tag_tv.setVisibility((model.isFirst()) ? View.VISIBLE : View.GONE);
+        holder.tag_view.setVisibility((model.isFirst()) ? View.VISIBLE : View.GONE);
     }
 
     private String getKm(String dis) {

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/SelectActiveAdapter.java → WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/SelectCollisionAdapter.java

@@ -30,7 +30,7 @@ import static com.xzjmyk.pm.activity.R.id.tag_view;
  * Created by Bitliker on 2017/2/14.
  */
 
-public class SelectActiveAdapter extends BaseAdapter {
+public class SelectCollisionAdapter extends BaseAdapter {
     private List<BaseSortModel<SelectEmUser>> listData;
 
     public List<BaseSortModel<SelectEmUser>> getListData() {

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

@@ -19,10 +19,11 @@ import java.util.Set;
 /**
  * Created by pengminggong on 2016/9/28.
  */
+
 /**
-  * @desc:此类暂时过渡,需要删除并优化---详情请见 CalendarFragmet
-  * @author:Arison on 2017/1/18
-  */
+ * @desc:此类暂时过渡,需要删除并优化---详情请见 CalendarFragmet
+ * @author:Arison on 2017/1/18
+ */
 public class CalendarDateFragmet extends Fragment {
     private SelectCalendarActivity activity;
     private OACalendarView calendarView;
@@ -31,10 +32,11 @@ public class CalendarDateFragmet extends Fragment {
      * @param date 显示月份
      * @return
      */
-    public static CalendarDateFragmet getInstance(Date date) {
+    public static CalendarDateFragmet getInstance(Date date, int day) {
         CalendarDateFragmet fragment = new CalendarDateFragmet();
         Bundle bundle = new Bundle();
         bundle.putSerializable("DATA", date);
+        bundle.putInt("day", day);
         fragment.setArguments(bundle);
         return fragment;
     }
@@ -51,7 +53,9 @@ public class CalendarDateFragmet extends Fragment {
         View view = inflater.inflate(R.layout.item_calendar, container, false);
         calendarView = (OACalendarView) view.findViewById(R.id.calender);
         Date date = (Date) getArguments().getSerializable("DATA");
+        int day = getArguments().getInt("day");
         calendarView.setCurDate(date);
+        calendarView.setDownIndex(day);
         //判断是否是当月
         calendarView.getCurDate();
         if (activity != null) {
@@ -71,4 +75,7 @@ public class CalendarDateFragmet extends Fragment {
         return view;
     }
 
+    public void setDownDay(int downDay) {
+        calendarView.setDownIndex(downDay);
+    }
 }

+ 3 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SearchPresenter.java

@@ -122,7 +122,7 @@ public class SearchPresenter {
             }
             showData(chche);
         } else {
-            loadDataByCity();
+            loadDataByChina();
         }
     }
 
@@ -144,14 +144,14 @@ public class SearchPresenter {
                 if (StringUtils.isEmpty(param.getKeyWork())) {
                     loadDataByNeer();
                 } else
-                    loadDataByCity();
+                    loadDataByChina();
                 break;
             default:
                 break;
         }
     }
 
-    private void loadDataByCity() {
+    private void loadDataByChina() {
         isLoadChina = true;
         BaiduMapUtil.getInstence().searchByInputOnChina(StringUtils.isEmpty(param.getKeyWork()) ? "" : param.getKeyWork(), pageNum, listener);
     }

+ 40 - 63
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectAimPresenter.java

@@ -11,7 +11,6 @@ import com.baidu.mapapi.search.core.PoiInfo;
 import com.baidu.mapapi.search.core.SearchResult;
 import com.baidu.mapapi.search.poi.PoiResult;
 import com.xzjmyk.pm.activity.AppConfig;
-import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.SelectAimModel;
@@ -39,32 +38,25 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
     private ISelectAim iSelectAim;
     private final int LOAD = 0x11;
     private final int LOAD_CUSTOMER = 0x12;//拜访计划客户名称数据
-    private BdLocationHelper locationHelper;
     private List<SelectAimModel> models;//从服务其返回的数据列表
-    private String keyWork;
-    private boolean seachChina = false;
     private List<SelectAimModel> keyList;//搜索企业筛选的人员
+    private int seachMapType = 0;//下拉百度地图数据类型  1.获取附近数据  2.获取全国数据  2.获取城市数据
+    private String keyWork;
     private boolean isB2b;
 
 
     public SelectAimPresenter(ISelectAim iSelectAim) {
+        if (iSelectAim == null) {
+            new NullPointerException("ISelectAim is null");
+        }
         this.iSelectAim = iSelectAim;
     }
 
-    /******
-     * start 对外接口
-     **********/
-    public void start() {
-        locationHelper = MyApplication.getInstance().getBdLocationHelper();
-        loadOutAddress();
-    }
-
     /******
      * start 对外接口
      **********/
     public void start(int type) {
         isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
-        locationHelper = MyApplication.getInstance().getBdLocationHelper();
         if (type == 1) {
             loadCustomerData();
         } else {
@@ -82,10 +74,10 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
             }
         } else {
             if (StringUtils.isEmpty(keyWork)) {
-                if (iSelectAim != null) {
-                    iSelectAim.showModel(models);
-                    return;
-                }
+                for (SelectAimModel m : models)
+                    m.setFirst(false);
+                iSelectAim.showModel(models);
+                return;
             }
             if (keyList == null)
                 keyList = new ArrayList<>();
@@ -116,7 +108,6 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
 
     //从服务器获取数据
     private void loadOutAddress() {
-        log("loadOutAddress");
         if (!MyApplication.getInstance().isNetworkActive()) {
             if (iSelectAim != null)
                 iSelectAim.showToast(R.string.networks_out, R.color.load_error);
@@ -159,18 +150,19 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
 
     //下载附近数据
     private void loadNeer() {
-        BaiduMapUtil.getInstence().getNearInfo(200, 0, locationHelper.getLocation(), listener);
+        seachMapType = 1;
+        BaiduMapUtil.getInstence().getNearInfo(200, 0, MyApplication.getInstance().getBdLocationHelper().getLocation(), listener);
     }
 
     //下载全国数据
     private void loadDataByChina() {
-        seachChina = true;
+        seachMapType = 2;
         BaiduMapUtil.getInstence().searchByInputOnChina(StringUtils.isEmpty(keyWork) ? "" : keyWork, 0, listener);
     }
 
     //下载本城市数据
     private void loadDataByCity() {
-        seachChina = false;
+        seachMapType = 3;
         BaiduMapUtil.getInstence().searchByInput(StringUtils.isEmpty(keyWork) ? "" : keyWork, 0, listener);
     }
 
@@ -178,49 +170,42 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
         @Override
         public void result(SearchResult result) {
             if (StringUtils.isEmpty(keyWork) && !ListUtils.isEmpty(models)) {
+                for (SelectAimModel e : models)
+                    e.setFirst(false);
                 iSelectAim.showModel(models);
                 return;
             }
-            if (result == null) {
-                if (seachChina) {
+            if (result == null || ListUtils.isEmpty(((PoiResult) result).getAllPoi())) {
+                if (seachMapType == 1) {
+                    loadDataByChina();
+                    return;
+                } else if (seachMapType == 2) {
                     loadDataByCity();
                     return;
                 } else {
                     showEmpty();
-                }
-                return;
-            }
-            PoiResult poiResult = (PoiResult) result;
-            List<PoiInfo> chches = poiResult.getAllPoi();
-            if (ListUtils.isEmpty(chches)) {
-                if (seachChina) {
-                    loadDataByCity();
                     return;
-                } else {//搜索城市为空数据
-                    showEmpty();
                 }
             } else {
                 List<SelectAimModel> models = new ArrayList<>();
                 SelectAimModel model = null;
                 boolean isFirst = true;
+                List<PoiInfo> chches = ((PoiResult) result).getAllPoi();
                 for (int i = 0; i < chches.size(); i++) {
-                    if (StringUtils.isEmpty(chches.get(i).name) || StringUtils.isEmpty(chches.get(i).address)) {
-                        chches.remove(i);
-                        i--;
+                    if (StringUtils.isEmpty(chches.get(i).name) || StringUtils.isEmpty(chches.get(i).address))
+                        continue;
+                    model = new SelectAimModel();
+                    model.setType(3);
+                    model.setName(chches.get(i).name);
+                    model.setAddress(chches.get(i).address);
+                    model.setLatLng(chches.get(i).location);
+                    if (isFirst) {
+                        model.setFirst(true);
+                        isFirst = false;
                     } else {
-                        model = new SelectAimModel();
-                        model.setType(3);
-                        model.setName(chches.get(i).name);
-                        model.setAddress(chches.get(i).address);
-                        model.setLatLng(chches.get(i).location);
-                        if (isFirst) {
-                            model.setFirst(true);
-                            isFirst = false;
-                        } else {
-                            model.setFirst(false);
-                        }
-                        models.add(model);
+                        model.setFirst(false);
                     }
+                    models.add(model);
                 }
                 if (ListUtils.isEmpty(models)) {
                     showEmpty();
@@ -238,13 +223,13 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
 
     @Override
     public void result(int what, boolean isJSON, String message, Bundle bundle) {
-        if (what == LOAD && isJSON) {
-            JSONArray array = JSON.parseObject(message).getJSONArray("data");
-            handleDada(array);
-        } else if (what == LOAD_CUSTOMER) {
-            JSONArray array = JSON.parseObject(message).getJSONArray("customers");
-            handleDadaForCustomer(array);
-
+        if (isJSON && (what == LOAD || what == LOAD_CUSTOMER)) {
+            JSONArray array = JSON.parseObject(message).getJSONArray(what == LOAD ? "data" : "customers");
+            if (what == LOAD) {
+                handleDada(array);
+            } else {
+                handleDadaForCustomer(array);
+            }
         }
     }
 
@@ -265,14 +250,12 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
         }
         SelectAimModel model = null;
         JSONObject object = null;
-
         String company = isB2b ? "company" : "MD_COMPANY";
         String address = isB2b ? "md_address" : "MD_ADDRESS";
         String md_latitude = isB2b ? "md_latitude" : "MD_LATITUDE";
         String md_longitude = isB2b ? "md_longitude" : "MD_LONGITUDE";
         String md_visitcount = isB2b ? "md_visitcount" : "MD_VISITCOUNT";
         String md_visittime = isB2b ? "md_visittime" : "MD_VISITTIME";
-
         List<SelectAimModel> models = new ArrayList<>();
         for (int i = 0; i < array.size(); i++) {
             try {
@@ -345,16 +328,10 @@ public class SelectAimPresenter implements HttpHandler.OnResultListener {
     }
 
     private void showEmpty() {
-        List<SelectAimModel> models = new ArrayList<>();
-        SelectAimModel model = new SelectAimModel();
-        model.setType(1);
-        models.add(model);
         if (!StringUtils.isEmpty(keyWork)) {//有搜索
             if (keyList == null || hasEmpty(keyList)) {
                 keyList = new ArrayList<>();
             }
-            if (ListUtils.isEmpty(keyList))
-                keyList.addAll(models);
             show(keyList);
         } else
             show(models);

+ 7 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectActivePresenter.java → WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectCollisionPresenter.java

@@ -32,7 +32,7 @@ import java.util.Map;
  * Created by Bitliker on 2017/2/14.
  */
 
-public class SelectActivePresenter implements HttpHandler.OnResultListener {
+public class SelectCollisionPresenter implements HttpHandler.OnResultListener {
     private final int WHAT_LOAD = 0x11;
     private ISelectActiveView iSelectActiveView;
     private List<BaseSortModel<SelectEmUser>> allList;
@@ -40,7 +40,7 @@ public class SelectActivePresenter implements HttpHandler.OnResultListener {
     private String selectName;
     private int type = 0;//具体表示见下方
 
-    public SelectActivePresenter(ISelectActiveView iSelectActiveView) {
+    public SelectCollisionPresenter(ISelectActiveView iSelectActiveView) {
         this.iSelectActiveView = iSelectActiveView;
     }
 
@@ -219,11 +219,14 @@ public class SelectActivePresenter implements HttpHandler.OnResultListener {
 
     private void setUser2Sort(List<SelectEmUser> list, boolean isClick) {
         int numSelect = 0;
+//        if (!StringUtils.isEmpty(selectName)) {
+//            selectName.replaceAll("\'", "");
+//            selectName = "," + selectName + ",";
+//        }
         for (SelectEmUser e : list) {
             BaseSortModel<SelectEmUser> mode = new BaseSortModel<>();
             if (!isClick && !StringUtils.isEmpty(selectName)) {
-                selectName=","+selectName+",";
-                if (StringUtils.isInclude(selectName, ","+e.getEmName()+",")) {
+                if (StringUtils.isInclude(selectName, e.getEmName())) {
                     numSelect++;
                     mode.setClick(true);
                 }

+ 26 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SubscriptionPresenter.java

@@ -0,0 +1,26 @@
+package com.xzjmyk.pm.activity.ui.erp.presenter;
+
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISubscriptionView;
+
+/**
+ * Created by Bitliker on 2017/3/17.
+ */
+
+public class SubscriptionPresenter {
+    private BaseActivity ct;
+    private ISubscriptionView iSubscription;
+
+
+    public SubscriptionPresenter(ISubscriptionView iSubscription) {
+        if (iSubscription == null)
+            new NullPointerException("iSubscription==null");
+        this.iSubscription = iSubscription;
+    }
+
+    public void start(BaseActivity ct) {
+        this.ct = ct;
+    }
+
+
+}

+ 12 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/WorkPresenter.java

@@ -237,7 +237,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     private final int ADDRESS_CHANGE = 0x14;
 
     public void gotoLocationActivity(Activity ct) {
-        if (companyLocation == null) {
+        if (companyLocation == null && canShowTocat) {
             iWorkView.showToast("没有可以选择的地址", R.color.load_error);
             return;
         }
@@ -288,7 +288,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
      */
     private void handlerWorkData(boolean isJSON, String message, long time) throws Exception {
         if (!isJSON) {
-            if (iWorkView != null) {
+            if (iWorkView != null && canShowTocat) {
                 iWorkView.showToast(message, R.color.load_error);
                 showModels(null, time);
             }
@@ -321,7 +321,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
             companyLocation = null;
         }
         try {
-            if (ListUtils.isEmpty(locationList) && iWorkView != null)
+            if (ListUtils.isEmpty(locationList) && iWorkView != null && canShowTocat)
                 iWorkView.showToast(R.string.not_addr_message, R.color.load_warning);
             else getPoi();
             setBaiduLocation();
@@ -344,7 +344,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         }
         ArrayList<WorkModel> models = WorkHandlerUtil.handlerWorkData(object, isB2b);
         if (ListUtils.isEmpty(models)) {
-            if (iWorkView != null) {
+            if (iWorkView != null && canShowTocat) {
                 iWorkView.showToast(R.string.not_workdata, R.color.load_error);
                 showModels(null, time);
             }
@@ -409,24 +409,24 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
      */
     private boolean isSubmitAble(ArrayList<WorkModel> models) {
         if (ListUtils.isEmpty(models) && !isFree) {
-            if (iWorkView != null)
+            if (iWorkView != null && canShowTocat)
                 iWorkView.showToast(R.string.not_work_message, R.color.load_warning);
             return false;
         }
         if (isSubmiting) {
-            if (iWorkView != null)
+            if (iWorkView != null && canShowTocat)
                 iWorkView.showToast(R.string.not_signin_agin, R.color.load_warning);
             return false;
         } else if (companyLocation == null || companyLocation.getValidrange() < distance) {
-            if (iWorkView != null)
+            if (iWorkView != null && canShowTocat)
                 iWorkView.showToast(R.string.too_long, R.color.load_warning);
             return false;
         } else if (subMitTime != 0 && (System.currentTimeMillis() - subMitTime) < (20 * 1000)) {
-            if (iWorkView != null)
+            if (iWorkView != null && canShowTocat)
                 iWorkView.showToast(R.string.not_signin_agin, R.color.load_warning);
             return false;
         } else if (!MyApplication.getInstance().isNetworkActive()) {
-            if (iWorkView != null)
+            if (iWorkView != null && canShowTocat)
                 iWorkView.showToast(R.string.networks_out, R.color.load_warning);
             return false;
         }
@@ -460,7 +460,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
             if (!isB2b)
                 getMacByNet();
             loadWorkData(System.currentTimeMillis(), canShowTocat);
-        } else {
+        } else if (canShowTocat) {
             iWorkView.showToast(R.string.networks_out, R.color.load_warning);
         }
     }
@@ -590,7 +590,6 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
                 case MAC_VAL://判断mac地址
                     if (isJSON && JSON.parseObject(message).containsKey("success") &&
                             JSON.parseObject(message).getBoolean("success")) {
-                        //TODO 修改接口
                         CommonInterface.getInstance().getCodeByNet("CardLog", new CommonInterface.OnResultListener() {
                             @Override
                             public void result(boolean isOk, String result, String message) {
@@ -648,12 +647,12 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
                     long time = 0;
                     if (bundle != null) time = bundle.getLong("time");
                     if (time != 0 && !TimeUtils.s_long_2_str(System.currentTimeMillis()).equals(TimeUtils.s_long_2_str(time))) {
-                    } else {
+                    } else if (canShowTocat) {
                         iWorkView.showToast(R.string.mac_changing, R.color.load_warning);
                         iWorkView.setErrorMac(MyApplication.getInstance().getResources().getString(R.string.mac_changing));
                     }
                 }
-            } else if (StringUtils.isInclude(message, "该设备已被他人绑定")) {
+            } else if (StringUtils.isInclude(message, "该设备已被他人绑定") && canShowTocat) {
                 iWorkView.showToast(R.string.mac_other, R.color.load_warning);
                 iWorkView.setErrorMac(MyApplication.getInstance().getResources().getString(R.string.mac_other));
             } else {

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/ISubscriptionView.java

@@ -0,0 +1,9 @@
+package com.xzjmyk.pm.activity.ui.erp.presenter.imp;
+
+/**
+ * Created by Bitliker on 2017/3/18.
+ */
+
+public interface ISubscriptionView extends HttpImp {
+
+}

+ 18 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java

@@ -32,9 +32,10 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.OfficeAddressBean;
 import com.xzjmyk.pm.activity.bean.oa.PlatSignAddressBean;
+import com.xzjmyk.pm.activity.bean.oa.SearchPoiParam;
 import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationSearchActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.SearchLocationActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
@@ -281,7 +282,6 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
             }
         }
 
-
     }
 
     private void doShowPlatSignAddress(String result) {
@@ -542,14 +542,15 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
 
     private void searchAddress() {
         search_rangge = CommonUtil.getNumByString(sign_range.getText().toString());
-
-        Intent intent = new Intent(ct, LocationSearchActivity.class);
-        intent.putExtra("type", 2);
-        intent.putExtra("title", "添加办公地址");
-        intent.putExtra("single", true);
-        intent.putExtra("radius", search_rangge);
-        intent.putExtra("resultCode", ADDRESS_CHANGE);
-        intent.putExtra("resultName", "resultName");
+        Intent intent = new Intent(ct, SearchLocationActivity.class);
+        SearchPoiParam poiParam = new SearchPoiParam();
+        poiParam.setType(2);
+        poiParam.setTitle("添加办公地址");
+        poiParam.setRadius(search_rangge);
+        poiParam.setContrastLatLng(MyApplication.getInstance().getBdLocationHelper().getLocation());
+        poiParam.setResultCode(ADDRESS_CHANGE);
+        poiParam.setDistanceTag("m");
+        intent.putExtra("data", poiParam);
         startActivityForResult(intent, ADDRESS_CHANGE);
     }
 
@@ -574,7 +575,7 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
             }
         }
         if (requestCode == ADDRESS_CHANGE && resultCode == ADDRESS_CHANGE) {//地址微调
-            PoiInfo poi = data.getParcelableExtra("resultName");
+            PoiInfo poi = data.getParcelableExtra("resultKey");
             if (poi == null) return;
             // 将每次点击地址返回的值add到自定义列表中,
             address_lv.setVisibility(View.VISIBLE);
@@ -586,7 +587,9 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
             doEditShortName(poi); //编辑地址简称
         }
     }
+
     private PopupWindow popupWindow = null;
+
     private void doEditShortName(final PoiInfo poi) {
         // 一个自定义的布局,作为显示的内容
         View contentView = LayoutInflater.from(ct).inflate(
@@ -621,7 +624,7 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
                 String com = company_et.getText().toString();
                 if (!StringUtils.isEmpty(com)) {
                     address_names.add(com);
-                }else {
+                } else {
                     address_names.add(poi.name);
                 }
                 myadapter.setAddress_names(address_names);
@@ -638,6 +641,7 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
         popupWindow.showAtLocation(contentView, Gravity.CENTER, 0, 0);
         setbg(0.4f);
     }
+
     private void setbg(float alpha) {
         setBackgroundAlpha(this, alpha);
         if (popupWindow == null) return;
@@ -648,6 +652,7 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
             }
         });
     }
+
     /**
      * 设置页面的透明度
      * 兼容华为手机(在个别华为手机上 设置透明度会不成功)
@@ -664,6 +669,7 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
         }
         activity.getWindow().setAttributes(lp);
     }
+
     //地点显示列表适配器
     public class OfficeAddressAdapter extends BaseAdapter {
         private OfficeAddressBean mOfficeAddressBean;

+ 1226 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/BackMessageFragment.java

@@ -0,0 +1,1226 @@
+package com.xzjmyk.pm.activity.ui.message;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.Color;
+import android.net.ConnectivityManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.Settings;
+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;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Response.ErrorListener;
+import com.android.volley.VolleyError;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
+import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
+import com.iflytek.cloud.speech.RecognizerResult;
+import com.iflytek.cloud.speech.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
+import com.roamer.slidelistview.SlideBaseAdapter;
+import com.roamer.slidelistview.SlideListView;
+import com.roamer.slidelistview.SlideListView.SlideMode;
+import com.xzjmyk.pm.activity.AppConfig;
+import com.xzjmyk.pm.activity.AppConstant;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
+import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
+import com.xzjmyk.pm.activity.bean.AttentionUser;
+import com.xzjmyk.pm.activity.bean.Friend;
+import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
+import com.xzjmyk.pm.activity.bean.message.XmppMessage;
+import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
+import com.xzjmyk.pm.activity.broadcast.MucgroupUpdateUtil;
+import com.xzjmyk.pm.activity.db.dao.ChatMessageDao;
+import com.xzjmyk.pm.activity.db.dao.FriendDao;
+import com.xzjmyk.pm.activity.db.dao.OnCompleteListener;
+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.ui.MainActivity;
+import com.xzjmyk.pm.activity.ui.base.EasyFragment;
+import com.xzjmyk.pm.activity.ui.erp.activity.NoticeMenuActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.TaskActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.message.ProcessMsgActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.MsgsSecondCommonActivity;
+import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
+import com.xzjmyk.pm.activity.ui.erp.entity.B2BMsg;
+import com.xzjmyk.pm.activity.ui.erp.model.AllProcess;
+import com.xzjmyk.pm.activity.ui.erp.model.NewsEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.NoticeEntity;
+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.ui.erp.util.FlexJsonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ObjectUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.auto.HttpHandler;
+import com.xzjmyk.pm.activity.ui.message.uas.B2bMsgActivity;
+import com.xzjmyk.pm.activity.ui.tool.ThreadPool;
+import com.xzjmyk.pm.activity.util.HtmlUtils;
+import com.xzjmyk.pm.activity.util.StringUtils;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.util.ToastUtil;
+import com.xzjmyk.pm.activity.util.ViewHolder;
+import com.xzjmyk.pm.activity.util.WorkHandlerUtil;
+import com.xzjmyk.pm.activity.view.ClearEditText;
+import com.xzjmyk.pm.activity.view.DrawableCenterTextView;
+import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
+import com.xzjmyk.pm.activity.volley.ArrayResult;
+import com.xzjmyk.pm.activity.volley.Result;
+import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @desc:消息列表
+ * @author:Administrator on 2016/2/17 17:33
+ */
+public class BackMessageFragment extends EasyFragment implements RecognizerDialogListener {
+    private boolean mNeedUpdate = true;
+    private ClearEditText mClearEditText;
+    private PullToRefreshSlideListView mPullToRefreshListView;
+    private List<BaseSortModel<Friend>> mFriendList;// 筛选后的朋友数据
+    private List<BaseSortModel<Friend>> mOriginalFriendList;// 原始的朋友数据,也就是从数据库查询出来,没有筛选的
+    private NearlyMessageAdapter mAdapter;
+    private Handler mHandler = new Handler();
+    private boolean isRefeshed;
+    private MainActivity mActivity;
+
+    private DrawableCenterTextView mNetTextView;
+    private String mNoticeMsg = null;
+
+    public static final int REQUESTCODE = 0xa1;
+    //界面更新广播
+    private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (!AppConfig.COMPANY) return;
+            if (intent.getAction().equals(MsgBroadcast.ACTION_MSG_UI_UPDATE)) {
+                if (isResumed()) {
+                    refreshUI();
+                } else {
+                    mNeedUpdate = true;
+                }
+            }
+        }
+    };
+    //接收修改公司广播
+    private BroadcastReceiver receiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if ("home".equals(intent.getStringExtra("falg"))) {
+                refreshUI();
+            }
+        }
+    };
+
+    public OnRefreshUIListener refreshRedUIListener = null;
+    private ImageView voice_search;
+
+    @Override
+    public void onResult(RecognizerResult recognizerResult, boolean b) {
+        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+        mClearEditText.setText(mClearEditText.getText().toString() + CommonUtil.getPlaintext(text));
+    }
+
+    @Override
+    public void onError(SpeechError speechError) {
+        Log.v("speechError", speechError.toString());
+    }
+
+    public interface OnRefreshUIListener {
+        void updata(int num);
+    }
+
+
+    public BackMessageFragment() {
+        mOriginalFriendList = new ArrayList<BaseSortModel<Friend>>();
+        mFriendList = new ArrayList<BaseSortModel<Friend>>();
+    }
+
+    @Override
+    protected int inflateLayoutId() {
+        return R.layout.fragment_message;
+    }
+
+    /**
+     * @desc:监听网络变化
+     * @author:Arison on 2016/11/30
+     */
+    private BroadcastReceiver mNetWorkChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (CommonUtil.isNetWorkConnected(MyApplication.getInstance())) {
+                setNetNoticeVisiable(false);
+            } else {
+                setNetNoticeVisiable(true);
+            }
+        }
+    };
+
+    @Override
+    protected void onCreateView(Bundle savedInstanceState, boolean createView) {
+        mActivity.registerReceiver(mUpdateReceiver, new IntentFilter(MsgBroadcast.ACTION_MSG_UI_UPDATE));
+        mActivity.registerReceiver(receiver, new IntentFilter(MsgBroadcast.ACTION_MSG_COMPANY_UPDATE));
+        mActivity.registerReceiver(mNetWorkChangeReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+        if (createView) {
+            initView();
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        mActivity.unregisterReceiver(mUpdateReceiver);
+        mActivity.unregisterReceiver(receiver);
+        mActivity.unregisterReceiver(mNetWorkChangeReceiver);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mHandler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+//                if (mNeedUpdate) {
+//                    mNeedUpdate = false;
+                refreshUI();
+//                }
+            }
+        }, 1);
+    }
+
+    public void setOnRefreshRedUI(OnRefreshUIListener refreshRedUI) {
+        this.refreshRedUIListener = refreshRedUI;
+    }
+
+    public void setListener() {
+        int num = BMSGS_count + GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count;
+        if (refreshRedUIListener == null) return;
+        refreshRedUIListener.updata(num);
+    }
+
+    private void initView() {
+        mNetTextView = (DrawableCenterTextView) findViewById(R.id.message_net_set);
+        mClearEditText = (ClearEditText) findViewById(R.id.search_edit);
+        voice_search = (ImageView) findViewById(R.id.voice_search_iv);
+
+        final VoiceToWord voice = new VoiceToWord(ct, "534e3fe2");
+        voice.setRecognizerDialogListener(this);  //自己调用自己
+        voice_search.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+//                voice_search.setImageResource(R.drawable.btn_yuyin_pressed);
+                voice.GetWordFromVoice();
+            }
+        });
+        mClearEditText.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                String filter = mClearEditText.getText().toString().trim().toUpperCase();
+                mFriendList.clear();
+                if (mOriginalFriendList != null && mOriginalFriendList.size() > 0) {
+                    for (int i = 0; i < mOriginalFriendList.size(); i++) {
+                        BaseSortModel<Friend> mode = mOriginalFriendList.get(i);
+                        // 获取筛选的数据
+                        if (TextUtils.isEmpty(filter) || mode.getSimpleSpell().startsWith(filter) || mode.getWholeSpell().startsWith(filter)
+                                || mode.getBean().getShowName().startsWith(filter)) {
+                            mFriendList.add(mode);
+                        }
+                        if (i == (mOriginalFriendList.size() - 1)) {
+                        }
+                    }
+                }
+                mAdapter.notifyDataSetChanged();
+            }
+
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+            }
+        });
+
+        mPullToRefreshListView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
+        mPullToRefreshListView.setShowIndicator(false);
+        mPullToRefreshListView.getRefreshableView().setCacheColorHint(Color.parseColor("#000000"));
+        mPullToRefreshListView.getRefreshableView().setScrollingCacheEnabled(false);
+        mPullToRefreshListView.setMode(Mode.PULL_FROM_START);
+        mAdapter = new NearlyMessageAdapter(mActivity);
+        mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
+        mPullToRefreshListView.getRefreshableView().addHeaderView(getHeaderView());
+        mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener<SlideListView>() {
+            @Override
+            public void onRefresh(PullToRefreshBase<SlideListView> refreshView) {
+                mNoticeMsg = null;
+                refreshUI();
+            }
+        });
+
+        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 == null) {
+                    return;
+                }
+                if (friend.getType() == XmppMessage.TYPE_ERP) {
+                    //消息
+                    //TODO 调转到制定界面
+                    turn2ERp(friend);
+                    return;
+                }
+                if (friend.getRoomFlag() == 0) {
+                    if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
+                        startActivity(new Intent(mActivity, NewFriendActivity.class));
+                    } else {
+                        Intent intent = new Intent(mActivity, ChatActivity.class);
+                        intent.putExtra(ChatActivity.FRIEND, friend);
+                        startActivity(intent);
+                    }
+                } else {
+                    Intent intent = new Intent(mActivity, MucChatActivity.class);
+                    intent.putExtra(AppConstant.EXTRA_USER_ID, friend.getUserId());
+                    intent.putExtra(AppConstant.EXTRA_NICK_NAME, friend.getNickName());
+                    intent.putExtra(AppConstant.EXTRA_IS_GROUP_CHAT, true);
+                    startActivity(intent);
+                }
+                if (friend.getUnReadNum() > 0) {
+                    MsgBroadcast.broadcastMsgNumUpdate(mActivity, false, friend.getUnReadNum());
+                    friend.setUnReadNum(0);
+                    mAdapter.notifyDataSetChanged();
+                }
+            }
+        });
+
+        mNetTextView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                startActivity(new Intent(Settings.ACTION_SETTINGS));
+            }
+        });
+    }
+
+    /**
+     * 调转到对应ERP相关知会里面去
+     *
+     * @param friend
+     */
+    private void turn2ERp(Friend friend) {
+        String description = friend.getDescription();
+
+        if (StringUtils.isEmpty(description)) return;
+        Intent intent = new Intent(ct, MsgsSecondCommonActivity.class);
+        intent.putExtra("type", description);
+        intent.putExtra("title", friend.getNickName());
+        intent.putExtra("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        startActivity(intent);
+    }
+
+    public void setNetNoticeVisiable(boolean visiable) {
+        if (mNetTextView != null) {
+            if (visiable) {
+                mNetTextView.setVisibility(View.VISIBLE);
+            } else {
+                mNetTextView.setVisibility(View.GONE);
+            }
+        }
+    }
+
+    /**
+     * 头视图相关
+     * 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 TextView b2b_num_tv, b2b_content_tv, b2b_time_tv;
+    private RelativeLayout rl_b2b;
+
+    private View getHeaderView() {
+        View view = LayoutInflater.from(mActivity).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);
+        b2b_num_tv = (TextView) view.findViewById(R.id.b2b_num_tv);
+        b2b_content_tv = (TextView) view.findViewById(R.id.b2b_content_tv);
+        b2b_time_tv = (TextView) view.findViewById(R.id.b2b_time_tv);
+        rl_b2b = (RelativeLayout) view.findViewById(R.id.rl_b2b_business);
+        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);
+        view.findViewById(R.id.rl_b2b_business).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(mActivity, ScheduleActivity.class));
+                    startActivity(new Intent(mActivity, ProcessMsgActivity.class));
+                    break;
+                case R.id.task_rl:
+                    startActivity(new Intent(mActivity, TaskActivity.class));
+                    break;
+                case R.id.notice_rl:
+                    Intent intent = new Intent(mActivity, NoticeMenuActivity.class);
+                    intent.putExtra(NoticeMenuActivity.GONGGAO, GONGGAO_count);
+                    intent.putExtra(NoticeMenuActivity.NOTICE, NOTICE_count);
+                    intent.putExtra(NoticeMenuActivity.NES, NES_count);
+                    startActivityForResult(intent, REQUESTCODE);
+                    break;
+                case R.id._rl:
+//                    startActivity(new Intent(mActivity, SubscriptionActivity.class));
+                    startActivity(new Intent(mActivity, Subscription2Activity.class));
+                    break;
+                case R.id.rl_b2b_business:
+                    startActivity(new Intent(mActivity, B2bMsgActivity.class));
+                    break;
+            }
+        }
+    };
+
+
+    private void refreshUI() {
+        if (!AppConfig.COMPANY) return;
+        loadDataByIm();
+        FriendDao.getInstance().markUserMessageRead(
+                MyApplication.getInstance().mLoginUser.getUserId(),
+                Friend.ID_ERP_ZHIHUI);
+
+        loadGongGaoCount(mActivity);//公告
+        loadNoticeCount(mActivity);//通知
+        loadERPNewsNum(mActivity);//新闻
+        loadNetData(mActivity);//订阅好
+
+
+        loadERPMsgNum(mActivity);//getallprocess
+        loadB2bMessageNum();//商务消息
+        loadProcessToDo(1);//common/desktop/process/toDo.action
+    }
+
+
+    /**
+     * 获取关注列表(需调式查看访问数据内容)  更新朋友信息
+     */
+    private void upDataFriend() {
+        isRefeshed = true;
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        StringJsonArrayRequest<AttentionUser> request = new StringJsonArrayRequest<AttentionUser>(
+                MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST, new ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                ToastUtil.showErrorNet(mActivity);
+            }
+        }, new StringJsonArrayRequest.Listener<AttentionUser>() {
+            @Override
+            public void onResponse(ArrayResult<AttentionUser> result) {
+                boolean success = Result.defaultParser(mActivity, result, false);
+                if (success) {
+                    FriendDao.getInstance().addAttentionUsers(mHandler, MyApplication.getInstance().mLoginUser.getUserId(), result.getData(),
+                            new OnCompleteListener() {
+                                @Override
+                                public void onCompleted() {
+                                    mPullToRefreshListView.getRefreshableView();
+                                }
+                            });
+                }
+            }
+        }, AttentionUser.class, params);
+        mActivity.addDefaultRequest(request);
+    }
+
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        mActivity = (MainActivity) context;
+    }
+
+    public void setFriendName(List<Friend> friends, String id) {
+        List<Friend> f = FriendDao.getInstance().getFriends(id);
+        if (friends == null) return;
+        for (int i = 0; i < friends.size(); i++) {
+            for (int j = 0; j < f.size(); j++) {
+                if (friends.get(i).get_id() == f.get(j).get_id()) {
+                    friends.get(i).setNickName(f.get(j).getNickName());
+                    friends.get(i).setRemarkName(f.get(j).getRemarkName());
+                    break;
+                }
+            }
+        }
+    }
+
+    private void loadDataByErp() {
+
+        Map<String, Object> param = new HashMap<>();
+        param.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        HttpHandler.getInstance().loadERPByNet(0x11, "mobile/queryEmNews.action", param, null, new HttpHandler.OnResultListener() {
+            @Override
+            public void result(int what, boolean isJSON, String message, Bundle bundle) {
+                if (!isJSON) return;
+                JSONObject object = JSON.parseObject(message);
+                //TODO 获取到消息的总数
+                int allCount = WorkHandlerUtil.getIntByJson(object, "allCount");
+                if (!object.containsKey("listdata")) return;
+                JSONArray array = object.getJSONArray("listdata");
+                handlerNewsFormErp(array);
+                loadDataByIm();
+            }
+
+            @Override
+            public void error(int what, int statuCode, String message, Bundle bundle) {
+
+            }
+        });
+    }
+
+    private Comparator<BaseSortModel<Friend>> erpComparator = null;
+
+    private void handlerNewsFormErp(JSONArray array) {
+        if (ListUtils.isEmpty(array)) {
+            //TODO  为空数据情况下
+            return;
+        }
+        List<BaseSortModel<Friend>> erpFriend = new ArrayList<>();
+        JSONObject object = null;
+        Friend friend = null;
+        for (int i = 0; i < array.size(); i++) {
+            object = array.getJSONObject(i);
+            friend = new Friend();
+            friend.setNickName(object.getString("title"));
+            friend.setContent(object.getString("lastMessage"));
+            friend.setTimeSend(getErpTime(object, "lastTime"));
+            friend.setType(XmppMessage.TYPE_ERP);
+            friend.setDescription(object.getString("type"));
+
+            BaseSortModel<Friend> mode = new BaseSortModel<>();
+            mode.setBean(friend);
+            setSortCondition(mode);
+            erpFriend.add(mode);
+        }
+        if (erpComparator == null) {
+            erpComparator = new Comparator<BaseSortModel<Friend>>() {
+                public int compare(BaseSortModel<Friend> s1, BaseSortModel<Friend> s2) {
+                    return (s1.getBean().getTimeSend() - s2.getBean().getTimeSend());
+                }
+            };
+        }
+        Collections.sort(erpFriend, erpComparator);
+        mFriendList.addAll(0, erpFriend);
+        mOriginalFriendList.addAll(0, erpFriend);
+        mAdapter.notifyDataSetChanged();
+    }
+
+
+    private int getErpTime(JSONObject object, String lastTime) {
+        String time = object.getString(lastTime);
+        if (StringUtils.isEmpty(time)) {
+            return (int) (System.currentTimeMillis() / 1000);
+        } else {
+            return (int) (TimeUtils.f_str_2_long(time) / 1000);
+        }
+    }
+
+    /**
+     * 请求加载新的筛选条件的数据
+     * <p/>
+     * 是下拉刷新,还是上拉加载
+     */
+    private void loadDataByIm() {
+        //TODO im部分
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+                long startTime = System.currentTimeMillis();
+                final List<Friend> friends = FriendDao.getInstance().getNearlyFriendMsg(mLoginUserId);
+                setFriendName(friends, mLoginUserId);
+                long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
+                if (delayTime < 0) {
+                    delayTime = 0;
+                }
+                mHandler.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        mOriginalFriendList.clear();
+                        mFriendList.clear();
+                        String filter = mClearEditText.getText().toString().trim().toUpperCase();
+                        if (friends != null && friends.size() > 0) {
+                            for (int i = 0; i < friends.size(); i++) {
+                                BaseSortModel<Friend> mode = new BaseSortModel<>();
+                                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();
+                    }
+                }, delayTime);
+            }
+        }).start();
+
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == BackMessageFragment.REQUESTCODE) {
+            if (data != null) {
+                GONGGAO_count = data.getIntExtra(NoticeMenuActivity.GONGGAO, -1);
+                NES_count = data.getIntExtra(NoticeMenuActivity.NES, -1);
+                NOTICE_count = data.getIntExtra(NoticeMenuActivity.NOTICE, -1);
+                setNOTICE_count(GONGGAO_count + NES_count + NOTICE_count);
+            }
+        }
+    }
+
+    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("#");
+        }
+    }
+
+
+    private void deleteFriend(final String loginUserId, final BaseSortModel<Friend> sortFriend) {
+        Friend friend = sortFriend.getBean();
+        if (friend.getUnReadNum() > 0) {
+            MsgBroadcast.broadcastMsgNumUpdate(mActivity, false, friend.getUnReadNum());
+        }
+        mFriendList.remove(sortFriend);
+        mOriginalFriendList.remove(sortFriend);
+        mAdapter.notifyDataSetChanged();
+
+        // 删除这个房间
+        FriendDao.getInstance().deleteFriend(loginUserId, friend.getUserId());
+        // 消息表中删除
+        ChatMessageDao.getInstance().deleteMessageTable(loginUserId, friend.getUserId());
+        mActivity.exitMucChat(friend.getUserId());
+    }
+
+    //先忽略
+    public void sendBroadcast() {
+        Intent mIntent = new Intent(MucgroupUpdateUtil.ACTION_UPDATE);
+        mActivity.sendBroadcast(mIntent);
+    }
+
+
+    public class NearlyMessageAdapter extends SlideBaseAdapter {
+
+        public NearlyMessageAdapter(Context context) {
+            super(context);
+        }
+
+        @Override
+        public int getCount() {
+            return mFriendList.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mFriendList.get(position).getBean();
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @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();
+            avatar_img.setBackgroundResource(R.color.transparent);
+            if (friend.getRoomFlag() == 0) {// 这是单个人
+                if (isRefeshed) {
+                    AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, false, true);//每次刷新都会去删除此人缓存
+                    isRefeshed = false;
+                } else {
+                    AvatarHelper.getInstance().displayAvatar(friend.getUserId(), avatar_img, true);
+                }
+
+            } else {
+                if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
+                    avatar_img.setImageResource(R.drawable.qunliao);
+                } else {
+                    AvatarHelper.getInstance().displayAvatarPng(friend.getRoomCreateUserId(), avatar_img, true);// 目前在备注名放房间的创建者Id
+                }
+            }
+            nick_name_tv.setText(friend.getRemarkName() != null ? friend.getRemarkName() : friend.getNickName());
+            time_tv.setText(TimeUtils.getFriendlyTimeDesc(mActivity, 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);
+            } else {
+                content = friend.getContent();
+            }
+            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);
+            } else {
+                num_tv.setVisibility(View.GONE);
+            }
+
+            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(mActivity, 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 {
+                        deleteFriend(mLoginUserId, mFriendList.get(position));
+                    }
+
+                }
+            });
+            return convertView;
+        }
+
+        //控制侧滑删除
+        @Override
+        public 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 SlideMode.NONE;
+            }
+            return super.getSlideModeInPosition(position);
+        }
+
+        @Override
+        public int getFrontViewId(int position) {
+
+            return R.layout.row_nearly_message;
+
+        }
+
+        @Override
+        public int getLeftBackViewId(int position) {
+            return 0;
+        }
+
+        @Override
+        public int getRightBackViewId(int position) {
+            return R.layout.row_item_delete;
+        }
+    }
+
+
+    public void loadNoticeCount(Context ct) {
+        String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/inform.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("count", "1000");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.LOAD_SUCCESS, null, null, "get");
+    }
+
+    //获取任务
+    public void loadTaskByNet(int handlerWhat) {
+        String url = Constants.getAppBaseUrl(getActivity()) + "common/datalist/data.action";
+        Map<String, Object> mparams = new HashMap<String, Object>();
+        mparams.put("sessionId", CommonUtil.getSharedPreferences(mActivity, "sessionId"));
+        mparams.put("caller", "ResourceAssignment");
+        mparams.put("page", "1");
+        mparams.put("pageSize", "100");
+        mparams.put("_noc", "1");
+        String em_code = CommonUtil.getSharedPreferences(mActivity, "erp_username");
+        mparams.put("condition", "ra_resourcecode='" + em_code + "' and ra_statuscode='" + "START" + "'");
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(mActivity, "sessionId"));
+        ViewUtil.httpSendRequest(mActivity, url, mparams, handler, headers, handlerWhat, null, null, "get");
+    }
+
+    public void loadGongGaoCount(Context ct) {
+        String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/notice.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("count", "1000");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_LOGIN, null, null, "get");
+    }
+
+
+    public void loadERPMsgNum(Context ct) {
+        String url = Constants.getAppBaseUrl(ct) + "mobile/getallprocess.action";
+        Map<String, Object> param = new HashMap<String, Object>();
+        param.put("employeeCode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, load_success_erpMsgNum, null, null, "get");
+    }
+
+
+    public void loadERPNewsNum(Context ct) {
+        String url = Constants.getAppBaseUrl(ct) + "common/desktop/news/getNews.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("count", "1000");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_INITDATA, null, null, "get");
+    }
+
+    public void loadNetData(Context ct) {
+        //获取网络数据
+        String url = Constants.getAppBaseUrl(ct) + "common/desktop/subs/getSubs.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("count", 100);
+        param.put("condition", "where to_char(createdate_,'yyyymmdd')='" + TimeUtils.int_long_2_str(System.currentTimeMillis()) + "'");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x16, null, null, "get");
+    }
+
+    /**
+     * @desc:审批流接口
+     * @author:Arison on 2016/11/15
+     */
+    private void loadProcessToDo(int page) {
+        String url = Constants.getAppBaseUrl(ct) + "common/desktop/process/toDo.action";
+        Map<String, Object> params = new HashMap<>();
+        // count=10&page=1&limit=25
+        params.put("count", "1000");
+
+        params.put("page", page);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, params, handler, headers, 0x17, null, null, "get");
+    }
+
+    /**
+     * @功能:加载商务信息-本地数据库
+     * @author:Arisono
+     * @param:
+     * @return:
+     */
+    public void loadB2bMessageNum() {
+        DBManager db = new DBManager(getActivity());
+        String master = CommonUtil.getSharedPreferences(getActivity(), "erp_master");
+        Log.i("Arison", "" + master);
+        if (StringUtils.isEmpty(master)) return;
+        List<B2BMsg> bMsgs = db.queryB2bList(new String[]{"0", master}, " b2b_hasRead=? and b2b_master=? ");
+        Log.i("B2B", "" + JSON.toJSONString(bMsgs));
+        if (!ListUtils.isEmpty(bMsgs)) {
+            if (b2b_num_tv == null) return;
+            b2b_num_tv.setText(bMsgs.size() + "");
+            b2b_num_tv.setVisibility(View.VISIBLE);
+            b2b_content_tv.setText("您有" + bMsgs.size() + "条商务消息未读");
+            rl_b2b.setVisibility(View.VISIBLE);
+            BMSGS_count = bMsgs.size();
+            setListener();
+        } else {
+            rl_b2b.setVisibility(View.GONE);
+        }
+        db.closeDB();
+    }
+
+
+    private final int load_success_erpMsgNum = 5;
+    private Handler handler = new Handler() {
+        @Override
+        public void handleMessage(final Message msg) {
+            switch (msg.what) {
+                case 0x16:
+                    String message = (String) msg.getData().get("result");
+                    List<SubscriptionMessage> messages = null;
+                    int num = 0;
+                    if (JSON.parseObject(message).containsKey("data")) {
+                        messages = JSON.parseArray(JSON.parseObject(message).getJSONArray("data").toJSONString(), SubscriptionMessage.class);
+                        for (SubscriptionMessage e : messages) {
+                            if (e.getSTATUS_() == 0)
+                                num += 1;
+                        }
+                    }
+                    SUBRICE_count = num;
+                    setListener();
+                    if (num > 0) {
+                        num_tv.setText(num + "");
+                        num_tv.setVisibility(View.VISIBLE);
+//                        content_tv.setText("您有新的订阅消息!");
+                        content_tv.setText(messages.get(0).getTITLE_());
+                        time_tv.setText("刚刚");
+                    } else {
+                        num_tv.setVisibility(View.GONE);
+//                        content_tv.setText("暂无新的订阅消息!");
+                        content_tv.setText("");
+                    }
+                    break;
+                case 0x17:
+                    try {
+                        JSONArray itemArray = JSON.parseObject(msg.getData().getString("result")).getJSONArray("data");
+                        itemArray = CommonUtil.sortJsonArray(itemArray);
+                        LogUtil.d("item:" + itemArray.size());
+                        if (!ListUtils.isEmpty(itemArray)) {
+                            DAIBAN_count = itemArray.size();
+                            Message DaibanMsg = Message.obtain();
+                            DaibanMsg.what = DAIBAN_MSG;
+                            if (itemArray.size() != 0) {
+                                DaibanMsg.obj = itemArray.getJSONObject(0).getString("JP_LAUNCHERNAME") + "的"
+                                        + itemArray.getJSONObject(0).getString("JP_NAME");
+                            }
+                            handler.sendMessage(DaibanMsg);
+                            //                        handler.sendEmptyMessage(DAIBAN_MSG);
+                        } else {
+                            DAIBAN_count = 0;
+                            handler.sendEmptyMessage(DAIBAN_MSG);
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    break;
+                case Constants.SUCCESS_LOGIN://公告
+                    updateGongGao(msg);
+                    break;
+                case load_success_erpMsgNum://待办(任务、代办、订阅)
+                    getErpMsgNums(msg);
+                    break;
+                case Constants.LOAD_SUCCESS://通知
+                    updateNotice(msg);
+                    break;
+                case Constants.SUCCESS_INITDATA://新闻
+                    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:
+                    setListener();
+                    if (TASK_count > 0) {
+                        task_num_tv.setText(TASK_count + "");
+                        task_num_tv.setVisibility(View.VISIBLE);
+//                        task_content_tv.setText("您有新的任务!");
+                        if (msg.obj != null) {
+                            task_content_tv.setText((String) msg.obj);
+                        }
+                        task_time_tv.setText("刚刚");
+                    } else {
+                        task_num_tv.setVisibility(View.GONE);
+                        task_content_tv.setText("");
+                    }
+                    break;
+                case DAIBAN_MSG:
+                    setListener();
+                    if (DAIBAN_count > 0) {
+                        String daiban = (String) msg.obj;
+                        schedule_num_tv.setText(DAIBAN_count + "");
+                        schedule_num_tv.setVisibility(View.VISIBLE);
+//                        schedule_content_tv.setText("您有新的待审批流程!");
+                        if (daiban != null) {
+                            schedule_content_tv.setText(daiban);
+                        }
+                        schedule_time_tv.setText("刚刚");
+                    } else {
+                        schedule_num_tv.setVisibility(View.GONE);
+                        schedule_content_tv.setText("");
+                    }
+                    break;
+            }
+        }
+    };
+
+
+    private void setNOTICE_count(int count) {
+        setListener();
+        if (count > 0) {
+            notice_num_tv.setText(count + "");
+            notice_num_tv.setVisibility(View.VISIBLE);
+            if (mNoticeMsg != null) {
+                notice_content_tv.setText(mNoticeMsg);
+            }
+//            notice_content_tv.setText("您有新的通知公告!");
+            notice_time_tv.setText("刚刚");
+        } else {
+            notice_num_tv.setVisibility(View.GONE);
+            notice_content_tv.setText("");
+        }
+    }
+
+    public static final int GONGGAO_MSG = 0X00a, NOTICE_MSG = 0X00b, NES_MSG = 0X00c, TASK_MSG = 0X00d, DAIBAN_MSG = 0X00e;
+    private int GONGGAO_count = 0, NOTICE_count = 0, NES_count = 0, TASK_count = 0, DAIBAN_count = 0,
+            SUBRICE_count = 0, BMSGS_count = 0;
+
+    private void updateGongGao(Message msg) {
+        final String result = msg.getData().getString("result");
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                NoticeEntity newsEntity =
+                        JSON.parseObject(result, NoticeEntity.class);
+                int size = 0;
+                if (newsEntity != null) {
+                    size = newsEntity.getData().size();
+                }
+                String em_id = CommonUtil.getSharedPreferences(mActivity, "erp_emid");
+                int count = 0;
+                for (int i = 0; i < size; i++) {
+                    if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
+                        if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
+                            if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
+                                if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
+                                    if (mNoticeMsg == null) {
+                                        mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
+                                    }
+                                    count++;
+                                }
+                            }
+                        }
+                    } else {
+                        if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
+                            if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
+                                if (mNoticeMsg == null) {
+                                    mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
+                                }
+                                count++;
+                            }
+                        } else {
+                            if (mNoticeMsg == null) {
+                                mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
+                            }
+                            count++;
+                        }
+                    }
+                }
+                GONGGAO_count = count;
+                handler.sendEmptyMessage(GONGGAO_MSG);
+            }
+        });
+    }
+
+    private void updateNotice(Message msg) {
+        final String result = msg.getData().getString("result");
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                NoticeEntity newsEntity;
+                int size;
+                int count;
+                String em_id;
+                newsEntity = JSON.parseObject(result, NoticeEntity.class);
+                size = 0;
+                if (newsEntity != null) {
+                    size = newsEntity.getData().size();
+                }
+                count = 0;
+                em_id = CommonUtil.getSharedPreferences(mActivity, "erp_emid");
+                for (int i = 0; i < size; i++) {
+                    if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
+                        if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
+                            if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
+                                if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
+                                    if (mNoticeMsg == null) {
+                                        mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
+                                    }
+                                    count++;
+                                }
+                            }
+                        }
+                    } else {
+                        if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
+                            if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
+                                if (mNoticeMsg == null) {
+                                    mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
+                                }
+                                count++;
+                            }
+                        } else {
+                            if (mNoticeMsg == null) {
+                                mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
+                            }
+                            count++;
+                        }
+                    }
+                }
+                NOTICE_count = count;
+                handler.sendEmptyMessage(NOTICE_MSG);
+            }
+        });
+    }
+
+    private void updateNews(Message msg) {
+        final String result = msg.getData().getString("result");
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    int size;
+                    int count;
+                    NewsEntity news = JSON.parseObject(result, NewsEntity.class);
+                    size = 0;
+                    if (news != null) {
+                        size = news.getData().size();
+                    }
+                    count = 0;
+                    for (int i = 0; i < size; i++) {
+                        if (!ObjectUtils.isEquals(news.getData().get(i).getSTATUS(), null)) {
+                            if (((int) news.getData().get(i).getSTATUS()) != -1) {
+                                if (mNoticeMsg == null) {
+                                    mNoticeMsg = news.getData().get(0).getNE_THEME().replace("&nbsp;", "");
+                                }
+                                count++;
+                            }
+                        } else {
+                            if (mNoticeMsg == null) {
+                                mNoticeMsg = news.getData().get(0).getNE_THEME().replace("&nbsp;", "");
+                            }
+                            count++;//数据为空,算是未读
+                        }
+                    }
+                    NES_count = count;
+                    handler.sendEmptyMessage(NES_MSG);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+    }
+
+    public void getErpMsgNums(Message msg) {
+        String reString = msg.getData().getString("result");
+        Log.i("Arison", "" + 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, daiban_num = 0;
+                for (int i = 0; i < allProcesses.size(); i++) {
+                    if (allProcesses.get(i).getTypecode().contains("task")) {//我的任务
+                        if (!allProcesses.get(i).getTypecode().equals("projecttask") && !allProcesses.get(i).getTypecode().equals("worktask"))
+                            task_num++;
+                    } else if (allProcesses.get(i).getTypecode().contains("dingyue")) {//订阅
+                        if ("0".equals(allProcesses.get(i).getStatus().trim())) {
+
+                        }
+                    } else {
+                        daiban_num++;
+                    }
+                }
+                TASK_count = task_num;
+                Message TaskMsg = Message.obtain();
+                TaskMsg.what = TASK_MSG;
+                if (allProcesses.size() != 0) {
+                    TaskMsg.obj = allProcesses.get(0).getTaskname();
+                }
+                handler.sendMessage(TaskMsg);
+//                handler.sendEmptyMessage(TASK_MSG);
+//                DAIBAN_count = daiban_num;
+//                handler.sendEmptyMessage(DAIBAN_MSG);
+            }
+        }
+    }
+}
+
+
+

+ 234 - 1085
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -1,1226 +1,375 @@
 package com.xzjmyk.pm.activity.ui.message;
 
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
-import android.graphics.Color;
-import android.net.ConnectivityManager;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
 import android.provider.Settings;
 import android.text.Editable;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.util.Log;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.AdapterView;
-import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.android.volley.Response.ErrorListener;
-import com.android.volley.VolleyError;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
-import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
-import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
 import com.iflytek.cloud.speech.RecognizerResult;
 import com.iflytek.cloud.speech.SpeechError;
 import com.iflytek.cloud.ui.RecognizerDialogListener;
-import com.roamer.slidelistview.SlideBaseAdapter;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
 import com.roamer.slidelistview.SlideListView;
-import com.roamer.slidelistview.SlideListView.SlideMode;
-import com.xzjmyk.pm.activity.AppConfig;
-import com.xzjmyk.pm.activity.AppConstant;
-import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
 import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
-import com.xzjmyk.pm.activity.bean.AttentionUser;
 import com.xzjmyk.pm.activity.bean.Friend;
-import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
-import com.xzjmyk.pm.activity.bean.message.XmppMessage;
-import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
-import com.xzjmyk.pm.activity.broadcast.MucgroupUpdateUtil;
-import com.xzjmyk.pm.activity.db.dao.ChatMessageDao;
-import com.xzjmyk.pm.activity.db.dao.FriendDao;
-import com.xzjmyk.pm.activity.db.dao.OnCompleteListener;
-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.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
 import com.xzjmyk.pm.activity.ui.erp.activity.NoticeMenuActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.TaskActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.message.ProcessMsgActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.oa.MsgsSecondCommonActivity;
-import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
-import com.xzjmyk.pm.activity.ui.erp.entity.B2BMsg;
-import com.xzjmyk.pm.activity.ui.erp.model.AllProcess;
-import com.xzjmyk.pm.activity.ui.erp.model.NewsEntity;
-import com.xzjmyk.pm.activity.ui.erp.model.NoticeEntity;
-import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.ui.erp.adapter.MessageAdapter;
+import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
+import com.xzjmyk.pm.activity.ui.erp.presenter.MessagePresenter;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IMessageView;
 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.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.ObjectUtils;
-import com.xzjmyk.pm.activity.ui.erp.util.auto.HttpHandler;
-import com.xzjmyk.pm.activity.ui.message.uas.B2bMsgActivity;
-import com.xzjmyk.pm.activity.ui.tool.ThreadPool;
-import com.xzjmyk.pm.activity.util.HtmlUtils;
-import com.xzjmyk.pm.activity.util.StringUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.util.DateFormatUtil;
+import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.util.ToastUtil;
-import com.xzjmyk.pm.activity.util.ViewHolder;
-import com.xzjmyk.pm.activity.util.WorkHandlerUtil;
 import com.xzjmyk.pm.activity.view.ClearEditText;
 import com.xzjmyk.pm.activity.view.DrawableCenterTextView;
 import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
-import com.xzjmyk.pm.activity.volley.ArrayResult;
-import com.xzjmyk.pm.activity.volley.Result;
-import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
+import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
+import com.xzjmyk.pm.activity.wxapi.ApiUtils;
 
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
- * @desc:消息列表
- * @author:Administrator on 2016/2/17 17:33
+ * Created by Bitliker on 2017/3/1.
  */
-public class MessageFragment extends EasyFragment implements RecognizerDialogListener {
-    private boolean mNeedUpdate = true;
-    private ClearEditText mClearEditText;
-    private PullToRefreshSlideListView mPullToRefreshListView;
-    private List<BaseSortModel<Friend>> mFriendList;// 筛选后的朋友数据
-    private List<BaseSortModel<Friend>> mOriginalFriendList;// 原始的朋友数据,也就是从数据库查询出来,没有筛选的
-    private NearlyMessageAdapter mAdapter;
-    private Handler mHandler = new Handler();
-    private boolean isRefeshed;
-    private MainActivity mActivity;
-
-    private DrawableCenterTextView mNetTextView;
-    private String mNoticeMsg = null;
 
+public class MessageFragment extends EasyFragment implements IMessageView, RecognizerDialogListener, View.OnClickListener {
+
+    @ViewInject(R.id.search_edit)
+    private ClearEditText search_edit;
+
+    @ViewInject(R.id.message_net_set)
+    private DrawableCenterTextView message_net_set;
+    @ViewInject(R.id.pull_refresh_list)
+    private PullToRefreshSlideListView listView;
+
+    private MainActivity mContext;
+    private MessagePresenter presenter;
+    private MessageAdapter mAdapter = null;
+    private VoiceToWord mVoice;//语音工具
+    private PopupWindow setWindow;
+    private int clickPosition = 0;
+    private Boolean platform;
+    private RelativeLayout news_notice_rl;
+    private RelativeLayout subscribe_rl;
     public static final int REQUESTCODE = 0xa1;
-    //界面更新广播
-    private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (!AppConfig.COMPANY) return;
-            if (intent.getAction().equals(MsgBroadcast.ACTION_MSG_UI_UPDATE)) {
-                if (isResumed()) {
-                    refreshUI();
-                } else {
-                    mNeedUpdate = true;
-                }
-            }
-        }
-    };
-    //接收修改公司广播
-    private BroadcastReceiver receiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if ("home".equals(intent.getStringExtra("falg"))) {
-                refreshUI();
-            }
-        }
-    };
-
-    public OnRefreshUIListener refreshRedUIListener = null;
-    private ImageView voice_search;
+    private Comparator<BaseSortModel<Friend>> comparator;
 
     @Override
-    public void onResult(RecognizerResult recognizerResult, boolean b) {
-        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
-        mClearEditText.setText(mClearEditText.getText().toString() + CommonUtil.getPlaintext(text));
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        if (context instanceof MainActivity)
+            mContext = (MainActivity) context;
+        else new ClassCastException("该碎片必须由MainActivity生成");
     }
 
     @Override
-    public void onError(SpeechError speechError) {
-        Log.v("speechError", speechError.toString());
-    }
-
-    public interface OnRefreshUIListener {
-        void updata(int num);
-    }
-
-
-    public MessageFragment() {
-        mOriginalFriendList = new ArrayList<BaseSortModel<Friend>>();
-        mFriendList = new ArrayList<BaseSortModel<Friend>>();
+    public void onDestroy() {
+        super.onDestroyView();
+        presenter.onDestroyView(mContext);
     }
 
     @Override
     protected int inflateLayoutId() {
-        return R.layout.fragment_message;
+        return R.layout.fragment_new_message;
     }
 
-    /**
-     * @desc:监听网络变化
-     * @author:Arison on 2016/11/30
-     */
-    private BroadcastReceiver mNetWorkChangeReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (CommonUtil.isNetWorkConnected(MyApplication.getInstance())) {
-                setNetNoticeVisiable(false);
-            } else {
-                setNetNoticeVisiable(true);
-            }
-        }
-    };
-
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
-        mActivity.registerReceiver(mUpdateReceiver, new IntentFilter(MsgBroadcast.ACTION_MSG_UI_UPDATE));
-        mActivity.registerReceiver(receiver, new IntentFilter(MsgBroadcast.ACTION_MSG_COMPANY_UPDATE));
-        mActivity.registerReceiver(mNetWorkChangeReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+        LogUtil.d("onCreateView:" + DateFormatUtil.getDateTimeStr());
         if (createView) {
+            ViewUtils.inject(getmRootView());
+            platform = ApiUtils.getApiModel() instanceof ApiPlatform;
             initView();
+            initEvent();
         }
     }
 
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        mActivity.unregisterReceiver(mUpdateReceiver);
-        mActivity.unregisterReceiver(receiver);
-        mActivity.unregisterReceiver(mNetWorkChangeReceiver);
-    }
-
     @Override
     public void onResume() {
         super.onResume();
-        mHandler.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-//                if (mNeedUpdate) {
-//                    mNeedUpdate = false;
-                refreshUI();
-//                }
-            }
-        }, 1);
-    }
-
-    public void setOnRefreshRedUI(OnRefreshUIListener refreshRedUI) {
-        this.refreshRedUIListener = refreshRedUI;
+        presenter.loadData();
     }
 
-    public void setListener() {
-        int num = BMSGS_count + GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count;
-        if (refreshRedUIListener == null) return;
-        refreshRedUIListener.updata(num);
-    }
-
-    private void initView() {
-        mNetTextView = (DrawableCenterTextView) findViewById(R.id.message_net_set);
-        mClearEditText = (ClearEditText) findViewById(R.id.search_edit);
-        voice_search = (ImageView) findViewById(R.id.voice_search_iv);
-
-        final VoiceToWord voice = new VoiceToWord(ct, "534e3fe2");
-        voice.setRecognizerDialogListener(this);  //自己调用自己
-        voice_search.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-//                voice_search.setImageResource(R.drawable.btn_yuyin_pressed);
-                voice.GetWordFromVoice();
-            }
-        });
-        mClearEditText.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-                String filter = mClearEditText.getText().toString().trim().toUpperCase();
-                mFriendList.clear();
-                if (mOriginalFriendList != null && mOriginalFriendList.size() > 0) {
-                    for (int i = 0; i < mOriginalFriendList.size(); i++) {
-                        BaseSortModel<Friend> mode = mOriginalFriendList.get(i);
-                        // 获取筛选的数据
-                        if (TextUtils.isEmpty(filter) || mode.getSimpleSpell().startsWith(filter) || mode.getWholeSpell().startsWith(filter)
-                                || mode.getBean().getShowName().startsWith(filter)) {
-                            mFriendList.add(mode);
-                        }
-                        if (i == (mOriginalFriendList.size() - 1)) {
-                        }
-                    }
-                }
-                mAdapter.notifyDataSetChanged();
-            }
-
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-            }
-
+    private void initEvent() {
+        mVoice.setRecognizerDialogListener(this);
+        findViewById(R.id.voice_search_iv).setOnClickListener(this);
+        message_net_set.setOnClickListener(this);
+        search_edit.addTextChangedListener(new EditChangeListener() {
             @Override
             public void afterTextChanged(Editable s) {
+                //TODO 输入后搜索
+                presenter.search(s.toString());
             }
         });
-
-        mPullToRefreshListView = (PullToRefreshSlideListView) findViewById(R.id.pull_refresh_list);
-        mPullToRefreshListView.setShowIndicator(false);
-        mPullToRefreshListView.getRefreshableView().setCacheColorHint(Color.parseColor("#000000"));
-        mPullToRefreshListView.getRefreshableView().setScrollingCacheEnabled(false);
-        mPullToRefreshListView.setMode(Mode.PULL_FROM_START);
-        mAdapter = new NearlyMessageAdapter(mActivity);
-        mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
-        mPullToRefreshListView.getRefreshableView().addHeaderView(getHeaderView());
-        mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener<SlideListView>() {
+        //下拉刷新
+        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<SlideListView>() {
             @Override
             public void onRefresh(PullToRefreshBase<SlideListView> refreshView) {
-                mNoticeMsg = null;
-                refreshUI();
+                presenter.loadData();
             }
         });
-
-        mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
+        listView.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 == null) {
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                if (mAdapter == null || ListUtils.isEmpty(mAdapter.getmFriendList()) || mAdapter.getCount() <= id)
                     return;
-                }
-                if (friend.getType() == XmppMessage.TYPE_ERP) {
-                    //消息
-                    //TODO 调转到制定界面
-                    turn2ERp(friend);
-                    return;
-                }
-                if (friend.getRoomFlag() == 0) {
-                    if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
-                        startActivity(new Intent(mActivity, NewFriendActivity.class));
-                    } else {
-                        Intent intent = new Intent(mActivity, ChatActivity.class);
-                        intent.putExtra(ChatActivity.FRIEND, friend);
-                        startActivity(intent);
-                    }
-                } else {
-                    Intent intent = new Intent(mActivity, MucChatActivity.class);
-                    intent.putExtra(AppConstant.EXTRA_USER_ID, friend.getUserId());
-                    intent.putExtra(AppConstant.EXTRA_NICK_NAME, friend.getNickName());
-                    intent.putExtra(AppConstant.EXTRA_IS_GROUP_CHAT, true);
-                    startActivity(intent);
-                }
-                if (friend.getUnReadNum() > 0) {
-                    MsgBroadcast.broadcastMsgNumUpdate(mActivity, false, friend.getUnReadNum());
-                    friend.setUnReadNum(0);
-                    mAdapter.notifyDataSetChanged();
-                }
+                presenter.turn2NextAct(mContext, (int) id);
             }
         });
 
-        mNetTextView.setOnClickListener(new View.OnClickListener() {
+        listView.getRefreshableView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
             @Override
-            public void onClick(View v) {
-                startActivity(new Intent(Settings.ACTION_SETTINGS));
+            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
+                if (mAdapter == null || ListUtils.isEmpty(mAdapter.getmFriendList()) || mAdapter.getCount() <= id)
+                    return true;
+                clickPosition = (int) id;
+                showPopupWindow();
+                return true;
             }
         });
-    }
-
-    /**
-     * 调转到对应ERP相关知会里面去
-     *
-     * @param friend
-     */
-    private void turn2ERp(Friend friend) {
-        String description = friend.getDescription();
 
-        if (StringUtils.isEmpty(description)) return;
-        Intent intent = new Intent(ct, MsgsSecondCommonActivity.class);
-        intent.putExtra("type", description);
-        intent.putExtra("title", friend.getNickName());
-        intent.putExtra("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        startActivity(intent);
     }
 
-    public void setNetNoticeVisiable(boolean visiable) {
-        if (mNetTextView != null) {
-            if (visiable) {
-                mNetTextView.setVisibility(View.VISIBLE);
-            } else {
-                mNetTextView.setVisibility(View.GONE);
-            }
+    private void initView() {
+        mVoice = new VoiceToWord(mContext, "534e3fe2");
+        listView.getRefreshableView().addHeaderView(initHeaderView());
+//        listView.setShowIndicator(false);
+//        listView.getRefreshableView().setCacheColorHint(Color.parseColor("#000000"));
+//        listView.getRefreshableView().setScrollingCacheEnabled(false);
+        listView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+        mAdapter = new MessageAdapter(null, mContext);
+        listView.getRefreshableView().setAdapter(mAdapter);
+        presenter = new MessagePresenter(mContext, this);
+    }
+
+    private View initHeaderView() {
+        View view = LayoutInflater.from(mContext).inflate(R.layout.new_message_header, null);
+        news_notice_rl = (RelativeLayout) view.findViewById(R.id.notice_rl);
+        subscribe_rl = (RelativeLayout) view.findViewById(R.id.subscribe_rl);
+        schedule_num_tv = (TextView) view.findViewById(R.id.schedule_num_tv);//审批流
+        waitting_work_num_tv = (TextView) view.findViewById(R.id.waitting_work_num_tv);//待办工作
+        subscribe_num_tv = (TextView) view.findViewById(R.id.subscribe_num_tv);//我的订阅
+
+        schedule_content_tv = (TextView) view.findViewById(R.id.schedule_content_tv);//审批流
+        waitting_work_content_tv = (TextView) view.findViewById(R.id.waitting_work_content_tv);//待办工作
+        subscribe_content_tv = (TextView) view.findViewById(R.id.subscribe_content_tv);//我的订阅
+
+        schedule_time_tv = (TextView) view.findViewById(R.id.schedule_time_tv);//审批流
+        waitting_work_time_tv = (TextView) view.findViewById(R.id.waitting_work_time_tv);//待办工作
+        subscribe_time_tv = (TextView) view.findViewById(R.id.subscribe_time_tv);//我的订阅
+        view.findViewById(R.id.schedule_rl).setOnClickListener(this);//审批流
+        view.findViewById(R.id.waitting_work_rl).setOnClickListener(this);//待办工作
+        view.findViewById(R.id.subscribe_rl).setOnClickListener(this);//我的订阅
+        view.findViewById(R.id.notice_rl).setOnClickListener(this); //新闻通知
+        if (platform) {
+            subscribe_rl.setVisibility(View.GONE);
+            news_notice_rl.setVisibility(View.VISIBLE);
+        } else {
+            subscribe_rl.setVisibility(View.VISIBLE);
+            news_notice_rl.setVisibility(View.GONE);
         }
-    }
-
-    /**
-     * 头视图相关
-     * 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 TextView b2b_num_tv, b2b_content_tv, b2b_time_tv;
-    private RelativeLayout rl_b2b;
-
-    private View getHeaderView() {
-        View view = LayoutInflater.from(mActivity).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);
-        b2b_num_tv = (TextView) view.findViewById(R.id.b2b_num_tv);
-        b2b_content_tv = (TextView) view.findViewById(R.id.b2b_content_tv);
-        b2b_time_tv = (TextView) view.findViewById(R.id.b2b_time_tv);
-        rl_b2b = (RelativeLayout) view.findViewById(R.id.rl_b2b_business);
-        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);
-        view.findViewById(R.id.rl_b2b_business).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(mActivity, ScheduleActivity.class));
-                    startActivity(new Intent(mActivity, ProcessMsgActivity.class));
-                    break;
-                case R.id.task_rl:
-                    startActivity(new Intent(mActivity, TaskActivity.class));
-                    break;
-                case R.id.notice_rl:
-                    Intent intent = new Intent(mActivity, NoticeMenuActivity.class);
-                    intent.putExtra(NoticeMenuActivity.GONGGAO, GONGGAO_count);
-                    intent.putExtra(NoticeMenuActivity.NOTICE, NOTICE_count);
-                    intent.putExtra(NoticeMenuActivity.NES, NES_count);
-                    startActivityForResult(intent, REQUESTCODE);
-                    break;
-                case R.id._rl:
-//                    startActivity(new Intent(mActivity, SubscriptionActivity.class));
-                    startActivity(new Intent(mActivity, Subscription2Activity.class));
-                    break;
-                case R.id.rl_b2b_business:
-                    startActivity(new Intent(mActivity, B2bMsgActivity.class));
-                    break;
-            }
-        }
-    };
-
-
-    private void refreshUI() {
-        if (!AppConfig.COMPANY) return;
-        loadDataByIm();
-        FriendDao.getInstance().markUserMessageRead(
-                MyApplication.getInstance().mLoginUser.getUserId(),
-                Friend.ID_ERP_ZHIHUI);
-
-        loadGongGaoCount(mActivity);//公告
-        loadNoticeCount(mActivity);//通知
-        loadERPNewsNum(mActivity);//新闻
-        loadNetData(mActivity);//订阅好
-
-
-        loadERPMsgNum(mActivity);//getallprocess
-        loadB2bMessageNum();//商务消息
-        loadProcessToDo(1);//common/desktop/process/toDo.action
+    private void showPopupWindow() {
+        if (setWindow == null) initPopupWindow();
+        setWindow.showAtLocation(mContext.getWindow().getDecorView().
+                findViewById(android.R.id.content), Gravity.CENTER, 0, 0);
+        DisplayUtil.backgroundAlpha(mContext, 0.4f);
     }
 
-
-    /**
-     * 获取关注列表(需调式查看访问数据内容)  更新朋友信息
-     */
-    private void upDataFriend() {
-        isRefeshed = true;
-        HashMap<String, String> params = new HashMap<String, String>();
-        params.put("access_token", MyApplication.getInstance().mAccessToken);
-        StringJsonArrayRequest<AttentionUser> request = new StringJsonArrayRequest<AttentionUser>(
-                MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST, new ErrorListener() {
+    private void initPopupWindow() {
+        View viewContext = LayoutInflater.from(ct).inflate(R.layout.msgs_long_click, null);
+        viewContext.findViewById(R.id.msg_delete_tv).setOnClickListener(new View.OnClickListener() {
             @Override
-            public void onErrorResponse(VolleyError arg0) {
-                ToastUtil.showErrorNet(mActivity);
-            }
-        }, new StringJsonArrayRequest.Listener<AttentionUser>() {
-            @Override
-            public void onResponse(ArrayResult<AttentionUser> result) {
-                boolean success = Result.defaultParser(mActivity, result, false);
-                if (success) {
-                    FriendDao.getInstance().addAttentionUsers(mHandler, MyApplication.getInstance().mLoginUser.getUserId(), result.getData(),
-                            new OnCompleteListener() {
-                                @Override
-                                public void onCompleted() {
-                                    mPullToRefreshListView.getRefreshableView();
-                                }
-                            });
-                }
-            }
-        }, AttentionUser.class, params);
-        mActivity.addDefaultRequest(request);
-    }
-
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        mActivity = (MainActivity) context;
-    }
-
-    public void setFriendName(List<Friend> friends, String id) {
-        List<Friend> f = FriendDao.getInstance().getFriends(id);
-        if (friends == null) return;
-        for (int i = 0; i < friends.size(); i++) {
-            for (int j = 0; j < f.size(); j++) {
-                if (friends.get(i).get_id() == f.get(j).get_id()) {
-                    friends.get(i).setNickName(f.get(j).getNickName());
-                    friends.get(i).setRemarkName(f.get(j).getRemarkName());
-                    break;
-                }
+            public void onClick(View v) {
+                presenter.deleteListByType(clickPosition);
+                closePopupWindow();
             }
-        }
-    }
-
-    private void loadDataByErp() {
-
-        Map<String, Object> param = new HashMap<>();
-        param.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        HttpHandler.getInstance().loadERPByNet(0x11, "mobile/queryEmNews.action", param, null, new HttpHandler.OnResultListener() {
+        });
+        viewContext.findViewById(R.id.msg_markread_tv).setOnClickListener(new View.OnClickListener() {
             @Override
-            public void result(int what, boolean isJSON, String message, Bundle bundle) {
-                if (!isJSON) return;
-                JSONObject object = JSON.parseObject(message);
-                //TODO 获取到消息的总数
-                int allCount = WorkHandlerUtil.getIntByJson(object, "allCount");
-                if (!object.containsKey("listdata")) return;
-                JSONArray array = object.getJSONArray("listdata");
-                handlerNewsFormErp(array);
-                loadDataByIm();
+            public void onClick(View v) {
+                presenter.readerAllByType(clickPosition);
+                closePopupWindow();
             }
-
+        });
+        setWindow = new PopupWindow(viewContext,
+                LinearLayout.LayoutParams.MATCH_PARENT,
+                LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        setWindow.setAnimationStyle(R.style.MenuAnimationFade);
+        setWindow.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.bg_popuwin));
+        setWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
             @Override
-            public void error(int what, int statuCode, String message, Bundle bundle) {
-
+            public void onDismiss() {
+                closePopupWindow();
             }
         });
     }
 
-    private Comparator<BaseSortModel<Friend>> erpComparator = null;
-
-    private void handlerNewsFormErp(JSONArray array) {
-        if (ListUtils.isEmpty(array)) {
-            //TODO  为空数据情况下
-            return;
-        }
-        List<BaseSortModel<Friend>> erpFriend = new ArrayList<>();
-        JSONObject object = null;
-        Friend friend = null;
-        for (int i = 0; i < array.size(); i++) {
-            object = array.getJSONObject(i);
-            friend = new Friend();
-            friend.setNickName(object.getString("title"));
-            friend.setContent(object.getString("lastMessage"));
-            friend.setTimeSend(getErpTime(object, "lastTime"));
-            friend.setType(XmppMessage.TYPE_ERP);
-            friend.setDescription(object.getString("type"));
-
-            BaseSortModel<Friend> mode = new BaseSortModel<>();
-            mode.setBean(friend);
-            setSortCondition(mode);
-            erpFriend.add(mode);
-        }
-        if (erpComparator == null) {
-            erpComparator = new Comparator<BaseSortModel<Friend>>() {
-                public int compare(BaseSortModel<Friend> s1, BaseSortModel<Friend> s2) {
-                    return (s1.getBean().getTimeSend() - s2.getBean().getTimeSend());
-                }
-            };
-        }
-        Collections.sort(erpFriend, erpComparator);
-        mFriendList.addAll(0, erpFriend);
-        mOriginalFriendList.addAll(0, erpFriend);
-        mAdapter.notifyDataSetChanged();
+    private void closePopupWindow() {
+        if (setWindow != null)
+            setWindow.dismiss();
+        DisplayUtil.backgroundAlpha(mContext, 1f);
     }
 
 
-    private int getErpTime(JSONObject object, String lastTime) {
-        String time = object.getString(lastTime);
-        if (StringUtils.isEmpty(time)) {
-            return (int) (System.currentTimeMillis() / 1000);
-        } else {
-            return (int) (TimeUtils.f_str_2_long(time) / 1000);
-        }
-    }
-
-    /**
-     * 请求加载新的筛选条件的数据
-     * <p/>
-     * 是下拉刷新,还是上拉加载
-     */
-    private void loadDataByIm() {
-        //TODO im部分
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-                long startTime = System.currentTimeMillis();
-                final List<Friend> friends = FriendDao.getInstance().getNearlyFriendMsg(mLoginUserId);
-                setFriendName(friends, mLoginUserId);
-                long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
-                if (delayTime < 0) {
-                    delayTime = 0;
-                }
-                mHandler.postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        mOriginalFriendList.clear();
-                        mFriendList.clear();
-                        String filter = mClearEditText.getText().toString().trim().toUpperCase();
-                        if (friends != null && friends.size() > 0) {
-                            for (int i = 0; i < friends.size(); i++) {
-                                BaseSortModel<Friend> mode = new BaseSortModel<>();
-                                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();
-                    }
-                }, delayTime);
-            }
-        }).start();
+    //语音数据回调
+    @Override
+    public void onResult(RecognizerResult recognizerResult, boolean b) {
+        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+        search_edit.setText(search_edit.getText().toString() + CommonUtil.getPlaintext(text));
 
     }
 
     @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == MessageFragment.REQUESTCODE) {
-            if (data != null) {
-                GONGGAO_count = data.getIntExtra(NoticeMenuActivity.GONGGAO, -1);
-                NES_count = data.getIntExtra(NoticeMenuActivity.NES, -1);
-                NOTICE_count = data.getIntExtra(NoticeMenuActivity.NOTICE, -1);
-                setNOTICE_count(GONGGAO_count + NES_count + NOTICE_count);
-            }
-        }
-    }
+    public void onError(SpeechError speechError) {
 
-    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("#");
-        }
     }
 
-
-    private void deleteFriend(final String loginUserId, final BaseSortModel<Friend> sortFriend) {
-        Friend friend = sortFriend.getBean();
-        if (friend.getUnReadNum() > 0) {
-            MsgBroadcast.broadcastMsgNumUpdate(mActivity, false, friend.getUnReadNum());
+    //点击时间回调
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.voice_search_iv://点击语音
+                mVoice.GetWordFromVoice();
+                break;
+            case R.id.message_net_set://点击无网络情况
+                startActivity(new Intent(Settings.ACTION_SETTINGS));
+                break;
+            case R.id.schedule_rl://审批流
+                startActivity(new Intent(mContext, ProcessMsgActivity.class));
+                break;
+            case R.id.waitting_work_rl://待办工作
+                startActivity(new Intent(mContext, TaskActivity.class));
+                break;
+            case R.id.subscribe_rl://我的订阅
+                presenter.setSubReadTime(TimeUtils.s_long_2_str(System.currentTimeMillis()));
+                startActivity(new Intent(mContext, Subscription2Activity.class));
+                break;
+            case R.id.msg_delete_tv://删除
+                break;
+            case R.id.msg_markread_tv://标为已读
+                break;
+            case R.id.notice_rl: //新闻通知
+                Intent intent = new Intent(mContext, NoticeMenuActivity.class);
+//                intent.putExtra(NoticeMenuActivity.GONGGAO, GONGGAO_count);
+//                intent.putExtra(NoticeMenuActivity.NOTICE, NOTICE_count);
+//                intent.putExtra(NoticeMenuActivity.NES, NES_count);
+                startActivityForResult(intent, REQUESTCODE);
+                break;
         }
-        mFriendList.remove(sortFriend);
-        mOriginalFriendList.remove(sortFriend);
-        mAdapter.notifyDataSetChanged();
-
-        // 删除这个房间
-        FriendDao.getInstance().deleteFriend(loginUserId, friend.getUserId());
-        // 消息表中删除
-        ChatMessageDao.getInstance().deleteMessageTable(loginUserId, friend.getUserId());
-        mActivity.exitMucChat(friend.getUserId());
-    }
 
-    //先忽略
-    public void sendBroadcast() {
-        Intent mIntent = new Intent(MucgroupUpdateUtil.ACTION_UPDATE);
-        mActivity.sendBroadcast(mIntent);
     }
 
 
-    public class NearlyMessageAdapter extends SlideBaseAdapter {
-
-        public NearlyMessageAdapter(Context context) {
-            super(context);
-        }
-
-        @Override
-        public int getCount() {
-            return mFriendList.size();
-        }
-
-        @Override
-        public Object getItem(int position) {
-            return mFriendList.get(position).getBean();
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
+    @Override
+    public void showModel(List<BaseSortModel<Friend>> models) {
+        sortModels(models);
+        if (listView.isRefreshing())
+            listView.onRefreshComplete();
+        if (mAdapter == null) {
+            mAdapter = new MessageAdapter(models, mContext);
+            listView.getRefreshableView().setAdapter(mAdapter);
+        } else {
+            mAdapter.setmFriendList(models);
+            mAdapter.notifyDataSetChanged();
         }
+    }
 
-        @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();
-            avatar_img.setBackgroundResource(R.color.transparent);
-            if (friend.getRoomFlag() == 0) {// 这是单个人
-                if (isRefeshed) {
-                    AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, false, true);//每次刷新都会去删除此人缓存
-                    isRefeshed = false;
-                } else {
-                    AvatarHelper.getInstance().displayAvatar(friend.getUserId(), avatar_img, true);
-                }
-
-            } else {
-                if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
-                    avatar_img.setImageResource(R.drawable.qunliao);
-                } else {
-                    AvatarHelper.getInstance().displayAvatarPng(friend.getRoomCreateUserId(), avatar_img, true);// 目前在备注名放房间的创建者Id
-                }
-            }
-            nick_name_tv.setText(friend.getRemarkName() != null ? friend.getRemarkName() : friend.getNickName());
-            time_tv.setText(TimeUtils.getFriendlyTimeDesc(mActivity, 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);
-            } else {
-                content = friend.getContent();
-            }
-            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);
-            } else {
-                num_tv.setVisibility(View.GONE);
-            }
-
-            delete_tv.setOnClickListener(new View.OnClickListener() {
+    private void sortModels(List<BaseSortModel<Friend>> models) {
+        if (ListUtils.isEmpty(models)) return;
+        if (comparator == null)
+            comparator = new Comparator<BaseSortModel<Friend>>() {
                 @Override
-                public void onClick(View v) {
-                    String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-                    if (friend.getRoomFlag() == 0) {
-                        if (friend.getUnReadNum() > 0) {
-                            MsgBroadcast.broadcastMsgNumUpdate(mActivity, 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 {
-                        deleteFriend(mLoginUserId, mFriendList.get(position));
-                    }
-
+                public int compare(BaseSortModel<Friend> lhs, BaseSortModel<Friend> rhs) {
+                    return rhs.getBean().getTimeSend() - lhs.getBean().getTimeSend();
                 }
-            });
-            return convertView;
-        }
-
-        //控制侧滑删除
-        @Override
-        public 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 SlideMode.NONE;
-            }
-            return super.getSlideModeInPosition(position);
-        }
-
-        @Override
-        public int getFrontViewId(int position) {
-
-            return R.layout.row_nearly_message;
-
-        }
-
-        @Override
-        public int getLeftBackViewId(int position) {
-            return 0;
-        }
-
-        @Override
-        public int getRightBackViewId(int position) {
-            return R.layout.row_item_delete;
-        }
-    }
-
-
-    public void loadNoticeCount(Context ct) {
-        String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/inform.action";
-        final Map<String, Object> param = new HashMap<>();
-        param.put("count", "1000");
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.LOAD_SUCCESS, null, null, "get");
-    }
-
-    //获取任务
-    public void loadTaskByNet(int handlerWhat) {
-        String url = Constants.getAppBaseUrl(getActivity()) + "common/datalist/data.action";
-        Map<String, Object> mparams = new HashMap<String, Object>();
-        mparams.put("sessionId", CommonUtil.getSharedPreferences(mActivity, "sessionId"));
-        mparams.put("caller", "ResourceAssignment");
-        mparams.put("page", "1");
-        mparams.put("pageSize", "100");
-        mparams.put("_noc", "1");
-        String em_code = CommonUtil.getSharedPreferences(mActivity, "erp_username");
-        mparams.put("condition", "ra_resourcecode='" + em_code + "' and ra_statuscode='" + "START" + "'");
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(mActivity, "sessionId"));
-        ViewUtil.httpSendRequest(mActivity, url, mparams, handler, headers, handlerWhat, null, null, "get");
-    }
-
-    public void loadGongGaoCount(Context ct) {
-        String url = Constants.getAppBaseUrl(ct) + "common/desktop/note/notice.action";
-        final Map<String, Object> param = new HashMap<>();
-        param.put("count", "1000");
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_LOGIN, null, null, "get");
+            };
+        Collections.sort(models, comparator);
     }
 
 
-    public void loadERPMsgNum(Context ct) {
-        String url = Constants.getAppBaseUrl(ct) + "mobile/getallprocess.action";
-        Map<String, Object> param = new HashMap<String, Object>();
-        param.put("employeeCode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, handler, headers, load_success_erpMsgNum, null, null, "get");
+    @Override
+    public void clearSearch() {
+        search_edit.setText("");
     }
 
 
-    public void loadERPNewsNum(Context ct) {
-        String url = Constants.getAppBaseUrl(ct) + "common/desktop/news/getNews.action";
-        final Map<String, Object> param = new HashMap<>();
-        param.put("count", "1000");
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_INITDATA, null, null, "get");
-    }
+    //头文件处理
+    private TextView schedule_num_tv;//审批流
+    private TextView waitting_work_num_tv;//待办工作
+    private TextView subscribe_num_tv;//我的订阅
 
-    public void loadNetData(Context ct) {
-        //获取网络数据
-        String url = Constants.getAppBaseUrl(ct) + "common/desktop/subs/getSubs.action";
-        final Map<String, Object> param = new HashMap<>();
-        param.put("count", 100);
-        param.put("condition", "where to_char(createdate_,'yyyymmdd')='" + TimeUtils.int_long_2_str(System.currentTimeMillis()) + "'");
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x16, null, null, "get");
-    }
+    private TextView schedule_content_tv;//审批流
+    private TextView waitting_work_content_tv;//待办工作
+    private TextView subscribe_content_tv;//我的订阅
 
-    /**
-     * @desc:审批流接口
-     * @author:Arison on 2016/11/15
-     */
-    private void loadProcessToDo(int page) {
-        String url = Constants.getAppBaseUrl(ct) + "common/desktop/process/toDo.action";
-        Map<String, Object> params = new HashMap<>();
-        // count=10&page=1&limit=25
-        params.put("count", "1000");
+    private TextView schedule_time_tv;//审批流
+    private TextView waitting_work_time_tv;//待办工作
+    private TextView subscribe_time_tv;//我的订阅
 
-        params.put("page", page);
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, params, handler, headers, 0x17, null, null, "get");
-    }
-
-    /**
-     * @功能:加载商务信息-本地数据库
-     * @author:Arisono
-     * @param:
-     * @return:
-     */
-    public void loadB2bMessageNum() {
-        DBManager db = new DBManager(getActivity());
-        String master = CommonUtil.getSharedPreferences(getActivity(), "erp_master");
-        Log.i("Arison", "" + master);
-        if (StringUtils.isEmpty(master)) return;
-        List<B2BMsg> bMsgs = db.queryB2bList(new String[]{"0", master}, " b2b_hasRead=? and b2b_master=? ");
-        Log.i("B2B", "" + JSON.toJSONString(bMsgs));
-        if (!ListUtils.isEmpty(bMsgs)) {
-            if (b2b_num_tv == null) return;
-            b2b_num_tv.setText(bMsgs.size() + "");
-            b2b_num_tv.setVisibility(View.VISIBLE);
-            b2b_content_tv.setText("您有" + bMsgs.size() + "条商务消息未读");
-            rl_b2b.setVisibility(View.VISIBLE);
-            BMSGS_count = bMsgs.size();
-            setListener();
-        } else {
-            rl_b2b.setVisibility(View.GONE);
+    @Override
+    public void updateHeaderView(int postion, int num, String subTitle) {
+        switch (postion) {
+            case 0:
+                updateHeaderView(schedule_num_tv, schedule_content_tv, schedule_time_tv, num, subTitle);
+                break;
+            case 1:
+                updateHeaderView(waitting_work_num_tv, waitting_work_content_tv, waitting_work_time_tv, num, subTitle);
+                break;
+            case 2:
+                updateHeaderView(subscribe_num_tv, subscribe_content_tv, subscribe_time_tv, num, subTitle);
+                break;
         }
-        db.closeDB();
     }
 
-
-    private final int load_success_erpMsgNum = 5;
-    private Handler handler = new Handler() {
-        @Override
-        public void handleMessage(final Message msg) {
-            switch (msg.what) {
-                case 0x16:
-                    String message = (String) msg.getData().get("result");
-                    List<SubscriptionMessage> messages = null;
-                    int num = 0;
-                    if (JSON.parseObject(message).containsKey("data")) {
-                        messages = JSON.parseArray(JSON.parseObject(message).getJSONArray("data").toJSONString(), SubscriptionMessage.class);
-                        for (SubscriptionMessage e : messages) {
-                            if (e.getSTATUS_() == 0)
-                                num += 1;
-                        }
-                    }
-                    SUBRICE_count = num;
-                    setListener();
-                    if (num > 0) {
-                        num_tv.setText(num + "");
-                        num_tv.setVisibility(View.VISIBLE);
-//                        content_tv.setText("您有新的订阅消息!");
-                        content_tv.setText(messages.get(0).getTITLE_());
-                        time_tv.setText("刚刚");
-                    } else {
-                        num_tv.setVisibility(View.GONE);
-//                        content_tv.setText("暂无新的订阅消息!");
-                        content_tv.setText("");
-                    }
-                    break;
-                case 0x17:
-                    try {
-                        JSONArray itemArray = JSON.parseObject(msg.getData().getString("result")).getJSONArray("data");
-                        itemArray = CommonUtil.sortJsonArray(itemArray);
-                        LogUtil.d("item:" + itemArray.size());
-                        if (!ListUtils.isEmpty(itemArray)) {
-                            DAIBAN_count = itemArray.size();
-                            Message DaibanMsg = Message.obtain();
-                            DaibanMsg.what = DAIBAN_MSG;
-                            if (itemArray.size() != 0) {
-                                DaibanMsg.obj = itemArray.getJSONObject(0).getString("JP_LAUNCHERNAME") + "的"
-                                        + itemArray.getJSONObject(0).getString("JP_NAME");
-                            }
-                            handler.sendMessage(DaibanMsg);
-                            //                        handler.sendEmptyMessage(DAIBAN_MSG);
-                        } else {
-                            DAIBAN_count = 0;
-                            handler.sendEmptyMessage(DAIBAN_MSG);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                    break;
-                case Constants.SUCCESS_LOGIN://公告
-                    updateGongGao(msg);
-                    break;
-                case load_success_erpMsgNum://待办(任务、代办、订阅)
-                    getErpMsgNums(msg);
-                    break;
-                case Constants.LOAD_SUCCESS://通知
-                    updateNotice(msg);
-                    break;
-                case Constants.SUCCESS_INITDATA://新闻
-                    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:
-                    setListener();
-                    if (TASK_count > 0) {
-                        task_num_tv.setText(TASK_count + "");
-                        task_num_tv.setVisibility(View.VISIBLE);
-//                        task_content_tv.setText("您有新的任务!");
-                        if (msg.obj != null) {
-                            task_content_tv.setText((String) msg.obj);
-                        }
-                        task_time_tv.setText("刚刚");
-                    } else {
-                        task_num_tv.setVisibility(View.GONE);
-                        task_content_tv.setText("");
-                    }
-                    break;
-                case DAIBAN_MSG:
-                    setListener();
-                    if (DAIBAN_count > 0) {
-                        String daiban = (String) msg.obj;
-                        schedule_num_tv.setText(DAIBAN_count + "");
-                        schedule_num_tv.setVisibility(View.VISIBLE);
-//                        schedule_content_tv.setText("您有新的待审批流程!");
-                        if (daiban != null) {
-                            schedule_content_tv.setText(daiban);
-                        }
-                        schedule_time_tv.setText("刚刚");
-                    } else {
-                        schedule_num_tv.setVisibility(View.GONE);
-                        schedule_content_tv.setText("");
-                    }
-                    break;
-            }
-        }
-    };
-
-
-    private void setNOTICE_count(int count) {
-        setListener();
-        if (count > 0) {
-            notice_num_tv.setText(count + "");
-            notice_num_tv.setVisibility(View.VISIBLE);
-            if (mNoticeMsg != null) {
-                notice_content_tv.setText(mNoticeMsg);
+    @Override
+    public void changeNet(boolean workConnected) {
+        if (message_net_set != null) {
+            if (!workConnected) {
+                message_net_set.setVisibility(View.VISIBLE);
+            } else {
+                message_net_set.setVisibility(View.GONE);
             }
-//            notice_content_tv.setText("您有新的通知公告!");
-            notice_time_tv.setText("刚刚");
-        } else {
-            notice_num_tv.setVisibility(View.GONE);
-            notice_content_tv.setText("");
         }
     }
 
-    public static final int GONGGAO_MSG = 0X00a, NOTICE_MSG = 0X00b, NES_MSG = 0X00c, TASK_MSG = 0X00d, DAIBAN_MSG = 0X00e;
-    private int GONGGAO_count = 0, NOTICE_count = 0, NES_count = 0, TASK_count = 0, DAIBAN_count = 0,
-            SUBRICE_count = 0, BMSGS_count = 0;
 
-    private void updateGongGao(Message msg) {
-        final String result = msg.getData().getString("result");
-        ThreadPool.getThreadPool().addTask(new Runnable() {
-            @Override
-            public void run() {
-                NoticeEntity newsEntity =
-                        JSON.parseObject(result, NoticeEntity.class);
-                int size = 0;
-                if (newsEntity != null) {
-                    size = newsEntity.getData().size();
-                }
-                String em_id = CommonUtil.getSharedPreferences(mActivity, "erp_emid");
-                int count = 0;
-                for (int i = 0; i < size; i++) {
-                    if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
-                        if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
-                            if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
-                                if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
-                                    if (mNoticeMsg == null) {
-                                        mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
-                                    }
-                                    count++;
-                                }
-                            }
-                        }
-                    } else {
-                        if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
-                            if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
-                                if (mNoticeMsg == null) {
-                                    mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
-                                }
-                                count++;
-                            }
-                        } else {
-                            if (mNoticeMsg == null) {
-                                mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
-                            }
-                            count++;
-                        }
-                    }
-                }
-                GONGGAO_count = count;
-                handler.sendEmptyMessage(GONGGAO_MSG);
-            }
-        });
-    }
-
-    private void updateNotice(Message msg) {
-        final String result = msg.getData().getString("result");
-        ThreadPool.getThreadPool().addTask(new Runnable() {
-            @Override
-            public void run() {
-                NoticeEntity newsEntity;
-                int size;
-                int count;
-                String em_id;
-                newsEntity = JSON.parseObject(result, NoticeEntity.class);
-                size = 0;
-                if (newsEntity != null) {
-                    size = newsEntity.getData().size();
-                }
-                count = 0;
-                em_id = CommonUtil.getSharedPreferences(mActivity, "erp_emid");
-                for (int i = 0; i < size; i++) {
-                    if (!ObjectUtils.isEquals(newsEntity.getData().get(i).getSTATUS(), null)) {
-                        if (((int) newsEntity.getData().get(i).getSTATUS()) != -1) {
-                            if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
-                                if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
-                                    if (mNoticeMsg == null) {
-                                        mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
-                                    }
-                                    count++;
-                                }
-                            }
-                        }
-                    } else {
-                        if ((!StringUtils.isEmpty(em_id) && newsEntity.getData().get(i).getNO_RECIPIENTID() != null)) {
-                            if (newsEntity.getData().get(i).getNO_RECIPIENTID().toString().contains(em_id)) {
-                                if (mNoticeMsg == null) {
-                                    mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
-                                }
-                                count++;
-                            }
-                        } else {
-                            if (mNoticeMsg == null) {
-                                mNoticeMsg = newsEntity.getData().get(0).getNO_TITLE().replace("&nbsp;", "");
-                            }
-                            count++;
-                        }
-                    }
-                }
-                NOTICE_count = count;
-                handler.sendEmptyMessage(NOTICE_MSG);
-            }
-        });
-    }
-
-    private void updateNews(Message msg) {
-        final String result = msg.getData().getString("result");
-        ThreadPool.getThreadPool().addTask(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    int size;
-                    int count;
-                    NewsEntity news = JSON.parseObject(result, NewsEntity.class);
-                    size = 0;
-                    if (news != null) {
-                        size = news.getData().size();
-                    }
-                    count = 0;
-                    for (int i = 0; i < size; i++) {
-                        if (!ObjectUtils.isEquals(news.getData().get(i).getSTATUS(), null)) {
-                            if (((int) news.getData().get(i).getSTATUS()) != -1) {
-                                if (mNoticeMsg == null) {
-                                    mNoticeMsg = news.getData().get(0).getNE_THEME().replace("&nbsp;", "");
-                                }
-                                count++;
-                            }
-                        } else {
-                            if (mNoticeMsg == null) {
-                                mNoticeMsg = news.getData().get(0).getNE_THEME().replace("&nbsp;", "");
-                            }
-                            count++;//数据为空,算是未读
-                        }
-                    }
-                    NES_count = count;
-                    handler.sendEmptyMessage(NES_MSG);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        });
-    }
-
-    public void getErpMsgNums(Message msg) {
-        String reString = msg.getData().getString("result");
-        Log.i("Arison", "" + 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, daiban_num = 0;
-                for (int i = 0; i < allProcesses.size(); i++) {
-                    if (allProcesses.get(i).getTypecode().contains("task")) {//我的任务
-                        if (!allProcesses.get(i).getTypecode().equals("projecttask") && !allProcesses.get(i).getTypecode().equals("worktask"))
-                            task_num++;
-                    } else if (allProcesses.get(i).getTypecode().contains("dingyue")) {//订阅
-                        if ("0".equals(allProcesses.get(i).getStatus().trim())) {
-
-                        }
-                    } else {
-                        daiban_num++;
-                    }
-                }
-                TASK_count = task_num;
-                Message TaskMsg = Message.obtain();
-                TaskMsg.what = TASK_MSG;
-                if (allProcesses.size() != 0) {
-                    TaskMsg.obj = allProcesses.get(0).getTaskname();
-                }
-                handler.sendMessage(TaskMsg);
-//                handler.sendEmptyMessage(TASK_MSG);
-//                DAIBAN_count = daiban_num;
-//                handler.sendEmptyMessage(DAIBAN_MSG);
-            }
+    private void updateHeaderView(TextView num_tv, TextView content_tv, TextView time_tv, int num, String subTitle) {
+        if (num_tv != null) {
+            num_tv.setVisibility(num == 0 ? View.GONE : View.VISIBLE);
+            num_tv.setText("" + num);
         }
+        if (content_tv != null)
+            content_tv.setText(StringUtils.isEmpty(subTitle) ? "" : subTitle);
+        if (time_tv != null)
+            time_tv.setText(num == 0 ? "" : "刚刚");
     }
-}
-
 
 
+}

+ 0 - 359
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/NewMessageFragment.java

@@ -1,359 +0,0 @@
-package com.xzjmyk.pm.activity.ui.message;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.text.Editable;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.LinearLayout;
-import android.widget.PopupWindow;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import com.handmark.pulltorefresh.library.PullToRefreshBase;
-import com.iflytek.cloud.speech.RecognizerResult;
-import com.iflytek.cloud.speech.SpeechError;
-import com.iflytek.cloud.ui.RecognizerDialogListener;
-import com.lidroid.xutils.ViewUtils;
-import com.lidroid.xutils.view.annotation.ViewInject;
-import com.roamer.slidelistview.SlideListView;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
-import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
-import com.xzjmyk.pm.activity.bean.Friend;
-import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
-import com.xzjmyk.pm.activity.ui.MainActivity;
-import com.xzjmyk.pm.activity.ui.base.EasyFragment;
-import com.xzjmyk.pm.activity.ui.erp.activity.NoticeMenuActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.TaskActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.message.ProcessMsgActivity;
-import com.xzjmyk.pm.activity.ui.erp.adapter.MessageAdapter;
-import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
-import com.xzjmyk.pm.activity.ui.erp.presenter.MessagePresenter;
-import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IMessageView;
-import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
-import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
-import com.xzjmyk.pm.activity.util.DateFormatUtil;
-import com.xzjmyk.pm.activity.util.DisplayUtil;
-import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.ClearEditText;
-import com.xzjmyk.pm.activity.view.DrawableCenterTextView;
-import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
-import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
-import com.xzjmyk.pm.activity.wxapi.ApiUtils;
-
-import java.util.List;
-
-/**
- * Created by Bitliker on 2017/3/1.
- */
-
-public class NewMessageFragment extends EasyFragment implements IMessageView, RecognizerDialogListener, View.OnClickListener {
-
-    @ViewInject(R.id.search_edit)
-    private ClearEditText search_edit;
-
-    @ViewInject(R.id.message_net_set)
-    private DrawableCenterTextView message_net_set;
-    @ViewInject(R.id.pull_refresh_list)
-    private PullToRefreshSlideListView listView;
-
-    private MainActivity mContext;
-    private MessagePresenter presenter;
-    private MessageAdapter mAdapter = null;
-    private VoiceToWord mVoice;//语音工具
-    private PopupWindow setWindow;
-    private int clickPosition = 0;
-    private Boolean platform;
-    private RelativeLayout news_notice_rl;
-    private RelativeLayout subscribe_rl;
-    public static final int REQUESTCODE = 0xa1;
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        if (context instanceof MainActivity)
-            mContext = (MainActivity) context;
-        else new ClassCastException("该碎片必须由MainActivity生成");
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroyView();
-        presenter.onDestroyView(mContext);
-    }
-
-    @Override
-    protected int inflateLayoutId() {
-        return R.layout.fragment_new_message;
-    }
-
-    @Override
-    protected void onCreateView(Bundle savedInstanceState, boolean createView) {
-        LogUtil.d("onCreateView:" + DateFormatUtil.getDateTimeStr());
-        if (createView) {
-            ViewUtils.inject(getmRootView());
-            platform = ApiUtils.getApiModel() instanceof ApiPlatform;
-            initView();
-            initEvent();
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        presenter.loadData();
-    }
-
-    private void initEvent() {
-        mVoice.setRecognizerDialogListener(this);
-        findViewById(R.id.voice_search_iv).setOnClickListener(this);
-        message_net_set.setOnClickListener(this);
-        search_edit.addTextChangedListener(new EditChangeListener() {
-            @Override
-            public void afterTextChanged(Editable s) {
-                //TODO 输入后搜索
-                presenter.search(s.toString());
-            }
-        });
-        //下拉刷新
-        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<SlideListView>() {
-            @Override
-            public void onRefresh(PullToRefreshBase<SlideListView> refreshView) {
-                presenter.loadData();
-            }
-        });
-        listView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                if (mAdapter == null || ListUtils.isEmpty(mAdapter.getmFriendList()) || mAdapter.getCount() <= id)
-                    return;
-                presenter.turn2NextAct(mContext, (int) id);
-            }
-        });
-
-        listView.getRefreshableView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
-            @Override
-            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
-                if (mAdapter == null || ListUtils.isEmpty(mAdapter.getmFriendList()) || mAdapter.getCount() <= id)
-                    return true;
-                clickPosition = (int) id;
-                showPopupWindow();
-                return true;
-            }
-        });
-
-    }
-
-    private void initView() {
-        mVoice = new VoiceToWord(mContext, "534e3fe2");
-        listView.getRefreshableView().addHeaderView(initHeaderView());
-//        listView.setShowIndicator(false);
-//        listView.getRefreshableView().setCacheColorHint(Color.parseColor("#000000"));
-//        listView.getRefreshableView().setScrollingCacheEnabled(false);
-        listView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
-        mAdapter = new MessageAdapter(null, mContext);
-        listView.getRefreshableView().setAdapter(mAdapter);
-        presenter = new MessagePresenter(mContext, this);
-    }
-
-    private View initHeaderView() {
-        View view = LayoutInflater.from(mContext).inflate(R.layout.new_message_header, null);
-        news_notice_rl = (RelativeLayout) view.findViewById(R.id.notice_rl);
-        subscribe_rl = (RelativeLayout) view.findViewById(R.id.subscribe_rl);
-        schedule_num_tv = (TextView) view.findViewById(R.id.schedule_num_tv);//审批流
-        waitting_work_num_tv = (TextView) view.findViewById(R.id.waitting_work_num_tv);//待办工作
-        subscribe_num_tv = (TextView) view.findViewById(R.id.subscribe_num_tv);//我的订阅
-
-        schedule_content_tv = (TextView) view.findViewById(R.id.schedule_content_tv);//审批流
-        waitting_work_content_tv = (TextView) view.findViewById(R.id.waitting_work_content_tv);//待办工作
-        subscribe_content_tv = (TextView) view.findViewById(R.id.subscribe_content_tv);//我的订阅
-
-        schedule_time_tv = (TextView) view.findViewById(R.id.schedule_time_tv);//审批流
-        waitting_work_time_tv = (TextView) view.findViewById(R.id.waitting_work_time_tv);//待办工作
-        subscribe_time_tv = (TextView) view.findViewById(R.id.subscribe_time_tv);//我的订阅
-        view.findViewById(R.id.schedule_rl).setOnClickListener(this);//审批流
-        view.findViewById(R.id.waitting_work_rl).setOnClickListener(this);//待办工作
-        view.findViewById(R.id.subscribe_rl).setOnClickListener(this);//我的订阅
-        view.findViewById(R.id.notice_rl).setOnClickListener(this); //新闻通知
-        if (platform) {
-            subscribe_rl.setVisibility(View.GONE);
-            news_notice_rl.setVisibility(View.VISIBLE);
-        } else {
-            subscribe_rl.setVisibility(View.VISIBLE);
-            news_notice_rl.setVisibility(View.GONE);
-        }
-        return view;
-    }
-
-    private void showPopupWindow() {
-        if (setWindow == null) initPopupWindow();
-        setWindow.showAtLocation(mContext.getWindow().getDecorView().
-                findViewById(android.R.id.content), Gravity.CENTER, 0, 0);
-        DisplayUtil.backgroundAlpha(mContext, 0.4f);
-    }
-
-    private void initPopupWindow() {
-        View viewContext = LayoutInflater.from(ct).inflate(R.layout.msgs_long_click, null);
-        viewContext.findViewById(R.id.msg_delete_tv).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                presenter.deleteListByType(clickPosition);
-                closePopupWindow();
-            }
-        });
-        viewContext.findViewById(R.id.msg_markread_tv).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                presenter.readerAllByType(clickPosition);
-                closePopupWindow();
-            }
-        });
-        setWindow = new PopupWindow(viewContext,
-                LinearLayout.LayoutParams.MATCH_PARENT,
-                LinearLayout.LayoutParams.WRAP_CONTENT, true);
-        setWindow.setAnimationStyle(R.style.MenuAnimationFade);
-        setWindow.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.bg_popuwin));
-        setWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
-            @Override
-            public void onDismiss() {
-                closePopupWindow();
-            }
-        });
-    }
-
-    private void closePopupWindow() {
-        if (setWindow != null)
-            setWindow.dismiss();
-        DisplayUtil.backgroundAlpha(mContext, 1f);
-    }
-
-
-
-    //语音数据回调
-    @Override
-    public void onResult(RecognizerResult recognizerResult, boolean b) {
-        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
-        search_edit.setText(search_edit.getText().toString() + CommonUtil.getPlaintext(text));
-
-    }
-
-    @Override
-    public void onError(SpeechError speechError) {
-
-    }
-
-    //点击时间回调
-    @Override
-    public void onClick(View v) {
-        switch (v.getId()) {
-            case R.id.voice_search_iv://点击语音
-                mVoice.GetWordFromVoice();
-                break;
-            case R.id.message_net_set://点击无网络情况
-                startActivity(new Intent(Settings.ACTION_SETTINGS));
-                break;
-            case R.id.schedule_rl://审批流
-                startActivity(new Intent(mContext, ProcessMsgActivity.class));
-                break;
-            case R.id.waitting_work_rl://待办工作
-                startActivity(new Intent(mContext, TaskActivity.class));
-                break;
-            case R.id.subscribe_rl://我的订阅
-                presenter.setSubReadTime(TimeUtils.s_long_2_str(System.currentTimeMillis()));
-                startActivity(new Intent(mContext, Subscription2Activity.class));
-                break;
-            case R.id.msg_delete_tv://删除
-                break;
-            case R.id.msg_markread_tv://标为已读
-                break;
-            case R.id.notice_rl: //新闻通知
-                Intent intent = new Intent(mContext, NoticeMenuActivity.class);
-//                intent.putExtra(NoticeMenuActivity.GONGGAO, GONGGAO_count);
-//                intent.putExtra(NoticeMenuActivity.NOTICE, NOTICE_count);
-//                intent.putExtra(NoticeMenuActivity.NES, NES_count);
-                startActivityForResult(intent, REQUESTCODE);
-                break;
-        }
-
-    }
-
-
-    @Override
-    public void showModel(List<BaseSortModel<Friend>> models) {
-        if (listView.isRefreshing())
-            listView.onRefreshComplete();
-        if (mAdapter == null) {
-            mAdapter = new MessageAdapter(models, mContext);
-            listView.getRefreshableView().setAdapter(mAdapter);
-        } else {
-            mAdapter.setmFriendList(models);
-            mAdapter.notifyDataSetChanged();
-        }
-    }
-
-    @Override
-    public void clearSearch() {
-        search_edit.setText("");
-    }
-
-
-    //头文件处理
-    private TextView schedule_num_tv;//审批流
-    private TextView waitting_work_num_tv;//待办工作
-    private TextView subscribe_num_tv;//我的订阅
-
-    private TextView schedule_content_tv;//审批流
-    private TextView waitting_work_content_tv;//待办工作
-    private TextView subscribe_content_tv;//我的订阅
-
-    private TextView schedule_time_tv;//审批流
-    private TextView waitting_work_time_tv;//待办工作
-    private TextView subscribe_time_tv;//我的订阅
-
-    @Override
-    public void updateHeaderView(int postion, int num, String subTitle) {
-        switch (postion) {
-            case 0:
-                updateHeaderView(schedule_num_tv, schedule_content_tv, schedule_time_tv, num, subTitle);
-                break;
-            case 1:
-                updateHeaderView(waitting_work_num_tv, waitting_work_content_tv, waitting_work_time_tv, num, subTitle);
-                break;
-            case 2:
-                updateHeaderView(subscribe_num_tv, subscribe_content_tv, subscribe_time_tv, num, subTitle);
-                break;
-        }
-    }
-
-    @Override
-    public void changeNet(boolean workConnected) {
-        if (message_net_set != null) {
-            if (!workConnected) {
-                message_net_set.setVisibility(View.VISIBLE);
-            } else {
-                message_net_set.setVisibility(View.GONE);
-            }
-        }
-    }
-
-
-    private void updateHeaderView(TextView num_tv, TextView content_tv, TextView time_tv, int num, String subTitle) {
-        if (num_tv != null) {
-            num_tv.setVisibility(num == 0 ? View.GONE : View.VISIBLE);
-            num_tv.setText("" + num);
-        }
-        if (content_tv != null)
-            content_tv.setText(StringUtils.isEmpty(subTitle) ? "" : subTitle);
-        if (time_tv != null)
-            time_tv.setText(num == 0 ? "" : "刚刚");
-    }
-
-
-}

+ 23 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java

@@ -0,0 +1,23 @@
+package com.xzjmyk.pm.activity.ui.message;
+
+import android.os.Bundle;
+
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.OABaseActivity;
+
+public class SubscriptionActivity extends OABaseActivity {
+    @ViewInject(R.id.listView)
+    private PullToRefreshListView listView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_subscription);
+        ViewUtils.inject(this);
+    }
+
+
+}

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/OACalendarView.java

@@ -5,6 +5,7 @@ import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Paint;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
 
@@ -312,6 +313,14 @@ public class OACalendarView extends View implements View.OnTouchListener {
         return curDate;
     }
 
+
+    public void setDownIndex(int day) {
+        Log.i("gongpengming", "day=" + day);
+        this.downIndex = startIndex + day-1;
+        Log.i("gongpengming", "downIndex=" + downIndex);
+        invalidate();
+    }
+
     /*设置月份*/
     public void setCurDate(Date date) {
         curDate = date;

+ 22 - 0
WeiChat/src/main/res/layout/activity_subscription.xml

@@ -0,0 +1,22 @@
+<com.xzjmyk.pm.activity.view.ResizeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:ptr="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white"
+    android:orientation="vertical" >
+
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/listView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scrollingCache="false"
+        ptr:ptrAnimationStyle="flip"
+        ptr:ptrDrawableEnd="@drawable/default_ptr_rotate"
+        ptr:ptrDrawableStart="@drawable/default_ptr_flip"
+        ptr:ptrHeaderTextColor="@color/black"
+        ptr:ptrMode="both"
+        ptr:ptrOverScroll="false"
+        ptr:ptrScrollingWhileRefreshingEnabled="true"
+        ptr:ptrShowIndicator="false" />
+
+</com.xzjmyk.pm.activity.view.ResizeLayout>

+ 0 - 1
WeiChat/src/main/res/layout/item_select_aim_empty.xml

@@ -25,7 +25,6 @@
         android:layout_height="wrap_content"
         android:layout_alignLeft="@id/title"
         android:layout_below="@id/title"
-        android:layout_marginTop="5dp"
         android:layout_toRightOf="@id/home_tag"
         android:text="请搜索地址后完善单位名称"
         android:textColor="@color/text_hine"