summaryrefslogtreecommitdiff
path: root/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-07-22 16:26:45 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-07-22 16:26:45 +0000
commit52d7877fccd60a1dae33d877ba6aa765dc098a52 (patch)
treedd23bf9c42fd59dfb475759d8de969216e7b49e0 /app/src/main/java/org/terst/feedreader/ui/MainActivity.kt
parent2c04d2dbef2e36025a4b795291117ad208fba411 (diff)
First round of testing feedback: images, unread landing, dark, delete
- Fix OPML import status message reporting the raw pre-dedup count (144) instead of the actual unique feed count after Room's upsert collapses duplicates (108) -- cosmetic bug, the DB was already correct. - Article thumbnails: extract media:thumbnail/enclosure or the first <img> in feed content, show via Coil in the article list. - App now lands on Unread instead of the feed list; a top-bar icon gets from there to the feed list (forward nav, not back-stack pop, since Unread is now the root). - Dark color scheme by default. - Delete-feed action (with confirmation) on each feed row -- was entirely missing. Deletes its non-saved articles too, so they don't linger as orphaned rows in the cross-feed Unread view; saved articles are kept regardless. - Room migration 1->2 for the new imageUrl column (real migration, not destructive fallback, since there's now real on-device subscription data from testing). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
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.kt12
1 files changed, 9 insertions, 3 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 345bede..c080d89 100644
--- a/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt
+++ b/app/src/main/java/org/terst/feedreader/ui/MainActivity.kt
@@ -6,6 +6,7 @@ import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
+import androidx.compose.material3.darkColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.navigation.NavType
@@ -29,7 +30,8 @@ class MainActivity : ComponentActivity() {
FeedFetchWorker.schedulePeriodic(applicationContext)
setContent {
- MaterialTheme {
+ // Dark by default -- per user request, not following system light/dark for now.
+ MaterialTheme(colorScheme = darkColorScheme()) {
Surface(modifier = Modifier.fillMaxSize()) {
FeedReaderApp()
}
@@ -41,7 +43,10 @@ class MainActivity : ComponentActivity() {
@Composable
fun FeedReaderApp() {
val navController = rememberNavController()
- NavHost(navController = navController, startDestination = "feeds") {
+ // Unread is the landing screen (per user request) -- it has no "back" affordance of its
+ // own since it's the root of the back stack; ArticleListScreen instead shows a way to
+ // reach the feed list from there (a forward navigation, not a pop).
+ NavHost(navController = navController, startDestination = "articles/${encodeNavArg(UNREAD_FEED_ID)}") {
composable("feeds") {
FeedListScreen(
onOpenFeed = { feedId -> navController.navigate("articles/${encodeNavArg(feedId)}") },
@@ -59,7 +64,8 @@ fun FeedReaderApp() {
ArticleListScreen(
feedId = feedId,
onOpenArticle = { articleId -> navController.navigate("reader/${encodeNavArg(articleId)}") },
- onBack = { navController.popBackStack() }
+ onBack = { navController.popBackStack() },
+ onOpenFeedList = { navController.navigate("feeds") }
)
}
composable(