193 Commits

Author SHA1 Message Date
Jeff Sharkey
21d8e96d84 am ef4c3790: am 27d3c0fe: Merge "Isolate calls to each remote DocumentsProvider." into klp-dev
* commit 'ef4c3790e52beab467359f6b5125b66fbe1993ef':
  Isolate calls to each remote DocumentsProvider.
2013-10-02 10:11:18 -07:00
Jeff Sharkey
ef4c3790e5 am 27d3c0fe: Merge "Isolate calls to each remote DocumentsProvider." into klp-dev
* commit '27d3c0fe3775c85c2e25eb84089280cb217799c8':
  Isolate calls to each remote DocumentsProvider.
2013-10-02 09:55:21 -07:00
Jeff Sharkey
6d7de848d7 am 1fc9eb78: am 16326f70: Merge "Fix animations, padding in RTL mode." into klp-dev
* commit '1fc9eb78ab7009250be52a79de5acab108a37312':
  Fix animations, padding in RTL mode.
2013-10-02 09:37:07 -07:00
Jeff Sharkey
7f60e70e81 am 666b998b: am 364fc14f: Merge "Detect wedged ContentProviders, treat as ANR." into klp-dev
* commit '666b998b67fe7bb6fc11dd6d683a18b5690afd39':
  Detect wedged ContentProviders, treat as ANR.
2013-10-02 09:35:14 -07:00
Jeff Sharkey
d01571e6d4 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
2013-10-02 08:54:02 -07:00
Jeff Sharkey
1fc9eb78ab am 16326f70: Merge "Fix animations, padding in RTL mode." into klp-dev
* commit '16326f7085ebb05e4229d96c6e539eb9ecb2d3de':
  Fix animations, padding in RTL mode.
2013-10-01 18:46:08 -07:00
Jeff Sharkey
ee3e1603fd Fix animations, padding in RTL mode.
Show directory animations coming in from left-side when in RTL
language.  Also fix NinePatchDrawable to correctly mirror its padding
when auto-mirrored, and fix InsetDrawable to propagate the layout
direction to the wrapped Drawable.

Bug: 10987190, 11030793
Change-Id: I1213802a07d0c4ced93438df1e6ddf5aed3df677
2013-10-01 16:03:00 -07:00
Jeff Sharkey
666b998b67 am 364fc14f: Merge "Detect wedged ContentProviders, treat as ANR." into klp-dev
* commit '364fc14f544712a2d32cc0f32e84dfe4127376a6':
  Detect wedged ContentProviders, treat as ANR.
2013-10-01 10:31:47 -07:00
Jeff Sharkey
7aa7601c09 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
2013-10-01 09:50:41 -07:00
Jeff Sharkey
a2c42861a1 am cc637d9a: Merge "New roots UX, async, performance, docs." into klp-dev
* commit 'cc637d9ae5920ac2f685090f595dc1e1643d71cc':
  New roots UX, async, performance, docs.
2013-09-30 17:09:48 -07:00
Jeff Sharkey
fa9c7ec0ee am 10d65592: Merge "Make directories always enabled, for realz." into klp-dev
* commit '10d655927c5c10af0561ecc0961f9a9fcbad89f0':
  Make directories always enabled, for realz.
2013-09-30 17:07:17 -07:00
Baligh Uddin
bb1abd1ce5 Import translations. DO NOT MERGE
Change-Id: Ibf90ac2ca945f9a5e803f3bbfbb5caa69b08a4ce
Auto-generated-cl: translation import
2013-09-30 10:20:46 -07:00
Jeff Sharkey
cc637d9ae5 Merge "New roots UX, async, performance, docs." into klp-dev 2013-09-28 00:27:29 +00:00
Jeff Sharkey
6efba22ce5 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
2013-09-27 17:13:13 -07:00
Jeff Sharkey
10d655927c Merge "Make directories always enabled, for realz." into klp-dev 2013-09-27 02:55:05 +00:00
Jeff Sharkey
3d52dc9c3a Make directories always enabled, for realz.
Bug: 10946731
Change-Id: I3eb132c53e47f31d1d1723ed2262823b54b1fce0
2013-09-26 19:42:52 -07:00
Jeff Sharkey
66ee877f5d am 8c6c0419: Merge "Tighten flags enforcement, API to test Uris." into klp-dev
* commit '8c6c04197e58be6f3e46ba6a38f5d16e4fb091fa':
  Tighten flags enforcement, API to test Uris.
2013-09-26 13:37:21 -07:00
Jeff Sharkey
8c6c04197e Merge "Tighten flags enforcement, API to test Uris." into klp-dev 2013-09-26 20:33:29 +00:00
Jeff Sharkey
ee2f7df9ee Tighten flags enforcement, API to test Uris.
Check and throw if callers request invalid grant flags.  Add API to
test if a Uri is backend by a DocumentsProvider.

Bug: 10919391, 10935608
Change-Id: Ifa6afefb95983558c8c64dc15ddf650e9fe07080
2013-09-26 13:14:45 -07:00
Jeff Sharkey
cd30bb6c71 am bb77d99c: Merge "Directories are always enabled; update assets." into klp-dev
* commit 'bb77d99c257bc4a3371548c4bc8ba7088fa76005':
  Directories are always enabled; update assets.
