Commit 22bcc3a8f7d1bb2c114bd01aa64e213a6579a34a

Authored by 陶汉栋
1 parent 1ec4334b
Exists in yxb_dev and in 1 other branch developer

no message

app/libs/processor.jar
No preview for this file type
app/src/main/java/com/shunzhi/parent/AppConfig.java
@@ -39,17 +39,17 @@ public class AppConfig { @@ -39,17 +39,17 @@ public class AppConfig {
39 public static String APP_IS_START = "app_is_start"; 39 public static String APP_IS_START = "app_is_start";
40 40
41 //测试 41 //测试
42 - public static String BASE_URL="http://60.190.202.57:1000/";  
43 - public static String BASE_URL_ORDER="http://60.190.202.57:8101/";  
44 - public static String BASE_URL_FILE="http://60.190.202.57:8196";  
45 - public static String BASE_URL_VOTE = "http://60.190.202.57:8812/"; 42 +// public static String BASE_URL="http://60.190.202.57:1000/";
  43 +// public static String BASE_URL_ORDER="http://60.190.202.57:8101/";
  44 +// public static String BASE_URL_FILE="http://60.190.202.57:8196";
  45 +// public static String BASE_URL_VOTE = "http://60.190.202.57:8812/";
46 46
47 47
48 //正式 48 //正式
49 -// public static String BASE_URL = "http://campus.myjxt.com/";  
50 -// public static String BASE_URL_ORDER = "http://parent.myjxt.com/";  
51 -// public static String BASE_URL_FILE = "http://manage.myjxt.com";  
52 -// public static String BASE_URL_VOTE = "www.sxspy.net/"; 49 + public static String BASE_URL = "http://campus.myjxt.com/";
  50 + public static String BASE_URL_ORDER = "http://parent.myjxt.com/";
  51 + public static String BASE_URL_FILE = "http://manage.myjxt.com";
  52 + public static String BASE_URL_VOTE = "www.sxspy.net/";
53 // public static final String url_version = BASE_URL + "api/Common/AppVersion?appType=3"; 53 // public static final String url_version = BASE_URL + "api/Common/AppVersion?appType=3";
54 54
55 55
app/src/main/java/com/shunzhi/parent/db/DBHelper.java 0 → 100644
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
  1 +package com.shunzhi.parent.db;
  2 +
  3 +import android.content.Context;
  4 +import android.database.DatabaseErrorHandler;
  5 +import android.database.sqlite.SQLiteDatabase;
  6 +import android.database.sqlite.SQLiteOpenHelper;
  7 +
  8 +/**
  9 + * Created by ToaHanDong on 2018/4/23.
  10 + */
  11 +
  12 +public class DBHelper extends SQLiteOpenHelper {
  13 +
  14 + public final int VERSION=1;
  15 +
  16 + public DBHelper(Context context, String name) {
  17 + super(context, name, null, 2);
  18 + }
  19 +
  20 + public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
  21 + super(context, name, factory, version, errorHandler);
  22 + }
  23 +
  24 + @Override
  25 + public void onCreate(SQLiteDatabase sqLiteDatabase) {
  26 + DBMessageController.createSongTable(sqLiteDatabase);
  27 + }
  28 + /**
  29 + *
  30 + * @param sqLiteDatabase 数据库对象
  31 + * @param i 数据库旧版本
  32 + * @param i1 数据库新版本
  33 + */
  34 + @Override
  35 + public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
  36 + if (i1==2){
  37 + sqLiteDatabase.execSQL(DBMessageController.TEMP_SQL);//先把原来的表重命名
  38 + sqLiteDatabase.execSQL(DBMessageController.sqlVersion2);//创建新表
  39 + sqLiteDatabase.execSQL(DBMessageController.COPY_SQL);//导入数据
  40 + sqLiteDatabase.execSQL(DBMessageController.DROP_SQL);//删除备份的数据库
  41 + }
  42 + }
  43 +}
