aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaj Yengisetty <rajesh@cyngn.com>2015-01-07 16:22:13 -0800
committerRajesh Yengisetty <rajesh@cyngn.com>2015-01-08 00:37:59 +0000
commite6dee74c68974204b71d43b404cb5d374b68b2cc (patch)
treeb121c46bc2273f26445a2137ac576c1cdbf2c6e6
parent29b98cab4063db079236d263a53388f5898ceaf9 (diff)
downloadandroid_packages_apps_CMFileManager-e6dee74c68974204b71d43b404cb5d374b68b2cc.tar.gz
android_packages_apps_CMFileManager-e6dee74c68974204b71d43b404cb5d374b68b2cc.tar.bz2
android_packages_apps_CMFileManager-e6dee74c68974204b71d43b404cb5d374b68b2cc.zip
CMFileManager: Add support for directory selection
Change-Id: I55cb3c0c5f9d96837e84ca4c89e30504e93c8668
-rw-r--r--AndroidManifest.xml4
-rw-r--r--src/com/cyanogenmod/filemanager/activities/PickerActivity.java21
2 files changed, 25 insertions, 0 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index cb43df89..8721d613 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -130,6 +130,10 @@
<data android:scheme="folder" />
<data android:scheme="directory" />
</intent-filter>
+ <intent-filter>
+ <action android:name="com.android.fileexplorer.action.DIR_SEL" />
+ <category android:name="android.intent.category.DEFAULT"/>
+ </intent-filter>
</activity>
<activity
diff --git a/src/com/cyanogenmod/filemanager/activities/PickerActivity.java b/src/com/cyanogenmod/filemanager/activities/PickerActivity.java
index 3fe9c5d1..4345d52c 100644
--- a/src/com/cyanogenmod/filemanager/activities/PickerActivity.java
+++ b/src/com/cyanogenmod/filemanager/activities/PickerActivity.java
@@ -31,6 +31,7 @@ import android.content.IntentFilter;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Environment;
import android.os.Handler;
import android.os.storage.StorageVolume;
import android.util.DisplayMetrics;
@@ -109,6 +110,11 @@ public class PickerActivity extends Activity
// Extra data for Gallery CROP action
private static final String EXTRA_CROP = "crop"; //$NON-NLS-1$
+ // Intent for folder picker
+ private static final String INTENT_FOLDER_SELECT = "com.android.fileexplorer.action.DIR_SEL";
+ // String extra for folder selection
+ private static final String EXTRA_FOLDER_PATH = "def_file_manager_result_dir";
+
// Scheme for file and directory picking
private static final String FILE_URI_SCHEME = "file"; //$NON-NLS-1$
private static final String FOLDER_URI_SCHEME = "folder"; //$NON-NLS-1$
@@ -431,6 +437,13 @@ public class PickerActivity extends Activity
}
}
+ if (INTENT_FOLDER_SELECT.equals(getIntent().getAction())) {
+ Intent result = new Intent();
+ result.putExtra(EXTRA_FOLDER_PATH, src.getAbsolutePath());
+ setResult(Activity.RESULT_OK, result);
+ finish();
+ }
+
// Return the picked file, as expected (this activity should fill the intent data
// and return RESULT_OK result)
Intent result = new Intent();
@@ -460,6 +473,10 @@ public class PickerActivity extends Activity
}
private static boolean isDirectoryPickIntent(Intent intent) {
+ if (INTENT_FOLDER_SELECT.equals(intent.getAction())) {
+ return true;
+ }
+
if (Intent.ACTION_PICK.equals(intent.getAction()) && intent.getData() != null) {
String scheme = intent.getData().getScheme();
if (FOLDER_URI_SCHEME.equals(scheme) || DIRECTORY_URI_SCHEME.equals(scheme)) {
@@ -475,6 +492,10 @@ public class PickerActivity extends Activity
return null;
}
+ if (INTENT_FOLDER_SELECT.equals(intent.getAction())) {
+ return Environment.getExternalStorageDirectory();
+ }
+
final Uri data = intent.getData();
if (data == null) {
return null;