Added system commands ( features: custom argument number, default values, system command builder, ...).
Fixed bug not copying attachment when using copy and send.
* Remove Swing dependencies from StatusTrayIcon
* Pass a stage to the constructor
* Adjust focus change handler and reactivation
* Add IconUtil#loadAWTCompatible for BufferedImage loading
Additionally removed ability to decide whether exceptions thrown by
SystemCommands should be rethrown as a mentally superior team member
intervened that it would be useless.
A bug remains when the total status of a group message is SENT, but the
individual status for the client user is RECEIVED. In this case, the
counter should be incremented but isn't.
Added (inefficient) listview refreshing mechanism.
Additionally fixed these bugs/ inconsistencies:
Removed the selected user from ContactSearchScene upon addition
Warned user on group creation if he already has a Group with that name
Fixed bug not enabling the post-button when an attachment is present
This causes problems with group messages as the received date is null
sometimes even though the status is RECEIVED.
The ReceivedMessageProcessor on the client filters out the synced
messages at the moment.
Common
* Replace LocalDateTime with Instant everywhere
Client
* Display message creation date with system time zone in MessageControl
* LocalDB#users now strictly contains Users
* lastSync time stamp in LocalDB (saved per user)
* isOnline parameter in save function (lastSync updated if true)
* lastSync time stamp in LoginCredentials
* No ClientConfig#getLoginCredentials because of missing information,
moved to LoginScene
* Pass LocalDB#lastSync to LoginCredentials in LoginScene
Server
* Explicit lastSync parameter for
PersistenceManager#getPending(Group)Messages
This sends the correct time stamp to the server, however the JPQL
queries have yet to be adjusted.
- Refactor chatList to userList in ContactSearchScene and
GroupCreationScene
- Narrow contact searches down to users on a datamodel basis
- Refactor ContactSearchRequest and ContactSearchResult to
UserSearchRequest and UserSearchResult