summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2020-05-16 22:31:17 +0200
committerGitHub <noreply@github.com>2020-05-16 22:31:17 +0200
commit5ff96fcc930a3db0bdf5d6d188180061736aa6a2 (patch)
treef66f7d32fca3548cb013b23d8d02c4b0d00ef1eb /app
parent62fc413f9c626f4e749d2aa9c4e2e0b7225b16cb (diff)
parent0b37f7998f9458a1de0db4d8b68e4eaa85a154f0 (diff)
downloadAntennaPod-5ff96fcc930a3db0bdf5d6d188180061736aa6a2.zip
Merge pull request #4153 from ByteHamster/fix-bom-opml
Fixed importing OPML files with BOM
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java
index f4d312a4f..10292b892 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java
@@ -18,8 +18,12 @@ import de.danoeh.antennapod.asynctask.OpmlImportWorker;
import de.danoeh.antennapod.core.export.opml.OpmlElement;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.util.LangUtils;
+import org.apache.commons.io.ByteOrderMark;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.input.BOMInputStream;
import org.apache.commons.lang3.ArrayUtils;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
@@ -130,7 +134,12 @@ public class OpmlImportActivity extends AppCompatActivity {
/** Starts the import process. */
private void startImport() {
try {
- Reader reader = new InputStreamReader(getContentResolver().openInputStream(uri), LangUtils.UTF_8);
+ InputStream opmlFileStream = getContentResolver().openInputStream(uri);
+ BOMInputStream bomInputStream = new BOMInputStream(opmlFileStream);
+ ByteOrderMark bom = bomInputStream.getBOM();
+ String charsetName = (bom == null) ? "UTF-8" : bom.getCharsetName();
+ Reader reader = new InputStreamReader(bomInputStream, charsetName);
+
OpmlImportWorker importWorker = new OpmlImportWorker(this, reader) {
@Override