| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using a contract class requires that a provider implement it exactly
with little help. This change introduces a DocumentsProvider abstract
class that provides a client-side implementation of the contract that
greatly reduces developer burden, and improves correctness.
This also moves to first-class DocumentRoot objects, and moves calls
with complex side effects to be ContentProvider.call() invocations,
offering more granular permission control over Uri operations that
shouldn't be available through Uri grants.
This new design also relaxes the requirement that root information be
burned into every Uri. Migrate ExternalDocumentsProvider and
DocumentsUI to adopt new API.
Bug: 10497206
Change-Id: I6f2b3f519bfd62a9d693223ea5628a971ce2e743
|
| |
| |
| |
| |
| | |
Change-Id: Ic6b1048f4afaa520fea602ec4367de5e192186bd
Auto-generated-cl: translation import
|
|/
|
|
|
| |
Change-Id: I7be513f3d5decec282200b01900ce480fcf291cf
Auto-generated-cl: translation import
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since ContentProvider file operations can end up doing substantial
network I/O before returning the file, allow clients to cancel their
file requests with CancellationSignal.
Ideally this would only be needed for openFile(), but ContentResolver
heavily relies on openAssetFile() and openTypedAssetFile() for common
cases.
Also improve documentation to mention reliable ParcelFileDescriptors
and encourage developers to move away from "rw" combination modes,
since they restrict provider flexibility. Mention more about places
where pipes or socket pairs could be returned.
Improve DocumentsContract documentation.
Bug: 10329944
Change-Id: I49b2825ea433eb051624c4da3b77612fe3ffc99c
|
|/
|
|
|
| |
Change-Id: Ibbd7d5bc59126933bbcf0370cbdcd590f89d0ad7
Auto-generated-cl: translation import
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement EXTRA_HAS_MORE and EXTRA_REQUEST_MORE contract with
document providers. Providers can include EXTRA_HAS_MORE when
additional data is available with additional cost, such as a network
request.
Listen to content changes based on returned cursor instead of
original Uri. Include a test backend to exercise. UX still under
development.
Bug: 10350207
Change-Id: Iaa8954df55a1a1c0aa96eb8a4fd288e12c2fbb01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In manage mode, touching launches a VIEW intent for the file. Also
adds actions for sharing and deleting.
Move roots and thumbnail caches into Application object, and flush
cache when thumbnail size changes. Listen for package changes and
broadcasts that should invalidate our roots cache.
Pick default grid/list mode based on provider hint.
Bug: 10329983, 10330210, 10378834, 10330069
Change-Id: I75afb1c58ab71bb9d55852b1059da7257a376248
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When requesting thumbnails, check if their dimensions are larger
than requested, and downscale to avoid memory pressure. Load them
async and with LruCache.
Extend MatrixCursor so that RowBuilder can offer() columns without
requiring they know the projection map. This makes it easier to
respond to query() calls, where the remote side controls the
projection map. Use it to handle custom projections in external
storage backend.
Update date/time formatting to match spec.
Bug: 10333418, 10331689
Change-Id: I7e947a8e8068af8a39b55e6766b3241de4f3fc16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create documents manage mode to support Downloads and transient
storage devices. Locks user into requested backend root, and forces
file sizes on and sorting by last modified.
Separate API constants for Documents versus Roots, and give concrete
MIME types for roots.
Treat null sizes as unknown. Documents are always enabled in list
so that divider is drawn. Mark external storage file as writable.
Bug: 10329983, 10332993, 10332952
Change-Id: I05f4fdf5b04041a38e1ba7fb30202a3b0c615bf6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Document browser now takes over all GET_CONTENT requests that request
openable Uris. It shows both storage backends and includes other apps
that respond to GET_CONTENT. Only grants transient read permissions.
Better guarding against throwing storage backends. Send sort order
and local-only hinting to backends.
Require that OPEN/CREATE_DOC users include openable category.
Bug: 10330112, 10329976, 10340741, 10331689, 10329971
Change-Id: Ieb8768a6d71201816046f4a4c48832061a313c28
|
|
|
|
| |
Change-Id: Idbde1d832ac95c4b3c8bd5cd82b0fa695e0bcb6d
|
|
|
|
|
|
|
|
| |
Begin throwing FNFE when storage provider doesn't know about document
or when it's having trouble. Treat all provider errors as FNFE and
avoid crashing our UI.
Change-Id: I946f1ae4125791999464dc4ce494853d5d1c0629
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add settings to show file sizes and advanced storage devices, both
disabled by default. Add sorting by size when enabled in settings.
Always show all documents, but only allow selection when they match
MIME filter. When creating, select entire filename on focus. When
creating, treat selected documents as replacement targets using that
exact Uri unless display name is changed.
Show available bytes for device roots. Show empty text label in
empty directories. Split grid backend and details into two separate
lines. Fix path label ordering when rendering recent directories.
Change-Id: I44c62e8adb8ca7d4355510a13d1ba975196a2d29
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Show recent directories in a separate fragment, and save as serialized
versions of new DirectoryStack. Cleaner behavior around recents and
search, instead of treating them as pseudo-Documents.
More uniform item layouts between list and grid, including both date
and size information, and originating storage root in recents. Avoid
clashing directory loaders by assigning unique numbers. Promote
list/grid switching up into activity.
Change-Id: I9a93460b896067ca036d7e772eeabde31face2e1
|
|
|
|
|
|
|
|
|
|
| |
Move storage roots into a fragment, since it's not a drawer on
tablets. Cluster and sort roots when displaying. SectionedListAdapter
to make clustered roots easier to manage. Add docs for root types.
Move roots cache into separate class to make it easier to share.
Change-Id: Ia0b92eade059e816324641f600c08026c0e268c9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update DirectoryFragment to render List<Document>, making it more
general purpose. Feed it documents either from a backend Cursor or
after resolving fields from a recents Cursor. Start in recents when
no persisted stack available. Synthesize a root for recents.
Local directory filtering and sorting using predicates and
comparators, all performed on background thread. Introduce
UriDerivativeLoader which handles ContentObserver updates while
producing a derivative work of a Cursor.
Split data model classes into separate files.
Change-Id: Idb88b4ee22c58c8e508328e678877f7e4c978533
|
|
|
|
|
|
|
|
|
|
|
| |
Move to manual tracking of directory navigation stack so we have Uri
data to persist, instead of opaque fragment backstack. Remember
directory stacks across launches on a per-app basis.
Start recording recently opened and created files. Uniform Uri
parameter extraction utility methods in contract.
Change-Id: I79ed30ee10272bf7c53d339e797639c993f649bb
|
|
|
|
|
|
|
|
|
|
|
| |
The same document may be present with different sematics under
multiple storage roots, so always reference using both ROOT_ID and
DOC_ID. This enables backends to revoke permissions for an entire
root, such as when an account is removed.
Start building provider to remember recently accessed documents.
Change-Id: I75befa2e61393dec12fcc7fd27f631fcddae46fa
|
|
|
|
|
|
|
|
|
|
| |
Introduce XML metadata for storage backends, used to indicate if
custom roots should be queried, and provide any custom MIME type
icons inside that backend.
Parse metadata and resolve custom icons in UI.
Change-Id: Iec026c0b10845edff7a345d9389691ddf2c87a0e
|
|
|
|
|
|
|
|
| |
Move backend root exploration into sliding drawer, and adjust action
bar when moving between modes. Moves sorting into action bar spinner
instead of separate dialog. Also add initial search support.
Change-Id: I70189911ba56ae6bd93d5c503a8600acd6d6c0c5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow storage backends to publish multiple roots into the UI, which
are defined by a directory GUID, type, and label details. Update
external provider to surface a primary external storage root, and
switch to burning file path into the returned GUIDs so they remain
durable.
Added insert, update, and delete support to external provider. Adds
file extensions to display names when needed to match MIME type.
Add flags for searching and deletion, and extras for Cursor
pagination. Add directory creation dialog to UI. Opening a document
always gives write access.
Change-Id: I9bea1aa0dcde909a5ab86aefeece7451ab920cf1
|
|
|
|
| |
Change-Id: Iae8ef3e751a53a3f7df0a7c5bc666ec75e91d9e9
|
|
|
|
|
|
|
|
|
|
| |
Extract mode information into DisplayState which is now consistent
across directory traversal. Use grid mode by default when working
with images. Dialog to switch sort order.
Add testing UI to exercise until we have real clients.
Change-Id: Ic423584d4559732fb3d2aea9e0406b57d43f6e6d
|
|
|
|
|
|
|
|
|
|
| |
When caller has specified that multiple documents are okay, enable
multi-select action mode. Currently only allows document selection,
not directories. Returns multiple documents through ClipData.
Fix bug where GridView was stuck with 2 columns on tablets.
Change-Id: Id49b29a86330639b56fa116d37e7f0d874980c5b
|
|
|
|
|
|
|
|
| |
Support both grid and list view of documents. Show breadcrumb
navigation trail in action bar. Start supporting file and directory
creation.
Change-Id: I93a973da7b0d4387a57fe719e7bb20944adb0290
|
|
Continuing to flesh out storage backends by adding an external
storage document backend. Still rough, but it can traverse files
and directories.
Early pass at OPEN/CREATE_DOC picker UI, which offers to traverse
any known storage backends. Supports opening subdirectories and
returning a picked file.
Change-Id: Idc3554036b3816a93d9b465ee8a620746859d2ae
|