getMinSdkVersion method

int? getMinSdkVersion()

Gets the current minSdkVersion from the build.gradle file.

Implementation

int? getMinSdkVersion() {
  final gradleFile = File(_buildGradlePath);
  final gradleKtsFile = File(_buildGradleKtsPath);

  File targetFile;
  bool isKotlinDsl = false;

  if (gradleFile.existsSync()) {
    targetFile = gradleFile;
  } else if (gradleKtsFile.existsSync()) {
    targetFile = gradleKtsFile;
    isKotlinDsl = true;
  } else {
    return null;
  }

  try {
    final content = targetFile.readAsStringSync();

    final patterns = isKotlinDsl
        ? [
            RegExp(r'minSdk\s*=\s*(\d+)'),
            RegExp(r'minSdkVersion\s*\(\s*(\d+)\s*\)'),
          ]
        : [
            RegExp(r'minSdkVersion\s+(\d+)'),
            RegExp(r'minSdkVersion\s*=\s*(\d+)'),
          ];

    for (final pattern in patterns) {
      final match = pattern.firstMatch(content);
      if (match != null) {
        return int.tryParse(match.group(1) ?? '');
      }
    }

    return null;
  } catch (_) {
    return null;
  }
}