Copy files when attaching, code cleanup

pull/14/head
Sam Bosley 14 years ago
parent a45ffb0c79
commit a1f7c3603c

@ -1,5 +1,6 @@
package com.todoroo.astrid.files;
import java.io.File;
import java.io.IOException;
import android.app.Activity;
@ -84,8 +85,8 @@ public class AACRecordingActivity extends Activity implements AACRecorderCallbac
public void encodingFinished() {
try {
StringBuilder filePathBuilder = new StringBuilder();
filePathBuilder.append(getExternalFilesDir("audio").toString())
.append("/")
filePathBuilder.append(getExternalFilesDir(FileMetadata.AUDIO_DIRECTORY).toString())
.append(File.separator)
.append(taskId)
.append("_")
.append(DateUtilities.now())

@ -9,6 +9,7 @@ import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
@ -212,6 +213,13 @@ public class FileExplore extends Activity {
break;
}
dialog = builder.show();
dialog.setCancelable(true);
dialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface d) {
finish();
}
});
return dialog;
}

@ -11,6 +11,9 @@ public class FileMetadata {
/** metadata key */
public static final String METADATA_KEY = "file"; //$NON-NLS-1$
public static final String AUDIO_DIRECTORY = "audio"; //$NON-NLS-1$
public static final String FILES_DIRECTORY = "attachments"; //$NON-NLS-1$
/** Constants for file types */
public static final int FILE_TYPE_AUDIO = 0;
public static final int FILE_TYPE_IMG = 1;

@ -124,11 +124,14 @@ public class FilesControlSet extends PopupControlSet {
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
File f = new File(m.getValue(FileMetadata.FILE_PATH));
if (f.delete()) {
metadataService.delete(m);
files.remove(m);
refreshDisplayView();
finalList.removeView(fileRow);
}
}
}, null);
}
});

@ -20,4 +20,5 @@
<string name="file_browser_up">Up</string>
<string name="file_browser_title">Choose a file</string>
<string name="file_browser_err_permissions">Permissions error! Please make sure you have not blocked Astrid from accessing the SD card.</string>
<string name="file_err_copy">Error copying file for attachment</string>
</resources>

@ -1010,6 +1010,26 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
startActivityForResult(recordAudio, REQUEST_CODE_RECORD);
}
private void attachFile(String file) {
File src = new File(file);
if (!src.exists()) {
Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG);
return;
}
File dst = new File(getActivity().getExternalFilesDir(FileMetadata.FILES_DIRECTORY) + File.separator + src.getName());
try {
AndroidUtilities.copyFile(src, dst);
} catch (Exception e) {
Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG);
return;
}
Metadata fileMetadata = FileMetadata.createNewFileMetadata(model.getId(), dst.getAbsolutePath(), FileMetadata.FILE_TYPE_OTHER);
metadataService.save(fileMetadata);
filesControlSet.refreshMetadata();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
@ -1124,10 +1144,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
metadataService.save(audioMetadata);
filesControlSet.refreshMetadata();
} else if (requestCode == REQUEST_CODE_ATTACH_FILE && resultCode == Activity.RESULT_OK) {
String selectedFile = data.getStringExtra(FileExplore.EXTRA_FILE_SELECTED);
Metadata fileMetadata = FileMetadata.createNewFileMetadata(model.getId(), selectedFile, FileMetadata.FILE_TYPE_OTHER);
metadataService.save(fileMetadata);
filesControlSet.refreshMetadata();
attachFile(data.getStringExtra(FileExplore.EXTRA_FILE_SELECTED));
}
// respond to sharing logoin

Loading…
Cancel
Save