summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2019-11-06 17:17:20 +0100
committerByteHamster <info@bytehamster.com>2019-11-06 17:18:08 +0100
commitd953692443c8e5ae03027210f8a7dcb306e4730d (patch)
treee373ca4568a58fb7ab6dd6b1c92f1c28c76329fd
parent9df14af284bbaf719c21657c66a75478a874194e (diff)
downloadAntennaPod-d953692443c8e5ae03027210f8a7dcb306e4730d.zip
Removed commons text library that was just used 2 times
-rw-r--r--build.gradle1
-rw-r--r--core/build.gradle1
-rw-r--r--core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java49
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomText.java80
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/FileNameGenerator.java75
5 files changed, 130 insertions, 76 deletions
diff --git a/build.gradle b/build.gradle
index 73eab1704..d6a70e158 100644
--- a/build.gradle
+++ b/build.gradle
@@ -49,7 +49,6 @@ project.ext {
awaitilityVersion = "3.1.6"
commonsioVersion = "2.5"
commonslangVersion = "3.6"
- commonstextVersion = "1.3"
eventbusVersion = "3.1.1"
glideVersion = "4.8.0"
glideOkhttpIntegrationVersion = "4.8.0"
diff --git a/core/build.gradle b/core/build.gradle
index fe6ed824a..42d983ccb 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -62,7 +62,6 @@ dependencies {
implementation "android.arch.work:work-runtime:$workManagerVersion"
implementation "androidx.media:media:1.1.0"
implementation "org.apache.commons:commons-lang3:$commonslangVersion"
- implementation "org.apache.commons:commons-text:$commonstextVersion"
implementation "commons-io:commons-io:$commonsioVersion"
implementation "com.jayway.android.robotium:robotium-solo:$robotiumSoloVersion"
implementation "org.jsoup:jsoup:$jsoupVersion"
diff --git a/core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java b/core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java
new file mode 100644
index 000000000..1ab194133
--- /dev/null
+++ b/core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java
@@ -0,0 +1,49 @@
+package de.danoeh.antennapod.core.syndication.namespace.atom;
+
+import androidx.test.filters.SmallTest;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import static org.junit.runners.Parameterized.Parameter;
+import static org.junit.runners.Parameterized.Parameters;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Unit test for {@link AtomText}.
+ */
+@SmallTest
+@RunWith(Parameterized.class)
+public class AtomTextTest {
+
+ @Parameter(value = 0)
+ public String input;
+
+ @Parameter(value = 1)
+ public String expectedOutput;
+
+ @Parameters
+ public static Collection<Object[]> initParameters() {
+ return Arrays.asList(new Object[][] {
+ {"&gt;", ">"},
+ {">", ">"},
+ {"&lt;Fran&ccedil;ais&gt;", "<Français>"},
+ {"ßÄÖÜ", "ßÄÖÜ"},
+ {"&quot;", "\""},
+ {"&szlig;", "ß"},
+ {"&#8217;", "’"},
+ {"&#x2030;", "‰"},
+ {"&euro;", "€"},
+ });
+ }
+
+ @Test
+ public void testProcessingHtml() {
+ final AtomText atomText = new AtomText("", new NSAtom(), AtomText.TYPE_HTML);
+ atomText.setContent(input);
+ assertEquals(expectedOutput, atomText.getProcessedContent());
+ }
+}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomText.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomText.java
index b512dce3f..714b8d8a7 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomText.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomText.java
@@ -1,47 +1,51 @@
package de.danoeh.antennapod.core.syndication.namespace.atom;
-import org.apache.commons.text.StringEscapeUtils;
-
+import android.os.Build;
+import android.text.Html;
import de.danoeh.antennapod.core.syndication.namespace.Namespace;
import de.danoeh.antennapod.core.syndication.namespace.SyndElement;
/** Represents Atom Element which contains text (content, title, summary). */
public class AtomText extends SyndElement {
- public static final String TYPE_TEXT = "text";
- private static final String TYPE_HTML = "html";
- private static final String TYPE_XHTML = "xhtml";
-
- private final String type;
- private String content;
-
- public AtomText(String name, Namespace namespace, String type) {
- super(name, namespace);
- this.type = type;
- }
-
- /** Processes the content according to the type and returns it. */
- public String getProcessedContent() {
- if (type == null) {
- return content;
- } else if (type.equals(TYPE_HTML)) {
- return StringEscapeUtils.unescapeHtml4(content);
- } else if (type.equals(TYPE_XHTML)) {
- return content;
- } else { // Handle as text by default
- return content;
- }
- }
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public String getType() {
- return type;
- }
+ public static final String TYPE_TEXT = "text";
+ public static final String TYPE_HTML = "html";
+ private static final String TYPE_XHTML = "xhtml";
+
+ private final String type;
+ private String content;
+
+ public AtomText(String name, Namespace namespace, String type) {
+ super(name, namespace);
+ this.type = type;
+ }
+
+ /** Processes the content according to the type and returns it. */
+ public String getProcessedContent() {
+ if (type == null) {
+ return content;
+ } else if (type.equals(TYPE_HTML)) {
+ if (Build.VERSION.SDK_INT >= 24) {
+ return Html.fromHtml(content, Html.FROM_HTML_MODE_LEGACY).toString();
+ } else {
+ return Html.fromHtml(content).toString();
+ }
+ } else if (type.equals(TYPE_XHTML)) {
+ return content;
+ } else { // Handle as text by default
+ return content;
+ }
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getType() {
+ return type;
+ }
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/FileNameGenerator.java b/core/src/main/java/de/danoeh/antennapod/core/util/FileNameGenerator.java
index e99461806..5579ec27d 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/FileNameGenerator.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/FileNameGenerator.java
@@ -3,45 +3,48 @@ package de.danoeh.antennapod.core.util;
import android.text.TextUtils;
import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.text.RandomStringGenerator;
/** Generates valid filenames for a given string. */
public class FileNameGenerator {
-
- private static final char[] validChars = (
- "abcdefghijklmnopqrstuvwxyz" +
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
- "0123456789" +
- " _-").toCharArray();
-
- private FileNameGenerator() {
- }
-
- /**
- * This method will return a new string that doesn't contain any illegal
- * characters of the given string.
- */
- public static String generateFileName(String string) {
- StringBuilder buf = new StringBuilder();
- for (int i = 0; i < string.length(); i++) {
- char c = string.charAt(i);
- if(Character.isSpaceChar(c) && (buf.length() == 0 || Character.isSpaceChar(buf.charAt(buf.length()-1)))) {
- continue;
- }
- if (ArrayUtils.contains(validChars, c)) {
- buf.append(c);
- }
- }
- String filename = buf.toString().trim();
- if(TextUtils.isEmpty(filename)) {
- return new RandomStringGenerator.Builder()
- .withinRange('0', 'z')
- .filteredBy(Character::isLetterOrDigit)
- .build()
- .generate(8);
- }
- return filename;
- }
+ private static final char[] validChars =
+ ("abcdefghijklmnopqrstuvwxyz"
+ + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ + "0123456789"
+ + " _-").toCharArray();
+
+ private FileNameGenerator() {
+ }
+
+ /**
+ * This method will return a new string that doesn't contain any illegal
+ * characters of the given string.
+ */
+ public static String generateFileName(String string) {
+ StringBuilder buf = new StringBuilder();
+ for (int i = 0; i < string.length(); i++) {
+ char c = string.charAt(i);
+ if (Character.isSpaceChar(c)
+ && (buf.length() == 0 || Character.isSpaceChar(buf.charAt(buf.length() - 1)))) {
+ continue;
+ }
+ if (ArrayUtils.contains(validChars, c)) {
+ buf.append(c);
+ }
+ }
+ String filename = buf.toString().trim();
+ if (TextUtils.isEmpty(filename)) {
+ return randomString(8);
+ }
+ return filename;
+ }
+
+ private static String randomString(int length) {
+ StringBuilder sb = new StringBuilder(length);
+ for (int i = 0; i < length; i++) {
+ sb.append(validChars[(int) (Math.random() * validChars.length)]);
+ }
+ return sb.toString();
+ }
}