protected void updateStatusMessages() {
   synchronized (this.messageList) {
     if (conversation.getMode() == Conversation.MODE_SINGLE) {
       ChatState state = conversation.getIncomingChatState();
       if (state == ChatState.COMPOSING) {
         this.messageList.add(
             Message.createStatusMessage(
                 conversation, getString(R.string.contact_is_typing, conversation.getName())));
       } else if (state == ChatState.PAUSED) {
         this.messageList.add(
             Message.createStatusMessage(
                 conversation,
                 getString(R.string.contact_has_stopped_typing, conversation.getName())));
       } else {
         for (int i = this.messageList.size() - 1; i >= 0; --i) {
           if (this.messageList.get(i).getStatus() == Message.STATUS_RECEIVED) {
             return;
           } else {
             if (this.messageList.get(i).getStatus() == Message.STATUS_SEND_DISPLAYED) {
               this.messageList.add(
                   i + 1,
                   Message.createStatusMessage(
                       conversation,
                       getString(
                           R.string.contact_has_read_up_to_this_point, conversation.getName())));
               return;
             }
           }
         }
       }
     }
   }
 }