diff --git a/Chan/res/values/strings.xml b/Chan/res/values/strings.xml index 6fcd4cee..14681b60 100644 --- a/Chan/res/values/strings.xml +++ b/Chan/res/values/strings.xml @@ -73,7 +73,7 @@ Comment Pick file Remove file - File name (not required) + File name Submit Enter captcha Error sending reply diff --git a/Chan/src/org/floens/chan/core/manager/ReplyManager.java b/Chan/src/org/floens/chan/core/manager/ReplyManager.java index b0956533..892e61af 100644 --- a/Chan/src/org/floens/chan/core/manager/ReplyManager.java +++ b/Chan/src/org/floens/chan/core/manager/ReplyManager.java @@ -113,9 +113,9 @@ public class ReplyManager { * Called from ImagePickActivity. Sends the file to the listening * fileListener, and deletes the fileListener. */ - public void _onPickedFile(File file) { + public void _onPickedFile(String name, File file) { if (fileListener != null) { - fileListener.onFile(file); + fileListener.onFile(name, file); } fileListener = null; } @@ -346,12 +346,12 @@ public class ReplyManager { public static abstract class FileListener { /** - * When a file is picked. + * When the file was picked * - * @param the - * picked file + * @param name + * @param file */ - public abstract void onFile(File file); + public abstract void onFile(String name, File file); /** * When the file has started loading. diff --git a/Chan/src/org/floens/chan/ui/activity/ImagePickActivity.java b/Chan/src/org/floens/chan/ui/activity/ImagePickActivity.java index 36fef59d..04992958 100644 --- a/Chan/src/org/floens/chan/ui/activity/ImagePickActivity.java +++ b/Chan/src/org/floens/chan/ui/activity/ImagePickActivity.java @@ -12,8 +12,10 @@ import org.floens.chan.utils.IOUtils; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; +import android.database.Cursor; import android.net.Uri; import android.os.Bundle; +import android.provider.OpenableColumns; import android.widget.Toast; public class ImagePickActivity extends Activity { @@ -43,6 +45,18 @@ public class ImagePickActivity extends Activity { if (data != null) { final Uri uri = data.getData(); + Cursor returnCursor = getContentResolver().query(uri, null, null, null, null); + int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); + returnCursor.moveToFirst(); + String name = "image"; + if (nameIndex > -1) { + name = returnCursor.getString(nameIndex); + } + + returnCursor.close(); + + final String finalName = name; + ChanApplication.getReplyManager()._onPickedFileLoading(); // Async load the stream into "pickedFileCache", an file in the cache root @@ -64,7 +78,7 @@ public class ImagePickActivity extends Activity { runOnUiThread(new Runnable() { @Override public void run() { - ChanApplication.getReplyManager()._onPickedFile(cacheFile); + ChanApplication.getReplyManager()._onPickedFile(finalName, cacheFile); } }); diff --git a/Chan/src/org/floens/chan/ui/fragment/ReplyFragment.java b/Chan/src/org/floens/chan/ui/fragment/ReplyFragment.java index 9a07192a..6297fb9a 100644 --- a/Chan/src/org/floens/chan/ui/fragment/ReplyFragment.java +++ b/Chan/src/org/floens/chan/ui/fragment/ReplyFragment.java @@ -146,7 +146,7 @@ public class ReplyFragment extends DialogFragment { emailView.getEditText().setText(draft.email); subjectView.getEditText().setText(draft.subject); commentView.getEditText().setText(draft.comment); - setFile(draft.file); + setFile(draft.fileName, draft.file); getCaptcha(); } else { @@ -167,10 +167,14 @@ public class ReplyFragment extends DialogFragment { draft.subject = subjectView.getText().toString(); draft.comment = commentView.getText().toString(); + if (fileNameView != null) { + draft.fileName = fileNameView.getText().toString(); + } + replyManager.setReplyDraft(draft); } else { replyManager.removeReplyDraft(); - setFile(null); + setFile(null, null); } } @@ -223,8 +227,8 @@ public class ReplyFragment extends DialogFragment { public void onClick(View view) { ChanApplication.getReplyManager().pickFile(new ReplyManager.FileListener() { @Override - public void onFile(File file) { - setFile(file); + public void onFile(String name, File file) { + setFile(name, file); } @Override @@ -239,7 +243,7 @@ public class ReplyFragment extends DialogFragment { fileDeleteButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { - setFile(null); + setFile(null, null); } }); @@ -317,8 +321,9 @@ public class ReplyFragment extends DialogFragment { * @param imagePath * file to image to send or null to clear */ - private void setFile(final File file) { + private void setFile(final String name, final File file) { draft.file = file; + draft.fileName = name; if (file == null) { fileDeleteButton.setEnabled(false); @@ -352,6 +357,7 @@ public class ReplyFragment extends DialogFragment { fileNameView.setSingleLine(); fileNameView.setHint(R.string.reply_file_name); fileNameView.setTextSize(16f); + fileNameView.setText(name); wrapper.addView(fileNameView); ImageView imageView = new ImageView(context);