diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index cc0b8289f..44742c5c7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -13,6 +13,7 @@ import org.briarproject.briar.android.privategroup.memberlist.GroupMemberListAct import org.briarproject.briar.android.privategroup.reveal.RevealContactsActivity; import org.briarproject.briar.android.threaded.ThreadListActivity; import org.briarproject.briar.android.threaded.ThreadListViewModel; +import org.briarproject.briar.android.widget.LinkDialogFragment; import org.briarproject.nullsafety.MethodsNotNullByDefault; import org.briarproject.nullsafety.ParametersNotNullByDefault; @@ -158,6 +159,12 @@ public class GroupActivity extends if (isDissolved != null && !isDissolved) super.onReplyClick(item); } + @Override + public void onLinkClick(String url){ + LinkDialogFragment f = LinkDialogFragment.newInstance(url); + f.show(getSupportFragmentManager(), f.getUniqueTag()); + } + private void setGroupEnabled(boolean enabled) { sendController.setReady(enabled); list.getRecyclerView().setAlpha(enabled ? 1f : 0.5f); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java index 3de0b5ce5..9545ead34 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/BaseThreadItemViewHolder.java @@ -20,6 +20,7 @@ import androidx.annotation.UiThread; import androidx.recyclerview.widget.RecyclerView; import static androidx.core.content.ContextCompat.getColor; +import static org.briarproject.briar.android.util.UiUtils.makeLinksClickable; @UiThread @NotNullByDefault @@ -43,6 +44,7 @@ public abstract class BaseThreadItemViewHolder @CallSuper public void bind(I item, ThreadItemListener listener) { textView.setText(StringUtils.trim(item.getText())); + makeLinksClickable(textView, listener::onLinkClick); author.setAuthor(item.getAuthor(), item.getAuthorInfo()); author.setDate(item.getTimestamp()); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java index cca103919..2941cdf94 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java @@ -137,6 +137,7 @@ public class ThreadItemAdapter public interface ThreadItemListener { void onReplyClick(I item); + void onLinkClick(String url); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java index 003061618..1939a5d9b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java @@ -19,6 +19,7 @@ import org.briarproject.briar.android.view.TextSendController; import org.briarproject.briar.android.view.TextSendController.SendListener; import org.briarproject.briar.android.view.TextSendController.SendState; import org.briarproject.briar.android.view.UnreadMessageButton; +import org.briarproject.briar.android.widget.LinkDialogFragment; import org.briarproject.briar.api.attachment.AttachmentHeader; import org.briarproject.nullsafety.MethodsNotNullByDefault; import org.briarproject.nullsafety.ParametersNotNullByDefault; @@ -202,6 +203,12 @@ public abstract class ThreadListActivity