Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,14 @@
import org.jackhuang.hmcl.util.versioning.GameVersionNumber;
import org.jetbrains.annotations.Nullable;

import java.io.IOException;
import java.nio.file.Path;
import java.util.*;
import java.util.stream.Stream;

import static org.jackhuang.hmcl.ui.FXUtils.onEscPressed;
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
import static org.jackhuang.hmcl.util.logging.Logger.LOG;

public class DownloadPage extends Control implements DecoratorPage {
private final ReadOnlyObjectWrapper<State> state = new ReadOnlyObjectWrapper<>();
Expand Down Expand Up @@ -583,13 +585,21 @@ private void loadDependencies(RemoteAddon.Version version, DownloadPage selfPage
dependencies.put(dependency.getType(), Pair.pair(title, list));
}

queue.add(Task.supplyAsync(Schedulers.io(), () -> dependency.load(selfPage.page.getDownloadProvider()))
queue.add(Task.supplyAsync(Schedulers.io(), () -> {
try {
return dependency.load(selfPage.page.getDownloadProvider());
} catch (IOException e) {
Comment thread
ToobLac marked this conversation as resolved.
Outdated
LOG.warning("Failed to resolve dependency: " + dependency.getId(), e);
return RemoteAddon.BROKEN;
}
})
.setSignificance(Task.TaskSignificance.MINOR)
.thenAcceptAsync(Schedulers.javafx(), dep -> {
if (dep == RemoteAddon.BROKEN) {
return;
}
DependencyAddonItem dependencyAddonItem = new DependencyAddonItem(selfPage.page, dep, selfPage.instanceReference);
FXUtils.onChangeAndOperate(dependenciesList.widthProperty(), d -> FXUtils.setLimitWidth(dependencyAddonItem, d.doubleValue()));
Comment thread
ToobLac marked this conversation as resolved.
Outdated
Comment thread
ToobLac marked this conversation as resolved.
Outdated
dependencies.get(dependency.getType()).value().add(dependencyAddonItem);
})
.setSignificance(Task.TaskSignificance.MINOR));
Expand Down