getAll static method

List<Currency> getAll()

Get full list

Implementation

// By taking into account localization specifics
// And pinned list of currencies
static List<Currency> getAll() {
  init();
  final result = _currencies.values.toList(growable: false);
  if (CurrencyDefaults.defaultLocale?.languageCode == 'de') {
    result.sort((a, b) => a.name.compareTo(b.name));
  }
  final pin = getTop();
  if (pin != null) {
    final clone = result.map((v) => v.code).toList();
    result.sort((a, b) {
      if (a.code == b.code) {
        return 0;
      }
      final ia = pin.indexOf(a.code);
      final ib = pin.indexOf(b.code);
      if (ia == ib) {
        return clone.indexOf(a.code) > clone.indexOf(b.code) ? 1 : -1;
      }
      if (ia >= 0 && ib >= 0) {
        return ia > ib ? 1 : -1;
      }
      return ia > ib ? -1 : 1;
    });
  }
  return result;
}