diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java | 59 |
1 files changed, 36 insertions, 23 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java index c86fdc070..7aa4d5094 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java @@ -20,6 +20,7 @@ import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatDrawableManager; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.RecyclerView; @@ -42,10 +43,10 @@ import de.danoeh.antennapod.core.event.FeedListUpdateEvent; import de.danoeh.antennapod.core.event.PlaybackPositionEvent; import de.danoeh.antennapod.core.event.PlayerStatusEvent; import de.danoeh.antennapod.core.event.UnreadItemsUpdateEvent; -import de.danoeh.antennapod.core.feed.Feed; +import de.danoeh.antennapod.model.feed.Feed; import de.danoeh.antennapod.core.feed.FeedEvent; -import de.danoeh.antennapod.core.feed.FeedItem; -import de.danoeh.antennapod.core.feed.FeedItemFilter; +import de.danoeh.antennapod.model.feed.FeedItem; +import de.danoeh.antennapod.model.feed.FeedItemFilter; import de.danoeh.antennapod.core.glide.ApGlideSettings; import de.danoeh.antennapod.core.glide.FastBlurTransformation; import de.danoeh.antennapod.core.service.download.DownloadService; @@ -56,8 +57,6 @@ import de.danoeh.antennapod.core.storage.DownloadRequestException; import de.danoeh.antennapod.core.storage.DownloadRequester; import de.danoeh.antennapod.core.util.FeedItemPermutors; import de.danoeh.antennapod.core.util.FeedItemUtil; -import de.danoeh.antennapod.core.util.Optional; -import de.danoeh.antennapod.ui.common.ThemeUtils; import de.danoeh.antennapod.core.util.gui.MoreContentListFooterUtil; import de.danoeh.antennapod.dialog.EpisodesApplyActionFragment; import de.danoeh.antennapod.dialog.FilterDialog; @@ -101,6 +100,7 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem private ImageView imgvCover; private TextView txtvInformation; private TextView txtvAuthor; + private TextView txtvUpdatesDisabled; private ImageButton butShowInfo; private ImageButton butShowSettings; private View header; @@ -167,6 +167,7 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem butShowSettings = root.findViewById(R.id.butShowSettings); txtvInformation = root.findViewById(R.id.txtvInformation); txtvFailure = root.findViewById(R.id.txtvFailure); + txtvUpdatesDisabled = root.findViewById(R.id.txtvUpdatesDisabled); header = root.findViewById(R.id.headerContainer); AppBarLayout appBar = root.findViewById(R.id.appBar); CollapsingToolbarLayout collapsingToolbar = root.findViewById(R.id.collapsing_toolbar); @@ -175,13 +176,13 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem @Override protected void doTint(Context themedContext) { toolbar.getMenu().findItem(R.id.sort_items) - .setIcon(ThemeUtils.getDrawableFromAttr(themedContext, R.attr.ic_sort)); + .setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_sort)); toolbar.getMenu().findItem(R.id.filter_items) - .setIcon(ThemeUtils.getDrawableFromAttr(themedContext, R.attr.ic_filter)); + .setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_filter)); toolbar.getMenu().findItem(R.id.refresh_item) - .setIcon(ThemeUtils.getDrawableFromAttr(themedContext, R.attr.navigation_refresh)); + .setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_refresh)); toolbar.getMenu().findItem(R.id.action_search) - .setIcon(ThemeUtils.getDrawableFromAttr(themedContext, R.attr.action_search)); + .setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_search)); } }; iconTintManager.updateTint(); @@ -457,6 +458,13 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem } else { txtvFailure.setVisibility(View.GONE); } + if (!feed.getPreferences().getKeepUpdated()) { + txtvUpdatesDisabled.setText("{md-pause-circle-outline} " + this.getString(R.string.updates_disabled_label)); + Iconify.addIcons(txtvUpdatesDisabled); + txtvUpdatesDisabled.setVisibility(View.VISIBLE); + } else { + txtvUpdatesDisabled.setVisibility(View.GONE); + } txtvTitle.setText(feed.getTitle()); txtvAuthor.setText(feed.getAuthor()); if (feed.getItemFilter() != null) { @@ -549,27 +557,32 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem disposable = Observable.fromCallable(this::loadData) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(result -> { - feed = result.orElse(null); - refreshHeaderView(); - displayList(); - }, error -> Log.e(TAG, Log.getStackTraceString(error))); + .subscribe( + result -> { + feed = result; + refreshHeaderView(); + displayList(); + }, error -> { + feed = null; + refreshHeaderView(); + displayList(); + Log.e(TAG, Log.getStackTraceString(error)); + }); } - @NonNull - private Optional<Feed> loadData() { - Feed feed = DBReader.getFeed(feedID); - if (feed != null && feed.getItemFilter() != null) { - DBReader.loadAdditionalFeedItemListData(feed.getItems()); - FeedItemFilter filter = feed.getItemFilter(); - feed.setItems(filter.filter(feed.getItems())); + @Nullable + private Feed loadData() { + Feed feed = DBReader.getFeed(feedID, true); + if (feed == null) { + return null; } - if (feed != null && feed.getSortOrder() != null) { + DBReader.loadAdditionalFeedItemListData(feed.getItems()); + if (feed.getSortOrder() != null) { List<FeedItem> feedItems = feed.getItems(); FeedItemPermutors.getPermutor(feed.getSortOrder()).reorder(feedItems); feed.setItems(feedItems); } - return Optional.ofNullable(feed); + return feed; } private static class FeedItemListAdapter extends EpisodeItemListAdapter { |