filterUserList method

Future<void> filterUserList()

Implementation

Future<void> filterUserList() async {
  if (await AppUtils.isNetConnected()) {
    searching = true;
    callback(FlyResponse response) {
      // Mirrorfly.getUserList(pageNum, search.text.trim().toString()).then((value) {
      if (response.isSuccess) {
        if (response.hasData) {
          var list = userListFromJson(response.data);
          if (list.data != null) {
            if (!Constants.enableContactSync) {
              scrollable(list.data!.length == 20);

              list.data!.removeWhere((element) {
                debugPrint(
                    "filter chat list--> ${!filteredRecentChatList.indexWhere((recentChatItem) => recentChatItem.jid == element.jid.checkNull()).isNegative}");
                return !filteredRecentChatList
                    .indexWhere((recentChatItem) =>
                        recentChatItem.jid == element.jid.checkNull())
                    .isNegative;
              });
              _userList(list.data);
            } else {
              _userList(list.data!
                  .where((element) =>
                      (element.nickName.checkNull().toLowerCase().contains(
                          search.text.trim().toString().toLowerCase())) &&
                      !filteredRecentChatList
                          .indexWhere((recentChatItem) =>
                              recentChatItem.jid != element.jid.checkNull())
                          .isNegative)
                  .toList());
              // scrollable(false);
            }
          } else {
            scrollable(false);
          }
        }
        searching = false;
        searchLoading(false);
      } else {
        searching = false;
        searchLoading(false);
      }
    }

    (!Constants.enableContactSync)
        ? Mirrorfly.getUserList(
            page: pageNum,
            search: search.text.trim().toString(),
            flyCallback: callback)
        : Mirrorfly.getRegisteredUsers(
            fetchFromServer: true, flyCallback: callback);
  } else {
    toToast(AppConstants.noInternetConnection);
  }
}