=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/Message.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/Message.java 2011-10-06 15:39:08 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/Message.java 2011-11-01 11:34:58 +0000 @@ -141,4 +141,39 @@ { this.sentDate = sentDate; } + + @Override + public int hashCode() + { + return key.hashCode(); + } + + @Override + public boolean equals( Object object ) + { + if ( this == object ) + { + return true; + } + + if ( object == null ) + { + return false; + } + + if ( getClass() != object.getClass() ) + { + return false; + } + + final Message other = (Message) object; + + return key.equals( other.key ); + } + + @Override + public String toString() + { + return "[" + text + "]"; + } } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/UserMessage.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/UserMessage.java 2011-08-03 20:53:38 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/UserMessage.java 2011-11-01 11:34:58 +0000 @@ -48,13 +48,20 @@ { this.key = UUID.randomUUID().toString(); } - + public UserMessage( User user ) { this.key = UUID.randomUUID().toString(); this.user = user; this.read = false; } + + public UserMessage( User user, boolean read ) + { + this.key = UUID.randomUUID().toString(); + this.user = user; + this.read = read; + } public int getId() { @@ -95,6 +102,35 @@ { this.read = read; } + + @Override + public int hashCode() + { + return key.hashCode(); + } + + @Override + public boolean equals( Object object ) + { + if ( this == object ) + { + return true; + } + + if ( object == null ) + { + return false; + } + + if ( getClass() != object.getClass() ) + { + return false; + } + + final UserMessage other = (UserMessage) object; + + return key.equals( other.key ); + } @Override public String toString() === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2011-10-25 10:29:21 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2011-11-01 11:34:58 +0000 @@ -94,19 +94,27 @@ users.addAll( userGroup.getMembers() ); } + User sender = currentUserService.getCurrentUser(); + + if ( sender != null ) + { + users.add( sender ); + } + // --------------------------------------------------------------------- // Instantiate message, content and user messages // --------------------------------------------------------------------- - User sender = currentUserService.getCurrentUser(); - MessageConversation conversation = new MessageConversation( subject, sender ); conversation.addMessage( new Message( text, metaData, sender ) ); for ( User user : users ) { - conversation.addUserMessage( new UserMessage( user ) ); + boolean read = user != null && user.equals( sender ); + System.out.println( "sender " + sender + " user " + user + " read " + read ); + + conversation.addUserMessage( new UserMessage( user, read ) ); } int id = saveMessageConversation( conversation );