|
@@ -18,6 +18,7 @@
|
|
|
|
|
|
package eu.alefzero.owncloud;
|
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
/**
|
|
@@ -27,8 +28,34 @@ import java.util.HashMap;
|
|
|
*
|
|
|
*/
|
|
|
public class DisplayUtils {
|
|
|
- public static String bitsToHumanReadable(long bitsLen) {
|
|
|
- double result = bitsLen;
|
|
|
+
|
|
|
+ private static final String[] suffixes = { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };
|
|
|
+
|
|
|
+ private static HashMap<String, String> mimeType2HUmanReadable;
|
|
|
+ static {
|
|
|
+ mimeType2HUmanReadable = new HashMap<String, String>();
|
|
|
+ // images
|
|
|
+ mimeType2HUmanReadable.put("image/jpeg", "JPEG image");
|
|
|
+ mimeType2HUmanReadable.put("image/jpg", "JPEG image");
|
|
|
+ mimeType2HUmanReadable.put("image/png", "PNG image");
|
|
|
+ mimeType2HUmanReadable.put("image/bmp", "Bitmap image");
|
|
|
+ mimeType2HUmanReadable.put("image/gif", "GIF image");
|
|
|
+ mimeType2HUmanReadable.put("image/svg+xml", "JPEG image");
|
|
|
+ mimeType2HUmanReadable.put("image/tiff", "TIFF image");
|
|
|
+ // music
|
|
|
+ mimeType2HUmanReadable.put("audio/mpeg", "MP3 music file");
|
|
|
+ mimeType2HUmanReadable.put("application/ogg", "OGG music file");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Converts the file size in bytes to human readable output.
|
|
|
+ *
|
|
|
+ * @param bytes Input file size
|
|
|
+ * @return Like something readable like "12 MB"
|
|
|
+ */
|
|
|
+ public static String bytesToHumanReadable(long bytes) {
|
|
|
+ double result = bytes;
|
|
|
int attachedsuff = 0;
|
|
|
while (result > 1024 && attachedsuff < suffixes.length) {
|
|
|
result /= 1024.;
|
|
@@ -38,7 +65,18 @@ public class DisplayUtils {
|
|
|
return result + " " + suffixes[attachedsuff];
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Removes special HTML entities from a string
|
|
|
+ *
|
|
|
+ * @param s Input string
|
|
|
+ * @return A cleaned version of the string
|
|
|
+ */
|
|
|
public static String HtmlDecode(String s) {
|
|
|
+ /*
|
|
|
+ * TODO: Perhaps we should use something more proven like:
|
|
|
+ * http://commons.apache.org/lang/api-2.6/org/apache/commons/lang/StringEscapeUtils.html#unescapeHtml%28java.lang.String%29
|
|
|
+ */
|
|
|
+
|
|
|
String ret = "";
|
|
|
for (int i = 0; i < s.length(); ++i) {
|
|
|
if (s.charAt(i) == '%') {
|
|
@@ -51,6 +89,13 @@ public class DisplayUtils {
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Converts MIME types like "image/jpg" to more end user friendly output
|
|
|
+ * like "JPG image".
|
|
|
+ *
|
|
|
+ * @param mimetype MIME type to convert
|
|
|
+ * @return A human friendly version of the MIME type
|
|
|
+ */
|
|
|
public static String convertMIMEtoPrettyPrint(String mimetype) {
|
|
|
if (mimeType2HUmanReadable.containsKey(mimetype)) {
|
|
|
return mimeType2HUmanReadable.get(mimetype);
|
|
@@ -58,23 +103,13 @@ public class DisplayUtils {
|
|
|
return mimetype.split("/")[1].toUpperCase() + " file";
|
|
|
}
|
|
|
|
|
|
- private static final String[] suffixes = { "B", "KB", "MB", "GB", "TB",
|
|
|
- "PB", "EB", "ZB", "YB" };
|
|
|
-
|
|
|
- private static HashMap<String, String> mimeType2HUmanReadable;
|
|
|
- static {
|
|
|
- mimeType2HUmanReadable = new HashMap<String, String>();
|
|
|
- // images
|
|
|
- mimeType2HUmanReadable.put("image/jpeg", "JPEG image");
|
|
|
- mimeType2HUmanReadable.put("image/jpg", "JPEG image");
|
|
|
- mimeType2HUmanReadable.put("image/png", "PNG image");
|
|
|
- mimeType2HUmanReadable.put("image/bmp", "Bitmap image");
|
|
|
- mimeType2HUmanReadable.put("image/gif", "GIF image");
|
|
|
- mimeType2HUmanReadable.put("image/svg+xml", "JPEG image");
|
|
|
- mimeType2HUmanReadable.put("image/tiff", "TIFF image");
|
|
|
- // music
|
|
|
- mimeType2HUmanReadable.put("audio/mpeg", "MP3 music file");
|
|
|
- mimeType2HUmanReadable.put("application/ogg", "OGG music file");
|
|
|
-
|
|
|
+ /**
|
|
|
+ * Converts Unix time to human readable format
|
|
|
+ * @param miliseconds that have passed since 01/01/1970
|
|
|
+ * @return The human readable time for the users locale
|
|
|
+ */
|
|
|
+ public static String unixTimeToHumanReadable(long milliseconds) {
|
|
|
+ Date date = new Date(milliseconds);
|
|
|
+ return date.toLocaleString();
|
|
|
}
|
|
|
}
|