app/src/main/java/com/shunzhi/parent/db/DBMessageController.java 0 → 100644
@@ -0,0 +1,146 @@ @@ -0,0 +1,146 @@
  1 +package com.shunzhi.parent.db;
  2 +
  3 +import android.content.ContentValues;
  4 +import android.content.Context;
  5 +import android.database.Cursor;
  6 +import android.database.sqlite.SQLiteDatabase;
  7 +
  8 +import java.util.ArrayList;
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * Created by ToaHanDong on 2018/4/23.
  13 + */
  14 +
  15 +public class DBMessageController {
  16 +
  17 + public static DBMessageController dbMessageController = null;
  18 +
  19 + public static DBMessageController getInstance(Context context) {
  20 +
  21 + if (null == dbMessageController) {
  22 + synchronized (DBMessageController.class) {
  23 + if (null == dbMessageController)
  24 + dbMessageController = new DBMessageController(context, false);
  25 + }
  26 + }
  27 + return dbMessageController;
  28 + }
  29 +
  30 +
  31 + private Context context;
  32 + private SQLiteDatabase database;
  33 +
  34 + public static final String DATABASE = "message.db";
  35 +
  36 + public static final String TABLE_MESSAGE = "message";//表名
  37 + public static final String TABLE_TEMP="temp";//备份的表
  38 +
  39 + public static String TEMP_SQL= "alter table "+TABLE_MESSAGE+" rename to "+TABLE_TEMP;
  40 + public static String COPY_SQL="insert into "+TABLE_MESSAGE+" select * ,' ' from "+TABLE_TEMP;
  41 + public static String DROP_SQL="drop table "+TABLE_TEMP;
  42 +
  43 + public static String sqlVersion2="create table if not exists " + DBMessageController.TABLE_MESSAGE + "(" +
  44 + DBMessageController.MESSAGE_ID + " integer primary key autoincrement," +
  45 + DBMessageController.MESSAGE_TITLE + " text unique," +
  46 + DBMessageController.MESSAGE_MSGID + " text," +
  47 + DBMessageController.MESSAGE_USERID + " text," +
  48 + DBMessageController.MESSAGE_TYPE + " integer," +
  49 + DBMessageController.MESSAGE_DATE+" text,"+
  50 + DBMessageController.MESSAGE_ISREAD + " text)";
  51 +
  52 + public static final String MESSAGE_ID = "_id"; //主键
  53 + public static final String MESSAGE_TITLE = "title"; //内容
  54 + public static final String MESSAGE_USERID = "userid"; //用户的唯一标识
  55 + public static final String MESSAGE_TYPE = "type"; //消息类型
  56 + public static final String MESSAGE_ISREAD = "isread";//判断消息是否为已读
  57 + public static final String MESSAGE_MSGID = "msgid";//判断消息是否为已读
  58 + public static final String MESSAGE_DATE="date";//日期
  59 +
  60 + static void createSongTable(SQLiteDatabase db) {
  61 + String sql = "create table if not exists " + DBMessageController.TABLE_MESSAGE + "(" +
  62 + DBMessageController.MESSAGE_ID + " integer primary key autoincrement," +
  63 + DBMessageController.MESSAGE_TITLE + " text unique," +
  64 + DBMessageController.MESSAGE_MSGID + " text," +
  65 + DBMessageController.MESSAGE_USERID + " text," +
  66 + DBMessageController.MESSAGE_TYPE + " integer," +
  67 + DBMessageController.MESSAGE_ISREAD + " text)";
  68 + db.execSQL(sql);
  69 + }
  70 +
  71 + /**
  72 + * 在使用结束时应调用{@link #()}关闭数据库连接
  73 + */
  74 + public DBMessageController(Context context, boolean writable) {
  75 + DBHelper helper = new DBHelper(context, DATABASE);
  76 + if (writable) {
  77 + this.database = helper.getWritableDatabase();
  78 + } else {
  79 + this.database = helper.getReadableDatabase();
  80 + }
  81 + this.context = context;
  82 + }
  83 +
  84 + public void close() {
  85 + if (database.isOpen()) {
  86 + database.close();
  87 + }
  88 + }
  89 +
  90 + public long addMessages(Messages messages) {
  91 +
  92 + ContentValues contentValues = new ContentValues();
  93 + contentValues.put(DBMessageController.MESSAGE_TITLE, messages.title);
  94 + contentValues.put(DBMessageController.MESSAGE_TYPE, messages.type);
  95 + contentValues.put(DBMessageController.MESSAGE_USERID, messages.userid);
  96 + contentValues.put(DBMessageController.MESSAGE_ISREAD, messages.isRead);
  97 + contentValues.put(DBMessageController.MESSAGE_MSGID, messages.msgId);
  98 + contentValues.put(DBMessageController.MESSAGE_DATE,messages.date);
  99 + return database.insert(DBMessageController.TABLE_MESSAGE, null, contentValues);
  100 + }
  101 +
  102 +
  103 + public int getMessagesCounts(String type) {
  104 + String sql = "select * from " + TABLE_MESSAGE + "where type = ?";
  105 + Cursor cursor = database.rawQuery(sql, new String[]{type});
  106 + return cursor.getCount();
  107 + }
  108 +
  109 + public int getMessagesCountsAllNoRead() {
  110 + String sql = "select * from " + TABLE_MESSAGE + " where isRead = ?";
  111 + Cursor cursor = database.rawQuery(sql, new String[]{"false"});
  112 + return cursor.getCount();
  113 + }
  114 +
  115 + public void setMeaasgesRead() {
  116 +
  117 + ContentValues contentValues = new ContentValues();
  118 + contentValues.put(MESSAGE_ISREAD, "true");
  119 +
  120 + String whereClause="isRead = ?";
  121 +
  122 + String[] whereArgs = new String[]{"false"};
  123 +
  124 + database.update(TABLE_MESSAGE, contentValues, whereClause, whereArgs);
  125 +
  126 +
  127 + }
  128 +
  129 + public List<Messages> getAllMessages() {
  130 +
  131 + String sql = "select * from " + TABLE_MESSAGE;
  132 +
  133 + Cursor cursor = database.rawQuery(sql, null);
  134 +
  135 + List<Messages> messagesList = new ArrayList<>();
  136 +
  137 + while (cursor.moveToNext()) {
  138 + Messages messages = new Messages();
  139 + messages.type = cursor.getInt(cursor.getColumnIndex(MESSAGE_TYPE));
  140 + messages.title = cursor.getString(cursor.getColumnIndex(MESSAGE_TITLE));
  141 + messages.date=cursor.getString(cursor.getColumnIndex(MESSAGE_DATE));
  142 + messagesList.add(messages);
  143 + }
  144 + return messagesList;
  145 + }
  146 +}
