--- a/app/src/main/java/com/geekorum/ttrss/articles_list/ActivityViewModel.kt Fri Aug 02 12:02:39 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/ActivityViewModel.kt Fri Aug 02 17:16:45 2019 -0700
@@ -27,6 +27,7 @@
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Transformations
import androidx.lifecycle.ViewModel
+import androidx.lifecycle.switchMap
import com.geekorum.geekdroid.accounts.SyncInProgressLiveData
import com.geekorum.geekdroid.app.lifecycle.EmptyEvent
import com.geekorum.geekdroid.app.lifecycle.Event
@@ -36,7 +37,6 @@
import com.geekorum.ttrss.network.TtRssBrowserLauncher
import com.geekorum.ttrss.providers.ArticlesContract
import javax.inject.Inject
-import com.geekorum.geekdroid.app.lifecycle.EmptyEvent.Companion.makeEmptyEvent as RefreshEvent
import com.geekorum.geekdroid.app.lifecycle.EmptyEvent.Companion.makeEmptyEvent as SearchClosedEvent
import com.geekorum.geekdroid.app.lifecycle.EmptyEvent.Companion.makeEmptyEvent as SearchOpenedEvent
@@ -51,9 +51,13 @@
) : ViewModel() {
private val account = MutableLiveData<Account>()
private val _selectedFeed = MutableLiveData<Long>()
- val selectedFeed: LiveData<Feed?> = Transformations.switchMap(_selectedFeed) {
+ val selectedFeed: LiveData<Feed?> = _selectedFeed.switchMap {
feedsRepository.getFeedById(it)
}
+
+ private val _feedSelectedEvent = MutableLiveData<Event<Long>>()
+ val feedSelectedEvent: LiveData<Event<Long>> = _feedSelectedEvent
+
private val _articleSelectedEvent = MutableLiveData<Event<ArticleSelectedParameters>>()
val articleSelectedEvent: LiveData<Event<ArticleSelectedParameters>> = _articleSelectedEvent
@@ -80,6 +84,7 @@
fun setSelectedFeed(id: Long) {
_selectedFeed.value = id
+ _feedSelectedEvent.value = Event(id)
}
fun refresh() {
--- a/app/src/main/java/com/geekorum/ttrss/articles_list/ArticleListActivity.kt Fri Aug 02 12:02:39 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/ArticleListActivity.kt Fri Aug 02 17:16:45 2019 -0700
@@ -81,7 +81,10 @@
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- activityViewModel.selectedFeed.observe(this) { onFeedSelected(it) }
+ activityViewModel.selectedFeed.observe(this) { bindFeedInformation(it) }
+ activityViewModel.feedSelectedEvent.observe(this, EventObserver {
+ onFeedSelected(it)
+ })
activityViewModel.articleSelectedEvent.observe(this, EventObserver { (position, article) ->
onArticleSelected(position, article)
@@ -244,18 +247,15 @@
startActivity(intent)
}
- /*
- * From MasterActivity
- */
- private fun onFeedSelected(feed: Feed?) {
- if (feed == null) {
- return
- }
+ private fun bindFeedInformation(feed: Feed?) {
+ title = feed?.title ?: ""
+ binding.toolbar.title = title
+ }
+
+ private fun onFeedSelected(feedId: Long) {
navigateUpToList()
- title = feed.title
- binding.toolbar.title = title
supportFragmentManager.commit {
- val hf = ArticlesListFragment.newInstance(supportFragmentManager.fragmentFactory, feed.id)
+ val hf = ArticlesListFragment.newInstance(supportFragmentManager.fragmentFactory, feedId)
replace(R.id.middle_pane_layout, hf, FRAGMENT_ARTICLES_LIST)
}
drawerLayout.closeDrawers()