Commit Graph

483 Commits

Author SHA1 Message Date
delvh
d6de1be7de Partially fixed bug not showing "Add user to contact list?" - Alert 2020-07-04 15:27:42 +02:00
delvh
b721771672 Added ability to execute code when a scene is restored 2020-07-04 15:26:12 +02:00
4bf785d896
Detect LV Encoding Errors in Receiver
When the length value encoding is violated, which can occur by sending
an incorrect object length to the client, the error is logged and the
receiver continues to run.
2020-07-03 23:37:25 +02:00
60d3e65574
Add Voice Recording to ChatScene
The ChatScene layout has been adjusted to include a voice message
button. When pressed, a recording starts. To finish the recording, press
the button again. The recording will be saved as a pending attachment.

The next message sent will include the attachment. When a pending
attachment is present, a message can be sent without text.

When the chat is switched, the pending attachment is discarded. This
does not stop active recordings, however.

The ChatScene layout handles large stages better now by ditching
percentage-wise row and column scaling in favor of absolute values for
all cells except the message list and text area.
2020-07-03 23:32:22 +02:00
0abd5cf17c
Add AudioRecorder 2020-07-03 14:17:04 +02:00
DieGurke
182a190099 Implemented GroupMessage reading (sending the right event)
Note: changed a lambda expression in LocalDB and not 100% sure if it is correct
2020-07-03 13:47:40 +02:00
delvh
cf84dd33b6
(IMPORTANT! read description) Merge pull request #166 from informatik-ag-ngl/f/clearable_textfield
Implemented ClearableTextField and redesigned UI.
TAKE CARE:
in order to use SceneBuilder further, you have to import the attached
JAR "CustomComponents.jar" into the SceneBuilder. If you don't do this,
Scenebuilder no longer can load FXML files that depend on a custom
component. If you are implementing another custom component, feel free
to add it to the jar.
Note however that SceneBuilder cannot load any components that rely on
libraries other than the standard Java library or the JavaFX standard.
Meaning that even if you are referencing another Envoy file, the
component will not be importable. Because of this, the
ClearableTextField is also present only in a slimmed down version, as
SceneBuilder additionally has problems when dealing with loading
resources.
2020-07-02 18:06:43 +02:00
delvh
50ff03697d
Fixed unforgivable Javadoc error 2020-07-01 23:32:32 +02:00
delvh
055b991326 Moved former ListCell#updateItem methods into separate Control objects
Additionally fixed bug showing wrong color of infoLabel after switching
scenes
2020-07-01 19:35:15 +02:00
e5ddf32b4a
Fix insertion of oldest message 2020-07-01 08:58:02 +02:00
b380efc38f
Fix message insertion into empty list and from sender 2020-07-01 08:45:39 +02:00
eeb918d37c
Fix message order with insertion method
Fixes #168
2020-07-01 08:36:21 +02:00
delvh
f6083d7086 Removed unnecessary Label creation 2020-06-30 22:11:09 +02:00
delvh
07cdbab097 Added (currently useless) message-info menuItem
additionally:
 - moved MessageListCell and ContactListCell into
envoy.client.ui.listcell
 - edited editable property of ClearableTextField
2020-06-30 21:20:54 +02:00
delvh
d168f57d2b
Merge branch 'develop' into f/clearable_textfield 2020-06-28 22:48:35 +02:00
delvh
589353a927 Finished implementing ClearableTextField (IMPORTANT! read description)
in order to use SceneBuilder further, you have to import the attached
JAR "CustomComponents.jar" into the SceneBuilder. If you don't do this,
Scenebuilder no longer can load FXML files that depend on a custom
component. If you are implementing another custom component, feel free
to add it to the jar.
Note however that SceneBuilder cannot load any components that rely on
libraries other than the standard Java library or the JavaFX standard.
Meaning that even if you are referencing another Envoy file, the
component will not be importable. Because of this, the
ClearableTextField is also present only in a slimmed down version, as
SceneBuilder additionally has problems when dealing with loading
resources.
2020-06-28 22:44:34 +02:00
delvh
28fe5cdb27 Updated UI (again) 2020-06-28 22:30:14 +02:00
DieGurke
21ad87d97d Implemented pendingMessage processing using an extra cache 2020-06-28 13:20:10 +02:00
delvh
18819a873f Wrapped text in userList
(as suggested by @CyB3RC0nN0R)
It is nice to see that JavaFX is less prone to shittyness than Swing is.
2020-06-27 18:44:57 +02:00
delvh
e6ac95ac14 Fixed padding of status icon and implemented Tooltip
Additionally added commentary in MessageListCell.
2020-06-27 18:27:13 +02:00
25b9103e23 Bind message list cell width to message list width
Fixes #156
2020-06-27 17:36:42 +02:00
c6e28aba10 Display status for own messages instead of received ones 2020-06-27 17:14:07 +02:00
delvh
406036c029 Added working ClearableTextField
additionally designed the clear button icon both in black and white
2020-06-27 15:35:35 +02:00
3446e24043 Merge branch 'develop' into f/groupMessages
Conflicts:
	src/main/java/envoy/client/ui/controller/ChatScene.java
