fetchUsers method

dynamic fetchUsers(
  1. bool fromSearch, {
  2. bool server = false,
})

Implementation

fetchUsers(bool fromSearch, {bool server = false}) async {
  if (Constants.enableContactSync) {
    var granted = await Permission.contacts.isGranted;
    if (!granted) {
      isPageLoading(false);
      return;
    }
  }
  var callConnectedUserList = <String>[];
  for (var value1 in callList) {
    callConnectedUserList.add(value1.userJid?.value ?? '');
  }
  if (await AppUtils.isNetConnected() || Constants.enableContactSync) {
    callback(FlyResponse response) async {
      if (response.isSuccess && response.hasData) {
        var data = response.data;
        mirrorFlyLog("userlist", data);
        var item = userListFromJson(data);
        var items = getFilteredList(callConnectedUserList, item.data);
        var list = <ProfileDetails>[];

        if (groupJid.value.checkNull().isNotEmpty) {
          await Future.forEach(items, (it) async {
            await Mirrorfly.isMemberOfGroup(
                    groupJid: groupJid.value.checkNull(),
                    userJid: it.jid.checkNull())
                .then((value) {
              mirrorFlyLog("item", value.toString());
              if (value == null || !value) {
                list.add(it);
              }
            });
          });
          if (_first) {
            _first = false;
            mainUsersList(list);
          }
          if (fromSearch) {
            if (!Constants.enableContactSync) {
              usersList(list);
              // if(usersList.length==20) pageNum += 1;
              scrollable.value = list.length == 20;
            } else {
              var userlist = mainUsersList.where((p0) => getName(p0)
                  .toString()
                  .toLowerCase()
                  .contains(_searchText.trim().toLowerCase()));
              usersList(userlist.toList());
              scrollable(false);
              /*for (var userDetail in mainUsersList) {
                if (userDetail.name.toString().toLowerCase().contains(_searchText.trim().toLowerCase())) {
                  usersList.add(userDetail);
                }
              }*/
            }
          } else {
            if (!Constants.enableContactSync) {
              usersList.addAll(list);
              // if(usersList.length==20) pageNum += 1;
              scrollable.value = list.length == 20;
            } else {
              usersList(list);
              scrollable(false);
            }
          }
          isPageLoading.value = false;
          usersList.refresh();
        } else {
          list.addAll(items);
          if (Constants.enableContactSync && fromSearch) {
            var userlist = mainUsersList.where((p0) => getName(p0)
                .toString()
                .toLowerCase()
                .contains(_searchText.trim().toLowerCase()));
            usersList(userlist.toList());
            /*for (var userDetail in mainUsersList) {
            if (userDetail.name.toString().toLowerCase().contains(_searchText.trim().toLowerCase())) {
              usersList.add(userDetail);
            }
          }*/
          }
          if (_first) {
            _first = false;
            mainUsersList(list);
          }
          if (fromSearch) {
            if (!Constants.enableContactSync) {
              usersList(list);
              // if(usersList.length==20) pageNum += 1;
              scrollable.value = list.length == 20;
            } else {
              var userlist = mainUsersList.where((p0) => getName(p0)
                  .toString()
                  .toLowerCase()
                  .contains(_searchText.trim().toLowerCase()));
              usersList(userlist.toList());
              scrollable(false);
              /*for (var userDetail in mainUsersList) {
                if (userDetail.name.toString().toLowerCase().contains(_searchText.trim().toLowerCase())) {
                  usersList.add(userDetail);
                }
              }*/
            }
          } else {
            if (!Constants.enableContactSync) {
              usersList.addAll(list);
              // if(usersList.length==20) pageNum += 1;
              scrollable.value = list.length == 20;
            } else {
              usersList(list);
              scrollable(false);
            }
          }
          isPageLoading.value = false;
          usersList.refresh();
        }
      } else {
        toToast(response.exception!.message.toString());
      }
    }

    (!Constants.enableContactSync)
        ? Mirrorfly.getUserList(
            page: pageNum, search: _searchText, flyCallback: callback)
        : Mirrorfly.getRegisteredUsers(
            fetchFromServer: false, flyCallback: callback);
    /*future.then((data) async {
      //Mirrorfly.getUserList(pageNum, _searchText).then((data) async {
      mirrorFlyLog("userlist", data);
      var item = userListFromJson(data);
      var items = getFilteredList(callConnectedUserList,item.data);
      var list = <ProfileDetails>[];

      if (groupJid.value.checkNull().isNotEmpty) {
        await Future.forEach(items, (it) async {
          await Mirrorfly.isMemberOfGroup(
              groupJid.value.checkNull(), it.jid.checkNull())
              .then((value) {
            mirrorFlyLog("item", value.toString());
            if (value == null || !value) {
              list.add(it);
            }
          });
        });
        if (_first) {
          _first = false;
          mainUsersList(list);
        }
        if (fromSearch) {
          if (!Constants.enableContactSync) {
            usersList(list);
            // if(usersList.length==20) pageNum += 1;
            scrollable.value = list.length == 20;
          } else {
            var userlist = mainUsersList.where((p0) => getName(p0)
                .toString()
                .toLowerCase()
                .contains(_searchText.trim().toLowerCase()));
            usersList(userlist.toList());
            scrollable(false);
            */ /*for (var userDetail in mainUsersList) {
                if (userDetail.name.toString().toLowerCase().contains(_searchText.trim().toLowerCase())) {
                  usersList.add(userDetail);
                }
              }*/ /*
          }
        } else {
          if (!Constants.enableContactSync) {
            usersList.addAll(list);
            // if(usersList.length==20) pageNum += 1;
            scrollable.value = list.length == 20;
          } else {
            usersList(list);
            scrollable(false);
          }
        }
        isPageLoading.value = false;
        usersList.refresh();
      } else {
        list.addAll(items);
        if (Constants.enableContactSync && fromSearch) {
          var userlist = mainUsersList.where((p0) => getName(p0)
              .toString()
              .toLowerCase()
              .contains(_searchText.trim().toLowerCase()));
          usersList(userlist.toList());
          */ /*for (var userDetail in mainUsersList) {
            if (userDetail.name.toString().toLowerCase().contains(_searchText.trim().toLowerCase())) {
              usersList.add(userDetail);
            }
          }*/ /*
        }
        if (_first) {
          _first = false;
          mainUsersList(list);
        }
        if (fromSearch) {
          if (!Constants.enableContactSync) {
            usersList(list);
            // if(usersList.length==20) pageNum += 1;
            scrollable.value = list.length == 20;
          } else {
            var userlist = mainUsersList.where((p0) => getName(p0)
                .toString()
                .toLowerCase()
                .contains(_searchText.trim().toLowerCase()));
            usersList(userlist.toList());
            scrollable(false);
            */ /*for (var userDetail in mainUsersList) {
                if (userDetail.name.toString().toLowerCase().contains(_searchText.trim().toLowerCase())) {
                  usersList.add(userDetail);
                }
              }*/ /*
          }
        } else {
          if (!Constants.enableContactSync) {
            usersList.addAll(list);
            // if(usersList.length==20) pageNum += 1;
            scrollable.value = list.length == 20;
          } else {
            usersList(list);
            scrollable(false);
          }
        }
        isPageLoading.value = false;
        usersList.refresh();
      }
    }).catchError((error) {
      debugPrint("Get User list error--> $error");
      toToast(error.toString());
    });*/
  } else {
    toToast(Constants.noInternetConnection);
  }
}