feat: Add audio playback system with Media3 and comprehensive audio content classification

- Add Media3 dependencies (ExoPlayer, HLS, MediaSession, UI) for audio streaming
- Implement AudioPlayerService as MediaSessionService with foreground playback support
- Create AudioHandler for playback control and AudioMedia domain model with AudioContentType enum
- Add MiniPlayerBar and FullPlayerSheet UI components with play/pause, seek, and navigation controls
- Implement AudioClassifier with strict priority
This commit is contained in:
2026-02-11 11:23:22 -05:00
parent 1deac8850a
commit 2b8134f5b7
21 changed files with 1394 additions and 60 deletions
@@ -58,7 +58,8 @@ fun AppNavGraph(
shareDescription: String? = null,
shareTags: List<String>? = null,
isFileShare: Boolean = false,
initialDeepLink: String? = null
initialDeepLink: String? = null,
onPlayAudio: ((com.shaarit.domain.model.ShaarliLink) -> Unit)? = null
) {
val navController = rememberNavController()
val context = LocalContext.current
@@ -161,6 +162,7 @@ fun AppNavGraph(
navController.navigate(Screen.Reader.createRoute(linkId))
},
onNavigateToReminders = { navController.navigate(Screen.Reminders.route) },
onPlayAudio = onPlayAudio,
initialTagFilter = tag,
initialCollectionId = collectionId
)