summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java29
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java14
2 files changed, 23 insertions, 20 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
index 0dcd02da442b..d75b6fdf77bc 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
@@ -287,33 +287,24 @@ public class RootsFragment extends Fragment {
super(context, 0);
final List<RootItem> libraries = new ArrayList<>();
- final List<RootItem> clouds = new ArrayList<>();
- final List<RootItem> locals = new ArrayList<>();
-
- for (RootInfo root : roots) {
- RootItem item = new RootItem(root);
- switch (root.derivedType) {
- case RootInfo.TYPE_LOCAL:
- locals.add(item);
- break;
- case RootInfo.TYPE_CLOUD:
- clouds.add(item);
- break;
- default:
- libraries.add(item);
- break;
+ final List<RootItem> others = new ArrayList<>();
+
+ for (final RootInfo root : roots) {
+ final RootItem item = new RootItem(root);
+ if (root.isLibrary()) {
+ libraries.add(item);
+ } else {
+ others.add(item);
}
}
final RootComparator comp = new RootComparator();
Collections.sort(libraries, comp);
- Collections.sort(locals, comp);
- Collections.sort(clouds, comp);
+ Collections.sort(others, comp);
addAll(libraries);
add(new SpacerItem());
- addAll(locals);
- addAll(clouds);
+ addAll(others);
if (includeApps != null) {
final PackageManager pm = context.getPackageManager();
diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java
index 17e6a801c53e..501392ca93f5 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java
@@ -51,7 +51,8 @@ public class RootInfo implements Durable, Parcelable {
public static final int TYPE_RECENTS = 4;
public static final int TYPE_DOWNLOADS = 5;
public static final int TYPE_LOCAL = 6;
- public static final int TYPE_CLOUD = 7;
+ public static final int TYPE_MTP = 7;
+ public static final int TYPE_CLOUD = 8;
public String authority;
public String rootId;
@@ -184,6 +185,8 @@ public class RootInfo implements Durable, Parcelable {
derivedType = TYPE_AUDIO;
} else if (isRecents()) {
derivedType = TYPE_RECENTS;
+ } else if (isMtp()) {
+ derivedType = TYPE_MTP;
} else {
derivedType = TYPE_CLOUD;
}
@@ -216,6 +219,15 @@ public class RootInfo implements Durable, Parcelable {
&& "audio_root".equals(rootId);
}
+ public boolean isMtp() {
+ return "com.android.mtp.documents".equals(authority);
+ }
+
+ public boolean isLibrary() {
+ return derivedType == TYPE_IMAGES || derivedType == TYPE_VIDEO || derivedType == TYPE_AUDIO
+ || derivedType == TYPE_RECENTS || derivedType == TYPE_DOWNLOADS;
+ }
+
@Override
public String toString() {
return "Root{authority=" + authority + ", rootId=" + rootId + ", title=" + title + "}";