made text selectable again unless text contains more than 1 link
fixes #1615
This commit is contained in:
parent
c40372fc0d
commit
be91c0741f
|
@ -18,6 +18,7 @@ import android.text.style.ForegroundColorSpan;
|
||||||
import android.text.style.RelativeSizeSpan;
|
import android.text.style.RelativeSizeSpan;
|
||||||
import android.text.style.StyleSpan;
|
import android.text.style.StyleSpan;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
|
import android.util.Patterns;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.View.OnLongClickListener;
|
import android.view.View.OnLongClickListener;
|
||||||
|
@ -32,6 +33,7 @@ import android.widget.Toast;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.RejectedExecutionException;
|
import java.util.concurrent.RejectedExecutionException;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
|
||||||
import eu.siacs.conversations.R;
|
import eu.siacs.conversations.R;
|
||||||
import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
|
import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
|
||||||
|
@ -244,6 +246,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
viewHolder.messageBody.setText(text);
|
viewHolder.messageBody.setText(text);
|
||||||
viewHolder.messageBody.setTextColor(getMessageTextColor(darkBackground, false));
|
viewHolder.messageBody.setTextColor(getMessageTextColor(darkBackground, false));
|
||||||
viewHolder.messageBody.setTypeface(null, Typeface.ITALIC);
|
viewHolder.messageBody.setTypeface(null, Typeface.ITALIC);
|
||||||
|
viewHolder.messageBody.setTextIsSelectable(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayDecryptionFailed(ViewHolder viewHolder, boolean darkBackground) {
|
private void displayDecryptionFailed(ViewHolder viewHolder, boolean darkBackground) {
|
||||||
|
@ -256,6 +259,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
R.string.decryption_failed));
|
R.string.decryption_failed));
|
||||||
viewHolder.messageBody.setTextColor(getMessageTextColor(darkBackground, false));
|
viewHolder.messageBody.setTextColor(getMessageTextColor(darkBackground, false));
|
||||||
viewHolder.messageBody.setTypeface(null, Typeface.NORMAL);
|
viewHolder.messageBody.setTypeface(null, Typeface.NORMAL);
|
||||||
|
viewHolder.messageBody.setTextIsSelectable(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayHeartMessage(final ViewHolder viewHolder, final String body) {
|
private void displayHeartMessage(final ViewHolder viewHolder, final String body) {
|
||||||
|
@ -330,8 +334,15 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
}
|
}
|
||||||
viewHolder.messageBody.setText(span);
|
viewHolder.messageBody.setText(span);
|
||||||
}
|
}
|
||||||
|
int urlCount = 0;
|
||||||
|
Matcher matcher = Patterns.WEB_URL.matcher(body);
|
||||||
|
while (matcher.find()) {
|
||||||
|
urlCount++;
|
||||||
|
}
|
||||||
|
viewHolder.messageBody.setTextIsSelectable(urlCount <= 1);
|
||||||
} else {
|
} else {
|
||||||
viewHolder.messageBody.setText("");
|
viewHolder.messageBody.setText("");
|
||||||
|
viewHolder.messageBody.setTextIsSelectable(false);
|
||||||
}
|
}
|
||||||
viewHolder.messageBody.setTextColor(this.getMessageTextColor(darkBackground, true));
|
viewHolder.messageBody.setTextColor(this.getMessageTextColor(darkBackground, true));
|
||||||
viewHolder.messageBody.setLinkTextColor(this.getMessageTextColor(darkBackground, true));
|
viewHolder.messageBody.setLinkTextColor(this.getMessageTextColor(darkBackground, true));
|
||||||
|
|
Loading…
Reference in a new issue