diff --git a/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoItemActivity.java b/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoItemActivity.java index 3e810a81..e67ffd6f 100644 --- a/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoItemActivity.java +++ b/app/src/main/java/io/github/lsposed/manager/ui/activity/RepoItemActivity.java @@ -240,7 +240,9 @@ public class RepoItemActivity extends BaseActivity { public void onBindViewHolder(@NonNull ViewHolder holder, int position) { Release release = items.get(position); holder.title.setText(release.getName()); - holder.description.setText(release.getDescription()); + holder.description.setTransformationMethod(new LinkTransformationMethod(RepoItemActivity.this)); + markwon.setMarkdown(holder.description, release.getDescription()); + holder.description.setMovementMethod(null); holder.openInBrowser.setOnClickListener(v -> NavUtil.startURL(RepoItemActivity.this, release.getUrl())); List assets = release.getReleaseAssets(); if (assets != null && !assets.isEmpty()) { @@ -254,6 +256,14 @@ public class RepoItemActivity extends BaseActivity { } else { holder.viewAssets.setVisibility(View.GONE); } + holder.itemView.setOnClickListener(v -> { + ClickableSpan span = holder.description.getCurrentSpan(); + holder.description.clearCurrentSpan(); + + if (span instanceof CustomTabsURLSpan) { + span.onClick(v); + } + }); } @Override @@ -263,7 +273,7 @@ public class RepoItemActivity extends BaseActivity { class ViewHolder extends RecyclerView.ViewHolder { TextView title; - TextView description; + LinkifyTextView description; View openInBrowser; View viewAssets; diff --git a/app/src/main/res/layout/item_repo_release.xml b/app/src/main/res/layout/item_repo_release.xml index e001a529..619108d3 100644 --- a/app/src/main/res/layout/item_repo_release.xml +++ b/app/src/main/res/layout/item_repo_release.xml @@ -50,7 +50,7 @@ app:layout_constraintBottom_toBottomOf="parent" tools:text="@tools:sample/lorem" /> -