app/src/main/java/com/shunzhi/parent/db/Messages.java 0 → 100644
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
  1 +package com.shunzhi.parent.db;
  2 +
  3 +/**
  4 + * Created by ToaHanDong on 2018/4/23.
  5 + */
  6 +
  7 +public class Messages {
  8 +
  9 + public int id;
  10 +
  11 + public String title;
  12 +
  13 + public String userid;
  14 +
  15 + public int type;//0:作业 1:考勤 2:请假
  16 +
  17 + public String msgId;
  18 +
  19 + public String isRead;//标识是否已读
  20 +
  21 + public String date;//收到通知消息的事件
  22 +
  23 + @Override
  24 + public String toString() {
  25 + return "Messages{" +
  26 + "id=" + id +
  27 + ", title='" + title + '\'' +
  28 + ", userid='" + userid + '\'' +
  29 + ", type='" + type + '\'' +
  30 + ", msgId='" + msgId + '\'' +
  31 + '}';
  32 + }
  33 +}
app/src/main/java/com/shunzhi/parent/manager/MessageManager.java
@@ -19,6 +19,7 @@ import com.netease.nimlib.sdk.auth.LoginInfo; @@ -19,6 +19,7 @@ import com.netease.nimlib.sdk.auth.LoginInfo;
19 import com.netease.nimlib.sdk.msg.MsgServiceObserve; 19 import com.netease.nimlib.sdk.msg.MsgServiceObserve;
20 import com.netease.nimlib.sdk.msg.model.CustomNotification; 20 import com.netease.nimlib.sdk.msg.model.CustomNotification;
21 import com.netease.nimlib.sdk.msg.model.IMMessage; 21 import com.netease.nimlib.sdk.msg.model.IMMessage;
  22 +import com.share.mvpsdk.utils.DateUtils;
22 import com.share.mvpsdk.utils.ToastUtils; 23 import com.share.mvpsdk.utils.ToastUtils;
23 import com.shunzhi.parent.AppConfig; 24 import com.shunzhi.parent.AppConfig;
24 import com.shunzhi.parent.AppContext; 25 import com.shunzhi.parent.AppContext;
@@ -27,6 +28,8 @@ import com.shunzhi.parent.bean.NIMLoginResultBean; @@ -27,6 +28,8 @@ import com.shunzhi.parent.bean.NIMLoginResultBean;
27 import com.shunzhi.parent.bean.message.PHMessage; 28 import com.shunzhi.parent.bean.message.PHMessage;
28 import com.shunzhi.parent.bean.message.PHMessageDao; 29 import com.shunzhi.parent.bean.message.PHMessageDao;
29 import com.shunzhi.parent.bean.message.PHMessageSession; 30 import com.shunzhi.parent.bean.message.PHMessageSession;
  31 +import com.shunzhi.parent.db.DBMessageController;
  32 +import com.shunzhi.parent.db.Messages;
