@@ -4,6 +4,7 @@ import android.util.Log
44import androidx.compose.foundation.lazy.LazyListState
55import androidx.lifecycle.ViewModel
66import androidx.lifecycle.viewModelScope
7+ import androidx.navigation.NavController
78import dagger.hilt.android.lifecycle.HiltViewModel
89import kotlinx.coroutines.Dispatchers
910import kotlinx.coroutines.flow.MutableStateFlow
@@ -14,6 +15,7 @@ import kotlinx.coroutines.launch
1415import me.ash.reader.data.model.article.ArticleWithFeed
1516import me.ash.reader.data.repository.RssHelper
1617import me.ash.reader.data.repository.RssRepository
18+ import me.ash.reader.ui.page.common.RouteName
1719import javax.inject.Inject
1820
1921@HiltViewModel
@@ -114,6 +116,19 @@ class ReadingViewModel @Inject constructor(
114116 }
115117 }
116118
119+ fun nextArticle (navController : NavController ) {
120+ val cur = _readingUiState .value.articleWithFeed?.article
121+ if (cur != null ) {
122+ viewModelScope.launch {
123+ val next = rssRepository.get().findNextArticleByDate(cur.feedId, cur.date)
124+ navController.popBackStack()
125+ if (next != null ) {
126+ navController.navigate(" ${RouteName .READING } /${next.article.id} " )
127+ }
128+ }
129+ }
130+ }
131+
117132 private fun showLoading () {
118133 _readingUiState .update {
119134 it.copy(isLoading = true )
0 commit comments