package eu.alefzero.owncloud.ui.fragment;\r
\r
import java.util.Stack;\r
+import java.util.Vector;\r
\r
import android.accounts.Account;\r
import android.accounts.AccountManager;\r
*\r
*/\r
public class FileList extends FragmentListView {\r
- private Cursor mCursor;\r
private Account mAccount;\r
private AccountManager mAccountManager;\r
private Stack<String> mDirNames;\r
private Stack<String> mParentsIds;\r
+ private Vector<OCFile> mFiles;\r
\r
public FileList() {\r
mDirNames = new Stack<String>();\r
\r
@Override\r
public void onItemClick(AdapterView<?> l, View v, int position, long id) {\r
- if (!mCursor.moveToPosition(position)) {\r
+ if (mFiles.size() <= position) {\r
throw new IndexOutOfBoundsException("Incorrect item selected");\r
}\r
- String id_ = mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta._ID));\r
- if (mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_CONTENT_TYPE)).equals("DIR")) {\r
- String dirname = mCursor.getString(mCursor.getColumnIndex(ProviderTableMeta.FILE_NAME));\r
+ OCFile file = mFiles.get(position);\r
+ String id_ = String.valueOf(file.getFileId());\r
+ if (file.getMimetype().equals("DIR")) {\r
+ String dirname = file.getFileName();\r
\r
mDirNames.push(dirname);\r
mParentsIds.push(id_);\r
}\r
\r
private void populateFileList() {\r
- if (mParentsIds.empty()) {\r
- OCFile file = new OCFile(getActivity().getContentResolver(), mAccount, "/");\r
- Log.d("ASD", file.getFileName()+"");\r
- Log.d("ASD", file.getFileId()+"");\r
- if (file.getDirectoryContent() != null)\r
- Log.d("ASD", file.getDirectoryContent().size()+"");\r
- \r
- mCursor = getActivity().getContentResolver().query(ProviderTableMeta.CONTENT_URI,\r
- null,\r
- ProviderTableMeta.FILE_ACCOUNT_OWNER+"=?",\r
- new String[]{mAccount.name},\r
- null);\r
- } else {\r
- mCursor = getActivity().managedQuery(Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_DIR, mParentsIds.peek()),\r
- null,\r
- ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",\r
- new String[]{mAccount.name}, null);\r
- }\r
- setListAdapter(new FileListListAdapter(mCursor, getActivity()));\r
+ String s = "/";\r
+ for (String a : mDirNames)\r
+ s+= a+"/";\r
+\r
+ OCFile file = new OCFile(getActivity().getContentResolver(), mAccount, s);\r
+ mFiles = file.getDirectoryContent();\r
+ setListAdapter(new FileListListAdapter(file, getActivity()));\r
}\r
}\r