fetchUsers method

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

Implementation

fetchUsers(bool fromSearch,{bool server=false}) async {
  if(!MirrorflyUikit.instance.isTrialLicenceKey){
    var granted = await Permission.contacts.isGranted;
    if(!granted){
      isPageLoading(false);
      return;
    }
  }
  if (await AppUtils.isNetConnected() || !MirrorflyUikit.instance.isTrialLicenceKey) {
    var future = (MirrorflyUikit.instance.isTrialLicenceKey)
        ? Mirrorfly.getUserList(pageNum, _searchText)
        : Mirrorfly.getRegisteredUsers(false);
    future.then((data) async {
      //Mirrorfly.getUserList(pageNum, _searchText).then((data) async {
      mirrorFlyLog("userlist", data);
      var item = userListFromJson(data);
      var list = <Profile>[];

      if (groupJid.value.checkNull().isNotEmpty) {
        await Future.forEach(item.data!, (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 (MirrorflyUikit.instance.isTrialLicenceKey) {
            usersList(list);
            pageNum = 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 (MirrorflyUikit.instance.isTrialLicenceKey) {
            usersList.addAll(list);
            pageNum = pageNum + 1;
            scrollable.value = list.length == 20;
          } else {
            usersList(list);
            scrollable(false);
          }
        }
        isPageLoading.value = false;
        usersList.refresh();
      } else {
        list.addAll(item.data!);
        if (!MirrorflyUikit.instance.isTrialLicenceKey && 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 (MirrorflyUikit.instance.isTrialLicenceKey) {
            usersList(list);
            pageNum = 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 (MirrorflyUikit.instance.isTrialLicenceKey) {
            usersList.addAll(list);
            pageNum = 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(AppConstants.noInternetConnection);
  }
}