2020-06-27 11:34:51 +02:00
delvh
17a9de64f2
Merge branch 'develop' into f/notify_user_of_empty_IDGenerator 2020-06-27 11:25:49 +02:00
adfeb64845
Merge pull request #160 from informatik-ag-ngl/b/user_name_validation
Contact Name Validation
2020-06-27 09:22:03 +00:00
delvh
b5fc80709e Removed unnecessary IOException in IconUtil
This is a normal @CyB3RC0nN0R commit: Adding functionality by deleting
code.
2020-06-27 11:03:30 +02:00
920c83c4d1 Rename groupNameBar to groupNameField 2020-06-27 09:48:41 +02:00
3d6a38e354 Validate group name and size on creation 2020-06-27 09:36:59 +02:00
delvh
5a933fab4e Made postingPermanentlyDisabled further idiot-proof
Additionally deleted annoying alert notifying me that I'm offline.
2020-06-27 09:34:30 +02:00
d5fa0d17a1 Validate user name during login and registration 2020-06-27 08:25:37 +02:00
delvh
bc230575f4 Cleaned up Envoy client: no more <br><br>, is now <p>
...and some other funny mistakes found in Javadoc
2020-06-26 23:36:14 +02:00
delvh
f61561d4b2 Implemented notification of user if he can no longer send messages
This only occurs when he is in offline mode and runs out of messageIDs
to use.
Additionally implemented:
- automatically disabled user of posting after that condition is reached
- an infoLabel used to commjunicate some events with the user
- (in parts) a new UI design
2020-06-26 23:16:03 +02:00
delvh
c529e8df9e
Merge branch 'develop' into f/enhanced_UI 2020-06-26 20:18:00 +02:00
delvh
a57f14aca3 Merge branch 'f/enhanced_UI' of git@github.com:informatik-ag-ngl/envoy-client.git into f/enhanced_UI 2020-06-26 17:33:49 +02:00
delvh
86e8b4b139 Added display of settings-icon for the settings button
additionally modified margin of elements in ChatScene
2020-06-26 17:33:32 +02:00
c2309fe171 Prevent groups from being stored in the user database
This only affects top-level map entries. Groups that are contacts of the
client user are still persisted.
2020-06-26 16:37:00 +02:00
dad05449cf Fix double status increment on cached message relay 2020-06-26 09:28:48 +02:00
295e2a8596 Display correct contact status on startup
Fixes #152
2020-06-26 09:08:41 +02:00
delvh
e4a8ef4210
Fixed small formatting error 2020-06-25 12:32:57 +02:00
delvh
29a667389d
Apply suggestions from code review
Co-authored-by: CyB3RC0nN0R <CyB3RC0nN0R@users.noreply.github.com>
2020-06-25 11:19:59 +02:00
delvh
bbd5f61486 Apply suggestions from @CyB3RC0nN0R's code review 2020-06-25 11:17:25 +02:00
delvh
d80bc39221 Merge remote-tracking branch 'origin/develop' into f/enhanced_UI 2020-06-25 10:45:37 +02:00
4e9702a691 Clear repeat password field when unequal passwords are entered 2020-06-25 10:21:27 +02:00
cde91a77ef Stop clearing password fields, remove prompt text 2020-06-25 07:49:45 +02:00
delvh
a823029c07 Improved message coloring, messageStatus display only for own messages
additionally loaded the message status icons smaller and (visually) hid
the vertical scrollbars (they can still be used, but cannot be seen).
Lastly checked all context menu functions for a NullPointerException, as
also no element can be selected when the context menu is created.
2020-06-23 23:32:31 +02:00
delvh
4ad61e3152 Added "Copy and Send" capability
additionally added context menu to delete a contact, currently without
function
2020-06-23 18:32:34 +02:00
delvh
e347c2fae1 Merge remote-tracking branch 'origin/develop' into f/enhanced_UI 2020-06-23 17:27:02 +02:00
743a7a1c34 Merge branch 'develop' into f/compatibility_verification
Conflicts:
	src/main/java/envoy/client/net/Client.java
	src/main/java/envoy/client/net/MessageStatusChangeEventProcessor.java
	src/main/java/envoy/client/ui/Startup.java
	src/main/java/envoy/client/ui/controller/ChatScene.java
	src/main/java/envoy/client/ui/controller/ContactSearchScene.java
	src/main/java/envoy/client/ui/controller/GroupCreationScene.java
	src/main/java/envoy/client/ui/controller/LoginScene.java
