From 6d97d3c1a2ebac4e3f32c7e5bc134864ace1c17f Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 6 Sep 2013 10:43:45 -0700 Subject: Another asset drop, provider icons, tests. Latest asset update, including provider icons which are treated as special cases for now instead of checking into separate apps. Add tests for MIME type matching of roots. Remove unused XML. Bug: 10510022 Change-Id: Id567a9e06ba241f60ac011823e550253c6c797fb --- .../DocumentsUI/src/com/android/documentsui/RootsCache.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'packages/DocumentsUI/src/com/android/documentsui/RootsCache.java') diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java index d192378..d4f1b39 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java @@ -72,7 +72,7 @@ public class RootsCache { // Create special root for recents final RootInfo root = new RootInfo(); root.rootType = Root.ROOT_TYPE_SHORTCUT; - root.icon = R.drawable.ic_dir; + root.icon = R.drawable.ic_root_recent; root.flags = Root.FLAG_LOCAL_ONLY | Root.FLAG_SUPPORTS_CREATE; root.title = mContext.getString(R.string.root_recent); root.availableBytes = -1; @@ -151,8 +151,12 @@ public class RootsCache { @GuardedBy("ActivityThread") public List getMatchingRoots(State state) { + return getMatchingRoots(mRoots, state); + } + + public static List getMatchingRoots(List roots, State state) { ArrayList matching = Lists.newArrayList(); - for (RootInfo root : mRoots) { + for (RootInfo root : roots) { final boolean supportsCreate = (root.flags & Root.FLAG_SUPPORTS_CREATE) != 0; final boolean advanced = (root.flags & Root.FLAG_ADVANCED) != 0; final boolean localOnly = (root.flags & Root.FLAG_LOCAL_ONLY) != 0; @@ -165,7 +169,9 @@ public class RootsCache { if (state.localOnly && !localOnly) continue; // Only include roots that serve requested content - if (!MimePredicate.mimeMatches(root.mimeTypes, state.acceptMimes)) { + final boolean overlap = MimePredicate.mimeMatches(root.mimeTypes, state.acceptMimes) + || MimePredicate.mimeMatches(state.acceptMimes, root.mimeTypes); + if (!overlap) { continue; } -- cgit v1.1