mirror of
https://github.com/nextcloud/notes-android.git
synced 2024-11-21 20:35:58 +03:00
#949 Use https:// as protocol for www links
This commit is contained in:
parent
7767776835
commit
01c46004e7
4 changed files with 13 additions and 14 deletions
|
@ -1,28 +1,26 @@
|
||||||
package it.niedermann.owncloud.notes.shared.util.text;
|
package it.niedermann.owncloud.notes.shared.util.text;
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class WwwLinksProcessor extends TextProcessor {
|
public class WwwLinksProcessor extends TextProcessor {
|
||||||
|
|
||||||
public static final String WWW_URLS_PROTOCOL_PREFIX = "http://";
|
private static final String WWW_URLS_PROTOCOL_PREFIX = "https://";
|
||||||
private static final String replaceWwwUrlsRegEx = "\\[([^]]*)]\\((www\\..+)\\)";
|
private static final String REGEX_REPLACE_WWW_URLS = "\\[([^]]*)]\\((www\\..+)\\)";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prefixes all links, that not not start with a protocol identifier, but with "www." with http://
|
* Prefixes all links, that not not start with a protocol identifier, but with "www." with http://
|
||||||
*
|
* <p>
|
||||||
* See https://github.com/stefan-niedermann/nextcloud-notes/issues/949
|
* See https://github.com/stefan-niedermann/nextcloud-notes/issues/949
|
||||||
*
|
*
|
||||||
* @return Markdown with all pseudo-links replaced through actual HTTP-links
|
* @return Markdown with all pseudo-links replaced through actual HTTP-links
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String process(String s) {
|
public String process(String s) {
|
||||||
return replaceWwwUrls(s);
|
return Pattern
|
||||||
}
|
.compile(REGEX_REPLACE_WWW_URLS)
|
||||||
|
.matcher(s)
|
||||||
private static String replaceWwwUrls(String markdown) {
|
.replaceAll(String.format("[$1](%s$2)", WWW_URLS_PROTOCOL_PREFIX));
|
||||||
Pattern replacePattern = Pattern.compile(replaceWwwUrlsRegEx);
|
|
||||||
Matcher replaceMatcher = replacePattern.matcher(markdown);
|
|
||||||
return replaceMatcher.replaceAll(String.format("[$1](%s$2)", WWW_URLS_PROTOCOL_PREFIX));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class TextProcessorChainTest extends TestCase {
|
||||||
Assert.assertEquals("SelfIdentifyingProcessor 1\nSelfIdentifyingProcessor 2", chain.apply(""));
|
Assert.assertEquals("SelfIdentifyingProcessor 1\nSelfIdentifyingProcessor 2", chain.apply(""));
|
||||||
}
|
}
|
||||||
|
|
||||||
class SelfIdentifyingProcessor extends TextProcessor {
|
static class SelfIdentifyingProcessor extends TextProcessor {
|
||||||
private int id;
|
private int id;
|
||||||
|
|
||||||
public SelfIdentifyingProcessor(int id) {
|
public SelfIdentifyingProcessor(int id) {
|
||||||
|
|
|
@ -37,13 +37,12 @@ public class WwwLinksProcessorTest extends TestCase {
|
||||||
Assert.assertEquals(markdown, sut.process(markdown));
|
Assert.assertEquals(markdown, sut.process(markdown));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("MarkdownUnresolvedFileReference")
|
|
||||||
public void testDoNotReplaceNormalLinks() {
|
public void testDoNotReplaceNormalLinks() {
|
||||||
TextProcessor sut = new WwwLinksProcessor();
|
TextProcessor sut = new WwwLinksProcessor();
|
||||||
|
|
||||||
//language=md
|
//language=md
|
||||||
String markdown = "[normal link](https://example.com) and another [www link](www.example.com) and one more [normal link](https://www.example.com)";
|
String markdown = "[normal link](https://example.com) and another [www link](www.example.com) and one more [normal link](https://www.example.com)";
|
||||||
String result = sut.process(markdown);
|
String result = sut.process(markdown);
|
||||||
Assert.assertEquals("[normal link](https://example.com) and another [www link](http://www.example.com) and one more [normal link](https://www.example.com)", result);
|
Assert.assertEquals("[normal link](https://example.com) and another [www link](https://www.example.com) and one more [normal link](https://www.example.com)", result);
|
||||||
}
|
}
|
||||||
}
|
}
|
2
fastlane/metadata/android/en-US/changelogs/2017000.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/2017000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
- Selecting a note in the main note list highlights two notes (#920) (@muety)
|
||||||
|
- Support www links without protocol in preview mode (#949) (@muety)
|
Loading…
Reference in a new issue