fixed links in privacy warning in channel discovery. fixes #3577

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java | 8 
src/main/java/eu/siacs/conversations/ui/text/FixedURLSpan.java        | 4 
2 files changed, 10 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java 🔗

@@ -10,6 +10,7 @@ import android.os.Bundle;
 import android.preference.PreferenceManager;
 import android.support.v7.widget.Toolbar;
 import android.text.Html;
+import android.text.method.LinkMovementMethod;
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -158,6 +159,13 @@ public class ChannelDiscoveryActivity extends XmppActivity implements MenuItem.O
             builder.setPositiveButton(R.string.confirm, (dialog, which) -> optIn());
             builder.setOnCancelListener(dialog -> finish());
             final AlertDialog dialog = builder.create();
+            dialog.setOnShowListener(d -> {
+                final TextView textView = dialog.findViewById(android.R.id.message);
+                if (textView == null) {
+                    return;
+                }
+                textView.setMovementMethod(LinkMovementMethod.getInstance());
+            });
             dialog.setCanceledOnTouchOutside(false);
             dialog.show();
         }

src/main/java/eu/siacs/conversations/ui/text/FixedURLSpan.java 🔗

@@ -70,8 +70,8 @@ public class FixedURLSpan extends URLSpan {
 	public void onClick(View widget) {
 		final Uri uri = Uri.parse(getURL());
 		final Context context = widget.getContext();
-		final boolean candidateToProcessDirecty = "xmpp".equals(uri.getScheme()) || ("https".equals(uri.getScheme()) && "conversations.im".equals(uri.getHost()) && uri.getPathSegments().size() > 1 && Arrays.asList("j","i").contains(uri.getPathSegments().get(0)));
-		if (candidateToProcessDirecty && context instanceof ConversationsActivity) {
+		final boolean candidateToProcessDirectly = "xmpp".equals(uri.getScheme()) || ("https".equals(uri.getScheme()) && "conversations.im".equals(uri.getHost()) && uri.getPathSegments().size() > 1 && Arrays.asList("j","i").contains(uri.getPathSegments().get(0)));
+		if (candidateToProcessDirectly && context instanceof ConversationsActivity) {
 			if (((ConversationsActivity) context).onXmppUriClicked(uri)) {
 				widget.playSoundEffect(0);
 				return;