getAllVersions method

Future<List<CacheFlutterVersion>> getAllVersions()

Lists Installed Flutter SDK Version

Implementation

Future<List<CacheFlutterVersion>> getAllVersions() async {
  final versionsDir = Directory(context.versionsCachePath);
  // Returns empty array if directory does not exist
  if (!await versionsDir.exists()) return [];

  final versions = await versionsDir.list().toList();

  final cacheVersions = <CacheFlutterVersion>[];

  for (var version in versions) {
    if (version.path.isDir()) {
      final name = path.basename(version.path);
      final cacheVersion = getVersion(FlutterVersion.parse(name));

      if (cacheVersion != null) {
        cacheVersions.add(cacheVersion);
      }
    }
  }

  cacheVersions.sort((a, b) => a.compareTo(b));

  return cacheVersions.reversed.toList();
}