diff options
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 |
