[NEW] Add activity indicators for Uploading and Recording using new API; Support thread context; Deprecate the old typing API#22392
Merged
rodrigok merged 34 commits intoRocketChat:developfrom Sep 23, 2021
Conversation
Added on top of RocketChat#22327
minor fix: It was using two different instance of the template with slight different args. (i.e pass tmid if present else pass rid). But we can use a single template and pass both the args to the same template. Then we can filter them.
a488883 to
8fb9c66
Compare
rodrigok
requested changes
Jul 17, 2021
Member
rodrigok
left a comment
There was a problem hiding this comment.
Can you convert the new files to typescript?
when a user A is typing while another user B is also typing, This will show them as "userA/B also typing". Many other platforms are not using this feature, and also it is not so useful.
Used a single dictionary to store all user activities. removed notifyUserActivity template.
rodrigok
requested changes
Jul 21, 2021
8eb3ee4 to
709fafe
Compare
Co-authored-by: Rodrigo Nascimento <rodrigoknascimento@gmail.com>
b582733 to
79fb8d9
Compare
10 tasks
rodrigok
requested changes
Aug 3, 2021
changed object data structure to map data structure. use 'OR' operator instead of ternary operation
3e3d5cd to
82aeec1
Compare
Contributor
Author
|
I have converted the UserAction.js file to TS. Other than this I had also converted userActionIndicator to TS. But it was a helper method for the userActionIndicator template, and cannot be imported on another template file. So I did not include the file. |
…dicator # Conflicts: # app/ui-message/client/messageBox/messageBoxAudioMessage.js # app/ui-message/client/messageBox/messageBoxTyping.js # app/ui/client/lib/fileUpload.js
2188e18 to
5adf209
Compare
- Fix typing layout - Change event format to be more compatible with old one - Remove setting - Make the backend emit compatibility events - Other small improvements
5adf209 to
3a4f6e7
Compare
rodrigok
previously approved these changes
Sep 23, 2021
f17b0c9 to
3191aab
Compare
rodrigok
approved these changes
Sep 23, 2021
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New statuses for user actions/events (Typing 2.0)
Rocket chat sponsored GSoC Project
Mentor: Rodrigo Nascimento
student: Sumukha Hegde
Primary tasks of this project:
Implementation of Recording and Uploading activity indicators
Showing activity indicators (such as typing, recording, uploading) improves overall user experience and offers a live chat experience to users who may expect quick response times. For this reason, many chat applications have used these activity indicators.
I have implemented recording and uploading indicators in mobile and in the web application(live chat remaining). We have used a separate activity type (named user-activity) that would handle all three activity indicators. We would pass the (typing, recording, uploading) action types as
actionTypeparameter while calling the streamer to broadcast these user events.But the new activity type (user-activity) supports only on the web and mobile platform and does not support live chat, bot, e.t.c,. The backend fires the new event when receives the old one and fires the old event when receives the new one, firing both events allows old clients to stay compatible until the next breaking change.
Implementation of thread statuses
In the previous app, Thread activities were not displaying on the thread but on the main channel. This issue is fixed in this Project, we used a parameter
extrathat would take thread id (tmid) as a value if the user is performing on a thread. Both the mobile and web applications can show these improvements.Formats
Old events
New events
References
#22392 web app PR
#3243 mobile PR
#139 SDK support for mobile
extras
https://user-images.githubusercontent.com/23723464/121769591-0a10eb00-cb82-11eb-96d8-241486dbccd4.mov
https://user-images.githubusercontent.com/23723464/122437728-9aeb2a80-cfb7-11eb-945a-dd9131f9df74.mov