mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-22 12:59:21 +00:00
Avoid a user to appear in its own friends list
This commit is contained in:
parent
6528ef5bc2
commit
f8ba06d0ae
@ -30,11 +30,12 @@ class _OtherUserFriendsListScreenState
|
||||
final FriendsHelper friendsHelper = FriendsHelper();
|
||||
final UsersHelper usersHelper = UsersHelper();
|
||||
|
||||
UsersList _list;
|
||||
Set<int> _friendsList;
|
||||
UsersList _usersInfo;
|
||||
bool _error = false;
|
||||
|
||||
String get _routeName => tr("Friends of %name%",
|
||||
args: {"name": _list.getUser(widget.userID).displayName});
|
||||
args: {"name": _usersInfo.getUser(widget.userID).displayName});
|
||||
|
||||
void setError(bool e) => setState(() => _error = e);
|
||||
|
||||
@ -49,12 +50,15 @@ class _OtherUserFriendsListScreenState
|
||||
setError(false);
|
||||
|
||||
try {
|
||||
final list = await usersHelper
|
||||
.getListWithThrow(await friendsHelper.getOtherUserList(widget.userID)
|
||||
..add(widget.userID));
|
||||
final friendsList = await friendsHelper.getOtherUserList(widget.userID);
|
||||
|
||||
// We use [Set.toSet] here to avoid the current user to appear in the list
|
||||
final users = await usersHelper
|
||||
.getListWithThrow(friendsList.toSet()..add(widget.userID));
|
||||
|
||||
setState(() {
|
||||
_list = list;
|
||||
_friendsList = friendsList;
|
||||
_usersInfo = users;
|
||||
});
|
||||
} catch (e, st) {
|
||||
print(e);
|
||||
@ -67,16 +71,16 @@ class _OtherUserFriendsListScreenState
|
||||
Widget build(BuildContext context) {
|
||||
if (_error) return _buildError();
|
||||
|
||||
if (_list == null) return buildCenteredProgressBar();
|
||||
if (_usersInfo == null) return buildCenteredProgressBar();
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text(_routeName),
|
||||
),
|
||||
body: ListView.builder(
|
||||
itemCount: _list.length,
|
||||
itemCount: _friendsList.length,
|
||||
itemBuilder: (c, i) => SimpleUserTile(
|
||||
user: _list[i],
|
||||
user: _usersInfo.getUser(_friendsList.elementAt(i)),
|
||||
onTap: (u) => openUserPage(
|
||||
context: context,
|
||||
userID: u.id,
|
||||
|
Loading…
Reference in New Issue
Block a user