Make Peertube instance URL clickable in help text

This commit is contained in:
Alex Popov 2026-01-07 04:27:40 +03:00
parent fc66bee429
commit 2d0c48d054
No known key found for this signature in database
GPG Key ID: 4889CA9C882DAE28
2 changed files with 20 additions and 3 deletions

View File

@ -5,6 +5,10 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
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;
@ -84,8 +88,22 @@ public class PeertubeInstanceListFragment extends Fragment {
@Nullable final Bundle savedInstanceState) {
super.onViewCreated(rootView, savedInstanceState);
binding.instanceHelpTV.setText(getString(R.string.peertube_instance_url_help,
getString(R.string.peertube_instance_list_url)));
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);
binding.instanceHelpTV.setMovementMethod(LinkMovementMethod.getInstance());
binding.addInstanceButton.setOnClickListener(v -> showAddItemDialog(requireContext()));
binding.instances.setLayoutManager(new LinearLayoutManager(requireContext()));

View File

@ -11,7 +11,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:autoLink="web"
android:text="@string/peertube_instance_url_help" />
<androidx.recyclerview.widget.RecyclerView