group change data and size together and calculate decimals based on total size see...
authorAndy Scherzinger <info@andy-scherzinger.de>
Fri, 14 Aug 2015 08:05:26 +0000 (10:05 +0200)
committerAndy Scherzinger <info@andy-scherzinger.de>
Fri, 14 Aug 2015 08:05:26 +0000 (10:05 +0200)
res/layout/list_item.xml
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/adapter/LocalFileListAdapter.java
src/com/owncloud/android/utils/DisplayUtils.java

index 24bbec7..a3918c7 100644 (file)
         android:orientation="horizontal">\r
 \r
         <FrameLayout\r
-            android:layout_width="64dp"\r
+            android:layout_width="60dp"\r
             android:layout_height="72dp"\r
             android:paddingLeft="@dimen/standard_padding"\r
             android:paddingBottom="@dimen/standard_padding"\r
             android:paddingTop="@dimen/standard_padding"\r
-            android:paddingRight="8dp"\r
+            android:paddingRight="4dp"\r
             android:focusable="false"\r
             android:focusableInTouchMode="false">\r
 \r
                 android:layout_height="wrap_content"\r
                 android:layout_marginLeft="0dp"\r
                 android:layout_marginRight="4dp"\r
-                android:weightSum="1">\r
+                android:orientation="horizontal">\r
 \r
                 <TextView\r
                     android:id="@+id/last_mod"\r
                     android:layout_width="wrap_content"\r
                     android:layout_height="wrap_content"\r
                     android:text="TextView"\r
-                    android:layout_weight=".5"\r
+                    android:textColor="@color/list_item_lastmod_and_filesize_text"\r
+                    android:textSize="@dimen/two_line_secondary_text_size"/>\r
+\r
+                <TextView\r
+                    android:id="@+id/file_separator"\r
+                    android:layout_width="wrap_content"\r
+                    android:layout_height="wrap_content"\r
+                    android:gravity="right"\r
+                    android:text=", "\r
                     android:textColor="@color/list_item_lastmod_and_filesize_text"\r
                     android:textSize="@dimen/two_line_secondary_text_size"/>\r
 \r
                     android:gravity="right"\r
                     android:text="TextView"\r
                     android:textColor="@color/list_item_lastmod_and_filesize_text"\r
-                    android:layout_weight=".5"\r
                     android:textSize="@dimen/two_line_secondary_text_size"/>\r
 \r
             </LinearLayout>\r
index baa2932..f839c23 100644 (file)
@@ -192,6 +192,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
             switch (viewType){\r
                 case LIST_ITEM:\r
                     TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);\r
+                    TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);\r
                     TextView lastModV = (TextView) view.findViewById(R.id.last_mod);\r
                     ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
 \r
@@ -200,6 +201,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 \r
                     checkBoxV.setVisibility(View.GONE);\r
 \r
+                    fileSizeSeparatorV.setVisibility(View.VISIBLE);\r
                     fileSizeV.setVisibility(View.VISIBLE);\r
                     fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength()));\r
 \r
@@ -221,6 +223,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                         }\r
 \r
                     } else { //Folder\r
+                        fileSizeSeparatorV.setVisibility(View.INVISIBLE);\r
                         fileSizeV.setVisibility(View.INVISIBLE);\r
                     }\r
 \r
index 06745f8..d8abc66 100644 (file)
@@ -111,9 +111,11 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
             fileIcon.setTag(file.hashCode());
 
             TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);
+            TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);
             TextView lastModV = (TextView) view.findViewById(R.id.last_mod);
             ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);
             if (!file.isDirectory()) {
+                fileSizeSeparatorV.setVisibility(View.VISIBLE);
                 fileSizeV.setVisibility(View.VISIBLE);
                 fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.length()));
 
@@ -163,6 +165,7 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
                 }  
 
             } else {
+                fileSizeSeparatorV.setVisibility(View.GONE);
                 fileSizeV.setVisibility(View.GONE);
                 lastModV.setVisibility(View.GONE);
                 checkBoxV.setVisibility(View.GONE);
index 7030c87..d81fe78 100644 (file)
@@ -22,6 +22,7 @@
 \r
 package com.owncloud.android.utils;\r
 \r
+import java.math.BigDecimal;\r
 import java.net.IDN;\r
 import java.text.DateFormat;\r
 import java.util.Arrays;\r
@@ -55,6 +56,7 @@ public class DisplayUtils {
     //private static String TAG = DisplayUtils.class.getSimpleName(); \r
     \r
     private static final String[] sizeSuffixes = { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };\r
+    private static final int[] sizeScales = { 0, 0, 0, 1, 1, 2, 2, 2, 2 };\r
 \r
     private static HashMap<String, String> mimeType2HUmanReadable;\r
     static {\r
@@ -114,7 +116,11 @@ public class DisplayUtils {
     \r
     /**\r
      * Converts the file size in bytes to human readable output.\r
-     * \r
+     * <ul>\r
+     *     <li>appends a size suffix, e.g. B, KB, MB etc.</li>\r
+     *     <li>rounds the size based on the suffix to 0,1 or 2 decimals</li>\r
+     * </ul>\r
+     *\r
      * @param bytes Input file size\r
      * @return Like something readable like "12 MB"\r
      */\r
@@ -125,8 +131,9 @@ public class DisplayUtils {
             result /= 1024.;\r
             attachedsuff++;\r
         }\r
-        result = ((int) (result * 100)) / 100.;\r
-        return result + " " + sizeSuffixes[attachedsuff];\r
+\r
+        return new BigDecimal(result).setScale(\r
+                sizeScales[attachedsuff], BigDecimal.ROUND_HALF_UP) + " " + sizeSuffixes[attachedsuff];\r
     }\r
 \r
     /**\r