Force refreshing version list when remove version from disk

This commit is contained in:
huanghongxun 2019-04-25 13:39:07 +08:00
parent c209617ee7
commit 1956ba7a73
2 changed files with 22 additions and 20 deletions

View File

@ -50,9 +50,7 @@ public class Versions {
isMovingToTrashSupported ? i18n("version.manage.remove.confirm.trash", version, version + "_removed") :
i18n("version.manage.remove.confirm", version);
Controllers.confirmDialog(message, i18n("message.confirm"), () -> {
if (profile.getRepository().removeVersionFromDisk(version)) {
profile.getRepository().refreshVersionsAsync().start();
}
profile.getRepository().removeVersionFromDisk(version);
}, null);
}

View File

@ -166,25 +166,29 @@ public class DefaultGameRepository implements GameRepository {
if (!file.renameTo(removedFile))
return false;
versions.remove(id);
if (FileUtils.isMovingToTrashSupported() && FileUtils.moveToTrash(removedFile)) {
return true;
}
// remove json files first to ensure HMCL will not recognize this folder as a valid version.
List<File> jsons = FileUtils.listFilesByExtension(removedFile, "json");
jsons.forEach(f -> {
if (!f.delete())
LOG.warning("Unable to delete file " + f);
});
// remove the version from version list regardless of whether the directory was removed successfully or not.
try {
FileUtils.deleteDirectory(removedFile);
} catch (IOException e) {
LOG.log(Level.WARNING, "Unable to remove version folder: " + file, e);
versions.remove(id);
if (FileUtils.isMovingToTrashSupported() && FileUtils.moveToTrash(removedFile)) {
return true;
}
// remove json files first to ensure HMCL will not recognize this folder as a valid version.
List<File> jsons = FileUtils.listFilesByExtension(removedFile, "json");
jsons.forEach(f -> {
if (!f.delete())
LOG.warning("Unable to delete file " + f);
});
// remove the version from version list regardless of whether the directory was removed successfully or not.
try {
FileUtils.deleteDirectory(removedFile);
} catch (IOException e) {
LOG.log(Level.WARNING, "Unable to remove version folder: " + file, e);
}
return true;
} finally {
refreshVersionsAsync().start();
}
return true;
}
protected void refreshVersionsImpl() {