2020-06-23 08:43:20 +02:00
delvh
d47a99d637 Added a context menu to the message list and ability to copy a message
context menu contains a few menu items that will be populated with
functionality later on.
2020-06-22 22:51:10 +02:00
delvh
9e886c3f45 Added alignment and coloring of messages according to who is the sender
additionally added:
- the label on top of the ChatScene now displays the own users name
- the messageList now scrolls to the bottom when a message is
created/received
2020-06-22 20:53:44 +02:00
delvh
6eb91244cc
Merge pull request #149 from informatik-ag-ngl/f/visually_pleasing_experience
Improved general appearance of Envoy, both in FXML and CSS
2020-06-21 17:40:57 +02:00
256a5ac210 Move user status color to CSS, refactor ContactListCell 2020-06-21 17:25:24 +02:00
delvh
b23ee61506 Moved remainingCharsLabel styling from code to CSS 2020-06-21 17:04:27 +02:00
delvh
e6745da7d8
Merge pull request #147 from informatik-ag-ngl/b/postbutton_bug_and_logging
Fixed postButton - bug and improved logging
2020-06-21 16:25:45 +02:00
c916c3c22c
Merge pull request #146 from informatik-ag-ngl/f/single_file_local_db
Store user specific local database information inside a single file
2020-06-21 07:12:23 +00:00
delvh
f073b6e397
Fixed error caused by my own stupidity 2020-06-20 22:42:44 +02:00
delvh
549198f242
Apply suggestions from code review
Reworded the suggestions slightly
2020-06-20 22:29:32 +02:00
0b28424bd4 Shorten event names, compatibility verification 2020-06-20 11:00:58 +02:00
delvh
dda9e8ee25 Fixed incorrect logger statement
No one needs redundancy in a logging statement, right?

