Add waiting and error dialogs to opml parsing
This commit is contained in:
parent
ad28e44268
commit
1daf6e0733
@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
5
app/src/main/res/drawable/ic_error.xml
Normal file
5
app/src/main/res/drawable/ic_error.xml
Normal 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>
|
@ -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>
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user