feat: Integrate Google Gemini AI for bookmark enrichment and improve content classification

- Add Google Gemini AI SDK dependency (generativeai:0.9.0)
- Implement GeminiRepository with API key management in TokenManager
- Create AI enrichment feature with loading states and error handling in AddLinkViewModel
- Add AI magic button with shimmer animation to AddLinkScreen for automatic bookmark analysis
- Extend ContentType enum with MUSIC and NEWS categories
- Enhance content type detection with expande
This commit is contained in:
2026-01-31 11:19:41 -05:00
parent 4021aacc1d
commit f88b7ffad3
28 changed files with 2132 additions and 71 deletions
@@ -41,6 +41,7 @@ sealed class Screen(val route: String) {
object Collections : Screen("collections")
object Dashboard : Screen("dashboard")
object Settings : Screen("settings")
object Help : Screen("help")
}
@Composable
@@ -123,6 +124,7 @@ fun AppNavGraph(
onNavigateToCollections = { navController.navigate(Screen.Collections.route) },
onNavigateToSettings = { navController.navigate(Screen.Settings.route) },
onNavigateToRandom = { },
onNavigateToHelp = { navController.navigate(Screen.Help.route) },
initialTagFilter = tag,
initialCollectionId = collectionId
)
@@ -243,5 +245,16 @@ fun AppNavGraph(
onNavigateToDashboard = { navController.navigate(Screen.Dashboard.route) }
)
}
composable(
route = Screen.Help.route,
deepLinks = listOf(
navDeepLink { uriPattern = "shaarit://help" }
)
) {
com.shaarit.presentation.help.HelpScreen(
onNavigateBack = { navController.popBackStack() }
)
}
}
}