History log of /frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5d321d472d9983db52610393e6506e2b2d2da4bf 29-Oct-2013 Jeff Sharkey <jsharkey@android.com> Guard against missing document columns.

When filtering and sorting, guard against missing columns to avoid
crashing entire app.

Bug: 11377065
Change-Id: I04f035c918d743bcc84592f05e3ef9ad0ebfadce
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
04d45a0bdd47c243ad7ccb179aa52a83e7bf45db 24-Oct-2013 Jeff Sharkey <jsharkey@android.com> Show spinner while waiting for mutations.

When mutation operations are waiting for a storage backend, show a
spinner in place of the save button.

Bug: 11333249
Change-Id: I2b620b4532ad977a2b60d4bdc5caa55f89021456
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
b3d42635aafacd80b1e1d257338ea6abb93d22c3 23-Oct-2013 Jeff Sharkey <jsharkey@android.com> Treat document thumbnails as preemptable.

When a more important request comes along, preempt all outstanding
thumbnail requests.

Bug: 11317901
Change-Id: I164fc8d804bb9c471e6da3f8127228043b3ca482
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
d01571e6d4e1c403534e19142720530d324eac9b 02-Oct-2013 Jeff Sharkey <jsharkey@android.com> Isolate calls to each remote DocumentsProvider.

All background work is going through AsyncTasks, which uses a shared
thread pool. Even with the new ContentProviderClient logic to detect
ANRs, the UI can still appear to be unresponsive for 20 seconds, even
if the user attempted to switch to a different backend. In the worst
case, a backlog of thumbnail requests would end up wedging Loaders
for a long time, since they all share the same THREAD_POOL_EXECUTOR.

This change isolates calls to each provider onto their own thread,
which they're free to wedge and recover from over time.

It also means we no longer need a dedicated thread pool for recents
loading, and can use a simpler Semaphore instead.

Disables thumbnails in recents on svelte devices.

Bug: 10993301, 11014856
Change-Id: I7f8a5bbb5f64437e006cb2c48b7e854136d5c38c
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
7aa7601c09ab5d87cc15a0ed9a8f511d494a4cbc 30-Sep-2013 Jeff Sharkey <jsharkey@android.com> Detect wedged ContentProviders, treat as ANR.

All ContentProvider calls are currently blocking, making it hard for
an app to recover when a remote provider is wedged. This change adds
hidden support to ContentProviderClient to timeout remote calls,
treating them as ANRs. This behavior is disabled by default.

Update DocumentsUI to use a 20 second timeout whenever interacting
with a storage provider.

Bug: 10993301, 10819461, 10852518
Change-Id: I10fa3c425c6a7225fff9cb7a0a07659028230cd3
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
6efba22ce510352bb84910d6efc42fecafd31ed7 28-Sep-2013 Jeff Sharkey <jsharkey@android.com> New roots UX, async, performance, docs.

Yet another iteration from UX on how roots should be ordered. Since
we no longer categorize by type, remove from public API. Updated
asset drop with new dividers.

Update public API docs to be explicit about required columns. Hide
flags and columns that aren't required for third-party apps.

Move remainder of potentially blocking work to AsyncTasks, including
creating directories, picked root resolution, and creation of new
documents once picked.

Improve performance of layouts by removing baseline alignment and
reduce hierarchy depth. Set alpha on ImageViews directly to avoid
offscreen rendering hit.

Limit returned recents to 45 days. Show load in recents when still
waiting for backends. Show empty message when no recents stacks to
create from. Use unique key when saving recent stacks.

Bug: 10941423, 10819454, 10964412, 10960718
Change-Id: I08cf589dcda7e203acf67928f4d30322ae36ee94
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
a9ce049db87259e302e2368d2a4a1c11a94fd831 20-Sep-2013 Jeff Sharkey <jsharkey@android.com> Load RootInfo in background, invalidation.

Move all RootInfo queries to background threads to avoid janking
the UI. Update passes happen on spawed task, which swaps out updated
cache results when finished. Support partial updates when only a
single package/authority has changed. Watch for change notifications
for roots, since flags can change over time.

Ignore stopped packages when in background, but query them for roots
when launching any picker UI.

Optimize management launches by treating as one-shot requests that
don't need to wait for all RootInfo.

Bug: 10600454, 10745490
Change-Id: Ibc7b15688ef6b41bd7e9dd0d7564b501e60e49a9
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
de2b22fbc60b29dd8af60cf05862066c04559dc0 12-Sep-2013 Jeff Sharkey <jsharkey@android.com> Handle pipe thumbnails, acquire unstable refs.

Support decoding thumbnails delivered over pipes by wrapping in a
buffered stream. Also switch to using unstable provider references
to avoid crashing DocumentsUI.

Bug: 10516148, 10510851
Change-Id: I85f6eeaca70c97742bf79656d1d0c6da381fdd47
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
b7757a6b32edea62a1a9a803ad83579220f26100 10-Sep-2013 Jeff Sharkey <jsharkey@android.com> Rename offer() to add(), remove/hide some APIs.

Change MatrixCursor offer() to add() based on review feedback. Remove
some now-unused XML metadata. Hide document creation, since it's not
supported in initial version.

Bug: 10577809, 10461706, 10678563
Change-Id: I7b3f4c6899c28f633471ef816bee22bf032aa0d2
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
3f4c205fd3110345241e690f2a2e7c1b477eac76 10-Sep-2013 Jeff Sharkey <jsharkey@android.com> Disabled states, more UX work, bug fixes.

Fix drawable state to correctly show dimmed disabled state. Update
disabled state for all children to grey out text.

Block multi-selection of documents not matching MIME filter. Load
thumbnails in parallel. Show thumbnails in list mode based on MIME
type to match spec.

Give each footer a unique view type to avoid recycler crashes.

Show breadcrumb icons in recent create paths. Fix timestamp bug when
querying/updating recent paths.

Make ContentProviderClient.closeQuietly() really be quiet.

Bug: 10668364, 10510022, 10668701, 10534224, 10667726
Change-Id: I3c705412fb211519f15ad41a273a7533b878e9e5
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java
954be0232655d316bc5decbbd35579af902c75c2 04-Sep-2013 Jeff Sharkey <jsharkey@android.com> Show loading, error, and info messages as footers.

A provider can include extras in their Cursors to indicate that
loading is ongoing, or include an error or informational message,
which are now shown in footer views.

Fix registration to always get change notifications.

Test provider that verifies common provider behavior of holding
a reference to "cloud" resources that are released by GC when the
remote Cursor is closed. Also used to validate Recents behavior
for slow providers.

Bug: 10599268
Change-Id: I331c31058dbb80261e7d279b851197c65ac87e32
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/TestDocumentsProvider.java