Merge branch 'Docile-Alligator:master' into gallery-captions-feature

This commit is contained in:
scria1000 2021-11-10 09:34:26 +03:00 committed by GitHub
commit 91c457bfe3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 45 additions and 18 deletions

View File

@ -33,6 +33,7 @@ import org.commonmark.ext.gfm.tables.TableBlock;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -136,10 +137,14 @@ public class FullMarkdownActivity extends BaseActivity {
@Override @Override
public String processMarkdown(@NonNull String markdown) { public String processMarkdown(@NonNull String markdown) {
StringBuilder markdownStringBuilder = new StringBuilder(markdown); StringBuilder markdownStringBuilder = new StringBuilder(markdown);
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
ArrayList<Integer> matched = new ArrayList<>();
while (matcher.find()) { while (matcher.find()) {
markdownStringBuilder.replace(matcher.start(), matcher.start() + 1, "&gt;"); matched.add(matcher.start());
}
for (int i = matched.size() - 1; i >= 0; i--) {
markdownStringBuilder.replace(matched.get(i), matched.get(i) + 1, "&gt;");
} }
return super.processMarkdown(markdownStringBuilder.toString()); return super.processMarkdown(markdownStringBuilder.toString());
} }
@ -148,7 +153,7 @@ public class FullMarkdownActivity extends BaseActivity {
public void afterSetText(@NonNull TextView textView) { public void afterSetText(@NonNull TextView textView) {
textView.setHighlightColor(Color.TRANSPARENT); textView.setHighlightColor(Color.TRANSPARENT);
SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString()); SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString());
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
int start = 0; int start = 0;
boolean find = false; boolean find = false;

View File

@ -37,6 +37,7 @@ import org.greenrobot.eventbus.Subscribe;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.ArrayList;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -161,10 +162,14 @@ public class WikiActivity extends BaseActivity {
@Override @Override
public String processMarkdown(@NonNull String markdown) { public String processMarkdown(@NonNull String markdown) {
StringBuilder markdownStringBuilder = new StringBuilder(markdown); StringBuilder markdownStringBuilder = new StringBuilder(markdown);
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
ArrayList<Integer> matched = new ArrayList<>();
while (matcher.find()) { while (matcher.find()) {
markdownStringBuilder.replace(matcher.start(), matcher.start() + 1, "&gt;"); matched.add(matcher.start());
}
for (int i = matched.size() - 1; i >= 0; i--) {
markdownStringBuilder.replace(matched.get(i), matched.get(i) + 1, "&gt;");
} }
return super.processMarkdown(markdownStringBuilder.toString()); return super.processMarkdown(markdownStringBuilder.toString());
} }
@ -173,7 +178,7 @@ public class WikiActivity extends BaseActivity {
public void afterSetText(@NonNull TextView textView) { public void afterSetText(@NonNull TextView textView) {
textView.setHighlightColor(Color.TRANSPARENT); textView.setHighlightColor(Color.TRANSPARENT);
SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString()); SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString());
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
int start = 0; int start = 0;
boolean find = false; boolean find = false;

View File

@ -30,6 +30,7 @@ import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.Locale; import java.util.Locale;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -121,10 +122,14 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
@Override @Override
public String processMarkdown(@NonNull String markdown) { public String processMarkdown(@NonNull String markdown) {
StringBuilder markdownStringBuilder = new StringBuilder(markdown); StringBuilder markdownStringBuilder = new StringBuilder(markdown);
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
ArrayList<Integer> matched = new ArrayList<>();
while (matcher.find()) { while (matcher.find()) {
markdownStringBuilder.replace(matcher.start(), matcher.start() + 1, "&gt;"); matched.add(matcher.start());
}
for (int i = matched.size() - 1; i >= 0; i--) {
markdownStringBuilder.replace(matched.get(i), matched.get(i) + 1, "&gt;");
} }
return super.processMarkdown(markdownStringBuilder.toString()); return super.processMarkdown(markdownStringBuilder.toString());
} }
@ -133,7 +138,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
public void afterSetText(@NonNull TextView textView) { public void afterSetText(@NonNull TextView textView) {
textView.setHighlightColor(Color.TRANSPARENT); textView.setHighlightColor(Color.TRANSPARENT);
SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString()); SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString());
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
int start = 0; int start = 0;
boolean find = false; boolean find = false;

View File

@ -166,10 +166,14 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
@Override @Override
public String processMarkdown(@NonNull String markdown) { public String processMarkdown(@NonNull String markdown) {
StringBuilder markdownStringBuilder = new StringBuilder(markdown); StringBuilder markdownStringBuilder = new StringBuilder(markdown);
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
ArrayList<Integer> matched = new ArrayList<>();
while (matcher.find()) { while (matcher.find()) {
markdownStringBuilder.replace(matcher.start(), matcher.start() + 1, "&gt;"); matched.add(matcher.start());
}
for (int i = matched.size() - 1; i >= 0; i--) {
markdownStringBuilder.replace(matched.get(i), matched.get(i) + 1, "&gt;");
} }
return super.processMarkdown(markdownStringBuilder.toString()); return super.processMarkdown(markdownStringBuilder.toString());
} }
@ -177,7 +181,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
@Override @Override
public void afterSetText(@NonNull TextView textView) { public void afterSetText(@NonNull TextView textView) {
SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString()); SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString());
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
int start = 0; int start = 0;
boolean find = false; boolean find = false;

View File

@ -105,10 +105,14 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
@Override @Override
public String processMarkdown(@NonNull String markdown) { public String processMarkdown(@NonNull String markdown) {
StringBuilder markdownStringBuilder = new StringBuilder(markdown); StringBuilder markdownStringBuilder = new StringBuilder(markdown);
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
ArrayList<Integer> matched = new ArrayList<>();
while (matcher.find()) { while (matcher.find()) {
markdownStringBuilder.replace(matcher.start(), matcher.start() + 1, "&gt;"); matched.add(matcher.start());
}
for (int i = matched.size() - 1; i >= 0; i--) {
markdownStringBuilder.replace(matched.get(i), matched.get(i) + 1, "&gt;");
} }
return super.processMarkdown(markdownStringBuilder.toString()); return super.processMarkdown(markdownStringBuilder.toString());
} }
@ -117,7 +121,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
public void afterSetText(@NonNull TextView textView) { public void afterSetText(@NonNull TextView textView) {
textView.setHighlightColor(Color.TRANSPARENT); textView.setHighlightColor(Color.TRANSPARENT);
SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString()); SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString());
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
int start = 0; int start = 0;
boolean find = false; boolean find = false;

View File

@ -232,10 +232,14 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
@Override @Override
public String processMarkdown(@NonNull String markdown) { public String processMarkdown(@NonNull String markdown) {
StringBuilder markdownStringBuilder = new StringBuilder(markdown); StringBuilder markdownStringBuilder = new StringBuilder(markdown);
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
ArrayList<Integer> matched = new ArrayList<>();
while (matcher.find()) { while (matcher.find()) {
markdownStringBuilder.replace(matcher.start(), matcher.start() + 1, "&gt;"); matched.add(matcher.start());
}
for (int i = matched.size() - 1; i >= 0; i--) {
markdownStringBuilder.replace(matched.get(i), matched.get(i) + 1, "&gt;");
} }
return super.processMarkdown(markdownStringBuilder.toString()); return super.processMarkdown(markdownStringBuilder.toString());
} }
@ -244,7 +248,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
public void afterSetText(@NonNull TextView textView) { public void afterSetText(@NonNull TextView textView) {
textView.setHighlightColor(Color.TRANSPARENT); textView.setHighlightColor(Color.TRANSPARENT);
SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString()); SpannableStringBuilder markdownStringBuilder = new SpannableStringBuilder(textView.getText().toString());
Pattern spoilerPattern = Pattern.compile(">![\\S\\s]*?!<"); Pattern spoilerPattern = Pattern.compile(">![\\S\\s]+?!<");
Matcher matcher = spoilerPattern.matcher(markdownStringBuilder); Matcher matcher = spoilerPattern.matcher(markdownStringBuilder);
int start = 0; int start = 0;
boolean find = false; boolean find = false;