Forráskód Böngészése

解耦MessageFragment和MainActivity,通过接口方式连接通信

Bitliker 8 éve
szülő
commit
e2c3ca45e8
31 módosított fájl, 315 hozzáadás és 306 törlés
  1. 27 18
      WeiChat/src/main/AndroidManifest.xml
  2. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  3. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/InformActivity.java
  4. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ScheduleActivity.java
  5. 0 174
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/AllProcess.java
  6. 17 27
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  7. 5 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskActivity.java
  8. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskB2BActivity.java
  9. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/im/UserRoleUtils.java
  10. 0 25
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/VpCalenderView.java
  11. 1 1
      WeiChat/src/main/res/layout/fragment_message.xml
  12. 2 2
      WeiChat/src/main/res/layout/fragment_new_message.xml
  13. 1 0
      app_core/common/src/main/java/com/core/app/Constants.java
  14. 21 4
      app_core/common/src/main/java/com/core/dao/UUHelperDao.java
  15. 1 1
      app_core/common/src/main/java/com/core/db/DBOpenHelper.java
  16. 1 0
      app_core/common/src/main/java/com/core/db/DatabaseTables.java
  17. 12 7
      app_core/common/src/main/java/com/core/model/UUHelperModel.java
  18. 3 2
      app_core/common/src/main/java/com/core/utils/CommonUtil.java
  19. 1 1
      app_core/common/src/main/java/com/core/widget/DrawableCenterTextView.java
  20. 4 1
      app_core/common/src/main/java/com/core/xmpp/XChatManager.java
  21. 1 1
      app_core/common/src/main/res/layout/fragment_message.xml
  22. 2 2
      app_core/common/src/main/res/layout/fragment_new_message.xml
  23. 2 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/UUHelperActivity.java
  24. 4 4
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/MessageAdapter.java
  25. 1 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/NewSchedultAdapter.java
  26. 1 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/SchedultAdapter.java
  27. 2 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/UUHelperAdapter.java
  28. 1 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/model/AllProcess.java
  29. 30 23
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java
  30. 102 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/ui/MessageHeaderView.java
  31. 68 0
      app_modular/appmessages/src/main/res/layout/incule_item_message.xml

+ 27 - 18
WeiChat/src/main/AndroidManifest.xml

@@ -249,7 +249,12 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".ui.erp.activity.WebViewLoadActivity" />
+        <activity android:name=".ui.erp.activity.WebViewLoadActivity">
+            <intent-filter>
+                <action android:name="com.modular.main.WebViewLoadActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
         <activity android:name=".ui.erp.activity.NewsDetailActivity" />
         <activity android:name=".ui.erp.activity.NewsTwoActivity" />
         <activity android:name=".ui.erp.activity.NoticesActivity" />
@@ -407,7 +412,7 @@
         </activity>
         <activity
             android:name=".ui.tool.WebViewActivity"
-            android:screenOrientation="portrait" >
+            android:screenOrientation="portrait">
             <intent-filter>
                 <action android:name="com.modular.main.WebViewActivity" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -593,20 +598,20 @@
             android:configChanges="orientation|keyboardHidden"
             android:label="@string/oaoutplan_title"
             android:theme="@style/OAThemeOutOffice"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden" >
+            android:windowSoftInputMode="adjustUnspecified|stateHidden">
             <intent-filter>
-                <action android:name="com.modualr.appworks.OutofficeActivity"/>
-                <category android:name="android.intent.category.DEFAULT"/>
+                <action android:name="com.modualr.appworks.OutofficeActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
 
         <activity
             android:name=".ui.erp.activity.oa.OARegisterActivity"
             android:label="@string/meet_signin"
-            android:theme="@style/OAThemeMeet" >
+            android:theme="@style/OAThemeMeet">
             <intent-filter>
-                <action android:name="com.modular.metting.appworks.OARegisterActivity"/>
-                <category android:name="android.intent.category.DEFAULT"/>
+                <action android:name="com.modular.metting.appworks.OARegisterActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
@@ -678,7 +683,7 @@
             android:name=".ui.erp.activity.crm.ContactManAddActivity"
             android:configChanges="orientation|keyboardHidden"
             android:windowSoftInputMode="adjustUnspecified|stateHidden" />
-      =
+        =
         <activity
             android:name=".ui.erp.activity.oa.UserSelectActivity"
             android:label="@string/select_user" />
@@ -878,7 +883,6 @@
         <!-- 动态表单 -->
 
 
-
         <service
             android:name=".util.oa.AutoErpService"
             android:enabled="true"
@@ -900,10 +904,10 @@
         <activity
             android:name=".ui.erp.activity.oa.SelectRemarkActivity"
             android:label="@string/activity_visit_aims"
-            android:windowSoftInputMode="stateUnspecified|adjustNothing" >
+            android:windowSoftInputMode="stateUnspecified|adjustNothing">
             <intent-filter>
-                <action android:name="com.modular.appworks.SelectRemarkActivity"/>
-                <category android:name="android.intent.category.DEFAULT"/>
+                <action android:name="com.modular.appworks.SelectRemarkActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <activity
@@ -950,7 +954,7 @@
             android:name=".ui.erp.activity.oa.SelectCollisionActivity"
             android:configChanges="keyboardHidden|orientation"
             android:label="@string/select_join_number"
-            android:windowSoftInputMode="stateUnspecified|adjustNothing" >
+            android:windowSoftInputMode="stateUnspecified|adjustNothing">
             <intent-filter>
                 <action android:name="com.modular.main.SelectCollisionActivity" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1007,10 +1011,10 @@
         </activity>
         <activity
             android:name=".ui.erp.activity.oa.NavigationActivity"
-            android:label="@string/navigation" >
+            android:label="@string/navigation">
             <intent-filter>
-                <action android:name="com.modular.appworks.NavigationActivity"/>
-                <category android:name="android.intent.category.DEFAULT"/>
+                <action android:name="com.modular.appworks.NavigationActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <!-- 计步功能 服务 -->
@@ -1058,7 +1062,12 @@
             android:name=".ui.erp.activity.secretary.SelectPContactsActivity"
             android:windowSoftInputMode="adjustPan" />
         <activity android:name=".ui.erp.activity.secretary.BookingDetailActivity" />
