diff options
Diffstat (limited to 'app/src/main/java/org/terst/feedreader/ui/MainActivity.kt')
| -rw-r--r-- | app/src/main/java/org/terst/feedreader/ui/MainActivity.kt | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt b/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt index c080d89..e1300f0 100644 --- a/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt +++ b/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt @@ -63,17 +63,25 @@ fun FeedReaderApp() { val feedId = decodeNavArg(backStackEntry.arguments?.getString("feedId") ?: UNREAD_FEED_ID) ArticleListScreen( feedId = feedId, - onOpenArticle = { articleId -> navController.navigate("reader/${encodeNavArg(articleId)}") }, + onOpenArticle = { articleId -> + navController.navigate("reader/${encodeNavArg(feedId)}/${encodeNavArg(articleId)}") + }, onBack = { navController.popBackStack() }, onOpenFeedList = { navController.navigate("feeds") } ) } composable( - "reader/{articleId}", - arguments = listOf(navArgument("articleId") { type = NavType.StringType }) + "reader/{feedId}/{articleId}", + arguments = listOf( + navArgument("feedId") { type = NavType.StringType }, + navArgument("articleId") { type = NavType.StringType } + ) ) { backStackEntry -> + val feedId = decodeNavArg(backStackEntry.arguments?.getString("feedId") ?: UNREAD_FEED_ID) val articleId = decodeNavArg(backStackEntry.arguments?.getString("articleId") ?: "") - ReaderScreen(articleId = articleId, onBack = { navController.popBackStack() }) + // feedId here is the list the article was opened from (Unread/Saved/a specific + // feed) -- ReaderScreen uses it to build the swipe queue of sibling articles. + ReaderScreen(feedId = feedId, initialArticleId = articleId, onBack = { navController.popBackStack() }) } composable("addFeed") { AddFeedScreen(onDone = { navController.popBackStack() }) |
