feat: Add app widget system with Glance, reader mode, and reading reminders
- Add Glance dependencies (glance-appwidget:1.1.0, glance-material3:1.1.0) for Compose-based widgets - Implement RecentLinksWidget (4×2) and QuickStatsWidget (2×1) with Glance framework - Add legacy RemoteViews widget (ShaarliWidgetProvider) for backward compatibility - Create WidgetSearchActivity for widget configuration and WidgetUpdateWorker for periodic updates - Add reader mode support with readerContent and readerContentFetchedAt
This commit is contained in:
@@ -44,6 +44,10 @@ sealed class Screen(val route: String) {
|
||||
object Help : Screen("help")
|
||||
object DeadLinks : Screen("dead_links")
|
||||
object Pinned : Screen("pinned")
|
||||
object Reader : Screen("reader/{linkId}") {
|
||||
fun createRoute(linkId: Int): String = "reader/$linkId"
|
||||
}
|
||||
object Reminders : Screen("reminders")
|
||||
}
|
||||
|
||||
@Composable
|
||||
@@ -153,6 +157,10 @@ fun AppNavGraph(
|
||||
onNavigateToHelp = { navController.navigate(Screen.Help.route) },
|
||||
onNavigateToDeadLinks = { navController.navigate(Screen.DeadLinks.route) },
|
||||
onNavigateToPinned = { navController.navigate(Screen.Pinned.route) },
|
||||
onNavigateToReader = { linkId ->
|
||||
navController.navigate(Screen.Reader.createRoute(linkId))
|
||||
},
|
||||
onNavigateToReminders = { navController.navigate(Screen.Reminders.route) },
|
||||
initialTagFilter = tag,
|
||||
initialCollectionId = collectionId
|
||||
)
|
||||
@@ -306,5 +314,32 @@ fun AppNavGraph(
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
composable(
|
||||
route = "reader/{linkId}",
|
||||
arguments = listOf(
|
||||
navArgument("linkId") {
|
||||
type = NavType.IntType
|
||||
}
|
||||
),
|
||||
deepLinks = listOf(
|
||||
navDeepLink { uriPattern = "shaarit://reader/{linkId}" }
|
||||
)
|
||||
) {
|
||||
com.shaarit.presentation.reader.ReaderModeScreen(
|
||||
onNavigateBack = { navController.popBackStack() }
|
||||
)
|
||||
}
|
||||
|
||||
composable(
|
||||
route = Screen.Reminders.route
|
||||
) {
|
||||
com.shaarit.presentation.reminders.RemindersScreen(
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onNavigateToReader = { linkId ->
|
||||
navController.navigate(Screen.Reader.createRoute(linkId))
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user