Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-01-05 14:35:58 +0300
committerStefan Niedermann <info@niedermann.it>2021-01-05 14:35:58 +0300
commitdd8cf671c6eeba486a42e6074dcf1d7b270e447c (patch)
treea6131d90d8912e7b3a253aedde899fe01fb0d9e7 /app/src/main/java/it/niedermann/owncloud/notes/shared
parentc92f9d251f6795130539c123c41ac431589332e6 (diff)
Ensure that internal notes links are not persisted
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/shared')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/NoteLinksUtils.java26
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/NoteLinksProcessor.java57
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessor.java10
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessorChain.java12
4 files changed, 0 insertions, 105 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/NoteLinksUtils.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/NoteLinksUtils.java
deleted file mode 100644
index 668d2746..00000000
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/NoteLinksUtils.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package it.niedermann.owncloud.notes.shared.util;
-
-import it.niedermann.owncloud.notes.shared.util.text.NoteLinksProcessor;
-
-public class NoteLinksUtils {
-
- /**
- * Tests if the given link is a note-link (which was transformed in {@link it.niedermann.owncloud.notes.shared.util.text.NoteLinksProcessor}) or not
- *
- * @param link Link under test
- * @return true if the link is a note-link
- */
- public static boolean isNoteLink(String link) {
- return link.startsWith(NoteLinksProcessor.RELATIVE_LINK_WORKAROUND_PREFIX);
- }
-
- /**
- * Extracts the remoteId back from links that were transformed in {@link it.niedermann.owncloud.notes.shared.util.text.NoteLinksProcessor}.
- *
- * @param link Link that was transformed in {@link it.niedermann.owncloud.notes.shared.util.text.NoteLinksProcessor}
- * @return the remoteId of the linked note
- */
- public static long extractNoteRemoteId(String link) {
- return Long.parseLong(link.replace(NoteLinksProcessor.RELATIVE_LINK_WORKAROUND_PREFIX, ""));
- }
-}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/NoteLinksProcessor.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/NoteLinksProcessor.java
deleted file mode 100644
index bc656dd8..00000000
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/NoteLinksProcessor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package it.niedermann.owncloud.notes.shared.util.text;
-
-import android.text.TextUtils;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import androidx.annotation.VisibleForTesting;
-
-public class NoteLinksProcessor extends TextProcessor {
-
- public static final String RELATIVE_LINK_WORKAROUND_PREFIX = "https://nextcloudnotes/notes/";
-
- @VisibleForTesting
- private static final String linksThatLookLikeNoteLinksRegEx = "\\[[^]]*]\\((\\d+)\\)";
- private static final String replaceNoteRemoteIdsRegEx = "\\[([^\\]]*)\\]\\((%s)\\)";
-
- private final Set<String> existingNoteRemoteIds;
-
- public NoteLinksProcessor(Set<String> existingNoteRemoteIds) {
- this.existingNoteRemoteIds = existingNoteRemoteIds;
- }
-
- /**
- * Replaces all links to other notes of the form `[<link-text>](<note-file-id>)`
- * in the markdown string with links to a dummy url.
- *
- * Why is this needed?
- * See discussion in issue #623
- *
- * @return Markdown with all note-links replaced with dummy-url-links
- */
- @Override
- public String process(String s) {
- return replaceNoteLinksWithDummyUrls(s, existingNoteRemoteIds);
- }
-
- private static String replaceNoteLinksWithDummyUrls(String markdown, Set<String> existingNoteRemoteIds) {
- Pattern noteLinkCandidates = Pattern.compile(linksThatLookLikeNoteLinksRegEx);
- Matcher matcher = noteLinkCandidates.matcher(markdown);
-
- Set<String> noteRemoteIdsToReplace = new HashSet<>();
- while (matcher.find()) {
- String presumedNoteId = matcher.group(1);
- if (existingNoteRemoteIds.contains(presumedNoteId)) {
- noteRemoteIdsToReplace.add(presumedNoteId);
- }
- }
-
- String noteRemoteIdsCondition = TextUtils.join("|", noteRemoteIdsToReplace);
- Pattern replacePattern = Pattern.compile(String.format(replaceNoteRemoteIdsRegEx, noteRemoteIdsCondition));
- Matcher replaceMatcher = replacePattern.matcher(markdown);
- return replaceMatcher.replaceAll(String.format("[$1](%s$2)", RELATIVE_LINK_WORKAROUND_PREFIX));
- }
-}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessor.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessor.java
deleted file mode 100644
index 4eb4e4f7..00000000
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessor.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package it.niedermann.owncloud.notes.shared.util.text;
-
-abstract public class TextProcessor {
- /**
- * Applies a specified transformation on a text string and returns the updated string.
- * @param s Text to transform
- * @return Transformed text
- */
- abstract public String process(String s);
-} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessorChain.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessorChain.java
deleted file mode 100644
index 70af737a..00000000
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/text/TextProcessorChain.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package it.niedermann.owncloud.notes.shared.util.text;
-
-import java.util.LinkedList;
-
-public class TextProcessorChain extends LinkedList<TextProcessor> {
- public String apply(String s) {
- for (TextProcessor textProcessor : this) {
- s = textProcessor.process(s);
- }
- return s;
- }
-}