30 import com.shunzhi.parent.ui.MainActivity; 33 import com.shunzhi.parent.ui.MainActivity;
31 import com.shunzhi.parent.ui.activity.LoginAndRegistActivity; 34 import com.shunzhi.parent.ui.activity.LoginAndRegistActivity;
32 import com.shunzhi.parent.ui.service.BadgeIntentService; 35 import com.shunzhi.parent.ui.service.BadgeIntentService;
@@ -61,14 +64,14 @@ public class MessageManager { @@ -61,14 +64,14 @@ public class MessageManager {
61 private Observer<List<IMMessage>> messageObserver = new Observer<List<IMMessage>>() { 64 private Observer<List<IMMessage>> messageObserver = new Observer<List<IMMessage>>() {
62 @Override 65 @Override
63 public void onEvent(List<IMMessage> imMessages) { 66 public void onEvent(List<IMMessage> imMessages) {
64 - Log.d("77777","IMMessage="+imMessages.toString()); 67 +// Log.d("77777", "IMMessage=" + imMessages.toString());
65 onMessageReceive(imMessages); 68 onMessageReceive(imMessages);
66 } 69 }
67 }; 70 };
68 private Observer<CustomNotification> customNotificationObserver = new Observer<CustomNotification>() { 71 private Observer<CustomNotification> customNotificationObserver = new Observer<CustomNotification>() {
69 @Override 72 @Override
70 public void onEvent(CustomNotification customNotification) { 73 public void onEvent(CustomNotification customNotification) {
71 - Log.d("77777","customNotification="+customNotification.getContent()); 74 +// Log.d("77777", "customNotification=" + customNotification.getContent());
72 onCustomNotificationReceive(customNotification); 75 onCustomNotificationReceive(customNotification);
73 } 76 }
74 }; 77 };
@@ -107,6 +110,38 @@ public class MessageManager { @@ -107,6 +110,38 @@ public class MessageManager {
107 String uuid = json.optString("msgId"); 110 String uuid = json.optString("msgId");
108 Timber.d("onCustomNotificationReceive%s", "json=" + json.toString()); 111 Timber.d("onCustomNotificationReceive%s", "json=" + json.toString());
109 if ("homework".equals(type)) { 112 if ("homework".equals(type)) {
  113 + Messages messages = new Messages();
  114 + messages.msgId = uuid;
  115 + messages.title = json.optString("title");
  116 + messages.type = 0;
  117 + messages.userid = json.optString("userid");
  118 + messages.isRead="false";
  119 + messages.date= DateUtils.dateFormat(new Date(),"yyyy年MM月dd日");
  120 + notifyNotification(uuid, DBMessageController.getInstance(AppContext.getContext()).addMessages(messages), "收到一条作业通知");
  121 + } else if ("attend".equals(type)) {
  122 + Messages messages = new Messages();
  123 + messages.msgId = uuid;
  124 + messages.title = json.optString("title");
  125 + messages.type = 1;
  126 + messages.userid = json.optString("userid");
  127 + messages.isRead="false";
  128 + messages.date= DateUtils.dateFormat(new Date(),"yyyy年MM月dd日");
  129 + notifyNotification(uuid, DBMessageController.getInstance(AppContext.getContext()).addMessages(messages), "收到一条考勤通知");
  130 + }
  131 + } catch (JSONException e) {
  132 + e.printStackTrace();
  133 + }
  134 + }
  135 +
  136 + /*private void onCustomNotificationReceive(CustomNotification customNotification) {
  137 + Timber.d("sss-==" + customNotification.getContent());
  138 + try {
  139 + JSONObject json = new JSONObject(customNotification.getContent());
  140 + Timber.d("sss-==" + json.toString());
  141 + String type = json.optString("type");
  142 + String uuid = json.optString("msgId");
  143 + Timber.d("onCustomNotificationReceive%s", "json=" + json.toString());
  144 + if ("homework".equals(type)) {
110 PHMessageSession session = PHMessageSession.findAndCreateSession(PHMessageSession.sessionType_homework, true); 145 PHMessageSession session = PHMessageSession.findAndCreateSession(PHMessageSession.sessionType_homework, true);
111 session.setSessionName("作业通知"); 146 session.setSessionName("作业通知");
112 session.setDate(new Date(customNotification.getTime())); 147 session.setDate(new Date(customNotification.getTime()));
@@ -144,13 +179,14 @@ public class MessageManager { @@ -144,13 +179,14 @@ public class MessageManager {
144 } catch (JSONException e) { 179 } catch (JSONException e) {
145 e.printStackTrace(); 180 e.printStackTrace();
146 } 181 }
147 - } 182 + }*/
148 183
149 public void notifyNotification(String uuid, long msgLongId, String text) { 184 public void notifyNotification(String uuid, long msgLongId, String text) {
150 if (!isNotiNotification) { 185 if (!isNotiNotification) {
151 - return; 186 +// return;
152 } 187 }
153 - int notificationCount = (int) PHMessage.findUnreadNotificationCount();//XSTMessage.findUnreadNotificationCount(); 188 +// int notificationCount = (int) PHMessage.findUnreadNotificationCount();//XSTMessage.findUnreadNotificationCount();
  189 + int notificationCount=DBMessageController.getInstance(AppContext.getContext()).getMessagesCountsAllNoRead();
154 boolean setBadgerSuccessful = ShortcutBadger.applyCount(AppContext.getInstance(), notificationCount); 190 boolean setBadgerSuccessful = ShortcutBadger.applyCount(AppContext.getInstance(), notificationCount);
155 Timber.i("----== notificationCount : %s ,setBadgerSuccessful : %s", notificationCount, setBadgerSuccessful); 191 Timber.i("----== notificationCount : %s ,setBadgerSuccessful : %s", notificationCount, setBadgerSuccessful);
156 if (!setBadgerSuccessful) { 192 if (!setBadgerSuccessful) {
app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java
@@ -157,6 +157,7 @@ public class LoginAndRegisterPresenter extends LoginAndRegisterContract.LoginPre @@ -157,6 +157,7 @@ public class LoginAndRegisterPresenter extends LoginAndRegisterContract.LoginPre
157 mRxManager.register(mIModel.getUserInfo(mobile, school_id, captcha).subscribe(new Consumer<UserInfo>() { 157 mRxManager.register(mIModel.getUserInfo(mobile, school_id, captcha).subscribe(new Consumer<UserInfo>() {
158 @Override 158 @Override
159 public void accept(UserInfo userInfo) throws Exception { 159 public void accept(UserInfo userInfo) throws Exception {
  160 + Log.d("77777","userInfo="+userInfo);
160 if (userInfo != null) { 161 if (userInfo != null) {
161 CurrentBean currentBean = userInfo.getData(); 162 CurrentBean currentBean = userInfo.getData();
162 AppConfig.getAppConfig(AppContext.getInstance()).set(AppConfig.LOGIN_NAME, currentBean.getMobile()); 163 AppConfig.getAppConfig(AppContext.getInstance()).set(AppConfig.LOGIN_NAME, currentBean.getMobile());
app/src/main/java/com/shunzhi/parent/ui/activity/message/MesageActivity.java
1 package com.shunzhi.parent.ui.activity.message; 1 package com.shunzhi.parent.ui.activity.message;
2 2
  3 +import android.graphics.Color;
3 import android.os.Bundle; 4 import android.os.Bundle;
4 import android.support.v7.widget.LinearLayoutManager; 5 import android.support.v7.widget.LinearLayoutManager;
5 import android.support.v7.widget.RecyclerView; 6 import android.support.v7.widget.RecyclerView;
  7 +import android.text.SpannableString;
  8 +import android.text.Spanned;
  9 +import android.text.SpannedString;
  10 +import android.text.style.ForegroundColorSpan;
6 import android.view.LayoutInflater; 11 import android.view.LayoutInflater;
7 import android.view.View; 12 import android.view.View;
8 import android.view.ViewGroup; 13 import android.view.ViewGroup;
@@ -16,6 +21,8 @@ import com.share.mvpsdk.utils.DateUtils; @@ -16,6 +21,8 @@ import com.share.mvpsdk.utils.DateUtils;
16 import com.shunzhi.parent.AppContext; 21 import com.shunzhi.parent.AppContext;
17 import com.shunzhi.parent.R; 22 import com.shunzhi.parent.R;
18 import com.shunzhi.parent.bean.message.PHMessage; 23 import com.shunzhi.parent.bean.message.PHMessage;
  24 +import com.shunzhi.parent.db.DBMessageController;
  25 +import com.shunzhi.parent.db.Messages;
19 26
20 import java.util.ArrayList; 27 import java.util.ArrayList;
21 import java.util.List; 28 import java.util.List;
@@ -26,9 +33,9 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi @@ -26,9 +33,9 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi
26 33
27 ImageView iv_back; 34 ImageView iv_back;
28 35
29 - MEssageAdapter mEssageAdapter=null; 36 + MEssageAdapter mEssageAdapter = null;
30 37
31 - List<PHMessage> phMessages=new ArrayList<>(); 38 + List<Messages> phMessages = new ArrayList<>();
32 39
33 @Override 40 @Override
34 protected void initView(Bundle savedInstanceState) { 41 protected void initView(Bundle savedInstanceState) {
@@ -49,11 +56,11 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi @@ -49,11 +56,11 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi
49 56
50 private void initAdapter() { 57 private void initAdapter() {
51 58
52 - if (null==mEssageAdapter)mEssageAdapter=new MEssageAdapter();  
53 - if (null==recyclerView.getAdapter())recyclerView.setAdapter(mEssageAdapter); 59 + if (null == mEssageAdapter) mEssageAdapter = new MEssageAdapter();
  60 + if (null == recyclerView.getAdapter()) recyclerView.setAdapter(mEssageAdapter);
54 61
55 -  
56 - phMessages= AppContext.getInstance().getDaoSession().getPHMessageDao().loadAll(); 62 +// phMessages= AppContext.getInstance().getDaoSession().getPHMessageDao().loadAll();
  63 + phMessages = DBMessageController.getInstance(this).getAllMessages();
57 mEssageAdapter.addAll(phMessages); 64 mEssageAdapter.addAll(phMessages);
58 recyclerView.setAdapter(mEssageAdapter); 65 recyclerView.setAdapter(mEssageAdapter);
59 66
@@ -73,8 +80,7 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi @@ -73,8 +80,7 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi
73 } 80 }
74 } 81 }
75 82
76 -  
77 - private class MEssageAdapter extends BaseRecyclerViewAdapter<PHMessage> { 83 + private class MEssageAdapter extends BaseRecyclerViewAdapter<Messages> {
78 84
79 @Override 85 @Override
80 public void onAttachedToRecyclerView(RecyclerView recyclerView) { 86 public void onAttachedToRecyclerView(RecyclerView recyclerView) {
@@ -93,28 +99,45 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi @@ -93,28 +99,45 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi
93 return messageViewHolder; 99 return messageViewHolder;
94 } 100 }
95 101
96 - private class MessageViewHolder extends BaseRecyclerViewHolder<PHMessage> { 102 + private class MessageViewHolder extends BaseRecyclerViewHolder<Messages> {
97 103
98 - TextView tvMessageContent, tvDate; 104 + TextView tvMessageContent, tvDate, tvLookDetail;
99 List<String> dateString = new ArrayList<>(); 105 List<String> dateString = new ArrayList<>();
  106 + String indexDate = "";
100 107
101 public MessageViewHolder(View itemView) { 108 public MessageViewHolder(View itemView) {
102 super(itemView); 109 super(itemView);
103 tvMessageContent = itemView.findViewById(R.id.tvMessageContent); 110 tvMessageContent = itemView.findViewById(R.id.tvMessageContent);
104 tvDate = itemView.findViewById(R.id.tvDate); 111 tvDate = itemView.findViewById(R.id.tvDate);
  112 + tvLookDetail = itemView.findViewById(R.id.tvLookDetail);
105 } 113 }
106 114
107 @Override 115 @Override
108 - public void onBindViewHolder(PHMessage object, int position) {  
109 - tvMessageContent.setText(object.getMessageText());  
110 - String date = DateUtils.date2str(object.getDate(), "yyyyMMDD");  
111 - if (!dateString.contains(date)) {  
112 - dateString.add(date);  
113 - tvDate.setText(date); 116 + public void onBindViewHolder(Messages object, int position) {
  117 +
  118 + String typeName = "";
  119 + if (object.type == 0) typeName = "作业通知:";
  120 + else if (object.type == 1) typeName = "考勤通知:";
  121 + else if (object.type == 2) tvLookDetail.setVisibility(View.VISIBLE);
  122 + typeName += object.title;
  123 + SpannableString spannableString = new SpannableString(typeName);
  124 + ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#ff0000"));
  125 + spannableString.setSpan(colorSpan, 0, 5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
  126 + tvMessageContent.setText(spannableString);
  127 + if (indexDate.equals(object.date)) tvDate.setVisibility(View.GONE);
  128 + else {
  129 + indexDate = object.date;
114 tvDate.setVisibility(View.VISIBLE); 130 tvDate.setVisibility(View.VISIBLE);
115 - }else {  
116 - tvDate.setVisibility(View.GONE);  
117 } 131 }
  132 + if (object.date.equals("false")) tvDate.setText("");
  133 + else tvDate.setText(object.date);
  134 + tvLookDetail.setOnClickListener(new View.OnClickListener() {
  135 + @Override
  136 + public void onClick(View view) {
  137 + //查看请假详情
  138 +
  139 + }
  140 + });
118 141
119 } 142 }
120 } 143 }
app/src/main/java/com/shunzhi/parent/ui/fragment/MineFragment.java
@@ -23,6 +23,7 @@ import com.shunzhi.parent.R; @@ -23,6 +23,7 @@ import com.shunzhi.parent.R;
23 import com.shunzhi.parent.bean.message.PHMessage; 23 import com.shunzhi.parent.bean.message.PHMessage;
24 import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract; 24 import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract;
25 import com.shunzhi.parent.contract.mine.MineContract; 25 import com.shunzhi.parent.contract.mine.MineContract;
  26 +import com.shunzhi.parent.db.DBMessageController;
26 import com.shunzhi.parent.manager.MessageManager; 27 import com.shunzhi.parent.manager.MessageManager;
27 import com.shunzhi.parent.manager.UpdateManager; 28 import com.shunzhi.parent.manager.UpdateManager;
28 import com.shunzhi.parent.presenter.mine.MinePresenter; 29 import com.shunzhi.parent.presenter.mine.MinePresenter;
@@ -92,7 +93,7 @@ public class MineFragment extends BaseMVPCompatFragment&lt;LoginAndRegisterContract @@ -92,7 +93,7 @@ public class MineFragment extends BaseMVPCompatFragment&lt;LoginAndRegisterContract
92 view.findViewById(R.id.testEnter).setVisibility(View.GONE); 93 view.findViewById(R.id.testEnter).setVisibility(View.GONE);
93 } 94 }
94 95
95 - tvMessageCount.setText(PHMessage.findUnreadNotificationCount() + ""); 96 +// tvMessageCount.setText(PHMessage.findUnreadNotificationCount() + "");
96 97
97 } 98 }
98 99
@@ -131,6 +132,7 @@ public class MineFragment extends BaseMVPCompatFragment&lt;LoginAndRegisterContract @@ -131,6 +132,7 @@ public class MineFragment extends BaseMVPCompatFragment&lt;LoginAndRegisterContract
131 layout_afterLogin.setVisibility(View.GONE); 132 layout_afterLogin.setVisibility(View.GONE);
132 tvExit.setVisibility(View.GONE); 133 tvExit.setVisibility(View.GONE);
133 } 134 }
  135 + tvMessageCount.setText(DBMessageController.getInstance(getContext()).getMessagesCountsAllNoRead() + "");
134 } 136 }
135 137
136 138
@@ -139,6 +141,7 @@ public class MineFragment extends BaseMVPCompatFragment&lt;LoginAndRegisterContract @@ -139,6 +141,7 @@ public class MineFragment extends BaseMVPCompatFragment&lt;LoginAndRegisterContract
139 switch (v.getId()) { 141 switch (v.getId()) {
140 case R.id.layout_message: 142 case R.id.layout_message:
141 startNewActivity(MesageActivity.class); 143 startNewActivity(MesageActivity.class);
  144 + DBMessageController.getInstance(getContext()).setMeaasgesRead();
142 break; 145 break;
143 case R.id.childlayout: 146 case R.id.childlayout:
144 startActivity(new Intent().setClass(getActivity(), MyChildActivity.class)); 147 startActivity(new Intent().setClass(getActivity(), MyChildActivity.class));
app/src/main/res/layout/item_message.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent" 3 android:layout_width="match_parent"
  4 + android:layout_height="wrap_content"
4 android:background="@color/bgColor" 5 android:background="@color/bgColor"
5 - android:orientation="vertical"  
6 - android:layout_height="match_parent"> 6 + android:layout_marginTop="@dimen/size_dp_10"
  7 + android:orientation="vertical">
7 8
8 <TextView 9 <TextView
  10 + android:id="@+id/tvDate"
9 android:layout_width="wrap_content" 11 android:layout_width="wrap_content"
10 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
11 - android:textColor="@color/textColor"  
12 - android:textSize="@dimen/size_dp_16"  
13 - android:text=""  
14 - android:id="@+id/tvDate"  
15 android:layout_marginBottom="@dimen/size_dp_5" 13 android:layout_marginBottom="@dimen/size_dp_5"
16 - /> 14 + android:text=""
  15 + android:textColor="@color/textColor"
  16 + android:textSize="@dimen/size_dp_16" />
  17 +
  18 +
  19 + <LinearLayout
  20 + android:orientation="vertical"
  21 + android:layout_width="match_parent"
  22 + android:layout_height="wrap_content"
  23 + android:padding="@dimen/size_dp_10"
  24 + android:background="@color/white">
17 25
18 <TextView 26 <TextView
  27 + android:id="@+id/tvMessageContent"
19 android:layout_width="match_parent" 28 android:layout_width="match_parent"
20 android:layout_height="wrap_content" 29 android:layout_height="wrap_content"
  30 + android:ellipsize="end"
21 android:maxLines="2" 31 android:maxLines="2"
22 - android:textSize="@dimen/textSize14"  
23 android:textColor="@color/textColor" 32 android:textColor="@color/textColor"
24 - android:background="@color/white"  
25 - android:padding="@dimen/size_dp_5"  
26 - android:ellipsize="end"  
27 - android:id="@+id/tvMessageContent"  
28 - />  
29 - <View 33 + android:textSize="@dimen/textSize14" />
  34 +
  35 + <TextView
  36 + android:id="@+id/tvLookDetail"
  37 + android:visibility="gone"
30 android:layout_width="match_parent" 38 android:layout_width="match_parent"
31 - android:layout_height="0.5dp"  
32 - android:background="@color/gray"  
33 - /> 39 + android:gravity="right"
  40 + android:paddingRight="@dimen/size_dp_15"
  41 + android:paddingTop="@dimen/size_dp_5"
  42 + android:paddingBottom="@dimen/size_dp_5"
  43 + android:layout_height="wrap_content"
  44 + android:layout_gravity="right"
  45 + android:text="点击查看"
  46 + android:textColor="@color/xueqing_blue"
  47 + android:textSize="@dimen/size_dp_16" />
  48 +
  49 + </LinearLayout>
  50 +
  51 +
  52 + <View
  53 + android:layout_width="match_parent"
  54 + android:layout_height="0.5dp"
  55 + android:background="@color/gray" />
34 </LinearLayout> 56 </LinearLayout>
35 \ No newline at end of file 57 \ No newline at end of file
mvpsdk/src/main/java/com/share/mvpsdk/utils/DBUtils.java
@@ -17,7 +17,8 @@ import com.share.mvpsdk.config.DBConfig; @@ -17,7 +17,8 @@ import com.share.mvpsdk.config.DBConfig;
17 */ 17 */
18 public class DBUtils { 18 public class DBUtils {
19 public static final String CREATE_TABLE_IF_NOT_EXISTS = "create table if not exists %s " + 19 public static final String CREATE_TABLE_IF_NOT_EXISTS = "create table if not exists %s " +
20 - "(id integer primary key autoincrement,key text unique,is_read integer)"; 20 + "(id integer primary key autoincrement,title text unique,image text)";
  21 +
21 22
22 private static DBUtils sDBUtis; 23 private static DBUtils sDBUtis;
23 private SQLiteDatabase mSQLiteDatabase; 24 private SQLiteDatabase mSQLiteDatabase;
@@ -79,6 +80,10 @@ public class DBUtils { @@ -79,6 +80,10 @@ public class DBUtils {
79 return isRead; 80 return isRead;
80 } 81 }
81 82
  83 + public void insert(String table,String key,String value){
  84 +
  85 + }
  86 +
82 public class DBHelper extends SQLiteOpenHelper { 87 public class DBHelper extends SQLiteOpenHelper {
83 88
84 public DBHelper(Context context, String name) { 89 public DBHelper(Context context, String name) {
mvpsdk/src/main/java/com/share/mvpsdk/utils/DateUtils.java
@@ -69,6 +69,11 @@ public class DateUtils { @@ -69,6 +69,11 @@ public class DateUtils {
69 return date.split(PATTERN_SPLIT)[0]; 69 return date.split(PATTERN_SPLIT)[0];
70 } 70 }
71 71
  72 + public static String dateFormat(Date date,String fomart){
  73 + SimpleDateFormat simpleDateFormat=new SimpleDateFormat(fomart);
  74 + return simpleDateFormat.format(date);
  75 + }
  76 +
72 /** 77 /**
73 * 原有日期上累加月 78 * 原有日期上累加月
74 * 79 *