@@ -36,26 +36,25 @@ class DownloadManager(
3636 downloadManager?.let {
3737 val query = DownloadManager .Query ().setFilterById(downloadId)
3838
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
4947
50- cursor.close()
48+ cursor.close()
5149
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+ }
5958 }
6059 }
6160
0 commit comments