1package com.sfb.standalonefilebrowser;
3import android.app.Activity;
4import android.app.Fragment;
5import android.content.ContentResolver;
6import android.content.Intent;
7import android.database.Cursor;
10import java.io.FileOutputStream;
11import java.io.InputStream;
12import java.io.OutputStream;
19 private Boolean multiple;
22 this.fileBrowserAndroidListener = fileBrowserAndroidListener;
30 this.multiple = multiple;
36 final Intent intent =
new Intent(Intent.ACTION_GET_CONTENT);
38 intent.putExtra(
"android.intent.extra.TITLE", title);
41 intent.putExtra(
"android.intent.extra.ALLOW_MULTIPLE",
true);
43 intent.setType(
"*/*");
47 private String getFileCopyPath(
final Uri uri) {
51 final ContentResolver contentResolver = getActivity().getContentResolver();
53 String filename =
null;
55 cursor = contentResolver.query(uri,
null,
null,
null,
null);
56 if (cursor !=
null && cursor.moveToFirst()) {
57 filename = cursor.getString(cursor.getColumnIndex(
"_display_name"));
69 final InputStream input = contentResolver.openInputStream(uri);
73 final File file =
new File(getActivity().getCacheDir(), filename);
74 OutputStream output =
null;
76 output =
new FileOutputStream(file,
false);
77 final byte[] buffer =
new byte[4096];
79 while ((len = input.read(buffer)) > 0) {
80 output.write(buffer, 0, len);
82 return file.getAbsolutePath();
98 super.onActivityResult(requestCode, resultCode, data);
99 if (fileBrowserAndroidListener ==
null) {
102 switch (requestCode) {
104 String filenames =
"";
105 if (resultCode == Activity.RESULT_OK) {
106 if (data.getClipData() !=
null) {
107 for (
int i = 0; i < data.getClipData().getItemCount(); ++i) {
108 if (filenames !=
"") {
111 filenames += getFileCopyPath(data.getClipData().getItemAt(i).getUri());
114 else if (data.getData() !=
null) {
115 filenames = getFileCopyPath(data.getData());
121 getFragmentManager().beginTransaction().remove(
this).commit();
static final int PICKFILE_RESULT_CODE
void setTitle(final String title)
void setMultiple(final Boolean multiple)
void setFileBrowserAndroidListener(final StandaloneFileBrowserAndroidListener fileBrowserAndroidListener)
void onActivityResult(int requestCode, int resultCode, Intent data)
void onFilesSelected(final String result)