Package com.castlabs.android.downloader
Class ZipDataSource
- java.lang.Object
-
- com.castlabs.android.downloader.ZipDataSource
-
- All Implemented Interfaces:
com.google.android.exoplayer2.upstream.DataSource
public class ZipDataSource extends Object implements com.google.android.exoplayer2.upstream.DataSource
Implementation of a DataSource that can read data from a zip file. The URI scheme for this should be zip. We expect to get a URI where the path consistes of the path to the zip and the path to the zip entry. For examplezip:/path/to/container.zip/path/to/entry.txt.- Since:
- 3.0.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classZipDataSource.ZipDataSourceExceptionThrown when IOException is encountered during local file read operation.
-
Constructor Summary
Constructors Constructor Description ZipDataSource()Constructs a newDataSourcethat retrieves data from a file.ZipDataSource(com.google.android.exoplayer2.upstream.TransferListener listener)Constructs a newDataSourcethat retrieves data from a file.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTransferListener(com.google.android.exoplayer2.upstream.TransferListener listener)voidclose()intgetResponseCode()Map<String,List<String>>getResponseHeaders()UrigetUri()longopen(com.google.android.exoplayer2.upstream.DataSpec dataSpec)intread(byte[] buffer, int offset, int readLength)
-
-
-
Constructor Detail
-
ZipDataSource
public ZipDataSource()
Constructs a newDataSourcethat retrieves data from a file.
-
ZipDataSource
public ZipDataSource(com.google.android.exoplayer2.upstream.TransferListener listener)
Constructs a newDataSourcethat retrieves data from a file.- Parameters:
listener- An optional listener. Specifynullfor no listener.
-
-
Method Detail
-
getResponseCode
public int getResponseCode()
- Specified by:
getResponseCodein interfacecom.google.android.exoplayer2.upstream.DataSource
-
getResponseHeaders
public Map<String,List<String>> getResponseHeaders()
- Specified by:
getResponseHeadersin interfacecom.google.android.exoplayer2.upstream.DataSource
-
addTransferListener
public void addTransferListener(com.google.android.exoplayer2.upstream.TransferListener listener)
- Specified by:
addTransferListenerin interfacecom.google.android.exoplayer2.upstream.DataSource
-
open
public long open(com.google.android.exoplayer2.upstream.DataSpec dataSpec) throws ZipDataSource.ZipDataSourceException- Specified by:
openin interfacecom.google.android.exoplayer2.upstream.DataSource- Throws:
ZipDataSource.ZipDataSourceException
-
read
public int read(byte[] buffer, int offset, int readLength) throws ZipDataSource.ZipDataSourceException- Specified by:
readin interfacecom.google.android.exoplayer2.upstream.DataSource- Throws:
ZipDataSource.ZipDataSourceException
-
getUri
public Uri getUri()
- Specified by:
getUriin interfacecom.google.android.exoplayer2.upstream.DataSource
-
close
public void close() throws ZipDataSource.ZipDataSourceException- Specified by:
closein interfacecom.google.android.exoplayer2.upstream.DataSource- Throws:
ZipDataSource.ZipDataSourceException
-
-