feat: Drops connection on prejoin screen. (#13538)
* feat: Drops connection on prejoin screen.
Refactors connection logic to reuse already existing logic from mobile. Connection is now established just before joining the room.
Fixes some authentication logic with Login and Logout button in Profile tab.
* squash: Drops createInitialLocalTracksAndConnect as it no longer connects.
* squash: Shows an error on mobile and redirects to default.
* squash: Fixes review comments.
* squash: Fixes joining with prejoin disabled.
* squash: Fixes adding initial local tracks.
* squash: Fixes comments.
* squash: Drop no longer used method.
* squash: Fixes old web code imported into mobile builds.
* squash: Drop unused prop.
* squash: Drops recoverable flag on REDIRECT.
* squash: Drops unused variable and fix connection access.
* squash: Xmpp connect returns promise again.
* squash: Execute xmpp connect and creating local tracks in parallel.
* squash: Moves notification about problem jwt.
* squash: Moves startConference to conference.js for the no prejoin case.
And move the startConference in prejoin feature for the prejoin case.
* squash: Fix passing filtered tracks when starting conference with no prejoin.
* squash: Fix clearing listeners on connection established.
Keeps mobile behaviour after merging web and mobile.
* squash: Drops unused code.
feat(gif, rn) Added GIPHY integration on native (#11236)
Update Android build to support gif
Use GIF format instead of animated webp
Show GIFs in chat messages
Display GIF over tile
Add Giphy button in reactions menu
Added Giphy dialog
Fix isGifMessage to also allow upper case
fix(android,back-button) rework back button handling on Android
We used to have a registry which registered a single handlerwith RN.
THis was registered really early in the app.
When React Navigation was introduced we ddidn't realize it interacts
with the back button. In a stack nagigator it will navigate to the
previous screen. This meant our back button handling was broken.
This commit removes our previous registry and uses the RN back button
handler directly in the 2 components that use it: the conference and
bottom sheets.
Since these handlers are registered after navigation, our handlers are
going to run first so we cna implement the behavior we need, namely to
dismiss an open botom sheet or set the conference in PiP mode.
This "feature" has been dead (and most likely buggy) for years. The
recommended way is for apps to implement their own incoming call
handling and then call into the JitsiMeetActivity. We did not have those
APIs back then.
redux: refactor loading of middlewares and reducers
Up until now we relied on implicit loading of middlewares and reducers, through
having imports in each feature's index.js.
This leads to many complex import cycles which result in (sometimes) hard to fix
bugs in addition to (often) breaking mobile because a web-only feature gets
imported on mobile too, thanks to the implicit loading.
This PR changes that to make the process explicit. Both middlewares and reducers
are imported in a single place, the app entrypoint. They have been divided into
3 categories: any, web and native, which represent each of the platforms
respectively.
Ideally no feature should have an index.js exporting actions, action types and
components, but that's a larger ordeal, so this is just the first step in
getting there. In order to both set example and avoid large cycles the app
feature has been refactored to not have an idex.js itself.