summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2020-11-01 17:00:27 +0100
committerGitHub <noreply@github.com>2020-11-01 17:00:27 +0100
commit23763eb87fc615bcd8887ffe281deef8e04cbbda (patch)
tree0964649b02eaf0c4f760d8cf5e4d39f966457edc /app/src/main/java/de/danoeh/antennapod/fragment
parent13e2a67081bd0efa02c097e6e867e8a30f8b3720 (diff)
parent8713d25b1a1b7eac4f8e53f906c0eab0efad7e61 (diff)
downloadAntennaPod-23763eb87fc615bcd8887ffe281deef8e04cbbda.zip
Merge pull request #4628 from ByteHamster/local-feeds-metadata
Fixed local feed metadata, show directly
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java49
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java2
2 files changed, 30 insertions, 21 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
index fa0df9abb..59b21ce43 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
@@ -35,6 +35,9 @@ import de.danoeh.antennapod.discovery.FyydPodcastSearcher;
import de.danoeh.antennapod.discovery.ItunesPodcastSearcher;
import de.danoeh.antennapod.discovery.PodcastIndexPodcastSearcher;
import de.danoeh.antennapod.fragment.gpodnet.GpodnetMainFragment;
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
import java.util.Collections;
@@ -162,31 +165,37 @@ public class AddFeedFragment extends Fragment {
intent.setData(uri);
startActivity(intent);
} else if (requestCode == REQUEST_CODE_ADD_LOCAL_FOLDER) {
- addLocalFolder(uri);
+ Observable.fromCallable(() -> addLocalFolder(uri))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(
+ feed -> {
+ Fragment fragment = FeedItemlistFragment.newInstance(feed.getId());
+ ((MainActivity) getActivity()).loadChildFragment(fragment);
+ }, error -> {
+ Log.e(TAG, Log.getStackTraceString(error));
+ ((MainActivity) getActivity())
+ .showSnackbarAbovePlayer(error.getLocalizedMessage(), Snackbar.LENGTH_LONG);
+ });
}
}
- private void addLocalFolder(Uri uri) {
+ private Feed addLocalFolder(Uri uri) throws DownloadRequestException {
if (Build.VERSION.SDK_INT < 21) {
- return;
+ return null;
}
- try {
- getActivity().getContentResolver()
- .takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
- DocumentFile documentFile = DocumentFile.fromTreeUri(getContext(), uri);
- if (documentFile == null) {
- throw new IllegalArgumentException("Unable to retrieve document tree");
- }
- Feed dirFeed = new Feed(Feed.PREFIX_LOCAL_FOLDER + uri.toString(), null, documentFile.getName());
- dirFeed.setDescription(getString(R.string.local_feed_description));
- dirFeed.setItems(Collections.emptyList());
- dirFeed.setSortOrder(SortOrder.EPISODE_TITLE_A_Z);
- DBTasks.forceRefreshFeed(getContext(), dirFeed, true);
- ((MainActivity) getActivity())
- .showSnackbarAbovePlayer(R.string.add_local_folder_success, Snackbar.LENGTH_SHORT);
- } catch (DownloadRequestException | IllegalArgumentException e) {
- Log.e(TAG, Log.getStackTraceString(e));
- ((MainActivity) getActivity()).showSnackbarAbovePlayer(e.getLocalizedMessage(), Snackbar.LENGTH_LONG);
+ getActivity().getContentResolver()
+ .takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ DocumentFile documentFile = DocumentFile.fromTreeUri(getContext(), uri);
+ if (documentFile == null) {
+ throw new IllegalArgumentException("Unable to retrieve document tree");
}
+ Feed dirFeed = new Feed(Feed.PREFIX_LOCAL_FOLDER + uri.toString(), null, documentFile.getName());
+ dirFeed.setDescription(getString(R.string.local_feed_description));
+ dirFeed.setItems(Collections.emptyList());
+ dirFeed.setSortOrder(SortOrder.EPISODE_TITLE_A_Z);
+ Feed fromDatabase = DBTasks.updateFeed(getContext(), dirFeed, false);
+ DBTasks.forceRefreshFeed(getContext(), fromDatabase, true);
+ return fromDatabase;
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java
index 5fd2c3c8d..f444f3b6e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java
@@ -369,7 +369,7 @@ public class FeedInfoFragment extends Fragment {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
() -> ((MainActivity) getActivity())
- .showSnackbarAbovePlayer(R.string.add_local_folder_success, Snackbar.LENGTH_SHORT),
+ .showSnackbarAbovePlayer(android.R.string.ok, Snackbar.LENGTH_SHORT),
error -> ((MainActivity) getActivity())
.showSnackbarAbovePlayer(error.getLocalizedMessage(), Snackbar.LENGTH_LONG));
}