Android Library that help you to download and unzip file easily.
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Add the dependency
dependencies {
compile 'com.github.EunsilJo:FileDownloadManager:1.0.2'
}
Need to include these permissions in your AndroidManifest.xml file.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Create FileDownloadManager and call methods.
FileDownloadManager mFileDownloadManager = new FileDownloadManager(Context);
mFileDownloadManager.check(...)
mFileDownloadManager.download(...)
mFileDownloadManager.unzip(...)
mFileDownloadManager.clear(...)
A FileDownloadManager runs with one ExecutorService.
private ExecutorService mThreadPool;
private static final int MAXIMUM_POOL_SIZE = 1;
public FileDownloadManager(Context context) {
mContext = context;
mThreadPool = Executors.newFixedThreadPool(MAXIMUM_POOL_SIZE);
}
You can receive state and result.
public interface OnFileListener<T> {
void onFileStart();
void onFileProgress(int progress);
void onFileComplete(T result);
void onFileError(int error);
}
public synchronized void check(String url, OnFileListener<Integer> listener)
- String url : location of download file
- OnFileListener listener : can receive the size of file.
public synchronized void download(String url, String outputDirPath, String fileName, OnFileListener<String> listener)
- String url : location of download file
- String outputDirPath : directory path to download and save
- String fileName : file name to download and save
- OnFileListener listener : can receive the file path downloaded.
public synchronized void unzip(String filePath, String targetDirPath, OnFileListener<String> listener)
- String filePath : location of zip file
- String targetDirPath : directory path to unzip
- OnFileListener listener : can receive the file path unzipped(targetDirPath).
public synchronized void clear(String dirPath, OnFileListener<String> listener)
- String dirPath : directory path to clear
- OnFileListener listener : can receive the directory path cleared(dirPath).
Please check the demo app to see examples.