linkify web URLs in description in App Details
fdroid-website#510 fdroid-website#167 fdroidserver#845 fdroiddata@d6c5315a jekyll-fdroid!60
This commit is contained in:
parent
f4ae1aacc7
commit
7248375a3a
@ -17,6 +17,7 @@ import android.text.TextUtils;
|
|||||||
import android.text.format.DateFormat;
|
import android.text.format.DateFormat;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.text.style.URLSpan;
|
import android.text.style.URLSpan;
|
||||||
|
import android.text.util.Linkify;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -29,7 +30,6 @@ import android.widget.LinearLayout;
|
|||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.DrawableRes;
|
import androidx.annotation.DrawableRes;
|
||||||
import androidx.annotation.LayoutRes;
|
import androidx.annotation.LayoutRes;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@ -40,13 +40,13 @@ import androidx.core.graphics.drawable.DrawableCompat;
|
|||||||
import androidx.core.os.ConfigurationCompat;
|
import androidx.core.os.ConfigurationCompat;
|
||||||
import androidx.core.os.LocaleListCompat;
|
import androidx.core.os.LocaleListCompat;
|
||||||
import androidx.core.text.HtmlCompat;
|
import androidx.core.text.HtmlCompat;
|
||||||
|
import androidx.core.text.util.LinkifyCompat;
|
||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
import androidx.core.widget.TextViewCompat;
|
import androidx.core.widget.TextViewCompat;
|
||||||
import androidx.gridlayout.widget.GridLayout;
|
import androidx.gridlayout.widget.GridLayout;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.LinearSmoothScroller;
|
import androidx.recyclerview.widget.LinearSmoothScroller;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import org.apache.commons.io.FilenameUtils;
|
import org.apache.commons.io.FilenameUtils;
|
||||||
import org.fdroid.fdroid.Preferences;
|
import org.fdroid.fdroid.Preferences;
|
||||||
import org.fdroid.fdroid.R;
|
import org.fdroid.fdroid.R;
|
||||||
@ -71,6 +71,7 @@ import java.util.Locale;
|
|||||||
@SuppressWarnings("LineLength")
|
@SuppressWarnings("LineLength")
|
||||||
public class AppDetailsRecyclerViewAdapter
|
public class AppDetailsRecyclerViewAdapter
|
||||||
extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||||
|
public static final String TAG = "AppDetailsRecyclerViewA";
|
||||||
|
|
||||||
public interface AppDetailsRecyclerViewAdapterCallbacks {
|
public interface AppDetailsRecyclerViewAdapterCallbacks {
|
||||||
|
|
||||||
@ -533,6 +534,8 @@ public class AppDetailsRecyclerViewAdapter
|
|||||||
null, new Utils.HtmlTagHandler());
|
null, new Utils.HtmlTagHandler());
|
||||||
descriptionView.setMovementMethod(LinkMovementMethod.getInstance());
|
descriptionView.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
descriptionView.setText(trimTrailingNewlines(desc));
|
descriptionView.setText(trimTrailingNewlines(desc));
|
||||||
|
LinkifyCompat.addLinks(descriptionView, Linkify.WEB_URLS);
|
||||||
|
|
||||||
if (descriptionView.getText() instanceof Spannable) {
|
if (descriptionView.getText() instanceof Spannable) {
|
||||||
Spannable spannable = (Spannable) descriptionView.getText();
|
Spannable spannable = (Spannable) descriptionView.getText();
|
||||||
URLSpan[] spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
|
URLSpan[] spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user