From 0a3f3e75e01a95ba0393e651ea5ad7ba40f2ceed Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Wed, 29 Apr 2026 20:19:17 +0200 Subject: [PATCH] some refactor --- .../kfmanager/service/FileOperations.java | 32 +++++++------------ .../kamma/kfmanager/service/FtpService.java | 1 - .../java/cz/kamma/kfmanager/ui/FilePanel.java | 3 -- 3 files changed, 11 insertions(+), 25 deletions(-) diff --git a/src/main/java/cz/kamma/kfmanager/service/FileOperations.java b/src/main/java/cz/kamma/kfmanager/service/FileOperations.java index b925698..f12a3ec 100644 --- a/src/main/java/cz/kamma/kfmanager/service/FileOperations.java +++ b/src/main/java/cz/kamma/kfmanager/service/FileOperations.java @@ -887,27 +887,7 @@ public class FileOperations { } boolean contentMatched = true; if (nameMatched && contentPattern != null) { - final SevenZFile szfFinal = sevenZFile; - InputStream is = new InputStream() { - @Override - public int read() throws IOException { - try { - return szfFinal.read(); - } catch (PasswordRequiredException e) { - throw new IOException("Password required", e); - } - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - try { - return szfFinal.read(b, off, len); - } catch (PasswordRequiredException e) { - throw new IOException("Password required", e); - } - } - }; - contentMatched = searchInStream(is, contentPattern); + contentMatched = searchInSevenZEntry(sevenZFile, contentPattern); } if (nameMatched && contentMatched) { callback.onFileFound(archive, archive.getAbsolutePath() + File.separator + entry.getName()); @@ -967,6 +947,16 @@ public class FileOperations { } catch (Exception ignore) {} return false; } + + private static boolean searchInSevenZEntry(SevenZFile sevenZFile, Pattern contentPattern) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buffer = new byte[65536]; + int len; + while ((len = sevenZFile.read(buffer)) > 0) { + baos.write(buffer, 0, len); + } + return contentPattern.matcher(new String(baos.toByteArray())).find(); + } /** * Zip files/directories into a target zip file diff --git a/src/main/java/cz/kamma/kfmanager/service/FtpService.java b/src/main/java/cz/kamma/kfmanager/service/FtpService.java index 714441e..461f2f3 100644 --- a/src/main/java/cz/kamma/kfmanager/service/FtpService.java +++ b/src/main/java/cz/kamma/kfmanager/service/FtpService.java @@ -10,7 +10,6 @@ import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; import java.io.*; -import java.text.SimpleDateFormat; import java.util.*; /** diff --git a/src/main/java/cz/kamma/kfmanager/ui/FilePanel.java b/src/main/java/cz/kamma/kfmanager/ui/FilePanel.java index 27d0cdd..572d7f9 100644 --- a/src/main/java/cz/kamma/kfmanager/ui/FilePanel.java +++ b/src/main/java/cz/kamma/kfmanager/ui/FilePanel.java @@ -729,9 +729,6 @@ public class FilePanel extends JPanel { */ public void setActive(boolean active, Color activeColor) { this.active = active; - // Inactive indicator is subtle dark gray - Color inactiveColor = new Color(60, 60, 60); - Color targetColor = active ? activeColor : inactiveColor; // Remove the horizontal line above tabs. tabbedPane.setBorder(null);