- initial image grid
authortobiasKaminsky <tobias@kaminsky.me>
Thu, 6 Nov 2014 07:17:35 +0000 (08:17 +0100)
committertobiasKaminsky <tobias@kaminsky.me>
Thu, 6 Nov 2014 07:17:35 +0000 (08:17 +0100)
src/com/owncloud/android/MainApp.java
src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java
src/com/owncloud/android/ui/fragment/LocalFileListFragment.java

index 4fdc5cb..ca59cb3 100644 (file)
@@ -77,7 +77,7 @@ public class MainApp extends Application {
         }
 
         // initialise thumbnails cache on background thread
-        new ThumbnailsCacheManager.InitDiskCacheTask(mContext).execute();
+        new ThumbnailsCacheManager.InitDiskCacheTask().execute();
         
         if (BuildConfig.DEBUG) {
 
index 1d2cda8..8a7268c 100644 (file)
@@ -59,7 +59,7 @@ public class ThumbnailsCacheManager {
     private static final String TAG = ThumbnailsCacheManager.class.getSimpleName();
     
     private static final String CACHE_FOLDER = "thumbnailCache";
-    private static final String MINOR_SERVER_VERSION_FOR_THUMBS = "7.8.0";
+    private static final String MINOR_SERVER_VERSION_FOR_THUMBS = "6.8.0";
     
     private static final Object mThumbnailsDiskCacheLock = new Object();
     private static DiskLruImageCache mThumbnailCache = null;
@@ -205,10 +205,8 @@ public class ThumbnailsCacheManager {
     
                 // Not found in disk cache
                 if (thumbnail == null || mFile.needsUpdateThumbnail()) { 
-                    // Converts dp to pixel
-                    Resources r = MainApp.getAppContext().getResources();
-                    
-                    int px = (int) Math.round(r.getDimension(R.dimen.file_icon_size));
+                    // Use Width of imageView -> no blurry images on big screens
+                    int px = mImageViewReference.get().getWidth();
                     
                     if (mFile.isDown()){
                         Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile(
@@ -277,7 +275,7 @@ public class ThumbnailsCacheManager {
                 final ImageView imageView = mImageViewReference.get();
                 final ThumbnailGenerationTask bitmapWorkerTask =
                         getBitmapWorkerTask(imageView);
-                if (this == bitmapWorkerTask && imageView != null) {
+                if (this == bitmapWorkerTask && imageView != null && imageView.getTag() != null && mFile != null) {
                     if (imageView.getTag().equals(mFile.getFileId())) {
                         imageView.setImageBitmap(bitmap);
                     }
index d2680fa..3400513 100644 (file)
@@ -26,23 +26,20 @@ import java.util.Vector;
 import third_parties.daveKoeller.AlphanumComparator;\r
 import android.accounts.Account;\r
 import android.content.Context;\r
-<<<<<<< HEAD
+import android.content.SharedPreferences;\r
 import android.graphics.Bitmap;\r
 import android.graphics.BitmapFactory;\r
 import android.media.ThumbnailUtils;\r
-=======
-import android.content.SharedPreferences;\r
-import android.graphics.Bitmap;\r
 import android.preference.PreferenceManager;\r
->>>>>>> upstream/develop
 import android.view.LayoutInflater;\r
 import android.view.View;\r
 import android.view.ViewGroup;\r
 import android.widget.BaseAdapter;\r
+import android.widget.Filter;\r
+import android.widget.Filterable;\r
 import android.widget.GridView;\r
 import android.widget.ImageView;\r
 import android.widget.ListAdapter;\r
-import android.widget.ListView;\r
 import android.widget.TextView;\r
 \r
 import com.owncloud.android.R;\r
@@ -55,13 +52,8 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;\r
 import com.owncloud.android.ui.activity.ComponentsGetter;\r
 import com.owncloud.android.utils.DisplayUtils;\r
-<<<<<<< HEAD
-import com.owncloud.android.utils.Log_OC;\r
-\r
-=======
 import com.owncloud.android.utils.FileStorageUtils;\r
 
->>>>>>> upstream/develop
 \r
 /**\r
  * This Adapter populates a ListView with all files and folders in an ownCloud\r
@@ -77,32 +69,29 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
     private Context mContext;\r
     private OCFile mFile = null;\r
     private Vector<OCFile> mFiles = null;\r
+    private Vector<OCFile> mFilesOrig = new Vector<OCFile>();\r
     private boolean mJustFolders;\r
 \r
     private FileDataStorageManager mStorageManager;
     private Account mAccount;
     private ComponentsGetter mTransferServiceGetter;\r
-<<<<<<< HEAD
     private enum ViewType {LIST_ITEM, GRID_IMAGE, GRID_ITEM };\r
-=======
     private Integer mSortOrder;\r
     public static final Integer SORT_NAME = 0;\r
     public static final Integer SORT_DATE = 1;\r
     public static final Integer SORT_SIZE = 2;\r
     private Boolean mSortAscending;\r
     private SharedPreferences mAppPreferences;\r
->>>>>>> upstream/develop
     \r
     public FileListListAdapter(\r
             boolean justFolders, \r
             Context context, \r
             ComponentsGetter transferServiceGetter\r
             ) {\r
-\r
+        \r
         mJustFolders = justFolders;\r
         mContext = context;\r
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
-
         mTransferServiceGetter = transferServiceGetter;
         \r
         mAppPreferences = PreferenceManager\r
@@ -115,7 +104,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         \r
         // initialise thumbnails cache on background thread\r
         new ThumbnailsCacheManager.InitDiskCacheTask().execute();\r
-\r
     }\r
     
     @Override\r
@@ -204,7 +192,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
             view = inflator.inflate(R.layout.list_item, null);\r
             break;\r
         }\r
-<<<<<<< HEAD
 \r
         view.invalidate();\r
 \r
@@ -213,42 +200,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
             ImageView fileIcon = (ImageView) view.findViewById(R.id.thumbnail);\r
             TextView fileName;\r
             String name;\r
-=======
-         \r
-        if (mFiles != null && mFiles.size() > position) {\r
-            OCFile file = mFiles.get(position);\r
-            TextView fileName = (TextView) view.findViewById(R.id.Filename);           \r
-            String name = file.getFileName();\r
-\r
-            fileName.setText(name);\r
-            ImageView fileIcon = (ImageView) view.findViewById(R.id.imageView1);\r
-            fileIcon.setTag(file.getFileId());\r
-            ImageView sharedIconV = (ImageView) view.findViewById(R.id.sharedIcon);\r
-            ImageView sharedWithMeIconV = (ImageView) view.findViewById(R.id.sharedWithMeIcon);\r
-            sharedWithMeIconV.setVisibility(View.GONE);\r
-\r
-            ImageView localStateView = (ImageView) view.findViewById(R.id.imageView2);\r
-            localStateView.bringToFront();\r
-            FileDownloaderBinder downloaderBinder = \r
-                    mTransferServiceGetter.getFileDownloaderBinder();\r
-            FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();\r
-            if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, file)) {\r
-                localStateView.setImageResource(R.drawable.downloading_file_indicator);\r
-                localStateView.setVisibility(View.VISIBLE);\r
-            } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, file)) {\r
-                localStateView.setImageResource(R.drawable.uploading_file_indicator);\r
-                localStateView.setVisibility(View.VISIBLE);\r
-            } else if (file.isDown()) {\r
-                localStateView.setImageResource(R.drawable.local_file_indicator);\r
-                localStateView.setVisibility(View.VISIBLE);\r
-            } else {\r
-                localStateView.setVisibility(View.INVISIBLE);\r
-            }\r
-            \r
-            TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);\r
-            TextView lastModV = (TextView) view.findViewById(R.id.last_mod);\r
-            ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
->>>>>>> upstream/develop
             \r
             switch (viewType){\r
             case LIST_ITEM:\r
@@ -261,7 +212,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                 ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
                 \r
                 lastModV.setVisibility(View.VISIBLE);\r
-<<<<<<< HEAD
                 lastModV.setText(DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp()));\r
                 \r
                 checkBoxV.setVisibility(View.GONE);\r
@@ -274,15 +224,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 \r
                 if (file.isShareByLink()) {\r
                     sharedIconV.setVisibility(View.VISIBLE);\r
-=======
-                lastModV.setText(\r
-                        DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp())\r
-                );\r
-                // this if-else is needed even thoe fav icon is visible by default\r
-                // because android reuses views in listview\r
-                if (!file.keepInSync()) {\r
-                    view.findViewById(R.id.imageView3).setVisibility(View.GONE);\r
->>>>>>> upstream/develop
                 } else {\r
                     sharedIconV.setVisibility(View.GONE);\r
                 }\r
@@ -301,7 +242,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                         }\r
                         checkBoxV.setVisibility(View.VISIBLE);\r
                     }\r
-<<<<<<< HEAD
                     \r
                     localStateView.bringToFront();\r
                     FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();\r
@@ -350,72 +290,39 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
             \r
             // No Folder\r
             if (!file.isFolder()) {\r
-                if (file.isImage() && file.isDown()){\r
-                    Bitmap bitmap = BitmapFactory.decodeFile(file.getStoragePath());\r
-                    fileIcon.setImageBitmap(ThumbnailUtils.extractThumbnail(bitmap, 200, 200));\r
-                } else {\r
-                    fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
-                }\r
-            } else {\r
-                // Folder\r
-=======
-                    checkBoxV.setVisibility(View.VISIBLE);\r
-                }               \r
-                \r
-                // get Thumbnail if file is image\r
                 if (file.isImage() && file.getRemoteId() != null){\r
-                     // Thumbnail in Cache?\r
+                    // Thumbnail in Cache?\r
                     Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(\r
                             String.valueOf(file.getRemoteId())\r
-                    );\r
+                            );\r
                     if (thumbnail != null && !file.needsUpdateThumbnail()){\r
                         fileIcon.setImageBitmap(thumbnail);\r
                     } else {\r
                         // generate new Thumbnail\r
                         if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) {\r
-                            final ThumbnailsCacheManager.ThumbnailGenerationTask task = \r
+                            final ThumbnailsCacheManager.ThumbnailGenerationTask task =\r
                                     new ThumbnailsCacheManager.ThumbnailGenerationTask(\r
                                             fileIcon, mStorageManager, mAccount\r
-                                    );\r
+                                            );\r
                             if (thumbnail == null) {\r
                                 thumbnail = ThumbnailsCacheManager.mDefaultImg;\r
                             }\r
                             final AsyncDrawable asyncDrawable = new AsyncDrawable(\r
-                                    mContext.getResources(), \r
-                                    thumbnail, \r
+                                    mContext.getResources(),\r
+                                    thumbnail,\r
                                     task\r
-                            );\r
+                                    );\r
                             fileIcon.setImageDrawable(asyncDrawable);\r
                             task.execute(file);\r
+\r
                         }\r
                     }\r
-                } else {\r
-                    fileIcon.setImageResource(\r
-                            DisplayUtils.getResourceId(file.getMimetype(), file.getFileName())\r
-                    );\r
                 }\r
-
-                if (checkIfFileIsSharedWithMe(file)) {\r
-                    sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                else {\r
+                    fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
                 }\r
-            } \r
-            else {\r
-                  // TODO Re-enable when server supports folder-size calculation\r
-//                if (FileStorageUtils.getDefaultSavePathFor(mAccount.name, file) != null){\r
-//                    fileSizeV.setVisibility(View.VISIBLE);\r
-//                    fileSizeV.setText(getFolderSizeHuman(FileStorageUtils.getDefaultSavePathFor(mAccount.name, file)));\r
-//                } else {\r
-                    fileSizeV.setVisibility(View.INVISIBLE);\r
-//                }\r
-
-                lastModV.setVisibility(View.VISIBLE);\r
-                lastModV.setText(\r
-                        DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp())\r
-                );\r
-                checkBoxV.setVisibility(View.GONE);\r
-                view.findViewById(R.id.imageView3).setVisibility(View.GONE);\r
-\r
->>>>>>> upstream/develop
+            } else {\r
+                // Folder\r
                 if (checkIfFileIsSharedWithMe(file)) {\r
                     fileIcon.setImageResource(R.drawable.shared_with_me_folder);\r
                 } else if (file.isShareByLink()) {\r
@@ -423,9 +330,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                     // folder-public one\r
                     fileIcon.setImageResource(R.drawable.folder_public);\r
                 } else {\r
-                    fileIcon.setImageResource(\r
-                            DisplayUtils.getResourceId(file.getMimetype(), file.getFileName())\r
-                    );\r
+                    fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
                 }\r
             }           \r
         }\r
@@ -503,6 +408,9 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         }\r
         if (mStorageManager != null) {\r
             mFiles = mStorageManager.getFolderContent(mFile);\r
+            mFilesOrig.clear();\r
+            mFilesOrig.addAll(mFiles);\r
+            \r
             if (mJustFolders) {\r
                 mFiles = getFolders(mFiles);\r
             }\r
@@ -665,5 +573,5 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         mSortAscending = ascending;\r
         \r
         sortDirectory();\r
-    }    
+    }
 }\r
index c612348..9e251c7 100644 (file)
@@ -53,7 +53,7 @@ implements OnItemClickListener, OnEnforceableRefreshListener {
     private static final String KEY_HEIGHT_CELL = "HEIGHT_CELL";
     private static final String KEY_EMPTY_LIST_MESSAGE = "EMPTY_LIST_MESSAGE";
 
-    // protected ExtendedListView mList;
+    protected ExtendedListView mList;
     
     private SwipeRefreshLayout mRefreshLayout;
     private SwipeRefreshLayout mRefreshEmptyLayout;
index 90af004..e954f02 100644 (file)
@@ -105,7 +105,7 @@ public class LocalFileListFragment extends ExtendedListFragment {
             if (file != null) {                
                 if (!file.isDirectory()) {  
                     /// Click on a file
-                    getListView().setItemChecked(i, true);                       
+                    getGridView().setItemChecked(i, true);                       
                     // notify the change to the container Activity
                     mContainerActivity.onFileClick(file);
                 }
@@ -231,7 +231,7 @@ public class LocalFileListFragment extends ExtendedListFragment {
      */
     public String[] getCheckedFilePaths() {
         ArrayList<String> result = new ArrayList<String>();
-        SparseBooleanArray positions = imageView.getCheckedItemPositions();
+        SparseBooleanArray positions = mList.getCheckedItemPositions();
         if (positions.size() > 0) {
             for (int i = 0; i < positions.size(); i++) {
                 if (positions.get(positions.keyAt(i)) == true) {