Fixed crash by ArrayOutOfBoundsException and general review of methods in FileListLis...
authorDavid A. Velasco <dvelasco@solidgear.es>
Thu, 4 Oct 2012 06:56:48 +0000 (08:56 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Thu, 4 Oct 2012 06:56:48 +0000 (08:56 +0200)
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

index fb39313..d998985 100644 (file)
@@ -48,18 +48,19 @@ import android.widget.TextView;
  */\r
 public class FileListListAdapter extends BaseAdapter implements ListAdapter {\r
     private Context mContext;\r
-    private OCFile mFile;\r
-    private Vector<OCFile> mFiles;\r
+    private OCFile mFile = null;\r
+    private Vector<OCFile> mFiles = null;\r
     private DataStorageManager mStorageManager;\r
     private Account mAccount;\r
 \r
     public FileListListAdapter(OCFile file, DataStorageManager storage_man,\r
             Context context) {\r
-        mFile = file;\r
         mStorageManager = storage_man;\r
-        mFiles = mStorageManager.getDirectoryContent(mFile);\r
         mContext = context;\r
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
+        swapDirectory(file);\r
+        /*mFile = file;\r
+        mFiles = mStorageManager.getDirectoryContent(mFile);*/\r
     }\r
 \r
     @Override\r
@@ -86,7 +87,9 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 \r
     @Override\r
     public long getItemId(int position) {\r
-        return mFiles != null ? mFiles.get(position).getFileId() : 0;\r
+        if (mFiles == null || mFiles.size() <= position)\r
+            return 0;\r
+        return mFiles.get(position).getFileId();\r
     }\r
 \r
     @Override\r
@@ -171,7 +174,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 \r
     @Override\r
     public int getViewTypeCount() {\r
-        return 4;\r
+        return 1;\r
     }\r
 \r
     @Override\r
@@ -181,7 +184,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 \r
     @Override\r
     public boolean isEmpty() {\r
-        return mFiles != null ? mFiles.isEmpty() : false;\r
+        return (mFiles == null || mFiles.isEmpty());\r
     }\r
 \r
     /**\r
@@ -190,7 +193,11 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
      */\r
     public void swapDirectory(OCFile directory) {\r
         mFile = directory;\r
-        mFiles = mStorageManager.getDirectoryContent(mFile);\r
+        if (mStorageManager != null) {\r
+            mFiles = mStorageManager.getDirectoryContent(mFile);\r
+        } else {\r
+            mFiles = null;\r
+        }\r
         notifyDataSetChanged();\r
     }\r
     \r