From ad568d2b9fd79552fb13b8f54b42b650d558e8ee Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Wed, 22 Aug 2018 02:08:49 +0800 Subject: [PATCH] Fix #429 --- .../org/jackhuang/hmcl/ui/download/VersionsPage.java | 6 +++--- .../java/org/jackhuang/hmcl/download/VersionList.java | 2 +- .../jackhuang/hmcl/download/game/GameVersionList.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java index a04987add..3222ef225 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPage.java @@ -47,7 +47,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh private final DownloadProvider downloadProvider; private final String libraryId; private final String title; - private final Runnable callback; + private final WizardController controller; @FXML private JFXListView list; @@ -77,7 +77,7 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh this.gameVersion = gameVersion; this.downloadProvider = downloadProvider; this.libraryId = libraryId; - this.callback = callback; + this.controller = controller; this.versionList = downloadProvider.getVersionListById(libraryId); FXUtils.loadFXML(this, "/assets/fxml/download/versions.fxml"); @@ -160,5 +160,5 @@ public final class VersionsPage extends StackPane implements WizardPage, Refresh } @FXML - private void onBack() { callback.run(); } + private void onBack() { controller.onPrev(true); } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java index 34d8670cc..475dafafa 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/VersionList.java @@ -70,7 +70,7 @@ public abstract class VersionList { }); } - private Collection getVersionsImpl(String gameVersion) { + protected Collection getVersionsImpl(String gameVersion) { lock.readLock().lock(); try { return versions.get(gameVersion); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java index 3c4a65e37..d2cd174b3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/GameVersionList.java @@ -44,6 +44,16 @@ public final class GameVersionList extends VersionList { return true; } + @Override + protected Collection getVersionsImpl(String gameVersion) { + lock.readLock().lock(); + try { + return versions.values(); + } finally { + lock.readLock().unlock(); + } + } + @Override public Task refreshAsync(DownloadProvider downloadProvider) { GetTask task = new GetTask(NetworkUtils.toURL(downloadProvider.getVersionListURL()));