-        <activity android:name=".ui.erp.activity.secretary.BookingListActivity" />
+        <activity android:name=".ui.erp.activity.secretary.BookingListActivity">
+            <intent-filter>
+                <action android:name="com.modular.secretary.BookingListActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
         <activity
             android:name=".ui.erp.activity.secretary.BookingAddActivity"
             android:windowSoftInputMode="adjustPan" />

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

@@ -85,7 +85,7 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
 import com.xzjmyk.pm.activity.ui.circle.BusinessCircleFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.WorksFragment;
-import com.xzjmyk.pm.activity.ui.erp.presenter.MessagePresenter;
+import com.modular.appmessages.presenter.MessagePresenter;
 import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.me.MeFragment;
 import com.xzjmyk.pm.activity.ui.me.ScreenListener;

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/InformActivity.java

@@ -27,7 +27,7 @@ import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.modular.appmessages.adapter.SchedultAdapter;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.entity.AllProcess;
+import com.modular.appmessages.model.AllProcess;
 import com.xzjmyk.pm.activity.ui.erp.net.HttpClient;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ScheduleActivity.java

@@ -28,7 +28,7 @@ import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.modular.appmessages.adapter.NewSchedultAdapter;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.entity.AllProcess;
+import com.modular.appmessages.model.AllProcess;
 import com.xzjmyk.pm.activity.ui.erp.net.HttpClient;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 

+ 0 - 174
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/AllProcess.java

@@ -1,174 +0,0 @@
-package com.xzjmyk.pm.activity.ui.erp.model;
-
-import java.io.Serializable;
-import java.util.Date;
-/**
- * @注释:待办事宜
- * @Administrator 2014年10月10日 下午3:22:54
- */
-public class AllProcess implements Serializable{
-	private static final long serialVersionUID = 9154546832037377352L;
-	private int id;//ID
-    private String ra_taskid;//取回复内容id
-	private String taskid;//节点编号
-	private String status;//当前状态
-	private String mainname;//流程名称
-	private String taskname;//节点名称
-	private String codevalue;//单据编号
-	private String type;//流程类型
-	private String typecode;//流程类型码
-	private String dealpersoncode;//处理人 -> em_code
-	private String recorderid;//发起人ID
-	private String recorder;//发起人名称
-	private Date datetime;//发起时间
-	private String defid;//流程版本号
-	private String caller;//流程callr
-	private String link;//对应URL地址
-	private String master;//所属的帐套
-	
-	private String describe="";//任务描述
-	private String duration="";//持续时间
-	private String ra_resourcecode;//执行人编号
-	private String taskcode;//取语音
-	private String attachs;//附件id
-	
-
-	
-	
-	public String getAttachs() {
-		return attachs;
-	}
-	public void setAttachs(String attachs) {
-		this.attachs = attachs;
-	}
-	public String getRa_resourcecode() {
-		return ra_resourcecode;
-	}
-	public void setRa_resourcecode(String ra_resourcecode) {
-		this.ra_resourcecode = ra_resourcecode;
-	}
-	public String getTaskname() {
-		return taskname;
-	}
-	public void setTaskname(String taskname) {
-		this.taskname = taskname;
-	}
-	public String getMaster() {
-		return master;
-	}
-	public void setMaster(String master) {
-		this.master = master;
-	}
-	public int getId() {
-		return id;
-	}
-	public void setId(int jp_id) {
-		this.id = jp_id;
-	}
-	public String getTaskid() {
-		return taskid;
-	}
-	public void setTaskid(String jp_nodeid) {
-		this.taskid = jp_nodeid;
-	}
-	public String getStatus() {
-		return status;
-	}
-	public void setStatus(String jp_status) {
-		this.status = jp_status;
-	}
-	public String getMainname() {
-		return mainname;
-	}
-	public void setMainname(String jp_name) {
-		this.mainname = jp_name;
-	}
-	public String getCodevalue() {
-		return codevalue;
-	}
-	public void setCodevalue(String jp_nodename) {
-		this.codevalue = jp_nodename;
-	}
-
-	public String getType() {
-		return type;
-	}
-	public void setType(String type) {
-		this.type = type;
-	}
-	public String getTypecode() {
-		return typecode;
-	}
-	public void setTypecode(String typecode) {
-		this.typecode = typecode;
-	}
-	public String getDealpersoncode() {
-		return dealpersoncode;
-	}
-	public void setDealpersoncode(String dealpersoncode) {
-		this.dealpersoncode = dealpersoncode;
-	}
-	public String getRecorderid() {
-		return recorderid;
-	}
-	public void setRecorderid(String jp_launcherid) {
-		this.recorderid = jp_launcherid;
-	}
-	public String getRecorder() {
-		return recorder;
-	}
-	public void setRecorder(String jp_launchername) {
-		this.recorder = jp_launchername;
-	}
-	public Date getDatetime() {
-		return datetime;
-	}
-	public void setDatetime(Date jp_launchtime) {
-		this.datetime = jp_launchtime;
-	}
-	public String getDefid() {
-		return defid;
-	}
-	public void setDefid(String jp_processdefid) {
-		this.defid = jp_processdefid;
-	}
-	public String getCaller() {
-		return caller;
-	}
-	public void setCaller(String jp_caller) {
-		this.caller = jp_caller;
-	}
-	public String getLink() {
-		return link;
-	}
-	public void setLink(String url) {
-		this.link = url;
-	}
-	public String getDescribe() {
-		return describe;
-	}
-	public void setDescribe(String describe) {
-		this.describe = describe;
-	}
-	public String getDuration() {
-		return duration;
-	}
-	public void setDuration(String duration) {
-		this.duration = duration;
-	}
-	public String getTaskcode() {
-		return taskcode;
-	}
-	public void setTaskcode(String taskcode) {
-		this.taskcode = taskcode;
-	}
-	public String getRa_taskid() {
-		return ra_taskid;
-	}
-	public void setRa_taskid(String ra_taskid) {
-		this.ra_taskid = ra_taskid;
-	}
-	
-	
-
-}

