X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/5116bd99e26954fb83621863ff26e351d0a08cfd..afaa2879d192be067cae523b51dad75d89a6c6cb:/src/com/owncloud/android/utils/DisplayUtils.java?ds=sidebyside diff --git a/src/com/owncloud/android/utils/DisplayUtils.java b/src/com/owncloud/android/utils/DisplayUtils.java index e22b6de8..7030c87f 100644 --- a/src/com/owncloud/android/utils/DisplayUtils.java +++ b/src/com/owncloud/android/utils/DisplayUtils.java @@ -1,6 +1,10 @@ -/* ownCloud Android client application +/** + * ownCloud Android client application + * + * @author Bartek Przybylski + * @author David A. Velasco * Copyright (C) 2011 Bartek Przybylski - * Copyright (C) 2012-2013 ownCloud Inc. + * Copyright (C) 2015 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -29,9 +33,12 @@ import java.util.Set; import java.util.Vector; import android.annotation.TargetApi; +import android.app.Activity; import android.content.Context; +import android.graphics.Point; import android.os.Build; import android.text.format.DateUtils; +import android.view.Display; import android.webkit.MimeTypeMap; import com.owncloud.android.MainApp; @@ -40,9 +47,6 @@ import com.owncloud.android.datamodel.OCFile; /** * A helper class for some string operations. - * - * @author Bartek Przybylski - * @author David A. Velasco */ public class DisplayUtils { @@ -52,8 +56,6 @@ public class DisplayUtils { private static final String[] sizeSuffixes = { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" }; - private final static Double THUMBNAIL_THRESHOLD = 0.5; - private static HashMap mimeType2HUmanReadable; static { mimeType2HUmanReadable = new HashMap(); @@ -258,26 +260,33 @@ public class DisplayUtils { */ @TargetApi(Build.VERSION_CODES.GINGERBREAD) public static String convertIdn(String url, boolean toASCII) { - + + String urlNoDots = url; + String dots=""; + while (urlNoDots.startsWith(".")) { + urlNoDots = url.substring(1); + dots = dots + "."; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { // Find host name after '//' or '@' int hostStart = 0; - if (url.indexOf("//") != -1) { + if (urlNoDots.indexOf("//") != -1) { hostStart = url.indexOf("//") + "//".length(); } else if (url.indexOf("@") != -1) { hostStart = url.indexOf("@") + "@".length(); } - + int hostEnd = url.substring(hostStart).indexOf("/"); // Handle URL which doesn't have a path (path is implicitly '/') - hostEnd = (hostEnd == -1 ? url.length() : hostStart + hostEnd); - - String host = url.substring(hostStart, hostEnd); + hostEnd = (hostEnd == -1 ? urlNoDots.length() : hostStart + hostEnd); + + String host = urlNoDots.substring(hostStart, hostEnd); host = (toASCII ? IDN.toASCII(host) : IDN.toUnicode(host)); - - return url.substring(0, hostStart) + host + url.substring(hostEnd); + + return dots + urlNoDots.substring(0, hostStart) + host + urlNoDots.substring(hostEnd); } else { - return url; + return dots + url; } } @@ -344,30 +353,24 @@ public class DisplayUtils { return path; } + /** + * Gets the screen size in pixels in a backwards compatible way * - * @param mFiles - * @return true: imageView, false: listView + * @param caller Activity calling; needed to get access to the {@link android.view.WindowManager} + * @return Size in pixels of the screen, or default {@link Point} if caller is null */ - public static boolean decideViewLayout(Vector mFiles){ - // decide image vs. file view - double countImages = 0; - double countFiles = 0; - - for (OCFile file : mFiles){ - if (!file.isFolder()){ - countFiles++; - - if (file.isImage()){ - countImages++; - } + public static Point getScreenSize(Activity caller) { + Point size = new Point(); + if (caller != null) { + Display display = caller.getWindowManager().getDefaultDisplay(); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB_MR2) { + display.getSize(size); + } else { + size.set(display.getWidth(), display.getHeight()); } } - - if ((countImages / countFiles) >= THUMBNAIL_THRESHOLD){ - return true; - } else { - return false; - } + return size; } + }