Merge branch '2109-assertion-in-rssfeedviewmodel' into 'master'

Fix assertion caused by system-initiated process death

Closes #2109

See merge request briar/briar!1510
This commit is contained in:
Torsten Grote
2021-07-20 13:03:27 +00:00
4 changed files with 19 additions and 11 deletions

View File

@@ -57,8 +57,12 @@ public class RssFeedActivity extends BriarActivity
onBackPressed();
}
} else if (result == FAILED) {
String url = viewModel.getUrlFailedImport();
if (url == null) {
throw new AssertionError();
}
RssFeedImportFailedDialogFragment dialog =
RssFeedImportFailedDialogFragment.newInstance();
RssFeedImportFailedDialogFragment.newInstance(url);
dialog.show(getSupportFragmentManager(),
RssFeedImportFailedDialogFragment.TAG);
} else if (result == EXISTS) {

View File

@@ -25,8 +25,15 @@ public class RssFeedImportFailedDialogFragment extends DialogFragment {
ViewModelProvider.Factory viewModelFactory;
private RssFeedViewModel viewModel;
static RssFeedImportFailedDialogFragment newInstance() {
return new RssFeedImportFailedDialogFragment();
private static final String ARG_URL = "url";
static RssFeedImportFailedDialogFragment newInstance(String retryUrl) {
Bundle args = new Bundle();
args.putString(ARG_URL, retryUrl);
RssFeedImportFailedDialogFragment f =
new RssFeedImportFailedDialogFragment();
f.setArguments(args);
return f;
}
@Override
@@ -45,8 +52,8 @@ public class RssFeedImportFailedDialogFragment extends DialogFragment {
R.style.BriarDialogTheme);
builder.setMessage(R.string.blogs_rss_feeds_import_error);
builder.setNegativeButton(R.string.cancel, null);
builder.setPositiveButton(R.string.try_again_button,
(dialog, which) -> viewModel.retryImportFeed());
builder.setPositiveButton(R.string.try_again_button, (dialog, which) ->
viewModel.importFeed(requireArguments().getString(ARG_URL)));
return builder.create();
}

View File

@@ -20,7 +20,6 @@ import org.briarproject.briar.api.feed.Feed;
import javax.annotation.Nullable;
import javax.inject.Inject;
import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;

View File

@@ -159,11 +159,9 @@ class RssFeedViewModel extends DbViewModel {
});
}
void retryImportFeed() {
if (urlFailedImport == null) {
throw new AssertionError();
}
importFeed(urlFailedImport);
@Nullable
String getUrlFailedImport() {
return urlFailedImport;
}
private boolean exists(String url) {