diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e9ff29ec7..811ab2c36 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -154,13 +154,17 @@
-
+
+
+
+
+
diff --git a/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.java b/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.java
index 68411c569..55178ef67 100644
--- a/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.java
+++ b/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.java
@@ -1,25 +1,29 @@
/** TODO: make this lightweight, don't extend the entire MainActivity */
package com.todoroo.astrid.activity;
-import static com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow;
-import static org.tasks.intents.TaskIntents.getEditTaskStack;
-
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
+
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskCreator;
-import javax.inject.Inject;
import org.tasks.data.TaskAttachment;
-import org.tasks.files.FileHelper;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Preferences;
+import java.util.ArrayList;
+
+import javax.inject.Inject;
+
import timber.log.Timber;
+import static com.google.common.collect.Lists.newArrayList;
+import static com.todoroo.andlib.utility.AndroidUtilities.atLeastMarshmallow;
+import static org.tasks.intents.TaskIntents.getEditTaskStack;
+
/**
* @author joshuagross
*
Create a new task based on incoming links from the "share" menu
@@ -54,7 +58,6 @@ public final class ShareLinkActivity extends InjectingAppCompatActivity {
private void readIntent() {
Intent intent = getIntent();
String action = intent.getAction();
- String type = intent.getType();
if (atLeastMarshmallow() && Intent.ACTION_PROCESS_TEXT.equals(action)) {
CharSequence text = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT);
@@ -62,18 +65,32 @@ public final class ShareLinkActivity extends InjectingAppCompatActivity {
Task task = taskCreator.createWithValues(null, text.toString());
getEditTaskStack(this, null, task).startActivities();
}
- } else if (Intent.ACTION_SEND.equals(action)) {
+ } else if (action.equals(Intent.ACTION_SEND) || action.equals(Intent.ACTION_SEND_MULTIPLE)) {
String subject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
Task task = taskCreator.createWithValues(null, subject);
task.setNotes(intent.getStringExtra(Intent.EXTRA_TEXT));
- if (type.startsWith("image/")) {
- Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
- task.putTransitory(TaskAttachment.KEY, uri);
- }
+ task.putTransitory(TaskAttachment.KEY, getAttachments(intent));
getEditTaskStack(this, null, task).startActivities();
} else {
Timber.e("Unhandled intent: %s", intent);
}
finish();
}
+
+ private ArrayList getAttachments(Intent intent) {
+ String type = intent.getType();
+ if (type != null) {
+ String action = intent.getAction();
+ if (action.equals(Intent.ACTION_SEND)) {
+ if (type.startsWith("image/")) {
+ return newArrayList(intent.getParcelableExtra(Intent.EXTRA_STREAM));
+ }
+ } else if (action.equals(Intent.ACTION_SEND_MULTIPLE)) {
+ if (type.startsWith("image/")) {
+ return intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
+ }
+ }
+ }
+ return new ArrayList<>();
+ }
}
diff --git a/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java b/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
index db4bc55b4..eaf5310a4 100644
--- a/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
+++ b/app/src/main/java/com/todoroo/astrid/files/FilesControlSet.java
@@ -28,6 +28,8 @@ import org.tasks.injection.FragmentComponent;
import org.tasks.preferences.Preferences;
import org.tasks.ui.TaskEditControlFragment;
+import java.util.ArrayList;
+
import javax.inject.Inject;
import androidx.annotation.Nullable;
@@ -77,7 +79,9 @@ public class FilesControlSet extends TaskEditControlFragment {
if (savedInstanceState == null) {
if (task.hasTransitory(TaskAttachment.KEY)) {
- copyToAttachmentDirectory(task.getTransitory(TaskAttachment.KEY));
+ for (Uri uri : (ArrayList) task.getTransitory(TaskAttachment.KEY)) {
+ copyToAttachmentDirectory(uri);
+ }
}
}