step 1: add the following codes in 'build.gradle(Project: yourproject)'
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
step 2: add the following codes in 'build.gradle(Madule: app)'
dependencies {
implementation 'com.github.mahdizareeii:File-Downloader:1.8'
}
step 3: add the permissions in your manifest
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
step 4: how to use
/* this is sample of streaming download */
//url of file
String fileDownloadUrl = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
//direction of downloadedFile
String fileStorageDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/hello_stream_download.png";
//get instance of FileDownloader
fileDownloader = new FileDownloader(fileDownloadUrl, fileStorageDir);
//download file
fileDownloader.streamDownloadFile(new OnFileDownloadListener() {
@Override
public void onStart() {
Toast.makeText(MainActivity.this, "Download Started", Toast.LENGTH_SHORT).show();
}
@Override
public void onProgressUpdate(int progress) {
Log.i("onProgressUpdate:", "Downloading Stream: " + progress);
}
@Override
public void onError(String error) {
Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
}
@Override
public void onDownloaded() {
Toast.makeText(MainActivity.this, "downloaded", Toast.LENGTH_SHORT).show();
}
});
/* this is sample of full download */
//url of file
String fileDownloadUrl = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
//direction of downloadedFile
String fileStorageDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/hello_full_download.png";
//get instance of FileDownloader
fileDownloader = new FileDownloader(fileDownloadUrl, fileStorageDir);
//download file
fileDownloader.fullDownloadFile(new OnFileDownloadListener() {
@Override
public void onStart() {
Toast.makeText(MainActivity.this, "Download Started", Toast.LENGTH_SHORT).show();
}
@Override
public void onProgressUpdate(int progress) {
Log.i("onProgressUpdate:", "Downloading full: " + progress);
}
@Override
public void onError(String error) {
Toast.makeText(MainActivity.this, error, Toast.LENGTH_SHORT).show();
}
@Override
public void onDownloaded() {
Toast.makeText(MainActivity.this, "downloaded", Toast.LENGTH_SHORT).show();
}
});
//cancel stream download file
fileDownloader.cancelStreamDownload(new OnFileDownloadCancelListener() {
@Override
public void onCancel() {
Toast.makeText(MainActivity.this, "Download Stream Canceled", Toast.LENGTH_SHORT).show();
}
});
//cancel full download file
fileDownloader.cancelFullDownload(new OnFileDownloadCancelListener() {
@Override
public void onCancel() {
Toast.makeText(MainActivity.this, "Download full Canceled", Toast.LENGTH_SHORT).show();
}
});