@@ -36,26 +36,25 @@ class DownloadManager(
36
36
downloadManager?.let {
37
37
val query = DownloadManager .Query ().setFilterById(downloadId)
38
38
39
- val cursor = downloadManager.query(query).apply {
40
- moveToFirst()
41
- }
42
-
43
- val status = cursor.getInt(cursor.getColumnIndex(DownloadManager .COLUMN_STATUS ))
44
- val uri = cursor.getString(cursor.getColumnIndex(DownloadManager .COLUMN_LOCAL_URI ))
45
- val reason = cursor.getString(cursor.getColumnIndex(DownloadManager .COLUMN_REASON ))
46
- val bytesDownloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager .COLUMN_BYTES_DOWNLOADED_SO_FAR ))
47
- val bytesTotal = cursor.getInt(cursor.getColumnIndex(DownloadManager .COLUMN_TOTAL_SIZE_BYTES ))
48
- val progress = bytesDownloaded * 100f / bytesTotal
39
+ val cursor = downloadManager.query(query)
40
+ if (cursor.moveToFirst()) {
41
+ val status = cursor.getInt(cursor.getColumnIndex(DownloadManager .COLUMN_STATUS ))
42
+ val uri = cursor.getString(cursor.getColumnIndex(DownloadManager .COLUMN_LOCAL_URI ))
43
+ val reason = cursor.getString(cursor.getColumnIndex(DownloadManager .COLUMN_REASON ))
44
+ val bytesDownloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager .COLUMN_BYTES_DOWNLOADED_SO_FAR ))
45
+ val bytesTotal = cursor.getInt(cursor.getColumnIndex(DownloadManager .COLUMN_TOTAL_SIZE_BYTES ))
46
+ val progress = bytesDownloaded * 100f / bytesTotal
49
47
50
- cursor.close()
48
+ cursor.close()
51
49
52
- return when (status) {
53
- DownloadManager .STATUS_SUCCESSFUL -> DownloadStatus .Downloaded (uri)
54
- DownloadManager .STATUS_FAILED -> DownloadStatus .Error (reason)
55
- DownloadManager .STATUS_RUNNING -> DownloadStatus .Downloading (progress)
56
- DownloadManager .STATUS_PAUSED -> DownloadStatus .Downloading (progress)
57
- DownloadManager .STATUS_PENDING -> DownloadStatus .Downloading (progress)
58
- else -> DownloadStatus .Unknown
50
+ return when (status) {
51
+ DownloadManager .STATUS_SUCCESSFUL -> DownloadStatus .Downloaded (uri)
52
+ DownloadManager .STATUS_FAILED -> DownloadStatus .Error (reason)
53
+ DownloadManager .STATUS_RUNNING -> DownloadStatus .Downloading (progress)
54
+ DownloadManager .STATUS_PAUSED -> DownloadStatus .Downloading (progress)
55
+ DownloadManager .STATUS_PENDING -> DownloadStatus .Downloading (progress)
56
+ else -> DownloadStatus .Unknown
57
+ }
59
58
}
60
59
}
61
60
0 commit comments