diff --git a/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java b/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java index ec1114ca2..0ffdaa3aa 100644 --- a/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java @@ -10,12 +10,15 @@ import android.content.Context; import android.content.res.Resources; import android.database.Cursor; import android.graphics.Paint; +import android.support.v7.app.AlertDialog; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; +import android.text.method.LinkMovementMethod; import android.text.style.BackgroundColorSpan; import android.text.style.ForegroundColorSpan; +import android.text.util.Linkify; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.LayoutInflater; @@ -433,19 +436,20 @@ public class TaskAdapter extends CursorAdapter implements Filterable { } private void showEditNotesDialog(final Task task) { - String notes = null; Task t = taskDao.fetch(task.getId(), Task.NOTES); - if (t != null) { - notes = t.getNotes(); - } - if (TextUtils.isEmpty(notes)) { + if (t == null || !t.hasNotes()) { return; } - - dialogBuilder.newDialog() - .setMessage(notes) + SpannableString description = new SpannableString(t.getNotes()); + Linkify.addLinks(description, Linkify.ALL); + AlertDialog dialog = dialogBuilder.newDialog() + .setMessage(description) .setPositiveButton(android.R.string.ok, null) .show(); + View message = dialog.findViewById(android.R.id.message); + if (message != null && message instanceof TextView) { + ((TextView) message).setMovementMethod(LinkMovementMethod.getInstance()); + } } private void showFilesDialog(Task task) { diff --git a/src/main/java/com/todoroo/astrid/data/Task.java b/src/main/java/com/todoroo/astrid/data/Task.java index 922b47098..933a3747a 100644 --- a/src/main/java/com/todoroo/astrid/data/Task.java +++ b/src/main/java/com/todoroo/astrid/data/Task.java @@ -8,6 +8,7 @@ package com.todoroo.astrid.data; import android.content.ContentValues; import android.net.Uri; +import android.text.TextUtils; import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property.IntegerProperty; @@ -518,6 +519,10 @@ public class Task extends RemoteModel { return getValue(NOTES); } + public boolean hasNotes() { + return !TextUtils.isEmpty(getValue(NOTES)); + } + public void setNotes(String notes) { setValue(NOTES, notes); } diff --git a/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java b/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java index 8ed7d4723..17f4343c0 100644 --- a/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java +++ b/src/main/java/org/tasks/dialogs/AlertDialogBuilder.java @@ -39,6 +39,11 @@ public class AlertDialogBuilder { return this; } + public AlertDialogBuilder setMessage(CharSequence charSequence) { + builder.setMessage(charSequence); + return this; + } + public AlertDialogBuilder setPositiveButton(int ok, DialogInterface.OnClickListener onClickListener) { builder.setPositiveButton(ok, onClickListener); return this;