Merge branch 'linkify-web-urls' into 'master'

Linkify web urls

See merge request fdroid/fdroidclient!952
This commit is contained in:
Hans-Christoph Steiner 2020-11-18 23:55:20 +00:00
commit 413e2672c6
2 changed files with 6 additions and 3 deletions

View File

@ -80,7 +80,7 @@ public class ConnectivityMonitorService extends JobIntentService {
* cases when looking through the network devices, especially on bad ROMs. * cases when looking through the network devices, especially on bad ROMs.
*/ */
public static int getNetworkState(Context context) { public static int getNetworkState(Context context) {
ConnectivityManager cm = ContextCompat.getSystemService(context, ConnectivityManager.class);; ConnectivityManager cm = ContextCompat.getSystemService(context, ConnectivityManager.class);
if (cm == null) { if (cm == null) {
return FLAG_NET_UNAVAILABLE; return FLAG_NET_UNAVAILABLE;
} }

View File

@ -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);