Add waiting and error dialogs to opml parsing

This commit is contained in:
Shinokuni 2019-11-04 14:57:04 +01:00
parent ad28e44268
commit 1daf6e0733
4 changed files with 28 additions and 5 deletions

View File

@ -4,7 +4,6 @@ package com.readrops.app.fragments.settings;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.annotation.Nullable;
@ -143,13 +142,20 @@ public class AccountSettingsFragment extends PreferenceFragmentCompat {
if (requestCode == OPEN_OPML_FILE_REQUEST && resultCode == RESULT_OK && data != null) {
Uri uri = data.getData();
parseOPMLFile(uri);
MaterialDialog dialog = new MaterialDialog.Builder(getActivity())
.title(R.string.opml_processing)
.content(R.string.operation_takes_time)
.progress(true, 100)
.cancelable(false)
.show();
parseOPMLFile(uri, dialog);
}
super.onActivityResult(requestCode, resultCode, data);
}
private void parseOPMLFile(Uri uri) {
private void parseOPMLFile(Uri uri, MaterialDialog dialog) {
OpmlParser.parse(uri, getContext())
.flatMapCompletable(opml -> viewModel.insertOPMLFoldersAndFeeds(opml))
.subscribeOn(Schedulers.io())
@ -157,12 +163,18 @@ public class AccountSettingsFragment extends PreferenceFragmentCompat {
.subscribe(new DisposableCompletableObserver() {
@Override
public void onComplete() {
Log.d("", "onComplete: ");
dialog.dismiss();
}
@Override
public void onError(Throwable e) {
Log.d("", "onError: ");
dialog.dismiss();
new MaterialDialog.Builder(getActivity())
.title(R.string.processing_file_failed)
.neutralText(R.string.cancel)
.iconRes(R.drawable.ic_error)
.show();
}
});
}

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#727272"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>

View File

@ -94,5 +94,8 @@
<string name="actualize">Actualiser</string>
<string name="share_url">Partager le lien</string>
<string name="opml_import_export">Import/Export OPML</string>
<string name="opml_processing">Traitement du fichier OPML</string>
<string name="operation_takes_time">Cette opération peut prendre un certain temps car il faut interroger chaque flux.</string>
<string name="processing_file_failed">Une erreur s\'est produite lors du traitement du fichier</string>
</resources>

View File

@ -102,4 +102,7 @@
<string name="actualize">Actualize</string>
<string name="share_url">Share url</string>
<string name="opml_import_export">OPML Import/Export</string>
<string name="opml_processing">Processing OPML file</string>
<string name="operation_takes_time">This operation can take a significant time as each feed needs to be queried.</string>
<string name="processing_file_failed">An error occurred during the file processing</string>
</resources>