|
|
|
@ -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
|
|
|
|
|
* <p>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<Uri> 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.<Uri>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<>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|