summaryrefslogtreecommitdiffstats
path: root/packages/DocumentsUI/src
diff options
context:
space:
mode:
authorDaichi Hirono <hirono@google.com>2015-04-15 04:30:09 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-15 04:30:10 +0000
commitc96e494ac73e11dfd34a2df39c80d673474c4d44 (patch)
treedbcea6fb2a6ff8e4bdc503083badae1f4f086eca /packages/DocumentsUI/src
parente26bd2c361bf506830350ef3e2ba2029355a2216 (diff)
parent9be34298be02783b4cc91cf1784aa0627cf36012 (diff)
downloadframeworks_base-c96e494ac73e11dfd34a2df39c80d673474c4d44.zip
frameworks_base-c96e494ac73e11dfd34a2df39c80d673474c4d44.tar.gz
frameworks_base-c96e494ac73e11dfd34a2df39c80d673474c4d44.tar.bz2
Merge "DocumentsUI: Filter out downloads root if the source documents include directory."
Diffstat (limited to 'packages/DocumentsUI/src')
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java7
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java8
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java4
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/RootsCache.java3
4 files changed, 22 insertions, 0 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
index bd17401..842d9fc 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
@@ -37,6 +37,12 @@ abstract class BaseActivity extends Activity {
public static String ACTION_OPEN_COPY_DESTINATION_STRING =
"com.android.documentsui.OPEN_COPY_DESTINATION";
+ /**
+ * Extra boolean flag for ACTION_OPEN_COPY_DESTINATION_STRING, which
+ * specifies if the destination directory needs to create new directory or not.
+ */
+ public static String EXTRA_DIRECTORY_COPY = "com.android.documentsui.DIRECTORY_COPY";
+
public abstract State getDisplayState();
public abstract RootInfo getCurrentRoot();
public abstract void onStateChanged();
@@ -77,6 +83,7 @@ abstract class BaseActivity extends Activity {
public boolean showAdvanced = false;
public boolean stackTouched = false;
public boolean restored = false;
+ public boolean directoryCopy = false;
/** Current user navigation stack; empty implies recents. */
public DocumentStack stack = new DocumentStack();
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
index 61fcad2..909e2e5 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
@@ -687,6 +687,14 @@ public class DirectoryFragment extends Fragment {
Uri.EMPTY,
getActivity(),
DocumentsActivity.class);
+ boolean directoryCopy = false;
+ for (DocumentInfo info : docs) {
+ if (Document.MIME_TYPE_DIR.equals(info.mimeType)) {
+ directoryCopy = true;
+ break;
+ }
+ }
+ intent.putExtra(BaseActivity.EXTRA_DIRECTORY_COPY, directoryCopy);
startActivityForResult(intent, REQUEST_COPY_DESTINATION);
}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
index b6e0711..71ed17e 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
@@ -265,6 +265,10 @@ public class DocumentsActivity extends BaseActivity {
} else {
mState.showSize = LocalPreferences.getDisplayFileSize(this);
}
+ if (mState.action == ACTION_OPEN_COPY_DESTINATION) {
+ mState.directoryCopy = intent.getBooleanExtra(
+ BaseActivity.EXTRA_DIRECTORY_COPY, false);
+ }
}
private class RestoreRootTask extends AsyncTask<Void, Void, RootInfo> {
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
index d2267b1..27e8f20 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
@@ -367,6 +367,9 @@ public class RootsCache {
if (!state.showAdvanced && advanced) continue;
// Exclude non-local devices when local only
if (state.localOnly && !localOnly) continue;
+ // Exclude downloads roots that don't support directory creation
+ // TODO: Add flag to check the root supports directory creation or not.
+ if (state.directoryCopy && root.isDownloads()) continue;
// Only show empty roots when creating
if ((state.action != State.ACTION_CREATE ||
state.action != State.ACTION_OPEN_TREE ||