summaryrefslogtreecommitdiffstats
path: root/packages/DocumentsUI/src
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-09-06 10:43:45 -0700
committerJeff Sharkey <jsharkey@android.com>2013-09-06 10:46:54 -0700
commit6d97d3c1a2ebac4e3f32c7e5bc134864ace1c17f (patch)
tree0095bc600df69f008cf3f6b1717c169a4bfef87d /packages/DocumentsUI/src
parent911d7f411f36f2279aae44c89ff1d33a29140046 (diff)
downloadframeworks_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')
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java6
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java2
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/IconUtils.java3
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/RootsCache.java12
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java23
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