Move record a note to add attachment activity

pull/384/head
Alex Baker 10 years ago
parent 923c349d8a
commit 9e83129915

@ -8,7 +8,6 @@ package com.todoroo.astrid.activity;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.graphics.drawable.DrawableCompat;
@ -25,9 +24,7 @@ import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.data.UserActivity;
import com.todoroo.astrid.files.AACRecordingActivity;
import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.notes.CommentsController;
import com.todoroo.astrid.service.TaskDeleter;
@ -52,7 +49,6 @@ import javax.inject.Inject;
import butterknife.Bind;
import butterknife.ButterKnife;
import static android.app.Activity.RESULT_OK;
import static org.tasks.date.DateTimeUtils.newDateTime;
public final class TaskEditFragment extends InjectingFragment implements Toolbar.OnMenuItemClickListener {
@ -73,7 +69,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
private static final String EXTRA_TASK = "extra_task";
private static final String EXTRA_IS_NEW_TASK = "extra_is_new_task";
private static final int REQUEST_CODE_RECORD = 30; // TODO: move this to file control set
@Inject TaskService taskService;
@Inject UserActivityDao userActivityDao;
@ -143,9 +138,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
AndroidUtilities.hideKeyboard(getActivity());
switch (item.getItemId()) {
case R.id.menu_record_note:
startRecordingAudio();
return true;
case R.id.menu_delete:
deleteButtonClick();
return true;
@ -276,21 +268,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
.show();
}
private void startRecordingAudio() {
Intent recordAudio = new Intent(getActivity(), AACRecordingActivity.class);
startActivityForResult(recordAudio, REQUEST_CODE_RECORD);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_RECORD && resultCode == RESULT_OK) {
String recordedAudioPath = data.getStringExtra(AACRecordingActivity.RESULT_OUTFILE);
String recordedAudioName = data.getStringExtra(AACRecordingActivity.RESULT_FILENAME);
getFilesControlSet().createNewFileAttachment(recordedAudioPath, recordedAudioName, TaskAttachment.FILE_TYPE_AUDIO + "m4a"); //$NON-NLS-1$
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {

@ -29,7 +29,6 @@ import butterknife.OnClick;
public class AACRecordingActivity extends InjectingAppCompatActivity implements AACRecorderCallbacks {
public static final String RESULT_OUTFILE = "outfile"; //$NON-NLS-1$
public static final String RESULT_FILENAME = "filename"; //$NON-NLS-1$
private final AtomicReference<String> nameRef = new AtomicReference<>();
private AACRecorder recorder;
@ -88,7 +87,6 @@ public class AACRecordingActivity extends InjectingAppCompatActivity implements
public void encodingFinished() {
Intent result = new Intent();
result.putExtra(RESULT_OUTFILE, tempFile);
result.putExtra(RESULT_FILENAME, nameRef.get());
setResult(RESULT_OK, result);
finish();
}

@ -129,9 +129,9 @@ public class FilesControlSet extends TaskEditControlFragment {
if (requestCode == REQUEST_ADD_ATTACHMENT) {
if (resultCode == Activity.RESULT_OK) {
String path = data.getStringExtra(AddAttachmentActivity.EXTRA_PATH);
String type = data.getStringExtra(AddAttachmentActivity.EXTRA_TYPE);
File file = new File(path);
String extension = path.substring(path.lastIndexOf('.') + 1);
createNewFileAttachment(path, file.getName(), TaskAttachment.FILE_TYPE_IMAGE + extension);
createNewFileAttachment(path, file.getName(), type);
}
} else {
super.onActivityResult(requestCode, resultCode, data);

@ -11,10 +11,12 @@ import android.webkit.MimeTypeMap;
import android.widget.Toast;
import com.todoroo.andlib.utility.AndroidUtilities;
import org.tasks.files.FileExplore;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.files.AACRecordingActivity;
import org.tasks.R;
import org.tasks.dialogs.AddAttachmentDialog;
import org.tasks.files.FileExplore;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Preferences;
@ -31,11 +33,14 @@ import timber.log.Timber;
public class AddAttachmentActivity extends InjectingAppCompatActivity implements DialogInterface.OnCancelListener, AddAttachmentDialog.AddAttachmentCallback {
private static final String FRAG_TAG_ATTACHMENT_DIALOG = "frag_tag_attachment_dialog";
private static final int REQUEST_CAMERA = 12120;
private static final int REQUEST_GALLERY = 12121;
private static final int REQUEST_STORAGE = 12122;
private static final int REQUEST_CODE_RECORD = 12123;
public static final String EXTRA_PATH = "extra_path";
public static final String EXTRA_TYPE = "extra_type";
@Inject Preferences preferences;
@ -63,6 +68,11 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
startActivityForResult(new Intent(this, CameraActivity.class), REQUEST_CAMERA);
}
@Override
public void recordNote() {
startActivityForResult(new Intent(this, AACRecordingActivity.class), REQUEST_CODE_RECORD);
}
@Override
public void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) {{
@ -84,9 +94,22 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
if (resultCode == RESULT_OK) {
Uri uri = data.getParcelableExtra(CameraActivity.EXTRA_URI);
final File file = new File(uri.getPath());
String path = file.getPath();
Timber.i("Saved %s", file.getAbsolutePath());
final String extension = path.substring(path.lastIndexOf('.') + 1);
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, file.getAbsolutePath());
putExtra(EXTRA_TYPE, TaskAttachment.FILE_TYPE_IMAGE + extension);
}});
}
finish();
} else if (requestCode == REQUEST_CODE_RECORD) {
if (resultCode == RESULT_OK) {
final String recordedAudioPath = data.getStringExtra(AACRecordingActivity.RESULT_OUTFILE);
final String extension = recordedAudioPath.substring(recordedAudioPath.lastIndexOf('.') + 1);
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, recordedAudioPath);
putExtra(EXTRA_TYPE, TaskAttachment.FILE_TYPE_AUDIO + extension);
}});
}
finish();
@ -95,7 +118,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
Uri uri = data.getData();
ContentResolver contentResolver = getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
String extension = mime.getExtensionFromMimeType(contentResolver.getType(uri));
final String extension = mime.getExtensionFromMimeType(contentResolver.getType(uri));
final File tempFile = getFilename(extension);
Timber.i("Writing %s to %s", uri, tempFile);
try {
@ -106,6 +129,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
}
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, tempFile.getAbsolutePath());
putExtra(EXTRA_TYPE, TaskAttachment.FILE_TYPE_IMAGE + extension);
}});
}
finish();
@ -115,8 +139,10 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
final String destination = copyToAttachmentDirectory(path);
if (destination != null) {
Timber.i("Copied %s to %s", path, destination);
final String extension = destination.substring(path.lastIndexOf('.') + 1);
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, destination);
putExtra(EXTRA_TYPE, TaskAttachment.FILE_TYPE_IMAGE + extension);
}});
}
}

@ -19,6 +19,8 @@ public class AddAttachmentDialog extends InjectingDialogFragment {
public interface AddAttachmentCallback {
void takePicture();
void recordNote();
void pickFromGallery();
void pickFromStorage();
@ -43,6 +45,13 @@ public class AddAttachmentDialog extends InjectingDialogFragment {
}
});
}
entries.add(getString(R.string.premium_record_audio));
actions.add(new Runnable() {
@Override
public void run() {
callback.recordNote();
}
});
if (device.hasGallery()) {
entries.add(getString(R.string.pick_from_gallery));
actions.add(new Runnable() {

@ -2,11 +2,6 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tasks="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_record_note"
android:title="@string/premium_record_audio"
android:icon="@drawable/ic_mic_24dp"
tasks:showAsAction="ifRoom"/>
<item
android:id="@+id/menu_delete"
android:icon="@drawable/ic_delete_24dp"

Loading…
Cancel
Save