2013-09-26 11:00:48 -07:00
Jeff Sharkey
bb77d99c25 Merge "Directories are always enabled; update assets." into klp-dev 2013-09-26 17:58:41 +00:00
Jeff Sharkey
2a030b05a9 Directories are always enabled; update assets.
Fix bug where item enabled state depended on FLAG_SUPPORTS_WRITE;
directories are now always enabled.  Also unifies enabled testing.

Bug: 10903210, 10946731
Change-Id: I241533d273dfe4a2146bb322a8bd93066bf4ef55
2013-09-26 10:54:19 -07:00
Baligh Uddin
1ffe09e2f1 Merge "Import translations. DO NOT MERGE" into klp-dev 2013-09-26 02:53:59 +00:00
Baligh Uddin
976df296f4 Import translations. DO NOT MERGE
Change-Id: I8d908dee86b15624d846ab335337b88b371ed5d5
Auto-generated-cl: translation import
2013-09-25 17:19:25 -07:00
Jeff Sharkey
687c6221c8 am be17a614: Merge "Require that persistable Uri permissions be taken." into klp-dev
* commit 'be17a61447e1a7992a6c855059a3c43ab3216610':
  Require that persistable Uri permissions be taken.
2013-09-25 16:05:36 -07:00
Jeff Sharkey
e66c1778f8 Require that persistable Uri permissions be taken.
Change our Intent flag to indicate that a Uri permission grant is
persistable, but don't actually persist it until explicitly taken by
the receiving app.  This prevents apps from spamming each other if
persisted permissions aren't really required.

Remember the last time a persisted grant was taken by an app, and
use this to prune away the oldest grants when the number of grants
grows too large.  Allow apps to query persisted grants they are
holding, and allow them to release previously persisted grants. Add
public UriPermission class to return grant details and timestamp.

Track various permission strengths separately, and combine together
after each mutation pass.  Persistable grants are currently treated
like global grants, but they could be moved to have owners in the
future.  Require that grant holders trying to extend a persistable
permission actually hold a persistable permission themselves.

Bug: 10835779
Change-Id: I95b2f797c04ce7fd2612f9a644685dbd44e03759
2013-09-25 15:16:41 -07:00
Jeff Sharkey
a0e531bba4 am 82b05f59: Merge "Handle null stacks gracefully." into klp-dev
* commit '82b05f599bf3c84e53d42599ef257b3e9642855d':
  Handle null stacks gracefully.
2013-09-25 14:46:33 -07:00
Jeff Sharkey
6a20e57411 Handle null stacks gracefully.
Bug: 10928395
Change-Id: Ie7c3f7e0eb068ece0cf678a5d6346f18a413856b
2013-09-25 14:39:14 -07:00
Baligh Uddin
86d7136377 Import translations. DO NOT MERGE
Change-Id: Ifaa3920e5a0d002b7bdb9eb668acf5cbc36729fc
Auto-generated-cl: translation import
2013-09-25 09:07:42 -07:00
Michael Wright
f8ea6dd6cb am 870cb435: Merge "Mirror DocumentsUI assets for RTL layouts" into klp-dev
* commit '870cb43585b2432622c807e762dd7992de4eb0f1':
  Mirror DocumentsUI assets for RTL layouts
2013-09-24 15:40:47 -07:00
Michael Wright
870cb43585 Merge "Mirror DocumentsUI assets for RTL layouts" into klp-dev 2013-09-24 22:39:07 +00:00
Jeff Sharkey
173ef6aa24 am 08df7d91: Merge "Freshen restored stacks, more UX bug fixes." into klp-dev
* commit '08df7d9137bd90c57623bc9cc9db3629e3a945eb':
  Freshen restored stacks, more UX bug fixes.
2013-09-24 13:36:34 -07:00
Jeff Sharkey
deffadeb74 Freshen restored stacks, more UX bug fixes.
When restoring a persisted stack, such as last location or a location
where save occurred, freshen the DocumentStack to get the latest
details from backend, and ensure the path is still valid.

Filter Recent directories in create mode based on roots allowed by
incoming request.

Remember when user last picked an external app, and open drawer next
time user launches for GET_CONTENT.

Fix state list drawable ordering, and avoid clobbering Drawable
callback when wrapping in InsetDrawable; tricksy hobbitses!

Make grid items smaller to always fit two columns on phones.  Draw
grid items all the way to screen edge; don't clip to padding.  Better
error message when folder creation failed.  Show Recents in grid mode
when picking any visual content, not just images.

Bug: 10846100, 10903211, 10898993, 10892808, 10892058, 10892009, 10885012
Change-Id: Ia0f88d911abc6ea03645d6fd3e04271c21d5936a
2013-09-24 12:57:47 -07:00
Michael Wright
56d2030a35 Mirror DocumentsUI assets for RTL layouts
Bug: 10641916
Change-Id: I037adeb5ec7df6e3812be8653929a55ed8b87323
2013-09-24 12:50:00 -07:00
Jeff Sharkey
94bf4d69f2 am 0156a379: Merge "Allow saving to Downloads." into klp-dev
* commit '0156a379e21621d2724635eb96f37a81efc7be06':
  Allow saving to Downloads.
