diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-08-15 11:24:03 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-08-15 14:14:48 -0700 |
commit | 54ca29a5b94c2edf461c5433825d4ae17469fd7c (patch) | |
tree | c6bb20d6e873c858dd131404f0c05a75ad552cf2 /packages/DocumentsUI/src/com/android/documentsui/RootsCache.java | |
parent | 2241d45c68739e5bdf187ba3325ee237ef143e21 (diff) | |
download | frameworks_base-54ca29a5b94c2edf461c5433825d4ae17469fd7c.zip frameworks_base-54ca29a5b94c2edf461c5433825d4ae17469fd7c.tar.gz frameworks_base-54ca29a5b94c2edf461c5433825d4ae17469fd7c.tar.bz2 |
DocumentsUI handles GET_CONTENT; hinting, errors.
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
Diffstat (limited to 'packages/DocumentsUI/src/com/android/documentsui/RootsCache.java')
-rw-r--r-- | packages/DocumentsUI/src/com/android/documentsui/RootsCache.java | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java index b26db3b..ceab8fc 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java @@ -95,19 +95,24 @@ public class RootsCache { sProviders.put(info.providerInfo.authority, info); - // TODO: remove deprecated customRoots flag - // TODO: populate roots on background thread, and cache results - final Uri uri = DocumentsContract.buildRootsUri(providerInfo.authority); - final Cursor cursor = context.getContentResolver() - .query(uri, null, null, null, null); try { - while (cursor.moveToNext()) { - final Root root = Root.fromCursor(context, info, cursor); - sRoots.put(Pair.create(info.providerInfo.authority, root.rootId), root); - sRootsList.add(root); + // TODO: remove deprecated customRoots flag + // TODO: populate roots on background thread, and cache results + final Uri uri = DocumentsContract.buildRootsUri(providerInfo.authority); + final Cursor cursor = context.getContentResolver() + .query(uri, null, null, null, null); + try { + while (cursor.moveToNext()) { + final Root root = Root.fromCursor(context, info, cursor); + sRoots.put(Pair.create(info.providerInfo.authority, root.rootId), root); + sRootsList.add(root); + } + } finally { + cursor.close(); } - } finally { - cursor.close(); + } catch (Exception e) { + Log.w(TAG, "Failed to load some roots from " + info.providerInfo.authority + + ": " + e); } } } |