Splits a Room's member list in 2 showing pending invitees first and then the actual room member.
This simple user facing change entails a host of under the hood changes:
- It copies the logic from the `userlist` module and merges it into the `roomdetails` module removing all details not related to the member list (e.g. gets rid of multiple selection, debouncing etc.).
- Uncouples the `roomdetails` module from the `userlist` one. Now leaving only the `createroom` module to depend on the `userlist` module. Therefore the `userlist` module could be in the future completely removed and merged into the `createroom` module.
- Changes the room members count in the room details screen to only show the members who have joined (i.e. don't count those still in the invited state).
Missed ACs:
- This change does not make the member list live update. Discussion is ongoing on how to make this technically feasible.
Parent issue:
- https://github.com/vector-im/element-x-android/issues/246
Fix a few FFI leaks
These are instances where we obtain an FFIObject and don't call
Close on it to release the underlying reference on the Rust side.
The worst instance here was leaking an object per room member
every time we refreshed the member list
This change, together with enabling the "Require review from Code Owners" option in the Github's branch protection rule will effectively auto assign a reviewer to any non-draft PR.
Fix warning:
WARNING: The build will use lint version 8.0.0 which is older than the default.
Recommendation: Remove or update the gradle property android.experimental.lint.version to be at least 8.0.1