]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/util/Utils.java
Extract MimeUtils
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / util / Utils.java
index c50988a1f2801bcb6f4767a72521f11f9994d610..4be7c39a102965aa4513e1e553a6ea5b24a3e9db 100644 (file)
@@ -9,16 +9,13 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.whispersystems.signalservice.api.util.StreamDetails;
 
-import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URLConnection;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -34,19 +31,6 @@ public class Utils {
 
     private final static Logger logger = LoggerFactory.getLogger(Utils.class);
 
-    public static String getFileMimeType(final File file, final String defaultMimeType) throws IOException {
-        var mime = Files.probeContentType(file.toPath());
-        if (mime == null) {
-            try (final InputStream bufferedStream = new BufferedInputStream(new FileInputStream(file))) {
-                mime = URLConnection.guessContentTypeFromStream(bufferedStream);
-            }
-        }
-        if (mime == null) {
-            return defaultMimeType;
-        }
-        return mime;
-    }
-
     public static Pair<StreamDetails, Optional<String>> createStreamDetailsFromDataURI(final String dataURI) {
         final DataURI uri = DataURI.of(dataURI);
 
@@ -57,7 +41,7 @@ public class Utils {
     public static StreamDetails createStreamDetailsFromFile(final File file) throws IOException {
         final InputStream stream = new FileInputStream(file);
         final var size = file.length();
-        final var mime = getFileMimeType(file, "application/octet-stream");
+        final var mime = MimeUtils.getFileMimeType(file).orElse(MimeUtils.OCTET_STREAM);
         return new StreamDetails(stream, mime, size);
     }