From f634198794ee3e15fc02f677da1642c7df0f5271 Mon Sep 17 00:00:00 2001 From: malockin Date: Sun, 3 May 2020 14:12:40 +0300 Subject: [PATCH 1/8] Initial favorites export commit --- .../ImportExportPreferencesFragment.java | 17 ++- .../res/xml/preferences_import_export.xml | 7 + .../assets/favorites-export-template.html | 82 +++++++++++ .../export/favorites/FavoritesWriter.java | 131 ++++++++++++++++++ core/src/main/res/values-ar/strings.xml | 6 + core/src/main/res/values/strings.xml | 3 + 6 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 core/src/main/assets/favorites-export-template.html create mode 100644 core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java index 5275f5f7e..c805a0abd 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java @@ -5,7 +5,6 @@ import android.app.ProgressDialog; import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; @@ -25,6 +24,7 @@ import de.danoeh.antennapod.activity.SplashActivity; import de.danoeh.antennapod.asynctask.DocumentFileExportWorker; import de.danoeh.antennapod.asynctask.ExportWorker; import de.danoeh.antennapod.core.export.ExportWriter; +import de.danoeh.antennapod.core.export.favorites.FavoritesWriter; import de.danoeh.antennapod.core.export.html.HtmlWriter; import de.danoeh.antennapod.core.export.opml.OpmlWriter; import de.danoeh.antennapod.core.storage.DatabaseExporter; @@ -47,15 +47,18 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat { private static final String PREF_HTML_EXPORT = "prefHtmlExport"; private static final String PREF_DATABASE_IMPORT = "prefDatabaseImport"; private static final String PREF_DATABASE_EXPORT = "prefDatabaseExport"; + private static final String PREF_FAVORITE_EXPORT = "prefFavoritesExport"; private static final String DEFAULT_OPML_OUTPUT_NAME = "antennapod-feeds-%s.opml"; private static final String CONTENT_TYPE_OPML = "text/x-opml"; private static final String DEFAULT_HTML_OUTPUT_NAME = "antennapod-feeds-%s.html"; private static final String CONTENT_TYPE_HTML = "text/html"; + private static final String DEFAULT_FAVORITES_OUTPUT_NAME = "antennapod-favorites-%s.html"; private static final int REQUEST_CODE_CHOOSE_OPML_EXPORT_PATH = 1; private static final int REQUEST_CODE_CHOOSE_OPML_IMPORT_PATH = 2; private static final int REQUEST_CODE_CHOOSE_HTML_EXPORT_PATH = 3; private static final int REQUEST_CODE_RESTORE_DATABASE = 4; private static final int REQUEST_CODE_BACKUP_DATABASE = 5; + private static final int REQUEST_CODE_CHOOSE_FAVORITES_EXPORT_PATH = 6; private static final String DATABASE_EXPORT_FILENAME = "AntennaPodBackup-%s.db"; private Disposable disposable; private ProgressDialog progressDialog; @@ -125,6 +128,12 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat { exportDatabase(); return true; }); + findPreference(PREF_FAVORITE_EXPORT).setOnPreferenceClickListener( + preference -> { + openExportPathPicker(CONTENT_TYPE_HTML, dateStampFilename(DEFAULT_FAVORITES_OUTPUT_NAME), + REQUEST_CODE_CHOOSE_FAVORITES_EXPORT_PATH, new FavoritesWriter()); + return true; + }); } private void exportWithWriter(ExportWriter exportWriter, final Uri uri) { @@ -199,6 +208,10 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat { builder.show(); } + private void importFavorites() { + // TODO implement + } + private void showDatabaseImportSuccessDialog() { AlertDialog.Builder d = new AlertDialog.Builder(getContext()); d.setMessage(R.string.import_ok); @@ -257,6 +270,8 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat { exportWithWriter(new OpmlWriter(), uri); } else if (requestCode == REQUEST_CODE_CHOOSE_HTML_EXPORT_PATH) { exportWithWriter(new HtmlWriter(), uri); + } else if (requestCode == REQUEST_CODE_CHOOSE_FAVORITES_EXPORT_PATH) { + exportWithWriter(new FavoritesWriter(), uri); } else if (requestCode == REQUEST_CODE_RESTORE_DATABASE) { progressDialog.show(); disposable = Completable.fromAction(() -> DatabaseExporter.importBackup(uri, getContext())) diff --git a/app/src/main/res/xml/preferences_import_export.xml b/app/src/main/res/xml/preferences_import_export.xml index 12e27236d..a184b48fa 100644 --- a/app/src/main/res/xml/preferences_import_export.xml +++ b/app/src/main/res/xml/preferences_import_export.xml @@ -27,6 +27,13 @@ android:summary="@string/opml_import_summary"/> + + + + + + + AntennaPod Favorites + + + + + +

AntennaPod Favorites

+
    + {FAVORITES} +
+ Get AntennaPod + + diff --git a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java new file mode 100644 index 000000000..a6686a8a4 --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java @@ -0,0 +1,131 @@ +package de.danoeh.antennapod.core.export.favorites; + +import android.content.Context; +import android.util.Log; + +import org.apache.commons.io.IOUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.io.Writer; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import de.danoeh.antennapod.core.export.ExportWriter; +import de.danoeh.antennapod.core.feed.Feed; +import de.danoeh.antennapod.core.feed.FeedItem; +import de.danoeh.antennapod.core.storage.DBReader; + +/** Writes saved favorites to file */ +public class FavoritesWriter implements ExportWriter { + private static final String TAG = "FavoritesWriter"; + private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); + + private static final int PAGE_LIMIT = 100; + + @Override + public void writeDocument(List feeds, Writer writer, Context context) throws IllegalArgumentException, IllegalStateException, IOException { + Log.d(TAG, "Starting to write document"); + + InputStream templateStream = context.getAssets().open("favorites-export-template.html"); + String template = IOUtils.toString(templateStream, "UTF-8"); + String[] templateParts = template.split("\\{FAVORITES\\}"); + + Map> favoriteByFeed = getFeedMap(getFavorites(feeds)); + + writer.append(templateParts[0]); + writer.append("
    "); + + for (Long feedId : favoriteByFeed.keySet()) { + List favorites = favoriteByFeed.get(feedId); + + writer.append("
  • "); + writeFeed(writer, favorites.get(0).getFeed()); + + writer.append("
      "); + for (FeedItem item : favorites) { + writeFavoriteItem(writer, item); + } + writer.append("
  • \n"); + } + + writer.append("
"); + + writer.append(templateParts[1]); + + Log.d(TAG, "Finished writing document"); + } + + private List getFavorites(List feeds) { + int page = 0; + + List favoritesPage = DBReader.getFavoriteItemsList(page, PAGE_LIMIT); + List favoritesList = new ArrayList<>(); + + while (!favoritesPage.isEmpty()) { + favoritesList.addAll(favoritesPage); + + // save a DB call if there are no more items to fetch + if (favoritesPage.size() < PAGE_LIMIT) { + break; + } + + ++page; + + favoritesPage = DBReader.getFavoriteItemsList(page * PAGE_LIMIT, PAGE_LIMIT); + } + + Collections.sort(favoritesList, (lhs, rhs) -> lhs.getPubDate().compareTo(rhs.getPubDate())); + + return favoritesList; + } + + private Map> getFeedMap(List favoritesList) { + Map> feedMap = new TreeMap<>(); + + for (FeedItem item : favoritesList) { + List feedEpisodes = feedMap.get(item.getFeedId()); + + if (feedEpisodes == null) { + feedEpisodes = new ArrayList<>(); + feedMap.put(item.getFeedId(), feedEpisodes); + } + + feedEpisodes.add(item); + } + + return feedMap; + } + + private void writeFeed(Writer writer, Feed feed) throws IOException { + writer.append("

"); + writer.append(feed.getTitle()); + writer.append(" WebsiteFeed

"); + } + + private void writeFavoriteItem(Writer writer, FeedItem item) throws IOException { + writer.append("
  • ["); + writer.append(DATE_FORMAT.format(item.getPubDate())); + writer.append("] "); + writer.append(item.getTitle().trim()); + writer.append(""); + writer.append("
  • \n"); + } + + @Override + public String fileExtension() { + return "html"; + } +} diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml index 0e29db095..cf9fde1b6 100644 --- a/core/src/main/res/values-ar/strings.xml +++ b/core/src/main/res/values-ar/strings.xml @@ -135,6 +135,12 @@ جار التصدير ... حدث خطأ أثناء التصدير تم التصدير بنجاح + + + المفضلات + تصدير المفضلات + تصدير المفضلات الى ملف + أدخل التوقيت تشغيل الهزاز diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 7b011159b..d4bc20974 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -576,6 +576,9 @@ Select file to import Import successful.\n\nPlease press OK to restart AntennaPod This database was exported with a newer version of AntennaPod. Your current installation does not yet know how to handle this file. + Favorites + Favorites Export + Export saved favorites to file Set sleep timer From 4f8979ecacbb7f7c8c2a854bc6f2c98f5f89f5cf Mon Sep 17 00:00:00 2001 From: malockin Date: Sun, 3 May 2020 18:17:42 +0300 Subject: [PATCH 2/8] Reformatted output, added Hebrew translation Reformatted output to be sorted by date in descending order. Added links to episode page, as well as direct media download. Added Hebrew transaltion for Favorites export. Removed unused code. --- .../ImportExportPreferencesFragment.java | 4 ---- .../export/favorites/FavoritesWriter.java | 20 +++++++++---------- core/src/main/res/values-iw-rIL/strings.xml | 3 +++ 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java index c805a0abd..761d6246e 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/ImportExportPreferencesFragment.java @@ -208,10 +208,6 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat { builder.show(); } - private void importFavorites() { - // TODO implement - } - private void showDatabaseImportSuccessDialog() { AlertDialog.Builder d = new AlertDialog.Builder(getContext()); d.setMessage(R.string.import_ok); diff --git a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java index a6686a8a4..39e968ce9 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java @@ -35,7 +35,7 @@ public class FavoritesWriter implements ExportWriter { String template = IOUtils.toString(templateStream, "UTF-8"); String[] templateParts = template.split("\\{FAVORITES\\}"); - Map> favoriteByFeed = getFeedMap(getFavorites(feeds)); + Map> favoriteByFeed = getFeedMap(getFavorites()); writer.append(templateParts[0]); writer.append("
      "); @@ -60,7 +60,7 @@ public class FavoritesWriter implements ExportWriter { Log.d(TAG, "Finished writing document"); } - private List getFavorites(List feeds) { + private List getFavorites() { int page = 0; List favoritesPage = DBReader.getFavoriteItemsList(page, PAGE_LIMIT); @@ -79,7 +79,8 @@ public class FavoritesWriter implements ExportWriter { favoritesPage = DBReader.getFavoriteItemsList(page * PAGE_LIMIT, PAGE_LIMIT); } - Collections.sort(favoritesList, (lhs, rhs) -> lhs.getPubDate().compareTo(rhs.getPubDate())); + // sort in descending order + Collections.sort(favoritesList, (lhs, rhs) -> rhs.getPubDate().compareTo(lhs.getPubDate())); return favoritesList; } @@ -114,14 +115,13 @@ public class FavoritesWriter implements ExportWriter { } private void writeFavoriteItem(Writer writer, FeedItem item) throws IOException { - writer.append("
    • ["); - writer.append(DATE_FORMAT.format(item.getPubDate())); - writer.append("] "); + writer.append("
    • "); writer.append(item.getTitle().trim()); - writer.append(""); - writer.append("
    • \n"); + writer.append("
      \n[Website] • [Media]\n"); } @Override diff --git a/core/src/main/res/values-iw-rIL/strings.xml b/core/src/main/res/values-iw-rIL/strings.xml index cdd31c600..d20a388bc 100644 --- a/core/src/main/res/values-iw-rIL/strings.xml +++ b/core/src/main/res/values-iw-rIL/strings.xml @@ -556,6 +556,9 @@ בחירת קובץ לייבוא הייבוא הצליח.\n\nנא ללחוץ על אישור כדי להפעיל את אנטנה־פּוֹד מחדש מסד נתונים זה ייוצא עם גרסה עדכנית יותר של אנטנה־פ‎וֹד + מועדפים + ייצוא מועדפים + ייצוא פרקים מועדפים לקובץ הגדרת מתזמן שינה השבתת מתזמן שינה From 104704ee5006da027af98c16f06288ca7488f914 Mon Sep 17 00:00:00 2001 From: malockin Date: Sun, 3 May 2020 18:32:11 +0300 Subject: [PATCH 3/8] Fix static analysis issues --- .../core/export/favorites/FavoritesWriter.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java index 39e968ce9..7b4b38265 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java @@ -8,7 +8,6 @@ import org.apache.commons.io.IOUtils; import java.io.IOException; import java.io.InputStream; import java.io.Writer; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -20,15 +19,15 @@ import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.storage.DBReader; -/** Writes saved favorites to file */ +/** Writes saved favorites to file. */ public class FavoritesWriter implements ExportWriter { private static final String TAG = "FavoritesWriter"; - private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); private static final int PAGE_LIMIT = 100; @Override - public void writeDocument(List feeds, Writer writer, Context context) throws IllegalArgumentException, IllegalStateException, IOException { + public void writeDocument(List feeds, Writer writer, Context context) + throws IllegalArgumentException, IllegalStateException, IOException { Log.d(TAG, "Starting to write document"); InputStream templateStream = context.getAssets().open("favorites-export-template.html"); @@ -85,6 +84,12 @@ public class FavoritesWriter implements ExportWriter { return favoritesList; } + /** + * Group favorite episodes by feed, sorting them by publishing date in descending order. + * + * @param favoritesList {@code List} of all favorite episodes. + * @return A {@code Map} favorite episodes, keyed by feed ID. + */ private Map> getFeedMap(List favoritesList) { Map> feedMap = new TreeMap<>(); From 10e8f7c614d60104ac381c6593116c5bbfb1595a Mon Sep 17 00:00:00 2001 From: malockin Date: Sun, 3 May 2020 19:51:23 +0300 Subject: [PATCH 4/8] roll back manual translations --- core/src/main/res/values-ar/strings.xml | 6 ------ core/src/main/res/values-iw-rIL/strings.xml | 3 --- 2 files changed, 9 deletions(-) diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml index cf9fde1b6..0e29db095 100644 --- a/core/src/main/res/values-ar/strings.xml +++ b/core/src/main/res/values-ar/strings.xml @@ -135,12 +135,6 @@ جار التصدير ... حدث خطأ أثناء التصدير تم التصدير بنجاح - - - المفضلات - تصدير المفضلات - تصدير المفضلات الى ملف - أدخل التوقيت تشغيل الهزاز diff --git a/core/src/main/res/values-iw-rIL/strings.xml b/core/src/main/res/values-iw-rIL/strings.xml index d20a388bc..cdd31c600 100644 --- a/core/src/main/res/values-iw-rIL/strings.xml +++ b/core/src/main/res/values-iw-rIL/strings.xml @@ -556,9 +556,6 @@ בחירת קובץ לייבוא הייבוא הצליח.\n\nנא ללחוץ על אישור כדי להפעיל את אנטנה־פּוֹד מחדש מסד נתונים זה ייוצא עם גרסה עדכנית יותר של אנטנה־פ‎וֹד - מועדפים - ייצוא מועדפים - ייצוא פרקים מועדפים לקובץ הגדרת מתזמן שינה השבתת מתזמן שינה From 1cdfd80ca1561ca0f33313424488354ef6349749 Mon Sep 17 00:00:00 2001 From: malockin Date: Sun, 3 May 2020 22:56:31 +0300 Subject: [PATCH 5/8] Updated PR according to comments Removed unnecessary checks in while loop, and converted it to a do...while loop. Moved favorites export under HTML section. Corrected indentation in resources files. Moved to using a unified template for all HTML exports. Removed unnecessary strings, corrected capitalization. --- .../res/xml/preferences_import_export.xml | 11 +-- .../assets/favorites-export-template.html | 82 ------------------- .../src/main/assets/html-export-template.html | 4 +- .../export/favorites/FavoritesWriter.java | 25 ++---- .../core/export/html/HtmlWriter.java | 1 + core/src/main/res/values/strings.xml | 3 +- 6 files changed, 17 insertions(+), 109 deletions(-) delete mode 100644 core/src/main/assets/favorites-export-template.html diff --git a/app/src/main/res/xml/preferences_import_export.xml b/app/src/main/res/xml/preferences_import_export.xml index a184b48fa..383bff117 100644 --- a/app/src/main/res/xml/preferences_import_export.xml +++ b/app/src/main/res/xml/preferences_import_export.xml @@ -27,17 +27,14 @@ android:summary="@string/opml_import_summary"/> - - - - + diff --git a/core/src/main/assets/favorites-export-template.html b/core/src/main/assets/favorites-export-template.html deleted file mode 100644 index ace80591b..000000000 --- a/core/src/main/assets/favorites-export-template.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - AntennaPod Favorites - - - - - -

      AntennaPod Favorites

      -
        - {FAVORITES} -
      - Get AntennaPod - - diff --git a/core/src/main/assets/html-export-template.html b/core/src/main/assets/html-export-template.html index ddab27a43..fd54a8dc6 100644 --- a/core/src/main/assets/html-export-template.html +++ b/core/src/main/assets/html-export-template.html @@ -1,7 +1,7 @@ - AntennaPod Subscriptions + AntennaPod {TITLE} diff --git a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java index cc66eebd0..914faca05 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java @@ -25,28 +25,38 @@ public class FavoritesWriter implements ExportWriter { private static final int PAGE_LIMIT = 100; + private static final String FAVORITE_TEMPLATE = "html-export-fatorites-item-template.html"; + private static final String FEED_TEMPLATE = "html-export-feed-template.html"; + private static final String UTF_8 = "UTF-8"; + @Override public void writeDocument(List feeds, Writer writer, Context context) throws IllegalArgumentException, IllegalStateException, IOException { Log.d(TAG, "Starting to write document"); InputStream templateStream = context.getAssets().open("html-export-template.html"); - String template = IOUtils.toString(templateStream, "UTF-8"); + String template = IOUtils.toString(templateStream, UTF_8); template = template.replaceAll("\\{TITLE\\}", "Favorites"); String[] templateParts = template.split("\\{FEEDS\\}"); + InputStream favTemplateStream = context.getAssets().open(FAVORITE_TEMPLATE); + String favTemplate = IOUtils.toString(favTemplateStream, UTF_8); + + InputStream feedTemplateStream = context.getAssets().open(FEED_TEMPLATE); + String feedTemplate = IOUtils.toString(feedTemplateStream, UTF_8); + Map> favoriteByFeed = getFeedMap(getFavorites()); writer.append(templateParts[0]); for (Long feedId : favoriteByFeed.keySet()) { List favorites = favoriteByFeed.get(feedId); - writer.append("
    • "); - writeFeed(writer, favorites.get(0).getFeed()); + writer.append("
    • \n"); + writeFeed(writer, favorites.get(0).getFeed(), feedTemplate); - writer.append("
        "); + writer.append("
          \n"); for (FeedItem item : favorites) { - writeFavoriteItem(writer, item); + writeFavoriteItem(writer, item, favTemplate); } writer.append("
    • \n"); } @@ -96,26 +106,23 @@ public class FavoritesWriter implements ExportWriter { return feedMap; } - private void writeFeed(Writer writer, Feed feed) throws IOException { - writer.append("

      "); - writer.append(feed.getTitle()); - writer.append(" WebsiteFeed

      "); + private void writeFeed(Writer writer, Feed feed, String feedTemplate) throws IOException { + String feedInfo = feedTemplate + .replaceAll("\\{FEED_IMG\\}", feed.getImageUrl()) + .replaceAll("\\{FEED_TITLE\\}", feed.getTitle()) + .replaceAll("\\{FEED_LINK\\}", feed.getLink()) + .replaceAll("\\{FEED_WEBSITE\\}", feed.getDownload_url()); + + writer.append(feedInfo); } - private void writeFavoriteItem(Writer writer, FeedItem item) throws IOException { - writer.append("
    • "); - writer.append(item.getTitle().trim()); - writer.append("
      \nWebsiteMedia
    • \n"); + private void writeFavoriteItem(Writer writer, FeedItem item, String favoriteTemplate) throws IOException { + String favItem = favoriteTemplate + .replaceAll("\\{FAV_TITLE\\}", item.getTitle().trim()) + .replaceAll("\\{FAV_WEBSITE\\}", item.getLink()) + .replaceAll("\\{FAV_MEDIA\\}", item.getMedia().getDownload_url()); + + writer.append(favItem); } @Override From cc98447af95faf7f5d44130069edd0dbeeb2ae8c Mon Sep 17 00:00:00 2001 From: malockin Date: Sun, 24 May 2020 08:13:27 +0300 Subject: [PATCH 8/8] Use replace instread of replaceAll & fix typo --- ... => html-export-favorites-item-template.html} | 0 .../core/export/favorites/FavoritesWriter.java | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) rename core/src/main/assets/{html-export-fatorites-item-template.html => html-export-favorites-item-template.html} (100%) diff --git a/core/src/main/assets/html-export-fatorites-item-template.html b/core/src/main/assets/html-export-favorites-item-template.html similarity index 100% rename from core/src/main/assets/html-export-fatorites-item-template.html rename to core/src/main/assets/html-export-favorites-item-template.html diff --git a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java index 914faca05..60c38a391 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/export/favorites/FavoritesWriter.java @@ -25,7 +25,7 @@ public class FavoritesWriter implements ExportWriter { private static final int PAGE_LIMIT = 100; - private static final String FAVORITE_TEMPLATE = "html-export-fatorites-item-template.html"; + private static final String FAVORITE_TEMPLATE = "html-export-favorites-item-template.html"; private static final String FEED_TEMPLATE = "html-export-feed-template.html"; private static final String UTF_8 = "UTF-8"; @@ -108,19 +108,19 @@ public class FavoritesWriter implements ExportWriter { private void writeFeed(Writer writer, Feed feed, String feedTemplate) throws IOException { String feedInfo = feedTemplate - .replaceAll("\\{FEED_IMG\\}", feed.getImageUrl()) - .replaceAll("\\{FEED_TITLE\\}", feed.getTitle()) - .replaceAll("\\{FEED_LINK\\}", feed.getLink()) - .replaceAll("\\{FEED_WEBSITE\\}", feed.getDownload_url()); + .replace("{FEED_IMG}", feed.getImageUrl()) + .replace("{FEED_TITLE}", feed.getTitle()) + .replace("{FEED_LINK}", feed.getLink()) + .replace("{FEED_WEBSITE}", feed.getDownload_url()); writer.append(feedInfo); } private void writeFavoriteItem(Writer writer, FeedItem item, String favoriteTemplate) throws IOException { String favItem = favoriteTemplate - .replaceAll("\\{FAV_TITLE\\}", item.getTitle().trim()) - .replaceAll("\\{FAV_WEBSITE\\}", item.getLink()) - .replaceAll("\\{FAV_MEDIA\\}", item.getMedia().getDownload_url()); + .replace("{FAV_TITLE}", item.getTitle().trim()) + .replace("{FAV_WEBSITE}", item.getLink()) + .replace("{FAV_MEDIA}", item.getMedia().getDownload_url()); writer.append(favItem); }