diff --git a/lib/providers/user_profile_provider.dart b/lib/providers/user_profile_provider.dart index 685b29f7..893c9c78 100644 --- a/lib/providers/user_profile_provider.dart +++ b/lib/providers/user_profile_provider.dart @@ -7,7 +7,7 @@ import '../services/plex_auth_service.dart'; import '../services/storage_service.dart'; import '../utils/app_logger.dart'; import '../utils/provider_extensions.dart'; -import '../widgets/pin_entry_dialog.dart'; +import '../screens/profile/pin_entry_dialog.dart'; import 'plex_client_provider.dart'; class UserProfileProvider extends ChangeNotifier { diff --git a/lib/screens/discover_screen.dart b/lib/screens/discover_screen.dart index 36692b32..93779304 100644 --- a/lib/screens/discover_screen.dart +++ b/lib/screens/discover_screen.dart @@ -12,10 +12,10 @@ import '../providers/server_state_provider.dart'; import '../providers/hidden_libraries_provider.dart'; import '../providers/playback_state_provider.dart'; import '../widgets/desktop_app_bar.dart'; -import '../widgets/user_avatar_widget.dart'; +import 'profile/user_avatar_widget.dart'; import '../widgets/hub_section.dart'; import '../widgets/hub_navigation_controller.dart'; -import 'profile_switch_screen.dart'; +import 'profile/profile_switch_screen.dart'; import '../providers/user_profile_provider.dart'; import '../providers/settings_provider.dart'; import '../mixins/refreshable.dart'; diff --git a/lib/screens/hub_detail_screen.dart b/lib/screens/hub_detail_screen.dart index ba4aefcb..5fa997bf 100644 --- a/lib/screens/hub_detail_screen.dart +++ b/lib/screens/hub_detail_screen.dart @@ -10,7 +10,7 @@ import '../utils/app_logger.dart'; import '../utils/grid_cross_axis_extent.dart'; import '../widgets/media_card.dart'; import '../widgets/desktop_app_bar.dart'; -import '../widgets/sort_bottom_sheet.dart'; +import 'libraries/sort_bottom_sheet.dart'; import '../mixins/refreshable.dart'; import '../i18n/strings.g.dart'; diff --git a/lib/widgets/adaptive_media_grid.dart b/lib/screens/libraries/adaptive_media_grid.dart similarity index 91% rename from lib/widgets/adaptive_media_grid.dart rename to lib/screens/libraries/adaptive_media_grid.dart index 2e4cb90f..9a9048ca 100644 --- a/lib/widgets/adaptive_media_grid.dart +++ b/lib/screens/libraries/adaptive_media_grid.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../models/plex_metadata.dart'; -import '../providers/settings_provider.dart'; -import '../services/settings_service.dart' show ViewMode; -import '../utils/grid_size_calculator.dart'; -import 'media_card.dart'; +import '../../models/plex_metadata.dart'; +import '../../providers/settings_provider.dart'; +import '../../services/settings_service.dart' show ViewMode; +import '../../utils/grid_size_calculator.dart'; +import '../../widgets/media_card.dart'; /// A widget that automatically switches between grid and list view /// based on user settings, providing a consistent layout pattern diff --git a/lib/widgets/content_state_builder.dart b/lib/screens/libraries/content_state_builder.dart similarity index 98% rename from lib/widgets/content_state_builder.dart rename to lib/screens/libraries/content_state_builder.dart index d4c80289..dc61d697 100644 --- a/lib/widgets/content_state_builder.dart +++ b/lib/screens/libraries/content_state_builder.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import '../i18n/strings.g.dart'; +import '../../i18n/strings.g.dart'; import 'empty_state_widget.dart'; import 'error_state_widget.dart'; diff --git a/lib/widgets/context_menu_wrapper.dart b/lib/screens/libraries/context_menu_wrapper.dart similarity index 100% rename from lib/widgets/context_menu_wrapper.dart rename to lib/screens/libraries/context_menu_wrapper.dart diff --git a/lib/widgets/empty_state_widget.dart b/lib/screens/libraries/empty_state_widget.dart similarity index 100% rename from lib/widgets/empty_state_widget.dart rename to lib/screens/libraries/empty_state_widget.dart diff --git a/lib/widgets/error_state_widget.dart b/lib/screens/libraries/error_state_widget.dart similarity index 100% rename from lib/widgets/error_state_widget.dart rename to lib/screens/libraries/error_state_widget.dart diff --git a/lib/widgets/filters_bottom_sheet.dart b/lib/screens/libraries/filters_bottom_sheet.dart similarity index 97% rename from lib/widgets/filters_bottom_sheet.dart rename to lib/screens/libraries/filters_bottom_sheet.dart index e66e6346..0c99bf34 100644 --- a/lib/widgets/filters_bottom_sheet.dart +++ b/lib/screens/libraries/filters_bottom_sheet.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; -import '../models/plex_filter.dart'; -import '../widgets/app_bar_back_button.dart'; -import '../widgets/bottom_sheet_header.dart'; -import '../utils/provider_extensions.dart'; -import '../utils/keyboard_utils.dart'; -import '../i18n/strings.g.dart'; +import '../../models/plex_filter.dart'; +import '../../widgets/app_bar_back_button.dart'; +import '../../widgets/bottom_sheet_header.dart'; +import '../../utils/provider_extensions.dart'; +import '../../utils/keyboard_utils.dart'; +import '../../i18n/strings.g.dart'; class FiltersBottomSheet extends StatefulWidget { final List filters; diff --git a/lib/widgets/folder_tree_item.dart b/lib/screens/libraries/folder_tree_item.dart similarity index 98% rename from lib/widgets/folder_tree_item.dart rename to lib/screens/libraries/folder_tree_item.dart index 086fb739..61caf51d 100644 --- a/lib/widgets/folder_tree_item.dart +++ b/lib/screens/libraries/folder_tree_item.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import '../models/plex_metadata.dart'; -import '../utils/keyboard_utils.dart'; +import '../../models/plex_metadata.dart'; +import '../../utils/keyboard_utils.dart'; /// Individual item in the folder tree /// Can be either a folder (expandable) or a file (tappable) diff --git a/lib/widgets/folder_tree_view.dart b/lib/screens/libraries/folder_tree_view.dart similarity index 95% rename from lib/widgets/folder_tree_view.dart rename to lib/screens/libraries/folder_tree_view.dart index 818cf76c..fc1de621 100644 --- a/lib/widgets/folder_tree_view.dart +++ b/lib/screens/libraries/folder_tree_view.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; -import '../models/plex_metadata.dart'; -import '../screens/media_detail_screen.dart'; -import '../screens/season_detail_screen.dart'; -import '../utils/app_logger.dart'; -import '../utils/provider_extensions.dart'; -import '../utils/video_player_navigation.dart'; -import '../i18n/strings.g.dart'; +import '../../models/plex_metadata.dart'; +import '../media_detail_screen.dart'; +import '../season_detail_screen.dart'; +import '../../utils/app_logger.dart'; +import '../../utils/provider_extensions.dart'; +import '../../utils/video_player_navigation.dart'; +import '../../i18n/strings.g.dart'; import 'folder_tree_item.dart'; import 'empty_state_widget.dart'; import 'error_state_widget.dart'; diff --git a/lib/screens/libraries_screen.dart b/lib/screens/libraries/libraries_screen.dart similarity index 98% rename from lib/screens/libraries_screen.dart rename to lib/screens/libraries/libraries_screen.dart index 294165d6..81f0c0bc 100644 --- a/lib/screens/libraries_screen.dart +++ b/lib/screens/libraries/libraries_screen.dart @@ -2,29 +2,29 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'package:dio/dio.dart'; -import '../../services/plex_client.dart'; -import '../models/plex_library.dart'; -import '../models/plex_metadata.dart'; -import '../models/plex_sort.dart'; -import '../providers/hidden_libraries_provider.dart'; -import '../providers/multi_server_provider.dart'; -import '../utils/app_logger.dart'; -import '../utils/keyboard_utils.dart'; -import '../utils/provider_extensions.dart'; -import '../widgets/desktop_app_bar.dart'; -import '../widgets/context_menu_wrapper.dart'; -import '../widgets/server_badge.dart'; -import '../services/storage_service.dart'; -import '../mixins/refreshable.dart'; -import '../mixins/item_updatable.dart'; -import '../theme/theme_helper.dart'; -import '../i18n/strings.g.dart'; -import '../utils/error_message_utils.dart'; -import 'library_tabs/library_browse_tab.dart'; -import 'library_tabs/library_recommended_tab.dart'; -import 'library_tabs/library_collections_tab.dart'; -import 'library_tabs/library_playlists_tab.dart'; -import 'main_screen.dart'; +import '../../../services/plex_client.dart'; +import '../../models/plex_library.dart'; +import '../../models/plex_metadata.dart'; +import '../../models/plex_sort.dart'; +import '../../providers/hidden_libraries_provider.dart'; +import '../../providers/multi_server_provider.dart'; +import '../../utils/app_logger.dart'; +import '../../utils/keyboard_utils.dart'; +import '../../utils/provider_extensions.dart'; +import '../../widgets/desktop_app_bar.dart'; +import 'context_menu_wrapper.dart'; +import 'server_badge.dart'; +import '../../services/storage_service.dart'; +import '../../mixins/refreshable.dart'; +import '../../mixins/item_updatable.dart'; +import '../../theme/theme_helper.dart'; +import '../../i18n/strings.g.dart'; +import '../../utils/error_message_utils.dart'; +import 'tabs/library_browse_tab.dart'; +import 'tabs/library_recommended_tab.dart'; +import 'tabs/library_collections_tab.dart'; +import 'tabs/library_playlists_tab.dart'; +import '../main_screen.dart'; class LibrariesScreen extends StatefulWidget { const LibrariesScreen({super.key}); diff --git a/lib/widgets/server_badge.dart b/lib/screens/libraries/server_badge.dart similarity index 100% rename from lib/widgets/server_badge.dart rename to lib/screens/libraries/server_badge.dart diff --git a/lib/widgets/sort_bottom_sheet.dart b/lib/screens/libraries/sort_bottom_sheet.dart similarity index 97% rename from lib/widgets/sort_bottom_sheet.dart rename to lib/screens/libraries/sort_bottom_sheet.dart index ffe3ff87..ce7eba6d 100644 --- a/lib/widgets/sort_bottom_sheet.dart +++ b/lib/screens/libraries/sort_bottom_sheet.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import '../models/plex_sort.dart'; -import '../widgets/bottom_sheet_header.dart'; -import '../utils/keyboard_utils.dart'; -import '../i18n/strings.g.dart'; +import '../../models/plex_sort.dart'; +import '../../widgets/bottom_sheet_header.dart'; +import '../../utils/keyboard_utils.dart'; +import '../../i18n/strings.g.dart'; class SortBottomSheet extends StatefulWidget { final List sortOptions; diff --git a/lib/widgets/state_message_widget.dart b/lib/screens/libraries/state_message_widget.dart similarity index 100% rename from lib/widgets/state_message_widget.dart rename to lib/screens/libraries/state_message_widget.dart diff --git a/lib/screens/library_tabs/base_library_tab.dart b/lib/screens/libraries/tabs/base_library_tab.dart similarity index 95% rename from lib/screens/library_tabs/base_library_tab.dart rename to lib/screens/libraries/tabs/base_library_tab.dart index caaa9cf0..41e11d24 100644 --- a/lib/screens/library_tabs/base_library_tab.dart +++ b/lib/screens/libraries/tabs/base_library_tab.dart @@ -1,10 +1,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import '../../models/plex_library.dart'; -import '../../utils/app_logger.dart'; -import '../../mixins/library_tab_state.dart'; -import '../../mixins/refreshable.dart'; -import '../../widgets/content_state_builder.dart'; +import '../../../models/plex_library.dart'; +import '../../../utils/app_logger.dart'; +import '../../../mixins/library_tab_state.dart'; +import '../../../mixins/refreshable.dart'; +import '../content_state_builder.dart'; /// Base class for library tab screens that provides common state management /// and lifecycle handling for tabs that display library content. diff --git a/lib/screens/library_tabs/library_browse_tab.dart b/lib/screens/libraries/tabs/library_browse_tab.dart similarity index 94% rename from lib/screens/library_tabs/library_browse_tab.dart rename to lib/screens/libraries/tabs/library_browse_tab.dart index 37999490..b5c4eab6 100644 --- a/lib/screens/library_tabs/library_browse_tab.dart +++ b/lib/screens/libraries/tabs/library_browse_tab.dart @@ -2,27 +2,27 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'package:dio/dio.dart'; -import '../../services/plex_client.dart'; -import '../../models/plex_library.dart'; -import '../../models/plex_metadata.dart'; -import '../../models/plex_filter.dart'; -import '../../models/plex_sort.dart'; -import '../../providers/settings_provider.dart'; -import '../../utils/error_message_utils.dart'; -import '../../utils/grid_size_calculator.dart'; -import '../../utils/keyboard_utils.dart'; -import '../../widgets/media_card.dart'; -import '../../widgets/folder_tree_view.dart'; -import '../../widgets/filters_bottom_sheet.dart'; -import '../../widgets/sort_bottom_sheet.dart'; -import '../../widgets/empty_state_widget.dart'; -import '../../widgets/error_state_widget.dart'; -import '../../services/storage_service.dart'; -import '../../services/settings_service.dart' show ViewMode; -import '../../mixins/item_updatable.dart'; -import '../../mixins/library_tab_state.dart'; -import '../../mixins/refreshable.dart'; -import '../../i18n/strings.g.dart'; +import '../../../../services/plex_client.dart'; +import '../../../models/plex_library.dart'; +import '../../../models/plex_metadata.dart'; +import '../../../models/plex_filter.dart'; +import '../../../models/plex_sort.dart'; +import '../../../providers/settings_provider.dart'; +import '../../../utils/error_message_utils.dart'; +import '../../../utils/grid_size_calculator.dart'; +import '../../../utils/keyboard_utils.dart'; +import '../../../widgets/media_card.dart'; +import '../folder_tree_view.dart'; +import '../filters_bottom_sheet.dart'; +import '../sort_bottom_sheet.dart'; +import '../empty_state_widget.dart'; +import '../error_state_widget.dart'; +import '../../../services/storage_service.dart'; +import '../../../services/settings_service.dart' show ViewMode; +import '../../../mixins/item_updatable.dart'; +import '../../../mixins/library_tab_state.dart'; +import '../../../mixins/refreshable.dart'; +import '../../../i18n/strings.g.dart'; /// Browse tab for library screen /// Shows library items with grouping, filtering, and sorting diff --git a/lib/screens/library_tabs/library_collections_tab.dart b/lib/screens/libraries/tabs/library_collections_tab.dart similarity index 90% rename from lib/screens/library_tabs/library_collections_tab.dart rename to lib/screens/libraries/tabs/library_collections_tab.dart index 498ca7ea..77265a71 100644 --- a/lib/screens/library_tabs/library_collections_tab.dart +++ b/lib/screens/libraries/tabs/library_collections_tab.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import '../../models/plex_metadata.dart'; -import '../../utils/library_refresh_notifier.dart'; -import '../../i18n/strings.g.dart'; -import '../../widgets/adaptive_media_grid.dart'; +import '../../../models/plex_metadata.dart'; +import '../../../utils/library_refresh_notifier.dart'; +import '../../../i18n/strings.g.dart'; +import '../adaptive_media_grid.dart'; import 'base_library_tab.dart'; /// Collections tab for library screen diff --git a/lib/screens/library_tabs/library_playlists_tab.dart b/lib/screens/libraries/tabs/library_playlists_tab.dart similarity index 89% rename from lib/screens/library_tabs/library_playlists_tab.dart rename to lib/screens/libraries/tabs/library_playlists_tab.dart index e65a9981..1efe90f9 100644 --- a/lib/screens/library_tabs/library_playlists_tab.dart +++ b/lib/screens/libraries/tabs/library_playlists_tab.dart @@ -1,12 +1,12 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../../models/plex_playlist.dart'; -import '../../providers/settings_provider.dart'; -import '../../utils/library_refresh_notifier.dart'; -import '../../services/settings_service.dart' show ViewMode; -import '../../utils/grid_size_calculator.dart'; -import '../../widgets/media_card.dart'; -import '../../i18n/strings.g.dart'; +import '../../../models/plex_playlist.dart'; +import '../../../providers/settings_provider.dart'; +import '../../../utils/library_refresh_notifier.dart'; +import '../../../services/settings_service.dart' show ViewMode; +import '../../../utils/grid_size_calculator.dart'; +import '../../../widgets/media_card.dart'; +import '../../../i18n/strings.g.dart'; import 'base_library_tab.dart'; /// Playlists tab for library screen diff --git a/lib/screens/library_tabs/library_recommended_tab.dart b/lib/screens/libraries/tabs/library_recommended_tab.dart similarity index 93% rename from lib/screens/library_tabs/library_recommended_tab.dart rename to lib/screens/libraries/tabs/library_recommended_tab.dart index dd0a7d7f..d4df4d5a 100644 --- a/lib/screens/library_tabs/library_recommended_tab.dart +++ b/lib/screens/libraries/tabs/library_recommended_tab.dart @@ -1,12 +1,12 @@ import 'package:flutter/material.dart'; -import '../../services/plex_client.dart'; -import '../../i18n/strings.g.dart'; -import '../../mixins/item_updatable.dart'; -import '../../models/plex_hub.dart'; -import '../../models/plex_metadata.dart'; -import '../../widgets/hub_navigation_controller.dart'; -import '../../widgets/hub_section.dart'; +import '../../../../services/plex_client.dart'; +import '../../../i18n/strings.g.dart'; +import '../../../mixins/item_updatable.dart'; +import '../../../models/plex_hub.dart'; +import '../../../models/plex_metadata.dart'; +import '../../../widgets/hub_navigation_controller.dart'; +import '../../../widgets/hub_section.dart'; import 'base_library_tab.dart'; /// Recommended tab for library screen diff --git a/lib/screens/main_screen.dart b/lib/screens/main_screen.dart index 0cff555d..d049ad28 100644 --- a/lib/screens/main_screen.dart +++ b/lib/screens/main_screen.dart @@ -15,9 +15,9 @@ import '../providers/playback_state_provider.dart'; import '../services/plex_auth_service.dart'; import '../services/storage_service.dart'; import 'discover_screen.dart'; -import 'libraries_screen.dart'; +import 'libraries/libraries_screen.dart'; import 'search_screen.dart'; -import 'settings_screen.dart'; +import 'settings/settings_screen.dart'; /// InheritedWidget that provides back navigation functionality to child screens class BackNavigationScope extends InheritedWidget { diff --git a/lib/screens/playlist_detail_screen.dart b/lib/screens/playlist/playlist_detail_screen.dart similarity index 94% rename from lib/screens/playlist_detail_screen.dart rename to lib/screens/playlist/playlist_detail_screen.dart index 3769e070..c029e641 100644 --- a/lib/screens/playlist_detail_screen.dart +++ b/lib/screens/playlist/playlist_detail_screen.dart @@ -1,20 +1,20 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../services/plex_client.dart'; -import '../models/plex_playlist.dart'; -import '../models/plex_metadata.dart'; -import '../providers/settings_provider.dart'; -import '../providers/playback_state_provider.dart'; -import '../utils/app_logger.dart'; -import '../utils/provider_extensions.dart'; -import '../utils/video_player_navigation.dart'; -import '../utils/grid_size_calculator.dart'; -import '../widgets/media_card.dart'; -import '../widgets/playlist_item_card.dart'; -import '../widgets/desktop_app_bar.dart'; -import '../i18n/strings.g.dart'; -import '../utils/dialogs.dart'; -import 'base_media_list_detail_screen.dart'; +import '../../models/plex_playlist.dart'; +import '../../models/plex_metadata.dart'; +import '../../providers/settings_provider.dart'; +import '../../providers/playback_state_provider.dart'; +import '../../utils/app_logger.dart'; +import '../../utils/provider_extensions.dart'; +import '../../utils/video_player_navigation.dart'; +import '../../utils/grid_size_calculator.dart'; +import '../../widgets/media_card.dart'; +import 'playlist_item_card.dart'; +import '../../widgets/desktop_app_bar.dart'; +import '../../i18n/strings.g.dart'; +import '../../utils/dialogs.dart'; +import '../base_media_list_detail_screen.dart'; /// Screen to display the contents of a playlist class PlaylistDetailScreen extends StatefulWidget { diff --git a/lib/widgets/playlist_item_card.dart b/lib/screens/playlist/playlist_item_card.dart similarity index 94% rename from lib/widgets/playlist_item_card.dart rename to lib/screens/playlist/playlist_item_card.dart index 9036126f..b43e45c6 100644 --- a/lib/widgets/playlist_item_card.dart +++ b/lib/screens/playlist/playlist_item_card.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; import '../../services/plex_client.dart'; -import '../mixins/keyboard_long_press_mixin.dart'; -import '../models/plex_metadata.dart'; -import '../utils/duration_formatter.dart'; -import '../utils/provider_extensions.dart'; -import '../i18n/strings.g.dart'; -import 'focus/focus_indicator.dart'; -import 'media_context_menu.dart'; -import 'plex_optimized_image.dart'; +import '../../mixins/keyboard_long_press_mixin.dart'; +import '../../models/plex_metadata.dart'; +import '../../utils/duration_formatter.dart'; +import '../../utils/provider_extensions.dart'; +import '../../i18n/strings.g.dart'; +import '../../widgets/focus/focus_indicator.dart'; +import '../../widgets/media_context_menu.dart'; +import '../../widgets/plex_optimized_image.dart'; /// Custom list item widget for playlist items /// Shows drag handle, poster, title/metadata, duration, and remove button diff --git a/lib/widgets/pin_entry_dialog.dart b/lib/screens/profile/pin_entry_dialog.dart similarity index 99% rename from lib/widgets/pin_entry_dialog.dart rename to lib/screens/profile/pin_entry_dialog.dart index c66e9167..7ccd1e64 100644 --- a/lib/widgets/pin_entry_dialog.dart +++ b/lib/screens/profile/pin_entry_dialog.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import '../i18n/strings.g.dart'; +import '../../i18n/strings.g.dart'; /// Dialog for entering a PIN to access a protected profile class PinEntryDialog extends StatefulWidget { diff --git a/lib/widgets/profile_list_tile.dart b/lib/screens/profile/profile_list_tile.dart similarity index 97% rename from lib/widgets/profile_list_tile.dart rename to lib/screens/profile/profile_list_tile.dart index 9712653f..bdffc241 100644 --- a/lib/widgets/profile_list_tile.dart +++ b/lib/screens/profile/profile_list_tile.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../i18n/strings.g.dart'; -import '../models/plex_home_user.dart'; +import '../../i18n/strings.g.dart'; +import '../../models/plex_home_user.dart'; import 'user_avatar_widget.dart'; enum UserAttribute { admin, restricted, protected } diff --git a/lib/screens/profile_switch_screen.dart b/lib/screens/profile/profile_switch_screen.dart similarity index 94% rename from lib/screens/profile_switch_screen.dart rename to lib/screens/profile/profile_switch_screen.dart index 42f84707..a532413b 100644 --- a/lib/screens/profile_switch_screen.dart +++ b/lib/screens/profile/profile_switch_screen.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../models/plex_home_user.dart'; -import '../providers/user_profile_provider.dart'; -import '../utils/provider_extensions.dart'; -import '../widgets/profile_list_tile.dart'; -import '../widgets/desktop_app_bar.dart'; -import '../i18n/strings.g.dart'; +import '../../models/plex_home_user.dart'; +import '../../providers/user_profile_provider.dart'; +import '../../utils/provider_extensions.dart'; +import 'profile_list_tile.dart'; +import '../../widgets/desktop_app_bar.dart'; +import '../../i18n/strings.g.dart'; class ProfileSwitchScreen extends StatelessWidget { const ProfileSwitchScreen({super.key}); diff --git a/lib/widgets/user_avatar_widget.dart b/lib/screens/profile/user_avatar_widget.dart similarity index 98% rename from lib/widgets/user_avatar_widget.dart rename to lib/screens/profile/user_avatar_widget.dart index ca050007..0e707046 100644 --- a/lib/widgets/user_avatar_widget.dart +++ b/lib/screens/profile/user_avatar_widget.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; -import '../models/plex_home_user.dart'; -import '../i18n/strings.g.dart'; +import '../../models/plex_home_user.dart'; +import '../../i18n/strings.g.dart'; class UserAvatarWidget extends StatelessWidget { final PlexHomeUser user; diff --git a/lib/screens/about_screen.dart b/lib/screens/settings/about_screen.dart similarity index 97% rename from lib/screens/about_screen.dart rename to lib/screens/settings/about_screen.dart index 640e3531..444530f8 100644 --- a/lib/screens/about_screen.dart +++ b/lib/screens/settings/about_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:package_info_plus/package_info_plus.dart'; -import '../widgets/desktop_app_bar.dart'; -import '../i18n/strings.g.dart'; +import '../../widgets/desktop_app_bar.dart'; +import '../../i18n/strings.g.dart'; import 'licenses_screen.dart'; class AboutScreen extends StatefulWidget { diff --git a/lib/widgets/hotkey_recorder_widget.dart b/lib/screens/settings/hotkey_recorder_widget.dart similarity index 99% rename from lib/widgets/hotkey_recorder_widget.dart rename to lib/screens/settings/hotkey_recorder_widget.dart index b9029099..323e303e 100644 --- a/lib/widgets/hotkey_recorder_widget.dart +++ b/lib/screens/settings/hotkey_recorder_widget.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:hotkey_manager/hotkey_manager.dart'; -import '../i18n/strings.g.dart'; +import '../../i18n/strings.g.dart'; class HotKeyRecorderWidget extends StatefulWidget { final String actionName; diff --git a/lib/screens/licenses_screen.dart b/lib/screens/settings/licenses_screen.dart similarity index 98% rename from lib/screens/licenses_screen.dart rename to lib/screens/settings/licenses_screen.dart index 042123f6..55ef6fdb 100644 --- a/lib/screens/licenses_screen.dart +++ b/lib/screens/settings/licenses_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import '../widgets/desktop_app_bar.dart'; -import '../i18n/strings.g.dart'; +import '../../widgets/desktop_app_bar.dart'; +import '../../i18n/strings.g.dart'; class MergedLicenseEntry { final String packageName; diff --git a/lib/screens/logs_screen.dart b/lib/screens/settings/logs_screen.dart similarity index 98% rename from lib/screens/logs_screen.dart rename to lib/screens/settings/logs_screen.dart index 3be745ea..e9447650 100644 --- a/lib/screens/logs_screen.dart +++ b/lib/screens/settings/logs_screen.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:logger/logger.dart'; -import '../i18n/strings.g.dart'; -import '../utils/app_logger.dart'; -import '../widgets/desktop_app_bar.dart'; +import '../../i18n/strings.g.dart'; +import '../../utils/app_logger.dart'; +import '../../widgets/desktop_app_bar.dart'; class LogsScreen extends StatefulWidget { const LogsScreen({super.key}); diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings/settings_screen.dart similarity index 99% rename from lib/screens/settings_screen.dart rename to lib/screens/settings/settings_screen.dart index 8b387805..08df3619 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings/settings_screen.dart @@ -3,16 +3,16 @@ import 'package:hotkey_manager/hotkey_manager.dart'; import 'package:provider/provider.dart'; import 'package:url_launcher/url_launcher.dart'; -import '../i18n/strings.g.dart'; -import 'main_screen.dart'; -import '../providers/settings_provider.dart'; -import '../providers/theme_provider.dart'; -import '../services/keyboard_shortcuts_service.dart'; -import '../services/settings_service.dart' as settings; -import '../services/update_service.dart'; -import '../utils/keyboard_utils.dart'; -import '../widgets/desktop_app_bar.dart'; -import '../widgets/hotkey_recorder_widget.dart'; +import '../../i18n/strings.g.dart'; +import '../main_screen.dart'; +import '../../providers/settings_provider.dart'; +import '../../providers/theme_provider.dart'; +import '../../services/keyboard_shortcuts_service.dart'; +import '../../services/settings_service.dart' as settings; +import '../../services/update_service.dart'; +import '../../utils/keyboard_utils.dart'; +import '../../widgets/desktop_app_bar.dart'; +import 'hotkey_recorder_widget.dart'; import 'about_screen.dart'; import 'logs_screen.dart'; import 'subtitle_styling_screen.dart'; diff --git a/lib/screens/subtitle_styling_screen.dart b/lib/screens/settings/subtitle_styling_screen.dart similarity index 98% rename from lib/screens/subtitle_styling_screen.dart rename to lib/screens/settings/subtitle_styling_screen.dart index 2accf3d9..d54bcd79 100644 --- a/lib/screens/subtitle_styling_screen.dart +++ b/lib/screens/settings/subtitle_styling_screen.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flex_color_picker/flex_color_picker.dart'; -import '../i18n/strings.g.dart'; -import '../services/settings_service.dart'; -import '../widgets/desktop_app_bar.dart'; +import '../../i18n/strings.g.dart'; +import '../../services/settings_service.dart'; +import '../../widgets/desktop_app_bar.dart'; class SubtitleStylingScreen extends StatefulWidget { const SubtitleStylingScreen({super.key}); diff --git a/lib/widgets/media_card.dart b/lib/widgets/media_card.dart index 387d1d06..52602dcb 100644 --- a/lib/widgets/media_card.dart +++ b/lib/widgets/media_card.dart @@ -16,7 +16,7 @@ import '../utils/content_rating_formatter.dart'; import '../utils/duration_formatter.dart'; import '../screens/media_detail_screen.dart'; import '../screens/season_detail_screen.dart'; -import '../screens/playlist_detail_screen.dart'; +import '../screens/playlist/playlist_detail_screen.dart'; import '../screens/collection_detail_screen.dart'; import '../theme/theme_helper.dart'; import '../i18n/strings.g.dart';