diff options
| author | Jeff Sharkey <jsharkey@android.com> | 2013-09-06 10:43:45 -0700 |
|---|---|---|
| committer | Jeff Sharkey <jsharkey@android.com> | 2013-09-06 10:46:54 -0700 |
| commit | 6d97d3c1a2ebac4e3f32c7e5bc134864ace1c17f (patch) | |
| tree | 0095bc600df69f008cf3f6b1717c169a4bfef87d /packages/DocumentsUI/src | |
| parent | 911d7f411f36f2279aae44c89ff1d33a29140046 (diff) | |
| download | frameworks_base-6d97d3c1a2ebac4e3f32c7e5bc134864ace1c17f.zip frameworks_base-6d97d3c1a2ebac4e3f32c7e5bc134864ace1c17f.tar.gz frameworks_base-6d97d3c1a2ebac4e3f32c7e5bc134864ace1c17f.tar.bz2 | |
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
Diffstat (limited to 'packages/DocumentsUI/src')
5 files changed, 36 insertions, 10 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java index ba47037..ba464f7 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java @@ -477,13 +477,11 @@ public class DirectoryFragment extends Fragment { if (extras != null) { final String info = extras.getString(DocumentsContract.EXTRA_INFO); if (info != null) { - mFooters.add(new MessageFooter( - com.android.internal.R.drawable.ic_menu_info_details, info)); + mFooters.add(new MessageFooter(R.drawable.ic_dialog_alert, info)); } final String error = extras.getString(DocumentsContract.EXTRA_ERROR); if (error != null) { - mFooters.add(new MessageFooter( - com.android.internal.R.drawable.ic_dialog_alert, error)); + mFooters.add(new MessageFooter(R.drawable.ic_dialog_alert, error)); } if (extras.getBoolean(DocumentsContract.EXTRA_LOADING, false)) { mFooters.add(new LoadingFooter()); diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java index 8715055..e1f2606 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java @@ -104,7 +104,7 @@ public class DocumentsActivity extends Activity { R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close); mDrawerLayout.setDrawerListener(mDrawerListener); - mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); + mDrawerLayout.setDrawerShadow(R.drawable.ic_drawer_shadow, GravityCompat.START); if (icicle != null) { mState = icicle.getParcelable(EXTRA_STATE); diff --git a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java index b5b1033..5caf9ba 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java +++ b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java @@ -210,7 +210,8 @@ public class IconUtils { final Resources res = context.getResources(); if (Document.MIME_TYPE_DIR.equals(mimeType)) { - return res.getDrawable(R.drawable.ic_dir); + // TODO: return a mipmap, since this is used for grid + return res.getDrawable(R.drawable.ic_root_folder); } // Look for exact match first 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<RootInfo> getMatchingRoots(State state) { + return getMatchingRoots(mRoots, state); + } + + public static List<RootInfo> getMatchingRoots(List<RootInfo> roots, State state) { ArrayList<RootInfo> 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; } diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java index 75baa0a..a6ddf70 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java +++ b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java @@ -26,6 +26,7 @@ import android.graphics.drawable.Drawable; import android.provider.DocumentsContract.Root; import com.android.documentsui.IconUtils; +import com.android.documentsui.R; import java.util.Objects; @@ -38,6 +39,7 @@ public class RootInfo { public int rootType; public int flags; public int icon; + public int localIcon; public String title; public String summary; public String documentId; @@ -59,11 +61,30 @@ public class RootInfo { final String raw = getCursorString(cursor, Root.COLUMN_MIME_TYPES); root.mimeTypes = (raw != null) ? raw.split("\n") : null; + // TODO: remove these special case icons + if ("com.android.externalstorage.documents".equals(authority)) { + root.localIcon = R.drawable.ic_root_sdcard; + } + if ("com.android.providers.downloads.documents".equals(authority)) { + root.localIcon = R.drawable.ic_root_download; + } + if ("com.android.providers.media.documents".equals(authority)) { + if ("image".equals(root.rootId)) { + root.localIcon = R.drawable.ic_doc_image; + } else if ("audio".equals(root.rootId)) { + root.localIcon = R.drawable.ic_doc_audio; + } + } + return root; } public Drawable loadIcon(Context context) { - return IconUtils.loadPackageIcon(context, authority, icon); + if (localIcon != 0) { + return context.getResources().getDrawable(localIcon); + } else { + return IconUtils.loadPackageIcon(context, authority, icon); + } } @Override |
