Loading core/java/android/provider/MediaStore.java +20 −20 Original line number Diff line number Diff line Loading @@ -317,7 +317,10 @@ public final class MediaStore { // Log.v(TAG, "getThumbnail: origId="+origId+", kind="+kind+", isVideo="+isVideo); // If the magic is non-zero, we simply return thumbnail if it does exist. // querying MediaProvider and simply return thumbnail. MiniThumbFile thumbFile = MiniThumbFile.instance(baseUri); MiniThumbFile thumbFile = new MiniThumbFile(isVideo ? Video.Media.EXTERNAL_CONTENT_URI : Images.Media.EXTERNAL_CONTENT_URI); Cursor c = null; try { long magic = thumbFile.getMagic(origId); if (magic != 0) { if (kind == MICRO_KIND) { Loading @@ -331,8 +334,6 @@ public final class MediaStore { return bitmap; } else if (kind == MINI_KIND) { String column = isVideo ? "video_id=" : "image_id="; Cursor c = null; try { c = cr.query(baseUri, PROJECTION, column + origId, null, null); if (c != null && c.moveToFirst()) { bitmap = getMiniThumbFromFile(c, baseUri, cr, options); Loading @@ -340,17 +341,13 @@ public final class MediaStore { return bitmap; } } } finally { if (c != null) c.close(); } } } Cursor c = null; try { Uri blockingUri = baseUri.buildUpon().appendQueryParameter("blocking", "1") .appendQueryParameter("orig_id", String.valueOf(origId)) .appendQueryParameter("group_id", String.valueOf(groupId)).build(); if (c != null) c.close(); c = cr.query(blockingUri, PROJECTION, null, null, null); // This happens when original image/video doesn't exist. if (c == null) return null; Loading Loading @@ -397,6 +394,9 @@ public final class MediaStore { Log.w(TAG, ex); } finally { if (c != null) c.close(); // To avoid file descriptor leak in application process. thumbFile.deactivate(); thumbFile = null; } return bitmap; } Loading Loading
core/java/android/provider/MediaStore.java +20 −20 Original line number Diff line number Diff line Loading @@ -317,7 +317,10 @@ public final class MediaStore { // Log.v(TAG, "getThumbnail: origId="+origId+", kind="+kind+", isVideo="+isVideo); // If the magic is non-zero, we simply return thumbnail if it does exist. // querying MediaProvider and simply return thumbnail. MiniThumbFile thumbFile = MiniThumbFile.instance(baseUri); MiniThumbFile thumbFile = new MiniThumbFile(isVideo ? Video.Media.EXTERNAL_CONTENT_URI : Images.Media.EXTERNAL_CONTENT_URI); Cursor c = null; try { long magic = thumbFile.getMagic(origId); if (magic != 0) { if (kind == MICRO_KIND) { Loading @@ -331,8 +334,6 @@ public final class MediaStore { return bitmap; } else if (kind == MINI_KIND) { String column = isVideo ? "video_id=" : "image_id="; Cursor c = null; try { c = cr.query(baseUri, PROJECTION, column + origId, null, null); if (c != null && c.moveToFirst()) { bitmap = getMiniThumbFromFile(c, baseUri, cr, options); Loading @@ -340,17 +341,13 @@ public final class MediaStore { return bitmap; } } } finally { if (c != null) c.close(); } } } Cursor c = null; try { Uri blockingUri = baseUri.buildUpon().appendQueryParameter("blocking", "1") .appendQueryParameter("orig_id", String.valueOf(origId)) .appendQueryParameter("group_id", String.valueOf(groupId)).build(); if (c != null) c.close(); c = cr.query(blockingUri, PROJECTION, null, null, null); // This happens when original image/video doesn't exist. if (c == null) return null; Loading Loading @@ -397,6 +394,9 @@ public final class MediaStore { Log.w(TAG, ex); } finally { if (c != null) c.close(); // To avoid file descriptor leak in application process. thumbFile.deactivate(); thumbFile = null; } return bitmap; } Loading