getCities method

Future<List<String?>> getCities()

get cities from json response

Implementation

Future<List<String?>> getCities() async {
  _cities.clear();
  var response = await getResponse();
  var takeCity = widget.flagState == CountryFlag.ENABLE ||
          widget.flagState == CountryFlag.SHOW_IN_DROP_DOWN_ONLY
      ? response
          .map((map) => Country.fromJson(map))
          .where(
              (item) => item.emoji + "    " + item.name == _selectedCountry)
          .map((item) => item.state)
          .toList()
      : response
          .map((map) => Country.fromJson(map))
          .where((item) => item.name == _selectedCountry)
          .map((item) => item.state)
          .toList();
  var cities = takeCity as List;
  cities.forEach((f) {
    var name = f.where((item) => item.name == _selectedState);
    var cityName = name.map((item) => item.city).toList();
    cityName.forEach((ci) {
      if (!mounted) return;
      setState(() {
        var citiesName = ci.map((item) => item.name).toList();
        for (var cityName in citiesName) {
          //print(cityName.toString());
          _cities.add(cityName.toString());
        }
      });
    });
  });
  _cities.sort((a, b) => a!.compareTo(b!));
  return _cities;
}