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);