import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
+import android.database.MatrixCursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
+import android.provider.OpenableColumns;
import com.owncloud.android.MainApp;
import com.owncloud.android.authentication.AccountUtils;
public class DiskLruImageCacheFileProvider extends ContentProvider {
private static String TAG = FileDataStorageManager.class.getSimpleName();
+ private FileDataStorageManager mFileDataStorageManager;
- public static final String AUTHORITY = "com.owncloud.imageCache.providerBeta";
+ public static final String AUTHORITY = "org.owncloud.beta.imageCache.provider";
@Override
- public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
- Log_OC.d(TAG, "try to send: " + uri);
+ public boolean onCreate() {
+ return true;
+ }
+
+ private OCFile getFile(Uri uri){
Account account = AccountUtils.getCurrentOwnCloudAccount(MainApp.getAppContext());
- FileDataStorageManager fileDataStorageManager = new FileDataStorageManager(account,
+ mFileDataStorageManager = new FileDataStorageManager(account,
MainApp.getAppContext().getContentResolver());
- OCFile ocFile = fileDataStorageManager.getFileByPath(uri.getPath());
+ OCFile ocFile = mFileDataStorageManager.getFileByPath(uri.getPath());
+ return ocFile;
+ }
+
+ @Override
+ public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
+ Log_OC.d(TAG, "try to send: " + uri);
+
+ OCFile ocFile = getFile(uri);
Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(
String.valueOf("r" + ocFile.getRemoteId()));
return ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
}
-
@Override
- public boolean onCreate() {
- return true;
+ public String getType(Uri uri) {
+ OCFile ocFile = getFile(uri);
+ return ocFile.getMimetype();
}
@Override
- public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
- return null;
- }
+ public Cursor query(Uri uri, String[] arg1, String arg2, String[] arg3, String arg4) {
+ MatrixCursor cursor = null;
+
+ OCFile ocFile = getFile(uri);
+ File file = new File(MainApp.getAppContext().getCacheDir(), ocFile.getFileName());
+ if (file.exists()) {
+ cursor = new MatrixCursor(new String[] {
+ OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE });
+ cursor.addRow(new Object[] { uri.getLastPathSegment(),
+ file.length() });
+ }
- @Override
- public String getType(Uri uri) {
- return null;
+ return cursor;
}
@Override