Also made sure that register/unregister are called in onStart/onStop
instead of onResume/onPause (prevents possible MultiWindow problems
where updates are not received because activity is not fucused).
should never happen in the code path, e.g.,
return the current FeedItem in ItemFragment UI.
Mark underlying method as @Nullable, and let observer's existing
onError() to handle null case
Rx observer : underlying sources marked as @Nullable
ItemFragment.load : .loadInBackground
MediaplayerActivity.checkFavorite : DBReader.getFeedItem
ItemDescriptionFragment.onViewCreated : DBReader.getFeedItem
ItemlistFragment.loadItems : .loadData
to be on the safe side, for cases that the consuming observers checks null
unnecessarily.
Rx observer : underlying sources marked as NonNull
OnlineFeedViewActivity.startFeedDownload : Downloader.getResult
AllEpisodesFragment.loadItems : AllEpisodesFragment.loadData
PlaybackHistoryFragment.loadItems : DBReader.getPlaybackHistory
QueueFragment.loadItems : DBReader.getQueue
SearchFragment.search : .performSearch
to be on the safe side, for cases that the consuming observers
already assumes the result is not null.
Rx observer : underlying sources marked as NonNull
OnlineFeedViewActivity.listener member : DBReader.getFeedList
StatisticsActivity.loadStatistics : DBReader.getStatistics
CustomMRControllerDialog.updateViews : CustomMRControllerDialog.fetchArt
CompletedDownloadsFragment.loadItems : DBReader.getDownloadedItems
DownloadLogFragment.loadItems : DBReader.getDownloadedItems
ItemDescriptionFragment.onViewCreated : .loadData, Timeline.processShownotes
SubscriptionFragment.loadSubscriptions : DBReader.getNavDrawerData
SubscriptionFragment.onContextItemSelected (x2) : DBWriter.markFeedSeen, DBWriter.markFeedRead
PreferenceController.export : ExportWorker.output member
Follow-up to commit 8172d87477dd593745d4776417ef3dd7884d17fb (#3067)
that adds test coverage for the resolved issue.
Also, fix that commit by making the update condition more explicit:
the FeedItem state is only changed when a state switch is necessary.
In other words, an item marked as *new* that gets downloaded should
lose the *new* mark and gain the *unplayed* mark instead.