@Test public void marksSeenMessages() throws Exception { controller.setContact(c); waitUntil(() -> controller.contact == c); PersistenceDropMessage message = new PersistenceDropMessage(dm, c, i, false, false); dropMessageRepository.save(message); waitUntil(message::isSeen, 10000L); }
public synchronized void setContact(Contact contact) { receivedDropMessages.clear(); knownMessages.clear(); this.contact = contact; lastSender = null; messageLoadingExecutor.submit(() -> { try { updateNotification(); loadMessages(this.contact); } catch (Exception e) { alert(e); } }); }
ActionlogController extends AbstractController implements Initializable, Observer { public synchronized void setContact(Contact contact) { receivedDropMessages.clear(); knownMessages.clear(); this.contact = contact; lastSender = null; messageLoadingExecutor.submit(() -> { try { updateNotification(); loadMessages(this.contact); } catch (Exception e) { alert(e); } }); } }
ActionlogController extends AbstractController implements Initializable, Observer { public synchronized void setContact(Contact contact) { receivedDropMessages.clear(); knownMessages.clear(); this.contact = contact; lastSender = null; messageLoadingExecutor.submit(() -> { try { updateNotification(); loadMessages(this.contact); } catch (Exception e) { alert(e); } }); }  }
ActionlogController extends AbstractController implements Initializable, Observer { public synchronized void setContact(Contact contact) { receivedDropMessages.clear(); knownMessages.clear(); this.contact = contact; lastSender = null; messageLoadingExecutor.submit(() -> { try { updateNotification(); loadMessages(this.contact); } catch (Exception e) { alert(e); } }); }  @Override void initialize(URL location, ResourceBundle resources); List<PersistenceDropMessage> getReceivedDropMessages(); @Override synchronized void update(Observable o, Object arg); synchronized void setContact(Contact contact); void handleAccept(); void handleIgnore(); void selectEmoji(); }
ActionlogController extends AbstractController implements Initializable, Observer { public synchronized void setContact(Contact contact) { receivedDropMessages.clear(); knownMessages.clear(); this.contact = contact; lastSender = null; messageLoadingExecutor.submit(() -> { try { updateNotification(); loadMessages(this.contact); } catch (Exception e) { alert(e); } }); }  @Override void initialize(URL location, ResourceBundle resources); List<PersistenceDropMessage> getReceivedDropMessages(); @Override synchronized void update(Observable o, Object arg); synchronized void setContact(Contact contact); void handleAccept(); void handleIgnore(); void selectEmoji(); @FXML
    public BorderPane chat; @FXML
    public ImageView emojiSelector; }