1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-12-25 09:08:49 -05:00

Make the "pick directory intent" array a constant

This commit is contained in:
cketti 2011-05-05 02:52:47 +02:00
parent 837b7da206
commit 141e2d2ad9

View File

@ -15,6 +15,16 @@ import com.fsck.k9.K9;
import com.fsck.k9.R; import com.fsck.k9.R;
public class FileBrowserHelper { public class FileBrowserHelper {
/**
* A string array that specifies the name of the intent to use, and the scheme to use with it
* when setting the data for the intent.
*/
private static final String[][] PICK_DIRECTORY_INTENTS =
{ { "org.openintents.action.PICK_DIRECTORY", "file://" }, // OI File Manager (maybe others)
{ "com.estrongs.action.PICK_DIRECTORY", "file://" }, // ES File Explorer
{ Intent.ACTION_PICK, "folder://" }, // Blackmoon File Browser (maybe others)
{ "com.androidworkz.action.PICK_DIRECTORY", "file://" }}; // SystemExplorer
private static FileBrowserHelper sInstance; private static FileBrowserHelper sInstance;
/** /**
@ -62,14 +72,6 @@ public class FileBrowserHelper {
* *
*/ */
public boolean showFileBrowserActivity(Activity c, File startPath, int requestcode, FileBrowserFailOverCallback callback) { public boolean showFileBrowserActivity(Activity c, File startPath, int requestcode, FileBrowserFailOverCallback callback) {
// A string array that specifies the name of the intent to use, and
// the scheme to use with it when setting the data for the intent.
String[][] intentDetails =
{ { "org.openintents.action.PICK_DIRECTORY", "file://" }, // OI File Manager (maybe others)
{ "com.estrongs.action.PICK_DIRECTORY", "file://" }, // ES File Explorer
{ Intent.ACTION_PICK, "folder://" }, // Blackmoon File Browser (maybe others)
{ "com.androidworkz.action.PICK_DIRECTORY", "file://" }}; // SystemExplorer
boolean success = false; boolean success = false;
if (startPath == null) { if (startPath == null) {
@ -78,9 +80,11 @@ public class FileBrowserHelper {
int listIndex = 0; int listIndex = 0;
do { do {
Intent intent = new Intent(intentDetails[listIndex][0]); String intentAction = PICK_DIRECTORY_INTENTS[listIndex][0];
String uriPrefix = PICK_DIRECTORY_INTENTS[listIndex][1];
Intent intent = new Intent(intentAction);
if (startPath != null) { if (startPath != null) {
intent.setData(Uri.parse(intentDetails[listIndex][1] + startPath.getPath())); intent.setData(Uri.parse(uriPrefix + startPath.getPath()));
} }
try { try {
c.startActivityForResult(intent, requestcode); c.startActivityForResult(intent, requestcode);
@ -89,9 +93,9 @@ public class FileBrowserHelper {
// Try the next intent in the list // Try the next intent in the list
listIndex++; listIndex++;
}; };
} while (!success && (listIndex < intentDetails.length)); } while (!success && (listIndex < PICK_DIRECTORY_INTENTS.length));
if (listIndex == intentDetails.length) { if (listIndex == PICK_DIRECTORY_INTENTS.length) {
//No Filebrowser is installed => show a fallback textdialog //No Filebrowser is installed => show a fallback textdialog
showPathTextInput(c, startPath, callback); showPathTextInput(c, startPath, callback);
success = false; success = false;