From a59be9d2af490ec75d2f437b59ecd6392e099af7 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Mon, 5 Dec 2016 22:56:02 +0100 Subject: [PATCH] Mark incoming messages as read when seen. --- MessengerProj/jni/mrwrapper.c | 10 ++++++++-- .../src/main/java/com/b44t/messenger/MrMailbox.java | 8 ++------ .../src/main/java/com/b44t/ui/ChatActivity.java | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/MessengerProj/jni/mrwrapper.c b/MessengerProj/jni/mrwrapper.c index 72ccd6e20..0c70cd978 100644 --- a/MessengerProj/jni/mrwrapper.c +++ b/MessengerProj/jni/mrwrapper.c @@ -285,9 +285,15 @@ JNIEXPORT jint Java_com_b44t_messenger_MrMailbox_MrMailboxGetChatIdByContactId(J } -JNIEXPORT jint Java_com_b44t_messenger_MrMailbox_MrMailboxMarkseenChat(JNIEnv *env, jclass c, jlong hMailbox, jint chat_id) +JNIEXPORT jint Java_com_b44t_messenger_MrMailbox_markseenMsg(JNIEnv *env, jclass cls, jint msg_id) { - return (jlong)mrmailbox_markseen_chat((mrmailbox_t*)hMailbox, chat_id); + return (jint)mrmailbox_markseen_msg(get_mrmailbox_t(env, cls), msg_id); +} + + +JNIEXPORT jint Java_com_b44t_messenger_MrMailbox_markseenChat(JNIEnv *env, jclass cls, jint chat_id) +{ + return (jlong)mrmailbox_markseen_chat(get_mrmailbox_t(env, cls), chat_id); } diff --git a/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java b/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java index b41ed984f..15662fc03 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/MrMailbox.java @@ -148,11 +148,8 @@ public class MrMailbox { return new MrChat(MrMailboxGetChat(m_hMailbox, contact_id)); } - public native static int markseenMsg(int id); // TODO: needs to be implemented - - public static int markseenChat(int id) { - return MrMailboxMarkseenChat(m_hMailbox, id); - } + public native static int markseenMsg (int msg_id); + public native static int markseenChat (int chat_id); public static int getChatIdByContactId (int contact_id) { return MrMailboxGetChatIdByContactId(m_hMailbox, contact_id); @@ -180,7 +177,6 @@ public class MrMailbox { private native static long MrMailboxGetChatlist (long hMailbox); // returns hChatlist which must be unref'd after usage private native static long MrMailboxGetChat (long hMailbox, int chat_id); // return hChat which must be unref'd after usage - private native static int MrMailboxMarkseenChat (long hMailbox, int id); private native static int MrMailboxGetChatIdByContactId (long hMailbox, int contact_id); private native static int MrMailboxCreateChatByContactId(long hMailbox, int contact_id); // returns chat_id private native static int[] MrMailboxGetChatMsgs (long hMailbox, int chat_id); diff --git a/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java b/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java index 091631deb..5e1be87d4 100644 --- a/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java +++ b/MessengerProj/src/main/java/com/b44t/ui/ChatActivity.java @@ -3351,7 +3351,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not messages.add(0, msgDrawObj); messagesDict.put(msg.id, msgDrawObj); chatAdapter.notifyDataSetChanged(); - scrollToLastMessage(false); // TODO: markseen + scrollToLastMessage(false); + MrMailbox.markseenMsg(evt_msg_id); } } }