Avoid double query to the ContentResolver when listing the contents of a folder
authorDavid A. Velasco <dvelasco@solidgear.es>
Thu, 12 Jul 2012 15:49:29 +0000 (17:49 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Thu, 12 Jul 2012 15:49:29 +0000 (17:49 +0200)
AndroidManifest.xml
src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java

index 581d36b..408d148 100644 (file)
@@ -18,7 +18,7 @@
  -->\r
 <manifest package="eu.alefzero.owncloud"\r
     android:versionCode="1"\r
-    android:versionName="0.1.156B" xmlns:android="http://schemas.android.com/apk/res/android">\r
+    android:versionName="0.1.157B" xmlns:android="http://schemas.android.com/apk/res/android">\r
 \r
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />\r
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />\r
index 069a24d..66d0af8 100644 (file)
@@ -43,8 +43,8 @@ public class FileListFragment extends FragmentListView {
     \r
     private FileListFragment.ContainerActivity mContainerActivity;\r
     \r
-    private Vector<OCFile> mFiles;    \r
     private OCFile mFile = null;\r
+    private FileListListAdapter mAdapter;\r
 \r
     \r
     /**\r
@@ -79,6 +79,7 @@ public class FileListFragment extends FragmentListView {
         Log.i(getClass().toString(), "onActivityCreated() start");\r
         \r
         super.onCreate(savedInstanceState);\r
+        //mAdapter = new FileListListAdapter();\r
         \r
         Log.i(getClass().toString(), "onActivityCreated() stop");\r
     }\r
@@ -86,21 +87,22 @@ public class FileListFragment extends FragmentListView {
     \r
     @Override\r
     public void onItemClick(AdapterView<?> l, View v, int position, long id) {\r
-        if (mFiles.size() <= position) {\r
-            throw new IndexOutOfBoundsException("Incorrect item selected");\r
-        }\r
-        OCFile file = mFiles.get(position);\r
-        \r
-        /// Click on a directory\r
-        if (file.getMimetype().equals("DIR")) {\r
-            // just local updates\r
-            mFile = file;\r
-            listDirectory(file);\r
-            // any other updates are let to the container Activity\r
-            mContainerActivity.onDirectoryClick(file);\r
+        OCFile file = (OCFile) mAdapter.getItem(position);\r
+        if (file != null) {\r
+            /// Click on a directory\r
+            if (file.getMimetype().equals("DIR")) {\r
+                // just local updates\r
+                mFile = file;\r
+                listDirectory(file);\r
+                // any other updates are let to the container Activity\r
+                mContainerActivity.onDirectoryClick(file);\r
+            \r
+            } else {    /// Click on a file\r
+                mContainerActivity.onFileClick(file);\r
+            }\r
             \r
-        } else {    /// Click on a file\r
-            mContainerActivity.onFileClick(file);\r
+        } else {\r
+            Log.d(TAG, "Null object in ListAdapter!!");\r
         }\r
         \r
     }\r
@@ -164,12 +166,9 @@ public class FileListFragment extends FragmentListView {
         }\r
 \r
         mFile = directory;\r
-        mFiles = storageManager.getDirectoryContent(directory);\r
         \r
-        /*if (mFiles == null || mFiles.size() == 0) {\r
-            Toast.makeText(getActivity(), "There are no files here", Toast.LENGTH_LONG).show();\r
-        }*/\r
-        setListAdapter(new FileListListAdapter(directory, storageManager, getActivity()));\r
+        mAdapter = new FileListListAdapter(directory, storageManager, getActivity());\r
+        setListAdapter(mAdapter);\r
     }\r
     \r
     \r