Commit 22bcc3a8f7d1bb2c114bd01aa64e213a6579a34a
1 parent
1ec4334b
Exists in
yxb_dev
and in
1 other branch
no message
Showing
12 changed files
with
367 additions
and
50 deletions
Show diff stats
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 | 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 | 53 | // public static final String url_version = BASE_URL + "api/Common/AppVersion?appType=3"; |
54 | 54 | |
55 | 55 | ... | ... |
... | ... | @@ -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 @@ |
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 | +} | ... | ... |
... | ... | @@ -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 | 19 | import com.netease.nimlib.sdk.msg.MsgServiceObserve; |
20 | 20 | import com.netease.nimlib.sdk.msg.model.CustomNotification; |
21 | 21 | import com.netease.nimlib.sdk.msg.model.IMMessage; |
22 | +import com.share.mvpsdk.utils.DateUtils; | |
22 | 23 | import com.share.mvpsdk.utils.ToastUtils; |
23 | 24 | import com.shunzhi.parent.AppConfig; |
24 | 25 | import com.shunzhi.parent.AppContext; |
... | ... | @@ -27,6 +28,8 @@ import com.shunzhi.parent.bean.NIMLoginResultBean; |
27 | 28 | import com.shunzhi.parent.bean.message.PHMessage; |
28 | 29 | import com.shunzhi.parent.bean.message.PHMessageDao; |
29 | 30 | import com.shunzhi.parent.bean.message.PHMessageSession; |
31 | +import com.shunzhi.parent.db.DBMessageController; | |
32 | +import com.shunzhi.parent.db.Messages; | |
30 | 33 | import com.shunzhi.parent.ui.MainActivity; |
31 | 34 | import com.shunzhi.parent.ui.activity.LoginAndRegistActivity; |
32 | 35 | import com.shunzhi.parent.ui.service.BadgeIntentService; |
... | ... | @@ -61,14 +64,14 @@ public class MessageManager { |
61 | 64 | private Observer<List<IMMessage>> messageObserver = new Observer<List<IMMessage>>() { |
62 | 65 | @Override |
63 | 66 | public void onEvent(List<IMMessage> imMessages) { |
64 | - Log.d("77777","IMMessage="+imMessages.toString()); | |
67 | +// Log.d("77777", "IMMessage=" + imMessages.toString()); | |
65 | 68 | onMessageReceive(imMessages); |
66 | 69 | } |
67 | 70 | }; |
68 | 71 | private Observer<CustomNotification> customNotificationObserver = new Observer<CustomNotification>() { |
69 | 72 | @Override |
70 | 73 | public void onEvent(CustomNotification customNotification) { |
71 | - Log.d("77777","customNotification="+customNotification.getContent()); | |
74 | +// Log.d("77777", "customNotification=" + customNotification.getContent()); | |
72 | 75 | onCustomNotificationReceive(customNotification); |
73 | 76 | } |
74 | 77 | }; |
... | ... | @@ -107,6 +110,38 @@ public class MessageManager { |
107 | 110 | String uuid = json.optString("msgId"); |
108 | 111 | Timber.d("onCustomNotificationReceive%s", "json=" + json.toString()); |
109 | 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 | 145 | PHMessageSession session = PHMessageSession.findAndCreateSession(PHMessageSession.sessionType_homework, true); |
111 | 146 | session.setSessionName("作业通知"); |
112 | 147 | session.setDate(new Date(customNotification.getTime())); |
... | ... | @@ -144,13 +179,14 @@ public class MessageManager { |
144 | 179 | } catch (JSONException e) { |
145 | 180 | e.printStackTrace(); |
146 | 181 | } |
147 | - } | |
182 | + }*/ | |
148 | 183 | |
149 | 184 | public void notifyNotification(String uuid, long msgLongId, String text) { |
150 | 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 | 190 | boolean setBadgerSuccessful = ShortcutBadger.applyCount(AppContext.getInstance(), notificationCount); |
155 | 191 | Timber.i("----== notificationCount : %s ,setBadgerSuccessful : %s", notificationCount, setBadgerSuccessful); |
156 | 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 | 157 | mRxManager.register(mIModel.getUserInfo(mobile, school_id, captcha).subscribe(new Consumer<UserInfo>() { |
158 | 158 | @Override |
159 | 159 | public void accept(UserInfo userInfo) throws Exception { |
160 | + Log.d("77777","userInfo="+userInfo); | |
160 | 161 | if (userInfo != null) { |
161 | 162 | CurrentBean currentBean = userInfo.getData(); |
162 | 163 | AppConfig.getAppConfig(AppContext.getInstance()).set(AppConfig.LOGIN_NAME, currentBean.getMobile()); | ... | ... |
app/src/main/java/com/shunzhi/parent/ui/activity/message/MesageActivity.java
1 | 1 | package com.shunzhi.parent.ui.activity.message; |
2 | 2 | |
3 | +import android.graphics.Color; | |
3 | 4 | import android.os.Bundle; |
4 | 5 | import android.support.v7.widget.LinearLayoutManager; |
5 | 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 | 11 | import android.view.LayoutInflater; |
7 | 12 | import android.view.View; |
8 | 13 | import android.view.ViewGroup; |
... | ... | @@ -16,6 +21,8 @@ import com.share.mvpsdk.utils.DateUtils; |
16 | 21 | import com.shunzhi.parent.AppContext; |
17 | 22 | import com.shunzhi.parent.R; |
18 | 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 | 27 | import java.util.ArrayList; |
21 | 28 | import java.util.List; |
... | ... | @@ -26,9 +33,9 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi |
26 | 33 | |
27 | 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 | 40 | @Override |
34 | 41 | protected void initView(Bundle savedInstanceState) { |
... | ... | @@ -49,11 +56,11 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi |
49 | 56 | |
50 | 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 | 64 | mEssageAdapter.addAll(phMessages); |
58 | 65 | recyclerView.setAdapter(mEssageAdapter); |
59 | 66 | |
... | ... | @@ -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 | 85 | @Override |
80 | 86 | public void onAttachedToRecyclerView(RecyclerView recyclerView) { |
... | ... | @@ -93,28 +99,45 @@ public class MesageActivity extends BaseCompatActivity implements View.OnClickLi |
93 | 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 | 105 | List<String> dateString = new ArrayList<>(); |
106 | + String indexDate = ""; | |
100 | 107 | |
101 | 108 | public MessageViewHolder(View itemView) { |
102 | 109 | super(itemView); |
103 | 110 | tvMessageContent = itemView.findViewById(R.id.tvMessageContent); |
104 | 111 | tvDate = itemView.findViewById(R.id.tvDate); |
112 | + tvLookDetail = itemView.findViewById(R.id.tvLookDetail); | |
105 | 113 | } |
106 | 114 | |
107 | 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 | 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 | 23 | import com.shunzhi.parent.bean.message.PHMessage; |
24 | 24 | import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract; |
25 | 25 | import com.shunzhi.parent.contract.mine.MineContract; |
26 | +import com.shunzhi.parent.db.DBMessageController; | |
26 | 27 | import com.shunzhi.parent.manager.MessageManager; |
27 | 28 | import com.shunzhi.parent.manager.UpdateManager; |
28 | 29 | import com.shunzhi.parent.presenter.mine.MinePresenter; |
... | ... | @@ -92,7 +93,7 @@ public class MineFragment extends BaseMVPCompatFragment<LoginAndRegisterContract |
92 | 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<LoginAndRegisterContract |
131 | 132 | layout_afterLogin.setVisibility(View.GONE); |
132 | 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<LoginAndRegisterContract |
139 | 141 | switch (v.getId()) { |
140 | 142 | case R.id.layout_message: |
141 | 143 | startNewActivity(MesageActivity.class); |
144 | + DBMessageController.getInstance(getContext()).setMeaasgesRead(); | |
142 | 145 | break; |
143 | 146 | case R.id.childlayout: |
144 | 147 | startActivity(new Intent().setClass(getActivity(), MyChildActivity.class)); | ... | ... |
app/src/main/res/layout/item_message.xml
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | 2 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
3 | 3 | android:layout_width="match_parent" |
4 | + android:layout_height="wrap_content" | |
4 | 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 | 9 | <TextView |
10 | + android:id="@+id/tvDate" | |
9 | 11 | android:layout_width="wrap_content" |
10 | 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 | 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 | 26 | <TextView |
27 | + android:id="@+id/tvMessageContent" | |
19 | 28 | android:layout_width="match_parent" |
20 | 29 | android:layout_height="wrap_content" |
30 | + android:ellipsize="end" | |
21 | 31 | android:maxLines="2" |
22 | - android:textSize="@dimen/textSize14" | |
23 | 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 | 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 | 56 | </LinearLayout> |
35 | 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 | 17 | */ |
18 | 18 | public class DBUtils { |
19 | 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 | 23 | private static DBUtils sDBUtis; |
23 | 24 | private SQLiteDatabase mSQLiteDatabase; |
... | ... | @@ -79,6 +80,10 @@ public class DBUtils { |
79 | 80 | return isRead; |
80 | 81 | } |
81 | 82 | |
83 | + public void insert(String table,String key,String value){ | |
84 | + | |
85 | + } | |
86 | + | |
82 | 87 | public class DBHelper extends SQLiteOpenHelper { |
83 | 88 | |
84 | 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 | 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 | * | ... | ... |