diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-22 16:26:45 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-22 16:26:45 +0000 |
| commit | 52d7877fccd60a1dae33d877ba6aa765dc098a52 (patch) | |
| tree | dd23bf9c42fd59dfb475759d8de969216e7b49e0 /app/src/main/java/org/terst/feedreader/ui/MainActivity.kt | |
| parent | 2c04d2dbef2e36025a4b795291117ad208fba411 (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.kt | 12 |
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( |
