tobiasKaminsky 11 жил өмнө
parent
commit
eada18d017

+ 42 - 8
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@ -22,13 +22,16 @@ import java.util.Vector;
 
 import android.accounts.Account;
 import android.content.Context;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.media.ThumbnailUtils;
+import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.GridView;
 import android.widget.ImageView;
 import android.widget.ListAdapter;
 import android.widget.ListView;
@@ -42,6 +45,7 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.ui.activity.ComponentsGetter;
 import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.Log_OC;
 
 
 /**
@@ -104,16 +108,44 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 
     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
+     // decide image vs. file view
+        double count = 0;
+        
+        
+        for (OCFile file : mFiles){
+            if (file.isImage()){
+                count++;
+            }
+        }
+        
+        // > 50% Images --> image view
+        boolean fileView = true;
+        if ((count / mFiles.size()) >= 0.5){
+            Log_OC.i("FileListListAdapter", "Image View");
+            fileView = false;
+        } else {
+            Log_OC.i("FileListListAdapter", "File View");
+            fileView = true;
+        }
+        
         View view = convertView;
-        if (view == null) {
+//        if (view == null) {
             LayoutInflater inflator = (LayoutInflater) mContext
                     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-            view = inflator.inflate(R.layout.list_item, null);
-        }
+            if (fileView){
+                view = inflator.inflate(R.layout.list_item, null);
+            } else {
+                view = inflator.inflate(R.layout.image_item, null);
+                View frame = view.findViewById(R.id.imageItemFrame);
+                frame.setVisibility(View.GONE);
+            }
+//        }
+            view.invalidate();
     
         if (mFiles != null && mFiles.size() > position) {
             OCFile file = mFiles.get(position);
             TextView fileName = (TextView) view.findViewById(R.id.Filename);
+            if (!fileView){fileName.setVisibility(View.GONE);}
             String name = file.getFileName();
 
             fileName.setText(name);
@@ -156,8 +188,8 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                     view.findViewById(R.id.imageView3).setVisibility(View.VISIBLE);
                 }
                 
-                ListView parentList = (ListView)parent;
-                if (parentList.getChoiceMode() == ListView.CHOICE_MODE_NONE) { 
+                GridView parentList = (GridView)parent;
+                if (parentList.getChoiceMode() == GridView.CHOICE_MODE_NONE) { 
                     checkBoxV.setVisibility(View.GONE);
                 } else {
                     if (parentList.isItemChecked(position)) {
@@ -170,8 +202,11 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 
                 // generate Thumbnail if file is available local and image
                 if (file.isDown() && file.isImage()){
+                    // Converts dp to pixel
+                    Resources r = mContext.getResources();
+                    int px = (int) Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150, r.getDisplayMetrics()));
                     Bitmap bitmap = BitmapFactory.decodeFile(file.getStoragePath());
-                    fileIcon.setImageBitmap(ThumbnailUtils.extractThumbnail(bitmap, 50, 50));
+                    fileIcon.setImageBitmap(ThumbnailUtils.extractThumbnail(bitmap, px, px));
                 } else {
                     fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));  
                 }
@@ -181,9 +216,8 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                 }
             } 
             else {
-                
                 fileSizeV.setVisibility(View.INVISIBLE);
-                //fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength()));
+                fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength()));
                 lastModV.setVisibility(View.VISIBLE);
                 lastModV.setText(DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp()));
                 checkBoxV.setVisibility(View.GONE);