In your code you don't explicitely set the color in case of a 'read' state (the first section of your if/else).
It means that if your view is recycled and it was previously used for an 'unread' item, then the color will remain the same.
You need to explicitely say which color you want in both cases, because you cannot know what the initial color is.