diff options
Diffstat (limited to 'src/org/thialfihar/android/apg/provider/DataProvider.java')
-rw-r--r-- | src/org/thialfihar/android/apg/provider/DataProvider.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/org/thialfihar/android/apg/provider/DataProvider.java b/src/org/thialfihar/android/apg/provider/DataProvider.java index 0a4bfbad4..9cf083528 100644 --- a/src/org/thialfihar/android/apg/provider/DataProvider.java +++ b/src/org/thialfihar/android/apg/provider/DataProvider.java @@ -16,6 +16,8 @@ package org.thialfihar.android.apg.provider; +import java.io.File; +import java.io.FileNotFoundException; import java.util.HashMap; import org.thialfihar.android.apg.Id; @@ -27,6 +29,7 @@ import android.database.Cursor; import android.database.DatabaseUtils; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; +import android.os.ParcelFileDescriptor; import android.text.TextUtils; public class DataProvider extends ContentProvider { @@ -50,6 +53,8 @@ public class DataProvider extends ContentProvider { private static final int SECRET_KEY_RING_USER_ID = 221; private static final int SECRET_KEY_RING_USER_ID_RANK = 222; + private static final int DATA_STREAM = 301; + private static final String PUBLIC_KEY_RING_CONTENT_DIR_TYPE = "vnd.android.cursor.dir/vnd.thialfihar.apg.public.key_ring"; private static final String PUBLIC_KEY_RING_CONTENT_ITEM_TYPE = @@ -109,6 +114,8 @@ public class DataProvider extends ContentProvider { mUriMatcher.addURI(AUTHORITY, "key_rings/secret", SECRET_KEY_RING); mUriMatcher.addURI(AUTHORITY, "key_rings/secret/*", SECRET_KEY_RING_ID); + + mUriMatcher.addURI(AUTHORITY, "data/*", DATA_STREAM); } @Override @@ -360,4 +367,15 @@ public class DataProvider extends ContentProvider { // not supported return 0; } + + @Override + public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException { + int match = mUriMatcher.match(uri); + if (match != DATA_STREAM) { + throw new FileNotFoundException(); + } + String fileName = uri.getPathSegments().get(1); + File file = new File(getContext().getFilesDir().getAbsolutePath(), fileName); + return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); + } } |