Swallow errors when trying to determine available disk space when downloading (closes #3603)
This commit is contained in:
parent
421dfb4a2d
commit
3e6b0117fd
2 changed files with 7 additions and 8 deletions
|
@ -267,15 +267,16 @@ class Downloader(
|
|||
* @param download the chapter to be downloaded.
|
||||
*/
|
||||
private fun downloadChapter(download: Download): Observable<Download> = Observable.defer {
|
||||
val chapterDirname = provider.getChapterDirName(download.chapter)
|
||||
val mangaDir = provider.getMangaDir(download.manga, download.source)
|
||||
|
||||
if (DiskUtil.getAvailableStorageSpace(mangaDir) < MIN_DISK_SPACE) {
|
||||
val availSpace = DiskUtil.getAvailableStorageSpace(mangaDir)
|
||||
if (availSpace != -1L && availSpace < MIN_DISK_SPACE) {
|
||||
download.status = Download.ERROR
|
||||
notifier.onError(context.getString(R.string.download_insufficient_space), download.chapter.name)
|
||||
return@defer Observable.just(download)
|
||||
}
|
||||
|
||||
val chapterDirname = provider.getChapterDirName(download.chapter)
|
||||
val tmpDir = mangaDir.createDirectory(chapterDirname + TMP_DIR_SUFFIX)
|
||||
|
||||
val pageListObservable = if (download.pages == null) {
|
||||
|
|
|
@ -34,14 +34,12 @@ object DiskUtil {
|
|||
* Gets the available space for the disk that a file path points to, in bytes.
|
||||
*/
|
||||
fun getAvailableStorageSpace(f: UniFile): Long {
|
||||
val stat = try {
|
||||
StatFs(f.filePath)
|
||||
return try {
|
||||
val stat = StatFs(f.uri.path)
|
||||
stat.availableBlocksLong * stat.blockSizeLong
|
||||
} catch (_: Exception) {
|
||||
// Assume that exception is thrown when path is on external storage
|
||||
StatFs(Environment.getExternalStorageDirectory().path)
|
||||
-1L
|
||||
}
|
||||
|
||||
return stat.availableBlocksLong * stat.blockSizeLong
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Reference in a new issue