Fix directory icons [release]

This commit is contained in:
crschnick 2023-11-22 06:53:00 +00:00
parent d561ea89f3
commit 7c14674754

View file

@ -1,7 +1,6 @@
package io.xpipe.app.browser.icon; package io.xpipe.app.browser.icon;
import io.xpipe.app.core.AppResources; import io.xpipe.app.core.AppResources;
import io.xpipe.core.store.FileNames;
import io.xpipe.core.store.FileKind; import io.xpipe.core.store.FileKind;
import io.xpipe.core.store.FileSystem; import io.xpipe.core.store.FileSystem;
import lombok.Getter; import lombok.Getter;
@ -10,9 +9,8 @@ import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays; import java.util.stream.Collectors;
import java.util.List;
public interface DirectoryType { public interface DirectoryType {
@ -53,18 +51,9 @@ public interface DirectoryType {
var id = split[0].trim(); var id = split[0].trim();
var filter = Arrays.stream(split[1].split(",")) var filter = Arrays.stream(split[1].split(","))
.map(s -> { .map(s -> {
var r = s.trim(); return s.trim();
if (r.startsWith(".")) {
return r;
}
if (r.contains(".")) {
return r;
}
return "." + r;
}) })
.toList(); .collect(Collectors.toSet());
var closedIcon = split[2].trim(); var closedIcon = split[2].trim();
var openIcon = split[3].trim(); var openIcon = split[3].trim();
@ -76,7 +65,7 @@ public interface DirectoryType {
id, id,
new IconVariant(lightClosedIcon, closedIcon), new IconVariant(lightClosedIcon, closedIcon),
new IconVariant(lightOpenIcon, openIcon), new IconVariant(lightOpenIcon, openIcon),
filter.toArray(String[]::new))); filter));
} }
} }
}); });
@ -89,9 +78,9 @@ public interface DirectoryType {
private final IconVariant closed; private final IconVariant closed;
private final IconVariant open; private final IconVariant open;
private final String[] names; private final Set<String> names;
public Simple(String id, IconVariant closed, IconVariant open, String... names) { public Simple(String id, IconVariant closed, IconVariant open, Set<String> names) {
this.id = id; this.id = id;
this.closed = closed; this.closed = closed;
this.open = open; this.open = open;
@ -104,8 +93,7 @@ public interface DirectoryType {
return false; return false;
} }
return Arrays.stream(names) return names.contains(entry.getName());
.anyMatch(name -> FileNames.getFileName(entry.getPath()).equalsIgnoreCase(name));
} }
@Override @Override