Co-authored-by: CyB3RC0nN0R <CyB3RC0nN0R@users.noreply.github.com>
2020-06-19 17:07:33 +02:00
delvh
cfd323725f Improved general appearance of Envoy 2020-06-18 22:20:34 +02:00
delvh
b8f0bba8a7
Merge branch 'develop' into b/postbutton_bug_and_logging 2020-06-14 16:18:02 +02:00
delvh
7744d382b1 Applying suggestions from code review 2 2020-06-14 16:11:46 +02:00
delvh
4071487048
Apply suggestions from code review
Co-authored-by: CyB3RC0nN0R <CyB3RC0nN0R@users.noreply.github.com>
2020-06-14 16:03:02 +02:00
delvh
6dda2cce71 Fixed multiple bugs concerning enterToSend and the postButton 2020-06-13 22:38:49 +02:00
delvh
753791e8c9 Added improved logging capabilities 2020-06-13 22:36:52 +02:00
deff9d642b Store user specific local database information inside a single file
Closes #141
2020-06-13 18:46:41 +02:00
2a26ce0cad
Reformat a logger statement
Co-authored-by: delvh <dev.lh@web.de>
2020-06-13 17:00:44 +02:00
DieGurke
a8b35418d3 Added ReceivedGroupMessageProcessor
Receiving groupMessages works now properly(only if online)
2020-06-13 10:40:47 +02:00
DieGurke
ee79ef1c66 Added support for sending groupMessages
* Implemented distinguishing between regular messages and groupMessages
when sending messages to the server (and sends the right object
obviously)
2020-06-12 23:50:52 +02:00
02ca6960f7 Reading the current chat if it changes or a message is received
Closes #144
2020-06-12 10:54:55 +02:00
DieGurke
40a38e77dd
Update src/main/java/envoy/client/ui/controller/GroupCreationScene.java
Co-authored-by: CyB3RC0nN0R <CyB3RC0nN0R@users.noreply.github.com>
2020-06-11 15:06:59 +02:00
DieGurke
5466602a33 Fixed issue reagarding missing chats 2020-06-11 13:21:16 +02:00
DieGurke
b8e001bf54 MessageStatusChangeEventCache
Added a cache storing all messageStatusChangeEvents received during
handshake just like the already existing cache for received messages
during the handshake
This new cache is needed because the functionality regarding the pending
messages (and now messageStatusChanges as well) has changed!
2020-06-10 22:50:09 +02:00
DieGurke
4e2e47600b Merged branch 'develop' into f/groups
Contains several bug fixes
2020-06-10 22:23:59 +02:00
c839ef01ba Add received messages to their chat 2020-06-10 13:05:44 +02:00
9dade2cf77 Properly override updateItem method of list cells 2020-06-10 11:33:49 +02:00
367a690dc8 Replace UserStatusChangeProcessor with inline code in ChatScene 2020-06-10 11:22:36 +02:00
46f8b1e767 Adjust stage size after changing the scene 2020-06-10 10:05:25 +02:00
delvh
8ba718f7b1 Fixed visual issues as per @delvh 's request 2020-06-09 22:24:09 +02:00
DieGurke
a4cc753d85 Added Group Creation Functionality
* Implemented new group creation scene (fxml)
* Added group creation controller
* Adjusted contact search scene (fxml)
2020-06-09 21:22:45 +02:00
delvh
b953586859 Added (currently useless) comboBox to change your status 2020-06-09 21:03:19 +02:00
delvh
d0d86fc0d4 Added color display of user statuses 2020-06-09 20:42:17 +02:00
delvh
0661838c38 Fixed bug automatically sending a message when ctrl is being pressed 2020-06-09 17:11:17 +02:00
ebb7a48e8e Process ContactOperationEvent 2020-06-09 17:06:40 +02:00
0efd57f2ef Rename UserListCell to ContactListCell 2020-06-09 15:49:11 +02:00
bc17203367 Ask user before adding a contact 2020-06-09 15:41:01 +02:00
d03bbb6f5e Implemented contact removal operation (untested) 2020-06-09 14:21:11 +02:00
72354b3678 Fix user list in offline mode 2020-06-09 14:12:27 +02:00
7f6f538849 Display message date and status 2020-06-09 11:36:38 +02:00
c0d814ed38 Converted the login dialog into a scene 2020-06-08 11:58:57 +02:00
232439a564 Move scene controllers to separate package 2020-06-08 10:36:30 +02:00
0372c1393e Add theme selection in settings 2020-06-08 10:02:39 +02:00
4123abf24f Remove Theme class and code related to it
This is a preparation for loading themes from CSS files.
2020-06-08 09:14:57 +02:00
0ba46f6d46 Fix minor error when popping the last scene 2020-06-08 08:45:15 +02:00
delvh
63dc01534d Added elegant way of displaying remaining characters for a message
additionally FOUND (not fixed) a bug automatically posting a message
when ctrl is no longer pressed
2020-06-07 23:28:25 +02:00
delvh
eda6ea8cd2 Implemented ContactSearchScene completely
additionally added default keyboard shortcuts for all buttons
2020-06-07 20:46:04 +02:00
9d7cad5a3b Add offline mode check box and connection label to login dialog 2020-06-07 17:03:02 +02:00
1689896f42 Fix offline mode and local DB initialization 2020-06-07 16:26:54 +02:00
delvh
778a05bdda Improved visual appearance of ChatScene
Additionally added minimum height of application and basic
ContactSearchScene.fxml file.
2020-06-06 18:33:24 +02:00