+ 17 - 27
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -11,6 +11,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.LinearLayout;
+import android.widget.ListView;
 import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -24,29 +25,26 @@ import com.core.api.wxapi.ApiPlatform;
 import com.core.api.wxapi.ApiUtils;
 import com.core.app.Constants;
 import com.core.app.MyApplication;
+import com.core.base.EasyFragment;
 import com.core.model.Friend;
+import com.core.utils.CommonUtil;
 import com.core.utils.sortlist.BaseSortModel;
+import com.core.widget.DrawableCenterTextView;
 import com.core.widget.VoiceSearchView;
 import com.core.widget.listener.EditChangeListener;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.modular.appmessages.activity.ProcessB2BActivity;
 import com.modular.appmessages.activity.ProcessMsgActivity;
 import com.modular.appmessages.activity.Subscription2Activity;
+import com.modular.appmessages.adapter.MessageAdapter;
+import com.modular.appmessages.presenter.MessagePresenter;
 import com.modular.appmessages.presenter.imp.IMessageView;
-import com.roamer.slidelistview.SlideListView;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.base.EasyFragment;
-import com.xzjmyk.pm.activity.ui.erp.activity.secretary.BookingListActivity;
-import com.xzjmyk.pm.activity.ui.erp.adapter.MessageAdapter;
-import com.xzjmyk.pm.activity.ui.erp.presenter.MessagePresenter;
 import com.xzjmyk.pm.activity.ui.platform.task.TaskActivity;
 import com.xzjmyk.pm.activity.ui.platform.task.TaskB2BActivity;
-import com.xzjmyk.pm.activity.util.im.UserRoleUtils;
-import com.xzjmyk.pm.activity.util.oa.CommonUtil;
-import com.xzjmyk.pm.activity.view.DrawableCenterTextView;
-import com.xzjmyk.pm.activity.view.PullToRefreshSlideListView;
 
 import java.util.Collections;
 import java.util.Comparator;
@@ -63,7 +61,7 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
     @ViewInject(R.id.message_net_set)
     private DrawableCenterTextView message_net_set;
     @ViewInject(R.id.pull_refresh_list)
-    private PullToRefreshSlideListView listView;
+    private PullToRefreshListView listView;
 
     private Activity mContext;
     private MessagePresenter presenter;
@@ -148,9 +146,9 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
             }
         });
         //下拉刷新
-        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<SlideListView>() {
+        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
             @Override
-            public void onRefresh(PullToRefreshBase<SlideListView> refreshView) {
+            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                 presenter.loadData();
             }
         });
@@ -187,33 +185,26 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
 
     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);//我的订阅
         booking_num_tv = (TextView) view.findViewById(R.id.booking_num_tv);//小秘书
-
         tv_book_num = (TextView) view.findViewById(R.id.tv_book_num);//小秘书
-
         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);//我的订阅
         book_content_tv = (TextView) view.findViewById(R.id.book_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);//我的订阅
         book_time_tv = (TextView) view.findViewById(R.id.book_time_tv);
-
-
         dingyue_num = (TextView) view.findViewById(R.id.tv_dingYue_num);//订阅红点
         tv_dingyue_desc = (TextView) view.findViewById(R.id.tv_dingyue_desc);//订阅红点
         if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), Constants.new_dingyue)) {
             dingyue_num.setVisibility(View.GONE);
             tv_dingyue_desc.setVisibility(View.GONE);
         }
-
         if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), Constants.SET_BOOKING)) {
             tv_book_num.setVisibility(View.GONE);
         }
@@ -221,17 +212,17 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
         view.findViewById(R.id.waitting_work_rl).setOnClickListener(this);//待办工作
         view.findViewById(R.id.subscribe_rl).setOnClickListener(this);//我的订阅
         view.findViewById(R.id.booking_rl).setOnClickListener(this);//我的订阅
-
-
-//        view.findViewById(R.id.notice_rl).setOnClickListener(this); //新闻通知
         if (platform) {
             subscribe_rl.setVisibility(View.GONE);
-//            news_notice_rl.setVisibility(View.GONE);
         } else {
             subscribe_rl.setVisibility(View.VISIBLE);
-//            news_notice_rl.setVisibility(View.GONE);
         }
-        UserRoleUtils.checkUserRole(this, view);
+        String user = CommonUtil.getUserRole();
+        if (user.equals("1")) {
+            view.findViewById(R.id.schedule_rl).setVisibility(View.GONE);//审批流
+            view.findViewById(R.id.waitting_work_rl).setVisibility(View.GONE);//待办工作
+            view.findViewById(R.id.subscribe_rl).setVisibility(View.GONE);//我的订阅
+        }
         return view;
     }
 
@@ -284,7 +275,7 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.booking_rl:
-                startActivity(new Intent(mContext, BookingListActivity.class));
+                startActivity(new Intent("com.modular.secretary.BookingListActivity"));
                 tv_book_num.setVisibility(View.GONE);
                 CommonUtil.setSharedPreferences(MyApplication.getInstance(), Constants.SET_BOOKING, true);
                 break;
@@ -404,5 +395,4 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
             time_tv.setText(num == 0 ? "" : (StringUtil.isEmpty(time)) ? getString(R.string.friendly_time_just_now) : time);
     }
 
-
 }

+ 5 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskActivity.java

@@ -41,6 +41,7 @@ import com.core.net.http.HttpClient;
 import com.core.net.http.ViewUtil;
 import com.core.utils.CommonUtil;
 import com.core.utils.FlexJsonUtil;
+import com.core.utils.IntentUtils;
 import com.core.widget.EmptyLayout;
 import com.core.widget.VoiceSearchView;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
@@ -49,10 +50,8 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.modular.appmessages.R;
 import com.modular.appmessages.adapter.NewSchedultAdapter;