2013-09-23 19:00:01 -07:00
Jeff Sharkey
b180a65d41 Allow saving to Downloads.
Uses new column to mark writability.  Also filter file selection in
create mode to only allow writable files.

Bug: 10667164, 10893268
Change-Id: I90f74efbb7ac634fbdb3cc02a904a96a434d3605
2013-09-23 14:23:45 -07:00
Jeff Sharkey
a817e49e0c am dbfceb7e: Merge "Latest UX asset drop, grid padding." into klp-dev
* commit 'dbfceb7ea0f2925fa2e9cce4a5eece0b72d9c093':
  Latest UX asset drop, grid padding.
2013-09-22 12:57:24 -07:00
Jeff Sharkey
b8a48da2a7 am 5e1a5e5b: Merge "Create unique files, root ordering, UI bugs." into klp-dev
* commit '5e1a5e5bad475696e842addceb7dd6a519879f98':
  Create unique files, root ordering, UI bugs.
2013-09-22 12:57:20 -07:00
Jeff Sharkey
1feeddf518 Latest UX asset drop, grid padding.
Bring in latest asset drop.  Apply grid padding programmatically
instead of waiting for asset.  Remove alpha from directory animation.

Update save footer background to match spec.

Bug: 10700025
Change-Id: I8eef08f36d04767b78e91b23f72bdbebfbb02f58
2013-09-21 15:26:37 -07:00
Jeff Sharkey
5545f56f75 Create unique files, root ordering, UI bugs.
When a file already exists on disk, try adding a counter suffix to
make a unique name.  Move services near top of roots list, just below
recents.  Remove "Documents" root.

Increase number of recents allowed from single provider, and add more
logging to diagnose wedged loaders.

When launching GET_CONTENT apps, wait for successful result before
relaying result; canceled requests now return to DocumentsUI.

Add CloseGuard to ContentProviderClients, since leaked instances can
keep the remote process alive.

Fix UI bug around trailing breadcrumbs.  Fix bug that dropped Recents
from roots list.  Add up action to Settings activity.  Give our
activity a default icon while waiting for async roots to load.

Bug: 10818683, 10819461, 10819461, 10819196, 10860199
Change-Id: I7b9e26b1cf8353dd3175458b23da2b4bda6c5831
2013-09-21 14:07:16 -07:00
Jeff Sharkey
89dec7e6e9 am a9ce049d: Load RootInfo in background, invalidation.
* commit 'a9ce049db87259e302e2368d2a4a1c11a94fd831':
  Load RootInfo in background, invalidation.
2013-09-19 19:59:22 -07:00
Jeff Sharkey
a9ce049db8 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
2013-09-19 19:53:32 -07:00
Jeff Sharkey
ba8129f1b1 am 18b94817: Merge "Also catch one more tablet layout NPE." into klp-dev
* commit '18b94817a452081f6756cd30be9414c496fa1ca7':
  Also catch one more tablet layout NPE.
2013-09-19 11:30:47 -07:00
Jeff Sharkey
f8abf2e387 Also catch one more tablet layout NPE.
Bug: 10837208
Change-Id: I178110431221773658403319b2be7aff22adadc8
2013-09-19 11:25:56 -07:00
Jeff Sharkey
5de6787d1e am 7cb93f4e: Merge "Fix tablet layout and resources." into klp-dev
* commit '7cb93f4e227d603dadd065ea4173b6779279221e':
  Fix tablet layout and resources.
2013-09-19 11:24:09 -07:00
Jeff Sharkey
0aaeaab0bf Fix tablet layout and resources.
Bug: 10837208
Change-Id: I563a3b66976b5b02cdb25e077bf0709bb6e66926
2013-09-19 11:19:39 -07:00
Dave Langemak
3e7d0cc4c7 am a2d65108: Merge "Latest UX asset drop." into klp-dev
* commit 'a2d65108dd32a0836fe08f0c72efdd5c727dad44':
  Latest UX asset drop.
2013-09-18 22:04:53 -07:00
Jeff Sharkey
54a3bc8866 am 0972ae15: Merge "Save directory state and animate." into klp-dev
* commit '0972ae156b2e7f033baaf551e26b425e90faa895':
  Save directory state and animate.
2013-09-18 18:16:20 -07:00
Jeff Sharkey
563ee0fbe9 Latest UX asset drop.
Darker action bar overflow icon, larger grid-mode directory icon,
icon for music albums, generic file icon.

Fix bug that allowed null MIME types to be picked.

Bug: 10700025
Change-Id: I2089678eaf793bc3c7214b21c9de5f38429ebb0f
2013-09-18 18:03:49 -07:00
Jeff Sharkey
e20a3acdc2 Save directory state and animate.
Save scroll position and restore when rotating or going up the
directory stack.  Also show directory animations when navigating
the directory stack.

Bug: 10417201
Change-Id: Ia2c508debc2bffffe6306eb9078afefef259dfe2
2013-09-18 17:12:25 -07:00