public AssetFileDescriptor getAssetFileDescriptor() { if (mMethod == kCompressStored) { ParcelFileDescriptor pfd; try { pfd = ParcelFileDescriptor.open(mFile, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(pfd, getOffset(), mUncompressedLength); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; }
public AssetFileDescriptor getAssetFileDescriptor() { if (mMethod == kCompressStored) { ParcelFileDescriptor pfd; try { pfd = ParcelFileDescriptor.open(mFile, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(pfd, getOffset(), mUncompressedLength); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; }
@Override public AssetFileDescriptor openDocumentThumbnail(String documentId, Point sizeHint, CancellationSignal signal) throws FileNotFoundException { final File file = getFileForDocId(documentId); final ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(pfd, 0, file.length()); }
@Implementation protected final AssetFileDescriptor openFd(String fileName) throws IOException { Path path = findAssetFile(fileName); if (path.getFileSystem().provider().getScheme().equals("jar")) { path = getFileFromZip(path); } ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(path.toFile(), ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(parcelFileDescriptor, 0, Files.size(path)); }
/** * Since {@link AssetFileDescriptor}s are not yet supported by Robolectric, {@code null} will * be returned if the resource is found. If the resource cannot be found, {@link Resources.NotFoundException} will * be thrown. */ @Implementation(maxSdk = M) public AssetFileDescriptor openRawResourceFd(int id) throws Resources.NotFoundException { InputStream inputStream = openRawResource(id); if (!(inputStream instanceof FileInputStream)) { // todo fixme return null; } FileInputStream fis = (FileInputStream) inputStream; try { return new AssetFileDescriptor(ParcelFileDescriptor.dup(fis.getFD()), 0, fis.getChannel().size()); } catch (IOException e) { throw newNotFoundException(id); } }
/** * Since {@link AssetFileDescriptor}s are not yet supported by Robolectric, {@code null} will * be returned if the resource is found. If the resource cannot be found, {@link Resources.NotFoundException} will * be thrown. */ @Implementation(maxSdk = M) public AssetFileDescriptor openRawResourceFd(int id) throws Resources.NotFoundException { InputStream inputStream = openRawResource(id); if (!(inputStream instanceof FileInputStream)) { // todo fixme return null; } FileInputStream fis = (FileInputStream) inputStream; try { return new AssetFileDescriptor(ParcelFileDescriptor.dup(fis.getFD()), 0, fis.getChannel().size()); } catch (IOException e) { throw newNotFoundException(id); } }
/** * Since {@link AssetFileDescriptor}s are not yet supported by Robolectric, {@code null} will be * returned if the resource is found. If the resource cannot be found, {@link * Resources.NotFoundException} will be thrown. */ @Implementation protected AssetFileDescriptor openRawResourceFd(int id) throws Resources.NotFoundException { if (isLegacyAssetManager()) { InputStream inputStream = openRawResource(id); if (!(inputStream instanceof FileInputStream)) { // todo fixme return null; } FileInputStream fis = (FileInputStream) inputStream; try { return new AssetFileDescriptor(ParcelFileDescriptor.dup(fis.getFD()), 0, fis.getChannel().size()); } catch (IOException e) { throw newNotFoundException(id); } } else { return directlyOn(realResources, Resources.class).openRawResourceFd(id); } }
@Override public AssetFileDescriptor openAssetFile(@NonNull Uri uri, @NonNull String mode) throws FileNotFoundException { if (uri.getPath() == null) { return null; } try { String fileName = getFileName(uri); boolean pipeMode = uri.getQueryParameter(PARAM_PIPE_MODE) != null; if (pipeMode) { ParcelFileDescriptor fileDescriptor = openPipeHelper(uri, null, null, null, this); return new AssetFileDescriptor(fileDescriptor, 0, C.LENGTH_UNSET); } else { return getContext().getAssets().openFd(fileName); } } catch (IOException e) { FileNotFoundException exception = new FileNotFoundException(e.getMessage()); exception.initCause(e); throw exception; } }
@Test public void open_shouldProvideFileDescriptor() throws Exception { File file = new File( getTargetContext().getFilesDir() + File.separator + "open_shouldProvideFileDescriptor.txt"); FileOutputStream output = new FileOutputStream(file); output.write("hi".getBytes()); ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); AssetFileDescriptor assetFileDescriptor = new AssetFileDescriptor(parcelFileDescriptor, 0, "hi".getBytes().length); assertThat( CharStreams.toString( new InputStreamReader(assetFileDescriptor.createInputStream(), UTF_8))) .isEqualTo("hi"); assertThat(assetFileDescriptor.getLength()).isEqualTo(2); assetFileDescriptor.close(); } }
@Override public AssetFileDescriptor openDocumentThumbnail( String docId, Point sizeHint, CancellationSignal signal) throws FileNotFoundException { // TODO: extend ExifInterface to support fds final ParcelFileDescriptor pfd = openDocument(docId, "r", signal); return new AssetFileDescriptor(pfd, 0, AssetFileDescriptor.UNKNOWN_LENGTH); }
@Override public AssetFileDescriptor openDocumentThumbnail(String documentId, Point sizeHint, CancellationSignal signal) { ensureServiceBound(); try { return new AssetFileDescriptor( mService.openThumbnail(documentId, sizeHint), 0, AssetFileDescriptor.UNKNOWN_LENGTH); } catch (RemoteException e) { return null; } }
@Implementation protected final AssetFileDescriptor openFd(String fileName) throws IOException { File file = new File(findAssetFile(fileName).getPath()); if (file.getPath().startsWith("jar")) { file = getFileFromZip(file); } ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(parcelFileDescriptor, 0, file.length()); }
@Implementation public AssetFileDescriptor openRawResourceFd(int id) throws Resources.NotFoundException { try { FileInputStream fis = (FileInputStream)openRawResource(id); return new AssetFileDescriptor(ParcelFileDescriptor.dup(fis.getFD()), 0, fis.getChannel().size()); } catch (Exception e) { return null; } }
@Implementation public AssetFileDescriptor openRawResourceFd(int id) throws Resources.NotFoundException { try { FileInputStream fis = (FileInputStream)openRawResource(id); return new AssetFileDescriptor(ParcelFileDescriptor.dup(fis.getFD()), 0, fis.getChannel().size()); } catch (Exception e) { return null; } }
@Implementation public AssetFileDescriptor openRawResourceFd(int id) throws Resources.NotFoundException { try { FileInputStream fis = (FileInputStream)openRawResource(id); return new AssetFileDescriptor(ParcelFileDescriptor.dup(fis.getFD()), 0, fis.getChannel().size()); } catch (Exception e) { return null; } }
/** * Implementation is provided by the parent class. Cannot be overriden. * * @see #openDocumentThumbnail(String, Point, CancellationSignal) */ @Override public final AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException { enforceTree(uri); final ParcelFileDescriptor fd = openDocument(getDocumentId(uri), mode, null); return fd != null ? new AssetFileDescriptor(fd, 0, -1) : null; }
@Override public AssetFileDescriptor openDocumentThumbnail(String documentId, Point sizeHint, CancellationSignal signal) throws FileNotFoundException { Log.v(TAG, "openDocumentThumbnail"); final File file = getFileForDocId(documentId); final ParcelFileDescriptor pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(pfd, 0, AssetFileDescriptor.UNKNOWN_LENGTH); } // END_INCLUDE(open_document_thumbnail)
@Implementation public final AssetFileDescriptor openFd(String fileName) throws IOException { File file = new File(ShadowApplication.getInstance().getAppManifest().getAssetsDirectory().join(fileName).getPath()); ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(parcelFileDescriptor, 0, file.length()); }
@Implementation public final AssetFileDescriptor openFd(String fileName) throws IOException { File file = new File(ShadowApplication.getInstance().getAppManifest().getAssetsDirectory().join(fileName).getPath()); ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(parcelFileDescriptor, 0, file.length()); }
@Implementation public final AssetFileDescriptor openFd(String fileName) throws IOException { File file = new File(ShadowApplication.getInstance().getAppManifest().getAssetsDirectory().join(fileName).getPath()); ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); return new AssetFileDescriptor(parcelFileDescriptor, 0, file.length()); }