+import com.modular.appmessages.model.AllProcess;
 import com.uas.appworks.OA.erp.activity.DetailTaskActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.WebViewLoadActivity;
-import com.xzjmyk.pm.activity.ui.erp.entity.AllProcess;
-
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -328,13 +327,14 @@ public class TaskActivity extends BaseActivity implements OnClickListener {
                     Blowfish blowfish = new Blowfish("00" + d);
                     t = blowfish.encryptString(password);
                 }
-                Intent intent = new Intent(context, WebViewLoadActivity.class);
+                Intent intent = new Intent("com.modular.main.WebViewLoadActivity" );
                 if (allList != null || !allList.isEmpty()) {
                     String url = allList.get(position - 1).getLink();
                     String master = allList.get(position - 1).getMaster();
                     if (master == null) {
                         master = CommonUtil.getSharedPreferences(context, "erp_master");
                     }
+                    IntentUtils.webLinks(context,url,t);
                     intent.putExtra("url", url);
                     intent.putExtra("t", t);
                     intent.putExtra("d", d);
@@ -655,7 +655,7 @@ public class TaskActivity extends BaseActivity implements OnClickListener {
             Blowfish blowfish = new Blowfish("00" + d);
             t = blowfish.encryptString(password);
         }
-        Intent intent = new Intent(context, WebViewLoadActivity.class);
+        Intent intent = new Intent("com.modular.main.WebViewLoadActivity" );
         intent.putExtra("url", url);
         intent.putExtra("t", t);
         intent.putExtra("d", d);

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskB2BActivity.java

@@ -48,7 +48,7 @@ import com.lidroid.xutils.view.annotation.ViewInject;
 import com.modular.appmessages.adapter.NewSchedultAdapter;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.activity.WebViewLoadActivity;
-import com.xzjmyk.pm.activity.ui.erp.entity.AllProcess;
+import com.modular.appmessages.model.AllProcess;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 
 import java.util.ArrayList;

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/im/UserRoleUtils.java

@@ -20,7 +20,7 @@ public class UserRoleUtils {
 
     public static String getUserRole(){
         String userRole= CommonUtil.getSharedPreferences(MyApplication.getInstance(),"userRole");
-        return userRole;
+        return userRole==null?"":userRole;
     }
 
     public static void checkUserRole(Object fragment, View view) {

+ 0 - 25
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/VpCalenderView.java

@@ -1,25 +0,0 @@
-package com.xzjmyk.pm.activity.view;
-
-import android.content.Context;
-import android.support.v4.view.ViewPager;
-import android.util.AttributeSet;
-
-/**
- * Created by Bitliker on 2017/1/11.
- */
-
-public class VpCalenderView extends ViewPager {
-
-    public VpCalenderView(Context context) {
-        this(context, null);
-    }
-
-    public VpCalenderView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-
-
-
-
-}

+ 1 - 1
WeiChat/src/main/res/layout/fragment_message.xml

@@ -40,7 +40,7 @@
             android:visibility="visible" />
     </RelativeLayout>
 
-    <com.xzjmyk.pm.activity.view.DrawableCenterTextView
+    <com.core.widget.DrawableCenterTextView
         android:id="@+id/message_net_set"
         android:layout_width="match_parent"
         android:layout_height="35dp"

+ 2 - 2
WeiChat/src/main/res/layout/fragment_new_message.xml

@@ -11,7 +11,7 @@
         android:layout_width="match_parent"
         android:layout_height="48dp" />
 
-    <com.xzjmyk.pm.activity.view.DrawableCenterTextView
+    <com.core.widget.DrawableCenterTextView
         android:id="@+id/message_net_set"
         android:layout_width="match_parent"
         android:layout_height="35dp"
@@ -23,7 +23,7 @@
         android:drawablePadding="10dp"
         android:visibility="gone"/>
 
-    <com.xzjmyk.pm.activity.view.PullToRefreshSlideListView
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
         xmlns:slide="http://schemas.android.com/apk/res-auto"
         android:id="@+id/pull_refresh_list"
         android:layout_width="match_parent"

+ 1 - 0
app_core/common/src/main/java/com/core/app/Constants.java

@@ -279,6 +279,7 @@ public class Constants {
             + "," + DatabaseTables.UUHelperTable.Cols.TIME_SEND
             + "," + DatabaseTables.UUHelperTable.Cols.DATE
             + "," + DatabaseTables.UUHelperTable.Cols.IMAGE_URL
+            + "," + DatabaseTables.UUHelperTable.Cols.ICON_URL
             + "," + DatabaseTables.UUHelperTable.Cols.LINK_URL
             + "," + DatabaseTables.UUHelperTable.Cols.CONTENT
             + "," + DatabaseTables.UUHelperTable.Cols.READED

+ 21 - 4
app_core/common/src/main/java/com/core/dao/UUHelperDao.java

@@ -48,6 +48,7 @@ public class UUHelperDao extends Dao<UUHelperModel.UUHelperItem> {
         values.put(DatabaseTables.UUHelperTable.Cols.TIME_SEND, uuHelperItem.getTimeSend());
         values.put(DatabaseTables.UUHelperTable.Cols.USER_ID, MyApplication.getInstance().getLoginUserId());
         values.put(DatabaseTables.UUHelperTable.Cols.IMAGE_URL, uuHelperItem.getImageUrl());
+        values.put(DatabaseTables.UUHelperTable.Cols.ICON_URL, uuHelperItem.getIconUrl());
         values.put(DatabaseTables.UUHelperTable.Cols.LINK_URL, uuHelperItem.getLinkUrl());
         values.put(DatabaseTables.UUHelperTable.Cols.CONTENT, uuHelperItem.getContent());
         values.put(DatabaseTables.UUHelperTable.Cols.READED, uuHelperItem.isReaded());
@@ -60,11 +61,12 @@ public class UUHelperDao extends Dao<UUHelperModel.UUHelperItem> {
         int _id = c.getInt(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.ID));
         long timeSend = c.getLong(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.TIME_SEND));
         String imageUrl = c.getString(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.IMAGE_URL));
+        String iconUrl = c.getString(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.ICON_URL));
         String linkUrl = c.getString(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.LINK_URL));
         String content = c.getString(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.CONTENT));
         String date = c.getString(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.DATE));
         boolean readed = c.getInt(c.getColumnIndex(DatabaseTables.UUHelperTable.Cols.READED)) > 0;
