diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-09-05 17:13:59 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-09-06 08:07:49 -0700 |
commit | 3c03d1b8b7d96209d7b83b6881421ddfc17ccc52 (patch) | |
tree | 4b7361352f28e1d7d20fb2affe773cad5da0a976 /src/com/android/providers/downloads/DownloadStorageProvider.java | |
parent | dd00499d5806ab043e6c882641433a21a9406b6a (diff) | |
download | android_packages_providers_DownloadProvider-3c03d1b8b7d96209d7b83b6881421ddfc17ccc52.tar.gz android_packages_providers_DownloadProvider-3c03d1b8b7d96209d7b83b6881421ddfc17ccc52.tar.bz2 android_packages_providers_DownloadProvider-3c03d1b8b7d96209d7b83b6881421ddfc17ccc52.zip |
Extend trampoline to show dialogs.
Handle incoming manage requests by launching finished downloads,
or showing various retry dialogs. Pipe through summary, show
percentage when in progress, and always show total size and MIME type.
Bug: 10531347, 10599641
Change-Id: I3be2bc67ea3c0ef795146177200f5be77ad5114e
Diffstat (limited to 'src/com/android/providers/downloads/DownloadStorageProvider.java')
-rw-r--r-- | src/com/android/providers/downloads/DownloadStorageProvider.java | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index 04cbf090..f1cd8fa9 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -41,7 +41,7 @@ import java.io.FileNotFoundException; * contents. */ public class DownloadStorageProvider extends DocumentsProvider { - private static final String DOC_ID_ROOT = Constants.STORAGE_DOC_ID_ROOT; + private static final String DOC_ID_ROOT = Constants.STORAGE_ROOT_ID; private static final String[] DEFAULT_ROOT_PROJECTION = new String[] { Root.COLUMN_ROOT_ID, Root.COLUMN_ROOT_TYPE, Root.COLUMN_FLAGS, Root.COLUMN_ICON, @@ -51,7 +51,8 @@ public class DownloadStorageProvider extends DocumentsProvider { private static final String[] DEFAULT_DOCUMENT_PROJECTION = new String[] { Document.COLUMN_DOCUMENT_ID, Document.COLUMN_MIME_TYPE, Document.COLUMN_DISPLAY_NAME, - Document.COLUMN_LAST_MODIFIED, Document.COLUMN_FLAGS, Document.COLUMN_SIZE, + Document.COLUMN_SUMMARY, Document.COLUMN_LAST_MODIFIED, Document.COLUMN_FLAGS, + Document.COLUMN_SIZE, }; private DownloadManager mDm; @@ -214,33 +215,35 @@ public class DownloadStorageProvider extends DocumentsProvider { if (mimeType == null) { mimeType = "application/octet-stream"; } - Long size = null; + Long size = cursor.getLong( + cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); + if (size == -1) { + size = null; + } final int status = cursor.getInt( cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS)); switch (status) { case DownloadManager.STATUS_SUCCESSFUL: - size = cursor.getLong( - cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); - if (size == -1) { - size = null; - } break; case DownloadManager.STATUS_PAUSED: - mimeType = null; summary = getContext().getString(R.string.download_queued); break; case DownloadManager.STATUS_PENDING: - mimeType = null; summary = getContext().getString(R.string.download_queued); break; case DownloadManager.STATUS_RUNNING: - mimeType = null; - summary = getContext().getString(R.string.download_running); + final long progress = cursor.getLong(cursor.getColumnIndexOrThrow( + DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)); + if (size != null) { + final long percent = progress * 100 / size; + summary = getContext().getString(R.string.download_running_percent, percent); + } else { + summary = getContext().getString(R.string.download_running); + } break; case DownloadManager.STATUS_FAILED: default: - mimeType = null; summary = getContext().getString(R.string.download_error); break; } @@ -256,6 +259,7 @@ public class DownloadStorageProvider extends DocumentsProvider { final RowBuilder row = result.newRow(); row.offer(Document.COLUMN_DOCUMENT_ID, docId); row.offer(Document.COLUMN_DISPLAY_NAME, displayName); + row.offer(Document.COLUMN_SUMMARY, summary); row.offer(Document.COLUMN_SIZE, size); row.offer(Document.COLUMN_MIME_TYPE, mimeType); row.offer(Document.COLUMN_LAST_MODIFIED, lastModified); |