diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-08-11 11:31:34 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-08-11 11:31:34 -0700 |
commit | 81df0d9487ea498f9746ca33b17b5c2f5224bf72 (patch) | |
tree | 2d1f1429dce3ad44c6f08334859668510a275900 /core/java/android | |
parent | f280a1b83038a5060eabc474d7fdfeca1d6b81d4 (diff) | |
parent | bc2d2a32d52f0e68273ce3f6ffa8c49f0c433311 (diff) | |
download | frameworks_base-81df0d9487ea498f9746ca33b17b5c2f5224bf72.zip frameworks_base-81df0d9487ea498f9746ca33b17b5c2f5224bf72.tar.gz frameworks_base-81df0d9487ea498f9746ca33b17b5c2f5224bf72.tar.bz2 |
Merge change 8575
* changes:
Support INSTALL_DRM permission
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/provider/DrmStore.java | 66 |
1 files changed, 46 insertions, 20 deletions
diff --git a/core/java/android/provider/DrmStore.java b/core/java/android/provider/DrmStore.java index db71854..c438ac4 100644 --- a/core/java/android/provider/DrmStore.java +++ b/core/java/android/provider/DrmStore.java @@ -35,7 +35,7 @@ import java.io.OutputStream; /** * The DRM provider contains forward locked DRM content. - * + * * @hide */ public final class DrmStore @@ -43,13 +43,13 @@ public final class DrmStore private static final String TAG = "DrmStore"; public static final String AUTHORITY = "drm"; - + /** * This is in the Manifest class of the drm provider, but that isn't visible * in the framework. */ private static final String ACCESS_DRM_PERMISSION = "android.permission.ACCESS_DRM"; - + /** * Fields for DRM database */ @@ -82,18 +82,18 @@ public final class DrmStore } public interface Images extends Columns { - + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/images"); } - + public interface Audio extends Columns { - + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/audio"); } /** * Utility function for inserting a file into the DRM content provider. - * + * * @param cr The content resolver to use * @param file The file to insert * @param title The title for the content (or null) @@ -101,12 +101,46 @@ public final class DrmStore */ public static final Intent addDrmFile(ContentResolver cr, File file, String title) { FileInputStream fis = null; - OutputStream os = null; Intent result = null; try { fis = new FileInputStream(file); - DrmRawContent content = new DrmRawContent(fis, (int) file.length(), + if (title == null) { + title = file.getName(); + int lastDot = title.lastIndexOf('.'); + if (lastDot > 0) { + title = title.substring(0, lastDot); + } + } + result = addDrmFile(cr, fis, title); + } catch (Exception e) { + Log.e(TAG, "pushing file failed", e); + } finally { + try { + if (fis != null) + fis.close(); + } catch (IOException e) { + Log.e(TAG, "IOException in DrmStore.addDrmFile()", e); + } + } + + return result; + } + + /** + * Utility function for inserting a file stream into the DRM content provider. + * + * @param cr The content resolver to use + * @param fileStream The FileInputStream to insert + * @param title The title for the content (or null) + * @return uri to the DRM record or null + */ + public static final Intent addDrmFile(ContentResolver cr, FileInputStream fis, String title) { + OutputStream os = null; + Intent result = null; + + try { + DrmRawContent content = new DrmRawContent(fis, (int) fis.available(), DrmRawContent.DRM_MIMETYPE_MESSAGE_STRING); String mimeType = content.getContentType(); @@ -126,14 +160,6 @@ public final class DrmStore if (contentUri != null) { ContentValues values = new ContentValues(3); - // compute title from file name, if it is not specified - if (title == null) { - title = file.getName(); - int lastDot = title.lastIndexOf('.'); - if (lastDot > 0) { - title = title.substring(0, lastDot); - } - } values.put(DrmStore.Columns.TITLE, title); values.put(DrmStore.Columns.SIZE, size); values.put(DrmStore.Columns.MIME_TYPE, mimeType); @@ -162,7 +188,7 @@ public final class DrmStore if (os != null) os.close(); } catch (IOException e) { - Log.e(TAG, "IOException in DrmTest.onCreate()", e); + Log.e(TAG, "IOException in DrmStore.addDrmFile()", e); } } @@ -172,7 +198,7 @@ public final class DrmStore /** * Utility function to enforce any permissions required to access DRM * content. - * + * * @param context A context used for checking calling permission. */ public static void enforceAccessDrmPermission(Context context) { @@ -181,5 +207,5 @@ public final class DrmStore throw new SecurityException("Requires DRM permission"); } } - + } |