final boolean markRead = fInputPreferences.getBoolean(DefaultPreferences.MARK_READ_STATE);
final int delay = fNewsStateTracker.getDelay();
/* Instantly mark as *unread* if required */
if ((!markRead || delay > 0) && selectedNews.getState() != INews.State.UNREAD) {
fInstantMarkUnreadTracker.run(new TaskAdapter() {
public IStatus run(IProgressMonitor monitor) {
setNewsState(selectedNews, INews.State.UNREAD, true);
return Status.OK_STATUS;
}
});
}
/* Instantly Mark Read (see Bug 1023) */
if (markRead && delay == 0)
setNewsState(selectedNews, INews.State.READ, false);
/* Mark Read after Delay */
else if (markRead) {
fNewsStateTracker.run(new TaskAdapter() {
public IStatus run(IProgressMonitor monitor) {
setNewsState(selectedNews, INews.State.READ, true);
return Status.OK_STATUS;
}
});