diff options
author | Raj Yengisetty <rajesh@cyngn.com> | 2015-01-07 16:22:13 -0800 |
---|---|---|
committer | Rajesh Yengisetty <rajesh@cyngn.com> | 2015-01-08 00:37:59 +0000 |
commit | e6dee74c68974204b71d43b404cb5d374b68b2cc (patch) | |
tree | b121c46bc2273f26445a2137ac576c1cdbf2c6e6 | |
parent | 29b98cab4063db079236d263a53388f5898ceaf9 (diff) | |
download | android_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.xml | 4 | ||||
-rw-r--r-- | src/com/cyanogenmod/filemanager/activities/PickerActivity.java | 21 |
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; |