若背景自定义路径是文件夹 则随机在文件夹选取图片展示 (#5769)

Co-authored-by: Glavo <[email protected]>
This commit is contained in:
辞庐andGlavo authored and GitHub committed 2026-03-13 22:05:43 +08:00
1 parent f51f982f80
commit 5e18c0aad4
1 file changed
+9 -7
@@ -57,13 +57,12 @@ import org.jetbrains.annotations.Nullable;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.ArrayList;
import java.util.Locale;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static java.util.stream.Collectors.toList;
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
import static org.jackhuang.hmcl.ui.FXUtils.onEscPressed;
@@ -194,7 +193,10 @@ public class DecoratorController {
String backgroundImage = config().getBackgroundImage();
if (backgroundImage != null)
try {
image = tryLoadImage(Paths.get(backgroundImage));
Path path = Path.of(backgroundImage);
image = Files.isDirectory(path)
? randomImageIn(path)
: tryLoadImage(path);
} catch (Exception e) {
LOG.warning("Couldn't load background image", e);
}
@@ -300,14 +302,14 @@ public class DecoratorController {
return null;
}
List<Path> candidates;
ArrayList<Path> candidates;
try (Stream<Path> stream = Files.list(imageDir)) {
candidates = stream
.filter(it -> FXUtils.IMAGE_EXTENSIONS.contains(getExtension(it).toLowerCase(Locale.ROOT)))
.filter(Files::isReadable)
.collect(toList());
.collect(Collectors.toCollection(ArrayList::new));
} catch (IOException e) {
LOG.warning("Failed to list files in ./bg", e);
LOG.warning("Failed to list files in " + imageDir, e);
return null;
}