fixIssue static method
Fix a specific issue
Implementation
static Future<bool> fixIssue(
IssueModel issue, {
bool dryRun = false,
bool backup = false,
}) async {
if (!FileSystemUtils.fileExists(issue.filePath)) {
return false;
}
if (backup) {
await FileSystemUtils.backupFile(issue.filePath);
}
final fileContent = await FileSystemUtils.readFile(issue.filePath);
String updatedContent = fileContent;
if (issue.description.contains('Gradle version is outdated')) {
updatedContent = _updateGradleVersion(
fileContent,
issue.recommendedValue,
);
} else if (issue.description.contains(
'Android Gradle Plugin version is outdated',
)) {
updatedContent = _updateAgpVersion(fileContent, issue.recommendedValue);
} else if (issue.description.contains('compileSdkVersion')) {
updatedContent = _updateSdkVersion(
fileContent,
'compileSdk',
issue.recommendedValue,
);
} else if (issue.description.contains('minSdkVersion')) {
updatedContent = _updateSdkVersion(
fileContent,
'minSdk',
issue.recommendedValue,
);
} else if (issue.description.contains('targetSdkVersion')) {
updatedContent = _updateSdkVersion(
fileContent,
'targetSdk',
issue.recommendedValue,
);
} else if (issue.description.contains('jvmTarget')) {
updatedContent = _updateJvmTarget(fileContent, issue.recommendedValue);
} else {
return false;
}
if (updatedContent != fileContent) {
if (!dryRun) {
await FileSystemUtils.writeFile(issue.filePath, updatedContent);
}
return true;
}
return false;
}