+
+ }
+ }
+
+ @Override
+ public Vector<OCFile> getDirectoryImages(OCFile directory) {
+ Vector<OCFile> ret = new Vector<OCFile>();
+ if (directory != null) {
+ // TODO better implementation, filtering in the access to database (if possible) instead of here
+ Vector<OCFile> tmp = getDirectoryContent(directory);
+ OCFile current = null;
+ for (int i=0; i<tmp.size(); i++) {
+ current = tmp.get(i);
+ if (current.isImage()) {
+ ret.add(current);
+ }
+ }
+ }
+ return ret;
+ }
+
+ @Override
+ public Vector<OCFile> getFilesbyParent(long parentId) {
+
+ Vector<OCFile> ret = new Vector<OCFile>();
+
+ Uri req_uri = Uri.withAppendedPath(
+ ProviderTableMeta.CONTENT_URI_DIR,
+ String.valueOf(parentId));
+ Cursor c = null;
+
+ if (getContentProvider() != null) {
+ try {
+ c = getContentProvider().query(req_uri, null,
+ ProviderTableMeta.FILE_PARENT + "=?" ,
+ new String[] { String.valueOf(parentId)}, null);
+ } catch (RemoteException e) {
+ Log_OC.e(TAG, e.getMessage());
+ return ret;
+ }
+ } else {
+ c = getContentResolver().query(req_uri, null,
+ ProviderTableMeta.FILE_PARENT + "=?" ,
+ new String[] { String.valueOf(parentId)}, null);
+ }
+
+ if (c.moveToFirst()) {
+ do {
+ OCFile child = createFileInstance(c);
+ ret.add(child);
+ } while (c.moveToNext());
+ }
+
+ c.close();
+
+ Collections.sort(ret);
+
+ return ret;
+ }
+
+ /**
+ * Calculate and save the folderSize on DB
+ * @param id
+ */
+ @Override
+ public void saveFolderSize(long id) {
+ long folderSize = 0;
+
+ Vector<OCFile> files = getFilesbyParent(id);
+
+ Log_OC.d(TAG, "Folder " + String.valueOf(id) + "--- Number of Files = " + String.valueOf(files.size()));
+
+ for (OCFile f: files)
+ {
+ folderSize = folderSize + f.getFileLength();
+ Log_OC.d(TAG, "Folder Size = " + String.valueOf(folderSize));