diff options
4 files changed, 69 insertions, 81 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlImportWorker.java b/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlImportWorker.java index b88b58537..e037eb392 100644 --- a/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlImportWorker.java +++ b/app/src/main/java/de/danoeh/antennapod/asynctask/OpmlImportWorker.java @@ -16,84 +16,78 @@ import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.export.opml.OpmlElement; import de.danoeh.antennapod.core.export.opml.OpmlReader; -public class OpmlImportWorker extends - AsyncTask<Void, Void, ArrayList<OpmlElement>> { - private static final String TAG = "OpmlImportWorker"; +public class OpmlImportWorker extends AsyncTask<Void, Void, ArrayList<OpmlElement>> { + private static final String TAG = "OpmlImportWorker"; - private final Context context; - private Exception exception; + private final Context context; + private Exception exception; + private ProgressDialog progDialog; - private ProgressDialog progDialog; - - private final Reader mReader; + private final Reader reader; public OpmlImportWorker(Context context, Reader reader) { super(); this.context = context; - this.mReader=reader; + this.reader = reader; } - @Override - protected ArrayList<OpmlElement> doInBackground(Void... params) { - Log.d(TAG, "Starting background work"); + @Override + protected ArrayList<OpmlElement> doInBackground(Void... params) { + Log.d(TAG, "Starting background work"); - if (mReader==null) { + if (reader == null) { return null; } - OpmlReader opmlReader = new OpmlReader(); - try { - ArrayList<OpmlElement> result = opmlReader.readDocument(mReader); - mReader.close(); - return result; - } catch (XmlPullParserException e) { - e.printStackTrace(); - exception = e; - return null; - } catch (IOException e) { - e.printStackTrace(); - exception = e; - return null; - } - - } - - @Override - protected void onPostExecute(ArrayList<OpmlElement> result) { - if (mReader != null) { + OpmlReader opmlReader = new OpmlReader(); + try { + ArrayList<OpmlElement> result = opmlReader.readDocument(reader); + reader.close(); + return result; + } catch (XmlPullParserException e) { + e.printStackTrace(); + exception = e; + return null; + } catch (IOException e) { + e.printStackTrace(); + exception = e; + return null; + } + + } + + @Override + protected void onPostExecute(ArrayList<OpmlElement> result) { + if (reader != null) { try { - mReader.close(); + reader.close(); } catch (IOException e) { e.printStackTrace(); } } - progDialog.dismiss(); - if (exception != null) { - Log.d(TAG, "An error occurred while trying to parse the opml document"); - AlertDialog.Builder alert = new AlertDialog.Builder(context); - alert.setTitle(R.string.error_label); - alert.setMessage(context.getString(R.string.opml_reader_error) - + exception.getMessage()); - alert.setNeutralButton(android.R.string.ok, (dialog, which) -> dialog.dismiss()); - alert.create().show(); - } - } - - @Override - protected void onPreExecute() { - progDialog = new ProgressDialog(context); - progDialog.setMessage(context.getString(R.string.reading_opml_label)); - progDialog.setIndeterminate(true); - progDialog.setCancelable(false); - progDialog.show(); - } - - public boolean wasSuccessful() { - return exception != null; - } - - public void executeAsync() { - executeOnExecutor(THREAD_POOL_EXECUTOR); - } + progDialog.dismiss(); + if (exception != null) { + Log.d(TAG, "An error occurred while trying to parse the opml document"); + AlertDialog.Builder alert = new AlertDialog.Builder(context); + alert.setTitle(R.string.error_label); + alert.setMessage(context.getString(R.string.opml_reader_error) + + exception.getMessage()); + alert.setNeutralButton(android.R.string.ok, (dialog, which) -> dialog.dismiss()); + alert.create().show(); + } + } + + @Override + protected void onPreExecute() { + progDialog = new ProgressDialog(context); + progDialog.setMessage(context.getString(R.string.please_wait)); + progDialog.setIndeterminate(true); + progDialog.setCancelable(false); + progDialog.show(); + } + + public void executeAsync() { + executeOnExecutor(THREAD_POOL_EXECUTOR); + } } 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 9803e072c..f3d0acbe8 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 @@ -151,7 +151,7 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat { .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(() -> { - Snackbar.make(getView(), R.string.export_ok, Snackbar.LENGTH_LONG).show(); + Snackbar.make(getView(), R.string.export_success_title, Snackbar.LENGTH_LONG).show(); progressDialog.dismiss(); }, this::showExportErrorDialog); } @@ -242,7 +242,7 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat { .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(() -> { - Snackbar.make(getView(), R.string.export_ok, Snackbar.LENGTH_LONG).show(); + Snackbar.make(getView(), R.string.export_success_title, Snackbar.LENGTH_LONG).show(); progressDialog.dismiss(); }, this::showExportErrorDialog); } diff --git a/app/src/main/res/xml/preferences_import_export.xml b/app/src/main/res/xml/preferences_import_export.xml index 7c576d194..12e27236d 100644 --- a/app/src/main/res/xml/preferences_import_export.xml +++ b/app/src/main/res/xml/preferences_import_export.xml @@ -3,17 +3,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch"> - <PreferenceCategory android:title="@string/opml"> - <Preference - android:key="prefOpmlExport" - android:title="@string/opml_export_label" - android:summary="@string/opml_export_summary"/> - <Preference - android:key="prefOpmlImport" - android:title="@string/opml_import_label" - android:summary="@string/opml_import_summary"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/database"> <Preference android:key="prefDatabaseExport" @@ -27,6 +16,17 @@ android:summary="@string/database_import_summary"/> </PreferenceCategory> + <PreferenceCategory android:title="@string/opml"> + <Preference + android:key="prefOpmlExport" + android:title="@string/opml_export_label" + android:summary="@string/opml_export_summary"/> + <Preference + android:key="prefOpmlImport" + android:title="@string/opml_import_label" + android:summary="@string/opml_import_summary"/> + </PreferenceCategory> + <PreferenceCategory android:title="@string/html"> <Preference android:key="prefHtmlExport" diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 554e1489f..49b8875b6 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -558,7 +558,6 @@ <string name="opml_import_explanation_1">Choose a specific file path from the local filesystem.</string> <string name="opml_import_explanation_3">Many applications like Google Mail, Dropbox, Google Drive and most file managers can <i>open</i> OPML files <i>with</i> AntennaPod.</string> <string name="opml_import_label">OPML Import</string> - <string name="reading_opml_label">Reading OPML file</string> <string name="opml_reader_error">An error has occurred while reading the OPML document:</string> <string name="opml_import_error_no_file">No file selected!</string> <string name="select_all_label">Select all</string> @@ -573,12 +572,7 @@ <string name="export_success_title">Export successful</string> <string name="export_success_sum">The exported file was written to:\n\n%1$s</string> <string name="opml_import_ask_read_permission">Access to external storage is required to read the OPML file</string> - <string name="import_export">Database import/export</string> - <string name="import_export_warning">This experimental function can be used to transfer your subscriptions and played episodes to another device.\n\nExported databases can only be imported when using the same version of AntennaPod. Otherwise, this function will lead to unexpected behavior.\n\nAfter importing, episodes might be displayed as downloaded even though they are not. Just press the play button of the episodes to make AntennaPod detect this.</string> - <string name="label_import">Import</string> - <string name="label_export">Export</string> <string name="import_select_file">Select file to import</string> - <string name="export_ok">Export successful.</string> <string name="import_ok">Import successful.\n\nPlease press OK to restart AntennaPod</string> <!-- Sleep timer --> |