diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index e05504b17..37cf7420c 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -51,6 +51,7 @@ import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import com.google.android.material.snackbar.Snackbar; +import com.google.common.base.Joiner; import com.google.common.primitives.Longs; import com.todoroo.astrid.adapter.TaskAdapter; import com.todoroo.astrid.adapter.TaskAdapterProvider; @@ -484,6 +485,9 @@ public final class TaskListFragment extends InjectingFragment case R.id.menu_open_map: ((PlaceFilter) filter).openMap(context); return true; + case R.id.menu_share: + send(transform(taskDao.fetchTasks(preferences, filter), TaskContainer::getTask)); + return true; default: return onOptionsItemSelected(item); } @@ -757,6 +761,9 @@ public final class TaskListFragment extends InjectingFragment updateModeTitle(); recyclerAdapter.notifyDataSetChanged(); return true; + case R.id.menu_share: + send(taskDao.fetch(taskAdapter.getSelected())); + return true; case R.id.delete: dialogBuilder .newDialog(R.string.delete_selected_tasks) @@ -778,6 +785,21 @@ public final class TaskListFragment extends InjectingFragment } } + private void send(List tasks) { + Intent intent = new Intent(Intent.ACTION_SEND); + String output = + Joiner.on("\n") + .join( + transform( + tasks, t -> String.format("%s %s", t.isCompleted() ? "☑" : "☐", t.getTitle()))); + intent.putExtra(Intent.EXTRA_TEXT, output); + intent.setType("text/plain"); + + startActivity(Intent.createChooser(intent, null)); + + taskAdapter.clearSelections(); + } + @Override public void onDestroyActionMode(ActionMode mode) { this.mode = null; diff --git a/app/src/main/res/menu/menu_multi_select.xml b/app/src/main/res/menu/menu_multi_select.xml index a576b2aec..86aca1d5e 100644 --- a/app/src/main/res/menu/menu_multi_select.xml +++ b/app/src/main/res/menu/menu_multi_select.xml @@ -20,6 +20,12 @@ android:title="@string/select_all" app:showAsAction="ifRoom" /> + + + Close date time picker after selecting a date or time Calendar event created for %s Select all + Share