summaryrefslogtreecommitdiff
path: root/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt
diff options
context:
space:
mode:
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.kt11
1 files changed, 10 insertions, 1 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 0d17ab8..f7ca043 100644
--- a/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt
+++ b/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt
@@ -108,7 +108,16 @@ fun FeedReaderApp() {
LinkReaderScreen(
url = url,
onBack = { navController.popBackStack() },
- onOpenLink = { nextUrl -> navController.navigate("linkReader/${encodeNavArg(nextUrl)}") },
+ // Replaces the current linkReader entry rather than stacking another one on
+ // top -- otherwise a chain of links-within-links (A -> link -> B -> link -> C)
+ // made back step through the chain one hop at a time (C -> B -> A) instead of
+ // returning straight to the source article A, which is what "back" actually
+ // means here: leaving the link-reading detour, not undoing it one link at a time.
+ onOpenLink = { nextUrl ->
+ navController.navigate("linkReader/${encodeNavArg(nextUrl)}") {
+ popUpTo("linkReader/{url}") { inclusive = true }
+ }
+ },
onOpenBrowser = { browserUrl -> navController.navigate("browser/${encodeNavArg(browserUrl)}") }
)
}