@Override
public OCFile getFileByPath(String path) {
Cursor c = getCursorForValue(ProviderTableMeta.FILE_PATH, path);
- if (c.moveToFirst())
- return createFileInstance(c);
- return null;
+ OCFile file = null;
+ if (c.moveToFirst()) {
+ file = createFileInstance(c);
+ c.close();
+ }
+ return file;
}
@Override
public OCFile getFileById(long id) {
Cursor c = getCursorForValue(ProviderTableMeta._ID, String.valueOf(id));
- if (c.moveToFirst())
- return createFileInstance(c);
- return null;
+ OCFile file = null;
+ if (c.moveToFirst()) {
+ file = createFileInstance(c);
+ c.close();
+ }
+ return file;
}
@Override
cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name);
if (fileExists(file.getPath())) {
+ file.setFileId(getFileByPath(file.getPath()).getFileId());
overriden = true;
if (getContentResolver() != null) {
getContentResolver().update(ProviderTableMeta.CONTENT_URI,
}
public Vector<OCFile> getDirectoryContent(OCFile f) {
- if (f.isDirectory() && f.getFileId() != -1) {
+ if (f != null && f.isDirectory() && f.getFileId() != -1) {
Vector<OCFile> ret = new Vector<OCFile>();
Uri req_uri = Uri.withAppendedPath(
if (getContentProvider() != null) {
try {
- c = getContentProvider().query(req_uri, null, null, null, null);
+ c = getContentProvider().query(req_uri,
+ null,
+ ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
+ new String[]{mAccount.name},
+ null);
} catch (RemoteException e) {
Log.e(TAG, e.getMessage());
return ret;
}
} else {
- c = getContentResolver().query(req_uri, null, null, null, null);
+ c = getContentResolver().query(req_uri,
+ null,
+ ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
+ new String[]{mAccount.name},
+ null);
}
if (c.moveToFirst()) {
if (getContentResolver() != null) {
c = getContentResolver().query(ProviderTableMeta.CONTENT_URI,
null,
- cmp_key + "=?",
- new String[] {value},
+ cmp_key + "=? AND " + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
+ new String[] {value, mAccount.name},
null);
} else {
try {
c = getContentProvider().query(ProviderTableMeta.CONTENT_URI,
null,
- cmp_key + "=?",
- new String[] {value},
+ cmp_key + "=? AND " + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
+ new String[] {value, mAccount.name},
null);
} catch (RemoteException e) {
Log.e(TAG, "Couldn't determine file existance, assuming non existance: " + e.getMessage());
return false;
}
}
- return c.moveToFirst();
+ boolean retval = c.moveToFirst();
+ c.close();
+ return retval;
}
private Cursor getCursorForValue(String key, String value) {
if (getContentResolver() != null) {
c = getContentResolver().query(ProviderTableMeta.CONTENT_URI,
null,
- key + "=?",
- new String[] {value},
+ key + "=? AND " + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
+ new String[] {value, mAccount.name},
null);
} else {
try {
c = getContentProvider().query(ProviderTableMeta.CONTENT_URI,
null,
- key + "=?",
- new String[]{value},
+ key + "=? AND " + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
+ new String[]{value, mAccount.name},
null);
} catch (RemoteException e) {
Log.e(TAG, "Could not get file details: " + e.getMessage());