-        return new UUHelperModel.UUHelperItem(readed, _id, timeSend, imageUrl, linkUrl, content, date);
+        return new UUHelperModel.UUHelperItem(readed, _id, timeSend, imageUrl, iconUrl, linkUrl, content, date);
     }
 
 
@@ -74,7 +76,7 @@ public class UUHelperDao extends Dao<UUHelperModel.UUHelperItem> {
 
     public List<UUHelperModel.UUHelperItem> getAllModels() {
         String orderBy = DatabaseTables.UUHelperTable.Cols.DATE + " asc";
-        String where = DatabaseTables.UUHelperTable.Cols.USER_ID+" =?";
+        String where = DatabaseTables.UUHelperTable.Cols.USER_ID + " =?";
         String[] whereArgs = {MyApplication.getInstance().getLoginUserId()};
         return query(null, where, whereArgs, orderBy);
     }
@@ -87,15 +89,30 @@ public class UUHelperDao extends Dao<UUHelperModel.UUHelperItem> {
         }
     }
 
+    public boolean updateRead(int id) {
+        long i = 0;
+        try {
+            String where = DatabaseTables.UUHelperTable.Cols.ID;
+            String[] whereArgs = {String.valueOf(id)};
+            SQLiteDatabase db = DatabaseManager.getInstance().openDatabase();
+            ContentValues values = new ContentValues();
+            values.put(DatabaseTables.UUHelperTable.Cols.READED, 1);
+            i = db.update(getTable(), values, where, whereArgs);
+        } finally {
+            DatabaseManager.getInstance().closeDatabase();
+            return i > 0;
+        }
+    }
+
     public boolean updateRead() {
         long i = 0;
         try {
             String where = DatabaseTables.UUHelperTable.Cols.READED;
-            String[] whereArgs = {String.valueOf(1)};
+            String[] whereArgs = {String.valueOf(0)};
             SQLiteDatabase db = DatabaseManager.getInstance().openDatabase();
             ContentValues values = new ContentValues();
             values.put(DatabaseTables.UUHelperTable.Cols.READED, 1);
-            i = db.update(getTable(), values, null, null);
+            i = db.update(getTable(), values, where, whereArgs);
         } finally {
             DatabaseManager.getInstance().closeDatabase();
             return i > 0;

+ 1 - 1
app_core/common/src/main/java/com/core/db/DBOpenHelper.java

@@ -14,7 +14,7 @@ import com.core.app.Constants;
  */
 public class DBOpenHelper extends SQLiteOpenHelper {
     //TODO  上一个发布版本是81
-    private static final int DATABASE_VERSION = 85;
+    private static final int DATABASE_VERSION = 86;
     public static String dataBaseName = "erp.db";
     public Context context;
 

+ 1 - 0
app_core/common/src/main/java/com/core/db/DatabaseTables.java

@@ -24,6 +24,7 @@ public class DatabaseTables {
             public static final String TIME_SEND = "timeSend";
             public static final String DATE = "date";
             public static final String IMAGE_URL = "imageUrl";
+            public static final String ICON_URL = "iconUrl";
             public static final String LINK_URL = "linkUrl";
             public static final String CONTENT = "content";
             public static final String READED = "readed";

+ 12 - 7
app_core/common/src/main/java/com/core/model/UUHelperModel.java

@@ -23,6 +23,7 @@ public class UUHelperModel {
         private String date;//发送日期(通过timeSend)
         private String imageUrl;//图片网址
         private String linkUrl;//链接网址
+        private String iconUrl;//小图片网址
         private String content;//显示内容
         private boolean readed;
 
@@ -34,19 +35,22 @@ public class UUHelperModel {
             map.put("date", date);
             map.put("imageUrl", imageUrl);
             map.put("linkUrl", linkUrl);
+            map.put("iconUrl", iconUrl);
             map.put("content", content);
             return JSONUtil.map2JSON(map);
         }
 
         public UUHelperItem(long timeSend,
                             String imageUrl,
+                            String iconUrl,
                             String linkUrl,
                             String content) {
-            this(false, 0, timeSend, imageUrl, linkUrl, content, null);
+            this(false, 0, timeSend, imageUrl, iconUrl,linkUrl, content, null);
         }
 
         public UUHelperItem(boolean readed, int _id, long timeSend,
                             String imageUrl,
+                            String iconUrl,
                             String linkUrl,
                             String content
                 , String date) {
@@ -54,6 +58,7 @@ public class UUHelperModel {
             this.id = _id;
             this.timeSend = timeSend;
             this.imageUrl = imageUrl;
+            this.iconUrl = iconUrl;
             this.linkUrl = linkUrl;
             this.content = content;
             //TODO 使用DateFormatUtil
@@ -76,6 +81,10 @@ public class UUHelperModel {
             return imageUrl;
         }
 
+        public String getIconUrl() {
+            return iconUrl;
+        }
+
         public String getLinkUrl() {
             return linkUrl;
         }
@@ -108,15 +117,11 @@ public class UUHelperModel {
     }
 
 
-    public void addItem(long timeSend, String imageUrl, String linkUrl, String content) {
-        getItems().add(new UUHelperItem(timeSend, imageUrl, linkUrl, content));
-    }
+
 
     public void addItem(UUHelperItem item) {
         getItems().add(item);
     }
 
-    public void addItems(List<UUHelperItem> items) {
-        getItems().addAll(items);
-    }
+
 }

+ 3 - 2
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -29,7 +29,6 @@ import com.core.app.MyApplication;
 import com.core.app.R;
 import com.core.dao.SignAutoLogDao;
 import com.core.xmpp.model.SignAutoLogEntity;
-import com.core.app.R;
 import com.umeng.socialize.UMShareListener;
 import com.umeng.socialize.bean.SHARE_MEDIA;
 
@@ -421,9 +420,11 @@ public class CommonUtil {
 
     public static String getUserRole() {
         String userRole = getSharedPreferences(MyApplication.getInstance(), "userRole");
-        return userRole;
+        return userRole==null?"":userRole;
     }
 
+
+
     public static long getlongNumByString(String chche) {
         if (StringUtil.isEmpty(chche)) return -1;
         Pattern p = Pattern.compile("(\\d+)");

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/DrawableCenterTextView.java → app_core/common/src/main/java/com/core/widget/DrawableCenterTextView.java

@@ -1,4 +1,4 @@
-package com.xzjmyk.pm.activity.view;
+package com.core.widget;
 
 import android.content.Context;
 import android.graphics.Canvas;

+ 4 - 1
app_core/common/src/main/java/com/core/xmpp/XChatManager.java

@@ -5,6 +5,7 @@ import android.util.Log;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.common.LogUtil;
 import com.common.data.CalendarUtil;
 import com.common.data.JSONUtil;
 import com.common.thread.ThreadManager;
@@ -281,11 +282,13 @@ public class XChatManager {
     }
 
     private void saveUUHelperMessage(String messageBody) {
+        LogUtil.i("messageBody="+messageBody);
         JSONObject object = JSON.parseObject(messageBody);
         long timeSend = JSONUtil.getLong(object, "timeSend");
         String content = JSONUtil.getText(object, "content");
         String imageUrl = JSONUtil.getText(object, "imageUrl");
         String linkUrl = JSONUtil.getText(object, "linkUrl");
+        String iconUrl = JSONUtil.getText(object, "iconUrl");
         if (timeSend > 0) {
             timeSend *= 1000;
         }
@@ -293,7 +296,7 @@ public class XChatManager {
         if (!StringUtils.isEmpty(linkUrl) && user != null) {
             linkUrl += "?userid=" + user.getUserId() + "&username=" + user.getNickName() + "&iconurl=" + AvatarHelper.getInstance().getAvatarUrl(user.getUserId(), true);
         }
-        UUHelperModel.UUHelperItem item = new UUHelperModel.UUHelperItem(timeSend, imageUrl, linkUrl, content);
+        UUHelperModel.UUHelperItem item = new UUHelperModel.UUHelperItem(timeSend, imageUrl,iconUrl, linkUrl, content);
         UUHelperDao.getInstance().saveData(item);
         NotificationManage.sendUUHelperNotif(content);
     }

+ 1 - 1
app_core/common/src/main/res/layout/fragment_message.xml

@@ -40,7 +40,7 @@
             android:visibility="visible" />
     </RelativeLayout>
 
-    <com.xzjmyk.pm.activity.view.DrawableCenterTextView
+    <com.core.widget.DrawableCenterTextView
         android:id="@+id/message_net_set"
         android:layout_width="match_parent"
         android:layout_height="35dp"

+ 2 - 2
app_core/common/src/main/res/layout/fragment_new_message.xml

@@ -11,7 +11,7 @@
         android:layout_width="match_parent"
         android:layout_height="48dp" />
 
-    <com.xzjmyk.pm.activity.view.DrawableCenterTextView
+    <com.core.widget.DrawableCenterTextView
         android:id="@+id/message_net_set"
         android:layout_width="match_parent"
         android:layout_height="35dp"
@@ -23,7 +23,7 @@
         android:drawablePadding="10dp"
         android:visibility="gone"/>
 
-    <com.xzjmyk.pm.activity.view.PullToRefreshSlideListView
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
         xmlns:slide="http://schemas.android.com/apk/res-auto"
         android:id="@+id/pull_refresh_list"
         android:layout_width="match_parent"

+ 2 - 0
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/UUHelperActivity.java

@@ -47,6 +47,7 @@ public class UUHelperActivity extends BaseActivity implements View.OnClickListen
 
     @Override
     protected void onDestroy() {
+//        UUHelperDao.getInstance().updateRead();
         LocalBroadcastManager.getInstance(this).unregisterReceiver(updateReceiver);
         super.onDestroy();
     }
@@ -117,4 +118,5 @@ public class UUHelperActivity extends BaseActivity implements View.OnClickListen
             startActivity(intent);
         }
     }
+
 }

+ 4 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/MessageAdapter.java → app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/MessageAdapter.java

@@ -1,4 +1,4 @@
-package com.xzjmyk.pm.activity.ui.erp.adapter;
+package com.modular.appmessages.adapter;
 
 import android.content.Context;
 import android.text.Html;
@@ -10,16 +10,16 @@ import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.core.app.MyApplication;
-import com.xzjmyk.pm.activity.R;
 import com.core.model.Friend;
 import com.core.model.XmppMessage;
+import com.core.utils.TimeUtils;
 import com.core.utils.helper.AvatarHelper;
 import com.core.utils.sortlist.BaseSortModel;
-import com.common.data.ListUtils;
-import com.core.utils.TimeUtils;
 import com.core.xmpp.utils.HtmlUtils;
+import com.modular.appmessages.R;
 
 import java.util.List;
 

+ 1 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/NewSchedultAdapter.java

@@ -16,7 +16,7 @@ import com.common.data.ObjectUtils;
 import com.common.data.StringUtil;
 import com.core.app.MyApplication;
 import com.modular.appmessages.R;
-import com.xzjmyk.pm.activity.ui.erp.entity.AllProcess;
+import com.modular.appmessages.model.AllProcess;
 
 import java.text.SimpleDateFormat;
 import java.util.List;

+ 1 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/SchedultAdapter.java

@@ -12,7 +12,7 @@ import android.widget.TextView;
 
 import com.common.data.ObjectUtils;
 import com.modular.appmessages.R;
-import com.xzjmyk.pm.activity.ui.erp.entity.AllProcess;
+import com.modular.appmessages.model.AllProcess;
 
 import java.text.SimpleDateFormat;
 import java.util.List;

+ 2 - 0
app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/UUHelperAdapter.java

@@ -14,6 +14,7 @@ import android.widget.TextView;
 
 import com.common.LogUtil;
 import com.common.data.ListUtils;
+import com.core.dao.UUHelperDao;
 import com.core.model.UUHelperModel;
 import com.modular.appmessages.R;
 import com.modular.appmessages.activity.AppWebViewActivity;
@@ -199,6 +200,7 @@ public class UUHelperAdapter extends RecyclerView.Adapter<UUHelperAdapter.ViewHo
         intent.putExtra("p", title);
         intent.putExtra("title", title);
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        UUHelperDao.getInstance().updateRead(item.getId());
         ct.startActivity(intent);
     }
 

+ 1 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/model/AllProcess.java

@@ -1,4 +1,4 @@
-package com.xzjmyk.pm.activity.ui.erp.entity;
+package com.modular.appmessages.model;
 
 import java.io.Serializable;
 import java.util.Date;

+ 30 - 23
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/MessagePresenter.java → app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java

@@ -1,4 +1,4 @@
-package com.xzjmyk.pm.activity.ui.erp.presenter;
+package com.modular.appmessages.presenter;
 
 import android.app.Activity;
 import android.content.BroadcastReceiver;
@@ -19,6 +19,7 @@ import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.preferences.PreferenceUtils;
+import com.common.system.SystemUtil;
 import com.common.thread.ThreadUtil;
 import com.core.api.wxapi.ApiConfig;
 import com.core.api.wxapi.ApiPlatform;
@@ -36,6 +37,7 @@ import com.core.model.XmppMessage;
 import com.core.net.http.http.OAHttpHelper;
 import com.core.net.http.http.OnHttpResultListener;
 import com.core.net.http.http.Request;
+import com.core.utils.CommonUtil;
 import com.core.utils.TimeUtils;
 import com.core.utils.sortlist.BaseSortModel;
 import com.core.utils.sortlist.PingYinUtil;
@@ -47,8 +49,7 @@ import com.modular.appmessages.db.SubsDao;
 import com.modular.appmessages.model.SubMessage;
 import com.modular.appmessages.model.SubscriptionMessage;
 import com.modular.appmessages.presenter.imp.IMessageView;
-import com.xzjmyk.pm.activity.util.im.UserRoleUtils;
-import com.xzjmyk.pm.activity.util.oa.CommonUtil;
+import com.modular.appmessages.util.ApprovalUtil;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -57,6 +58,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+
 /**
  * Created by Bitliker on 2017/3/1.
  */
@@ -69,13 +71,11 @@ public class MessagePresenter implements OnHttpResultListener {
     private final int LOAD_EMNEWS_DETAILS = 0x15;
     private final int LOAD_B2B_COUNT = 0x16;//获取b2b的审批和任务数量
     private final int LOAD_BOOKING = 0x17;//小秘书红点
-    @Deprecated
-    public static final String AUTO_SIGIN_ALART = "AUTO_SIGIN_ALART";
+
 
     private String SUB_READ_TIME;//订阅好点击阅读时间
 
     private List<BaseSortModel<Friend>> mFriendList;
-
     private Comparator<BaseSortModel<Friend>> erpComparator;
     private IMessageView iMessageView;
     private Activity ct;
@@ -91,7 +91,7 @@ public class MessagePresenter implements OnHttpResultListener {
             String action = intent.getAction();
             if (StringUtil.isEmpty(action)) return;
             if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
-                iMessageView.changeNet(CommonUtil.isNetWorkConnected(MyApplication.getInstance()));
+                iMessageView.changeNet(SystemUtil.isNetWorkConnected(MyApplication.getInstance()));
             } else if (OAConfig.AUTO_SIGIN_ALART.equals(action)) {
                 loadNews(isB2b);//获取消息
             } else if (action.equals("com.app.home.update") || action.equals(MsgBroadcast.ACTION_MSG_COMPANY_UPDATE)
@@ -121,7 +121,7 @@ public class MessagePresenter implements OnHttpResultListener {
     public void loadData() {
         isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
         if (isB2b) {
-            if ("1".equals(UserRoleUtils.getUserRole())) {
+            if ("1".equals(com.core.utils.CommonUtil.getUserRole())) {
                 //个人用户
                 loadBookingNewNum();//预约红点接口
                 saveErp2DB(null);
@@ -132,7 +132,7 @@ public class MessagePresenter implements OnHttpResultListener {
         } else {
             SUB_READ_TIME = CommonUtil.getMaster() + "SUB_READ_TIME";//订阅好点击阅读时间
             subReadTime = PreferenceUtils.getString(SUB_READ_TIME);
-            if ("1".equals(UserRoleUtils.getUserRole())) {
+            if ("1".equals(com.core.utils.CommonUtil.getUserRole())) {
                 //个人用户
                 LogUtil.d("roamer", "个人用户消息加载!");
                 loadBookingNewNum();//预约红点接口
@@ -448,7 +448,7 @@ public class MessagePresenter implements OnHttpResultListener {
     private void handlerProcess(JSONObject object) {
         JSONArray itemArray = object.getJSONArray("data");
         if (!ListUtils.isEmpty(itemArray))
-            itemArray = CommonUtil.sortJsonArray(itemArray);
+            itemArray = ApprovalUtil.sortJsonArray(itemArray);
         String subTitle = null;
         long time = 0;
         if (!ListUtils.isEmpty(itemArray)) {
@@ -678,21 +678,24 @@ public class MessagePresenter implements OnHttpResultListener {
             Friend friend = new Friend();
             friend.setNickName("UU 消息助手");
             friend.setType(XmppMessage.TYPE_UUHELPER);
-            friend.set_id(uuHelperItems.get(uuHelperItems.size() - 1).getId());
-            friend.setClickNum(uuHelperItems.size());
-            if (uuHelperItems.get(uuHelperItems.size() - 1).isReaded()) {
-                friend.setContent("");
-                uuHelperNum = 0;
-                friend.setUnReadNum(0);
-                friends.add(friend);
+            UUHelperModel.UUHelperItem lastItem = null;
+            int unReadUnm = 0;
+            for (UUHelperModel.UUHelperItem item : uuHelperItems) {
+                if (!item.isReaded()) {
+                    lastItem = item;
+                    unReadUnm++;
+                }
+            }
+            friend.setClickNum(unReadUnm);
+            uuHelperNum = unReadUnm;
+            friend.setUnReadNum(unReadUnm);
+            if (lastItem != null) {
+                friend.set_id(lastItem.getId());
+                friend.setTimeSend((int) (lastItem.getTimeSend() / 1000));
             } else {
-                friend.setTimeSend((int) (uuHelperItems.get(uuHelperItems.size() - 1).getTimeSend() / 1000));
-                friend.setContent(uuHelperItems.get(uuHelperItems.size() - 1).getContent());
-                uuHelperNum = uuHelperItems.size();
-                friend.setUnReadNum(uuHelperItems.size());
-                friends.add(friend);
+                friend.setContent("");
             }
-
+            friends.add(friend);
         }
         //处理im数据库和消息列表合并后的数据
         if (friends != null && friends.size() > 0) {
@@ -745,6 +748,10 @@ public class MessagePresenter implements OnHttpResultListener {
             }
         } else if (friend.getType() == XmppMessage.TYPE_UUHELPER) {
             UUHelperDao.getInstance().deleteData(-1);
+            if (!ListUtils.isEmpty(mFriendList) && mFriendList.size() > position) {
+                mFriendList.remove(position);
+                iMessageView.showModel(mFriendList);
+            }
         } else {
             deleteByIm(friend, position);
         }

+ 102 - 0
app_modular/appmessages/src/main/java/com/modular/appmessages/ui/MessageHeaderView.java

@@ -0,0 +1,102 @@
+package com.modular.appmessages.ui;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.text.Html;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.core.utils.TimeUtils;
+import com.modular.appmessages.R;
+
+/**
+ * Created by Bitliker on 2017/9/11.
+ */
+
+public class MessageHeaderView extends RelativeLayout {
+    private TextView timeTV, numUnReadTV, titleTV, messageTV;
+    private ImageView headIMG;
+
+    public MessageHeaderView(Context context) {
+        this(context, null);
+    }
+
+    public MessageHeaderView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        LayoutInflater.from(context).inflate(R.layout.incule_item_message, this);
+        timeTV = (TextView) findViewById(R.id.timeTV);
+        numUnReadTV = (TextView) findViewById(R.id.numUnReadTV);
+        titleTV = (TextView) findViewById(R.id.titleTV);
+        messageTV = (TextView) findViewById(R.id.messageTV);
+        headIMG = (ImageView) findViewById(R.id.headIMG);
+
+
+    }
+
+    private void initTypedArray(Context context, AttributeSet attrs) {
+//        TypedArray attr = context.getTypedArray(context, attrs, R.styleable.ShadowLayout);
+    }
+
+
+    public void setNumUnRead(int number) {
+        if (number > 0) {
+            numUnReadTV.setText(String.valueOf(number));
+            if (numUnReadTV.getVisibility() == GONE) {
+                numUnReadTV.setVisibility(VISIBLE);
+            }
+        } else {
+            numUnReadTV.setVisibility(GONE);
+        }
+    }
+
+
+    public void setTitle(String title) {
+        if (title != null) {
+            titleTV.setText(title);
+        }
+    }
+
+    public void setMessage(String message) {
+        if (message != null) {
+            messageTV.setText(Html.fromHtml(message));
+        }
+    }
+
+    public void setHeadImg(int reId) {
+        if (reId > 0) {
+            headIMG.setImageResource(reId);
+        }
+    }
+
+    public void setTime(String time) {
+        if (time != null) {
+            timeTV.setText(time);
+            drawablesTimeTV(0);
+        }
+    }
+
+    public void setTime(long time) {
+        if (time > 0) {
+            timeTV.setText(TimeUtils.getFriendlyTimeDesc(getContext(), (int) time));
+            drawablesTimeTV(0);
+        }
+    }
+
+    public void setUnreadTag(String text) {
+        if (text != null) {
+            timeTV.setText(text);
+            drawablesTimeTV(R.drawable.hongdian);
+        }
+    }
+
+    public void drawablesTimeTV(int reId) {
+        Drawable drawable = null;
+        if (reId > 0) {
+            drawable = getContext().getResources().getDrawable(reId);
+        }
+        timeTV.setCompoundDrawables(null, null, null, drawable);
+    }
+}

+ 68 - 0
app_modular/appmessages/src/main/res/layout/incule_item_message.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="60dp"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp">
+
+    <ImageView
+        android:id="@+id/headIMG"
+        android:layout_width="@dimen/item_img_height"
+        android:layout_height="@dimen/item_img_width"
+        android:layout_centerVertical="true"
+        android:background="@color/transparent"
+        android:padding="1dp"
+        android:src="@drawable/home_image_01_u" />
+
+    <TextView
+        android:id="@+id/numUnReadTV"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="top|right"
+        android:layout_marginLeft="35dp"
+        android:background="@drawable/tab_unread_bg"
+        android:gravity="center"
+        android:text="999"
+        android:textColor="@android:color/white"
+        android:textSize="10.0dp" />
+
+    <TextView
+        android:id="@+id/timeTV"
+        android:layout_marginTop="5dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_alignTop="@id/headIMG"
+        android:ellipsize="end"
+        android:lines="1"
+        android:text="timeTV"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+    <TextView
+        android:id="@+id/titleTV"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignTop="@id/timeTV"
+        android:layout_marginLeft="10dp"
+        android:layout_toLeftOf="@+id/timeTV"
+        android:layout_toRightOf="@id/headIMG"
+        android:ellipsize="end"
+        android:lines="1"
+        android:text="@string/msg_approval"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:id="@+id/messageTV"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignLeft="@id/titleTV"
+        android:layout_below="@id/titleTV"
+        android:ellipsize="end"
+        android:lines="1"
+        android:layout_marginTop="5dp"
+        android:text="titleTV"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+</RelativeLayout>