diff --git a/lib/data/viewmodels/seerr_media_detail_view_model.dart b/lib/data/viewmodels/seerr_media_detail_view_model.dart index 458883e1..996ff58e 100644 --- a/lib/data/viewmodels/seerr_media_detail_view_model.dart +++ b/lib/data/viewmodels/seerr_media_detail_view_model.dart @@ -31,6 +31,12 @@ class SeerrMediaDetailState { bool get isMovie => movie != null; bool get isTv => tv != null; + bool get isAnime { + if (tv != null) { + return tv!.keywords.any((keyword) => keyword.id == 210024); + } + return false; + } String get displayTitle { if (movie != null) return movie!.title; diff --git a/lib/ui/screens/seerr/seerr_media_detail_screen.dart b/lib/ui/screens/seerr/seerr_media_detail_screen.dart index 0ac3d298..692c1a68 100644 --- a/lib/ui/screens/seerr/seerr_media_detail_screen.dart +++ b/lib/ui/screens/seerr/seerr_media_detail_screen.dart @@ -1905,8 +1905,24 @@ class _RequestDialogState extends State<_RequestDialog> { final server = _activeServer; if (server == null) return; _selectedServerId ??= server.server.id; - _selectedProfileId ??= server.server.activeProfileId; - final dir = server.server.activeDirectory; + + final isAnime = widget.vm.state.isAnime; + final int? animeProfileId = server.server.activeAnimeProfileId; + final String? animeDir = server.server.activeAnimeDirectory; + + if (isAnime && animeProfileId != null) { + _selectedProfileId ??= animeProfileId; + } else { + _selectedProfileId ??= server.server.activeProfileId; + } + + final String dir; + if (isAnime && animeDir != null && animeDir.isNotEmpty) { + dir = animeDir; + } else { + dir = server.server.activeDirectory; + } + if (_selectedRootFolderId == null && dir.isNotEmpty) { final match = server.rootFolders .where((f) => f.path == dir) @@ -1923,6 +1939,11 @@ class _RequestDialogState extends State<_RequestDialog> { if (_selectedProfileId != null) return _selectedProfileId; final server = _activeServer; if (server == null) return null; + final isAnime = widget.vm.state.isAnime; + final int? animeProfileId = server.server.activeAnimeProfileId; + if (isAnime && animeProfileId != null) { + return animeProfileId; + } return server.server.activeProfileId; } @@ -1937,7 +1958,15 @@ class _RequestDialogState extends State<_RequestDialog> { ?.path; } - final dir = server.server.activeDirectory; + final isAnime = widget.vm.state.isAnime; + final String? animeDir = server.server.activeAnimeDirectory; + final String dir; + if (isAnime && animeDir != null && animeDir.isNotEmpty) { + dir = animeDir; + } else { + dir = server.server.activeDirectory; + } + if (dir.isNotEmpty) { final match = server.rootFolders.where((f) => f.path == dir).firstOrNull;