diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index 2f894de98..bdefb8f9b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -54,6 +54,7 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.TaskApiDao; import com.todoroo.astrid.data.Update; import com.todoroo.astrid.data.User; +import com.todoroo.astrid.files.FileMetadata; import com.todoroo.astrid.helper.ImageDiskCache; import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.StatisticsConstants; @@ -1269,6 +1270,17 @@ public final class ActFmSyncService { } } + public static void taskAttachmentFromJson(JSONObject json, Metadata model) throws JSONException { + model.clearValue(FileMetadata.REMOTE_ID); + + long remoteId = json.getLong("id"); + if (remoteId > 0) + model.setValue(FileMetadata.REMOTE_ID, remoteId); + + model.setValue(FileMetadata.URL, json.getString("url")); + model.setValue(FileMetadata.FILE_TYPE, json.getString("content_type")); + } + /** Filter out FROM */ private static String filterRepeat(String repeat) { return repeat.replaceAll("BYDAY=;","").replaceAll(";?FROM=[^;]*", ""); diff --git a/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java b/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java index b78d06a94..6eff5817d 100644 --- a/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/files/AACRecordingActivity.java @@ -85,12 +85,12 @@ public class AACRecordingActivity extends Activity implements AACRecorderCallbac public void encodingFinished() { try { StringBuilder filePathBuilder = new StringBuilder(); - filePathBuilder.append(getExternalFilesDir(FileMetadata.AUDIO_DIRECTORY).toString()) + filePathBuilder.append(getExternalFilesDir(FileMetadata.FILES_DIRECTORY).toString()) .append(File.separator) .append(taskId) .append("_") .append(DateUtilities.now()) - .append("_audio.mp4"); + .append("_audio.m4a"); String outFile = filePathBuilder.toString(); new AACToM4A().convert(this, tempFile, outFile); diff --git a/astrid/plugin-src/com/todoroo/astrid/files/FileMetadata.java b/astrid/plugin-src/com/todoroo/astrid/files/FileMetadata.java index 4f8c85ed1..c93a10899 100644 --- a/astrid/plugin-src/com/todoroo/astrid/files/FileMetadata.java +++ b/astrid/plugin-src/com/todoroo/astrid/files/FileMetadata.java @@ -1,6 +1,5 @@ package com.todoroo.astrid.files; -import com.todoroo.andlib.data.Property.IntegerProperty; import com.todoroo.andlib.data.Property.LongProperty; import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.utility.DateUtilities; @@ -11,29 +10,35 @@ 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; - public static final int FILE_TYPE_OTHER = 2; + public static final String FILE_TYPE_AUDIO = "audio/m4a"; //$NON-NLS-1$ + public static final String FILE_TYPE_IMG = "image/png"; //$NON-NLS-1$ public static final StringProperty FILE_PATH = new StringProperty(Metadata.TABLE, Metadata.VALUE1.name); - public static final IntegerProperty FILE_TYPE = new IntegerProperty(Metadata.TABLE, + public static final StringProperty FILE_TYPE = new StringProperty(Metadata.TABLE, Metadata.VALUE2.name); public static final LongProperty ATTACH_DATE = new LongProperty(Metadata.TABLE, Metadata.VALUE3.name); - public static Metadata createNewFileMetadata(long taskId, String filePath, int fileType) { + public static final LongProperty REMOTE_ID = new LongProperty(Metadata.TABLE, + Metadata.VALUE4.name); + + public static final StringProperty URL = new StringProperty(Metadata.TABLE, + Metadata.VALUE5.name); + + + public static Metadata createNewFileMetadata(long taskId, String filePath, String fileType) { Metadata metadata = new Metadata(); metadata.setValue(Metadata.KEY, METADATA_KEY); metadata.setValue(Metadata.TASK, taskId); metadata.setValue(FILE_PATH, filePath); metadata.setValue(FILE_TYPE, fileType); + metadata.setValue(REMOTE_ID, 0L); metadata.setValue(ATTACH_DATE, DateUtilities.now()); return metadata; } diff --git a/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java b/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java index d21b7eba3..928d0cacc 100644 --- a/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java @@ -138,18 +138,16 @@ public class FilesControlSet extends PopupControlSet { } private void setupFileClickListener(View view, final Metadata m) { - int fileType = m.getValue(FileMetadata.FILE_TYPE); + String fileType = m.getValue(FileMetadata.FILE_TYPE); final String filePath = m.getValue(FileMetadata.FILE_PATH); - switch(fileType) { - case FileMetadata.FILE_TYPE_AUDIO: + if (FileMetadata.FILE_TYPE_AUDIO.equals(fileType)) { view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { RecognizerApi.play(m.getValue(FileMetadata.FILE_PATH)); } }); - break; - case FileMetadata.FILE_TYPE_IMG: + } else if (FileMetadata.FILE_TYPE_IMG.equals(fileType)) { view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -175,7 +173,6 @@ public class FilesControlSet extends PopupControlSet { image.show(); } }); - break; } } diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java index 75a331805..6eb2d0e3b 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java @@ -1051,7 +1051,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { return; } - createNewFileAttachment(dst.getAbsolutePath(), FileMetadata.FILE_TYPE_OTHER); + createNewFileAttachment(dst.getAbsolutePath(), ""); } @SuppressWarnings("nls") @@ -1077,7 +1077,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { } } - private void createNewFileAttachment(String path, int fileType) { + private void createNewFileAttachment(String path, String fileType) { Metadata fileMetadata = FileMetadata.createNewFileMetadata(model.getId(), path, fileType); metadataService.save(fileMetadata); filesControlSet.refreshMetadata(); diff --git a/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java b/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java index 1f1c73e75..5e98b759d 100644 --- a/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java +++ b/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java @@ -338,7 +338,7 @@ public class QuickAddBar extends LinearLayout implements RecognizerApiListener { .append(task.getId()) .append("_") .append(DateUtilities.now()) - .append("_audio.mp4"); + .append("_audio.m4a"); String filePath = filePathBuilder.toString(); System.err.println("Saving to " + filePath); voiceRecognizer.convert(filePath);