diff options
author | ByteHamster <info@bytehamster.com> | 2020-05-15 17:38:29 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-05-16 19:30:11 +0200 |
commit | 0b37f7998f9458a1de0db4d8b68e4eaa85a154f0 (patch) | |
tree | f3a33bbb9ae7d8a1780c46927062db9317e403ba /app | |
parent | 92033f8373cd9dedbf2d961cf064e4878e225346 (diff) | |
download | AntennaPod-0b37f7998f9458a1de0db4d8b68e4eaa85a154f0.zip |
Fixed importing OPML files with BOM
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java | 11 |
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 |