예제 #1
0
        public int addMessageToThread(VerseMessageThread vmt, String message_text)
        {
            DateTime datetime = DateTime.Now;
            VerseMessage vm = new VerseMessage(-1, vmt.thread_id, datetime, message_text, us.user_profile.id);
            //dont do this in a seperate thread now, because we need to know if it's succesful.
            int code = AddMessageToThreadDB(message_text,datetime,vmt,vm);
            if(code == MESSAGE_SENT_CODE_SUCCESSFUL)
            {
                //this is a little messy. we should be consistent in the way we update memory and db.

                vmt.addMessage(vm);

                updateThreadLastModifiedTime(vmt, vm);
                VerseMessageParticipant vmp = vmt.getParticipant(us.user_profile.id);
                updateParticipantThreadLastAccessedTime (vmp);

                return MESSAGE_SENT_CODE_SUCCESSFUL;
            }
            else
            {
                return MESSAGE_SENT_CODE_ERROR;
            }
        }
예제 #2
0
 public void removeParticipantFromThread(VerseMessageThread vmt)
 {
     long user_id = us.user_profile.id;
     if (vmt.getParticipant(user_id) != null)
     {
         VerseMessageParticipant vmp = vmt.getParticipant(user_id);
         ParticipantTask pt = new ParticipantTask(us, vmp);
         //TODO change this not to be done in thread.
         pt.RemoveParticipantFromThread();
         VerseThreadManager.getInstance().removeParticipant(vmt, vmp);
     }
 }
        protected void appendMessageThread(
            UserSession us,
            MessageToSend ms,
            VerseMessageThread vmt)
        {
            Boolean is_new = false;
            String verse_ref = "";
            String message;
            List<VerseMessage> messages = vmt.getMessages();
            VerseMessage first_vm = messages.First();
            VerseMessage last_vm = messages.Last();

            ms.AppendLine("");
            ms.Append(createMessageLink(MENU_LINK_NAME, "*", MessageInboxHandler.OPEN_THREAD + vmt.thread_id));
            //determine if there is a new message in this thread by comparing last updated and read dates.
            ms.Append(" ");

            DateTime last_mod_date = vmt.datetime_last_modified;
            VerseMessageParticipant vmp = vmt.getParticipant(us.user_profile.id);

            DateTime last_acc_date = DateTime.MaxValue;
            if (vmp != null)
                last_acc_date = vmp.datetime_last_read;
            is_new = last_mod_date > last_acc_date;
            String subject = vmt.subject;
            ms.Append("From: ");
            if (first_vm.sender_id == us.user_profile.id)
            {
                ms.AppendLine("You ", TextMarkup.Bold);
            }
            else
            {
                ms.AppendLine(" " + UserNameManager.getInstance().getUserName(first_vm.sender_id), TextMarkup.Bold);
            }

            ms.Append("To: ");
            List<VerseMessageParticipant> parts = vmt.getListOfParticipants();
            String receivers = getRecieverString(us, parts,first_vm.sender_id);

            ms.AppendLine(receivers, TextMarkup.Bold);

            if (!VerseMessageThread.NOTIFICATION_THREAD.Equals(vmt.start_verse))
            {
                verse_ref = BibleHelper.getVerseSectionReference(us, vmt.start_verse, vmt.end_verse);
                ms.AppendLine("Verse: " + verse_ref);
            }
            if (!(subject == null || subject.Equals("") || subject.Equals("NULL")))
            {
                ms.AppendLine("Subject: '" + subject + "'");
                //ms.Append();
                //ms.AppendLine("'");
            }
            message = last_vm.message_text;
            if(!(message== null || message.Equals("") || message.Equals("NULL")))
                ms.AppendLine("Newest Message: " + StringUtils.getTextSummary(message, 4) + "...'  ("+messages.Count+" messages)");

            //ms.AppendLine("");
            if (last_vm != null)
            {
                ms.Append("Last Updated by ");
                if (last_vm.sender_id == us.user_profile.id)
                {
                    ms.Append("You (");
                }
                else
                {
                    ms.Append(UserNameManager.getInstance().getUserName(last_vm.sender_id) + " (");
                }
                if (is_new)
                {
                    ms.Append(DateUtils.RelativeDate(last_mod_date),TextMarkup.Bold);
                    ms.AppendLine(")");
                }
                else
                {
                    ms.AppendLine(DateUtils.RelativeDate(last_mod_date) + ")");
                }
            }

            ms.Append(createMessageLink(MENU_LINK_NAME, "[DELETE]", MessageInboxHandler.DELETE_THREAD + vmt.thread_id));
            ms.AppendLine(" ");
            ms.Append("\r\n");
        }