Make Peertube instance URL clickable in help text using HTML

This commit is contained in:
Alex Popov 2026-01-07 04:28:59 +03:00
parent 2d0c48d054
commit 71aef84baf
No known key found for this signature in database
GPG Key ID: 4889CA9C882DAE28

View File

@ -4,11 +4,9 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Html;
import android.text.InputType;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.URLSpan;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@ -89,21 +87,11 @@ public class PeertubeInstanceListFragment extends Fragment {
super.onViewCreated(rootView, savedInstanceState);
final String instanceListUrl = getString(R.string.peertube_instance_list_url);
final String helpText = getString(R.string.peertube_instance_url_help, instanceListUrl);
final SpannableString spannableString = new SpannableString(helpText);
final int urlStart = helpText.indexOf(instanceListUrl);
if (urlStart != -1) {
spannableString.setSpan(
new URLSpan(instanceListUrl),
urlStart,
urlStart + instanceListUrl.length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
);
}
binding.instanceHelpTV.setText(spannableString);
final String helpText = getString(R.string.peertube_instance_url_help,
"<a href=\"" + instanceListUrl + "\">" + instanceListUrl + "</a>");
binding.instanceHelpTV.setText(Html.fromHtml(helpText, Html.FROM_HTML_MODE_LEGACY));
binding.instanceHelpTV.setMovementMethod(LinkMovementMethod.getInstance());
binding.addInstanceButton.setOnClickListener(v -> showAddItemDialog(requireContext()));
binding.instances.setLayoutManager(new LinearLayoutManager(requireContext()));