From ad65e9011aef0c1774b645d748c1cbadc965835b Mon Sep 17 00:00:00 2001 From: shenlong <139912620+shenlong-tanwen@users.noreply.github.com> Date: Fri, 25 Jul 2025 08:07:22 +0530 Subject: [PATCH] chore: bump line length to 120 (#20191) --- .github/workflows/static_analysis.yml | 3 +- mobile/.vscode/settings.json | 4 + mobile/analysis_options.yaml | 3 + mobile/lib/constants/colors.dart | 2 +- mobile/lib/constants/locales.dart | 12 +- .../domain/models/asset/base_asset.model.dart | 6 +- .../models/asset/local_asset.model.dart | 6 +- .../models/asset/remote_asset.model.dart | 3 +- .../lib/domain/models/device_asset.model.dart | 4 +- mobile/lib/domain/models/exif.model.dart | 3 +- mobile/lib/domain/models/log.model.dart | 7 +- mobile/lib/domain/models/memory.model.dart | 3 +- mobile/lib/domain/models/person.model.dart | 11 +- mobile/lib/domain/models/stack.model.dart | 10 +- mobile/lib/domain/models/user.model.dart | 13 +- .../domain/models/user_metadata.model.dart | 16 +- mobile/lib/domain/services/asset.service.dart | 15 +- mobile/lib/domain/services/hash.service.dart | 6 +- .../domain/services/local_sync.service.dart | 40 +- mobile/lib/domain/services/log.service.dart | 7 +- .../lib/domain/services/partner.service.dart | 6 +- .../domain/services/remote_album.service.dart | 9 +- .../lib/domain/services/setting.service.dart | 13 +- mobile/lib/domain/services/store.service.dart | 6 +- .../lib/domain/services/timeline.service.dart | 42 +- mobile/lib/domain/utils/background_sync.dart | 10 +- mobile/lib/domain/utils/event_stream.dart | 3 +- mobile/lib/entities/album.entity.dart | 22 +- mobile/lib/entities/asset.entity.dart | 53 +- .../lib/extensions/asyncvalue_extensions.dart | 6 +- .../extensions/build_context_extensions.dart | 3 +- .../lib/extensions/datetime_extensions.dart | 4 +- mobile/lib/extensions/string_extensions.dart | 4 +- mobile/lib/extensions/theme_extensions.dart | 4 +- .../lib/extensions/translate_extensions.dart | 3 +- .../entities/asset_face.entity.dart | 7 +- .../infrastructure/entities/exif.entity.dart | 3 +- .../entities/local_album.entity.dart | 3 +- .../entities/local_album_asset.entity.dart | 6 +- .../entities/memory.entity.dart | 3 +- .../entities/memory_asset.entity.dart | 6 +- .../entities/partner.entity.dart | 6 +- .../entities/person.entity.dart | 3 +- .../entities/remote_album.entity.dart | 11 +- .../entities/remote_album_asset.entity.dart | 6 +- .../entities/remote_album_user.entity.dart | 6 +- .../entities/remote_asset.entity.dart | 6 +- .../infrastructure/entities/stack.entity.dart | 3 +- .../entities/user_metadata.entity.dart | 6 +- .../repositories/asset_face.repository.dart | 5 +- .../repositories/backup.repository.dart | 36 +- .../repositories/db.repository.dart | 6 +- .../repositories/db.repository.steps.dart | 764 +++----- .../repositories/device_asset.repository.dart | 3 +- .../repositories/exif.repository.dart | 3 +- .../repositories/local_album.repository.dart | 71 +- .../repositories/local_asset.repository.dart | 11 +- .../repositories/log.repository.dart | 6 +- .../repositories/memory.repository.dart | 3 +- .../repositories/partner.repository.dart | 21 +- .../repositories/person.repository.dart | 3 +- .../repositories/remote_album.repository.dart | 19 +- .../repositories/remote_asset.repository.dart | 19 +- .../repositories/search_api.repository.dart | 20 +- .../repositories/stack.repository.dart | 3 +- .../repositories/store.repository.dart | 19 +- .../repositories/sync_api.repository.dart | 3 +- .../repositories/sync_stream.repository.dart | 13 +- .../repositories/timeline.repository.dart | 82 +- .../repositories/user.repository.dart | 3 +- .../repositories/user_api.repository.dart | 3 +- .../user_metadata.repository.dart | 3 +- mobile/lib/main.dart | 13 +- .../lib/models/activities/activity.model.dart | 7 +- .../album_add_asset_response.model.dart | 6 +- .../albums/album_viewer_page_state.model.dart | 8 +- .../asset_selection_page_result.model.dart | 3 +- mobile/lib/models/asset_selection_state.dart | 6 +- .../models/auth/auxilary_endpoint.model.dart | 3 +- .../models/auth/biometric_status.model.dart | 6 +- .../models/backup/available_album.model.dart | 3 +- .../lib/models/backup/backup_state.model.dart | 26 +- .../backup/current_upload_asset.model.dart | 6 +- .../backup/manual_upload_state.model.dart | 12 +- .../backup/success_upload_asset.model.dart | 7 +- .../lib/models/cast/cast_manager_state.dart | 9 +- .../models/download/download_state.model.dart | 13 +- mobile/lib/models/map/map_marker.model.dart | 3 +- mobile/lib/models/memories/memory.model.dart | 4 +- .../search/search_curated_content.model.dart | 3 +- .../models/search/search_filter.model.dart | 25 +- .../search_result_page_state.model.dart | 6 +- .../server_info/server_config.model.dart | 3 +- .../server_info/server_disk_info.model.dart | 5 +- .../server_info/server_features.model.dart | 5 +- .../models/server_info/server_info.model.dart | 6 +- .../server_info/server_version.model.dart | 5 +- .../models/shared_link/shared_link.model.dart | 4 +- .../upload/share_intent_attachment.model.dart | 3 +- ...additional_shared_user_selection.page.dart | 6 +- .../album/album_asset_selection.page.dart | 6 +- mobile/lib/pages/album/album_date_range.dart | 10 +- .../lib/pages/album/album_options.page.dart | 35 +- mobile/lib/pages/album/album_viewer.dart | 10 +- mobile/lib/pages/albums/albums.page.dart | 45 +- .../lib/pages/backup/album_preview.page.dart | 4 +- .../backup/backup_album_selection.page.dart | 16 +- .../pages/backup/backup_controller.page.dart | 27 +- .../lib/pages/backup/drift_backup.page.dart | 17 +- .../drift_backup_album_selection.page.dart | 56 +- .../backup/drift_upload_detail.page.dart | 27 +- .../backup/failed_backup_status.page.dart | 8 +- mobile/lib/pages/common/activities.page.dart | 20 +- .../lib/pages/common/app_log_detail.page.dart | 6 +- .../pages/common/change_experience.page.dart | 8 +- .../lib/pages/common/create_album.page.dart | 20 +- mobile/lib/pages/common/download_panel.dart | 6 +- .../lib/pages/common/gallery_viewer.page.dart | 16 +- .../lib/pages/common/large_leading_tile.dart | 3 +- .../common/native_video_viewer.page.dart | 43 +- mobile/lib/pages/common/settings.page.dart | 3 +- .../lib/pages/common/splash_screen.page.dart | 7 +- .../lib/pages/common/tab_controller.page.dart | 16 +- mobile/lib/pages/common/tab_shell.page.dart | 20 +- mobile/lib/pages/editing/crop.page.dart | 4 +- mobile/lib/pages/editing/edit.page.dart | 11 +- mobile/lib/pages/editing/filter.page.dart | 18 +- .../lib/pages/library/folder/folder.page.dart | 25 +- mobile/lib/pages/library/library.page.dart | 10 +- .../lib/pages/library/local_albums.page.dart | 3 +- .../pages/library/locked/pin_auth.page.dart | 12 +- .../library/partner/drift_partner.page.dart | 6 +- .../pages/library/partner/partner.page.dart | 9 +- .../library/partner/partner_detail.page.dart | 5 +- .../people/people_collection.page.dart | 10 +- .../places/places_collection.page.dart | 16 +- .../library/shared_link/shared_link.page.dart | 9 +- .../shared_link/shared_link_edit.page.dart | 93 +- mobile/lib/pages/library/trash.page.dart | 34 +- .../permission_onboarding.page.dart | 14 +- mobile/lib/pages/photos/memory.page.dart | 33 +- mobile/lib/pages/photos/photos.page.dart | 8 +- mobile/lib/pages/search/all_people.page.dart | 4 +- mobile/lib/pages/search/all_places.page.dart | 3 +- mobile/lib/pages/search/map/map.page.dart | 30 +- .../search/map/map_location_picker.page.dart | 18 +- mobile/lib/pages/search/search.page.dart | 52 +- .../pages/share_intent/share_intent.page.dart | 12 +- mobile/lib/platform/native_sync_api.g.dart | 85 +- .../pages/dev/feat_in_development.page.dart | 7 +- .../pages/dev/media_stat.page.dart | 10 +- .../presentation/pages/drift_album.page.dart | 18 +- .../pages/drift_archive.page.dart | 3 +- .../drift_asset_selection_timeline.page.dart | 3 +- .../pages/drift_create_album.page.dart | 41 +- .../pages/drift_favorite.page.dart | 3 +- .../pages/drift_library.page.dart | 11 +- .../pages/drift_local_album.page.dart | 3 +- .../pages/drift_locked_folder.page.dart | 12 +- .../presentation/pages/drift_memory.page.dart | 33 +- .../pages/drift_partner_detail.page.dart | 3 +- .../presentation/pages/drift_place.page.dart | 6 +- .../pages/drift_place_detail.page.dart | 3 +- .../pages/drift_recently_taken.page.dart | 3 +- .../pages/drift_remote_album.page.dart | 15 +- .../presentation/pages/drift_trash.page.dart | 3 +- .../pages/drift_user_selection.page.dart | 19 +- .../presentation/pages/drift_video.page.dart | 3 +- .../pages/local_timeline.page.dart | 4 +- .../pages/search/drift_search.page.dart | 70 +- .../search/paginated_search.provider.dart | 6 +- .../archive_action_button.widget.dart | 4 +- .../base_action_button.widget.dart | 6 +- .../cast_action_button.widget.dart | 3 +- .../delete_local_action_button.widget.dart | 4 +- ...delete_permanent_action_button.widget.dart | 7 +- .../delete_trash_action_button.widget.dart | 7 +- .../download_action_button.widget.dart | 3 +- .../edit_location_action_button.widget.dart | 7 +- .../favorite_action_button.widget.dart | 4 +- .../motion_photo_action_button.widget.dart | 4 +- ...e_to_lock_folder_action_button.widget.dart | 7 +- ...emove_from_album_action_button.widget.dart | 8 +- ...from_lock_folder_action_button.widget.dart | 7 +- .../restore_trash_action_button.widget.dart | 4 +- .../share_action_button.widget.dart | 6 +- .../stack_action_button.widget.dart | 7 +- .../trash_action_button.widget.dart | 4 +- .../unarchive_action_button.widget.dart | 4 +- .../unfavorite_action_button.widget.dart | 4 +- .../unstack_action_button.widget.dart | 4 +- .../upload_action_button.widget.dart | 4 +- .../asset_viewer/asset_stack.provider.dart | 7 +- .../asset_viewer/asset_stack.widget.dart | 6 +- .../asset_viewer/asset_viewer.page.dart | 43 +- .../asset_viewer/asset_viewer.state.dart | 3 +- .../asset_viewer/bottom_bar.widget.dart | 15 +- .../asset_viewer/bottom_sheet.widget.dart | 26 +- .../bottom_sheet/location_details.widget.dart | 10 +- .../asset_viewer/top_app_bar.widget.dart | 21 +- .../asset_viewer/video_viewer.widget.dart | 38 +- .../video_viewer_controls.widget.dart | 26 +- .../backup/backup_toggle_button.widget.dart | 24 +- .../base_bottom_sheet.widget.dart | 9 +- .../widgets/images/image_provider.dart | 3 +- .../widgets/images/local_image_provider.dart | 38 +- .../widgets/images/thumbnail.widget.dart | 9 +- .../widgets/images/thumbnail_tile.widget.dart | 17 +- .../widgets/memory/memory_card.widget.dart | 6 +- .../widgets/memory/memory_lane.widget.dart | 3 +- .../widgets/partner_user_avatar.widget.dart | 3 +- .../drift_album_option.widget.dart | 6 +- .../widgets/timeline/fixed/row.dart | 3 +- .../widgets/timeline/fixed/segment.model.dart | 14 +- .../timeline/fixed/segment_builder.dart | 8 +- .../widgets/timeline/header.widget.dart | 10 +- .../widgets/timeline/scrubber.widget.dart | 41 +- .../widgets/timeline/segment.model.dart | 13 +- .../widgets/timeline/timeline.state.dart | 7 +- .../widgets/timeline/timeline.widget.dart | 128 +- mobile/lib/providers/activity.provider.dart | 16 +- .../providers/activity_service.provider.dart | 3 +- .../activity_statistics.provider.dart | 5 +- .../lib/providers/album/album.provider.dart | 15 +- .../album/album_sort_by_options.provider.dart | 15 +- .../album/album_viewer.provider.dart | 3 +- .../suggested_shared_users.provider.dart | 3 +- .../providers/app_life_cycle.provider.dart | 28 +- mobile/lib/providers/asset.provider.dart | 6 +- .../asset_viewer/asset_people.provider.dart | 4 +- .../asset_viewer/asset_stack.provider.dart | 6 +- .../asset_viewer/download.provider.dart | 6 +- .../is_motion_video_playing.provider.dart | 3 +- .../render_list_status_provider.dart | 3 +- .../share_intent_upload.provider.dart | 22 +- .../video_player_controls_provider.dart | 21 +- .../video_player_value_provider.dart | 3 +- mobile/lib/providers/auth.provider.dart | 6 +- .../lib/providers/backup/backup.provider.dart | 90 +- .../backup/backup_album.provider.dart | 11 +- .../backup/backup_verification.provider.dart | 10 +- .../backup/drift_backup.provider.dart | 9 +- .../backup/error_backup_list.provider.dart | 3 +- .../ios_background_settings.provider.dart | 15 +- .../backup/manual_upload.provider.dart | 50 +- mobile/lib/providers/folder.provider.dart | 16 +- .../gallery_permission.provider.dart | 18 +- .../providers/haptic_feedback.provider.dart | 23 +- .../cache/thumbnail_image_cache_manager.dart | 3 +- .../immich_local_thumbnail_provider.dart | 9 +- .../image/immich_remote_image_provider.dart | 3 +- .../immich_remote_thumbnail_provider.dart | 3 +- .../infrastructure/action.provider.dart | 17 +- .../infrastructure/album.provider.dart | 6 +- .../asset_viewer/current_asset.provider.dart | 8 +- .../current_album.provider.dart | 8 +- .../infrastructure/exif.provider.dart | 3 +- .../infrastructure/memory.provider.dart | 3 +- .../infrastructure/partner.provider.dart | 13 +- .../infrastructure/remote_album.provider.dart | 28 +- .../infrastructure/setting.provider.dart | 6 +- .../infrastructure/store.provider.dart | 3 +- .../infrastructure/timeline.provider.dart | 10 +- .../infrastructure/user.provider.dart | 9 +- mobile/lib/providers/local_auth.provider.dart | 6 +- .../providers/map/map_marker.provider.dart | 3 +- .../lib/providers/map/map_state.provider.dart | 21 +- mobile/lib/providers/memory.provider.dart | 3 +- .../notification_permission.provider.dart | 7 +- mobile/lib/providers/oauth.provider.dart | 3 +- mobile/lib/providers/partner.provider.dart | 9 +- .../search/paginated_search.provider.dart | 6 +- .../lib/providers/search/people.provider.dart | 3 +- .../search/search_page_state.provider.dart | 9 +- .../providers/secure_storage.provider.dart | 3 +- .../lib/providers/server_info.provider.dart | 18 +- .../lib/providers/shared_link.provider.dart | 4 +- .../lib/providers/sync_status.provider.dart | 9 +- mobile/lib/providers/theme.provider.dart | 26 +- mobile/lib/providers/timeline.provider.dart | 9 +- .../timeline/multiselect.provider.dart | 21 +- .../upload_profile_image.provider.dart | 16 +- mobile/lib/providers/user.provider.dart | 9 +- mobile/lib/providers/websocket.provider.dart | 91 +- .../repositories/activity_api.repository.dart | 14 +- mobile/lib/repositories/album.repository.dart | 26 +- .../repositories/album_api.repository.dart | 19 +- .../repositories/album_media.repository.dart | 31 +- mobile/lib/repositories/asset.repository.dart | 55 +- .../repositories/asset_api.repository.dart | 3 +- .../repositories/asset_media.repository.dart | 14 +- mobile/lib/repositories/auth.repository.dart | 3 +- .../lib/repositories/auth_api.repository.dart | 13 +- .../lib/repositories/backup.repository.dart | 12 +- .../repositories/biometric.repository.dart | 9 +- .../lib/repositories/database.repository.dart | 6 +- .../lib/repositories/download.repository.dart | 4 +- .../drift_album_api_repository.dart | 9 +- mobile/lib/repositories/etag.repository.dart | 6 +- .../repositories/file_media.repository.dart | 9 +- mobile/lib/repositories/gcast.repository.dart | 3 +- .../local_files_manager.repository.dart | 3 +- .../lib/repositories/partner.repository.dart | 23 +- .../repositories/partner_api.repository.dart | 4 +- .../secure_storage.repository.dart | 3 +- .../lib/repositories/timeline.repository.dart | 31 +- .../lib/routing/app_navigation_observer.dart | 23 +- .../routing/custom_transition_builders.dart | 6 +- mobile/lib/routing/gallery_guard.dart | 3 +- mobile/lib/routing/router.dart | 3 +- mobile/lib/routing/router.gr.dart | 117 +- mobile/lib/services/action.service.dart | 3 +- mobile/lib/services/album.service.dart | 42 +- mobile/lib/services/api.service.dart | 6 +- mobile/lib/services/asset.service.dart | 63 +- mobile/lib/services/background.service.dart | 78 +- mobile/lib/services/backup.service.dart | 47 +- .../services/backup_verification.service.dart | 10 +- mobile/lib/services/deep_link.service.dart | 3 +- mobile/lib/services/download.service.dart | 19 +- mobile/lib/services/drift_backup.service.dart | 6 +- mobile/lib/services/entity.service.dart | 12 +- mobile/lib/services/etag.service.dart | 3 +- mobile/lib/services/exif.service.dart | 3 +- mobile/lib/services/folder.service.dart | 25 +- mobile/lib/services/gcast.service.dart | 21 +- .../services/local_files_manager.service.dart | 3 +- .../services/local_notification.service.dart | 12 +- mobile/lib/services/memory.service.dart | 6 +- mobile/lib/services/partner.service.dart | 9 +- mobile/lib/services/person.service.dart | 3 +- mobile/lib/services/search.service.dart | 3 +- mobile/lib/services/share.service.dart | 6 +- mobile/lib/services/shared_link.service.dart | 10 +- mobile/lib/services/stack.service.dart | 3 +- mobile/lib/services/sync.service.dart | 108 +- mobile/lib/services/timeline.service.dart | 3 +- mobile/lib/services/upload.service.dart | 12 +- mobile/lib/theme/theme_data.dart | 6 +- mobile/lib/utils/backup_progress.dart | 3 +- .../lib/utils/cache/custom_image_cache.dart | 9 +- mobile/lib/utils/color_filter_generator.dart | 3 +- mobile/lib/utils/datetime_comparison.dart | 3 +- mobile/lib/utils/debounce.dart | 6 +- .../utils/draggable_scroll_controller.dart | 11 +- mobile/lib/utils/hooks/timer_hook.dart | 3 +- mobile/lib/utils/http_ssl_options.dart | 6 +- mobile/lib/utils/immich_loading_overlay.dart | 6 +- mobile/lib/utils/isolate.dart | 3 +- mobile/lib/utils/map_utils.dart | 7 +- mobile/lib/utils/migration.dart | 37 +- mobile/lib/utils/remote_album.utils.dart | 3 +- mobile/lib/utils/selection_handlers.dart | 26 +- mobile/lib/utils/throttle.dart | 3 +- mobile/lib/utils/thumbnail_utils.dart | 3 +- mobile/lib/utils/url_helper.dart | 3 +- .../activities/activity_text_field.dart | 7 +- .../lib/widgets/activities/activity_tile.dart | 13 +- .../album/add_to_album_sliverlist.dart | 12 +- .../widgets/album/album_thumbnail_card.dart | 4 +- .../album/album_thumbnail_listtile.dart | 10 +- .../widgets/album/album_viewer_appbar.dart | 31 +- .../album_viewer_editable_description.dart | 14 +- .../album/album_viewer_editable_title.dart | 3 +- .../album/remote_album_shared_user_icons.dart | 3 +- .../widgets/asset_grid/asset_drag_region.dart | 13 +- .../asset_grid/asset_grid_data_structure.dart | 59 +- .../asset_grid/control_bottom_app_bar.dart | 42 +- .../asset_grid/draggable_scrollbar.dart | 15 +- .../draggable_scrollbar_custom.dart | 20 +- .../asset_grid/group_divider_title.dart | 9 +- .../widgets/asset_grid/immich_asset_grid.dart | 15 +- .../asset_grid/immich_asset_grid_view.dart | 96 +- .../widgets/asset_grid/multiselect_grid.dart | 74 +- .../multiselect_grid_status_indicator.dart | 6 +- .../widgets/asset_grid/thumbnail_image.dart | 14 +- .../asset_viewer/advanced_bottom_sheet.dart | 7 +- .../asset_viewer/animated_play_pause.dart | 3 +- .../asset_viewer/bottom_gallery_bar.dart | 37 +- .../lib/widgets/asset_viewer/cast_dialog.dart | 25 +- .../custom_video_player_controls.dart | 20 +- .../detail_panel/camera_info.dart | 5 +- .../detail_panel/detail_panel.dart | 4 +- .../asset_viewer/detail_panel/file_info.dart | 7 +- .../detail_panel/people_info.dart | 27 +- .../widgets/asset_viewer/gallery_app_bar.dart | 21 +- .../asset_viewer/top_control_app_bar.dart | 25 +- .../widgets/asset_viewer/video_position.dart | 14 +- .../lib/widgets/backup/album_info_card.dart | 23 +- .../widgets/backup/album_info_list_tile.dart | 18 +- .../lib/widgets/backup/asset_info_table.dart | 4 +- .../backup/drift_album_info_list_tile.dart | 12 +- mobile/lib/widgets/backup/error_chip.dart | 3 +- .../backup/icloud_download_progress_bar.dart | 9 +- .../widgets/backup/ios_debug_info_tile.dart | 12 +- .../widgets/backup/upload_progress_bar.dart | 6 +- .../common/app_bar_dialog/app_bar_dialog.dart | 15 +- .../app_bar_dialog/app_bar_profile_info.dart | 9 +- .../app_bar_dialog/app_bar_server_info.dart | 6 +- .../lib/widgets/common/date_time_picker.dart | 23 +- mobile/lib/widgets/common/drag_sheet.dart | 3 +- .../widgets/common/dropdown_search_menu.dart | 19 +- mobile/lib/widgets/common/immich_app_bar.dart | 11 +- mobile/lib/widgets/common/immich_image.dart | 3 +- .../widgets/common/immich_sliver_app_bar.dart | 30 +- .../lib/widgets/common/immich_thumbnail.dart | 3 +- .../lib/widgets/common/immich_title_text.dart | 4 +- .../lib/widgets/common/location_picker.dart | 6 +- .../common/mesmerizing_sliver_app_bar.dart | 37 +- .../common/remote_album_sliver_app_bar.dart | 37 +- .../widgets/common/scaffold_error_body.dart | 3 +- .../common/selection_sliver_app_bar.dart | 3 +- .../widgets/common/thumbhash_placeholder.dart | 3 +- mobile/lib/widgets/common/user_avatar.dart | 3 +- .../widgets/common/user_circle_avatar.dart | 4 +- .../widgets/forms/change_password_form.dart | 19 +- .../lib/widgets/forms/login/login_form.dart | 46 +- .../widgets/forms/login/password_input.dart | 4 +- .../forms/login/server_endpoint_input.dart | 5 +- mobile/lib/widgets/forms/pin_input.dart | 6 +- .../widgets/forms/pin_verification_form.dart | 7 +- mobile/lib/widgets/map/map_app_bar.dart | 5 +- mobile/lib/widgets/map/map_asset_grid.dart | 33 +- mobile/lib/widgets/map/map_bottom_sheet.dart | 7 +- .../map_settings/map_settings_list_tile.dart | 3 +- .../map_settings_time_dropdown.dart | 3 +- .../map/map_settings/map_theme_picker.dart | 7 +- .../lib/widgets/map/map_settings_sheet.dart | 23 +- .../lib/widgets/map/map_theme_override.dart | 16 +- mobile/lib/widgets/map/map_thumbnail.dart | 27 +- .../map/positioned_asset_marker_icon.dart | 6 +- .../widgets/memories/memory_bottom_info.dart | 3 +- mobile/lib/widgets/memories/memory_card.dart | 6 +- .../lib/widgets/memories/memory_epilogue.dart | 11 +- .../memories/memory_progress_indicator.dart | 4 +- mobile/lib/widgets/photo_view/photo_view.dart | 16 +- .../photo_view/photo_view_gallery.dart | 3 +- .../src/controller/photo_view_controller.dart | 9 +- .../photo_view_controller_delegate.dart | 29 +- .../photo_view_scalestate_controller.dart | 15 +- .../photo_view/src/core/photo_view_core.dart | 58 +- .../src/core/photo_view_gesture_detector.dart | 40 +- .../src/core/photo_view_hit_corners.dart | 3 +- .../src/photo_view_computed_scale.dart | 4 +- .../src/photo_view_default_widgets.dart | 4 +- .../src/photo_view_scale_state.dart | 4 +- .../src/utils/ignorable_change_notifier.dart | 9 +- .../src/utils/photo_view_utils.dart | 6 +- .../widgets/search/curated_places_row.dart | 3 +- .../search/search_filter/location_picker.dart | 3 +- .../search/search_filter/people_picker.dart | 12 +- .../search_filter/search_filter_chip.dart | 3 +- .../widgets/search/thumbnail_with_info.dart | 6 +- .../search/thumbnail_with_info_container.dart | 7 +- .../widgets/settings/advanced_settings.dart | 25 +- .../asset_list_layout_settings.dart | 3 +- .../asset_list_settings.dart | 3 +- .../video_viewer_settings.dart | 3 +- .../backup_settings/background_settings.dart | 87 +- .../backup_settings/backup_settings.dart | 14 +- .../backup_settings/foreground_settings.dart | 3 +- .../beta_sync_settings.dart | 13 +- .../beta_sync_settings/entity_count_tile.dart | 7 +- .../settings/beta_timeline_list_tile.dart | 41 +- .../widgets/settings/language_settings.dart | 25 +- .../networking_settings/endpoint_input.dart | 6 +- .../external_network_preference.dart | 13 +- .../local_network_preference.dart | 19 +- .../networking_settings.dart | 18 +- .../settings/notification_setting.dart | 24 +- .../preference_settings/haptic_setting.dart | 6 +- .../primary_color_setting.dart | 18 +- .../preference_settings/theme_setting.dart | 15 +- .../settings/settings_button_list_tile.dart | 3 +- .../lib/widgets/settings/settings_card.dart | 4 +- .../settings/settings_switch_list_tile.dart | 7 +- .../settings/ssl_client_cert_settings.dart | 10 +- .../widgets/shared_link/shared_link_item.dart | 38 +- .../domain/services/hash_service_test.dart | 106 +- .../domain/services/log_service_test.dart | 14 +- .../domain/services/store_service_test.dart | 15 +- .../services/sync_stream_service_test.dart | 66 +- .../domain/services/user_service_test.dart | 51 +- .../test/drift/main/generated/schema_v1.dart | 1448 +++++---------- .../test/drift/main/generated/schema_v2.dart | 1448 +++++---------- .../test/drift/main/generated/schema_v3.dart | 1445 +++++---------- .../test/drift/main/generated/schema_v4.dart | 1563 ++++++----------- .../local_album_repository_test.dart | 3 +- .../repositories/store_repository_test.dart | 3 +- .../sync_api_repository_test.dart | 15 +- .../test/infrastructure/repository.mock.dart | 9 +- mobile/test/mock_http_override.dart | 18 +- .../activity/activities_page_test.dart | 3 +- .../test/modules/activity/activity_mocks.dart | 8 +- .../activity/activity_provider_test.dart | 27 +- .../activity/activity_text_field_test.dart | 6 +- .../modules/activity/activity_tile_test.dart | 10 +- .../activity/dismissible_activity_test.dart | 4 +- mobile/test/modules/album/album_mocks.dart | 4 +- .../album_sort_by_options_provider_test.dart | 16 +- .../asset_viewer/asset_viewer_mocks.dart | 4 +- .../extensions/asset_extensions_test.dart | 12 +- .../extensions/datetime_extensions_test.dart | 9 +- mobile/test/modules/map/map_mocks.dart | 4 +- .../modules/map/map_theme_override_test.dart | 27 +- mobile/test/modules/shared/shared_mocks.dart | 4 +- .../modules/shared/sync_service_test.dart | 27 +- mobile/test/modules/utils/throttler_test.dart | 3 +- .../test/modules/utils/url_helper_test.dart | 4 +- .../test/pages/search/search.page_test.dart | 6 +- mobile/test/repository.mocks.dart | 3 +- mobile/test/services/album.service_test.dart | 35 +- mobile/test/services/asset.service_test.dart | 18 +- mobile/test/services/auth.service_test.dart | 57 +- mobile/test/services/entity.service_test.dart | 18 +- mobile/test/services/hash_service_test.dart | 96 +- mobile/test/test_utils/medium_factory.dart | 9 +- 517 files changed, 4520 insertions(+), 9514 deletions(-) diff --git a/.github/workflows/static_analysis.yml b/.github/workflows/static_analysis.yml index 4cb788f5fa..b5238cf854 100644 --- a/.github/workflows/static_analysis.yml +++ b/.github/workflows/static_analysis.yml @@ -98,7 +98,8 @@ jobs: run: dart analyze --fatal-infos - name: Run dart format - run: dart format lib/ --set-exit-if-changed + # Ignore generated files manually until https://github.com/dart-lang/dart_style/issues/864 is resolved + run: dart format --set-exit-if-changed $(find lib -name '*.dart' -not \( -name 'generated_plugin_registrant.dart' -o -name '*.g.dart' -o -name '*.drift.dart' \)) - name: Run dart custom_lint run: dart run custom_lint diff --git a/mobile/.vscode/settings.json b/mobile/.vscode/settings.json index c1b3fc9ce3..eac0003e4b 100644 --- a/mobile/.vscode/settings.json +++ b/mobile/.vscode/settings.json @@ -1,5 +1,9 @@ { "dart.flutterSdkPath": ".fvm/versions/3.32.6", + "dart.lineLength": 120, + "[dart]": { + "editor.rulers": [120], + }, "search.exclude": { "**/.fvm": true }, diff --git a/mobile/analysis_options.yaml b/mobile/analysis_options.yaml index 7a03b54a95..1b0b7170d2 100644 --- a/mobile/analysis_options.yaml +++ b/mobile/analysis_options.yaml @@ -9,6 +9,9 @@ # packages, and plugins designed to encourage good coding practices. include: package:flutter_lints/flutter.yaml +formatter: + page_width: 120 + linter: # The lint rules applied to this project can be customized in the # section below to disable rules from the `package:flutter_lints/flutter.yaml` diff --git a/mobile/lib/constants/colors.dart b/mobile/lib/constants/colors.dart index ade878d6f6..1614a308e0 100644 --- a/mobile/lib/constants/colors.dart +++ b/mobile/lib/constants/colors.dart @@ -10,7 +10,7 @@ enum ImmichColorPreset { lime, green, cyan, - slateGray + slateGray, } const ImmichColorPreset defaultColorPreset = ImmichColorPreset.indigo; diff --git a/mobile/lib/constants/locales.dart b/mobile/lib/constants/locales.dart index b2d8df525b..601a83b563 100644 --- a/mobile/lib/constants/locales.dart +++ b/mobile/lib/constants/locales.dart @@ -7,10 +7,8 @@ const Map locales = { 'Arabic (ar)': Locale('ar'), 'Bulgarian (bg)': Locale('bg'), 'Catalan (ca)': Locale('ca'), - 'Chinese Simplified (zh_CN)': - Locale.fromSubtags(languageCode: 'zh', scriptCode: 'SIMPLIFIED'), - 'Chinese Traditional (zh_TW)': - Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant'), + 'Chinese Simplified (zh_CN)': Locale.fromSubtags(languageCode: 'zh', scriptCode: 'SIMPLIFIED'), + 'Chinese Traditional (zh_TW)': Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant'), 'Croatian (hr)': Locale('hr'), 'Czech (cs)': Locale('cs'), 'Danish (da)': Locale('da'), @@ -37,10 +35,8 @@ const Map locales = { 'Portuguese (pt)': Locale('pt'), 'Romanian (ro)': Locale('ro'), 'Russian (ru)': Locale('ru'), - 'Serbian Cyrillic (sr_Cyrl)': - Locale.fromSubtags(languageCode: 'sr', scriptCode: 'Cyrl'), - 'Serbian Latin (sr_Latn)': - Locale.fromSubtags(languageCode: 'sr', scriptCode: 'Latn'), + 'Serbian Cyrillic (sr_Cyrl)': Locale.fromSubtags(languageCode: 'sr', scriptCode: 'Cyrl'), + 'Serbian Latin (sr_Latn)': Locale.fromSubtags(languageCode: 'sr', scriptCode: 'Latn'), 'Slovak (sk)': Locale('sk'), 'Slovenian (sl)': Locale('sl'), 'Spanish (es)': Locale('es'), diff --git a/mobile/lib/domain/models/asset/base_asset.model.dart b/mobile/lib/domain/models/asset/base_asset.model.dart index 356b64cffc..7cd4caab6a 100644 --- a/mobile/lib/domain/models/asset/base_asset.model.dart +++ b/mobile/lib/domain/models/asset/base_asset.model.dart @@ -53,10 +53,8 @@ sealed class BaseAsset { return const Duration(); } - bool get hasRemote => - storage == AssetState.remote || storage == AssetState.merged; - bool get hasLocal => - storage == AssetState.local || storage == AssetState.merged; + bool get hasRemote => storage == AssetState.remote || storage == AssetState.merged; + bool get hasLocal => storage == AssetState.local || storage == AssetState.merged; bool get isLocalOnly => storage == AssetState.local; bool get isRemoteOnly => storage == AssetState.remote; diff --git a/mobile/lib/domain/models/asset/local_asset.model.dart b/mobile/lib/domain/models/asset/local_asset.model.dart index 3466a0f25b..9cd20acb0a 100644 --- a/mobile/lib/domain/models/asset/local_asset.model.dart +++ b/mobile/lib/domain/models/asset/local_asset.model.dart @@ -22,8 +22,7 @@ class LocalAsset extends BaseAsset { }); @override - AssetState get storage => - remoteId == null ? AssetState.local : AssetState.merged; + AssetState get storage => remoteId == null ? AssetState.local : AssetState.merged; @override String get heroTag => '${id}_${remoteId ?? checksum}'; @@ -54,8 +53,7 @@ class LocalAsset extends BaseAsset { } @override - int get hashCode => - super.hashCode ^ id.hashCode ^ remoteId.hashCode ^ orientation.hashCode; + int get hashCode => super.hashCode ^ id.hashCode ^ remoteId.hashCode ^ orientation.hashCode; LocalAsset copyWith({ String? id, diff --git a/mobile/lib/domain/models/asset/remote_asset.model.dart b/mobile/lib/domain/models/asset/remote_asset.model.dart index f96fa18a74..db3e53cd2e 100644 --- a/mobile/lib/domain/models/asset/remote_asset.model.dart +++ b/mobile/lib/domain/models/asset/remote_asset.model.dart @@ -36,8 +36,7 @@ class RemoteAsset extends BaseAsset { }); @override - AssetState get storage => - localId == null ? AssetState.remote : AssetState.merged; + AssetState get storage => localId == null ? AssetState.remote : AssetState.merged; @override String get heroTag => '${localId ?? checksum}_$id'; diff --git a/mobile/lib/domain/models/device_asset.model.dart b/mobile/lib/domain/models/device_asset.model.dart index 2ec56b0d80..b0949ccc96 100644 --- a/mobile/lib/domain/models/device_asset.model.dart +++ b/mobile/lib/domain/models/device_asset.model.dart @@ -15,9 +15,7 @@ class DeviceAsset { bool operator ==(covariant DeviceAsset other) { if (identical(this, other)) return true; - return other.assetId == assetId && - other.hash == hash && - other.modifiedTime == modifiedTime; + return other.assetId == assetId && other.hash == hash && other.modifiedTime == modifiedTime; } @override diff --git a/mobile/lib/domain/models/exif.model.dart b/mobile/lib/domain/models/exif.model.dart index b73aa4cae1..6e94c44650 100644 --- a/mobile/lib/domain/models/exif.model.dart +++ b/mobile/lib/domain/models/exif.model.dart @@ -25,8 +25,7 @@ class ExifInfo { final int? iso; final double? exposureSeconds; - bool get hasCoordinates => - latitude != null && longitude != null && latitude != 0 && longitude != 0; + bool get hasCoordinates => latitude != null && longitude != null && latitude != 0 && longitude != 0; String get exposureTime { if (exposureSeconds == null) { diff --git a/mobile/lib/domain/models/log.model.dart b/mobile/lib/domain/models/log.model.dart index dffd1cccda..f58cae8063 100644 --- a/mobile/lib/domain/models/log.model.dart +++ b/mobile/lib/domain/models/log.model.dart @@ -43,12 +43,7 @@ class LogMessage { @override int get hashCode { - return message.hashCode ^ - level.hashCode ^ - createdAt.hashCode ^ - logger.hashCode ^ - error.hashCode ^ - stack.hashCode; + return message.hashCode ^ level.hashCode ^ createdAt.hashCode ^ logger.hashCode ^ error.hashCode ^ stack.hashCode; } @override diff --git a/mobile/lib/domain/models/memory.model.dart b/mobile/lib/domain/models/memory.model.dart index 38d1c7ef7d..39a6d4518b 100644 --- a/mobile/lib/domain/models/memory.model.dart +++ b/mobile/lib/domain/models/memory.model.dart @@ -39,8 +39,7 @@ class MemoryData { String toJson() => json.encode(toMap()); - factory MemoryData.fromJson(String source) => - MemoryData.fromMap(json.decode(source) as Map); + factory MemoryData.fromJson(String source) => MemoryData.fromMap(json.decode(source) as Map); @override String toString() => 'MemoryData(year: $year)'; diff --git a/mobile/lib/domain/models/person.model.dart b/mobile/lib/domain/models/person.model.dart index 2a6b31cb17..784bb564fe 100644 --- a/mobile/lib/domain/models/person.model.dart +++ b/mobile/lib/domain/models/person.model.dart @@ -55,22 +55,17 @@ class PersonDto { factory PersonDto.fromMap(Map map) { return PersonDto( id: map['id'] as String, - birthDate: map['birthDate'] != null - ? DateTime.fromMillisecondsSinceEpoch(map['birthDate'] as int) - : null, + birthDate: map['birthDate'] != null ? DateTime.fromMillisecondsSinceEpoch(map['birthDate'] as int) : null, isHidden: map['isHidden'] as bool, name: map['name'] as String, thumbnailPath: map['thumbnailPath'] as String, - updatedAt: map['updatedAt'] != null - ? DateTime.fromMillisecondsSinceEpoch(map['updatedAt'] as int) - : null, + updatedAt: map['updatedAt'] != null ? DateTime.fromMillisecondsSinceEpoch(map['updatedAt'] as int) : null, ); } String toJson() => json.encode(toMap()); - factory PersonDto.fromJson(String source) => - PersonDto.fromMap(json.decode(source) as Map); + factory PersonDto.fromJson(String source) => PersonDto.fromMap(json.decode(source) as Map); @override bool operator ==(covariant PersonDto other) { diff --git a/mobile/lib/domain/models/stack.model.dart b/mobile/lib/domain/models/stack.model.dart index 6a449a1eb8..0db65d105b 100644 --- a/mobile/lib/domain/models/stack.model.dart +++ b/mobile/lib/domain/models/stack.model.dart @@ -54,11 +54,7 @@ class Stack { @override int get hashCode { - return id.hashCode ^ - createdAt.hashCode ^ - updatedAt.hashCode ^ - ownerId.hashCode ^ - primaryAssetId.hashCode; + return id.hashCode ^ createdAt.hashCode ^ updatedAt.hashCode ^ ownerId.hashCode ^ primaryAssetId.hashCode; } } @@ -77,9 +73,7 @@ class StackResponse { bool operator ==(covariant StackResponse other) { if (identical(this, other)) return true; - return other.id == id && - other.primaryAssetId == primaryAssetId && - other.assetIds == assetIds; + return other.id == id && other.primaryAssetId == primaryAssetId && other.assetIds == assetIds; } @override diff --git a/mobile/lib/domain/models/user.model.dart b/mobile/lib/domain/models/user.model.dart index 6cafd8d149..9af8abadc2 100644 --- a/mobile/lib/domain/models/user.model.dart +++ b/mobile/lib/domain/models/user.model.dart @@ -175,16 +175,13 @@ class PartnerUserDto { email: map['email'] as String, name: map['name'] as String, inTimeline: map['inTimeline'] as bool, - profileImagePath: map['profileImagePath'] != null - ? map['profileImagePath'] as String - : null, + profileImagePath: map['profileImagePath'] != null ? map['profileImagePath'] as String : null, ); } String toJson() => json.encode(toMap()); - factory PartnerUserDto.fromJson(String source) => - PartnerUserDto.fromMap(json.decode(source) as Map); + factory PartnerUserDto.fromJson(String source) => PartnerUserDto.fromMap(json.decode(source) as Map); @override String toString() { @@ -204,10 +201,6 @@ class PartnerUserDto { @override int get hashCode { - return id.hashCode ^ - email.hashCode ^ - name.hashCode ^ - inTimeline.hashCode ^ - profileImagePath.hashCode; + return id.hashCode ^ email.hashCode ^ name.hashCode ^ inTimeline.hashCode ^ profileImagePath.hashCode; } } diff --git a/mobile/lib/domain/models/user_metadata.model.dart b/mobile/lib/domain/models/user_metadata.model.dart index c5c63cad5e..8b7ca1ffa9 100644 --- a/mobile/lib/domain/models/user_metadata.model.dart +++ b/mobile/lib/domain/models/user_metadata.model.dart @@ -24,8 +24,7 @@ enum AvatarColor { const AvatarColor(this.value); Color toColor({bool isDarkTheme = false}) => switch (this) { - AvatarColor.primary => - isDarkTheme ? const Color(0xFFABCBFA) : const Color(0xFF4250AF), + AvatarColor.primary => isDarkTheme ? const Color(0xFFABCBFA) : const Color(0xFF4250AF), AvatarColor.pink => const Color.fromARGB(255, 244, 114, 182), AvatarColor.red => const Color.fromARGB(255, 239, 68, 68), AvatarColor.yellow => const Color.fromARGB(255, 234, 179, 8), @@ -241,14 +240,11 @@ licenseKey: $licenseKey, bool operator ==(covariant License other) { if (identical(this, other)) return true; - return activatedAt == other.activatedAt && - activationKey == other.activationKey && - licenseKey == other.licenseKey; + return activatedAt == other.activatedAt && activationKey == other.activationKey && licenseKey == other.licenseKey; } @override - int get hashCode => - activatedAt.hashCode ^ activationKey.hashCode ^ licenseKey.hashCode; + int get hashCode => activatedAt.hashCode ^ activationKey.hashCode ^ licenseKey.hashCode; } // Model for a user metadata stored in the server @@ -310,10 +306,6 @@ license: ${license ?? ""}, @override int get hashCode { - return userId.hashCode ^ - key.hashCode ^ - onboarding.hashCode ^ - preferences.hashCode ^ - license.hashCode; + return userId.hashCode ^ key.hashCode ^ onboarding.hashCode ^ preferences.hashCode ^ license.hashCode; } } diff --git a/mobile/lib/domain/services/asset.service.dart b/mobile/lib/domain/services/asset.service.dart index 995ed42dc8..26d6948468 100644 --- a/mobile/lib/domain/services/asset.service.dart +++ b/mobile/lib/domain/services/asset.service.dart @@ -19,9 +19,7 @@ class AssetService { Stream watchAsset(BaseAsset asset) { final id = asset is LocalAsset ? asset.id : (asset as RemoteAsset).id; - return asset is LocalAsset - ? _localAssetRepository.watchAsset(id) - : _remoteAssetRepository.watchAsset(id); + return asset is LocalAsset ? _localAssetRepository.watchAsset(id) : _remoteAssetRepository.watchAsset(id); } Future> getStack(RemoteAsset asset) async { @@ -40,8 +38,7 @@ class AssetService { return null; } - final id = - asset is LocalAsset ? asset.remoteId! : (asset as RemoteAsset).id; + final id = asset is LocalAsset ? asset.remoteId! : (asset as RemoteAsset).id; return _remoteAssetRepository.getExif(id); } @@ -56,8 +53,7 @@ class AssetService { width = exif?.width ?? asset.width?.toDouble(); height = exif?.height ?? asset.height?.toDouble(); } else if (asset is LocalAsset) { - isFlipped = _platform.isAndroid && - (asset.orientation == 90 || asset.orientation == 270); + isFlipped = _platform.isAndroid && (asset.orientation == 90 || asset.orientation == 270); width = asset.width?.toDouble(); height = asset.height?.toDouble(); } else { @@ -78,10 +74,7 @@ class AssetService { } Future<(int local, int remote)> getAssetCounts() async { - return ( - await _localAssetRepository.getCount(), - await _remoteAssetRepository.getCount() - ); + return (await _localAssetRepository.getCount(), await _remoteAssetRepository.getCount()); } Future getLocalHashedCount() { diff --git a/mobile/lib/domain/services/hash.service.dart b/mobile/lib/domain/services/hash.service.dart index d004041276..3bbb75b003 100644 --- a/mobile/lib/domain/services/hash.service.dart +++ b/mobile/lib/domain/services/hash.service.dart @@ -41,8 +41,7 @@ class HashService { ); for (final album in localAlbums) { - final assetsToHash = - await _localAlbumRepository.getAssetsToHash(album.id); + final assetsToHash = await _localAlbumRepository.getAssetsToHash(album.id); if (assetsToHash.isNotEmpty) { await _hashAssets(assetsToHash); } @@ -88,8 +87,7 @@ class HashService { _log.fine("Hashing ${toHash.length} files"); final hashed = []; - final hashes = - await _nativeSyncApi.hashPaths(toHash.map((e) => e.path).toList()); + final hashes = await _nativeSyncApi.hashPaths(toHash.map((e) => e.path).toList()); assert( hashes.length == toHash.length, "Hashes length does not match toHash length: ${hashes.length} != ${toHash.length}", diff --git a/mobile/lib/domain/services/local_sync.service.dart b/mobile/lib/domain/services/local_sync.service.dart index 8d3b747b37..4204761054 100644 --- a/mobile/lib/domain/services/local_sync.service.dart +++ b/mobile/lib/domain/services/local_sync.service.dart @@ -66,8 +66,7 @@ class LocalSyncService { // On iOS, we need to full sync albums that are marked as cloud as the delta sync // does not include changes for cloud albums. If ignoreIcloudAssets is enabled, // remove the albums from the local database from the previous sync - final cloudAlbums = - deviceAlbums.where((a) => a.isCloud).toLocalAlbums(); + final cloudAlbums = deviceAlbums.where((a) => a.isCloud).toLocalAlbums(); for (final album in cloudAlbums) { final dbAlbum = dbAlbums.firstWhereOrNull((a) => a.id == album.id); if (dbAlbum == null) { @@ -95,8 +94,7 @@ class LocalSyncService { final Stopwatch stopwatch = Stopwatch()..start(); final deviceAlbums = await _nativeSyncApi.getAlbums(); - final dbAlbums = - await _localAlbumRepository.getAll(sortBy: {SortLocalAlbumsBy.id}); + final dbAlbums = await _localAlbumRepository.getAll(sortBy: {SortLocalAlbumsBy.id}); await diffSortedLists( dbAlbums, @@ -120,9 +118,7 @@ class LocalSyncService { try { _log.fine("Adding device album ${album.name}"); - final assets = album.assetCount > 0 - ? await _nativeSyncApi.getAssetsForAlbum(album.id) - : []; + final assets = album.assetCount > 0 ? await _nativeSyncApi.getAssetsForAlbum(album.id) : []; await _localAlbumRepository.upsert( album, @@ -188,10 +184,8 @@ class LocalSyncService { return false; } - final updatedTime = - (dbAlbum.updatedAt.millisecondsSinceEpoch ~/ 1000) + 1; - final newAssetsCount = - await _nativeSyncApi.getAssetsCountSince(deviceAlbum.id, updatedTime); + final updatedTime = (dbAlbum.updatedAt.millisecondsSinceEpoch ~/ 1000) + 1; + final newAssetsCount = await _nativeSyncApi.getAssetsCountSince(deviceAlbum.id, updatedTime); // Early return if no new assets were found if (newAssetsCount == 0) { @@ -230,13 +224,9 @@ class LocalSyncService { Future fullDiff(LocalAlbum dbAlbum, LocalAlbum deviceAlbum) async { try { final assetsInDevice = deviceAlbum.assetCount > 0 - ? await _nativeSyncApi - .getAssetsForAlbum(deviceAlbum.id) - .then((a) => a.toLocalAssets()) - : []; - final assetsInDb = dbAlbum.assetCount > 0 - ? await _localAlbumRepository.getAssets(dbAlbum.id) + ? await _nativeSyncApi.getAssetsForAlbum(deviceAlbum.id).then((a) => a.toLocalAssets()) : []; + final assetsInDb = dbAlbum.assetCount > 0 ? await _localAlbumRepository.getAssets(dbAlbum.id) : []; if (deviceAlbum.assetCount == 0) { _log.fine( @@ -321,9 +311,7 @@ class LocalSyncService { } bool _albumsEqual(LocalAlbum a, LocalAlbum b) { - return a.name == b.name && - a.assetCount == b.assetCount && - a.updatedAt.isAtSameMomentAs(b.updatedAt); + return a.name == b.name && a.assetCount == b.assetCount && a.updatedAt.isAtSameMomentAs(b.updatedAt); } } @@ -333,9 +321,7 @@ extension on Iterable { (e) => LocalAlbum( id: e.id, name: e.name, - updatedAt: e.updatedAt == null - ? DateTime.now() - : DateTime.fromMillisecondsSinceEpoch(e.updatedAt! * 1000), + updatedAt: e.updatedAt == null ? DateTime.now() : DateTime.fromMillisecondsSinceEpoch(e.updatedAt! * 1000), assetCount: e.assetCount, ), ).toList(); @@ -350,12 +336,8 @@ extension on Iterable { name: e.name, checksum: null, type: AssetType.values.elementAtOrNull(e.type) ?? AssetType.other, - createdAt: e.createdAt == null - ? DateTime.now() - : DateTime.fromMillisecondsSinceEpoch(e.createdAt! * 1000), - updatedAt: e.updatedAt == null - ? DateTime.now() - : DateTime.fromMillisecondsSinceEpoch(e.updatedAt! * 1000), + createdAt: e.createdAt == null ? DateTime.now() : DateTime.fromMillisecondsSinceEpoch(e.createdAt! * 1000), + updatedAt: e.updatedAt == null ? DateTime.now() : DateTime.fromMillisecondsSinceEpoch(e.updatedAt! * 1000), width: e.width, height: e.height, durationInSeconds: e.durationInSeconds, diff --git a/mobile/lib/domain/services/log.service.dart b/mobile/lib/domain/services/log.service.dart index c52665f093..72fb4d9bf7 100644 --- a/mobile/lib/domain/services/log.service.dart +++ b/mobile/lib/domain/services/log.service.dart @@ -56,8 +56,7 @@ class LogService { }) async { final instance = LogService._(logRepository, storeRepository, shouldBuffer); await logRepository.truncate(limit: kLogTruncateLimit); - final level = await instance._storeRepository.tryGet(StoreKey.logLevel) ?? - LogLevel.info.index; + final level = await instance._storeRepository.tryGet(StoreKey.logLevel) ?? LogLevel.info.index; Logger.root.level = Level.LEVELS.elementAtOrNull(level) ?? Level.INFO; return instance; } @@ -146,9 +145,7 @@ class LoggerUnInitializedException implements Exception { /// Log levels according to dart logging [Level] extension LevelDomainToInfraExtension on Level { - LogLevel toLogLevel() => - LogLevel.values.elementAtOrNull(Level.LEVELS.indexOf(this)) ?? - LogLevel.info; + LogLevel toLogLevel() => LogLevel.values.elementAtOrNull(Level.LEVELS.indexOf(this)) ?? LogLevel.info; } extension on LogLevel { diff --git a/mobile/lib/domain/services/partner.service.dart b/mobile/lib/domain/services/partner.service.dart index 065560c4be..11299b9d6d 100644 --- a/mobile/lib/domain/services/partner.service.dart +++ b/mobile/lib/domain/services/partner.service.dart @@ -23,10 +23,8 @@ class DriftPartnerService { Future> getAvailablePartners( String currentUserId, ) async { - final otherUsers = - await _driftPartnerRepository.getAvailablePartners(currentUserId); - final currentPartners = - await _driftPartnerRepository.getSharedBy(currentUserId); + final otherUsers = await _driftPartnerRepository.getAvailablePartners(currentUserId); + final currentPartners = await _driftPartnerRepository.getSharedBy(currentUserId); final available = otherUsers.where((user) { return !currentPartners.any((partner) => partner.id == user.id); }).toList(); diff --git a/mobile/lib/domain/services/remote_album.service.dart b/mobile/lib/domain/services/remote_album.service.dart index 0f36fac2b9..a30d6f410f 100644 --- a/mobile/lib/domain/services/remote_album.service.dart +++ b/mobile/lib/domain/services/remote_album.service.dart @@ -44,8 +44,7 @@ class RemoteAlbumService { filtered = filtered .where( (album) => - album.name.toLowerCase().contains(lowerQuery) || - album.description.toLowerCase().contains(lowerQuery), + album.name.toLowerCase().contains(lowerQuery) || album.description.toLowerCase().contains(lowerQuery), ) .toList(); } @@ -53,12 +52,10 @@ class RemoteAlbumService { if (userId != null) { switch (filterMode) { case QuickFilterMode.myAlbums: - filtered = - filtered.where((album) => album.ownerId == userId).toList(); + filtered = filtered.where((album) => album.ownerId == userId).toList(); break; case QuickFilterMode.sharedWithMe: - filtered = - filtered.where((album) => album.ownerId != userId).toList(); + filtered = filtered.where((album) => album.ownerId != userId).toList(); break; case QuickFilterMode.all: break; diff --git a/mobile/lib/domain/services/setting.service.dart b/mobile/lib/domain/services/setting.service.dart index 8f91e9c66b..99e07a2872 100644 --- a/mobile/lib/domain/services/setting.service.dart +++ b/mobile/lib/domain/services/setting.service.dart @@ -9,16 +9,11 @@ final AppSetting = SettingsService(storeService: StoreService.I); class SettingsService { final StoreService _storeService; - const SettingsService({required StoreService storeService}) - : _storeService = storeService; + const SettingsService({required StoreService storeService}) : _storeService = storeService; - T get(Setting setting) => - _storeService.get(setting.storeKey, setting.defaultValue); + T get(Setting setting) => _storeService.get(setting.storeKey, setting.defaultValue); - Future set(Setting setting, T value) => - _storeService.put(setting.storeKey, value); + Future set(Setting setting, T value) => _storeService.put(setting.storeKey, value); - Stream watch(Setting setting) => _storeService - .watch(setting.storeKey) - .map((v) => v ?? setting.defaultValue); + Stream watch(Setting setting) => _storeService.watch(setting.storeKey).map((v) => v ?? setting.defaultValue); } diff --git a/mobile/lib/domain/services/store.service.dart b/mobile/lib/domain/services/store.service.dart index b1e991b348..bd839a18ec 100644 --- a/mobile/lib/domain/services/store.service.dart +++ b/mobile/lib/domain/services/store.service.dart @@ -12,8 +12,7 @@ class StoreService { final Map _cache = {}; late final StreamSubscription _storeUpdateSubscription; - StoreService._({required IsarStoreRepository storeRepository}) - : _storeRepository = storeRepository; + StoreService._({required IsarStoreRepository storeRepository}) : _storeRepository = storeRepository; // TODO: Temporary typedef to make minimal changes. Remove this and make the presentation layer access store through a provider static StoreService? _instance; @@ -48,8 +47,7 @@ class StoreService { } } - StreamSubscription _listenForChange() => - _storeRepository.watchAll().listen((event) { + StreamSubscription _listenForChange() => _storeRepository.watchAll().listen((event) { _cache[event.key.id] = event.value; }); diff --git a/mobile/lib/domain/services/timeline.service.dart b/mobile/lib/domain/services/timeline.service.dart index 26335ad3cf..7e982558b7 100644 --- a/mobile/lib/domain/services/timeline.service.dart +++ b/mobile/lib/domain/services/timeline.service.dart @@ -34,14 +34,12 @@ class TimelineFactory { _settingsService = settingsService; GroupAssetsBy get groupBy { - final group = - GroupAssetsBy.values[_settingsService.get(Setting.groupAssetsBy)]; + final group = GroupAssetsBy.values[_settingsService.get(Setting.groupAssetsBy)]; // We do not support auto grouping in the new timeline yet, fallback to day grouping return group == GroupAssetsBy.auto ? GroupAssetsBy.day : group; } - TimelineService main(List timelineUsers) => - TimelineService(_timelineRepository.main(timelineUsers, groupBy)); + TimelineService main(List timelineUsers) => TimelineService(_timelineRepository.main(timelineUsers, groupBy)); TimelineService localAlbum({required String albumId}) => TimelineService(_timelineRepository.localAlbum(albumId, groupBy)); @@ -49,29 +47,21 @@ class TimelineFactory { TimelineService remoteAlbum({required String albumId}) => TimelineService(_timelineRepository.remoteAlbum(albumId, groupBy)); - TimelineService remoteAssets(String userId) => - TimelineService(_timelineRepository.remote(userId, groupBy)); + TimelineService remoteAssets(String userId) => TimelineService(_timelineRepository.remote(userId, groupBy)); - TimelineService favorite(String userId) => - TimelineService(_timelineRepository.favorite(userId, groupBy)); + TimelineService favorite(String userId) => TimelineService(_timelineRepository.favorite(userId, groupBy)); - TimelineService trash(String userId) => - TimelineService(_timelineRepository.trash(userId, groupBy)); + TimelineService trash(String userId) => TimelineService(_timelineRepository.trash(userId, groupBy)); - TimelineService archive(String userId) => - TimelineService(_timelineRepository.archived(userId, groupBy)); + TimelineService archive(String userId) => TimelineService(_timelineRepository.archived(userId, groupBy)); - TimelineService lockedFolder(String userId) => - TimelineService(_timelineRepository.locked(userId, groupBy)); + TimelineService lockedFolder(String userId) => TimelineService(_timelineRepository.locked(userId, groupBy)); - TimelineService video(String userId) => - TimelineService(_timelineRepository.video(userId, groupBy)); + TimelineService video(String userId) => TimelineService(_timelineRepository.video(userId, groupBy)); - TimelineService place(String place) => - TimelineService(_timelineRepository.place(place, groupBy)); + TimelineService place(String place) => TimelineService(_timelineRepository.place(place, groupBy)); - TimelineService fromAssets(List assets) => - TimelineService(_timelineRepository.fromAssets(assets)); + TimelineService fromAssets(List assets) => TimelineService(_timelineRepository.fromAssets(assets)); } class TimelineService { @@ -98,8 +88,7 @@ class TimelineService { _bucketSource = bucketSource { _bucketSubscription = _bucketSource().listen((buckets) { _mutex.run(() async { - final totalAssets = - buckets.fold(0, (acc, bucket) => acc + bucket.assetCount); + final totalAssets = buckets.fold(0, (acc, bucket) => acc + bucket.assetCount); if (totalAssets == 0) { _bufferOffset = 0; @@ -132,8 +121,7 @@ class TimelineService { Stream> Function() get watchBuckets => _bucketSource; - Future> loadAssets(int index, int count) => - _mutex.run(() => _loadAssets(index, count)); + Future> loadAssets(int index, int count) => _mutex.run(() => _loadAssets(index, count)); Future> _loadAssets(int index, int count) async { if (hasRange(index, count)) { @@ -182,11 +170,9 @@ class TimelineService { } // Pre-cache assets around the given index for asset viewer - Future preCacheAssets(int index) => - _mutex.run(() => _loadAssets(index, math.min(5, _totalAssets - index))); + Future preCacheAssets(int index) => _mutex.run(() => _loadAssets(index, math.min(5, _totalAssets - index))); - BaseAsset getRandomAsset() => - _buffer.elementAt(math.Random().nextInt(_buffer.length)); + BaseAsset getRandomAsset() => _buffer.elementAt(math.Random().nextInt(_buffer.length)); BaseAsset getAsset(int index) { if (!hasRange(index, 1)) { diff --git a/mobile/lib/domain/utils/background_sync.dart b/mobile/lib/domain/utils/background_sync.dart index af66dda7a9..1524c412f1 100644 --- a/mobile/lib/domain/utils/background_sync.dart +++ b/mobile/lib/domain/utils/background_sync.dart @@ -67,12 +67,10 @@ class BackgroundSyncManager { // captured by the closure passed to [runInIsolateGentle]. _deviceAlbumSyncTask = full ? runInIsolateGentle( - computation: (ref) => - ref.read(localSyncServiceProvider).sync(full: true), + computation: (ref) => ref.read(localSyncServiceProvider).sync(full: true), ) : runInIsolateGentle( - computation: (ref) => - ref.read(localSyncServiceProvider).sync(full: false), + computation: (ref) => ref.read(localSyncServiceProvider).sync(full: false), ); return _deviceAlbumSyncTask!.whenComplete(() { @@ -139,7 +137,5 @@ Cancelable _handleWsAssetUploadReadyV1Batch( List batchData, ) => runInIsolateGentle( - computation: (ref) => ref - .read(syncStreamServiceProvider) - .handleWsAssetUploadReadyV1Batch(batchData), + computation: (ref) => ref.read(syncStreamServiceProvider).handleWsAssetUploadReadyV1Batch(batchData), ); diff --git a/mobile/lib/domain/utils/event_stream.dart b/mobile/lib/domain/utils/event_stream.dart index e728ece58b..008ddef183 100644 --- a/mobile/lib/domain/utils/event_stream.dart +++ b/mobile/lib/domain/utils/event_stream.dart @@ -9,8 +9,7 @@ class EventStream { static final EventStream shared = EventStream._(); - final StreamController _controller = - StreamController.broadcast(); + final StreamController _controller = StreamController.broadcast(); void emit(Event event) { _controller.add(event); diff --git a/mobile/lib/entities/album.entity.dart b/mobile/lib/entities/album.entity.dart index f6d5322752..a7cb612d6e 100644 --- a/mobile/lib/entities/album.entity.dart +++ b/mobile/lib/entities/album.entity.dart @@ -95,13 +95,11 @@ class Album { // accessible in an object freshly created (not loaded from DB) @ignore - Iterable get remoteUsers => sharedUsers.isEmpty - ? (sharedUsers as IsarLinksCommon).addedObjects - : sharedUsers; + Iterable get remoteUsers => + sharedUsers.isEmpty ? (sharedUsers as IsarLinksCommon).addedObjects : sharedUsers; @ignore - Iterable get remoteAssets => - assets.isEmpty ? (assets as IsarLinksCommon).addedObjects : assets; + Iterable get remoteAssets => assets.isEmpty ? (assets as IsarLinksCommon).addedObjects : assets; @override bool operator ==(other) { @@ -164,15 +162,11 @@ class Album { a.remoteAssetCount = dto.assetCount; a.owner.value = await db.users.getById(dto.ownerId); if (dto.order != null) { - a.sortOrder = - dto.order == AssetOrder.asc ? SortOrder.asc : SortOrder.desc; + a.sortOrder = dto.order == AssetOrder.asc ? SortOrder.asc : SortOrder.desc; } if (dto.albumThumbnailAssetId != null) { - a.thumbnail.value = await db.assets - .where() - .remoteIdEqualTo(dto.albumThumbnailAssetId) - .findFirst(); + a.thumbnail.value = await db.assets.where().remoteIdEqualTo(dto.albumThumbnailAssetId).findFirst(); } if (dto.albumUsers.isNotEmpty) { final users = await db.users.getAllById( @@ -181,16 +175,14 @@ class Album { a.sharedUsers.addAll(users.cast()); } if (dto.assets.isNotEmpty) { - final assets = - await db.assets.getAllByRemoteId(dto.assets.map((e) => e.id)); + final assets = await db.assets.getAllByRemoteId(dto.assets.map((e) => e.id)); a.assets.addAll(assets); } return a; } @override - String toString() => - 'remoteId: $remoteId name: $name description: $description'; + String toString() => 'remoteId: $remoteId name: $name description: $description'; } extension AssetsHelper on IsarCollection { diff --git a/mobile/lib/entities/asset.entity.dart b/mobile/lib/entities/asset.entity.dart index d754b11dc5..f5c577a060 100644 --- a/mobile/lib/entities/asset.entity.dart +++ b/mobile/lib/entities/asset.entity.dart @@ -4,8 +4,7 @@ import 'dart:io'; import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/domain/models/exif.model.dart'; import 'package:immich_mobile/extensions/string_extensions.dart'; -import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' as entity; import 'package:immich_mobile/infrastructure/utils/exif.converter.dart'; import 'package:immich_mobile/utils/diff.dart'; import 'package:immich_mobile/utils/hash.dart'; @@ -32,18 +31,14 @@ class Asset { width = remote.exifInfo?.exifImageWidth?.toInt(), livePhotoVideoId = remote.livePhotoVideoId, ownerId = fastHash(remote.ownerId), - exifInfo = remote.exifInfo == null - ? null - : ExifDtoConverter.fromDto(remote.exifInfo!), + exifInfo = remote.exifInfo == null ? null : ExifDtoConverter.fromDto(remote.exifInfo!), isFavorite = remote.isFavorite, isArchived = remote.isArchived, isTrashed = remote.isTrashed, isOffline = remote.isOffline, // workaround to nullify stackPrimaryAssetId for the parent asset until we refactor the mobile app // stack handling to properly handle it - stackPrimaryAssetId = remote.stack?.primaryAssetId == remote.id - ? null - : remote.stack?.primaryAssetId, + stackPrimaryAssetId = remote.stack?.primaryAssetId == remote.id ? null : remote.stack?.primaryAssetId, stackCount = remote.stack?.assetCount ?? 0, stackId = remote.stack?.id, thumbhash = remote.thumbhash, @@ -108,8 +103,7 @@ class Asset { throw Exception('Asset $fileName has no local data'); } - final updatedLocal = - _didUpdateLocal ? local : await local.obtainForNewProperties(); + final updatedLocal = _didUpdateLocal ? local : await local.obtainForNewProperties(); if (updatedLocal == null) { throw Exception('Could not fetch local data for $fileName'); } @@ -185,10 +179,7 @@ class Asset { final orientatedWidth = this.orientatedWidth; final orientatedHeight = this.orientatedHeight; - if (orientatedWidth != null && - orientatedHeight != null && - orientatedWidth > 0 && - orientatedHeight > 0) { + if (orientatedWidth != null && orientatedHeight != null && orientatedWidth > 0 && orientatedHeight > 0) { return orientatedWidth.toDouble() / orientatedHeight.toDouble(); } @@ -389,8 +380,7 @@ class Asset { // workaround to nullify stackPrimaryAssetId for the parent asset until we refactor the mobile app // stack handling to properly handle it stackId: stackId, - stackPrimaryAssetId: - stackPrimaryAssetId == remoteId ? null : stackPrimaryAssetId, + stackPrimaryAssetId: stackPrimaryAssetId == remoteId ? null : stackPrimaryAssetId, stackCount: stackCount, isFavorite: isFavorite, isArchived: isArchived, @@ -410,9 +400,7 @@ class Asset { // workaround to nullify stackPrimaryAssetId for the parent asset until we refactor the mobile app // stack handling to properly handle it stackId: a.stackId, - stackPrimaryAssetId: a.stackPrimaryAssetId == a.remoteId - ? null - : a.stackPrimaryAssetId, + stackPrimaryAssetId: a.stackPrimaryAssetId == a.remoteId ? null : a.stackPrimaryAssetId, stackCount: a.stackCount, // isFavorite + isArchived are not set by device-only assets isFavorite: a.isFavorite, @@ -428,8 +416,7 @@ class Asset { localId: localId ?? a.localId, width: width ?? a.width, height: height ?? a.height, - exifInfo: exifInfo ?? - a.exifInfo?.copyWith(assetId: id), // updated to use assetId + exifInfo: exifInfo ?? a.exifInfo?.copyWith(assetId: id), // updated to use assetId ); } } @@ -491,18 +478,15 @@ class Asset { Future put(Isar db) async { await db.assets.put(this); if (exifInfo != null) { - await db.exifInfos - .put(entity.ExifInfo.fromDto(exifInfo!.copyWith(assetId: id))); + await db.exifInfos.put(entity.ExifInfo.fromDto(exifInfo!.copyWith(assetId: id))); } } static int compareById(Asset a, Asset b) => a.id.compareTo(b.id); - static int compareByLocalId(Asset a, Asset b) => - compareToNullable(a.localId, b.localId); + static int compareByLocalId(Asset a, Asset b) => compareToNullable(a.localId, b.localId); - static int compareByChecksum(Asset a, Asset b) => - a.checksum.compareTo(b.checksum); + static int compareByChecksum(Asset a, Asset b) => a.checksum.compareTo(b.checksum); static int compareByOwnerChecksum(Asset a, Asset b) { final int ownerIdOrder = a.ownerId.compareTo(b.ownerId); @@ -589,16 +573,11 @@ enum AssetState { } extension AssetsHelper on IsarCollection { - Future deleteAllByRemoteId(Iterable ids) => - ids.isEmpty ? Future.value(0) : remote(ids).deleteAll(); - Future deleteAllByLocalId(Iterable ids) => - ids.isEmpty ? Future.value(0) : local(ids).deleteAll(); - Future> getAllByRemoteId(Iterable ids) => - ids.isEmpty ? Future.value([]) : remote(ids).findAll(); - Future> getAllByLocalId(Iterable ids) => - ids.isEmpty ? Future.value([]) : local(ids).findAll(); - Future getByRemoteId(String id) => - where().remoteIdEqualTo(id).findFirst(); + Future deleteAllByRemoteId(Iterable ids) => ids.isEmpty ? Future.value(0) : remote(ids).deleteAll(); + Future deleteAllByLocalId(Iterable ids) => ids.isEmpty ? Future.value(0) : local(ids).deleteAll(); + Future> getAllByRemoteId(Iterable ids) => ids.isEmpty ? Future.value([]) : remote(ids).findAll(); + Future> getAllByLocalId(Iterable ids) => ids.isEmpty ? Future.value([]) : local(ids).findAll(); + Future getByRemoteId(String id) => where().remoteIdEqualTo(id).findFirst(); QueryBuilder remote( Iterable ids, diff --git a/mobile/lib/extensions/asyncvalue_extensions.dart b/mobile/lib/extensions/asyncvalue_extensions.dart index 554c3a8a8a..c76d7e48d8 100644 --- a/mobile/lib/extensions/asyncvalue_extensions.dart +++ b/mobile/lib/extensions/asyncvalue_extensions.dart @@ -22,15 +22,13 @@ extension LogOnError on AsyncValue { } if (!skip) { - return onLoading?.call() ?? - const Center(child: ImmichLoadingIndicator()); + return onLoading?.call() ?? const Center(child: ImmichLoadingIndicator()); } } if (hasError && !hasValue) { _asyncErrorLogger.severe('Could not load value', error, stackTrace); - return onError?.call(error, stackTrace) ?? - ScaffoldErrorBody(errorMsg: error?.toString()); + return onError?.call(error, stackTrace) ?? ScaffoldErrorBody(errorMsg: error?.toString()); } return onData(requireValue); diff --git a/mobile/lib/extensions/build_context_extensions.dart b/mobile/lib/extensions/build_context_extensions.dart index 7bb194cdae..a624337954 100644 --- a/mobile/lib/extensions/build_context_extensions.dart +++ b/mobile/lib/extensions/build_context_extensions.dart @@ -60,6 +60,5 @@ extension ContextHelper on BuildContext { FocusScopeNode get focusScope => FocusScope.of(this); // Show SnackBars from the current context - void showSnackBar(SnackBar snackBar) => - ScaffoldMessenger.of(this).showSnackBar(snackBar); + void showSnackBar(SnackBar snackBar) => ScaffoldMessenger.of(this).showSnackBar(snackBar); } diff --git a/mobile/lib/extensions/datetime_extensions.dart b/mobile/lib/extensions/datetime_extensions.dart index e23bf5210f..7e54980270 100644 --- a/mobile/lib/extensions/datetime_extensions.dart +++ b/mobile/lib/extensions/datetime_extensions.dart @@ -57,9 +57,7 @@ extension DateRangeFormatting on DateTime { final localeString = locale?.toString() ?? 'en_US'; // Check if it's a single date (same day) - if (startDate.year == endDate.year && - startDate.month == endDate.month && - startDate.day == endDate.day) { + if (startDate.year == endDate.year && startDate.month == endDate.month && startDate.day == endDate.day) { if (startDate.year == currentYear) { // Single date of this year: "Aug 28" return DateFormat.MMMd(localeString).format(startDate); diff --git a/mobile/lib/extensions/string_extensions.dart b/mobile/lib/extensions/string_extensions.dart index 67411013ee..65660c04ef 100644 --- a/mobile/lib/extensions/string_extensions.dart +++ b/mobile/lib/extensions/string_extensions.dart @@ -12,9 +12,7 @@ extension DurationExtension on String { /// Parses and returns the string of format HH:MM:SS as a duration object else null Duration? toDuration() { try { - final parts = split(':') - .map((e) => double.parse(e).toInt()) - .toList(growable: false); + final parts = split(':').map((e) => double.parse(e).toInt()).toList(growable: false); return Duration(hours: parts[0], minutes: parts[1], seconds: parts[2]); } catch (e) { return null; diff --git a/mobile/lib/extensions/theme_extensions.dart b/mobile/lib/extensions/theme_extensions.dart index b81e4476e0..6da8ac1fe6 100644 --- a/mobile/lib/extensions/theme_extensions.dart +++ b/mobile/lib/extensions/theme_extensions.dart @@ -2,9 +2,7 @@ import 'package:flutter/material.dart'; extension ImmichColorSchemeExtensions on ColorScheme { bool get _isDarkMode => brightness == Brightness.dark; - Color get onSurfaceSecondary => _isDarkMode - ? onSurface.darken(amount: .3) - : onSurface.lighten(amount: .3); + Color get onSurfaceSecondary => _isDarkMode ? onSurface.darken(amount: .3) : onSurface.lighten(amount: .3); } extension ColorExtensions on Color { diff --git a/mobile/lib/extensions/translate_extensions.dart b/mobile/lib/extensions/translate_extensions.dart index 122830843d..d8a2810e79 100644 --- a/mobile/lib/extensions/translate_extensions.dart +++ b/mobile/lib/extensions/translate_extensions.dart @@ -40,8 +40,7 @@ String _translateHelper( try { final translatedMessage = key.tr(context: context); return args != null - ? MessageFormat(translatedMessage, locale: Intl.defaultLocale ?? 'en') - .format(args) + ? MessageFormat(translatedMessage, locale: Intl.defaultLocale ?? 'en').format(args) : translatedMessage; } catch (e) { debugPrint('Translation failed for key "$key". Error: $e'); diff --git a/mobile/lib/infrastructure/entities/asset_face.entity.dart b/mobile/lib/infrastructure/entities/asset_face.entity.dart index c54e4e1848..5f793030c3 100644 --- a/mobile/lib/infrastructure/entities/asset_face.entity.dart +++ b/mobile/lib/infrastructure/entities/asset_face.entity.dart @@ -8,12 +8,9 @@ class AssetFaceEntity extends Table with DriftDefaultsMixin { TextColumn get id => text()(); - TextColumn get assetId => - text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); - TextColumn get personId => text() - .nullable() - .references(PersonEntity, #id, onDelete: KeyAction.setNull)(); + TextColumn get personId => text().nullable().references(PersonEntity, #id, onDelete: KeyAction.setNull)(); IntColumn get imageWidth => integer()(); diff --git a/mobile/lib/infrastructure/entities/exif.entity.dart b/mobile/lib/infrastructure/entities/exif.entity.dart index 2ec8f0023f..dae5486ab1 100644 --- a/mobile/lib/infrastructure/entities/exif.entity.dart +++ b/mobile/lib/infrastructure/entities/exif.entity.dart @@ -98,8 +98,7 @@ class ExifInfo { class RemoteExifEntity extends Table with DriftDefaultsMixin { const RemoteExifEntity(); - TextColumn get assetId => - text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); TextColumn get city => text().nullable()(); diff --git a/mobile/lib/infrastructure/entities/local_album.entity.dart b/mobile/lib/infrastructure/entities/local_album.entity.dart index 398c5d4e44..c796a12956 100644 --- a/mobile/lib/infrastructure/entities/local_album.entity.dart +++ b/mobile/lib/infrastructure/entities/local_album.entity.dart @@ -9,8 +9,7 @@ class LocalAlbumEntity extends Table with DriftDefaultsMixin { TextColumn get name => text()(); DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); IntColumn get backupSelection => intEnum()(); - BoolColumn get isIosSharedAlbum => - boolean().withDefault(const Constant(false))(); + BoolColumn get isIosSharedAlbum => boolean().withDefault(const Constant(false))(); // Used for mark & sweep BoolColumn get marker_ => boolean().nullable()(); diff --git a/mobile/lib/infrastructure/entities/local_album_asset.entity.dart b/mobile/lib/infrastructure/entities/local_album_asset.entity.dart index b64b9ec2fb..8de879a09d 100644 --- a/mobile/lib/infrastructure/entities/local_album_asset.entity.dart +++ b/mobile/lib/infrastructure/entities/local_album_asset.entity.dart @@ -6,11 +6,9 @@ import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart'; class LocalAlbumAssetEntity extends Table with DriftDefaultsMixin { const LocalAlbumAssetEntity(); - TextColumn get assetId => - text().references(LocalAssetEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get assetId => text().references(LocalAssetEntity, #id, onDelete: KeyAction.cascade)(); - TextColumn get albumId => - text().references(LocalAlbumEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get albumId => text().references(LocalAlbumEntity, #id, onDelete: KeyAction.cascade)(); @override Set get primaryKey => {assetId, albumId}; diff --git a/mobile/lib/infrastructure/entities/memory.entity.dart b/mobile/lib/infrastructure/entities/memory.entity.dart index 0e19802103..63dcfef5cc 100644 --- a/mobile/lib/infrastructure/entities/memory.entity.dart +++ b/mobile/lib/infrastructure/entities/memory.entity.dart @@ -14,8 +14,7 @@ class MemoryEntity extends Table with DriftDefaultsMixin { DateTimeColumn get deletedAt => dateTime().nullable()(); - TextColumn get ownerId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get ownerId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); IntColumn get type => intEnum()(); diff --git a/mobile/lib/infrastructure/entities/memory_asset.entity.dart b/mobile/lib/infrastructure/entities/memory_asset.entity.dart index c304b03724..5053afdfb3 100644 --- a/mobile/lib/infrastructure/entities/memory_asset.entity.dart +++ b/mobile/lib/infrastructure/entities/memory_asset.entity.dart @@ -6,11 +6,9 @@ import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart'; class MemoryAssetEntity extends Table with DriftDefaultsMixin { const MemoryAssetEntity(); - TextColumn get assetId => - text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); - TextColumn get memoryId => - text().references(MemoryEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get memoryId => text().references(MemoryEntity, #id, onDelete: KeyAction.cascade)(); @override Set get primaryKey => {assetId, memoryId}; diff --git a/mobile/lib/infrastructure/entities/partner.entity.dart b/mobile/lib/infrastructure/entities/partner.entity.dart index 8b51d93e6f..dbc675ee99 100644 --- a/mobile/lib/infrastructure/entities/partner.entity.dart +++ b/mobile/lib/infrastructure/entities/partner.entity.dart @@ -5,11 +5,9 @@ import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart'; class PartnerEntity extends Table with DriftDefaultsMixin { const PartnerEntity(); - TextColumn get sharedById => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get sharedById => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); - TextColumn get sharedWithId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get sharedWithId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); BoolColumn get inTimeline => boolean().withDefault(const Constant(false))(); diff --git a/mobile/lib/infrastructure/entities/person.entity.dart b/mobile/lib/infrastructure/entities/person.entity.dart index 75543baca3..f0878e00f8 100644 --- a/mobile/lib/infrastructure/entities/person.entity.dart +++ b/mobile/lib/infrastructure/entities/person.entity.dart @@ -11,8 +11,7 @@ class PersonEntity extends Table with DriftDefaultsMixin { DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); - TextColumn get ownerId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get ownerId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); TextColumn get name => text()(); diff --git a/mobile/lib/infrastructure/entities/remote_album.entity.dart b/mobile/lib/infrastructure/entities/remote_album.entity.dart index 377d67446f..74b00dd9ee 100644 --- a/mobile/lib/infrastructure/entities/remote_album.entity.dart +++ b/mobile/lib/infrastructure/entities/remote_album.entity.dart @@ -17,15 +17,12 @@ class RemoteAlbumEntity extends Table with DriftDefaultsMixin { DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); - TextColumn get ownerId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get ownerId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); - TextColumn get thumbnailAssetId => text() - .references(RemoteAssetEntity, #id, onDelete: KeyAction.setNull) - .nullable()(); + TextColumn get thumbnailAssetId => + text().references(RemoteAssetEntity, #id, onDelete: KeyAction.setNull).nullable()(); - BoolColumn get isActivityEnabled => - boolean().withDefault(const Constant(true))(); + BoolColumn get isActivityEnabled => boolean().withDefault(const Constant(true))(); IntColumn get order => intEnum()(); diff --git a/mobile/lib/infrastructure/entities/remote_album_asset.entity.dart b/mobile/lib/infrastructure/entities/remote_album_asset.entity.dart index 1dcc336ed8..e99f5364a4 100644 --- a/mobile/lib/infrastructure/entities/remote_album_asset.entity.dart +++ b/mobile/lib/infrastructure/entities/remote_album_asset.entity.dart @@ -6,11 +6,9 @@ import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart'; class RemoteAlbumAssetEntity extends Table with DriftDefaultsMixin { const RemoteAlbumAssetEntity(); - TextColumn get assetId => - text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get assetId => text().references(RemoteAssetEntity, #id, onDelete: KeyAction.cascade)(); - TextColumn get albumId => - text().references(RemoteAlbumEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get albumId => text().references(RemoteAlbumEntity, #id, onDelete: KeyAction.cascade)(); @override Set get primaryKey => {assetId, albumId}; diff --git a/mobile/lib/infrastructure/entities/remote_album_user.entity.dart b/mobile/lib/infrastructure/entities/remote_album_user.entity.dart index 4198fb7e46..9cb277f9d0 100644 --- a/mobile/lib/infrastructure/entities/remote_album_user.entity.dart +++ b/mobile/lib/infrastructure/entities/remote_album_user.entity.dart @@ -7,11 +7,9 @@ import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart'; class RemoteAlbumUserEntity extends Table with DriftDefaultsMixin { const RemoteAlbumUserEntity(); - TextColumn get albumId => - text().references(RemoteAlbumEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get albumId => text().references(RemoteAlbumEntity, #id, onDelete: KeyAction.cascade)(); - TextColumn get userId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get userId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); IntColumn get role => intEnum()(); diff --git a/mobile/lib/infrastructure/entities/remote_asset.entity.dart b/mobile/lib/infrastructure/entities/remote_asset.entity.dart index 0b2896538e..cb14e2501d 100644 --- a/mobile/lib/infrastructure/entities/remote_asset.entity.dart +++ b/mobile/lib/infrastructure/entities/remote_asset.entity.dart @@ -11,8 +11,7 @@ import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart'; unique: true, ) @TableIndex(name: 'idx_remote_asset_checksum', columns: {#checksum}) -class RemoteAssetEntity extends Table - with DriftDefaultsMixin, AssetEntityMixin { +class RemoteAssetEntity extends Table with DriftDefaultsMixin, AssetEntityMixin { const RemoteAssetEntity(); TextColumn get id => text()(); @@ -21,8 +20,7 @@ class RemoteAssetEntity extends Table BoolColumn get isFavorite => boolean().withDefault(const Constant(false))(); - TextColumn get ownerId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get ownerId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); DateTimeColumn get localDateTime => dateTime().nullable()(); diff --git a/mobile/lib/infrastructure/entities/stack.entity.dart b/mobile/lib/infrastructure/entities/stack.entity.dart index b5da42832e..be50d7e330 100644 --- a/mobile/lib/infrastructure/entities/stack.entity.dart +++ b/mobile/lib/infrastructure/entities/stack.entity.dart @@ -11,8 +11,7 @@ class StackEntity extends Table with DriftDefaultsMixin { DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); - TextColumn get ownerId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get ownerId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); TextColumn get primaryAssetId => text()(); diff --git a/mobile/lib/infrastructure/entities/user_metadata.entity.dart b/mobile/lib/infrastructure/entities/user_metadata.entity.dart index f9a411e3de..ede3de3966 100644 --- a/mobile/lib/infrastructure/entities/user_metadata.entity.dart +++ b/mobile/lib/infrastructure/entities/user_metadata.entity.dart @@ -6,8 +6,7 @@ import 'package:immich_mobile/infrastructure/utils/drift_default.mixin.dart'; class UserMetadataEntity extends Table with DriftDefaultsMixin { const UserMetadataEntity(); - TextColumn get userId => - text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); + TextColumn get userId => text().references(UserEntity, #id, onDelete: KeyAction.cascade)(); IntColumn get key => intEnum()(); @@ -17,7 +16,6 @@ class UserMetadataEntity extends Table with DriftDefaultsMixin { Set get primaryKey => {userId, key}; } -final JsonTypeConverter2, Uint8List, Object?> - userMetadataConverter = TypeConverter.jsonb( +final JsonTypeConverter2, Uint8List, Object?> userMetadataConverter = TypeConverter.jsonb( fromJson: (json) => json as Map, ); diff --git a/mobile/lib/infrastructure/repositories/asset_face.repository.dart b/mobile/lib/infrastructure/repositories/asset_face.repository.dart index a9ad753d84..7b3b97058b 100644 --- a/mobile/lib/infrastructure/repositories/asset_face.repository.dart +++ b/mobile/lib/infrastructure/repositories/asset_face.repository.dart @@ -8,10 +8,7 @@ class DriftAssetFaceRepository extends DriftDatabaseRepository { const DriftAssetFaceRepository(this._db) : super(_db); Future> getAll() { - return _db.assetFaceEntity - .select() - .map((assetFace) => assetFace.toDto()) - .get(); + return _db.assetFaceEntity.select().map((assetFace) => assetFace.toDto()).get(); } } diff --git a/mobile/lib/infrastructure/repositories/backup.repository.dart b/mobile/lib/infrastructure/repositories/backup.repository.dart index aed7118e5a..394bbfa299 100644 --- a/mobile/lib/infrastructure/repositories/backup.repository.dart +++ b/mobile/lib/infrastructure/repositories/backup.repository.dart @@ -25,8 +25,7 @@ class DriftBackupRepository extends DriftDatabaseRepository { ), ]) ..where( - _db.localAlbumEntity.backupSelection - .equalsValue(BackupSelection.excluded), + _db.localAlbumEntity.backupSelection.equalsValue(BackupSelection.excluded), ); } @@ -41,10 +40,8 @@ class DriftBackupRepository extends DriftDatabaseRepository { ), ]) ..where( - _db.localAlbumEntity.backupSelection - .equalsValue(BackupSelection.selected) & - _db.localAlbumAssetEntity.assetId - .isNotInQuery(_getExcludedSubquery()), + _db.localAlbumEntity.backupSelection.equalsValue(BackupSelection.selected) & + _db.localAlbumAssetEntity.assetId.isNotInQuery(_getExcludedSubquery()), ); return query.get().then((rows) => rows.length); @@ -66,18 +63,14 @@ class DriftBackupRepository extends DriftDatabaseRepository { ), leftOuterJoin( _db.remoteAssetEntity, - _db.localAssetEntity.checksum - .equalsExp(_db.remoteAssetEntity.checksum), + _db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum), useColumns: false, ), ]) ..where( - _db.localAlbumEntity.backupSelection - .equalsValue(BackupSelection.selected) & - (_db.remoteAssetEntity.id.isNull() | - _db.remoteAssetEntity.ownerId.equals(userId).not()) & - _db.localAlbumAssetEntity.assetId - .isNotInQuery(_getExcludedSubquery()), + _db.localAlbumEntity.backupSelection.equalsValue(BackupSelection.selected) & + (_db.remoteAssetEntity.id.isNull() | _db.remoteAssetEntity.ownerId.equals(userId).not()) & + _db.localAlbumAssetEntity.assetId.isNotInQuery(_getExcludedSubquery()), ); return query.get().then((rows) => rows.length); @@ -101,18 +94,15 @@ class DriftBackupRepository extends DriftDatabaseRepository { ), innerJoin( _db.remoteAssetEntity, - _db.localAssetEntity.checksum - .equalsExp(_db.remoteAssetEntity.checksum), + _db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum), useColumns: false, ), ]) ..where( - _db.localAlbumEntity.backupSelection - .equalsValue(BackupSelection.selected) & + _db.localAlbumEntity.backupSelection.equalsValue(BackupSelection.selected) & _db.remoteAssetEntity.id.isNotNull() & _db.remoteAssetEntity.ownerId.equals(userId) & - _db.localAlbumAssetEntity.assetId - .isNotInQuery(_getExcludedSubquery()), + _db.localAlbumAssetEntity.assetId.isNotInQuery(_getExcludedSubquery()), ); return query.get().then((rows) => rows.length); @@ -122,8 +112,7 @@ class DriftBackupRepository extends DriftDatabaseRepository { final selectedAlbumIds = _db.localAlbumEntity.selectOnly(distinct: true) ..addColumns([_db.localAlbumEntity.id]) ..where( - _db.localAlbumEntity.backupSelection - .equalsValue(BackupSelection.selected), + _db.localAlbumEntity.backupSelection.equalsValue(BackupSelection.selected), ); final query = _db.localAssetEntity.select() @@ -133,8 +122,7 @@ class DriftBackupRepository extends DriftDatabaseRepository { _db.localAlbumAssetEntity.selectOnly() ..addColumns([_db.localAlbumAssetEntity.assetId]) ..where( - _db.localAlbumAssetEntity.albumId - .isInQuery(selectedAlbumIds) & + _db.localAlbumAssetEntity.albumId.isInQuery(selectedAlbumIds) & _db.localAlbumAssetEntity.assetId.equalsExp(lae.id), ), ) & diff --git a/mobile/lib/infrastructure/repositories/db.repository.dart b/mobile/lib/infrastructure/repositories/db.repository.dart index 5cbbb3b4f4..15fce4d649 100644 --- a/mobile/lib/infrastructure/repositories/db.repository.dart +++ b/mobile/lib/infrastructure/repositories/db.repository.dart @@ -107,8 +107,7 @@ class Drift extends $Drift implements IDatabaseRepository { if (kDebugMode) { // Fail if the migration broke foreign keys - final wrongFKs = - await customSelect('PRAGMA foreign_key_check').get(); + final wrongFKs = await customSelect('PRAGMA foreign_key_check').get(); assert(wrongFKs.isEmpty, '${wrongFKs.map((e) => e.data)}'); } @@ -127,6 +126,5 @@ class DriftDatabaseRepository implements IDatabaseRepository { const DriftDatabaseRepository(this._db); @override - Future transaction(Future Function() callback) => - _db.transaction(callback); + Future transaction(Future Function() callback) => _db.transaction(callback); } diff --git a/mobile/lib/infrastructure/repositories/db.repository.steps.dart b/mobile/lib/infrastructure/repositories/db.repository.steps.dart index 7f179fb5f0..57c90f731d 100644 --- a/mobile/lib/infrastructure/repositories/db.repository.steps.dart +++ b/mobile/lib/infrastructure/repositories/db.repository.steps.dart @@ -121,13 +121,12 @@ final class Schema2 extends i0.VersionedSchema { attachedDatabase: database, ), alias: null); - final i1.Index idxLocalAssetChecksum = i1.Index('idx_local_asset_checksum', - 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); - final i1.Index uQRemoteAssetOwnerChecksum = i1.Index( - 'UQ_remote_asset_owner_checksum', + final i1.Index idxLocalAssetChecksum = + i1.Index('idx_local_asset_checksum', 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); + final i1.Index uQRemoteAssetOwnerChecksum = i1.Index('UQ_remote_asset_owner_checksum', 'CREATE UNIQUE INDEX UQ_remote_asset_owner_checksum ON remote_asset_entity (checksum, owner_id)'); - final i1.Index idxRemoteAssetChecksum = i1.Index('idx_remote_asset_checksum', - 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); + final i1.Index idxRemoteAssetChecksum = + i1.Index('idx_remote_asset_checksum', 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); late final Shape4 userMetadataEntity = Shape4( source: i0.VersionedTable( entityName: 'user_metadata_entity', @@ -350,575 +349,376 @@ final class Schema2 extends i0.VersionedSchema { class Shape0 extends i0.VersionedTable { Shape0({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get name => - columnsByName['name']! as i1.GeneratedColumn; - i1.GeneratedColumn get isAdmin => - columnsByName['is_admin']! as i1.GeneratedColumn; - i1.GeneratedColumn get email => - columnsByName['email']! as i1.GeneratedColumn; - i1.GeneratedColumn get profileImagePath => - columnsByName['profile_image_path']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get quotaSizeInBytes => - columnsByName['quota_size_in_bytes']! as i1.GeneratedColumn; - i1.GeneratedColumn get quotaUsageInBytes => - columnsByName['quota_usage_in_bytes']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get name => columnsByName['name']! as i1.GeneratedColumn; + i1.GeneratedColumn get isAdmin => columnsByName['is_admin']! as i1.GeneratedColumn; + i1.GeneratedColumn get email => columnsByName['email']! as i1.GeneratedColumn; + i1.GeneratedColumn get profileImagePath => columnsByName['profile_image_path']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get quotaSizeInBytes => columnsByName['quota_size_in_bytes']! as i1.GeneratedColumn; + i1.GeneratedColumn get quotaUsageInBytes => columnsByName['quota_usage_in_bytes']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_0(String aliasedName) => - i1.GeneratedColumn('id', aliasedName, false, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('id', aliasedName, false, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_1(String aliasedName) => - i1.GeneratedColumn('name', aliasedName, false, - type: i1.DriftSqlType.string); -i1.GeneratedColumn _column_2(String aliasedName) => - i1.GeneratedColumn('is_admin', aliasedName, false, - type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("is_admin" IN (0, 1))'), - defaultValue: const CustomExpression('0')); + i1.GeneratedColumn('name', aliasedName, false, type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_2(String aliasedName) => i1.GeneratedColumn('is_admin', aliasedName, false, + type: i1.DriftSqlType.bool, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), + defaultValue: const CustomExpression('0')); i1.GeneratedColumn _column_3(String aliasedName) => - i1.GeneratedColumn('email', aliasedName, false, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('email', aliasedName, false, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_4(String aliasedName) => - i1.GeneratedColumn('profile_image_path', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('profile_image_path', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_5(String aliasedName) => i1.GeneratedColumn('updated_at', aliasedName, false, - type: i1.DriftSqlType.dateTime, - defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); + type: i1.DriftSqlType.dateTime, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); i1.GeneratedColumn _column_6(String aliasedName) => - i1.GeneratedColumn('quota_size_in_bytes', aliasedName, true, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('quota_size_in_bytes', aliasedName, true, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_7(String aliasedName) => i1.GeneratedColumn('quota_usage_in_bytes', aliasedName, false, type: i1.DriftSqlType.int, defaultValue: const CustomExpression('0')); class Shape1 extends i0.VersionedTable { Shape1({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get name => - columnsByName['name']! as i1.GeneratedColumn; - i1.GeneratedColumn get type => - columnsByName['type']! as i1.GeneratedColumn; - i1.GeneratedColumn get createdAt => - columnsByName['created_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get width => - columnsByName['width']! as i1.GeneratedColumn; - i1.GeneratedColumn get height => - columnsByName['height']! as i1.GeneratedColumn; - i1.GeneratedColumn get durationInSeconds => - columnsByName['duration_in_seconds']! as i1.GeneratedColumn; - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get checksum => - columnsByName['checksum']! as i1.GeneratedColumn; - i1.GeneratedColumn get isFavorite => - columnsByName['is_favorite']! as i1.GeneratedColumn; - i1.GeneratedColumn get ownerId => - columnsByName['owner_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get localDateTime => - columnsByName['local_date_time']! as i1.GeneratedColumn; - i1.GeneratedColumn get thumbHash => - columnsByName['thumb_hash']! as i1.GeneratedColumn; - i1.GeneratedColumn get deletedAt => - columnsByName['deleted_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get name => columnsByName['name']! as i1.GeneratedColumn; + i1.GeneratedColumn get type => columnsByName['type']! as i1.GeneratedColumn; + i1.GeneratedColumn get createdAt => columnsByName['created_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get width => columnsByName['width']! as i1.GeneratedColumn; + i1.GeneratedColumn get height => columnsByName['height']! as i1.GeneratedColumn; + i1.GeneratedColumn get durationInSeconds => columnsByName['duration_in_seconds']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get checksum => columnsByName['checksum']! as i1.GeneratedColumn; + i1.GeneratedColumn get isFavorite => columnsByName['is_favorite']! as i1.GeneratedColumn; + i1.GeneratedColumn get ownerId => columnsByName['owner_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get localDateTime => columnsByName['local_date_time']! as i1.GeneratedColumn; + i1.GeneratedColumn get thumbHash => columnsByName['thumb_hash']! as i1.GeneratedColumn; + i1.GeneratedColumn get deletedAt => columnsByName['deleted_at']! as i1.GeneratedColumn; i1.GeneratedColumn get livePhotoVideoId => columnsByName['live_photo_video_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get visibility => - columnsByName['visibility']! as i1.GeneratedColumn; - i1.GeneratedColumn get stackId => - columnsByName['stack_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get visibility => columnsByName['visibility']! as i1.GeneratedColumn; + i1.GeneratedColumn get stackId => columnsByName['stack_id']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_8(String aliasedName) => - i1.GeneratedColumn('type', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('type', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_9(String aliasedName) => i1.GeneratedColumn('created_at', aliasedName, false, - type: i1.DriftSqlType.dateTime, - defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); + type: i1.DriftSqlType.dateTime, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); i1.GeneratedColumn _column_10(String aliasedName) => - i1.GeneratedColumn('width', aliasedName, true, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('width', aliasedName, true, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_11(String aliasedName) => - i1.GeneratedColumn('height', aliasedName, true, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('height', aliasedName, true, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_12(String aliasedName) => - i1.GeneratedColumn('duration_in_seconds', aliasedName, true, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('duration_in_seconds', aliasedName, true, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_13(String aliasedName) => - i1.GeneratedColumn('checksum', aliasedName, false, - type: i1.DriftSqlType.string); -i1.GeneratedColumn _column_14(String aliasedName) => - i1.GeneratedColumn('is_favorite', aliasedName, false, - type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("is_favorite" IN (0, 1))'), - defaultValue: const CustomExpression('0')); -i1.GeneratedColumn _column_15(String aliasedName) => - i1.GeneratedColumn('owner_id', aliasedName, false, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); + i1.GeneratedColumn('checksum', aliasedName, false, type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_14(String aliasedName) => i1.GeneratedColumn('is_favorite', aliasedName, false, + type: i1.DriftSqlType.bool, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), + defaultValue: const CustomExpression('0')); +i1.GeneratedColumn _column_15(String aliasedName) => i1.GeneratedColumn('owner_id', aliasedName, false, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); i1.GeneratedColumn _column_16(String aliasedName) => - i1.GeneratedColumn('local_date_time', aliasedName, true, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('local_date_time', aliasedName, true, type: i1.DriftSqlType.dateTime); i1.GeneratedColumn _column_17(String aliasedName) => - i1.GeneratedColumn('thumb_hash', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('thumb_hash', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_18(String aliasedName) => - i1.GeneratedColumn('deleted_at', aliasedName, true, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('deleted_at', aliasedName, true, type: i1.DriftSqlType.dateTime); i1.GeneratedColumn _column_19(String aliasedName) => - i1.GeneratedColumn('live_photo_video_id', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('live_photo_video_id', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_20(String aliasedName) => - i1.GeneratedColumn('visibility', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('visibility', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_21(String aliasedName) => - i1.GeneratedColumn('stack_id', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('stack_id', aliasedName, true, type: i1.DriftSqlType.string); class Shape2 extends i0.VersionedTable { Shape2({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get name => - columnsByName['name']! as i1.GeneratedColumn; - i1.GeneratedColumn get type => - columnsByName['type']! as i1.GeneratedColumn; - i1.GeneratedColumn get createdAt => - columnsByName['created_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get width => - columnsByName['width']! as i1.GeneratedColumn; - i1.GeneratedColumn get height => - columnsByName['height']! as i1.GeneratedColumn; - i1.GeneratedColumn get durationInSeconds => - columnsByName['duration_in_seconds']! as i1.GeneratedColumn; - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get checksum => - columnsByName['checksum']! as i1.GeneratedColumn; - i1.GeneratedColumn get isFavorite => - columnsByName['is_favorite']! as i1.GeneratedColumn; - i1.GeneratedColumn get orientation => - columnsByName['orientation']! as i1.GeneratedColumn; + i1.GeneratedColumn get name => columnsByName['name']! as i1.GeneratedColumn; + i1.GeneratedColumn get type => columnsByName['type']! as i1.GeneratedColumn; + i1.GeneratedColumn get createdAt => columnsByName['created_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get width => columnsByName['width']! as i1.GeneratedColumn; + i1.GeneratedColumn get height => columnsByName['height']! as i1.GeneratedColumn; + i1.GeneratedColumn get durationInSeconds => columnsByName['duration_in_seconds']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get checksum => columnsByName['checksum']! as i1.GeneratedColumn; + i1.GeneratedColumn get isFavorite => columnsByName['is_favorite']! as i1.GeneratedColumn; + i1.GeneratedColumn get orientation => columnsByName['orientation']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_22(String aliasedName) => - i1.GeneratedColumn('checksum', aliasedName, true, - type: i1.DriftSqlType.string); -i1.GeneratedColumn _column_23(String aliasedName) => - i1.GeneratedColumn('orientation', aliasedName, false, - type: i1.DriftSqlType.int, defaultValue: const CustomExpression('0')); + i1.GeneratedColumn('checksum', aliasedName, true, type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_23(String aliasedName) => i1.GeneratedColumn('orientation', aliasedName, false, + type: i1.DriftSqlType.int, defaultValue: const CustomExpression('0')); class Shape3 extends i0.VersionedTable { Shape3({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get createdAt => - columnsByName['created_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get ownerId => - columnsByName['owner_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get primaryAssetId => - columnsByName['primary_asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get createdAt => columnsByName['created_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get ownerId => columnsByName['owner_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get primaryAssetId => columnsByName['primary_asset_id']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_24(String aliasedName) => i1.GeneratedColumn('primary_asset_id', aliasedName, false, type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id)')); + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id)')); class Shape4 extends i0.VersionedTable { Shape4({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get userId => - columnsByName['user_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get key => - columnsByName['key']! as i1.GeneratedColumn; - i1.GeneratedColumn get value => - columnsByName['value']! as i1.GeneratedColumn; + i1.GeneratedColumn get userId => columnsByName['user_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get key => columnsByName['key']! as i1.GeneratedColumn; + i1.GeneratedColumn get value => columnsByName['value']! as i1.GeneratedColumn; } -i1.GeneratedColumn _column_25(String aliasedName) => - i1.GeneratedColumn('user_id', aliasedName, false, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); +i1.GeneratedColumn _column_25(String aliasedName) => i1.GeneratedColumn('user_id', aliasedName, false, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); i1.GeneratedColumn _column_26(String aliasedName) => - i1.GeneratedColumn('key', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('key', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_27(String aliasedName) => - i1.GeneratedColumn('value', aliasedName, false, - type: i1.DriftSqlType.blob); + i1.GeneratedColumn('value', aliasedName, false, type: i1.DriftSqlType.blob); class Shape5 extends i0.VersionedTable { Shape5({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get sharedById => - columnsByName['shared_by_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get sharedWithId => - columnsByName['shared_with_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get inTimeline => - columnsByName['in_timeline']! as i1.GeneratedColumn; + i1.GeneratedColumn get sharedById => columnsByName['shared_by_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get sharedWithId => columnsByName['shared_with_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get inTimeline => columnsByName['in_timeline']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_28(String aliasedName) => i1.GeneratedColumn('shared_by_id', aliasedName, false, type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); i1.GeneratedColumn _column_29(String aliasedName) => i1.GeneratedColumn('shared_with_id', aliasedName, false, type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); -i1.GeneratedColumn _column_30(String aliasedName) => - i1.GeneratedColumn('in_timeline', aliasedName, false, - type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("in_timeline" IN (0, 1))'), - defaultValue: const CustomExpression('0')); + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); +i1.GeneratedColumn _column_30(String aliasedName) => i1.GeneratedColumn('in_timeline', aliasedName, false, + type: i1.DriftSqlType.bool, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), + defaultValue: const CustomExpression('0')); class Shape6 extends i0.VersionedTable { Shape6({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get name => - columnsByName['name']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get backupSelection => - columnsByName['backup_selection']! as i1.GeneratedColumn; - i1.GeneratedColumn get isIosSharedAlbum => - columnsByName['is_ios_shared_album']! as i1.GeneratedColumn; - i1.GeneratedColumn get marker_ => - columnsByName['marker']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get name => columnsByName['name']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get backupSelection => columnsByName['backup_selection']! as i1.GeneratedColumn; + i1.GeneratedColumn get isIosSharedAlbum => columnsByName['is_ios_shared_album']! as i1.GeneratedColumn; + i1.GeneratedColumn get marker_ => columnsByName['marker']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_31(String aliasedName) => - i1.GeneratedColumn('backup_selection', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('backup_selection', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_32(String aliasedName) => i1.GeneratedColumn('is_ios_shared_album', aliasedName, false, type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("is_ios_shared_album" IN (0, 1))'), + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("is_ios_shared_album" IN (0, 1))'), defaultValue: const CustomExpression('0')); -i1.GeneratedColumn _column_33(String aliasedName) => - i1.GeneratedColumn('marker', aliasedName, true, - type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("marker" IN (0, 1))')); +i1.GeneratedColumn _column_33(String aliasedName) => i1.GeneratedColumn('marker', aliasedName, true, + type: i1.DriftSqlType.bool, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); class Shape7 extends i0.VersionedTable { Shape7({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get assetId => - columnsByName['asset_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get albumId => - columnsByName['album_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get assetId => columnsByName['asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get albumId => columnsByName['album_id']! as i1.GeneratedColumn; } -i1.GeneratedColumn _column_34(String aliasedName) => - i1.GeneratedColumn('asset_id', aliasedName, false, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES local_asset_entity (id) ON DELETE CASCADE')); -i1.GeneratedColumn _column_35(String aliasedName) => - i1.GeneratedColumn('album_id', aliasedName, false, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES local_album_entity (id) ON DELETE CASCADE')); +i1.GeneratedColumn _column_34(String aliasedName) => i1.GeneratedColumn('asset_id', aliasedName, false, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES local_asset_entity (id) ON DELETE CASCADE')); +i1.GeneratedColumn _column_35(String aliasedName) => i1.GeneratedColumn('album_id', aliasedName, false, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES local_album_entity (id) ON DELETE CASCADE')); class Shape8 extends i0.VersionedTable { Shape8({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get assetId => - columnsByName['asset_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get city => - columnsByName['city']! as i1.GeneratedColumn; - i1.GeneratedColumn get state => - columnsByName['state']! as i1.GeneratedColumn; - i1.GeneratedColumn get country => - columnsByName['country']! as i1.GeneratedColumn; + i1.GeneratedColumn get assetId => columnsByName['asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get city => columnsByName['city']! as i1.GeneratedColumn; + i1.GeneratedColumn get state => columnsByName['state']! as i1.GeneratedColumn; + i1.GeneratedColumn get country => columnsByName['country']! as i1.GeneratedColumn; i1.GeneratedColumn get dateTimeOriginal => columnsByName['date_time_original']! as i1.GeneratedColumn; - i1.GeneratedColumn get description => - columnsByName['description']! as i1.GeneratedColumn; - i1.GeneratedColumn get height => - columnsByName['height']! as i1.GeneratedColumn; - i1.GeneratedColumn get width => - columnsByName['width']! as i1.GeneratedColumn; - i1.GeneratedColumn get exposureTime => - columnsByName['exposure_time']! as i1.GeneratedColumn; - i1.GeneratedColumn get fNumber => - columnsByName['f_number']! as i1.GeneratedColumn; - i1.GeneratedColumn get fileSize => - columnsByName['file_size']! as i1.GeneratedColumn; - i1.GeneratedColumn get focalLength => - columnsByName['focal_length']! as i1.GeneratedColumn; - i1.GeneratedColumn get latitude => - columnsByName['latitude']! as i1.GeneratedColumn; - i1.GeneratedColumn get longitude => - columnsByName['longitude']! as i1.GeneratedColumn; - i1.GeneratedColumn get iso => - columnsByName['iso']! as i1.GeneratedColumn; - i1.GeneratedColumn get make => - columnsByName['make']! as i1.GeneratedColumn; - i1.GeneratedColumn get model => - columnsByName['model']! as i1.GeneratedColumn; - i1.GeneratedColumn get lens => - columnsByName['lens']! as i1.GeneratedColumn; - i1.GeneratedColumn get orientation => - columnsByName['orientation']! as i1.GeneratedColumn; - i1.GeneratedColumn get timeZone => - columnsByName['time_zone']! as i1.GeneratedColumn; - i1.GeneratedColumn get rating => - columnsByName['rating']! as i1.GeneratedColumn; - i1.GeneratedColumn get projectionType => - columnsByName['projection_type']! as i1.GeneratedColumn; + i1.GeneratedColumn get description => columnsByName['description']! as i1.GeneratedColumn; + i1.GeneratedColumn get height => columnsByName['height']! as i1.GeneratedColumn; + i1.GeneratedColumn get width => columnsByName['width']! as i1.GeneratedColumn; + i1.GeneratedColumn get exposureTime => columnsByName['exposure_time']! as i1.GeneratedColumn; + i1.GeneratedColumn get fNumber => columnsByName['f_number']! as i1.GeneratedColumn; + i1.GeneratedColumn get fileSize => columnsByName['file_size']! as i1.GeneratedColumn; + i1.GeneratedColumn get focalLength => columnsByName['focal_length']! as i1.GeneratedColumn; + i1.GeneratedColumn get latitude => columnsByName['latitude']! as i1.GeneratedColumn; + i1.GeneratedColumn get longitude => columnsByName['longitude']! as i1.GeneratedColumn; + i1.GeneratedColumn get iso => columnsByName['iso']! as i1.GeneratedColumn; + i1.GeneratedColumn get make => columnsByName['make']! as i1.GeneratedColumn; + i1.GeneratedColumn get model => columnsByName['model']! as i1.GeneratedColumn; + i1.GeneratedColumn get lens => columnsByName['lens']! as i1.GeneratedColumn; + i1.GeneratedColumn get orientation => columnsByName['orientation']! as i1.GeneratedColumn; + i1.GeneratedColumn get timeZone => columnsByName['time_zone']! as i1.GeneratedColumn; + i1.GeneratedColumn get rating => columnsByName['rating']! as i1.GeneratedColumn; + i1.GeneratedColumn get projectionType => columnsByName['projection_type']! as i1.GeneratedColumn; } -i1.GeneratedColumn _column_36(String aliasedName) => - i1.GeneratedColumn('asset_id', aliasedName, false, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); +i1.GeneratedColumn _column_36(String aliasedName) => i1.GeneratedColumn('asset_id', aliasedName, false, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); i1.GeneratedColumn _column_37(String aliasedName) => - i1.GeneratedColumn('city', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('city', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_38(String aliasedName) => - i1.GeneratedColumn('state', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('state', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_39(String aliasedName) => - i1.GeneratedColumn('country', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('country', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_40(String aliasedName) => - i1.GeneratedColumn('date_time_original', aliasedName, true, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('date_time_original', aliasedName, true, type: i1.DriftSqlType.dateTime); i1.GeneratedColumn _column_41(String aliasedName) => - i1.GeneratedColumn('description', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('description', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_42(String aliasedName) => - i1.GeneratedColumn('exposure_time', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('exposure_time', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_43(String aliasedName) => - i1.GeneratedColumn('f_number', aliasedName, true, - type: i1.DriftSqlType.double); + i1.GeneratedColumn('f_number', aliasedName, true, type: i1.DriftSqlType.double); i1.GeneratedColumn _column_44(String aliasedName) => - i1.GeneratedColumn('file_size', aliasedName, true, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('file_size', aliasedName, true, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_45(String aliasedName) => - i1.GeneratedColumn('focal_length', aliasedName, true, - type: i1.DriftSqlType.double); + i1.GeneratedColumn('focal_length', aliasedName, true, type: i1.DriftSqlType.double); i1.GeneratedColumn _column_46(String aliasedName) => - i1.GeneratedColumn('latitude', aliasedName, true, - type: i1.DriftSqlType.double); + i1.GeneratedColumn('latitude', aliasedName, true, type: i1.DriftSqlType.double); i1.GeneratedColumn _column_47(String aliasedName) => - i1.GeneratedColumn('longitude', aliasedName, true, - type: i1.DriftSqlType.double); + i1.GeneratedColumn('longitude', aliasedName, true, type: i1.DriftSqlType.double); i1.GeneratedColumn _column_48(String aliasedName) => - i1.GeneratedColumn('iso', aliasedName, true, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('iso', aliasedName, true, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_49(String aliasedName) => - i1.GeneratedColumn('make', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('make', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_50(String aliasedName) => - i1.GeneratedColumn('model', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('model', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_51(String aliasedName) => - i1.GeneratedColumn('lens', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('lens', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_52(String aliasedName) => - i1.GeneratedColumn('orientation', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('orientation', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_53(String aliasedName) => - i1.GeneratedColumn('time_zone', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('time_zone', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_54(String aliasedName) => - i1.GeneratedColumn('rating', aliasedName, true, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('rating', aliasedName, true, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_55(String aliasedName) => - i1.GeneratedColumn('projection_type', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('projection_type', aliasedName, true, type: i1.DriftSqlType.string); class Shape9 extends i0.VersionedTable { Shape9({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get name => - columnsByName['name']! as i1.GeneratedColumn; - i1.GeneratedColumn get description => - columnsByName['description']! as i1.GeneratedColumn; - i1.GeneratedColumn get createdAt => - columnsByName['created_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get ownerId => - columnsByName['owner_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get thumbnailAssetId => - columnsByName['thumbnail_asset_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get isActivityEnabled => - columnsByName['is_activity_enabled']! as i1.GeneratedColumn; - i1.GeneratedColumn get order => - columnsByName['order']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get name => columnsByName['name']! as i1.GeneratedColumn; + i1.GeneratedColumn get description => columnsByName['description']! as i1.GeneratedColumn; + i1.GeneratedColumn get createdAt => columnsByName['created_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get ownerId => columnsByName['owner_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get thumbnailAssetId => columnsByName['thumbnail_asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get isActivityEnabled => columnsByName['is_activity_enabled']! as i1.GeneratedColumn; + i1.GeneratedColumn get order => columnsByName['order']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_56(String aliasedName) => i1.GeneratedColumn('description', aliasedName, false, - type: i1.DriftSqlType.string, - defaultValue: const CustomExpression('\'\'')); + type: i1.DriftSqlType.string, defaultValue: const CustomExpression('\'\'')); i1.GeneratedColumn _column_57(String aliasedName) => i1.GeneratedColumn('thumbnail_asset_id', aliasedName, true, type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); + defaultConstraints: + i1.GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); i1.GeneratedColumn _column_58(String aliasedName) => i1.GeneratedColumn('is_activity_enabled', aliasedName, false, type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("is_activity_enabled" IN (0, 1))'), + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("is_activity_enabled" IN (0, 1))'), defaultValue: const CustomExpression('1')); i1.GeneratedColumn _column_59(String aliasedName) => - i1.GeneratedColumn('order', aliasedName, false, - type: i1.DriftSqlType.int); -i1.GeneratedColumn _column_60(String aliasedName) => - i1.GeneratedColumn('album_id', aliasedName, false, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + i1.GeneratedColumn('order', aliasedName, false, type: i1.DriftSqlType.int); +i1.GeneratedColumn _column_60(String aliasedName) => i1.GeneratedColumn('album_id', aliasedName, false, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); class Shape10 extends i0.VersionedTable { Shape10({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get albumId => - columnsByName['album_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get userId => - columnsByName['user_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get role => - columnsByName['role']! as i1.GeneratedColumn; + i1.GeneratedColumn get albumId => columnsByName['album_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get userId => columnsByName['user_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get role => columnsByName['role']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_61(String aliasedName) => - i1.GeneratedColumn('role', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('role', aliasedName, false, type: i1.DriftSqlType.int); class Shape11 extends i0.VersionedTable { Shape11({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get createdAt => - columnsByName['created_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get deletedAt => - columnsByName['deleted_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get ownerId => - columnsByName['owner_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get type => - columnsByName['type']! as i1.GeneratedColumn; - i1.GeneratedColumn get data => - columnsByName['data']! as i1.GeneratedColumn; - i1.GeneratedColumn get isSaved => - columnsByName['is_saved']! as i1.GeneratedColumn; - i1.GeneratedColumn get memoryAt => - columnsByName['memory_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get seenAt => - columnsByName['seen_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get showAt => - columnsByName['show_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get hideAt => - columnsByName['hide_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get createdAt => columnsByName['created_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get deletedAt => columnsByName['deleted_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get ownerId => columnsByName['owner_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get type => columnsByName['type']! as i1.GeneratedColumn; + i1.GeneratedColumn get data => columnsByName['data']! as i1.GeneratedColumn; + i1.GeneratedColumn get isSaved => columnsByName['is_saved']! as i1.GeneratedColumn; + i1.GeneratedColumn get memoryAt => columnsByName['memory_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get seenAt => columnsByName['seen_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get showAt => columnsByName['show_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get hideAt => columnsByName['hide_at']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_62(String aliasedName) => - i1.GeneratedColumn('data', aliasedName, false, - type: i1.DriftSqlType.string); -i1.GeneratedColumn _column_63(String aliasedName) => - i1.GeneratedColumn('is_saved', aliasedName, false, - type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("is_saved" IN (0, 1))'), - defaultValue: const CustomExpression('0')); + i1.GeneratedColumn('data', aliasedName, false, type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_63(String aliasedName) => i1.GeneratedColumn('is_saved', aliasedName, false, + type: i1.DriftSqlType.bool, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), + defaultValue: const CustomExpression('0')); i1.GeneratedColumn _column_64(String aliasedName) => - i1.GeneratedColumn('memory_at', aliasedName, false, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('memory_at', aliasedName, false, type: i1.DriftSqlType.dateTime); i1.GeneratedColumn _column_65(String aliasedName) => - i1.GeneratedColumn('seen_at', aliasedName, true, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('seen_at', aliasedName, true, type: i1.DriftSqlType.dateTime); i1.GeneratedColumn _column_66(String aliasedName) => - i1.GeneratedColumn('show_at', aliasedName, true, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('show_at', aliasedName, true, type: i1.DriftSqlType.dateTime); i1.GeneratedColumn _column_67(String aliasedName) => - i1.GeneratedColumn('hide_at', aliasedName, true, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('hide_at', aliasedName, true, type: i1.DriftSqlType.dateTime); class Shape12 extends i0.VersionedTable { Shape12({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get assetId => - columnsByName['asset_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get memoryId => - columnsByName['memory_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get assetId => columnsByName['asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get memoryId => columnsByName['memory_id']! as i1.GeneratedColumn; } -i1.GeneratedColumn _column_68(String aliasedName) => - i1.GeneratedColumn('memory_id', aliasedName, false, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES memory_entity (id) ON DELETE CASCADE')); +i1.GeneratedColumn _column_68(String aliasedName) => i1.GeneratedColumn('memory_id', aliasedName, false, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES memory_entity (id) ON DELETE CASCADE')); class Shape13 extends i0.VersionedTable { Shape13({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get createdAt => - columnsByName['created_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get ownerId => - columnsByName['owner_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get name => - columnsByName['name']! as i1.GeneratedColumn; - i1.GeneratedColumn get faceAssetId => - columnsByName['face_asset_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get thumbnailPath => - columnsByName['thumbnail_path']! as i1.GeneratedColumn; - i1.GeneratedColumn get isFavorite => - columnsByName['is_favorite']! as i1.GeneratedColumn; - i1.GeneratedColumn get isHidden => - columnsByName['is_hidden']! as i1.GeneratedColumn; - i1.GeneratedColumn get color => - columnsByName['color']! as i1.GeneratedColumn; - i1.GeneratedColumn get birthDate => - columnsByName['birth_date']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get createdAt => columnsByName['created_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get ownerId => columnsByName['owner_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get name => columnsByName['name']! as i1.GeneratedColumn; + i1.GeneratedColumn get faceAssetId => columnsByName['face_asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get thumbnailPath => columnsByName['thumbnail_path']! as i1.GeneratedColumn; + i1.GeneratedColumn get isFavorite => columnsByName['is_favorite']! as i1.GeneratedColumn; + i1.GeneratedColumn get isHidden => columnsByName['is_hidden']! as i1.GeneratedColumn; + i1.GeneratedColumn get color => columnsByName['color']! as i1.GeneratedColumn; + i1.GeneratedColumn get birthDate => columnsByName['birth_date']! as i1.GeneratedColumn; } i1.GeneratedColumn _column_69(String aliasedName) => - i1.GeneratedColumn('face_asset_id', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('face_asset_id', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_70(String aliasedName) => - i1.GeneratedColumn('thumbnail_path', aliasedName, false, - type: i1.DriftSqlType.string); -i1.GeneratedColumn _column_71(String aliasedName) => - i1.GeneratedColumn('is_favorite', aliasedName, false, - type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("is_favorite" IN (0, 1))')); -i1.GeneratedColumn _column_72(String aliasedName) => - i1.GeneratedColumn('is_hidden', aliasedName, false, - type: i1.DriftSqlType.bool, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'CHECK ("is_hidden" IN (0, 1))')); + i1.GeneratedColumn('thumbnail_path', aliasedName, false, type: i1.DriftSqlType.string); +i1.GeneratedColumn _column_71(String aliasedName) => i1.GeneratedColumn('is_favorite', aliasedName, false, + type: i1.DriftSqlType.bool, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))')); +i1.GeneratedColumn _column_72(String aliasedName) => i1.GeneratedColumn('is_hidden', aliasedName, false, + type: i1.DriftSqlType.bool, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); i1.GeneratedColumn _column_73(String aliasedName) => - i1.GeneratedColumn('color', aliasedName, true, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('color', aliasedName, true, type: i1.DriftSqlType.string); i1.GeneratedColumn _column_74(String aliasedName) => - i1.GeneratedColumn('birth_date', aliasedName, true, - type: i1.DriftSqlType.dateTime); + i1.GeneratedColumn('birth_date', aliasedName, true, type: i1.DriftSqlType.dateTime); final class Schema3 extends i0.VersionedSchema { Schema3({required super.database}) : super(version: 3); @@ -1036,13 +836,12 @@ final class Schema3 extends i0.VersionedSchema { attachedDatabase: database, ), alias: null); - final i1.Index idxLocalAssetChecksum = i1.Index('idx_local_asset_checksum', - 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); - final i1.Index uQRemoteAssetOwnerChecksum = i1.Index( - 'UQ_remote_asset_owner_checksum', + final i1.Index idxLocalAssetChecksum = + i1.Index('idx_local_asset_checksum', 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); + final i1.Index uQRemoteAssetOwnerChecksum = i1.Index('UQ_remote_asset_owner_checksum', 'CREATE UNIQUE INDEX UQ_remote_asset_owner_checksum ON remote_asset_entity (checksum, owner_id)'); - final i1.Index idxRemoteAssetChecksum = i1.Index('idx_remote_asset_checksum', - 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); + final i1.Index idxRemoteAssetChecksum = + i1.Index('idx_remote_asset_checksum', 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); late final Shape4 userMetadataEntity = Shape4( source: i0.VersionedTable( entityName: 'user_metadata_entity', @@ -1264,8 +1063,7 @@ final class Schema3 extends i0.VersionedSchema { } i1.GeneratedColumn _column_75(String aliasedName) => - i1.GeneratedColumn('primary_asset_id', aliasedName, false, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('primary_asset_id', aliasedName, false, type: i1.DriftSqlType.string); final class Schema4 extends i0.VersionedSchema { Schema4({required super.database}) : super(version: 4); @@ -1418,13 +1216,12 @@ final class Schema4 extends i0.VersionedSchema { attachedDatabase: database, ), alias: null); - final i1.Index idxLocalAssetChecksum = i1.Index('idx_local_asset_checksum', - 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); - final i1.Index uQRemoteAssetOwnerChecksum = i1.Index( - 'UQ_remote_asset_owner_checksum', + final i1.Index idxLocalAssetChecksum = + i1.Index('idx_local_asset_checksum', 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); + final i1.Index uQRemoteAssetOwnerChecksum = i1.Index('UQ_remote_asset_owner_checksum', 'CREATE UNIQUE INDEX UQ_remote_asset_owner_checksum ON remote_asset_entity (checksum, owner_id)'); - final i1.Index idxRemoteAssetChecksum = i1.Index('idx_remote_asset_checksum', - 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); + final i1.Index idxRemoteAssetChecksum = + i1.Index('idx_remote_asset_checksum', 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); late final Shape4 userMetadataEntity = Shape4( source: i0.VersionedTable( entityName: 'user_metadata_entity', @@ -1635,78 +1432,49 @@ final class Schema4 extends i0.VersionedSchema { class Shape14 extends i0.VersionedTable { Shape14({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get createdAt => - columnsByName['created_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get updatedAt => - columnsByName['updated_at']! as i1.GeneratedColumn; - i1.GeneratedColumn get ownerId => - columnsByName['owner_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get name => - columnsByName['name']! as i1.GeneratedColumn; - i1.GeneratedColumn get faceAssetId => - columnsByName['face_asset_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get isFavorite => - columnsByName['is_favorite']! as i1.GeneratedColumn; - i1.GeneratedColumn get isHidden => - columnsByName['is_hidden']! as i1.GeneratedColumn; - i1.GeneratedColumn get color => - columnsByName['color']! as i1.GeneratedColumn; - i1.GeneratedColumn get birthDate => - columnsByName['birth_date']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get createdAt => columnsByName['created_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get updatedAt => columnsByName['updated_at']! as i1.GeneratedColumn; + i1.GeneratedColumn get ownerId => columnsByName['owner_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get name => columnsByName['name']! as i1.GeneratedColumn; + i1.GeneratedColumn get faceAssetId => columnsByName['face_asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get isFavorite => columnsByName['is_favorite']! as i1.GeneratedColumn; + i1.GeneratedColumn get isHidden => columnsByName['is_hidden']! as i1.GeneratedColumn; + i1.GeneratedColumn get color => columnsByName['color']! as i1.GeneratedColumn; + i1.GeneratedColumn get birthDate => columnsByName['birth_date']! as i1.GeneratedColumn; } class Shape15 extends i0.VersionedTable { Shape15({required super.source, required super.alias}) : super.aliased(); - i1.GeneratedColumn get id => - columnsByName['id']! as i1.GeneratedColumn; - i1.GeneratedColumn get assetId => - columnsByName['asset_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get personId => - columnsByName['person_id']! as i1.GeneratedColumn; - i1.GeneratedColumn get imageWidth => - columnsByName['image_width']! as i1.GeneratedColumn; - i1.GeneratedColumn get imageHeight => - columnsByName['image_height']! as i1.GeneratedColumn; - i1.GeneratedColumn get boundingBoxX1 => - columnsByName['bounding_box_x1']! as i1.GeneratedColumn; - i1.GeneratedColumn get boundingBoxY1 => - columnsByName['bounding_box_y1']! as i1.GeneratedColumn; - i1.GeneratedColumn get boundingBoxX2 => - columnsByName['bounding_box_x2']! as i1.GeneratedColumn; - i1.GeneratedColumn get boundingBoxY2 => - columnsByName['bounding_box_y2']! as i1.GeneratedColumn; - i1.GeneratedColumn get sourceType => - columnsByName['source_type']! as i1.GeneratedColumn; + i1.GeneratedColumn get id => columnsByName['id']! as i1.GeneratedColumn; + i1.GeneratedColumn get assetId => columnsByName['asset_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get personId => columnsByName['person_id']! as i1.GeneratedColumn; + i1.GeneratedColumn get imageWidth => columnsByName['image_width']! as i1.GeneratedColumn; + i1.GeneratedColumn get imageHeight => columnsByName['image_height']! as i1.GeneratedColumn; + i1.GeneratedColumn get boundingBoxX1 => columnsByName['bounding_box_x1']! as i1.GeneratedColumn; + i1.GeneratedColumn get boundingBoxY1 => columnsByName['bounding_box_y1']! as i1.GeneratedColumn; + i1.GeneratedColumn get boundingBoxX2 => columnsByName['bounding_box_x2']! as i1.GeneratedColumn; + i1.GeneratedColumn get boundingBoxY2 => columnsByName['bounding_box_y2']! as i1.GeneratedColumn; + i1.GeneratedColumn get sourceType => columnsByName['source_type']! as i1.GeneratedColumn; } -i1.GeneratedColumn _column_76(String aliasedName) => - i1.GeneratedColumn('person_id', aliasedName, true, - type: i1.DriftSqlType.string, - defaultConstraints: i1.GeneratedColumn.constraintIsAlways( - 'REFERENCES person_entity (id) ON DELETE SET NULL')); +i1.GeneratedColumn _column_76(String aliasedName) => i1.GeneratedColumn('person_id', aliasedName, true, + type: i1.DriftSqlType.string, + defaultConstraints: i1.GeneratedColumn.constraintIsAlways('REFERENCES person_entity (id) ON DELETE SET NULL')); i1.GeneratedColumn _column_77(String aliasedName) => - i1.GeneratedColumn('image_width', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('image_width', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_78(String aliasedName) => - i1.GeneratedColumn('image_height', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('image_height', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_79(String aliasedName) => - i1.GeneratedColumn('bounding_box_x1', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('bounding_box_x1', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_80(String aliasedName) => - i1.GeneratedColumn('bounding_box_y1', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('bounding_box_y1', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_81(String aliasedName) => - i1.GeneratedColumn('bounding_box_x2', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('bounding_box_x2', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_82(String aliasedName) => - i1.GeneratedColumn('bounding_box_y2', aliasedName, false, - type: i1.DriftSqlType.int); + i1.GeneratedColumn('bounding_box_y2', aliasedName, false, type: i1.DriftSqlType.int); i1.GeneratedColumn _column_83(String aliasedName) => - i1.GeneratedColumn('source_type', aliasedName, false, - type: i1.DriftSqlType.string); + i1.GeneratedColumn('source_type', aliasedName, false, type: i1.DriftSqlType.string); i0.MigrationStepWithVersion migrationSteps({ required Future Function(i1.Migrator m, Schema2 schema) from1To2, required Future Function(i1.Migrator m, Schema3 schema) from2To3, diff --git a/mobile/lib/infrastructure/repositories/device_asset.repository.dart b/mobile/lib/infrastructure/repositories/device_asset.repository.dart index 4e72d4a7f6..73ee148ab3 100644 --- a/mobile/lib/infrastructure/repositories/device_asset.repository.dart +++ b/mobile/lib/infrastructure/repositories/device_asset.repository.dart @@ -24,8 +24,7 @@ class IsarDeviceAssetRepository extends IsarDatabaseRepository { Future updateAll(List assetHash) { return transaction(() async { - await _db.deviceAssetEntitys - .putAll(assetHash.map(DeviceAssetEntity.fromDto).toList()); + await _db.deviceAssetEntitys.putAll(assetHash.map(DeviceAssetEntity.fromDto).toList()); return true; }); } diff --git a/mobile/lib/infrastructure/repositories/exif.repository.dart b/mobile/lib/infrastructure/repositories/exif.repository.dart index 0012e329ca..726e51b77d 100644 --- a/mobile/lib/infrastructure/repositories/exif.repository.dart +++ b/mobile/lib/infrastructure/repositories/exif.repository.dart @@ -1,6 +1,5 @@ import 'package:immich_mobile/domain/models/exif.model.dart'; -import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' as entity; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:isar/isar.dart'; diff --git a/mobile/lib/infrastructure/repositories/local_album.repository.dart b/mobile/lib/infrastructure/repositories/local_album.repository.dart index 16c363b839..c1e5724b4c 100644 --- a/mobile/lib/infrastructure/repositories/local_album.repository.dart +++ b/mobile/lib/infrastructure/repositories/local_album.repository.dart @@ -8,13 +8,7 @@ import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:immich_mobile/utils/database.utils.dart'; import 'package:platform/platform.dart'; -enum SortLocalAlbumsBy { - id, - backupSelection, - isIosSharedAlbum, - name, - assetCount -} +enum SortLocalAlbumsBy { id, backupSelection, isIosSharedAlbum, name, assetCount } class DriftLocalAlbumRepository extends DriftDatabaseRepository { final Drift _db; @@ -43,12 +37,9 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { orderings.add( switch (sort) { SortLocalAlbumsBy.id => OrderingTerm.asc(_db.localAlbumEntity.id), - SortLocalAlbumsBy.backupSelection => - OrderingTerm.asc(_db.localAlbumEntity.backupSelection), - SortLocalAlbumsBy.isIosSharedAlbum => - OrderingTerm.asc(_db.localAlbumEntity.isIosSharedAlbum), - SortLocalAlbumsBy.name => - OrderingTerm.asc(_db.localAlbumEntity.name), + SortLocalAlbumsBy.backupSelection => OrderingTerm.asc(_db.localAlbumEntity.backupSelection), + SortLocalAlbumsBy.isIosSharedAlbum => OrderingTerm.asc(_db.localAlbumEntity.isIosSharedAlbum), + SortLocalAlbumsBy.name => OrderingTerm.asc(_db.localAlbumEntity.name), SortLocalAlbumsBy.assetCount => OrderingTerm.desc(assetCount), }, ); @@ -58,9 +49,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { return query .map( - (row) => row - .readTable(_db.localAlbumEntity) - .toDto(assetCount: row.read(assetCount) ?? 0), + (row) => row.readTable(_db.localAlbumEntity).toDto(assetCount: row.read(assetCount) ?? 0), ) .get(); } @@ -69,15 +58,11 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { // Remove all assets that are only in this particular album // We cannot remove all assets in the album because they might be in other albums in iOS // That is not the case on Android since asset <-> album has one:one mapping - final assetsToDelete = _platform.isIOS - ? await _getUniqueAssetsInAlbum(albumId) - : await getAssetIds(albumId); + final assetsToDelete = _platform.isIOS ? await _getUniqueAssetsInAlbum(albumId) : await getAssetIds(albumId); await _deleteAssets(assetsToDelete); // All the other assets that are still associated will be unlinked automatically on-cascade - await _db.managers.localAlbumEntity - .filter((a) => a.id.equals(albumId)) - .delete(); + await _db.managers.localAlbumEntity.filter((a) => a.id.equals(albumId)).delete(); }); Future syncDeletes( @@ -95,13 +80,11 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { ..join([ innerJoin( _db.localAlbumEntity, - _db.localAlbumAssetEntity.albumId - .equalsExp(_db.localAlbumEntity.id), + _db.localAlbumAssetEntity.albumId.equalsExp(_db.localAlbumEntity.id), ), ]); subQuery.where( - _db.localAlbumEntity.id.equals(albumId) & - _db.localAlbumAssetEntity.assetId.isNotIn(assetIdsToKeep), + _db.localAlbumEntity.id.equals(albumId) & _db.localAlbumAssetEntity.assetId.isNotIn(assetIdsToKeep), ); return localAsset.id.isInQuery(subQuery); }); @@ -122,8 +105,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { ); return _db.transaction(() async { - await _db.localAlbumEntity - .insertOne(companion, onConflict: DoUpdate((_) => companion)); + await _db.localAlbumEntity.insertOne(companion, onConflict: DoUpdate((_) => companion)); if (toUpsert.isNotEmpty) { await _upsertAssets(toUpsert); await _db.localAlbumAssetEntity.insertAll( @@ -142,9 +124,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { Future updateAll(Iterable albums) { return _db.transaction(() async { - await _db.localAlbumEntity - .update() - .write(const LocalAlbumEntityCompanion(marker_: Value(true))); + await _db.localAlbumEntity.update().write(const LocalAlbumEntityCompanion(marker_: Value(true))); await _db.batch((batch) { for (final album in albums) { @@ -184,8 +164,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { ..join([ innerJoin( _db.localAlbumEntity, - _db.localAlbumAssetEntity.albumId - .equalsExp(_db.localAlbumEntity.id), + _db.localAlbumAssetEntity.albumId.equalsExp(_db.localAlbumEntity.id), ), ]); subQuery.where(_db.localAlbumEntity.marker_.isNotNull()); @@ -209,18 +188,14 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { ) ..where(_db.localAlbumAssetEntity.albumId.equals(albumId)) ..orderBy([OrderingTerm.asc(_db.localAssetEntity.id)]); - return query - .map((row) => row.readTable(_db.localAssetEntity).toDto()) - .get(); + return query.map((row) => row.readTable(_db.localAssetEntity).toDto()).get(); } Future> getAssetIds(String albumId) { final query = _db.localAlbumAssetEntity.selectOnly() ..addColumns([_db.localAlbumAssetEntity.assetId]) ..where(_db.localAlbumAssetEntity.albumId.equals(albumId)); - return query - .map((row) => row.read(_db.localAlbumAssetEntity.assetId)!) - .get(); + return query.map((row) => row.read(_db.localAlbumAssetEntity.assetId)!).get(); } Future processDelta({ @@ -240,9 +215,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { assetAlbums.cast>().forEach((assetId, albumIds) { batch.deleteWhere( _db.localAlbumAssetEntity, - (f) => - f.albumId.isNotIn(albumIds.cast().nonNulls) & - f.assetId.equals(assetId), + (f) => f.albumId.isNotIn(albumIds.cast().nonNulls) & f.assetId.equals(assetId), ); }); }); @@ -273,14 +246,11 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { ], ) ..where( - _db.localAlbumAssetEntity.albumId.equals(albumId) & - _db.localAssetEntity.checksum.isNull(), + _db.localAlbumAssetEntity.albumId.equals(albumId) & _db.localAssetEntity.checksum.isNull(), ) ..orderBy([OrderingTerm.asc(_db.localAssetEntity.id)]); - return query - .map((row) => row.readTable(_db.localAssetEntity).toDto()) - .get(); + return query.map((row) => row.readTable(_db.localAssetEntity).toDto()).get(); } Future _upsertAssets(Iterable localAssets) { @@ -364,8 +334,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { ..addColumns([assetId]) ..groupBy( [assetId], - having: _db.localAlbumAssetEntity.albumId.count().equals(1) & - _db.localAlbumAssetEntity.albumId.equals(albumId), + having: _db.localAlbumAssetEntity.albumId.count().equals(1) & _db.localAlbumAssetEntity.albumId.equals(albumId), ); return query.map((row) => row.read(assetId)!).get(); @@ -392,9 +361,7 @@ class DriftLocalAlbumRepository extends DriftDatabaseRepository { ..orderBy([OrderingTerm.asc(_db.localAssetEntity.id)]) ..limit(1); - final results = await query - .map((row) => row.readTable(_db.localAssetEntity).toDto()) - .get(); + final results = await query.map((row) => row.readTable(_db.localAssetEntity).toDto()).get(); return results.isNotEmpty ? results.first : null; } diff --git a/mobile/lib/infrastructure/repositories/local_asset.repository.dart b/mobile/lib/infrastructure/repositories/local_asset.repository.dart index bf1ec37615..17521e1cba 100644 --- a/mobile/lib/infrastructure/repositories/local_asset.repository.dart +++ b/mobile/lib/infrastructure/repositories/local_asset.repository.dart @@ -10,9 +10,7 @@ class DriftLocalAssetRepository extends DriftDatabaseRepository { const DriftLocalAssetRepository(this._db) : super(_db); Stream watchAsset(String id) { - final query = _db.localAssetEntity - .select() - .addColumns([_db.remoteAssetEntity.id]).join([ + final query = _db.localAssetEntity.select().addColumns([_db.remoteAssetEntity.id]).join([ leftOuterJoin( _db.remoteAssetEntity, _db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum), @@ -58,8 +56,7 @@ class DriftLocalAssetRepository extends DriftDatabaseRepository { } Future getById(String id) { - final query = _db.localAssetEntity.select() - ..where((lae) => lae.id.equals(id)); + final query = _db.localAssetEntity.select()..where((lae) => lae.id.equals(id)); return query.map((row) => row.toDto()).getSingleOrNull(); } @@ -69,8 +66,6 @@ class DriftLocalAssetRepository extends DriftDatabaseRepository { } Future getHashedCount() { - return _db.managers.localAssetEntity - .filter((e) => e.checksum.isNull().not()) - .count(); + return _db.managers.localAssetEntity.filter((e) => e.checksum.isNull().not()).count(); } } diff --git a/mobile/lib/infrastructure/repositories/log.repository.dart b/mobile/lib/infrastructure/repositories/log.repository.dart index 717900910a..7a909d90cb 100644 --- a/mobile/lib/infrastructure/repositories/log.repository.dart +++ b/mobile/lib/infrastructure/repositories/log.repository.dart @@ -13,8 +13,7 @@ class IsarLogRepository extends IsarDatabaseRepository { } Future> getAll() async { - final logs = - await _db.loggerMessages.where().sortByCreatedAtDesc().findAll(); + final logs = await _db.loggerMessages.where().sortByCreatedAtDesc().findAll(); return logs.map((l) => l.toDto()).toList(); } @@ -28,8 +27,7 @@ class IsarLogRepository extends IsarDatabaseRepository { Future insertAll(Iterable logs) async { await transaction(() async { - final logEntities = - logs.map((log) => LoggerMessage.fromDto(log)).toList(); + final logEntities = logs.map((log) => LoggerMessage.fromDto(log)).toList(); await _db.loggerMessages.putAll(logEntities); }); return true; diff --git a/mobile/lib/infrastructure/repositories/memory.repository.dart b/mobile/lib/infrastructure/repositories/memory.repository.dart index 8582290c61..b964557952 100644 --- a/mobile/lib/infrastructure/repositories/memory.repository.dart +++ b/mobile/lib/infrastructure/repositories/memory.repository.dart @@ -22,8 +22,7 @@ class DriftMemoryRepository extends DriftDatabaseRepository { _db.remoteAssetEntity, _db.remoteAssetEntity.id.equalsExp(_db.memoryAssetEntity.assetId) & _db.remoteAssetEntity.deletedAt.isNull() & - _db.remoteAssetEntity.visibility - .equalsValue(AssetVisibility.timeline), + _db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline), ), ]) ..where(_db.memoryEntity.ownerId.equals(ownerId)) diff --git a/mobile/lib/infrastructure/repositories/partner.repository.dart b/mobile/lib/infrastructure/repositories/partner.repository.dart index b3b057b035..9e78b1b65a 100644 --- a/mobile/lib/infrastructure/repositories/partner.repository.dart +++ b/mobile/lib/infrastructure/repositories/partner.repository.dart @@ -32,8 +32,7 @@ class DriftPartnerRepository extends DriftDatabaseRepository { // Get users who we can share our library with Future> getAvailablePartners(String currentUserId) { - final query = _db.select(_db.userEntity) - ..where((row) => row.id.equals(currentUserId).not()); + final query = _db.select(_db.userEntity)..where((row) => row.id.equals(currentUserId).not()); return query.map((user) { return PartnerUserDto( @@ -95,20 +94,15 @@ class DriftPartnerRepository extends DriftDatabaseRepository { Future> getAllPartnerIds(String userId) async { // Get users who are sharing with me (sharedWithId = userId) - final sharingWithMeQuery = _db.select(_db.partnerEntity) - ..where((tbl) => tbl.sharedWithId.equals(userId)); - final sharingWithMe = - await sharingWithMeQuery.map((row) => row.sharedById).get(); + final sharingWithMeQuery = _db.select(_db.partnerEntity)..where((tbl) => tbl.sharedWithId.equals(userId)); + final sharingWithMe = await sharingWithMeQuery.map((row) => row.sharedById).get(); // Get users who I am sharing with (sharedById = userId) - final sharingWithThemQuery = _db.select(_db.partnerEntity) - ..where((tbl) => tbl.sharedById.equals(userId)); - final sharingWithThem = - await sharingWithThemQuery.map((row) => row.sharedWithId).get(); + final sharingWithThemQuery = _db.select(_db.partnerEntity)..where((tbl) => tbl.sharedById.equals(userId)); + final sharingWithThem = await sharingWithThemQuery.map((row) => row.sharedWithId).get(); // Combine both lists and remove duplicates - final allPartnerIds = - {...sharingWithMe, ...sharingWithThem}.toList(); + final allPartnerIds = {...sharingWithMe, ...sharingWithThem}.toList(); return allPartnerIds; } @@ -120,8 +114,7 @@ class DriftPartnerRepository extends DriftDatabaseRepository { ), ]) ..where( - _db.partnerEntity.sharedById.equals(partnerId) & - _db.partnerEntity.sharedWithId.equals(userId), + _db.partnerEntity.sharedById.equals(partnerId) & _db.partnerEntity.sharedWithId.equals(userId), ); return query.map((row) { diff --git a/mobile/lib/infrastructure/repositories/person.repository.dart b/mobile/lib/infrastructure/repositories/person.repository.dart index fa336c5480..045fab4942 100644 --- a/mobile/lib/infrastructure/repositories/person.repository.dart +++ b/mobile/lib/infrastructure/repositories/person.repository.dart @@ -8,8 +8,7 @@ class DriftPersonRepository extends DriftDatabaseRepository { const DriftPersonRepository(this._db) : super(_db); Future> getAll(String userId) { - final query = _db.personEntity.select() - ..where((e) => e.ownerId.equals(userId)); + final query = _db.personEntity.select()..where((e) => e.ownerId.equals(userId)); return query.map((person) { return person.toDto(); diff --git a/mobile/lib/infrastructure/repositories/remote_album.repository.dart b/mobile/lib/infrastructure/repositories/remote_album.repository.dart index ca8dc2cfd5..2d7bbe2370 100644 --- a/mobile/lib/infrastructure/repositories/remote_album.repository.dart +++ b/mobile/lib/infrastructure/repositories/remote_album.repository.dart @@ -50,8 +50,7 @@ class DriftRemoteAlbumRepository extends DriftDatabaseRepository { orderings.add( switch (sort) { SortRemoteAlbumsBy.id => OrderingTerm.asc(_db.remoteAlbumEntity.id), - SortRemoteAlbumsBy.updatedAt => - OrderingTerm.desc(_db.remoteAlbumEntity.updatedAt), + SortRemoteAlbumsBy.updatedAt => OrderingTerm.desc(_db.remoteAlbumEntity.updatedAt), }, ); } @@ -137,8 +136,7 @@ class DriftRemoteAlbumRepository extends DriftDatabaseRepository { ..join([ innerJoin( _db.remoteAssetEntity, - _db.remoteAssetEntity.id - .equalsExp(_db.remoteAlbumAssetEntity.assetId), + _db.remoteAssetEntity.id.equalsExp(_db.remoteAlbumAssetEntity.assetId), ), ]); @@ -150,9 +148,8 @@ class DriftRemoteAlbumRepository extends DriftDatabaseRepository { } Future> getSharedUsers(String albumId) async { - final albumUserRows = await (_db.select(_db.remoteAlbumUserEntity) - ..where((row) => row.albumId.equals(albumId))) - .get(); + final albumUserRows = + await (_db.select(_db.remoteAlbumUserEntity)..where((row) => row.albumId.equals(albumId))).get(); if (albumUserRows.isEmpty) { return []; @@ -166,9 +163,7 @@ class DriftRemoteAlbumRepository extends DriftDatabaseRepository { id: user.id, email: user.email, name: user.name, - profileImagePath: user.profileImagePath?.isEmpty == true - ? null - : user.profileImagePath, + profileImagePath: user.profileImagePath?.isEmpty == true ? null : user.profileImagePath, isAdmin: user.isAdmin, updatedAt: user.updatedAt, quotaSizeInBytes: user.quotaSizeInBytes ?? 0, @@ -191,9 +186,7 @@ class DriftRemoteAlbumRepository extends DriftDatabaseRepository { ]) ..where(_db.remoteAlbumAssetEntity.albumId.equals(albumId)); - return query - .map((row) => row.readTable(_db.remoteAssetEntity).toDto()) - .get(); + return query.map((row) => row.readTable(_db.remoteAssetEntity).toDto()).get(); } Future addAssets(String albumId, List assetIds) async { diff --git a/mobile/lib/infrastructure/repositories/remote_asset.repository.dart b/mobile/lib/infrastructure/repositories/remote_asset.repository.dart index c3b15efb83..af1249dc03 100644 --- a/mobile/lib/infrastructure/repositories/remote_asset.repository.dart +++ b/mobile/lib/infrastructure/repositories/remote_asset.repository.dart @@ -2,8 +2,7 @@ import 'package:drift/drift.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/domain/models/exif.model.dart'; import 'package:immich_mobile/domain/models/stack.model.dart'; -import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' - hide ExifInfo; +import 'package:immich_mobile/infrastructure/entities/exif.entity.dart' hide ExifInfo; import 'package:immich_mobile/infrastructure/entities/exif.entity.drift.dart'; import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.dart'; import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.dart'; @@ -22,8 +21,7 @@ class RemoteAssetRepository extends DriftDatabaseRepository { (row) => _db.remoteAssetEntity.ownerId.equals(userId) & _db.remoteAssetEntity.deletedAt.isNull() & - _db.remoteAssetEntity.visibility - .equalsValue(AssetVisibility.timeline), + _db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline), ) ..orderBy([(row) => OrderingTerm.desc(row.createdAt)]) ..limit(10); @@ -57,8 +55,7 @@ class RemoteAssetRepository extends DriftDatabaseRepository { final query = _db.remoteAssetEntity.select() ..where( - (row) => - row.stackId.equals(asset.stackId!) & row.id.equals(asset.id).not(), + (row) => row.stackId.equals(asset.stackId!) & row.id.equals(asset.id).not(), ) ..orderBy([(row) => OrderingTerm.desc(row.createdAt)]); @@ -74,16 +71,14 @@ class RemoteAssetRepository extends DriftDatabaseRepository { Future> getPlaces() { final asset = Subquery( - _db.remoteAssetEntity.select() - ..orderBy([(row) => OrderingTerm.desc(row.createdAt)]), + _db.remoteAssetEntity.select()..orderBy([(row) => OrderingTerm.desc(row.createdAt)]), "asset", ); final query = asset.selectOnly().join([ innerJoin( _db.remoteExifEntity, - _db.remoteExifEntity.assetId - .equalsExp(asset.ref(_db.remoteAssetEntity.id)), + _db.remoteExifEntity.assetId.equalsExp(asset.ref(_db.remoteAssetEntity.id)), useColumns: false, ), ]) @@ -94,9 +89,7 @@ class RemoteAssetRepository extends DriftDatabaseRepository { ..where( _db.remoteExifEntity.city.isNotNull() & asset.ref(_db.remoteAssetEntity.deletedAt).isNull() & - asset - .ref(_db.remoteAssetEntity.visibility) - .equals(AssetVisibility.timeline.index), + asset.ref(_db.remoteAssetEntity.visibility).equals(AssetVisibility.timeline.index), ) ..groupBy([_db.remoteExifEntity.city]) ..orderBy([OrderingTerm.asc(_db.remoteExifEntity.city)]); diff --git a/mobile/lib/infrastructure/repositories/search_api.repository.dart b/mobile/lib/infrastructure/repositories/search_api.repository.dart index 55604b885c..441219a02f 100644 --- a/mobile/lib/infrastructure/repositories/search_api.repository.dart +++ b/mobile/lib/infrastructure/repositories/search_api.repository.dart @@ -1,5 +1,4 @@ -import 'package:immich_mobile/domain/models/asset/base_asset.model.dart' - hide AssetVisibility; +import 'package:immich_mobile/domain/models/asset/base_asset.model.dart' hide AssetVisibility; import 'package:immich_mobile/infrastructure/repositories/api.repository.dart'; import 'package:immich_mobile/models/search/search_filter.model.dart'; import 'package:openapi/api.dart'; @@ -28,9 +27,7 @@ class SearchApiRepository extends ApiRepository { model: filter.camera.model, takenAfter: filter.date.takenAfter, takenBefore: filter.date.takenBefore, - visibility: filter.display.isArchive - ? AssetVisibility.archive - : AssetVisibility.timeline, + visibility: filter.display.isArchive ? AssetVisibility.archive : AssetVisibility.timeline, isFavorite: filter.display.isFavorite ? true : null, isNotInAlbum: filter.display.isNotInAlbum ? true : null, personIds: filter.people.map((e) => e.id).toList(), @@ -43,23 +40,16 @@ class SearchApiRepository extends ApiRepository { return _api.searchAssets( MetadataSearchDto( - originalFileName: filter.filename != null && filter.filename!.isNotEmpty - ? filter.filename - : null, + originalFileName: filter.filename != null && filter.filename!.isNotEmpty ? filter.filename : null, country: filter.location.country, - description: - filter.description != null && filter.description!.isNotEmpty - ? filter.description - : null, + description: filter.description != null && filter.description!.isNotEmpty ? filter.description : null, state: filter.location.state, city: filter.location.city, make: filter.camera.make, model: filter.camera.model, takenAfter: filter.date.takenAfter, takenBefore: filter.date.takenBefore, - visibility: filter.display.isArchive - ? AssetVisibility.archive - : AssetVisibility.timeline, + visibility: filter.display.isArchive ? AssetVisibility.archive : AssetVisibility.timeline, isFavorite: filter.display.isFavorite ? true : null, isNotInAlbum: filter.display.isNotInAlbum ? true : null, personIds: filter.people.map((e) => e.id).toList(), diff --git a/mobile/lib/infrastructure/repositories/stack.repository.dart b/mobile/lib/infrastructure/repositories/stack.repository.dart index 7f97f3d9ae..cdac5fe4ad 100644 --- a/mobile/lib/infrastructure/repositories/stack.repository.dart +++ b/mobile/lib/infrastructure/repositories/stack.repository.dart @@ -8,8 +8,7 @@ class DriftStackRepository extends DriftDatabaseRepository { const DriftStackRepository(this._db) : super(_db); Future> getAll(String userId) { - final query = _db.stackEntity.select() - ..where((e) => e.ownerId.equals(userId)); + final query = _db.stackEntity.select()..where((e) => e.ownerId.equals(userId)); return query.map((stack) { return stack.toDto(); diff --git a/mobile/lib/infrastructure/repositories/store.repository.dart b/mobile/lib/infrastructure/repositories/store.repository.dart index 400c8ccf7d..990c2ad65d 100644 --- a/mobile/lib/infrastructure/repositories/store.repository.dart +++ b/mobile/lib/infrastructure/repositories/store.repository.dart @@ -63,23 +63,17 @@ class IsarStoreRepository extends IsarDatabaseRepository { } Future> _toUpdateEvent(StoreValue entity) async { - final key = StoreKey.values.firstWhere((e) => e.id == entity.id) - as StoreKey; + final key = StoreKey.values.firstWhere((e) => e.id == entity.id) as StoreKey; final value = await _toValue(key, entity); return StoreDto(key, value); } - Future _toValue(StoreKey key, StoreValue entity) async => - switch (key.type) { + Future _toValue(StoreKey key, StoreValue entity) async => switch (key.type) { const (int) => entity.intValue, const (String) => entity.strValue, const (bool) => entity.intValue == 1, - const (DateTime) => entity.intValue == null - ? null - : DateTime.fromMillisecondsSinceEpoch(entity.intValue!), - const (UserDto) => entity.strValue == null - ? null - : await IsarUserRepository(_db).getByUserId(entity.strValue!), + const (DateTime) => entity.intValue == null ? null : DateTime.fromMillisecondsSinceEpoch(entity.intValue!), + const (UserDto) => entity.strValue == null ? null : await IsarUserRepository(_db).getByUserId(entity.strValue!), _ => null, } as T?; @@ -101,10 +95,7 @@ class IsarStoreRepository extends IsarDatabaseRepository { } Future>> getAll() async { - final entities = await _db.storeValues - .filter() - .anyOf(validStoreKeys, (query, id) => query.idEqualTo(id)) - .findAll(); + final entities = await _db.storeValues.filter().anyOf(validStoreKeys, (query, id) => query.idEqualTo(id)).findAll(); return Future.wait(entities.map((e) => _toUpdateEvent(e)).toList()); } } diff --git a/mobile/lib/infrastructure/repositories/sync_api.repository.dart b/mobile/lib/infrastructure/repositories/sync_api.repository.dart index e8be84effb..6727f19c64 100644 --- a/mobile/lib/infrastructure/repositories/sync_api.repository.dart +++ b/mobile/lib/infrastructure/repositories/sync_api.repository.dart @@ -112,8 +112,7 @@ class SyncApiRepository { client.close(); } stopwatch.stop(); - _logger - .info("Remote Sync completed in ${stopwatch.elapsed.inMilliseconds}ms"); + _logger.info("Remote Sync completed in ${stopwatch.elapsed.inMilliseconds}ms"); DLog.log("Remote Sync completed in ${stopwatch.elapsed.inMilliseconds}ms"); } diff --git a/mobile/lib/infrastructure/repositories/sync_stream.repository.dart b/mobile/lib/infrastructure/repositories/sync_stream.repository.dart index 1cca903566..067f840174 100644 --- a/mobile/lib/infrastructure/repositories/sync_stream.repository.dart +++ b/mobile/lib/infrastructure/repositories/sync_stream.repository.dart @@ -31,8 +31,7 @@ class SyncStreamRepository extends DriftDatabaseRepository { Future deleteUsersV1(Iterable data) async { try { - await _db.userEntity - .deleteWhere((row) => row.id.isIn(data.map((e) => e.userId))); + await _db.userEntity.deleteWhere((row) => row.id.isIn(data.map((e) => e.userId))); } catch (error, stack) { _logger.severe('Error: SyncUserDeleteV1', error, stack); rethrow; @@ -84,8 +83,7 @@ class SyncStreamRepository extends DriftDatabaseRepository { try { await _db.batch((batch) { for (final partner in data) { - final companion = - PartnerEntityCompanion(inTimeline: Value(partner.inTimeline)); + final companion = PartnerEntityCompanion(inTimeline: Value(partner.inTimeline)); batch.insert( _db.partnerEntity, @@ -129,8 +127,7 @@ class SyncStreamRepository extends DriftDatabaseRepository { type: Value(asset.type.toAssetType()), createdAt: Value.absentIfNull(asset.fileCreatedAt), updatedAt: Value.absentIfNull(asset.fileModifiedAt), - durationInSeconds: - Value(asset.duration?.toDuration()?.inSeconds ?? 0), + durationInSeconds: Value(asset.duration?.toDuration()?.inSeconds ?? 0), checksum: Value(asset.checksum), isFavorite: Value(asset.isFavorite), ownerId: Value(asset.ownerId), @@ -662,9 +659,7 @@ extension on String { extension on String { Duration? toDuration() { try { - final parts = split(':') - .map((e) => double.parse(e).toInt()) - .toList(growable: false); + final parts = split(':').map((e) => double.parse(e).toInt()).toList(growable: false); return Duration(hours: parts[0], minutes: parts[1], seconds: parts[2]); } catch (_) { diff --git a/mobile/lib/infrastructure/repositories/timeline.repository.dart b/mobile/lib/infrastructure/repositories/timeline.repository.dart index b1fc540bd8..772fb74f84 100644 --- a/mobile/lib/infrastructure/repositories/timeline.repository.dart +++ b/mobile/lib/infrastructure/repositories/timeline.repository.dart @@ -22,8 +22,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository { final query = _db.partnerEntity.selectOnly() ..addColumns([_db.partnerEntity.sharedById]) ..where( - _db.partnerEntity.inTimeline.equals(true) & - _db.partnerEntity.sharedWithId.equals(userId), + _db.partnerEntity.inTimeline.equals(true) & _db.partnerEntity.sharedWithId.equals(userId), ); return query @@ -173,8 +172,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository { ), leftOuterJoin( _db.remoteAssetEntity, - _db.localAssetEntity.checksum - .equalsExp(_db.remoteAssetEntity.checksum), + _db.localAssetEntity.checksum.equalsExp(_db.remoteAssetEntity.checksum), useColumns: false, ), ], @@ -219,10 +217,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository { }); } - return (_db.remoteAlbumEntity.select() - ..where((row) => row.id.equals(albumId))) - .watch() - .switchMap((albums) { + return (_db.remoteAlbumEntity.select()..where((row) => row.id.equals(albumId))).watch().switchMap((albums) { if (albums.isEmpty) { return Stream.value([]); } @@ -237,14 +232,12 @@ class DriftTimelineRepository extends DriftDatabaseRepository { ..join([ innerJoin( _db.remoteAlbumAssetEntity, - _db.remoteAlbumAssetEntity.assetId - .equalsExp(_db.remoteAssetEntity.id), + _db.remoteAlbumAssetEntity.assetId.equalsExp(_db.remoteAssetEntity.id), useColumns: false, ), ]) ..where( - _db.remoteAssetEntity.deletedAt.isNull() & - _db.remoteAlbumAssetEntity.albumId.equals(albumId), + _db.remoteAssetEntity.deletedAt.isNull() & _db.remoteAlbumAssetEntity.albumId.equals(albumId), ) ..groupBy([dateExp]); @@ -270,9 +263,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository { required int offset, required int count, }) async { - final albumData = await (_db.remoteAlbumEntity.select() - ..where((row) => row.id.equals(albumId))) - .getSingleOrNull(); + final albumData = await (_db.remoteAlbumEntity.select()..where((row) => row.id.equals(albumId))).getSingleOrNull(); // If album doesn't exist (was deleted), return empty list if (albumData == null) { @@ -285,14 +276,12 @@ class DriftTimelineRepository extends DriftDatabaseRepository { [ innerJoin( _db.remoteAlbumAssetEntity, - _db.remoteAlbumAssetEntity.assetId - .equalsExp(_db.remoteAssetEntity.id), + _db.remoteAlbumAssetEntity.assetId.equalsExp(_db.remoteAssetEntity.id), useColumns: false, ), ], )..where( - _db.remoteAssetEntity.deletedAt.isNull() & - _db.remoteAlbumAssetEntity.albumId.equals(albumId), + _db.remoteAssetEntity.deletedAt.isNull() & _db.remoteAlbumAssetEntity.albumId.equals(albumId), ); if (isAscending) { @@ -303,62 +292,44 @@ class DriftTimelineRepository extends DriftDatabaseRepository { query.limit(count, offset: offset); - return query - .map((row) => row.readTable(_db.remoteAssetEntity).toDto()) - .get(); + return query.map((row) => row.readTable(_db.remoteAssetEntity).toDto()).get(); } TimelineQuery fromAssets(List assets) => ( bucketSource: () => Stream.value(_generateBuckets(assets.length)), - assetSource: (offset, count) => - Future.value(assets.skip(offset).take(count).toList()), + assetSource: (offset, count) => Future.value(assets.skip(offset).take(count).toList()), ); - TimelineQuery remote(String ownerId, GroupAssetsBy groupBy) => - _remoteQueryBuilder( + TimelineQuery remote(String ownerId, GroupAssetsBy groupBy) => _remoteQueryBuilder( filter: (row) => - row.deletedAt.isNull() & - row.visibility.equalsValue(AssetVisibility.timeline) & - row.ownerId.equals(ownerId), + row.deletedAt.isNull() & row.visibility.equalsValue(AssetVisibility.timeline) & row.ownerId.equals(ownerId), groupBy: groupBy, ); - TimelineQuery favorite(String userId, GroupAssetsBy groupBy) => - _remoteQueryBuilder( - filter: (row) => - row.deletedAt.isNull() & - row.isFavorite.equals(true) & - row.ownerId.equals(userId), + TimelineQuery favorite(String userId, GroupAssetsBy groupBy) => _remoteQueryBuilder( + filter: (row) => row.deletedAt.isNull() & row.isFavorite.equals(true) & row.ownerId.equals(userId), groupBy: groupBy, ); - TimelineQuery trash(String userId, GroupAssetsBy groupBy) => - _remoteQueryBuilder( + TimelineQuery trash(String userId, GroupAssetsBy groupBy) => _remoteQueryBuilder( filter: (row) => row.deletedAt.isNotNull() & row.ownerId.equals(userId), groupBy: groupBy, joinLocal: true, ); - TimelineQuery archived(String userId, GroupAssetsBy groupBy) => - _remoteQueryBuilder( + TimelineQuery archived(String userId, GroupAssetsBy groupBy) => _remoteQueryBuilder( filter: (row) => - row.deletedAt.isNull() & - row.ownerId.equals(userId) & - row.visibility.equalsValue(AssetVisibility.archive), + row.deletedAt.isNull() & row.ownerId.equals(userId) & row.visibility.equalsValue(AssetVisibility.archive), groupBy: groupBy, ); - TimelineQuery locked(String userId, GroupAssetsBy groupBy) => - _remoteQueryBuilder( + TimelineQuery locked(String userId, GroupAssetsBy groupBy) => _remoteQueryBuilder( filter: (row) => - row.deletedAt.isNull() & - row.visibility.equalsValue(AssetVisibility.locked) & - row.ownerId.equals(userId), + row.deletedAt.isNull() & row.visibility.equalsValue(AssetVisibility.locked) & row.ownerId.equals(userId), groupBy: groupBy, ); - TimelineQuery video(String userId, GroupAssetsBy groupBy) => - _remoteQueryBuilder( + TimelineQuery video(String userId, GroupAssetsBy groupBy) => _remoteQueryBuilder( filter: (row) => row.deletedAt.isNull() & row.type.equalsValue(AssetType.video) & @@ -405,8 +376,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository { ..where( _db.remoteExifEntity.city.equals(place) & _db.remoteAssetEntity.deletedAt.isNull() & - _db.remoteAssetEntity.visibility - .equalsValue(AssetVisibility.timeline), + _db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline), ) ..groupBy([dateExp]) ..orderBy([OrderingTerm.desc(dateExp)]); @@ -434,15 +404,12 @@ class DriftTimelineRepository extends DriftDatabaseRepository { ) ..where( _db.remoteAssetEntity.deletedAt.isNull() & - _db.remoteAssetEntity.visibility - .equalsValue(AssetVisibility.timeline) & + _db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline) & _db.remoteExifEntity.city.equals(place), ) ..orderBy([OrderingTerm.desc(_db.remoteAssetEntity.createdAt)]) ..limit(count, offset: offset); - return query - .map((row) => row.readTable(_db.remoteAssetEntity).toDto()) - .get(); + return query.map((row) => row.readTable(_db.remoteAssetEntity).toDto()).get(); } TimelineQuery _remoteQueryBuilder({ @@ -496,8 +463,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository { final query = _db.remoteAssetEntity.select().join([ leftOuterJoin( _db.localAssetEntity, - _db.remoteAssetEntity.checksum - .equalsExp(_db.localAssetEntity.checksum), + _db.remoteAssetEntity.checksum.equalsExp(_db.localAssetEntity.checksum), useColumns: false, ), ]) diff --git a/mobile/lib/infrastructure/repositories/user.repository.dart b/mobile/lib/infrastructure/repositories/user.repository.dart index 4ccfccbdcc..2c6d721396 100644 --- a/mobile/lib/infrastructure/repositories/user.repository.dart +++ b/mobile/lib/infrastructure/repositories/user.repository.dart @@ -1,7 +1,6 @@ import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/domain/models/user.model.dart'; -import 'package:immich_mobile/infrastructure/entities/user.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:isar/isar.dart'; diff --git a/mobile/lib/infrastructure/repositories/user_api.repository.dart b/mobile/lib/infrastructure/repositories/user_api.repository.dart index e990b9d8d1..0ee3deb4b1 100644 --- a/mobile/lib/infrastructure/repositories/user_api.repository.dart +++ b/mobile/lib/infrastructure/repositories/user_api.repository.dart @@ -11,8 +11,7 @@ class UserApiRepository extends ApiRepository { const UserApiRepository(this._api); Future getMyUser() async { - final (adminDto, preferenceDto) = - await (_api.getMyUser(), _api.getMyPreferences()).wait; + final (adminDto, preferenceDto) = await (_api.getMyUser(), _api.getMyPreferences()).wait; if (adminDto == null) return null; return UserConverter.fromAdminDto(adminDto, preferenceDto); diff --git a/mobile/lib/infrastructure/repositories/user_metadata.repository.dart b/mobile/lib/infrastructure/repositories/user_metadata.repository.dart index 19364afb43..81a4cd7945 100644 --- a/mobile/lib/infrastructure/repositories/user_metadata.repository.dart +++ b/mobile/lib/infrastructure/repositories/user_metadata.repository.dart @@ -8,8 +8,7 @@ class DriftUserMetadataRepository extends DriftDatabaseRepository { const DriftUserMetadataRepository(this._db) : super(_db); Future> getUserMetadata(String userId) { - final query = _db.userMetadataEntity.select() - ..where((e) => e.userId.equals(userId)); + final query = _db.userMetadataEntity.select()..where((e) => e.userId.equals(userId)); return query.map((userMetadata) { return userMetadata.toDto(); diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index b62fb180e5..5f0c5d42db 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -126,8 +126,7 @@ class ImmichApp extends ConsumerStatefulWidget { ImmichAppState createState() => ImmichAppState(); } -class ImmichAppState extends ConsumerState - with WidgetsBindingObserver { +class ImmichAppState extends ConsumerState with WidgetsBindingObserver { @override void didChangeAppLifecycleState(AppLifecycleState state) { switch (state) { @@ -168,9 +167,7 @@ class ImmichAppState extends ConsumerState // Android 8 does not support transparent app bars final info = await DeviceInfoPlugin().androidInfo; if (info.version.sdkInt <= 26) { - overlayStyle = context.isDarkTheme - ? SystemUiOverlayStyle.dark - : SystemUiOverlayStyle.light; + overlayStyle = context.isDarkTheme ? SystemUiOverlayStyle.dark : SystemUiOverlayStyle.light; } } SystemChrome.setSystemUIOverlayStyle(overlayStyle); @@ -222,8 +219,7 @@ class ImmichAppState extends ConsumerState final deepLinkHandler = ref.read(deepLinkServiceProvider); final currentRouteName = ref.read(currentRouteNameProvider.notifier).state; - final isColdStart = - currentRouteName == null || currentRouteName == SplashScreenRoute.name; + final isColdStart = currentRouteName == null || currentRouteName == SplashScreenRoute.name; if (deepLink.uri.scheme == "immich") { final proposedRoute = await deepLinkHandler.handleScheme( @@ -299,8 +295,7 @@ class ImmichAppState extends ConsumerState ), routerConfig: router.config( deepLinkBuilder: _deepLinkBuilder, - navigatorObservers: () => - [AppNavigationObserver(ref: ref), HeroController()], + navigatorObservers: () => [AppNavigationObserver(ref: ref), HeroController()], ), ), ); diff --git a/mobile/lib/models/activities/activity.model.dart b/mobile/lib/models/activities/activity.model.dart index 17f70d5d62..38c2bef77a 100644 --- a/mobile/lib/models/activities/activity.model.dart +++ b/mobile/lib/models/activities/activity.model.dart @@ -56,12 +56,7 @@ class Activity { @override int get hashCode { - return id.hashCode ^ - assetId.hashCode ^ - comment.hashCode ^ - createdAt.hashCode ^ - type.hashCode ^ - user.hashCode; + return id.hashCode ^ assetId.hashCode ^ comment.hashCode ^ createdAt.hashCode ^ type.hashCode ^ user.hashCode; } } diff --git a/mobile/lib/models/albums/album_add_asset_response.model.dart b/mobile/lib/models/albums/album_add_asset_response.model.dart index 26168c957c..fbc8a4d560 100644 --- a/mobile/lib/models/albums/album_add_asset_response.model.dart +++ b/mobile/lib/models/albums/album_add_asset_response.model.dart @@ -32,16 +32,14 @@ class AlbumAddAssetsResponse { String toJson() => json.encode(toMap()); @override - String toString() => - 'AddAssetsResponse(alreadyInAlbum: $alreadyInAlbum, successfullyAdded: $successfullyAdded)'; + String toString() => 'AddAssetsResponse(alreadyInAlbum: $alreadyInAlbum, successfullyAdded: $successfullyAdded)'; @override bool operator ==(covariant AlbumAddAssetsResponse other) { if (identical(this, other)) return true; final listEquals = const DeepCollectionEquality().equals; - return listEquals(other.alreadyInAlbum, alreadyInAlbum) && - other.successfullyAdded == successfullyAdded; + return listEquals(other.alreadyInAlbum, alreadyInAlbum) && other.successfullyAdded == successfullyAdded; } @override diff --git a/mobile/lib/models/albums/album_viewer_page_state.model.dart b/mobile/lib/models/albums/album_viewer_page_state.model.dart index 9fd5da1b28..823226b4a4 100644 --- a/mobile/lib/models/albums/album_viewer_page_state.model.dart +++ b/mobile/lib/models/albums/album_viewer_page_state.model.dart @@ -43,8 +43,7 @@ class AlbumViewerPageState { String toJson() => json.encode(toMap()); - factory AlbumViewerPageState.fromJson(String source) => - AlbumViewerPageState.fromMap(json.decode(source)); + factory AlbumViewerPageState.fromJson(String source) => AlbumViewerPageState.fromMap(json.decode(source)); @override String toString() => @@ -61,8 +60,5 @@ class AlbumViewerPageState { } @override - int get hashCode => - isEditAlbum.hashCode ^ - editTitleText.hashCode ^ - editDescriptionText.hashCode; + int get hashCode => isEditAlbum.hashCode ^ editTitleText.hashCode ^ editDescriptionText.hashCode; } diff --git a/mobile/lib/models/albums/asset_selection_page_result.model.dart b/mobile/lib/models/albums/asset_selection_page_result.model.dart index 2a4daba64a..d921ac63ce 100644 --- a/mobile/lib/models/albums/asset_selection_page_result.model.dart +++ b/mobile/lib/models/albums/asset_selection_page_result.model.dart @@ -12,8 +12,7 @@ class AssetSelectionPageResult { if (identical(this, other)) return true; final setEquals = const DeepCollectionEquality().equals; - return other is AssetSelectionPageResult && - setEquals(other.selectedAssets, selectedAssets); + return other is AssetSelectionPageResult && setEquals(other.selectedAssets, selectedAssets); } @override diff --git a/mobile/lib/models/asset_selection_state.dart b/mobile/lib/models/asset_selection_state.dart index b080dca003..c022ec3a3a 100644 --- a/mobile/lib/models/asset_selection_state.dart +++ b/mobile/lib/models/asset_selection_state.dart @@ -48,9 +48,5 @@ class AssetSelectionState { } @override - int get hashCode => - hasRemote.hashCode ^ - hasLocal.hashCode ^ - hasMerged.hashCode ^ - selectedCount.hashCode; + int get hashCode => hasRemote.hashCode ^ hasLocal.hashCode ^ hasMerged.hashCode ^ selectedCount.hashCode; } diff --git a/mobile/lib/models/auth/auxilary_endpoint.model.dart b/mobile/lib/models/auth/auxilary_endpoint.model.dart index f49d0f692c..e876097d61 100644 --- a/mobile/lib/models/auth/auxilary_endpoint.model.dart +++ b/mobile/lib/models/auth/auxilary_endpoint.model.dart @@ -97,8 +97,7 @@ class AuxCheckStatus { String toJson() => json.encode(toMap()); - factory AuxCheckStatus.fromJson(String source) => - AuxCheckStatus.fromMap(json.decode(source) as Map); + factory AuxCheckStatus.fromJson(String source) => AuxCheckStatus.fromMap(json.decode(source) as Map); @override String toString() => 'AuxCheckStatus(name: $name)'; diff --git a/mobile/lib/models/auth/biometric_status.model.dart b/mobile/lib/models/auth/biometric_status.model.dart index 3057f06e9c..223b283279 100644 --- a/mobile/lib/models/auth/biometric_status.model.dart +++ b/mobile/lib/models/auth/biometric_status.model.dart @@ -11,8 +11,7 @@ class BiometricStatus { }); @override - String toString() => - 'BiometricStatus(availableBiometrics: $availableBiometrics, canAuthenticate: $canAuthenticate)'; + String toString() => 'BiometricStatus(availableBiometrics: $availableBiometrics, canAuthenticate: $canAuthenticate)'; BiometricStatus copyWith({ List? availableBiometrics, @@ -29,8 +28,7 @@ class BiometricStatus { if (identical(this, other)) return true; final listEquals = const DeepCollectionEquality().equals; - return listEquals(other.availableBiometrics, availableBiometrics) && - other.canAuthenticate == canAuthenticate; + return listEquals(other.availableBiometrics, availableBiometrics) && other.canAuthenticate == canAuthenticate; } @override diff --git a/mobile/lib/models/backup/available_album.model.dart b/mobile/lib/models/backup/available_album.model.dart index e34d2b1abe..96a19cf60b 100644 --- a/mobile/lib/models/backup/available_album.model.dart +++ b/mobile/lib/models/backup/available_album.model.dart @@ -29,8 +29,7 @@ class AvailableAlbum { bool get isAll => album.isAll; @override - String toString() => - 'AvailableAlbum(albumEntity: $album, lastBackup: $lastBackup)'; + String toString() => 'AvailableAlbum(albumEntity: $album, lastBackup: $lastBackup)'; @override bool operator ==(Object other) { diff --git a/mobile/lib/models/backup/backup_state.model.dart b/mobile/lib/models/backup/backup_state.model.dart index d829f411fc..39554736dd 100644 --- a/mobile/lib/models/backup/backup_state.model.dart +++ b/mobile/lib/models/backup/backup_state.model.dart @@ -8,13 +8,7 @@ import 'package:immich_mobile/models/backup/available_album.model.dart'; import 'package:immich_mobile/models/backup/current_upload_asset.model.dart'; import 'package:immich_mobile/models/server_info/server_disk_info.model.dart'; -enum BackUpProgressEnum { - idle, - inProgress, - manualInProgress, - inBackground, - done -} +enum BackUpProgressEnum { idle, inProgress, manualInProgress, inBackground, done } class BackUpState { // enum @@ -105,26 +99,21 @@ class BackUpState { progressInFileSize: progressInFileSize ?? this.progressInFileSize, progressInFileSpeed: progressInFileSpeed ?? this.progressInFileSpeed, progressInFileSpeeds: progressInFileSpeeds ?? this.progressInFileSpeeds, - progressInFileSpeedUpdateTime: - progressInFileSpeedUpdateTime ?? this.progressInFileSpeedUpdateTime, - progressInFileSpeedUpdateSentBytes: progressInFileSpeedUpdateSentBytes ?? - this.progressInFileSpeedUpdateSentBytes, - iCloudDownloadProgress: - iCloudDownloadProgress ?? this.iCloudDownloadProgress, + progressInFileSpeedUpdateTime: progressInFileSpeedUpdateTime ?? this.progressInFileSpeedUpdateTime, + progressInFileSpeedUpdateSentBytes: progressInFileSpeedUpdateSentBytes ?? this.progressInFileSpeedUpdateSentBytes, + iCloudDownloadProgress: iCloudDownloadProgress ?? this.iCloudDownloadProgress, cancelToken: cancelToken ?? this.cancelToken, serverInfo: serverInfo ?? this.serverInfo, autoBackup: autoBackup ?? this.autoBackup, backgroundBackup: backgroundBackup ?? this.backgroundBackup, backupRequireWifi: backupRequireWifi ?? this.backupRequireWifi, - backupRequireCharging: - backupRequireCharging ?? this.backupRequireCharging, + backupRequireCharging: backupRequireCharging ?? this.backupRequireCharging, backupTriggerDelay: backupTriggerDelay ?? this.backupTriggerDelay, availableAlbums: availableAlbums ?? this.availableAlbums, selectedBackupAlbums: selectedBackupAlbums ?? this.selectedBackupAlbums, excludedBackupAlbums: excludedBackupAlbums ?? this.excludedBackupAlbums, allUniqueAssets: allUniqueAssets ?? this.allUniqueAssets, - selectedAlbumsBackupAssetsIds: - selectedAlbumsBackupAssetsIds ?? this.selectedAlbumsBackupAssetsIds, + selectedAlbumsBackupAssetsIds: selectedAlbumsBackupAssetsIds ?? this.selectedAlbumsBackupAssetsIds, currentUploadAsset: currentUploadAsset ?? this.currentUploadAsset, ); } @@ -146,8 +135,7 @@ class BackUpState { other.progressInFileSpeed == progressInFileSpeed && collectionEquals(other.progressInFileSpeeds, progressInFileSpeeds) && other.progressInFileSpeedUpdateTime == progressInFileSpeedUpdateTime && - other.progressInFileSpeedUpdateSentBytes == - progressInFileSpeedUpdateSentBytes && + other.progressInFileSpeedUpdateSentBytes == progressInFileSpeedUpdateSentBytes && other.iCloudDownloadProgress == iCloudDownloadProgress && other.cancelToken == cancelToken && other.serverInfo == serverInfo && diff --git a/mobile/lib/models/backup/current_upload_asset.model.dart b/mobile/lib/models/backup/current_upload_asset.model.dart index edaac06987..2214897357 100644 --- a/mobile/lib/models/backup/current_upload_asset.model.dart +++ b/mobile/lib/models/backup/current_upload_asset.model.dart @@ -53,13 +53,11 @@ class CurrentUploadAsset { factory CurrentUploadAsset.fromMap(Map map) { return CurrentUploadAsset( id: map['id'] as String, - fileCreatedAt: - DateTime.fromMillisecondsSinceEpoch(map['fileCreatedAt'] as int), + fileCreatedAt: DateTime.fromMillisecondsSinceEpoch(map['fileCreatedAt'] as int), fileName: map['fileName'] as String, fileType: map['fileType'] as String, fileSize: map['fileSize'] as int, - iCloudAsset: - map['iCloudAsset'] != null ? map['iCloudAsset'] as bool : null, + iCloudAsset: map['iCloudAsset'] != null ? map['iCloudAsset'] as bool : null, ); } diff --git a/mobile/lib/models/backup/manual_upload_state.model.dart b/mobile/lib/models/backup/manual_upload_state.model.dart index a2d84fbef3..7f797334de 100644 --- a/mobile/lib/models/backup/manual_upload_state.model.dart +++ b/mobile/lib/models/backup/manual_upload_state.model.dart @@ -56,17 +56,14 @@ class ManualUploadState { progressInFileSize: progressInFileSize ?? this.progressInFileSize, progressInFileSpeed: progressInFileSpeed ?? this.progressInFileSpeed, progressInFileSpeeds: progressInFileSpeeds ?? this.progressInFileSpeeds, - progressInFileSpeedUpdateTime: - progressInFileSpeedUpdateTime ?? this.progressInFileSpeedUpdateTime, - progressInFileSpeedUpdateSentBytes: progressInFileSpeedUpdateSentBytes ?? - this.progressInFileSpeedUpdateSentBytes, + progressInFileSpeedUpdateTime: progressInFileSpeedUpdateTime ?? this.progressInFileSpeedUpdateTime, + progressInFileSpeedUpdateSentBytes: progressInFileSpeedUpdateSentBytes ?? this.progressInFileSpeedUpdateSentBytes, cancelToken: cancelToken ?? this.cancelToken, currentUploadAsset: currentUploadAsset ?? this.currentUploadAsset, totalAssetsToUpload: totalAssetsToUpload ?? this.totalAssetsToUpload, currentAssetIndex: currentAssetIndex ?? this.currentAssetIndex, successfulUploads: successfulUploads ?? this.successfulUploads, - showDetailedNotification: - showDetailedNotification ?? this.showDetailedNotification, + showDetailedNotification: showDetailedNotification ?? this.showDetailedNotification, ); } @@ -86,8 +83,7 @@ class ManualUploadState { other.progressInFileSpeed == progressInFileSpeed && collectionEquals(other.progressInFileSpeeds, progressInFileSpeeds) && other.progressInFileSpeedUpdateTime == progressInFileSpeedUpdateTime && - other.progressInFileSpeedUpdateSentBytes == - progressInFileSpeedUpdateSentBytes && + other.progressInFileSpeedUpdateSentBytes == progressInFileSpeedUpdateSentBytes && other.cancelToken == cancelToken && other.currentUploadAsset == currentUploadAsset && other.totalAssetsToUpload == totalAssetsToUpload && diff --git a/mobile/lib/models/backup/success_upload_asset.model.dart b/mobile/lib/models/backup/success_upload_asset.model.dart index 2b39dde5ea..ca49450a31 100644 --- a/mobile/lib/models/backup/success_upload_asset.model.dart +++ b/mobile/lib/models/backup/success_upload_asset.model.dart @@ -31,12 +31,9 @@ class SuccessUploadAsset { bool operator ==(covariant SuccessUploadAsset other) { if (identical(this, other)) return true; - return other.candidate == candidate && - other.remoteAssetId == remoteAssetId && - other.isDuplicate == isDuplicate; + return other.candidate == candidate && other.remoteAssetId == remoteAssetId && other.isDuplicate == isDuplicate; } @override - int get hashCode => - candidate.hashCode ^ remoteAssetId.hashCode ^ isDuplicate.hashCode; + int get hashCode => candidate.hashCode ^ remoteAssetId.hashCode ^ isDuplicate.hashCode; } diff --git a/mobile/lib/models/cast/cast_manager_state.dart b/mobile/lib/models/cast/cast_manager_state.dart index 703ceb4c47..c948921792 100644 --- a/mobile/lib/models/cast/cast_manager_state.dart +++ b/mobile/lib/models/cast/cast_manager_state.dart @@ -59,8 +59,7 @@ class CastManagerState { String toJson() => json.encode(toMap()); - factory CastManagerState.fromJson(String source) => - CastManagerState.fromMap(json.decode(source)); + factory CastManagerState.fromJson(String source) => CastManagerState.fromMap(json.decode(source)); @override String toString() => @@ -80,9 +79,5 @@ class CastManagerState { @override int get hashCode => - isCasting.hashCode ^ - receiverName.hashCode ^ - castState.hashCode ^ - currentTime.hashCode ^ - duration.hashCode; + isCasting.hashCode ^ receiverName.hashCode ^ castState.hashCode ^ currentTime.hashCode ^ duration.hashCode; } diff --git a/mobile/lib/models/download/download_state.model.dart b/mobile/lib/models/download/download_state.model.dart index c032c73dcd..b2bd389bc2 100644 --- a/mobile/lib/models/download/download_state.model.dart +++ b/mobile/lib/models/download/download_state.model.dart @@ -46,20 +46,16 @@ class DownloadInfo { String toJson() => json.encode(toMap()); - factory DownloadInfo.fromJson(String source) => - DownloadInfo.fromMap(json.decode(source) as Map); + factory DownloadInfo.fromJson(String source) => DownloadInfo.fromMap(json.decode(source) as Map); @override - String toString() => - 'DownloadInfo(fileName: $fileName, progress: $progress, status: $status)'; + String toString() => 'DownloadInfo(fileName: $fileName, progress: $progress, status: $status)'; @override bool operator ==(covariant DownloadInfo other) { if (identical(this, other)) return true; - return other.fileName == fileName && - other.progress == progress && - other.status == status; + return other.fileName == fileName && other.progress == progress && other.status == status; } @override @@ -104,6 +100,5 @@ class DownloadState { } @override - int get hashCode => - downloadStatus.hashCode ^ taskProgress.hashCode ^ showProgress.hashCode; + int get hashCode => downloadStatus.hashCode ^ taskProgress.hashCode ^ showProgress.hashCode; } diff --git a/mobile/lib/models/map/map_marker.model.dart b/mobile/lib/models/map/map_marker.model.dart index 7ab925464a..781eae792f 100644 --- a/mobile/lib/models/map/map_marker.model.dart +++ b/mobile/lib/models/map/map_marker.model.dart @@ -24,8 +24,7 @@ class MapMarker { assetRemoteId = dto.id; @override - String toString() => - 'MapMarker(latLng: $latLng, assetRemoteId: $assetRemoteId)'; + String toString() => 'MapMarker(latLng: $latLng, assetRemoteId: $assetRemoteId)'; @override bool operator ==(covariant MapMarker other) { diff --git a/mobile/lib/models/memories/memory.model.dart b/mobile/lib/models/memories/memory.model.dart index c8451dda64..fb85d70b9e 100644 --- a/mobile/lib/models/memories/memory.model.dart +++ b/mobile/lib/models/memories/memory.model.dart @@ -30,9 +30,7 @@ class Memory { if (identical(this, other)) return true; final listEquals = const DeepCollectionEquality().equals; - return other is Memory && - other.title == title && - listEquals(other.assets, assets); + return other is Memory && other.title == title && listEquals(other.assets, assets); } @override diff --git a/mobile/lib/models/search/search_curated_content.model.dart b/mobile/lib/models/search/search_curated_content.model.dart index aff61097e2..7ecb5af45c 100644 --- a/mobile/lib/models/search/search_curated_content.model.dart +++ b/mobile/lib/models/search/search_curated_content.model.dart @@ -54,8 +54,7 @@ class SearchCuratedContent { SearchCuratedContent.fromMap(json.decode(source) as Map); @override - String toString() => - 'CuratedContent(label: $label, subtitle: $subtitle, id: $id)'; + String toString() => 'CuratedContent(label: $label, subtitle: $subtitle, id: $id)'; @override bool operator ==(covariant SearchCuratedContent other) { diff --git a/mobile/lib/models/search/search_filter.model.dart b/mobile/lib/models/search/search_filter.model.dart index efe6f923ad..1c2167faac 100644 --- a/mobile/lib/models/search/search_filter.model.dart +++ b/mobile/lib/models/search/search_filter.model.dart @@ -48,16 +48,13 @@ class SearchLocationFilter { SearchLocationFilter.fromMap(json.decode(source) as Map); @override - String toString() => - 'SearchLocationFilter(country: $country, state: $state, city: $city)'; + String toString() => 'SearchLocationFilter(country: $country, state: $state, city: $city)'; @override bool operator ==(covariant SearchLocationFilter other) { if (identical(this, other)) return true; - return other.country == country && - other.state == state && - other.city == city; + return other.country == country && other.state == state && other.city == city; } @override @@ -142,12 +139,8 @@ class SearchDateFilter { factory SearchDateFilter.fromMap(Map map) { return SearchDateFilter( - takenBefore: map['takenBefore'] != null - ? DateTime.fromMillisecondsSinceEpoch(map['takenBefore'] as int) - : null, - takenAfter: map['takenAfter'] != null - ? DateTime.fromMillisecondsSinceEpoch(map['takenAfter'] as int) - : null, + takenBefore: map['takenBefore'] != null ? DateTime.fromMillisecondsSinceEpoch(map['takenBefore'] as int) : null, + takenAfter: map['takenAfter'] != null ? DateTime.fromMillisecondsSinceEpoch(map['takenAfter'] as int) : null, ); } @@ -157,8 +150,7 @@ class SearchDateFilter { SearchDateFilter.fromMap(json.decode(source) as Map); @override - String toString() => - 'SearchDateFilter(takenBefore: $takenBefore, takenAfter: $takenAfter)'; + String toString() => 'SearchDateFilter(takenBefore: $takenBefore, takenAfter: $takenAfter)'; @override bool operator ==(covariant SearchDateFilter other) { @@ -222,14 +214,11 @@ class SearchDisplayFilters { bool operator ==(covariant SearchDisplayFilters other) { if (identical(this, other)) return true; - return other.isNotInAlbum == isNotInAlbum && - other.isArchive == isArchive && - other.isFavorite == isFavorite; + return other.isNotInAlbum == isNotInAlbum && other.isArchive == isArchive && other.isFavorite == isFavorite; } @override - int get hashCode => - isNotInAlbum.hashCode ^ isArchive.hashCode ^ isFavorite.hashCode; + int get hashCode => isNotInAlbum.hashCode ^ isArchive.hashCode ^ isFavorite.hashCode; } class SearchFilter { diff --git a/mobile/lib/models/search/search_result_page_state.model.dart b/mobile/lib/models/search/search_result_page_state.model.dart index 2fd4dcbcd3..7c8a27b50c 100644 --- a/mobile/lib/models/search/search_result_page_state.model.dart +++ b/mobile/lib/models/search/search_result_page_state.model.dart @@ -52,10 +52,6 @@ class SearchResultPageState { @override int get hashCode { - return isLoading.hashCode ^ - isSuccess.hashCode ^ - isError.hashCode ^ - isSmart.hashCode ^ - searchResult.hashCode; + return isLoading.hashCode ^ isSuccess.hashCode ^ isError.hashCode ^ isSmart.hashCode ^ searchResult.hashCode; } } diff --git a/mobile/lib/models/server_info/server_config.model.dart b/mobile/lib/models/server_info/server_config.model.dart index f07ffde522..88c27443c4 100644 --- a/mobile/lib/models/server_info/server_config.model.dart +++ b/mobile/lib/models/server_info/server_config.model.dart @@ -50,6 +50,5 @@ class ServerConfig { } @override - int get hashCode => - trashDays.hashCode ^ oauthButtonText.hashCode ^ externalDomain.hashCode; + int get hashCode => trashDays.hashCode ^ oauthButtonText.hashCode ^ externalDomain.hashCode; } diff --git a/mobile/lib/models/server_info/server_disk_info.model.dart b/mobile/lib/models/server_info/server_disk_info.model.dart index 01ce49beec..8248097ca5 100644 --- a/mobile/lib/models/server_info/server_disk_info.model.dart +++ b/mobile/lib/models/server_info/server_disk_info.model.dart @@ -51,9 +51,6 @@ class ServerDiskInfo { @override int get hashCode { - return diskAvailable.hashCode ^ - diskSize.hashCode ^ - diskUse.hashCode ^ - diskUsagePercentage.hashCode; + return diskAvailable.hashCode ^ diskSize.hashCode ^ diskUse.hashCode ^ diskUsagePercentage.hashCode; } } diff --git a/mobile/lib/models/server_info/server_features.model.dart b/mobile/lib/models/server_info/server_features.model.dart index fee88869ed..7e537ebf34 100644 --- a/mobile/lib/models/server_info/server_features.model.dart +++ b/mobile/lib/models/server_info/server_features.model.dart @@ -50,9 +50,6 @@ class ServerFeatures { @override int get hashCode { - return trash.hashCode ^ - map.hashCode ^ - oauthEnabled.hashCode ^ - passwordLogin.hashCode; + return trash.hashCode ^ map.hashCode ^ oauthEnabled.hashCode ^ passwordLogin.hashCode; } } diff --git a/mobile/lib/models/server_info/server_info.model.dart b/mobile/lib/models/server_info/server_info.model.dart index aafab56e4c..0fa80d45d8 100644 --- a/mobile/lib/models/server_info/server_info.model.dart +++ b/mobile/lib/models/server_info/server_info.model.dart @@ -41,10 +41,8 @@ class ServerInfo { serverConfig: serverConfig ?? this.serverConfig, serverDiskInfo: serverDiskInfo ?? this.serverDiskInfo, isVersionMismatch: isVersionMismatch ?? this.isVersionMismatch, - isNewReleaseAvailable: - isNewReleaseAvailable ?? this.isNewReleaseAvailable, - versionMismatchErrorMessage: - versionMismatchErrorMessage ?? this.versionMismatchErrorMessage, + isNewReleaseAvailable: isNewReleaseAvailable ?? this.isNewReleaseAvailable, + versionMismatchErrorMessage: versionMismatchErrorMessage ?? this.versionMismatchErrorMessage, ); } diff --git a/mobile/lib/models/server_info/server_version.model.dart b/mobile/lib/models/server_info/server_version.model.dart index 1995edb98d..bd71536622 100644 --- a/mobile/lib/models/server_info/server_version.model.dart +++ b/mobile/lib/models/server_info/server_version.model.dart @@ -37,10 +37,7 @@ class ServerVersion { bool operator ==(Object other) { if (identical(this, other)) return true; - return other is ServerVersion && - other.major == major && - other.minor == minor && - other.patch == patch; + return other is ServerVersion && other.major == major && other.minor == minor && other.patch == patch; } @override diff --git a/mobile/lib/models/shared_link/shared_link.model.dart b/mobile/lib/models/shared_link/shared_link.model.dart index a107dd892a..135d191b20 100644 --- a/mobile/lib/models/shared_link/shared_link.model.dart +++ b/mobile/lib/models/shared_link/shared_link.model.dart @@ -66,9 +66,7 @@ class SharedLink { expiresAt = dto.expiresAt, key = dto.key, showMetadata = dto.showMetadata, - type = dto.type == SharedLinkType.ALBUM - ? SharedLinkSource.album - : SharedLinkSource.individual, + type = dto.type == SharedLinkType.ALBUM ? SharedLinkSource.album : SharedLinkSource.individual, title = dto.type == SharedLinkType.ALBUM ? dto.album?.albumName.toUpperCase() ?? "UNKNOWN SHARE" : "INDIVIDUAL SHARE", diff --git a/mobile/lib/models/upload/share_intent_attachment.model.dart b/mobile/lib/models/upload/share_intent_attachment.model.dart index 7e57cf94d2..61157f3674 100644 --- a/mobile/lib/models/upload/share_intent_attachment.model.dart +++ b/mobile/lib/models/upload/share_intent_attachment.model.dart @@ -90,8 +90,7 @@ class ShareIntentAttachment { String toJson() => json.encode(toMap()); - factory ShareIntentAttachment.fromJson(String source) => - ShareIntentAttachment.fromMap( + factory ShareIntentAttachment.fromJson(String source) => ShareIntentAttachment.fromMap( json.decode(source) as Map, ); diff --git a/mobile/lib/pages/album/album_additional_shared_user_selection.page.dart b/mobile/lib/pages/album/album_additional_shared_user_selection.page.dart index 62406d2e3a..c0fc8c9364 100644 --- a/mobile/lib/pages/album/album_additional_shared_user_selection.page.dart +++ b/mobile/lib/pages/album/album_additional_shared_user_selection.page.dart @@ -21,8 +21,7 @@ class AlbumAdditionalSharedUserSelectionPage extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final AsyncValue> suggestedShareUsers = - ref.watch(otherUsersProvider); + final AsyncValue> suggestedShareUsers = ref.watch(otherUsersProvider); final sharedUsersList = useState>({}); addNewUsersHandler() { @@ -138,8 +137,7 @@ class AlbumAdditionalSharedUserSelectionPage extends HookConsumerWidget { ), actions: [ TextButton( - onPressed: - sharedUsersList.value.isEmpty ? null : addNewUsersHandler, + onPressed: sharedUsersList.value.isEmpty ? null : addNewUsersHandler, child: const Text( "add", style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold), diff --git a/mobile/lib/pages/album/album_asset_selection.page.dart b/mobile/lib/pages/album/album_asset_selection.page.dart index 7b0ce8cdc4..e72ecb0712 100644 --- a/mobile/lib/pages/album/album_asset_selection.page.dart +++ b/mobile/lib/pages/album/album_asset_selection.page.dart @@ -65,10 +65,8 @@ class AlbumAssetSelectionPage extends HookConsumerWidget { if (selected.value.isNotEmpty || canDeselect) TextButton( onPressed: () { - var payload = - AssetSelectionPageResult(selectedAssets: selected.value); - AutoRouter.of(context) - .popForced(payload); + var payload = AssetSelectionPageResult(selectedAssets: selected.value); + AutoRouter.of(context).popForced(payload); }, child: Text( canDeselect ? "done" : "add", diff --git a/mobile/lib/pages/album/album_date_range.dart b/mobile/lib/pages/album/album_date_range.dart index 591be260f6..57d808f226 100644 --- a/mobile/lib/pages/album/album_date_range.dart +++ b/mobile/lib/pages/album/album_date_range.dart @@ -42,16 +42,12 @@ class AlbumDateRange extends ConsumerWidget { @pragma('vm:prefer-inline') String _getDateRangeText(DateTime startDate, DateTime endDate) { - if (startDate.day == endDate.day && - startDate.month == endDate.month && - startDate.year == endDate.year) { + if (startDate.day == endDate.day && startDate.month == endDate.month && startDate.year == endDate.year) { return DateFormat.yMMMd().format(startDate); } - final String startDateText = (startDate.year == endDate.year - ? DateFormat.MMMd() - : DateFormat.yMMMd()) - .format(startDate); + final String startDateText = + (startDate.year == endDate.year ? DateFormat.MMMd() : DateFormat.yMMMd()).format(startDate); final String endDateText = DateFormat.yMMMd().format(endDate); return "$startDateText - $endDateText"; } diff --git a/mobile/lib/pages/album/album_options.page.dart b/mobile/lib/pages/album/album_options.page.dart index f177686128..4c51093345 100644 --- a/mobile/lib/pages/album/album_options.page.dart +++ b/mobile/lib/pages/album/album_options.page.dart @@ -7,8 +7,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/user.model.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/theme_extensions.dart'; -import 'package:immich_mobile/infrastructure/entities/user.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/providers/album/album.provider.dart'; import 'package:immich_mobile/providers/album/current_album.provider.dart'; import 'package:immich_mobile/providers/auth.provider.dart'; @@ -28,8 +27,7 @@ class AlbumOptionsPage extends HookConsumerWidget { return const SizedBox(); } - final sharedUsers = - useState(album.sharedUsers.map((u) => u.toDto()).toList()); + final sharedUsers = useState(album.sharedUsers.map((u) => u.toDto()).toList()); final owner = album.owner.value; final userId = ref.watch(authProvider).userId; final activityEnabled = useState(album.activityEnabled); @@ -50,8 +48,7 @@ class AlbumOptionsPage extends HookConsumerWidget { isProcessing.value = true; try { - final isSuccess = - await ref.read(albumProvider.notifier).leaveAlbum(album); + final isSuccess = await ref.read(albumProvider.notifier).leaveAlbum(album); if (isSuccess) { context.navigateTo( @@ -99,8 +96,7 @@ class AlbumOptionsPage extends HookConsumerWidget { actions = [ ListTile( leading: const Icon(Icons.person_remove_rounded), - title: const Text("shared_album_section_people_action_remove_user") - .tr(), + title: const Text("shared_album_section_people_action_remove_user").tr(), onTap: () => removeUserFromAlbum(user), ), ]; @@ -126,9 +122,7 @@ class AlbumOptionsPage extends HookConsumerWidget { buildOwnerInfo() { return ListTile( - leading: owner != null - ? UserCircleAvatar(user: owner.toDto()) - : const SizedBox(), + leading: owner != null ? UserCircleAvatar(user: owner.toDto()) : const SizedBox(), title: Text( album.owner.value?.name ?? "", style: const TextStyle( @@ -170,12 +164,8 @@ class AlbumOptionsPage extends HookConsumerWidget { color: context.colorScheme.onSurfaceSecondary, ), ), - trailing: userId == user.id || isOwner - ? const Icon(Icons.more_horiz_rounded) - : const SizedBox(), - onTap: userId == user.id || isOwner - ? () => handleUserClick(user) - : null, + trailing: userId == user.id || isOwner ? const Icon(Icons.more_horiz_rounded) : const SizedBox(), + onTap: userId == user.id || isOwner ? () => handleUserClick(user) : null, ); }, ); @@ -204,20 +194,15 @@ class AlbumOptionsPage extends HookConsumerWidget { value: activityEnabled.value, onChanged: (bool value) async { activityEnabled.value = value; - if (await ref - .read(albumProvider.notifier) - .setActivitystatus(album, value)) { + if (await ref.read(albumProvider.notifier).setActivitystatus(album, value)) { album.activityEnabled = value; } }, - activeColor: activityEnabled.value - ? context.primaryColor - : context.themeData.disabledColor, + activeColor: activityEnabled.value ? context.primaryColor : context.themeData.disabledColor, dense: true, title: Text( "comments_and_likes", - style: context.textTheme.titleMedium - ?.copyWith(fontWeight: FontWeight.w500), + style: context.textTheme.titleMedium?.copyWith(fontWeight: FontWeight.w500), ).tr(), subtitle: Text( "let_others_respond", diff --git a/mobile/lib/pages/album/album_viewer.dart b/mobile/lib/pages/album/album_viewer.dart index 2edf6082ac..6d9519f4ed 100644 --- a/mobile/lib/pages/album/album_viewer.dart +++ b/mobile/lib/pages/album/album_viewer.dart @@ -48,8 +48,7 @@ class AlbumViewer extends HookConsumerWidget { ); Future onRemoveFromAlbumPressed(Iterable assets) async { - final bool isSuccess = - await ref.read(albumProvider.notifier).removeAsset(album, assets); + final bool isSuccess = await ref.read(albumProvider.notifier).removeAsset(album, assets); if (!isSuccess) { ImmichToast.show( @@ -65,8 +64,7 @@ class AlbumViewer extends HookConsumerWidget { /// Find out if the assets in album exist on the device /// If they exist, add to selected asset state to show they are already selected. void onAddPhotosPressed() async { - AssetSelectionPageResult? returnPayload = - await context.pushRoute( + AssetSelectionPageResult? returnPayload = await context.pushRoute( AlbumAssetSelectionRoute( existingAssets: album.assets, canDeselect: false, @@ -77,9 +75,7 @@ class AlbumViewer extends HookConsumerWidget { // Check if there is new assets add isProcessing.value = true; - await ref - .watch(albumProvider.notifier) - .addAssets(album, returnPayload.selectedAssets); + await ref.watch(albumProvider.notifier).addAssets(album, returnPayload.selectedAssets); isProcessing.value = false; } diff --git a/mobile/lib/pages/albums/albums.page.dart b/mobile/lib/pages/albums/albums.page.dart index 3fc628afd3..aea4cfa2b8 100644 --- a/mobile/lib/pages/albums/albums.page.dart +++ b/mobile/lib/pages/albums/albums.page.dart @@ -26,8 +26,7 @@ class AlbumsPage extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final albums = - ref.watch(albumProvider).where((album) => album.isRemote).toList(); + final albums = ref.watch(albumProvider).where((album) => album.isRemote).toList(); final albumSortOption = ref.watch(albumSortByOptionsProvider); final albumSortIsReverse = ref.watch(albumSortOrderProvider); final sorted = albumSortOption.sortFn(albums, albumSortIsReverse); @@ -131,8 +130,7 @@ class AlbumsPage extends HookConsumerWidget { ) : null, controller: searchController, - onChanged: (_) => - onSearch(searchController.text, filterMode.value), + onChanged: (_) => onSearch(searchController.text, filterMode.value), focusNode: searchFocusNode, onTapOutside: (_) => searchFocusNode.unfocus(), ), @@ -180,9 +178,7 @@ class AlbumsPage extends HookConsumerWidget { const SortButton(), IconButton( icon: Icon( - isGrid.value - ? Icons.view_list_outlined - : Icons.grid_view_outlined, + isGrid.value ? Icons.view_list_outlined : Icons.grid_view_outlined, size: 24, ), onPressed: toggleViewMode, @@ -196,8 +192,7 @@ class AlbumsPage extends HookConsumerWidget { ? GridView.builder( shrinkWrap: true, physics: const ClampingScrollPhysics(), - gridDelegate: - const SliverGridDelegateWithMaxCrossAxisExtent( + gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( maxCrossAxisExtent: 250, mainAxisSpacing: 12, crossAxisSpacing: 12, @@ -244,10 +239,8 @@ class AlbumsPage extends HookConsumerWidget { }, ) : 'owned'.t(context: context)}', overflow: TextOverflow.ellipsis, - style: - context.textTheme.bodyMedium?.copyWith( - color: context - .colorScheme.onSurfaceSecondary, + style: context.textTheme.bodyMedium?.copyWith( + color: context.colorScheme.onSurfaceSecondary, ), ) : null, @@ -316,9 +309,7 @@ class QuickFilterButton extends StatelessWidget { child: Text( label, style: TextStyle( - color: isSelected - ? context.colorScheme.onPrimary - : context.colorScheme.onSurface, + color: isSelected ? context.colorScheme.onPrimary : context.colorScheme.onSurface, fontSize: 14, ), ), @@ -356,28 +347,22 @@ class SortButton extends ConsumerWidget { ? albumSortIsReverse ? Icon( Icons.keyboard_arrow_down, - color: albumSortOption == mode - ? context.colorScheme.onPrimary - : context.colorScheme.onSurface, + color: + albumSortOption == mode ? context.colorScheme.onPrimary : context.colorScheme.onSurface, ) : Icon( Icons.keyboard_arrow_up_rounded, - color: albumSortOption == mode - ? context.colorScheme.onPrimary - : context.colorScheme.onSurface, + color: + albumSortOption == mode ? context.colorScheme.onPrimary : context.colorScheme.onSurface, ) : const Icon(Icons.abc, color: Colors.transparent), onPressed: () { final selected = albumSortOption == mode; // Switch direction if (selected) { - ref - .read(albumSortOrderProvider.notifier) - .changeSortDirection(!albumSortIsReverse); + ref.read(albumSortOrderProvider.notifier).changeSortDirection(!albumSortIsReverse); } else { - ref - .read(albumSortByOptionsProvider.notifier) - .changeSortMode(mode); + ref.read(albumSortByOptionsProvider.notifier).changeSortMode(mode); } }, style: ButtonStyle( @@ -385,9 +370,7 @@ class SortButton extends ConsumerWidget { const EdgeInsets.fromLTRB(16, 16, 32, 16), ), backgroundColor: WidgetStateProperty.all( - albumSortOption == mode - ? context.colorScheme.primary - : Colors.transparent, + albumSortOption == mode ? context.colorScheme.primary : Colors.transparent, ), shape: WidgetStateProperty.all( const RoundedRectangleBorder( diff --git a/mobile/lib/pages/backup/album_preview.page.dart b/mobile/lib/pages/backup/album_preview.page.dart index b9fed41305..4cdc180973 100644 --- a/mobile/lib/pages/backup/album_preview.page.dart +++ b/mobile/lib/pages/backup/album_preview.page.dart @@ -19,9 +19,7 @@ class AlbumPreviewPage extends HookConsumerWidget { final assets = useState>([]); getAssetsInAlbum() async { - assets.value = await ref - .read(albumMediaRepositoryProvider) - .getAssets(album.localId!); + assets.value = await ref.read(albumMediaRepositoryProvider).getAssets(album.localId!); } useEffect( diff --git a/mobile/lib/pages/backup/backup_album_selection.page.dart b/mobile/lib/pages/backup/backup_album_selection.page.dart index e51d259969..69e118cb78 100644 --- a/mobile/lib/pages/backup/backup_album_selection.page.dart +++ b/mobile/lib/pages/backup/backup_album_selection.page.dart @@ -19,8 +19,7 @@ class BackupAlbumSelectionPage extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final selectedBackupAlbums = ref.watch(backupProvider).selectedBackupAlbums; final excludedBackupAlbums = ref.watch(backupProvider).excludedBackupAlbums; - final enableSyncUploadAlbum = - useAppSettingsState(AppSettingsEnum.syncAlbums); + final enableSyncUploadAlbum = useAppSettingsState(AppSettingsEnum.syncAlbums); final isDarkTheme = context.isDarkTheme; final albums = ref.watch(backupProvider).availableAlbums; @@ -85,8 +84,7 @@ class BackupAlbumSelectionPage extends HookConsumerWidget { buildSelectedAlbumNameChip() { return selectedBackupAlbums.map((album) { - void removeSelection() => - ref.read(backupProvider.notifier).removeAlbumForBackup(album); + void removeSelection() => ref.read(backupProvider.notifier).removeAlbumForBackup(album); return Padding( padding: const EdgeInsets.only(right: 8.0), @@ -117,9 +115,7 @@ class BackupAlbumSelectionPage extends HookConsumerWidget { buildExcludedAlbumNameChip() { return excludedBackupAlbums.map((album) { void removeSelection() { - ref - .watch(backupProvider.notifier) - .removeExcludedAlbumForBackup(album); + ref.watch(backupProvider.notifier).removeExcludedAlbumForBackup(album); } return GestureDetector( @@ -215,11 +211,7 @@ class BackupAlbumSelectionPage extends HookConsumerWidget { title: Text( "backup_album_selection_page_albums_device".tr( namedArgs: { - 'count': ref - .watch(backupProvider) - .availableAlbums - .length - .toString(), + 'count': ref.watch(backupProvider).availableAlbums.length.toString(), }, ), style: context.textTheme.titleSmall, diff --git a/mobile/lib/pages/backup/backup_controller.page.dart b/mobile/lib/pages/backup/backup_controller.page.dart index ca094437ac..76a772884e 100644 --- a/mobile/lib/pages/backup/backup_controller.page.dart +++ b/mobile/lib/pages/backup/backup_controller.page.dart @@ -30,11 +30,8 @@ class BackupControllerPage extends HookConsumerWidget { final hasAnyAlbum = backupState.selectedBackupAlbums.isNotEmpty; final didGetBackupInfo = useState(false); - bool hasExclusiveAccess = - backupState.backupProgress != BackUpProgressEnum.inBackground; - bool shouldBackup = backupState.allUniqueAssets.length - - backupState.selectedAlbumsBackupAssetsIds.length == - 0 || + bool hasExclusiveAccess = backupState.backupProgress != BackUpProgressEnum.inBackground; + bool shouldBackup = backupState.allUniqueAssets.length - backupState.selectedAlbumsBackupAssetsIds.length == 0 || !hasExclusiveAccess ? false : true; @@ -48,9 +45,7 @@ class BackupControllerPage extends HookConsumerWidget { ref.watch(iOSBackgroundSettingsProvider.notifier).refresh(); } - ref - .watch(websocketProvider.notifier) - .stopListenToEvent('on_upload_success'); + ref.watch(websocketProvider.notifier).stopListenToEvent('on_upload_success'); return () { WakelockPlus.disable(); @@ -61,8 +56,7 @@ class BackupControllerPage extends HookConsumerWidget { useEffect( () { - if (backupState.backupProgress == BackUpProgressEnum.idle && - !didGetBackupInfo.value) { + if (backupState.backupProgress == BackUpProgressEnum.idle && !didGetBackupInfo.value) { ref.watch(backupProvider.notifier).getBackupInfo(); didGetBackupInfo.value = true; } @@ -183,9 +177,7 @@ class BackupControllerPage extends HookConsumerWidget { onPressed: () async { await context.pushRoute(const BackupAlbumSelectionRoute()); // waited until returning from selection - await ref - .read(backupProvider.notifier) - .backupAlbumSelectionDone(); + await ref.read(backupProvider.notifier).backupAlbumSelectionDone(); // waited until backup albums are stored in DB ref.read(albumProvider.notifier).refreshDeviceAlbums(); }, @@ -203,8 +195,7 @@ class BackupControllerPage extends HookConsumerWidget { void startBackup() { ref.watch(errorBackupListProvider.notifier).empty(); - if (ref.watch(backupProvider).backupProgress != - BackUpProgressEnum.inBackground) { + if (ref.watch(backupProvider).backupProgress != BackUpProgressEnum.inBackground) { ref.watch(backupProvider.notifier).startBackupProcess(); } } @@ -216,8 +207,7 @@ class BackupControllerPage extends HookConsumerWidget { ), child: Container( child: backupState.backupProgress == BackUpProgressEnum.inProgress || - backupState.backupProgress == - BackUpProgressEnum.manualInProgress + backupState.backupProgress == BackUpProgressEnum.manualInProgress ? ElevatedButton( style: ElevatedButton.styleFrom( foregroundColor: Colors.grey[50], @@ -225,8 +215,7 @@ class BackupControllerPage extends HookConsumerWidget { // padding: const EdgeInsets.all(14), ), onPressed: () { - if (backupState.backupProgress == - BackUpProgressEnum.manualInProgress) { + if (backupState.backupProgress == BackUpProgressEnum.manualInProgress) { ref.read(manualUploadProvider.notifier).cancelBackup(); } else { ref.read(backupProvider.notifier).cancelBackup(); diff --git a/mobile/lib/pages/backup/drift_backup.page.dart b/mobile/lib/pages/backup/drift_backup.page.dart index 08b09250e1..0ebb68883f 100644 --- a/mobile/lib/pages/backup/drift_backup.page.dart +++ b/mobile/lib/pages/backup/drift_backup.page.dart @@ -39,9 +39,7 @@ class _DriftBackupPageState extends ConsumerState { return; } - await ref - .read(driftBackupProvider.notifier) - .getBackupStatus(currentUser.id); + await ref.read(driftBackupProvider.notifier).getBackupStatus(currentUser.id); await ref.read(driftBackupProvider.notifier).backup(currentUser.id); } @@ -224,9 +222,7 @@ class _BackupAlbumSelectionCard extends ConsumerWidget { if (currentUser == null) { return; } - ref - .read(driftBackupProvider.notifier) - .getBackupStatus(currentUser.id); + ref.read(driftBackupProvider.notifier).getBackupStatus(currentUser.id); }, child: const Text( "select", @@ -245,8 +241,7 @@ class _TotalCard extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final totalCount = - ref.watch(driftBackupProvider.select((p) => p.totalCount)); + final totalCount = ref.watch(driftBackupProvider.select((p) => p.totalCount)); return BackupInfoCard( title: "total".tr(), @@ -261,8 +256,7 @@ class _BackupCard extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final backupCount = - ref.watch(driftBackupProvider.select((p) => p.backupCount)); + final backupCount = ref.watch(driftBackupProvider.select((p) => p.backupCount)); return BackupInfoCard( title: "backup_controller_page_backup".tr(), @@ -277,8 +271,7 @@ class _RemainderCard extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final remainderCount = - ref.watch(driftBackupProvider.select((p) => p.remainderCount)); + final remainderCount = ref.watch(driftBackupProvider.select((p) => p.remainderCount)); return BackupInfoCard( title: "backup_controller_page_remainder".tr(), subtitle: "backup_controller_page_remainder_sub".tr(), diff --git a/mobile/lib/pages/backup/drift_backup_album_selection.page.dart b/mobile/lib/pages/backup/drift_backup_album_selection.page.dart index f0f3bedaab..8182798636 100644 --- a/mobile/lib/pages/backup/drift_backup_album_selection.page.dart +++ b/mobile/lib/pages/backup/drift_backup_album_selection.page.dart @@ -21,12 +21,10 @@ class DriftBackupAlbumSelectionPage extends ConsumerStatefulWidget { const DriftBackupAlbumSelectionPage({super.key}); @override - ConsumerState createState() => - _DriftBackupAlbumSelectionPageState(); + ConsumerState createState() => _DriftBackupAlbumSelectionPageState(); } -class _DriftBackupAlbumSelectionPageState - extends ConsumerState { +class _DriftBackupAlbumSelectionPageState extends ConsumerState { String _searchQuery = ''; bool _isSearchMode = false; int _initialTotalAssetCount = 0; @@ -42,13 +40,10 @@ class _DriftBackupAlbumSelectionPageState _searchController = TextEditingController(); _searchFocusNode = FocusNode(); - _enableSyncUploadAlbum.value = ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.syncAlbums); + _enableSyncUploadAlbum.value = ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.syncAlbums); ref.read(backupAlbumProvider.notifier).getAll(); - _initialTotalAssetCount = - ref.read(driftBackupProvider.select((p) => p.totalCount)); + _initialTotalAssetCount = ref.read(driftBackupProvider.select((p) => p.totalCount)); } @override @@ -69,12 +64,8 @@ class _DriftBackupAlbumSelectionPageState return album.name.toLowerCase().contains(_searchQuery.toLowerCase()); }).toList(); - final selectedBackupAlbums = albums - .where((album) => album.backupSelection == BackupSelection.selected) - .toList(); - final excludedBackupAlbums = albums - .where((album) => album.backupSelection == BackupSelection.excluded) - .toList(); + final selectedBackupAlbums = albums.where((album) => album.backupSelection == BackupSelection.selected).toList(); + final excludedBackupAlbums = albums.where((album) => album.backupSelection == BackupSelection.excluded).toList(); handleSyncAlbumToggle(bool isEnable) async { if (isEnable) { @@ -98,16 +89,11 @@ class _DriftBackupAlbumSelectionPageState return; } - await ref - .read(driftBackupProvider.notifier) - .getBackupStatus(currentUser.id); - final currentTotalAssetCount = - ref.read(driftBackupProvider.select((p) => p.totalCount)); + await ref.read(driftBackupProvider.notifier).getBackupStatus(currentUser.id); + final currentTotalAssetCount = ref.read(driftBackupProvider.select((p) => p.totalCount)); if (currentTotalAssetCount != _initialTotalAssetCount) { - final isBackupEnabled = ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableBackup); + final isBackupEnabled = ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableBackup); if (!isBackupEnabled) { return; @@ -132,8 +118,7 @@ class _DriftBackupAlbumSelectionPageState autofocus: true, controller: _searchController, focusNode: _searchFocusNode, - onChanged: (value) => - setState(() => _searchQuery = value.trim()), + onChanged: (value) => setState(() => _searchQuery = value.trim()), ) : const Text( "backup_album_selection_page_select_albums", @@ -195,8 +180,7 @@ class _DriftBackupAlbumSelectionPageState SettingsSwitchListTile( valueNotifier: _enableSyncUploadAlbum, title: "sync_albums".t(context: context), - subtitle: "sync_upload_album_setting_subtitle" - .t(context: context), + subtitle: "sync_upload_album_setting_subtitle".t(context: context), contentPadding: const EdgeInsets.symmetric(horizontal: 16), titleStyle: context.textTheme.bodyLarge?.copyWith( fontWeight: FontWeight.bold, @@ -238,8 +222,7 @@ class _DriftBackupAlbumSelectionPageState builder: (BuildContext context) { return AlertDialog( shape: const RoundedRectangleBorder( - borderRadius: - BorderRadius.all(Radius.circular(10)), + borderRadius: BorderRadius.all(Radius.circular(10)), ), elevation: 5, title: Text( @@ -428,8 +411,7 @@ class _SelectedAlbumNameChips extends ConsumerWidget { ), ), backgroundColor: context.primaryColor, - deleteIconColor: - context.isDarkTheme ? Colors.black : Colors.white, + deleteIconColor: context.isDarkTheme ? Colors.black : Colors.white, deleteIcon: const Icon( Icons.cancel_rounded, size: 15, @@ -504,9 +486,7 @@ class _SelectAllButton extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final canSelectAll = filteredAlbums - .where((album) => album.backupSelection != BackupSelection.selected) - .isNotEmpty; + final canSelectAll = filteredAlbums.where((album) => album.backupSelection != BackupSelection.selected).isNotEmpty; return Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), @@ -518,9 +498,7 @@ class _SelectAllButton extends ConsumerWidget { ? () { for (final album in filteredAlbums) { if (album.backupSelection != BackupSelection.selected) { - ref - .read(backupAlbumProvider.notifier) - .selectAlbum(album); + ref.read(backupAlbumProvider.notifier).selectAlbum(album); } } } @@ -544,9 +522,7 @@ class _SelectAllButton extends ConsumerWidget { ? () { for (final album in filteredAlbums) { if (album.backupSelection == BackupSelection.selected) { - ref - .read(backupAlbumProvider.notifier) - .deselectAlbum(album); + ref.read(backupAlbumProvider.notifier).deselectAlbum(album); } } } diff --git a/mobile/lib/pages/backup/drift_upload_detail.page.dart b/mobile/lib/pages/backup/drift_upload_detail.page.dart index 058bfa1aaf..62d6341fd1 100644 --- a/mobile/lib/pages/backup/drift_upload_detail.page.dart +++ b/mobile/lib/pages/backup/drift_upload_detail.page.dart @@ -27,9 +27,7 @@ class DriftUploadDetailPage extends ConsumerWidget { elevation: 0, scrolledUnderElevation: 1, ), - body: uploadItems.isEmpty - ? _buildEmptyState(context) - : _buildUploadList(uploadItems), + body: uploadItems.isEmpty ? _buildEmptyState(context) : _buildUploadList(uploadItems), ); } @@ -79,9 +77,7 @@ class DriftUploadDetailPage extends ConsumerWidget { return Card( elevation: 0, - color: item.isFailed != null - ? context.colorScheme.errorContainer - : context.colorScheme.surfaceContainer, + color: item.isFailed != null ? context.colorScheme.errorContainer : context.colorScheme.surfaceContainer, shape: RoundedRectangleBorder( borderRadius: const BorderRadius.all( Radius.circular(16), @@ -119,8 +115,7 @@ class DriftUploadDetailPage extends ConsumerWidget { Text( 'Tap for more details', style: context.textTheme.bodySmall?.copyWith( - color: context.colorScheme.onSurface - .withValues(alpha: 0.6), + color: context.colorScheme.onSurface.withValues(alpha: 0.6), ), maxLines: 1, overflow: TextOverflow.ellipsis, @@ -163,13 +158,10 @@ class DriftUploadDetailPage extends ConsumerWidget { tween: Tween(begin: 0.0, end: progress), duration: const Duration(milliseconds: 300), builder: (context, value, _) => CircularProgressIndicator( - backgroundColor: - context.colorScheme.outline.withValues(alpha: 0.2), + backgroundColor: context.colorScheme.outline.withValues(alpha: 0.2), strokeWidth: 3, value: value, - color: isCompleted - ? context.colorScheme.primary - : context.colorScheme.secondary, + color: isCompleted ? context.colorScheme.primary : context.colorScheme.secondary, ), ), ), @@ -279,12 +271,10 @@ class FileDetailDialog extends ConsumerWidget { height: 128, decoration: BoxDecoration( border: Border.all( - color: context.colorScheme.outline - .withValues(alpha: 0.2), + color: context.colorScheme.outline.withValues(alpha: 0.2), width: 1, ), - borderRadius: - const BorderRadius.all(Radius.circular(12)), + borderRadius: const BorderRadius.all(Radius.circular(12)), ), child: asset != null ? Thumbnail( @@ -314,8 +304,7 @@ class FileDetailDialog extends ConsumerWidget { "File Size", formatHumanReadableBytes(uploadStatus.fileSize, 2), ), - if (asset.width != null) - _buildInfoRow(context, "Width", "${asset.width}px"), + if (asset.width != null) _buildInfoRow(context, "Width", "${asset.width}px"), if (asset.height != null) _buildInfoRow( context, diff --git a/mobile/lib/pages/backup/failed_backup_status.page.dart b/mobile/lib/pages/backup/failed_backup_status.page.dart index 167b0f2ebd..8d0faf2d22 100644 --- a/mobile/lib/pages/backup/failed_backup_status.page.dart +++ b/mobile/lib/pages/backup/failed_backup_status.page.dart @@ -97,9 +97,7 @@ class FailedBackupStatusPage extends HookConsumerWidget { ), style: TextStyle( fontWeight: FontWeight.w600, - color: context.isDarkTheme - ? Colors.white70 - : Colors.grey[800], + color: context.isDarkTheme ? Colors.white70 : Colors.grey[800], ), ), Icon( @@ -125,9 +123,7 @@ class FailedBackupStatusPage extends HookConsumerWidget { errorAsset.errorMessage, style: TextStyle( fontWeight: FontWeight.w500, - color: context.isDarkTheme - ? Colors.white70 - : Colors.grey[800], + color: context.isDarkTheme ? Colors.white70 : Colors.grey[800], ), ), ], diff --git a/mobile/lib/pages/common/activities.page.dart b/mobile/lib/pages/common/activities.page.dart index 776ee9977b..203df2d503 100644 --- a/mobile/lib/pages/common/activities.page.dart +++ b/mobile/lib/pages/common/activities.page.dart @@ -27,10 +27,8 @@ class ActivitiesPage extends HookConsumerWidget { final asset = ref.watch(currentAssetProvider); final user = ref.watch(currentUserProvider); - final activityNotifier = ref - .read(albumActivityProvider(album.remoteId!, asset?.remoteId).notifier); - final activities = - ref.watch(albumActivityProvider(album.remoteId!, asset?.remoteId)); + final activityNotifier = ref.read(albumActivityProvider(album.remoteId!, asset?.remoteId).notifier); + final activities = ref.watch(albumActivityProvider(album.remoteId!, asset?.remoteId)); final listViewScrollController = useScrollController(); @@ -49,10 +47,7 @@ class ActivitiesPage extends HookConsumerWidget { body: activities.widgetWhen( onData: (data) { final liked = data.firstWhereOrNull( - (a) => - a.type == ActivityType.like && - a.user.id == user?.id && - a.assetId == asset?.remoteId, + (a) => a.type == ActivityType.like && a.user.id == user?.id && a.assetId == asset?.remoteId, ); return SafeArea( @@ -71,18 +66,15 @@ class ActivitiesPage extends HookConsumerWidget { } final activity = data[index]; - final canDelete = activity.user.id == user?.id || - album.ownerId == user?.id; + final canDelete = activity.user.id == user?.id || album.ownerId == user?.id; return Padding( padding: const EdgeInsets.all(5), child: DismissibleActivity( activity.id, ActivityTile(activity), - onDismiss: canDelete - ? (activityId) async => await activityNotifier - .removeActivity(activity.id) - : null, + onDismiss: + canDelete ? (activityId) async => await activityNotifier.removeActivity(activity.id) : null, ), ); }, diff --git a/mobile/lib/pages/common/app_log_detail.page.dart b/mobile/lib/pages/common/app_log_detail.page.dart index b88d6aeb3a..d8647ca8e2 100644 --- a/mobile/lib/pages/common/app_log_detail.page.dart +++ b/mobile/lib/pages/common/app_log_detail.page.dart @@ -130,10 +130,8 @@ class AppLogDetailPage extends HookConsumerWidget { child: ListView( children: [ buildTextWithCopyButton("MESSAGE", logMessage.message), - if (logMessage.error != null) - buildTextWithCopyButton("DETAILS", logMessage.error.toString()), - if (logMessage.logger != null) - buildLogContext1(logMessage.logger.toString()), + if (logMessage.error != null) buildTextWithCopyButton("DETAILS", logMessage.error.toString()), + if (logMessage.logger != null) buildLogContext1(logMessage.logger.toString()), if (logMessage.stack != null) buildTextWithCopyButton( "STACK TRACE", diff --git a/mobile/lib/pages/common/change_experience.page.dart b/mobile/lib/pages/common/change_experience.page.dart index 3cd545ea33..21464e39fa 100644 --- a/mobile/lib/pages/common/change_experience.page.dart +++ b/mobile/lib/pages/common/change_experience.page.dart @@ -61,9 +61,7 @@ class _ChangeExperiencePageState extends ConsumerState { ref.read(websocketProvider.notifier).stopListenToOldEvents(); ref.read(websocketProvider.notifier).startListeningToBetaEvents(); - final permission = await ref - .read(galleryPermissionNotifier.notifier) - .requestGalleryPermission(); + final permission = await ref.read(galleryPermissionNotifier.notifier).requestGalleryPermission(); if (permission.isGranted) { await ref.read(backgroundSyncProvider).syncLocal(full: true); @@ -138,9 +136,7 @@ class _ChangeExperiencePageState extends ConsumerState { child: ElevatedButton( onPressed: () { context.replaceRoute( - widget.switchingToBeta - ? const TabShellRoute() - : const TabControllerRoute(), + widget.switchingToBeta ? const TabShellRoute() : const TabControllerRoute(), ); }, child: const Text("Continue"), diff --git a/mobile/lib/pages/common/create_album.page.dart b/mobile/lib/pages/common/create_album.page.dart index faf1671a9e..02e1ea18d4 100644 --- a/mobile/lib/pages/common/create_album.page.dart +++ b/mobile/lib/pages/common/create_album.page.dart @@ -27,8 +27,7 @@ class CreateAlbumPage extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final albumTitleController = - useTextEditingController.fromValue(TextEditingValue.empty); + final albumTitleController = useTextEditingController.fromValue(TextEditingValue.empty); final albumTitleTextFieldFocusNode = useFocusNode(); final albumDescriptionTextFieldFocusNode = useFocusNode(); final isAlbumTitleTextFieldFocus = useState(false); @@ -45,15 +44,12 @@ class CreateAlbumPage extends HookConsumerWidget { if (albumTitleController.text.isEmpty) { albumTitleController.text = 'create_album_page_untitled'.tr(); isAlbumTitleEmpty.value = false; - ref - .watch(albumTitleProvider.notifier) - .setAlbumTitle('create_album_page_untitled'.tr()); + ref.watch(albumTitleProvider.notifier).setAlbumTitle('create_album_page_untitled'.tr()); } } onSelectPhotosButtonPressed() async { - AssetSelectionPageResult? selectedAsset = - await context.pushRoute( + AssetSelectionPageResult? selectedAsset = await context.pushRoute( AlbumAssetSelectionRoute( existingAssets: selectedAssets.value, canDeselect: true, @@ -118,8 +114,7 @@ class CreateAlbumPage extends HookConsumerWidget { child: FilledButton.icon( style: FilledButton.styleFrom( alignment: Alignment.centerLeft, - padding: - const EdgeInsets.symmetric(vertical: 24, horizontal: 16), + padding: const EdgeInsets.symmetric(vertical: 24, horizontal: 16), shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all( Radius.circular(10), @@ -230,15 +225,12 @@ class CreateAlbumPage extends HookConsumerWidget { ).tr(), actions: [ TextButton( - onPressed: - albumTitleController.text.isNotEmpty ? createAlbum : null, + onPressed: albumTitleController.text.isNotEmpty ? createAlbum : null, child: Text( 'create'.tr(), style: TextStyle( fontWeight: FontWeight.bold, - color: albumTitleController.text.isNotEmpty - ? context.primaryColor - : context.themeData.disabledColor, + color: albumTitleController.text.isNotEmpty ? context.primaryColor : context.themeData.disabledColor, ), ), ), diff --git a/mobile/lib/pages/common/download_panel.dart b/mobile/lib/pages/common/download_panel.dart index cc543c9e4e..38212d5486 100644 --- a/mobile/lib/pages/common/download_panel.dart +++ b/mobile/lib/pages/common/download_panel.dart @@ -34,8 +34,7 @@ class DownloadPanel extends ConsumerWidget { duration: const Duration(milliseconds: 300), child: showProgress ? ConstrainedBox( - constraints: - BoxConstraints.loose(Size(context.width - 32, 300)), + constraints: BoxConstraints.loose(Size(context.width - 32, 300)), child: ListView.builder( shrinkWrap: true, itemCount: tasks.length, @@ -122,8 +121,7 @@ class DownloadTaskTile extends StatelessWidget { child: LinearProgressIndicator( minHeight: 8.0, value: progress, - borderRadius: - const BorderRadius.all(Radius.circular(10.0)), + borderRadius: const BorderRadius.all(Radius.circular(10.0)), ), ), const SizedBox(width: 8), diff --git a/mobile/lib/pages/common/gallery_viewer.page.dart b/mobile/lib/pages/common/gallery_viewer.page.dart index 539406365a..05389018da 100644 --- a/mobile/lib/pages/common/gallery_viewer.page.dart +++ b/mobile/lib/pages/common/gallery_viewer.page.dart @@ -267,8 +267,7 @@ class GalleryViewerPage extends HookConsumerWidget { PhotoViewGalleryPageOptions buildVideo(BuildContext context, Asset asset) { return PhotoViewGalleryPageOptions.customChild( - onDragStart: (_, details, __, ___) => - localPosition.value = details.localPosition, + onDragStart: (_, details, __, ___) => localPosition.value = details.localPosition, onDragUpdate: (_, details, __) => handleSwipeUpDown(details), heroAttributes: _getHeroAttributes(asset), filterQuality: FilterQuality.high, @@ -304,8 +303,7 @@ class GalleryViewerPage extends HookConsumerWidget { final stackId = newAsset.stackId; if (stackId != null && currentIndex.value == index) { - final stackElements = - ref.read(assetStackStateProvider(newAsset.stackId!)); + final stackElements = ref.read(assetStackStateProvider(newAsset.stackId!)); if (stackIndex.value < stackElements.length) { newAsset = stackElements.elementAt(stackIndex.value); } @@ -319,8 +317,7 @@ class GalleryViewerPage extends HookConsumerWidget { return PopScope( // Change immersive mode back to normal "edgeToEdge" mode - onPopInvokedWithResult: (didPop, _) => - SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge), + onPopInvokedWithResult: (didPop, _) => SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge), child: Scaffold( backgroundColor: Colors.black, body: Stack( @@ -335,8 +332,7 @@ class GalleryViewerPage extends HookConsumerWidget { if (asset.isImage && !ref.read(isPlayingMotionVideoProvider)) { isZoomed.value = state != PhotoViewScaleState.initial; - ref.read(showControlsProvider.notifier).show = - !isZoomed.value; + ref.read(showControlsProvider.notifier).show = !isZoomed.value; } }, gaplessPlayback: true, @@ -454,9 +450,7 @@ class GalleryViewerPage extends HookConsumerWidget { @pragma('vm:prefer-inline') PhotoViewHeroAttributes _getHeroAttributes(Asset asset) { return PhotoViewHeroAttributes( - tag: asset.isInDb - ? asset.id + heroOffset - : '${asset.remoteId}-$heroOffset', + tag: asset.isInDb ? asset.id + heroOffset : '${asset.remoteId}-$heroOffset', transitionOnUserGestures: true, ); } diff --git a/mobile/lib/pages/common/large_leading_tile.dart b/mobile/lib/pages/common/large_leading_tile.dart index 4f22a5f2b2..d36e296429 100644 --- a/mobile/lib/pages/common/large_leading_tile.dart +++ b/mobile/lib/pages/common/large_leading_tile.dart @@ -40,8 +40,7 @@ class LargeLeadingTile extends StatelessWidget { child: Container( decoration: BoxDecoration( color: selected - ? selectedTileColor ?? - Theme.of(context).primaryColor.withAlpha(30) + ? selectedTileColor ?? Theme.of(context).primaryColor.withAlpha(30) : tileColor ?? Colors.transparent, borderRadius: BorderRadius.circular(borderRadius), ), diff --git a/mobile/lib/pages/common/native_video_viewer.page.dart b/mobile/lib/pages/common/native_video_viewer.page.dart index 5c1dd8fc66..0dbaf6125c 100644 --- a/mobile/lib/pages/common/native_video_viewer.page.dart +++ b/mobile/lib/pages/common/native_video_viewer.page.dart @@ -87,11 +87,9 @@ class NativeVideoViewerPage extends HookConsumerWidget { // Use a network URL for the video player controller final serverEndpoint = Store.get(StoreKey.serverEndpoint); - final isOriginalVideo = ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.loadOriginalVideo); - final String postfixUrl = - isOriginalVideo ? 'original' : 'video/playback'; + final isOriginalVideo = + ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.loadOriginalVideo); + final String postfixUrl = isOriginalVideo ? 'original' : 'video/playback'; final String videoUrl = asset.livePhotoVideoId != null ? '$serverEndpoint/assets/${asset.livePhotoVideoId}/$postfixUrl' : '$serverEndpoint/assets/${asset.remoteId}/$postfixUrl'; @@ -119,8 +117,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { } try { - aspectRatio.value = - await ref.read(assetServiceProvider).getAspectRatio(asset); + aspectRatio.value = await ref.read(assetServiceProvider).getAspectRatio(asset); } catch (error) { log.severe( 'Error getting aspect ratio for asset ${asset.fileName}: $error', @@ -135,8 +132,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { } final videoPlayback = ref.read(videoPlaybackValueProvider); - if ((isBuffering.value || - videoPlayback.state == VideoPlaybackState.initializing) && + if ((isBuffering.value || videoPlayback.state == VideoPlaybackState.initializing) && videoPlayback.state != VideoPlaybackState.buffering) { ref.read(videoPlaybackValueProvider.notifier).value = videoPlayback.copyWith(state: VideoPlaybackState.buffering); @@ -195,8 +191,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { return; } - final videoPlayback = - VideoPlaybackValue.fromNativeController(videoController); + final videoPlayback = VideoPlaybackValue.fromNativeController(videoController); ref.read(videoPlaybackValueProvider.notifier).value = videoPlayback; isVideoReady.value = true; @@ -215,8 +210,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { return; } - final videoPlayback = - VideoPlaybackValue.fromNativeController(videoController); + final videoPlayback = VideoPlaybackValue.fromNativeController(videoController); if (videoPlayback.state == VideoPlaybackState.playing) { // Sync with the controls playing WakelockPlus.enable(); @@ -225,8 +219,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { WakelockPlus.disable(); } - ref.read(videoPlaybackValueProvider.notifier).status = - videoPlayback.state; + ref.read(videoPlaybackValueProvider.notifier).status = videoPlayback.state; } void onPlaybackPositionChanged() { @@ -245,8 +238,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { return; } - ref.read(videoPlaybackValueProvider.notifier).position = - Duration(seconds: playbackInfo.position); + ref.read(videoPlaybackValueProvider.notifier).position = Duration(seconds: playbackInfo.position); // Check if the video is buffering if (playbackInfo.status == PlaybackStatus.playing) { @@ -265,18 +257,14 @@ class NativeVideoViewerPage extends HookConsumerWidget { } if (videoController.playbackInfo?.status == PlaybackStatus.stopped && - !ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.loopVideo)) { + !ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.loopVideo)) { ref.read(isPlayingMotionVideoProvider.notifier).playing = false; } } void removeListeners(NativeVideoPlayerController controller) { - controller.onPlaybackPositionChanged - .removeListener(onPlaybackPositionChanged); - controller.onPlaybackStatusChanged - .removeListener(onPlaybackStatusChanged); + controller.onPlaybackPositionChanged.removeListener(onPlaybackPositionChanged); + controller.onPlaybackStatusChanged.removeListener(onPlaybackStatusChanged); controller.onPlaybackReady.removeListener(onPlaybackReady); controller.onPlaybackEnded.removeListener(onPlaybackEnded); } @@ -301,9 +289,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { nc.loadVideoSource(source).catchError((error) { log.severe('Error loading video source: $error'); }); - final loopVideo = ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.loopVideo); + final loopVideo = ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.loopVideo); nc.setLoop(loopVideo); controller.value = nc; @@ -397,8 +383,7 @@ class NativeVideoViewerPage extends HookConsumerWidget { children: [ // This remains under the video to avoid flickering // For motion videos, this is the image portion of the asset - if (!isVideoReady.value || asset.isMotionPhoto) - Center(key: ValueKey(asset.id), child: image), + if (!isVideoReady.value || asset.isMotionPhoto) Center(key: ValueKey(asset.id), child: image), if (aspectRatio.value != null && !isCasting) Visibility.maintain( key: ValueKey(asset), diff --git a/mobile/lib/pages/common/settings.page.dart b/mobile/lib/pages/common/settings.page.dart index 439e5068a3..11ae053a68 100644 --- a/mobile/lib/pages/common/settings.page.dart +++ b/mobile/lib/pages/common/settings.page.dart @@ -129,8 +129,7 @@ class _TabletLayout extends HookWidget { const _TabletLayout(); @override Widget build(BuildContext context) { - final selectedSection = - useState(SettingSection.values.first); + final selectedSection = useState(SettingSection.values.first); return Row( mainAxisAlignment: MainAxisAlignment.start, diff --git a/mobile/lib/pages/common/splash_screen.page.dart b/mobile/lib/pages/common/splash_screen.page.dart index 598e920651..a8af0df763 100644 --- a/mobile/lib/pages/common/splash_screen.page.dart +++ b/mobile/lib/pages/common/splash_screen.page.dart @@ -74,9 +74,7 @@ class SplashScreenPageState extends ConsumerState { if (context.router.current.name == SplashScreenRoute.name) { context.replaceRoute( - Store.isBetaTimelineEnabled - ? const TabShellRoute() - : const TabControllerRoute(), + Store.isBetaTimelineEnabled ? const TabShellRoute() : const TabControllerRoute(), ); } @@ -84,8 +82,7 @@ class SplashScreenPageState extends ConsumerState { return; } - final hasPermission = - await ref.read(galleryPermissionNotifier.notifier).hasPermission; + final hasPermission = await ref.read(galleryPermissionNotifier.notifier).hasPermission; if (hasPermission) { // Resume backup (if enable) then navigate ref.watch(backupProvider.notifier).resumeBackup(); diff --git a/mobile/lib/pages/common/tab_controller.page.dart b/mobile/lib/pages/common/tab_controller.page.dart index e713b3f8da..676b1db11b 100644 --- a/mobile/lib/pages/common/tab_controller.page.dart +++ b/mobile/lib/pages/common/tab_controller.page.dart @@ -20,8 +20,7 @@ class TabControllerPage extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final isRefreshingAssets = ref.watch(assetProvider); final isRefreshingRemoteAlbums = ref.watch(isRefreshingRemoteAlbumProvider); - final isScreenLandscape = - MediaQuery.orientationOf(context) == Orientation.landscape; + final isScreenLandscape = MediaQuery.orientationOf(context) == Orientation.landscape; Widget buildIcon({required Widget icon, required bool isProcessing}) { if (!isProcessing) return icon; @@ -118,8 +117,7 @@ class TabControllerPage extends HookConsumerWidget { Widget bottomNavigationBar(TabsRouter tabsRouter) { return NavigationBar( selectedIndex: tabsRouter.activeIndex, - onDestinationSelected: (index) => - onNavigationSelected(tabsRouter, index), + onDestinationSelected: (index) => onNavigationSelected(tabsRouter, index), destinations: navigationDestinations, ); } @@ -135,8 +133,7 @@ class TabControllerPage extends HookConsumerWidget { ), ) .toList(), - onDestinationSelected: (index) => - onNavigationSelected(tabsRouter, index), + onDestinationSelected: (index) => onNavigationSelected(tabsRouter, index), selectedIndex: tabsRouter.activeIndex, labelType: NavigationRailLabelType.all, groupAlignment: 0.0, @@ -160,8 +157,7 @@ class TabControllerPage extends HookConsumerWidget { final tabsRouter = AutoTabsRouter.of(context); return PopScope( canPop: tabsRouter.activeIndex == 0, - onPopInvokedWithResult: (didPop, _) => - !didPop ? tabsRouter.setActiveIndex(0) : null, + onPopInvokedWithResult: (didPop, _) => !didPop ? tabsRouter.setActiveIndex(0) : null, child: Scaffold( resizeToAvoidBottomInset: false, body: isScreenLandscape @@ -173,9 +169,7 @@ class TabControllerPage extends HookConsumerWidget { ], ) : child, - bottomNavigationBar: multiselectEnabled || isScreenLandscape - ? null - : bottomNavigationBar(tabsRouter), + bottomNavigationBar: multiselectEnabled || isScreenLandscape ? null : bottomNavigationBar(tabsRouter), ), ); }, diff --git a/mobile/lib/pages/common/tab_shell.page.dart b/mobile/lib/pages/common/tab_shell.page.dart index 418c8b9e39..5129f6b159 100644 --- a/mobile/lib/pages/common/tab_shell.page.dart +++ b/mobile/lib/pages/common/tab_shell.page.dart @@ -33,9 +33,7 @@ class _TabShellPageState extends ConsumerState { WidgetsBinding.instance.addPostFrameCallback((_) async { ref.read(websocketProvider.notifier).connect(); - final isEnableBackup = ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableBackup); + final isEnableBackup = ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableBackup); await runNewSync(ref, full: true).then((_) async { if (isEnableBackup) { @@ -44,9 +42,7 @@ class _TabShellPageState extends ConsumerState { return; } - await ref - .read(driftBackupProvider.notifier) - .handleBackupResume(currentUser.id); + await ref.read(driftBackupProvider.notifier).handleBackupResume(currentUser.id); } }); }); @@ -110,8 +106,7 @@ class _TabShellPageState extends ConsumerState { ), ) .toList(), - onDestinationSelected: (index) => - _onNavigationSelected(tabsRouter, index, ref), + onDestinationSelected: (index) => _onNavigationSelected(tabsRouter, index, ref), selectedIndex: tabsRouter.activeIndex, labelType: NavigationRailLabelType.all, groupAlignment: 0.0, @@ -134,8 +129,7 @@ class _TabShellPageState extends ConsumerState { final tabsRouter = AutoTabsRouter.of(context); return PopScope( canPop: tabsRouter.activeIndex == 0, - onPopInvokedWithResult: (didPop, _) => - !didPop ? tabsRouter.setActiveIndex(0) : null, + onPopInvokedWithResult: (didPop, _) => !didPop ? tabsRouter.setActiveIndex(0) : null, child: Scaffold( resizeToAvoidBottomInset: false, body: isScreenLandscape @@ -191,8 +185,7 @@ class _BottomNavigationBar extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final isScreenLandscape = context.orientation == Orientation.landscape; - final isMultiselectEnabled = - ref.watch(multiSelectProvider.select((s) => s.isEnabled)); + final isMultiselectEnabled = ref.watch(multiSelectProvider.select((s) => s.isEnabled)); if (isScreenLandscape || isMultiselectEnabled) { return const SizedBox.shrink(); @@ -200,8 +193,7 @@ class _BottomNavigationBar extends ConsumerWidget { return NavigationBar( selectedIndex: tabsRouter.activeIndex, - onDestinationSelected: (index) => - _onNavigationSelected(tabsRouter, index, ref), + onDestinationSelected: (index) => _onNavigationSelected(tabsRouter, index, ref), destinations: destinations, ); } diff --git a/mobile/lib/pages/editing/crop.page.dart b/mobile/lib/pages/editing/crop.page.dart index f7f459c770..97ef069e7b 100644 --- a/mobile/lib/pages/editing/crop.page.dart +++ b/mobile/lib/pages/editing/crop.page.dart @@ -187,9 +187,7 @@ class _AspectRatioButton extends StatelessWidget { '7:5' => Icons.crop_7_5_rounded, _ => Icons.crop_free_rounded, }, - color: aspectRatio.value == ratio - ? context.primaryColor - : context.themeData.iconTheme.color, + color: aspectRatio.value == ratio ? context.primaryColor : context.themeData.iconTheme.color, ), onPressed: () { cropController.crop = const Rect.fromLTRB(0.1, 0.1, 0.9, 0.9); diff --git a/mobile/lib/pages/editing/edit.page.dart b/mobile/lib/pages/editing/edit.page.dart index d37941f4fe..70940e9552 100644 --- a/mobile/lib/pages/editing/edit.page.dart +++ b/mobile/lib/pages/editing/edit.page.dart @@ -40,9 +40,7 @@ class EditImagePage extends ConsumerWidget { image.image.resolve(const ImageConfiguration()).addListener( ImageStreamListener( (ImageInfo info, bool _) { - info.image - .toByteData(format: ImageByteFormat.png) - .then((byteData) { + info.image.toByteData(format: ImageByteFormat.png).then((byteData) { if (byteData != null) { completer.complete(byteData.buffer.asUint8List()); } else { @@ -50,8 +48,7 @@ class EditImagePage extends ConsumerWidget { } }); }, - onError: (exception, stackTrace) => - completer.completeError(exception), + onError: (exception, stackTrace) => completer.completeError(exception), ), ); return completer.future; @@ -103,9 +100,7 @@ class EditImagePage extends ConsumerWidget { ), actions: [ TextButton( - onPressed: isEdited - ? () => _saveEditedImage(context, asset, image, ref) - : null, + onPressed: isEdited ? () => _saveEditedImage(context, asset, image, ref) : null, child: Text( "save_to_gallery".tr(), style: TextStyle( diff --git a/mobile/lib/pages/editing/filter.page.dart b/mobile/lib/pages/editing/filter.page.dart index 9af065489d..3dc8d28a94 100644 --- a/mobile/lib/pages/editing/filter.page.dart +++ b/mobile/lib/pages/editing/filter.page.dart @@ -34,18 +34,14 @@ class FilterImagePage extends HookWidget { ColorFilter filter, ) { final completer = Completer(); - final size = - Size(inputImage.width.toDouble(), inputImage.height.toDouble()); + final size = Size(inputImage.width.toDouble(), inputImage.height.toDouble()); final recorder = ui.PictureRecorder(); final canvas = Canvas(recorder); final paint = Paint()..colorFilter = filter; canvas.drawImage(inputImage, Offset.zero, paint); - recorder - .endRecording() - .toImage(size.width.round(), size.height.round()) - .then((image) { + recorder.endRecording().toImage(size.width.round(), size.height.round()).then((image) { completer.complete(image); }); @@ -67,8 +63,7 @@ class FilterImagePage extends HookWidget { final uiImage = await completer.future; final filteredUiImage = await createFilteredImage(uiImage, filter); - final byteData = - await filteredUiImage.toByteData(format: ui.ImageByteFormat.png); + final byteData = await filteredUiImage.toByteData(format: ui.ImageByteFormat.png); final pngBytes = byteData!.buffer.asUint8List(); return Image.memory(pngBytes, fit: BoxFit.contain); @@ -87,8 +82,7 @@ class FilterImagePage extends HookWidget { size: 24, ), onPressed: () async { - final filteredImage = - await applyFilterAndConvert(colorFilter.value); + final filteredImage = await applyFilterAndConvert(colorFilter.value); context.pushRoute( EditImageRoute( asset: asset, @@ -165,9 +159,7 @@ class _FilterButton extends StatelessWidget { borderRadius: const BorderRadius.all( Radius.circular(10), ), - border: isSelected - ? Border.all(color: context.primaryColor, width: 3) - : null, + border: isSelected ? Border.all(color: context.primaryColor, width: 3) : null, ), child: ClipRRect( borderRadius: const BorderRadius.all( diff --git a/mobile/lib/pages/library/folder/folder.page.dart b/mobile/lib/pages/library/folder/folder.page.dart index 6ac7d60f9b..d089aace6e 100644 --- a/mobile/lib/pages/library/folder/folder.page.dart +++ b/mobile/lib/pages/library/folder/folder.page.dart @@ -21,9 +21,7 @@ RecursiveFolder? _findFolderInStructure( RecursiveFolder targetFolder, ) { for (final folder in rootFolder.subfolders) { - if (targetFolder.path == '/' && - folder.path.isEmpty && - folder.name == targetFolder.name) { + if (targetFolder.path == '/' && folder.path.isEmpty && folder.name == targetFolder.name) { return folder; } @@ -54,9 +52,7 @@ class FolderPage extends HookConsumerWidget { useEffect( () { if (folder == null) { - ref - .read(folderStructureProvider.notifier) - .fetchFolders(sortOrder.value); + ref.read(folderStructureProvider.notifier).fetchFolders(sortOrder.value); } return null; }, @@ -67,8 +63,7 @@ class FolderPage extends HookConsumerWidget { useEffect( () { if (folder != null && folderState.hasValue) { - final updatedFolder = - _findFolderInStructure(folderState.value!, folder!); + final updatedFolder = _findFolderInStructure(folderState.value!, folder!); if (updatedFolder != null) { currentFolder.value = updatedFolder; } @@ -79,8 +74,7 @@ class FolderPage extends HookConsumerWidget { ); void onToggleSortOrder() { - final newOrder = - sortOrder.value == SortOrder.asc ? SortOrder.desc : SortOrder.asc; + final newOrder = sortOrder.value == SortOrder.asc ? SortOrder.desc : SortOrder.asc; ref.read(folderStructureProvider.notifier).fetchFolders(newOrder); @@ -151,9 +145,7 @@ class FolderContent extends HookConsumerWidget { useEffect( () { if (folder == null) return; - ref - .read(folderRenderListProvider(folder!).notifier) - .fetchAssets(sortOrder); + ref.read(folderRenderListProvider(folder!).notifier).fetchAssets(sortOrder); return null; }, [folder], @@ -211,13 +203,10 @@ class FolderContent extends HookConsumerWidget { ), ) : null, - onTap: () => - context.pushRoute(FolderRoute(folder: subfolder)), + onTap: () => context.pushRoute(FolderRoute(folder: subfolder)), ), ), - if (!list.isEmpty && - list.allAssets != null && - list.allAssets!.isNotEmpty) + if (!list.isEmpty && list.allAssets != null && list.allAssets!.isNotEmpty) ...list.allAssets!.map( (asset) => LargeLeadingTile( onTap: () { diff --git a/mobile/lib/pages/library/library.page.dart b/mobile/lib/pages/library/library.page.dart index a9ef479e2c..f51817d067 100644 --- a/mobile/lib/pages/library/library.page.dart +++ b/mobile/lib/pages/library/library.page.dart @@ -25,8 +25,7 @@ class LibraryPage extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { context.locale; - final trashEnabled = - ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash)); + final trashEnabled = ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash)); return Scaffold( appBar: const ImmichAppBar(), @@ -388,8 +387,7 @@ class PlacesCollectionCard extends StatelessWidget { child: DecoratedBox( decoration: BoxDecoration( borderRadius: const BorderRadius.all(Radius.circular(20)), - color: - context.colorScheme.secondaryContainer.withAlpha(100), + color: context.colorScheme.secondaryContainer.withAlpha(100), ), child: IgnorePointer( child: MapThumbnail( @@ -399,9 +397,7 @@ class PlacesCollectionCard extends StatelessWidget { -157.91959, ), showAttribution: false, - themeMode: context.isDarkTheme - ? ThemeMode.dark - : ThemeMode.light, + themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, ), ), ), diff --git a/mobile/lib/pages/library/local_albums.page.dart b/mobile/lib/pages/library/local_albums.page.dart index 9eceaca205..5c6091c76d 100644 --- a/mobile/lib/pages/library/local_albums.page.dart +++ b/mobile/lib/pages/library/local_albums.page.dart @@ -54,8 +54,7 @@ class LocalAlbumsPage extends HookConsumerWidget { color: context.colorScheme.onSurfaceSecondary, ), ), - onTap: () => context - .pushRoute(AlbumViewerRoute(albumId: albums[index].id)), + onTap: () => context.pushRoute(AlbumViewerRoute(albumId: albums[index].id)), ), ); }, diff --git a/mobile/lib/pages/library/locked/pin_auth.page.dart b/mobile/lib/pages/library/locked/pin_auth.page.dart index 9bfd96ed74..abe2247927 100644 --- a/mobile/lib/pages/library/locked/pin_auth.page.dart +++ b/mobile/lib/pages/library/locked/pin_auth.page.dart @@ -23,11 +23,10 @@ class PinAuthPage extends HookConsumerWidget { final isBetaTimeline = Store.isBetaTimelineEnabled; Future registerBiometric(String pinCode) async { - final isRegistered = - await ref.read(localAuthProvider.notifier).registerBiometric( - context, - pinCode, - ); + final isRegistered = await ref.read(localAuthProvider.notifier).registerBiometric( + context, + pinCode, + ); if (isRegistered) { context.showSnackBar( @@ -101,8 +100,7 @@ class PinAuthPage extends HookConsumerWidget { autoFocus: true, onSuccess: (_) { if (isBetaTimeline) { - context - .replaceRoute(const DriftLockedFolderRoute()); + context.replaceRoute(const DriftLockedFolderRoute()); } else { context.replaceRoute(const LockedRoute()); } diff --git a/mobile/lib/pages/library/partner/drift_partner.page.dart b/mobile/lib/pages/library/partner/drift_partner.page.dart index 04efbe066c..d65f2bc094 100644 --- a/mobile/lib/pages/library/partner/drift_partner.page.dart +++ b/mobile/lib/pages/library/partner/drift_partner.page.dart @@ -63,10 +63,8 @@ class DriftPartnerPage extends HookConsumerWidget { builder: (BuildContext context) { return ConfirmDialog( title: "stop_photo_sharing", - content: "partner_page_stop_sharing_content" - .tr(namedArgs: {'partner': partner.name}), - onOk: () => - ref.read(partnerUsersProvider.notifier).removePartner(partner), + content: "partner_page_stop_sharing_content".tr(namedArgs: {'partner': partner.name}), + onOk: () => ref.read(partnerUsersProvider.notifier).removePartner(partner), ); }, ); diff --git a/mobile/lib/pages/library/partner/partner.page.dart b/mobile/lib/pages/library/partner/partner.page.dart index 91b661e7ce..fb0dfe2ec3 100644 --- a/mobile/lib/pages/library/partner/partner.page.dart +++ b/mobile/lib/pages/library/partner/partner.page.dart @@ -53,8 +53,7 @@ class PartnerPage extends HookConsumerWidget { }, ); if (selectedUser != null) { - final ok = - await ref.read(partnerServiceProvider).addPartner(selectedUser); + final ok = await ref.read(partnerServiceProvider).addPartner(selectedUser); if (ok) { ref.invalidate(partnerSharedByProvider); } else { @@ -73,8 +72,7 @@ class PartnerPage extends HookConsumerWidget { builder: (BuildContext context) { return ConfirmDialog( title: "stop_photo_sharing", - content: "partner_page_stop_sharing_content" - .tr(namedArgs: {'partner': u.name}), + content: "partner_page_stop_sharing_content".tr(namedArgs: {'partner': u.name}), onOk: () => ref.read(partnerServiceProvider).removePartner(u), ); }, @@ -149,8 +147,7 @@ class PartnerPage extends HookConsumerWidget { centerTitle: false, actions: [ IconButton( - onPressed: - availableUsers.whenOrNull(data: (data) => addNewUsersHandler), + onPressed: availableUsers.whenOrNull(data: (data) => addNewUsersHandler), icon: const Icon(Icons.person_add), tooltip: "add_partner".tr(), ), diff --git a/mobile/lib/pages/library/partner/partner_detail.page.dart b/mobile/lib/pages/library/partner/partner_detail.page.dart index 94e098b973..78af3f0939 100644 --- a/mobile/lib/pages/library/partner/partner_detail.page.dart +++ b/mobile/lib/pages/library/partner/partner_detail.page.dart @@ -38,9 +38,8 @@ class PartnerDetailPage extends HookConsumerWidget { if (toggleInProcess) return; toggleInProcess = true; try { - final ok = await ref - .read(partnerSharedWithProvider.notifier) - .updatePartner(partner, inTimeline: !inTimeline.value); + final ok = + await ref.read(partnerSharedWithProvider.notifier).updatePartner(partner, inTimeline: !inTimeline.value); if (ok) { inTimeline.value = !inTimeline.value; final action = inTimeline.value ? "shown on" : "hidden from"; diff --git a/mobile/lib/pages/library/people/people_collection.page.dart b/mobile/lib/pages/library/people/people_collection.page.dart index b98e46aabe..837553ac40 100644 --- a/mobile/lib/pages/library/people/people_collection.page.dart +++ b/mobile/lib/pages/library/people/people_collection.page.dart @@ -66,9 +66,7 @@ class PeopleCollectionPage extends HookConsumerWidget { data: (people) { if (search.value != null) { people = people.where((person) { - return person.name - .toLowerCase() - .contains(search.value!.toLowerCase()); + return person.name.toLowerCase().contains(search.value!.toLowerCase()); }).toList(); } return GridView.builder( @@ -107,8 +105,7 @@ class PeopleCollectionPage extends HookConsumerWidget { ), const SizedBox(height: 12), GestureDetector( - onTap: () => - showNameEditModel(person.id, person.name), + onTap: () => showNameEditModel(person.id, person.name), child: person.name.isEmpty ? Text( 'add_a_name'.tr(), @@ -124,8 +121,7 @@ class PeopleCollectionPage extends HookConsumerWidget { child: Text( person.name, overflow: TextOverflow.ellipsis, - style: - context.textTheme.titleSmall?.copyWith( + style: context.textTheme.titleSmall?.copyWith( fontWeight: FontWeight.w500, ), ), diff --git a/mobile/lib/pages/library/places/places_collection.page.dart b/mobile/lib/pages/library/places/places_collection.page.dart index b98537d515..98bf372a96 100644 --- a/mobile/lib/pages/library/places/places_collection.page.dart +++ b/mobile/lib/pages/library/places/places_collection.page.dart @@ -59,8 +59,7 @@ class PlacesCollectionPage extends HookConsumerWidget { height: 200, width: context.width, child: MapThumbnail( - onTap: (_, __) => context - .pushRoute(MapRoute(initialLocation: currentLocation)), + onTap: (_, __) => context.pushRoute(MapRoute(initialLocation: currentLocation)), zoom: 8, centre: currentLocation ?? const LatLng( @@ -68,8 +67,7 @@ class PlacesCollectionPage extends HookConsumerWidget { -157.91959, ), showAttribution: false, - themeMode: - context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, + themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, ), ), ), @@ -77,9 +75,7 @@ class PlacesCollectionPage extends HookConsumerWidget { data: (places) { if (search.value != null) { places = places.where((place) { - return place.label - .toLowerCase() - .contains(search.value!.toLowerCase()); + return place.label.toLowerCase().contains(search.value!.toLowerCase()); }).toList(); } return ListView.builder( @@ -110,8 +106,7 @@ class PlaceTile extends StatelessWidget { @override Widget build(BuildContext context) { - final thumbnailUrl = - '${Store.get(StoreKey.serverEndpoint)}/assets/$id/thumbnail'; + final thumbnailUrl = '${Store.get(StoreKey.serverEndpoint)}/assets/$id/thumbnail'; void navigateToPlace() { context.pushRoute( @@ -152,8 +147,7 @@ class PlaceTile extends StatelessWidget { fit: BoxFit.cover, imageUrl: thumbnailUrl, httpHeaders: ApiService.getRequestHeaders(), - errorWidget: (context, url, error) => - const Icon(Icons.image_not_supported_outlined), + errorWidget: (context, url, error) => const Icon(Icons.image_not_supported_outlined), ), ), ); diff --git a/mobile/lib/pages/library/shared_link/shared_link.page.dart b/mobile/lib/pages/library/shared_link/shared_link.page.dart index 8873e9b443..94af8f913b 100644 --- a/mobile/lib/pages/library/shared_link/shared_link.page.dart +++ b/mobile/lib/pages/library/shared_link/shared_link.page.dart @@ -58,8 +58,7 @@ class SharedLinkPage extends HookConsumerWidget { child: Icon( Icons.link_off, size: 100, - color: - context.themeData.iconTheme.color?.withValues(alpha: 0.5), + color: context.themeData.iconTheme.color?.withValues(alpha: 0.5), ), ), ), @@ -86,8 +85,7 @@ class SharedLinkPage extends HookConsumerWidget { if (constraints.maxWidth > 600) { // Two column return GridView.builder( - gridDelegate: - const SliverGridDelegateWithFixedCrossAxisCount( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, mainAxisExtent: 180, ), @@ -121,8 +119,7 @@ class SharedLinkPage extends HookConsumerWidget { body: SafeArea( child: sharedLinks.widgetWhen( onError: (error, stackTrace) => buildNoShares(), - onData: (links) => - links.isNotEmpty ? buildSharesList(links) : buildNoShares(), + onData: (links) => links.isNotEmpty ? buildSharesList(links) : buildNoShares(), ), ), ); diff --git a/mobile/lib/pages/library/shared_link/shared_link_edit.page.dart b/mobile/lib/pages/library/shared_link/shared_link_edit.page.dart index 6c18841089..c6db85a0fa 100644 --- a/mobile/lib/pages/library/shared_link/shared_link_edit.page.dart +++ b/mobile/lib/pages/library/shared_link/shared_link_edit.page.dart @@ -31,11 +31,9 @@ class SharedLinkEditPage extends HookConsumerWidget { const padding = 20.0; final themeData = context.themeData; final colorScheme = context.colorScheme; - final descriptionController = - useTextEditingController(text: existingLink?.description ?? ""); + final descriptionController = useTextEditingController(text: existingLink?.description ?? ""); final descriptionFocusNode = useFocusNode(); - final passwordController = - useTextEditingController(text: existingLink?.password ?? ""); + final passwordController = useTextEditingController(text: existingLink?.password ?? ""); final showMetadata = useState(existingLink?.showMetadata ?? true); final allowDownload = useState(existingLink?.allowDownload ?? true); final allowUpload = useState(existingLink?.allowUpload ?? false); @@ -155,15 +153,12 @@ class SharedLinkEditPage extends HookConsumerWidget { Widget buildShowMetaButton() { return SwitchListTile.adaptive( value: showMetadata.value, - onChanged: newShareLink.value.isEmpty - ? (value) => showMetadata.value = value - : null, + onChanged: newShareLink.value.isEmpty ? (value) => showMetadata.value = value : null, activeColor: colorScheme.primary, dense: true, title: Text( "show_metadata", - style: themeData.textTheme.labelLarge - ?.copyWith(fontWeight: FontWeight.bold), + style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold), ).tr(), ); } @@ -171,15 +166,12 @@ class SharedLinkEditPage extends HookConsumerWidget { Widget buildAllowDownloadButton() { return SwitchListTile.adaptive( value: allowDownload.value, - onChanged: newShareLink.value.isEmpty - ? (value) => allowDownload.value = value - : null, + onChanged: newShareLink.value.isEmpty ? (value) => allowDownload.value = value : null, activeColor: colorScheme.primary, dense: true, title: Text( "allow_public_user_to_download", - style: themeData.textTheme.labelLarge - ?.copyWith(fontWeight: FontWeight.bold), + style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold), ).tr(), ); } @@ -187,15 +179,12 @@ class SharedLinkEditPage extends HookConsumerWidget { Widget buildAllowUploadButton() { return SwitchListTile.adaptive( value: allowUpload.value, - onChanged: newShareLink.value.isEmpty - ? (value) => allowUpload.value = value - : null, + onChanged: newShareLink.value.isEmpty ? (value) => allowUpload.value = value : null, activeColor: colorScheme.primary, dense: true, title: Text( "allow_public_user_to_upload", - style: themeData.textTheme.labelLarge - ?.copyWith(fontWeight: FontWeight.bold), + style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold), ).tr(), ); } @@ -203,15 +192,12 @@ class SharedLinkEditPage extends HookConsumerWidget { Widget buildEditExpiryButton() { return SwitchListTile.adaptive( value: editExpiry.value, - onChanged: newShareLink.value.isEmpty - ? (value) => editExpiry.value = value - : null, + onChanged: newShareLink.value.isEmpty ? (value) => editExpiry.value = value : null, activeColor: colorScheme.primary, dense: true, title: Text( "change_expiration_time", - style: themeData.textTheme.labelLarge - ?.copyWith(fontWeight: FontWeight.bold), + style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold), ).tr(), ); } @@ -229,8 +215,7 @@ class SharedLinkEditPage extends HookConsumerWidget { enableFilter: false, width: context.width - 40, initialSelection: expiryAfter.value, - enabled: newShareLink.value.isEmpty && - (existingLink == null || editExpiry.value), + enabled: newShareLink.value.isEmpty && (existingLink == null || editExpiry.value), onSelected: (value) { expiryAfter.value = value!; }, @@ -241,8 +226,7 @@ class SharedLinkEditPage extends HookConsumerWidget { ), DropdownMenuEntry( value: 30, - label: "shared_link_edit_expire_after_option_minutes" - .tr(namedArgs: {'count': "30"}), + label: "shared_link_edit_expire_after_option_minutes".tr(namedArgs: {'count': "30"}), ), DropdownMenuEntry( value: 60, @@ -250,8 +234,7 @@ class SharedLinkEditPage extends HookConsumerWidget { ), DropdownMenuEntry( value: 60 * 6, - label: "shared_link_edit_expire_after_option_hours" - .tr(namedArgs: {'count': "6"}), + label: "shared_link_edit_expire_after_option_hours".tr(namedArgs: {'count': "6"}), ), DropdownMenuEntry( value: 60 * 24, @@ -259,23 +242,19 @@ class SharedLinkEditPage extends HookConsumerWidget { ), DropdownMenuEntry( value: 60 * 24 * 7, - label: "shared_link_edit_expire_after_option_days" - .tr(namedArgs: {'count': "7"}), + label: "shared_link_edit_expire_after_option_days".tr(namedArgs: {'count': "7"}), ), DropdownMenuEntry( value: 60 * 24 * 30, - label: "shared_link_edit_expire_after_option_days" - .tr(namedArgs: {'count': "30"}), + label: "shared_link_edit_expire_after_option_days".tr(namedArgs: {'count': "30"}), ), DropdownMenuEntry( value: 60 * 24 * 30 * 3, - label: "shared_link_edit_expire_after_option_months" - .tr(namedArgs: {'count': "3"}), + label: "shared_link_edit_expire_after_option_months".tr(namedArgs: {'count': "3"}), ), DropdownMenuEntry( value: 60 * 24 * 30 * 12, - label: "shared_link_edit_expire_after_option_year" - .tr(namedArgs: {'count': "1"}), + label: "shared_link_edit_expire_after_option_year".tr(namedArgs: {'count': "1"}), ), ], ); @@ -346,27 +325,21 @@ class SharedLinkEditPage extends HookConsumerWidget { } Future handleNewLink() async { - final newLink = - await ref.read(sharedLinkServiceProvider).createSharedLink( - albumId: albumId, - assetIds: assetsList, - showMeta: showMetadata.value, - allowDownload: allowDownload.value, - allowUpload: allowUpload.value, - description: descriptionController.text.isEmpty - ? null - : descriptionController.text, - password: passwordController.text.isEmpty - ? null - : passwordController.text, - expiresAt: expiryAfter.value == 0 ? null : calculateExpiry(), - ); + final newLink = await ref.read(sharedLinkServiceProvider).createSharedLink( + albumId: albumId, + assetIds: assetsList, + showMeta: showMetadata.value, + allowDownload: allowDownload.value, + allowUpload: allowUpload.value, + description: descriptionController.text.isEmpty ? null : descriptionController.text, + password: passwordController.text.isEmpty ? null : passwordController.text, + expiresAt: expiryAfter.value == 0 ? null : calculateExpiry(), + ); ref.invalidate(sharedLinksStateProvider); final externalDomain = ref.read( serverInfoProvider.select((s) => s.serverConfig.externalDomain), ); - var serverUrl = - externalDomain.isNotEmpty ? externalDomain : getServerUrl(); + var serverUrl = externalDomain.isNotEmpty ? externalDomain : getServerUrl(); if (serverUrl != null && !serverUrl.endsWith('/')) { serverUrl += '/'; } @@ -472,8 +445,7 @@ class SharedLinkEditPage extends HookConsumerWidget { child: buildAllowDownloadButton(), ), Padding( - padding: - const EdgeInsets.only(left: padding, right: 20, bottom: 20), + padding: const EdgeInsets.only(left: padding, right: 20, bottom: 20), child: buildAllowUploadButton(), ), if (existingLink != null) @@ -502,12 +474,9 @@ class SharedLinkEditPage extends HookConsumerWidget { bottom: padding, ), child: ElevatedButton( - onPressed: - existingLink != null ? handleEditLink : handleNewLink, + onPressed: existingLink != null ? handleEditLink : handleNewLink, child: Text( - existingLink != null - ? "shared_link_edit_submit_button" - : "create_link", + existingLink != null ? "shared_link_edit_submit_button" : "create_link", style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold, diff --git a/mobile/lib/pages/library/trash.page.dart b/mobile/lib/pages/library/trash.page.dart index c645719974..9ffe7ae704 100644 --- a/mobile/lib/pages/library/trash.page.dart +++ b/mobile/lib/pages/library/trash.page.dart @@ -24,8 +24,7 @@ class TrashPage extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final trashRenderList = ref.watch(trashTimelineProvider); - final trashDays = - ref.watch(serverInfoProvider.select((v) => v.serverConfig.trashDays)); + final trashDays = ref.watch(serverInfoProvider.select((v) => v.serverConfig.trashDays)); final selectionEnabledHook = useState(false); final selection = useState({}); final processing = useProcessingOverlay(); @@ -68,16 +67,13 @@ class TrashPage extends HookConsumerWidget { processing.value = true; try { if (selection.value.isNotEmpty) { - final isRemoved = await ref - .read(assetProvider.notifier) - .deleteAssets(selection.value, force: true); + final isRemoved = await ref.read(assetProvider.notifier).deleteAssets(selection.value, force: true); if (isRemoved) { if (context.mounted) { ImmichToast.show( context: context, - msg: 'assets_deleted_permanently' - .tr(namedArgs: {'count': "${selection.value.length}"}), + msg: 'assets_deleted_permanently'.tr(namedArgs: {'count': "${selection.value.length}"}), gravity: ToastGravity.BOTTOM, ); } @@ -110,15 +106,12 @@ class TrashPage extends HookConsumerWidget { processing.value = true; try { if (selection.value.isNotEmpty) { - final result = await ref - .read(trashProvider.notifier) - .restoreAssets(selection.value); + final result = await ref.read(trashProvider.notifier).restoreAssets(selection.value); if (result && context.mounted) { ImmichToast.show( context: context, - msg: 'assets_restored_successfully' - .tr(namedArgs: {'count': "${selection.value.length}"}), + msg: 'assets_restored_successfully'.tr(namedArgs: {'count': "${selection.value.length}"}), gravity: ToastGravity.BOTTOM, ); } @@ -131,9 +124,7 @@ class TrashPage extends HookConsumerWidget { String getAppBarTitle(String count) { if (selectionEnabledHook.value) { - return selection.value.isNotEmpty - ? "${selection.value.length}" - : "trash_page_select_assets_btn".tr(); + return selection.value.isNotEmpty ? "${selection.value.length}" : "trash_page_select_assets_btn".tr(); } return 'trash_page_title'.tr(namedArgs: {'count': count}); } @@ -147,9 +138,8 @@ class TrashPage extends HookConsumerWidget { selectionEnabledHook.value = false; selection.value = {}; }, - icon: !selectionEnabledHook.value - ? const Icon(Icons.arrow_back_ios_rounded) - : const Icon(Icons.close_rounded), + icon: + !selectionEnabledHook.value ? const Icon(Icons.arrow_back_ios_rounded) : const Icon(Icons.close_rounded), ), centerTitle: !selectionEnabledHook.value, automaticallyImplyLeading: false, @@ -192,9 +182,7 @@ class TrashPage extends HookConsumerWidget { color: Colors.red[400], ), label: Text( - selection.value.isEmpty - ? 'trash_page_delete_all'.tr() - : 'delete'.tr(), + selection.value.isEmpty ? 'trash_page_delete_all'.tr() : 'delete'.tr(), style: TextStyle( fontSize: 14, color: Colors.red[400], @@ -212,9 +200,7 @@ class TrashPage extends HookConsumerWidget { Icons.history_rounded, ), label: Text( - selection.value.isEmpty - ? 'trash_page_restore_all'.tr() - : 'restore'.tr(), + selection.value.isEmpty ? 'trash_page_restore_all'.tr() : 'restore'.tr(), style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold, diff --git a/mobile/lib/pages/onboarding/permission_onboarding.page.dart b/mobile/lib/pages/onboarding/permission_onboarding.page.dart index b0a1b34b06..0233208585 100644 --- a/mobile/lib/pages/onboarding/permission_onboarding.page.dart +++ b/mobile/lib/pages/onboarding/permission_onboarding.page.dart @@ -33,10 +33,8 @@ class PermissionOnboardingPage extends HookConsumerWidget { ).tr(), const SizedBox(height: 18), ElevatedButton( - onPressed: () => ref - .read(galleryPermissionNotifier.notifier) - .requestGalleryPermission() - .then((permission) async { + onPressed: () => + ref.read(galleryPermissionNotifier.notifier).requestGalleryPermission().then((permission) async { if (permission.isGranted) { // If permission is limited, we will show the limited // permission page @@ -139,12 +137,8 @@ class PermissionOnboardingPage extends HookConsumerWidget { final Widget child = switch (permission) { PermissionStatus.limited => buildPermissionLimited(), PermissionStatus.denied => buildRequestPermission(), - PermissionStatus.granted || - PermissionStatus.provisional => - buildPermissionGranted(), - PermissionStatus.restricted || - PermissionStatus.permanentlyDenied => - buildPermissionDenied() + PermissionStatus.granted || PermissionStatus.provisional => buildPermissionGranted(), + PermissionStatus.restricted || PermissionStatus.permanentlyDenied => buildPermissionDenied() }; return Scaffold( diff --git a/mobile/lib/pages/photos/memory.page.dart b/mobile/lib/pages/photos/memory.page.dart index 211472f27a..4826e19f89 100644 --- a/mobile/lib/pages/photos/memory.page.dart +++ b/mobile/lib/pages/photos/memory.page.dart @@ -40,8 +40,7 @@ class MemoryPage extends HookConsumerWidget { final currentAsset = useState(null); /// The list of all of the asset page controllers - final memoryAssetPageControllers = - List.generate(memories.length, (i) => usePageController()); + final memoryAssetPageControllers = List.generate(memories.length, (i) => usePageController()); /// The main vertically scrolling page controller with each list of memories final memoryPageController = usePageController(initialPage: memoryIndex); @@ -73,19 +72,16 @@ class MemoryPage extends HookConsumerWidget { // Wait for the next frame to ensure the page is built SchedulerBinding.instance.addPostFrameCallback((_) { final previousIndex = currentMemoryIndex.value - 1; - final previousMemoryController = - memoryAssetPageControllers[previousIndex]; + final previousMemoryController = memoryAssetPageControllers[previousIndex]; // Ensure the controller is attached if (previousMemoryController.hasClients) { - previousMemoryController - .jumpToPage(memories[previousIndex].assets.length - 1); + previousMemoryController.jumpToPage(memories[previousIndex].assets.length - 1); } else { // Wait for the next frame until it is attached SchedulerBinding.instance.addPostFrameCallback((_) { if (previousMemoryController.hasClients) { - previousMemoryController - .jumpToPage(memories[previousIndex].assets.length - 1); + previousMemoryController.jumpToPage(memories[previousIndex].assets.length - 1); } }); } @@ -96,8 +92,7 @@ class MemoryPage extends HookConsumerWidget { toNextAsset(int currentAssetIndex) { if (currentAssetIndex + 1 < currentMemory.value.assets.length) { // Go to the next asset - PageController controller = - memoryAssetPageControllers[currentMemoryIndex.value]; + PageController controller = memoryAssetPageControllers[currentMemoryIndex.value]; controller.nextPage( curve: Curves.easeInOut, @@ -112,8 +107,7 @@ class MemoryPage extends HookConsumerWidget { toPreviousAsset(int currentAssetIndex) { if (currentAssetIndex > 0) { // Go to the previous asset - PageController controller = - memoryAssetPageControllers[currentMemoryIndex.value]; + PageController controller = memoryAssetPageControllers[currentMemoryIndex.value]; controller.previousPage( curve: Curves.easeInOut, @@ -126,8 +120,7 @@ class MemoryPage extends HookConsumerWidget { } updateProgressText() { - assetProgress.value = - "${currentAssetPage.value + 1}|${currentMemory.value.assets.length}"; + assetProgress.value = "${currentAssetPage.value + 1}|${currentMemory.value.assets.length}"; } /// Downloads and caches the image for the asset at this [currentMemory]'s index @@ -180,8 +173,7 @@ class MemoryPage extends HookConsumerWidget { // Precache the next page right away if we are on the first page if (currentAssetPage.value == 0) { - Future.delayed(const Duration(milliseconds: 200)) - .then((_) => precacheAsset(1)); + Future.delayed(const Duration(milliseconds: 200)).then((_) => precacheAsset(1)); } Future onAssetChanged(int otherIndex) async { @@ -212,12 +204,10 @@ class MemoryPage extends HookConsumerWidget { // maxScrollExtend contains the sum of horizontal pixels of all assets for depth = 1 // or sum of vertical pixels of all memories for depth = 0 if (notification is ScrollUpdateNotification) { - final isEpiloguePage = - (memoryPageController.page?.floor() ?? 0) >= memories.length; + final isEpiloguePage = (memoryPageController.page?.floor() ?? 0) >= memories.length; final offset = notification.metrics.pixels; - if (isEpiloguePage && - (offset > notification.metrics.maxScrollExtent + 150)) { + if (isEpiloguePage && (offset > notification.metrics.maxScrollExtent + 150)) { context.maybePop(); return true; } @@ -358,8 +348,7 @@ class MemoryPage extends HookConsumerWidget { ), ), ), - if (currentAsset.value != null && - currentAsset.value!.isVideo) + if (currentAsset.value != null && currentAsset.value!.isVideo) Positioned( bottom: 24, right: 32, diff --git a/mobile/lib/pages/photos/photos.page.dart b/mobile/lib/pages/photos/photos.page.dart index 62ac96c8aa..2cc3c44e3a 100644 --- a/mobile/lib/pages/photos/photos.page.dart +++ b/mobile/lib/pages/photos/photos.page.dart @@ -106,9 +106,7 @@ class PhotosPage extends HookConsumerWidget { return Stack( children: [ MultiselectGrid( - topWidget: (currentUser != null && currentUser.memoryEnabled) - ? const MemoryLane() - : const SizedBox(), + topWidget: (currentUser != null && currentUser.memoryEnabled) ? const MemoryLane() : const SizedBox(), renderListProvider: timelineUsers.length > 1 ? multiUsersTimelineProvider(timelineUsers) : singleUserTimelineProvider(currentUser?.id), @@ -120,9 +118,7 @@ class PhotosPage extends HookConsumerWidget { ), AnimatedPositioned( duration: const Duration(milliseconds: 300), - top: ref.watch(multiselectProvider) - ? -(kToolbarHeight + context.padding.top) - : 0, + top: ref.watch(multiselectProvider) ? -(kToolbarHeight + context.padding.top) : 0, left: 0, right: 0, child: Container( diff --git a/mobile/lib/pages/search/all_people.page.dart b/mobile/lib/pages/search/all_people.page.dart index 7e2a136721..6fcf07fbfa 100644 --- a/mobile/lib/pages/search/all_people.page.dart +++ b/mobile/lib/pages/search/all_people.page.dart @@ -28,9 +28,7 @@ class AllPeoplePage extends HookConsumerWidget { body: curatedPeople.widgetWhen( onData: (people) => ExploreGrid( isPeople: true, - curatedContent: people - .map((e) => SearchCuratedContent(label: e.name, id: e.id)) - .toList(), + curatedContent: people.map((e) => SearchCuratedContent(label: e.name, id: e.id)).toList(), ), ), ); diff --git a/mobile/lib/pages/search/all_places.page.dart b/mobile/lib/pages/search/all_places.page.dart index 92521d13cf..63908a5e2a 100644 --- a/mobile/lib/pages/search/all_places.page.dart +++ b/mobile/lib/pages/search/all_places.page.dart @@ -13,8 +13,7 @@ class AllPlacesPage extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - AsyncValue> places = - ref.watch(getAllPlacesProvider); + AsyncValue> places = ref.watch(getAllPlacesProvider); return Scaffold( appBar: AppBar( diff --git a/mobile/lib/pages/search/map/map.page.dart b/mobile/lib/pages/search/map/map.page.dart index 9f32b1877b..62df4a50af 100644 --- a/mobile/lib/pages/search/map/map.page.dart +++ b/mobile/lib/pages/search/map/map.page.dart @@ -48,8 +48,7 @@ class MapPage extends HookConsumerWidget { final layerDebouncer = useDebouncer(interval: const Duration(seconds: 1)); final isLoading = useProcessingOverlay(); final scrollController = useScrollController(); - final markerDebouncer = - useDebouncer(interval: const Duration(milliseconds: 800)); + final markerDebouncer = useDebouncer(interval: const Duration(milliseconds: 800)); final selectedAssets = useValueNotifier>({}); const mapZoomToAssetLevel = 12.0; @@ -64,8 +63,7 @@ class MapPage extends HookConsumerWidget { final bounds = await mapController.value!.getVisibleRegion(); final inBounds = markers.value .where( - (m) => - bounds.contains(LatLng(m.latLng.latitude, m.latLng.longitude)), + (m) => bounds.contains(LatLng(m.latLng.latitude, m.latLng.longitude)), ) .toList(); // Notify bottom sheet to update asset grid only when there are new assets @@ -101,8 +99,7 @@ class MapPage extends HookConsumerWidget { useEffect( () { - final currentAssetLink = - ref.read(currentAssetProvider.notifier).ref.keepAlive(); + final currentAssetLink = ref.read(currentAssetProvider.notifier).ref.keepAlive(); loadMarkers(); return currentAssetLink.close; @@ -128,8 +125,7 @@ class MapPage extends HookConsumerWidget { MapMarker marker, { bool shouldAnimate = true, }) async { - final assetPoint = - await mapController.value!.toScreenLocation(marker.latLng); + final assetPoint = await mapController.value!.toScreenLocation(marker.latLng); selectedMarker.value = _AssetMarkerMeta( point: assetPoint, marker: marker, @@ -144,11 +140,9 @@ class MapPage extends HookConsumerWidget { if (mapController.value == null) { return; } - final latlngBound = - await mapController.value!.getBoundsFromPoint(point, 50); + final latlngBound = await mapController.value!.getBoundsFromPoint(point, 50); final marker = markersInBounds.value.firstWhereOrNull( - (m) => - latlngBound.contains(LatLng(m.latLng.latitude, m.latLng.longitude)), + (m) => latlngBound.contains(LatLng(m.latLng.latitude, m.latLng.longitude)), ); if (marker != null) { @@ -211,16 +205,14 @@ class MapPage extends HookConsumerWidget { } void onBottomSheetScrolled(String assetRemoteId) { - final assetMarker = markersInBounds.value - .firstWhereOrNull((m) => m.assetRemoteId == assetRemoteId); + final assetMarker = markersInBounds.value.firstWhereOrNull((m) => m.assetRemoteId == assetRemoteId); if (assetMarker != null) { updateAssetMarkerPosition(assetMarker); } } void onZoomToAsset(String assetRemoteId) { - final assetMarker = markersInBounds.value - .firstWhereOrNull((m) => m.assetRemoteId == assetRemoteId); + final assetMarker = markersInBounds.value.firstWhereOrNull((m) => m.assetRemoteId == assetRemoteId); if (mapController.value != null && assetMarker != null) { // Offset the latitude a little to show the marker just above the viewports center final offset = context.isMobile ? 0.02 : 0; @@ -236,8 +228,7 @@ class MapPage extends HookConsumerWidget { } void onZoomToLocation() async { - final (location, error) = - await MapUtils.checkPermAndGetLocation(context: context); + final (location, error) = await MapUtils.checkPermAndGetLocation(context: context); if (error != null) { if (error == LocationPermission.unableToDetermine && context.mounted) { ImmichToast.show( @@ -360,8 +351,7 @@ class _AssetMarkerMeta { }); @override - String toString() => - '_AssetMarkerMeta(point: $point, marker: $marker, shouldAnimate: $shouldAnimate)'; + String toString() => '_AssetMarkerMeta(point: $point, marker: $marker, shouldAnimate: $shouldAnimate)'; } class _MapWithMarker extends StatelessWidget { diff --git a/mobile/lib/pages/search/map/map_location_picker.page.dart b/mobile/lib/pages/search/map/map_location_picker.page.dart index f27deae052..9b7bbd0cd8 100644 --- a/mobile/lib/pages/search/map/map_location_picker.page.dart +++ b/mobile/lib/pages/search/map/map_location_picker.page.dart @@ -35,8 +35,7 @@ class MapLocationPickerPage extends HookConsumerWidget { selectedLatLng.value = centre; controller.value?.animateCamera(CameraUpdate.newLatLng(centre)); if (marker.value != null) { - await controller.value - ?.updateSymbol(marker.value!, SymbolOptions(geometry: centre)); + await controller.value?.updateSymbol(marker.value!, SymbolOptions(geometry: centre)); } } @@ -45,15 +44,13 @@ class MapLocationPickerPage extends HookConsumerWidget { } Future getCurrentLocation() async { - var (currentLocation, _) = - await MapUtils.checkPermAndGetLocation(context: context); + var (currentLocation, _) = await MapUtils.checkPermAndGetLocation(context: context); if (currentLocation == null) { return; } - var currentLatLng = - LatLng(currentLocation.latitude, currentLocation.longitude); + var currentLatLng = LatLng(currentLocation.latitude, currentLocation.longitude); selectedLatLng.value = currentLatLng; controller.value?.animateCamera(CameraUpdate.newLatLng(currentLatLng)); } @@ -75,11 +72,9 @@ class MapLocationPickerPage extends HookConsumerWidget { ), ), child: MapLibreMap( - initialCameraPosition: - CameraPosition(target: initialLatLng, zoom: 12), + initialCameraPosition: CameraPosition(target: initialLatLng, zoom: 12), styleString: style, - onMapCreated: (mapController) => - controller.value = mapController, + onMapCreated: (mapController) => controller.value = mapController, onStyleLoadedCallback: onStyleLoaded, onMapClick: onMapClick, dragEnabled: false, @@ -165,8 +160,7 @@ class _BottomBar extends StatelessWidget { children: [ ElevatedButton( onPressed: onUseLocation, - child: - const Text("map_location_picker_page_use_location").tr(), + child: const Text("map_location_picker_page_use_location").tr(), ), ElevatedButton( onPressed: onGetCurrentLocation, diff --git a/mobile/lib/pages/search/search.page.dart b/mobile/lib/pages/search/search.page.dart index 3e5c153f88..d9a20e8b4d 100644 --- a/mobile/lib/pages/search/search.page.dart +++ b/mobile/lib/pages/search/search.page.dart @@ -48,8 +48,7 @@ class SearchPage extends HookConsumerWidget { isFavorite: false, ), mediaType: prefilter?.mediaType ?? AssetType.other, - language: - "${context.locale.languageCode}-${context.locale.countryCode}", + language: "${context.locale.languageCode}-${context.locale.countryCode}", ), ); @@ -87,9 +86,7 @@ class SearchPage extends HookConsumerWidget { isSearching.value = true; ref.watch(paginatedSearchProvider.notifier).clear(); - final hasResult = await ref - .watch(paginatedSearchProvider.notifier) - .search(filter.value); + final hasResult = await ref.watch(paginatedSearchProvider.notifier).search(filter.value); if (!hasResult) { context.showSnackBar( @@ -103,9 +100,7 @@ class SearchPage extends HookConsumerWidget { loadMoreSearchResult() async { isSearching.value = true; - final hasResult = await ref - .watch(paginatedSearchProvider.notifier) - .search(filter.value); + final hasResult = await ref.watch(paginatedSearchProvider.notifier).search(filter.value); if (!hasResult) { context.showSnackBar( @@ -416,8 +411,7 @@ class SearchPage extends HookConsumerWidget { ), ); if (value) { - filterText - .add('search_filter_display_option_not_in_album'.tr()); + filterText.add('search_filter_display_option_not_in_album'.tr()); } break; case DisplayOption.archive: @@ -563,9 +557,7 @@ class SearchPage extends HookConsumerWidget { 'search_by_context'.tr(), style: context.textTheme.bodyLarge?.copyWith( fontWeight: FontWeight.w500, - color: textSearchType.value == TextSearchType.context - ? context.colorScheme.primary - : null, + color: textSearchType.value == TextSearchType.context ? context.colorScheme.primary : null, ), ), selectedColor: context.colorScheme.primary, @@ -583,9 +575,7 @@ class SearchPage extends HookConsumerWidget { 'search_filter_filename'.tr(), style: context.textTheme.bodyLarge?.copyWith( fontWeight: FontWeight.w500, - color: textSearchType.value == TextSearchType.filename - ? context.colorScheme.primary - : null, + color: textSearchType.value == TextSearchType.filename ? context.colorScheme.primary : null, ), ), selectedColor: context.colorScheme.primary, @@ -603,15 +593,11 @@ class SearchPage extends HookConsumerWidget { 'search_by_description'.tr(), style: context.textTheme.bodyLarge?.copyWith( fontWeight: FontWeight.w500, - color: - textSearchType.value == TextSearchType.description - ? context.colorScheme.primary - : null, + color: textSearchType.value == TextSearchType.description ? context.colorScheme.primary : null, ), ), selectedColor: context.colorScheme.primary, - selected: - textSearchType.value == TextSearchType.description, + selected: textSearchType.value == TextSearchType.description, ), onPressed: () { textSearchType.value = TextSearchType.description; @@ -645,9 +631,7 @@ class SearchPage extends HookConsumerWidget { hintText: searchHintText.value, key: const Key('search_text_field'), controller: textSearchController, - contentPadding: prefilter != null - ? const EdgeInsets.only(left: 24) - : const EdgeInsets.all(8), + contentPadding: prefilter != null ? const EdgeInsets.only(left: 24) : const EdgeInsets.all(8), prefixIcon: prefilter != null ? null : Icon( @@ -744,17 +728,13 @@ class SearchResultGrid extends StatelessWidget { padding: const EdgeInsets.only(top: 8.0), child: NotificationListener( onNotification: (notification) { - final isBottomSheetNotification = notification.context - ?.findAncestorWidgetOfExactType< - DraggableScrollableSheet>() != - null; + final isBottomSheetNotification = + notification.context?.findAncestorWidgetOfExactType() != null; final metrics = notification.metrics; final isVerticalScroll = metrics.axis == Axis.vertical; - if (metrics.pixels >= metrics.maxScrollExtent && - isVerticalScroll && - !isBottomSheetNotification) { + if (metrics.pixels >= metrics.maxScrollExtent && isVerticalScroll && !isBottomSheetNotification) { onScrollEnd(); } @@ -770,9 +750,7 @@ class SearchResultGrid extends StatelessWidget { dragScrollLabelEnabled: false, emptyIndicator: Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: !isSearching - ? const SearchEmptyContent() - : const SizedBox.shrink(), + child: !isSearching ? const SearchEmptyContent() : const SizedBox.shrink(), ), ), ), @@ -794,9 +772,7 @@ class SearchEmptyContent extends StatelessWidget { const SizedBox(height: 40), Center( child: Image.asset( - context.isDarkTheme - ? 'assets/polaroid-dark.png' - : 'assets/polaroid-light.png', + context.isDarkTheme ? 'assets/polaroid-dark.png' : 'assets/polaroid-light.png', height: 125, ), ), diff --git a/mobile/lib/pages/share_intent/share_intent.page.dart b/mobile/lib/pages/share_intent/share_intent.page.dart index 299ffe5497..2b328b7ede 100644 --- a/mobile/lib/pages/share_intent/share_intent.page.dart +++ b/mobile/lib/pages/share_intent/share_intent.page.dart @@ -38,9 +38,7 @@ class ShareIntentPage extends HookConsumerWidget { void upload() async { for (final attachment in candidates) { - await ref - .read(shareIntentUploadProvider.notifier) - .upload(attachment.file); + await ref.read(shareIntentUploadProvider.notifier).upload(attachment.file); } isUploaded.value = true; @@ -76,9 +74,7 @@ class ShareIntentPage extends HookConsumerWidget { leading: IconButton( onPressed: () { context.navigateTo( - Store.isBetaTimelineEnabled - ? const TabShellRoute() - : const TabControllerRoute(), + Store.isBetaTimelineEnabled ? const TabShellRoute() : const TabControllerRoute(), ); }, icon: const Icon(Icons.arrow_back), @@ -170,9 +166,7 @@ class ShareIntentPage extends HookConsumerWidget { height: 48, child: ElevatedButton( onPressed: isUploaded.value ? null : upload, - child: isUploaded.value - ? UploadingText(candidates: candidates) - : const Text('upload').tr(), + child: isUploaded.value ? UploadingText(candidates: candidates) : const Text('upload').tr(), ), ), ), diff --git a/mobile/lib/platform/native_sync_api.g.dart b/mobile/lib/platform/native_sync_api.g.dart index 46599eb016..b4d1d91b69 100644 --- a/mobile/lib/platform/native_sync_api.g.dart +++ b/mobile/lib/platform/native_sync_api.g.dart @@ -17,15 +17,12 @@ PlatformException _createConnectionError(String channelName) { bool _deepEquals(Object? a, Object? b) { if (a is List && b is List) { - return a.length == b.length && - a.indexed - .every(((int, dynamic) item) => _deepEquals(item.$2, b[item.$1])); + return a.length == b.length && a.indexed.every(((int, dynamic) item) => _deepEquals(item.$2, b[item.$1])); } if (a is Map && b is Map) { return a.length == b.length && a.entries.every((MapEntry entry) => - (b as Map).containsKey(entry.key) && - _deepEquals(entry.value, b[entry.key])); + (b as Map).containsKey(entry.key) && _deepEquals(entry.value, b[entry.key])); } return a == b; } @@ -207,8 +204,7 @@ class SyncDelta { hasChanges: result[0]! as bool, updates: (result[1] as List?)!.cast(), deletes: (result[2] as List?)!.cast(), - assetAlbums: - (result[3] as Map?)!.cast>(), + assetAlbums: (result[3] as Map?)!.cast>(), ); } @@ -269,11 +265,9 @@ class NativeSyncApi { /// Constructor for [NativeSyncApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - NativeSyncApi( - {BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + NativeSyncApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = - messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -283,15 +277,13 @@ class NativeSyncApi { Future shouldFullSync() async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.shouldFullSync$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -313,15 +305,13 @@ class NativeSyncApi { Future getMediaChanges() async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.getMediaChanges$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -343,15 +333,13 @@ class NativeSyncApi { Future checkpointSync() async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.checkpointSync$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -368,15 +356,13 @@ class NativeSyncApi { Future clearSyncCheckpoint() async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.clearSyncCheckpoint$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -393,16 +379,13 @@ class NativeSyncApi { Future> getAssetIdsForAlbum(String albumId) async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.getAssetIdsForAlbum$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([albumId]); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final Future pigeonVar_sendFuture = pigeonVar_channel.send([albumId]); + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -424,15 +407,13 @@ class NativeSyncApi { Future> getAlbums() async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.getAlbums$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -454,16 +435,13 @@ class NativeSyncApi { Future getAssetsCountSince(String albumId, int timestamp) async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.getAssetsCountSince$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([albumId, timestamp]); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final Future pigeonVar_sendFuture = pigeonVar_channel.send([albumId, timestamp]); + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -482,20 +460,16 @@ class NativeSyncApi { } } - Future> getAssetsForAlbum(String albumId, - {int? updatedTimeCond}) async { + Future> getAssetsForAlbum(String albumId, {int? updatedTimeCond}) async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.getAssetsForAlbum$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([albumId, updatedTimeCond]); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final Future pigeonVar_sendFuture = pigeonVar_channel.send([albumId, updatedTimeCond]); + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -517,16 +491,13 @@ class NativeSyncApi { Future> hashPaths(List paths) async { final String pigeonVar_channelName = 'dev.flutter.pigeon.immich_mobile.NativeSyncApi.hashPaths$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([paths]); - final List? pigeonVar_replyList = - await pigeonVar_sendFuture as List?; + final Future pigeonVar_sendFuture = pigeonVar_channel.send([paths]); + final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { diff --git a/mobile/lib/presentation/pages/dev/feat_in_development.page.dart b/mobile/lib/presentation/pages/dev/feat_in_development.page.dart index 2334fc5227..439998065c 100644 --- a/mobile/lib/presentation/pages/dev/feat_in_development.page.dart +++ b/mobile/lib/presentation/pages/dev/feat_in_development.page.dart @@ -31,8 +31,7 @@ final _features = [ return Future.value(); } - final assets = - await ref.read(remoteAssetRepositoryProvider).getSome(user.id); + final assets = await ref.read(remoteAssetRepositoryProvider).getSome(user.id); final selectedAssets = await ctx.pushRoute>( DriftAssetSelectionTimelineRoute( @@ -75,9 +74,7 @@ final _features = [ _Feature( name: 'WAL Checkpoint', icon: Icons.save_rounded, - onTap: (_, ref) => ref - .read(driftProvider) - .customStatement("pragma wal_checkpoint(truncate)"), + onTap: (_, ref) => ref.read(driftProvider).customStatement("pragma wal_checkpoint(truncate)"), ), _Feature( name: '', diff --git a/mobile/lib/presentation/pages/dev/media_stat.page.dart b/mobile/lib/presentation/pages/dev/media_stat.page.dart index d1803498b4..70e93fd212 100644 --- a/mobile/lib/presentation/pages/dev/media_stat.page.dart +++ b/mobile/lib/presentation/pages/dev/media_stat.page.dart @@ -117,9 +117,8 @@ class LocalMediaSummaryPage extends StatelessWidget { return SliverList.builder( itemBuilder: (_, index) { final album = albums[index]; - final countFuture = db.managers.localAlbumAssetEntity - .filter((f) => f.albumId.id.equals(album.id)) - .count(); + final countFuture = + db.managers.localAlbumAssetEntity.filter((f) => f.albumId.id.equals(album.id)).count(); return _Summary( leading: const Icon(Icons.photo_album_rounded), name: album.name, @@ -226,9 +225,8 @@ class RemoteMediaSummaryPage extends StatelessWidget { return SliverList.builder( itemBuilder: (_, index) { final album = albums[index]; - final countFuture = db.managers.remoteAlbumAssetEntity - .filter((f) => f.albumId.id.equals(album.id)) - .count(); + final countFuture = + db.managers.remoteAlbumAssetEntity.filter((f) => f.albumId.id.equals(album.id)).count(); return _Summary( leading: const Icon(Icons.photo_album_rounded), name: album.name, diff --git a/mobile/lib/presentation/pages/drift_album.page.dart b/mobile/lib/presentation/pages/drift_album.page.dart index c7dffbeaef..1f97bb6f45 100644 --- a/mobile/lib/presentation/pages/drift_album.page.dart +++ b/mobile/lib/presentation/pages/drift_album.page.dart @@ -50,9 +50,7 @@ class _DriftAlbumsPageState extends ConsumerState { void onSearch(String searchTerm, QuickFilterMode sortMode) { final userId = ref.watch(currentUserProvider)?.id; - ref - .read(remoteAlbumProvider.notifier) - .searchAlbums(searchTerm, userId, sortMode); + ref.read(remoteAlbumProvider.notifier).searchAlbums(searchTerm, userId, sortMode); } Future onRefresh() async { @@ -88,8 +86,7 @@ class _DriftAlbumsPageState extends ConsumerState { @override Widget build(BuildContext context) { - final albums = - ref.watch(remoteAlbumProvider.select((s) => s.filteredAlbums)); + final albums = ref.watch(remoteAlbumProvider.select((s) => s.filteredAlbums)); final userId = ref.watch(currentUserProvider)?.id; @@ -221,9 +218,7 @@ class _SortButtonState extends ConsumerState<_SortButton> { const EdgeInsets.fromLTRB(16, 16, 32, 16), ), backgroundColor: WidgetStateProperty.all( - albumSortOption == sortMode - ? context.colorScheme.primary - : Colors.transparent, + albumSortOption == sortMode ? context.colorScheme.primary : Colors.transparent, ), shape: WidgetStateProperty.all( const RoundedRectangleBorder( @@ -436,9 +431,7 @@ class _QuickFilterButton extends StatelessWidget { child: Text( label, style: TextStyle( - color: isSelected - ? context.colorScheme.onPrimary - : context.colorScheme.onSurface, + color: isSelected ? context.colorScheme.onPrimary : context.colorScheme.onSurface, fontSize: 14, ), ), @@ -564,8 +557,7 @@ class _AlbumList extends ConsumerWidget { child: Container( decoration: BoxDecoration( color: context.colorScheme.surfaceContainer, - borderRadius: - const BorderRadius.all(Radius.circular(16)), + borderRadius: const BorderRadius.all(Radius.circular(16)), border: Border.all( color: context.colorScheme.outline.withAlpha(50), width: 1, diff --git a/mobile/lib/presentation/pages/drift_archive.page.dart b/mobile/lib/presentation/pages/drift_archive.page.dart index 90b8dcb646..8a6f1607d0 100644 --- a/mobile/lib/presentation/pages/drift_archive.page.dart +++ b/mobile/lib/presentation/pages/drift_archive.page.dart @@ -23,8 +23,7 @@ class DriftArchivePage extends StatelessWidget { throw Exception('User must be logged in to access archive'); } - final timelineService = - ref.watch(timelineFactoryProvider).archive(user.id); + final timelineService = ref.watch(timelineFactoryProvider).archive(user.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_asset_selection_timeline.page.dart b/mobile/lib/presentation/pages/drift_asset_selection_timeline.page.dart index 7ac378e4f5..0e5631082b 100644 --- a/mobile/lib/presentation/pages/drift_asset_selection_timeline.page.dart +++ b/mobile/lib/presentation/pages/drift_asset_selection_timeline.page.dart @@ -37,8 +37,7 @@ class DriftAssetSelectionTimelinePage extends ConsumerWidget { ); } - final timelineService = - ref.watch(timelineFactoryProvider).remoteAssets(user.id); + final timelineService = ref.watch(timelineFactoryProvider).remoteAssets(user.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_create_album.page.dart b/mobile/lib/presentation/pages/drift_create_album.page.dart index f6ba98f61c..ba7157b15d 100644 --- a/mobile/lib/presentation/pages/drift_create_album.page.dart +++ b/mobile/lib/presentation/pages/drift_create_album.page.dart @@ -15,8 +15,7 @@ class DriftCreateAlbumPage extends ConsumerStatefulWidget { const DriftCreateAlbumPage({super.key}); @override - ConsumerState createState() => - _DriftCreateAlbumPageState(); + ConsumerState createState() => _DriftCreateAlbumPageState(); } class _DriftCreateAlbumPageState extends ConsumerState { @@ -285,9 +284,7 @@ class _DriftCreateAlbumPageState extends ConsumerState { 'create'.t(), style: TextStyle( fontWeight: FontWeight.bold, - color: _canCreateAlbum - ? context.primaryColor - : context.themeData.disabledColor, + color: _canCreateAlbum ? context.primaryColor : context.themeData.disabledColor, ), ), ), @@ -351,8 +348,7 @@ class _AlbumTitleTextFieldState extends State<_AlbumTitleTextField> { ), controller: widget.textController, onTap: () { - if (widget.textController.text == - 'create_album_page_untitled'.t(context: context)) { + if (widget.textController.text == 'create_album_page_untitled'.t(context: context)) { widget.textController.clear(); } }, @@ -411,12 +407,10 @@ class _AlbumViewerEditableDescription extends StatefulWidget { final FocusNode focusNode; @override - State<_AlbumViewerEditableDescription> createState() => - _AlbumViewerEditableDescriptionState(); + State<_AlbumViewerEditableDescription> createState() => _AlbumViewerEditableDescriptionState(); } -class _AlbumViewerEditableDescriptionState - extends State<_AlbumViewerEditableDescription> { +class _AlbumViewerEditableDescriptionState extends State<_AlbumViewerEditableDescription> { @override void initState() { super.initState(); @@ -458,19 +452,18 @@ class _AlbumViewerEditableDescriptionState horizontal: 12.0, vertical: 16.0, ), - suffixIcon: - widget.focusNode.hasFocus && widget.textController.text.isNotEmpty - ? IconButton( - onPressed: () { - widget.textController.clear(); - }, - icon: Icon( - Icons.cancel_rounded, - color: context.primaryColor, - ), - splashRadius: 10.0, - ) - : null, + suffixIcon: widget.focusNode.hasFocus && widget.textController.text.isNotEmpty + ? IconButton( + onPressed: () { + widget.textController.clear(); + }, + icon: Icon( + Icons.cancel_rounded, + color: context.primaryColor, + ), + splashRadius: 10.0, + ) + : null, enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: context.colorScheme.outline.withValues(alpha: 0.3), diff --git a/mobile/lib/presentation/pages/drift_favorite.page.dart b/mobile/lib/presentation/pages/drift_favorite.page.dart index 90a273f93b..5648fd7fac 100644 --- a/mobile/lib/presentation/pages/drift_favorite.page.dart +++ b/mobile/lib/presentation/pages/drift_favorite.page.dart @@ -23,8 +23,7 @@ class DriftFavoritePage extends StatelessWidget { throw Exception('User must be logged in to access favorite'); } - final timelineService = - ref.watch(timelineFactoryProvider).favorite(user.id); + final timelineService = ref.watch(timelineFactoryProvider).favorite(user.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_library.page.dart b/mobile/lib/presentation/pages/drift_library.page.dart index eba0a5ea81..5cf47bc995 100644 --- a/mobile/lib/presentation/pages/drift_library.page.dart +++ b/mobile/lib/presentation/pages/drift_library.page.dart @@ -79,9 +79,7 @@ class _ActionButtonGrid extends ConsumerWidget { onTap: () => context.pushRoute(const SharedLinkRoute()), label: 'shared_links'.t(context: context), ), - isTrashEnable - ? const SizedBox(width: 8) - : const SizedBox.shrink(), + isTrashEnable ? const SizedBox(width: 8) : const SizedBox.shrink(), isTrashEnable ? _ActionButton( icon: Icons.delete_outline_rounded, @@ -267,8 +265,7 @@ class _PlacesCollectionCard extends StatelessWidget { child: DecoratedBox( decoration: BoxDecoration( borderRadius: const BorderRadius.all(Radius.circular(20)), - color: - context.colorScheme.secondaryContainer.withAlpha(100), + color: context.colorScheme.secondaryContainer.withAlpha(100), ), child: IgnorePointer( child: MapThumbnail( @@ -278,9 +275,7 @@ class _PlacesCollectionCard extends StatelessWidget { -157.91959, ), showAttribution: false, - themeMode: context.isDarkTheme - ? ThemeMode.dark - : ThemeMode.light, + themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, ), ), ), diff --git a/mobile/lib/presentation/pages/drift_local_album.page.dart b/mobile/lib/presentation/pages/drift_local_album.page.dart index 0ad9abd2fa..7add23259e 100644 --- a/mobile/lib/presentation/pages/drift_local_album.page.dart +++ b/mobile/lib/presentation/pages/drift_local_album.page.dart @@ -102,8 +102,7 @@ class _AlbumList extends ConsumerWidget { color: context.colorScheme.onSurfaceSecondary, ), ), - onTap: () => - context.pushRoute(LocalTimelineRoute(album: album)), + onTap: () => context.pushRoute(LocalTimelineRoute(album: album)), ), ); }, diff --git a/mobile/lib/presentation/pages/drift_locked_folder.page.dart b/mobile/lib/presentation/pages/drift_locked_folder.page.dart index e134b418e9..417e902de3 100644 --- a/mobile/lib/presentation/pages/drift_locked_folder.page.dart +++ b/mobile/lib/presentation/pages/drift_locked_folder.page.dart @@ -14,12 +14,10 @@ class DriftLockedFolderPage extends ConsumerStatefulWidget { const DriftLockedFolderPage({super.key}); @override - ConsumerState createState() => - _DriftLockedFolderPageState(); + ConsumerState createState() => _DriftLockedFolderPageState(); } -class _DriftLockedFolderPageState extends ConsumerState - with WidgetsBindingObserver { +class _DriftLockedFolderPageState extends ConsumerState with WidgetsBindingObserver { bool _showOverlay = false; @override @@ -54,8 +52,7 @@ class _DriftLockedFolderPageState extends ConsumerState throw Exception('User must be logged in to access locked folder'); } - final timelineService = - ref.watch(timelineFactoryProvider).lockedFolder(user.id); + final timelineService = ref.watch(timelineFactoryProvider).lockedFolder(user.id); ref.onDispose(timelineService.dispose); return timelineService; }, @@ -64,8 +61,7 @@ class _DriftLockedFolderPageState extends ConsumerState child: _showOverlay ? const SizedBox() : PopScope( - onPopInvokedWithResult: (didPop, _) => - didPop ? ref.read(authProvider.notifier).lockPinCode() : null, + onPopInvokedWithResult: (didPop, _) => didPop ? ref.read(authProvider.notifier).lockPinCode() : null, child: Timeline( appBar: MesmerizingSliverAppBar( title: 'locked_folder'.t(context: context), diff --git a/mobile/lib/presentation/pages/drift_memory.page.dart b/mobile/lib/presentation/pages/drift_memory.page.dart index 7da2d1a4c7..c42feff0ea 100644 --- a/mobile/lib/presentation/pages/drift_memory.page.dart +++ b/mobile/lib/presentation/pages/drift_memory.page.dart @@ -40,8 +40,7 @@ class DriftMemoryPage extends HookConsumerWidget { final currentAsset = useState(null); /// The list of all of the asset page controllers - final memoryAssetPageControllers = - List.generate(memories.length, (i) => usePageController()); + final memoryAssetPageControllers = List.generate(memories.length, (i) => usePageController()); /// The main vertically scrolling page controller with each list of memories final memoryPageController = usePageController(initialPage: memoryIndex); @@ -73,19 +72,16 @@ class DriftMemoryPage extends HookConsumerWidget { // Wait for the next frame to ensure the page is built SchedulerBinding.instance.addPostFrameCallback((_) { final previousIndex = currentMemoryIndex.value - 1; - final previousMemoryController = - memoryAssetPageControllers[previousIndex]; + final previousMemoryController = memoryAssetPageControllers[previousIndex]; // Ensure the controller is attached if (previousMemoryController.hasClients) { - previousMemoryController - .jumpToPage(memories[previousIndex].assets.length - 1); + previousMemoryController.jumpToPage(memories[previousIndex].assets.length - 1); } else { // Wait for the next frame until it is attached SchedulerBinding.instance.addPostFrameCallback((_) { if (previousMemoryController.hasClients) { - previousMemoryController - .jumpToPage(memories[previousIndex].assets.length - 1); + previousMemoryController.jumpToPage(memories[previousIndex].assets.length - 1); } }); } @@ -96,8 +92,7 @@ class DriftMemoryPage extends HookConsumerWidget { toNextAsset(int currentAssetIndex) { if (currentAssetIndex + 1 < currentMemory.value.assets.length) { // Go to the next asset - PageController controller = - memoryAssetPageControllers[currentMemoryIndex.value]; + PageController controller = memoryAssetPageControllers[currentMemoryIndex.value]; controller.nextPage( curve: Curves.easeInOut, @@ -112,8 +107,7 @@ class DriftMemoryPage extends HookConsumerWidget { toPreviousAsset(int currentAssetIndex) { if (currentAssetIndex > 0) { // Go to the previous asset - PageController controller = - memoryAssetPageControllers[currentMemoryIndex.value]; + PageController controller = memoryAssetPageControllers[currentMemoryIndex.value]; controller.previousPage( curve: Curves.easeInOut, @@ -126,8 +120,7 @@ class DriftMemoryPage extends HookConsumerWidget { } updateProgressText() { - assetProgress.value = - "${currentAssetPage.value + 1}|${currentMemory.value.assets.length}"; + assetProgress.value = "${currentAssetPage.value + 1}|${currentMemory.value.assets.length}"; } /// Downloads and caches the image for the asset at this [currentMemory]'s index @@ -179,8 +172,7 @@ class DriftMemoryPage extends HookConsumerWidget { // Precache the next page right away if we are on the first page if (currentAssetPage.value == 0) { - Future.delayed(const Duration(milliseconds: 200)) - .then((_) => precacheAsset(1)); + Future.delayed(const Duration(milliseconds: 200)).then((_) => precacheAsset(1)); } Future onAssetChanged(int otherIndex) async { @@ -212,12 +204,10 @@ class DriftMemoryPage extends HookConsumerWidget { // maxScrollExtend contains the sum of horizontal pixels of all assets for depth = 1 // or sum of vertical pixels of all memories for depth = 0 if (notification is ScrollUpdateNotification) { - final isEpiloguePage = - (memoryPageController.page?.floor() ?? 0) >= memories.length; + final isEpiloguePage = (memoryPageController.page?.floor() ?? 0) >= memories.length; final offset = notification.metrics.pixels; - if (isEpiloguePage && - (offset > notification.metrics.maxScrollExtent + 150)) { + if (isEpiloguePage && (offset > notification.metrics.maxScrollExtent + 150)) { context.maybePop(); return true; } @@ -366,8 +356,7 @@ class DriftMemoryPage extends HookConsumerWidget { ), ), ), - if (currentAsset.value != null && - currentAsset.value!.isVideo) + if (currentAsset.value != null && currentAsset.value!.isVideo) Positioned( bottom: 24, right: 32, diff --git a/mobile/lib/presentation/pages/drift_partner_detail.page.dart b/mobile/lib/presentation/pages/drift_partner_detail.page.dart index 6c77a480ea..3d9d28aeab 100644 --- a/mobile/lib/presentation/pages/drift_partner_detail.page.dart +++ b/mobile/lib/presentation/pages/drift_partner_detail.page.dart @@ -26,8 +26,7 @@ class DriftPartnerDetailPage extends StatelessWidget { overrides: [ timelineServiceProvider.overrideWith( (ref) { - final timelineService = - ref.watch(timelineFactoryProvider).remoteAssets(partner.id); + final timelineService = ref.watch(timelineFactoryProvider).remoteAssets(partner.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_place.page.dart b/mobile/lib/presentation/pages/drift_place.page.dart index 5e5b932f60..3e0754f8b8 100644 --- a/mobile/lib/presentation/pages/drift_place.page.dart +++ b/mobile/lib/presentation/pages/drift_place.page.dart @@ -91,8 +91,7 @@ class _Map extends StatelessWidget { width: context.width, // TODO: migrate to DriftMapRoute after merging #19898 child: MapThumbnail( - onTap: (_, __) => context - .pushRoute(MapRoute(initialLocation: currentLocation)), + onTap: (_, __) => context.pushRoute(MapRoute(initialLocation: currentLocation)), zoom: 8, centre: currentLocation ?? const LatLng( @@ -100,8 +99,7 @@ class _Map extends StatelessWidget { -157.91959, ), showAttribution: false, - themeMode: - context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, + themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, ), ), ), diff --git a/mobile/lib/presentation/pages/drift_place_detail.page.dart b/mobile/lib/presentation/pages/drift_place_detail.page.dart index 9999d35297..d55725231f 100644 --- a/mobile/lib/presentation/pages/drift_place_detail.page.dart +++ b/mobile/lib/presentation/pages/drift_place_detail.page.dart @@ -20,8 +20,7 @@ class DriftPlaceDetailPage extends StatelessWidget { overrides: [ timelineServiceProvider.overrideWith( (ref) { - final timelineService = - ref.watch(timelineFactoryProvider).place(place); + final timelineService = ref.watch(timelineFactoryProvider).place(place); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_recently_taken.page.dart b/mobile/lib/presentation/pages/drift_recently_taken.page.dart index df303e7b31..c99c36bd24 100644 --- a/mobile/lib/presentation/pages/drift_recently_taken.page.dart +++ b/mobile/lib/presentation/pages/drift_recently_taken.page.dart @@ -24,8 +24,7 @@ class DriftRecentlyTakenPage extends StatelessWidget { ); } - final timelineService = - ref.watch(timelineFactoryProvider).remoteAssets(user.id); + final timelineService = ref.watch(timelineFactoryProvider).remoteAssets(user.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_remote_album.page.dart b/mobile/lib/presentation/pages/drift_remote_album.page.dart index 4d49cf3012..4173e262bc 100644 --- a/mobile/lib/presentation/pages/drift_remote_album.page.dart +++ b/mobile/lib/presentation/pages/drift_remote_album.page.dart @@ -37,8 +37,7 @@ class _RemoteAlbumPageState extends ConsumerState { } Future addAssets(BuildContext context) async { - final albumAssets = - await ref.read(remoteAlbumProvider.notifier).getAssets(widget.album.id); + final albumAssets = await ref.read(remoteAlbumProvider.notifier).getAssets(widget.album.id); final newAssets = await context.pushRoute>( DriftAssetSelectionTimelineRoute( @@ -82,9 +81,7 @@ class _RemoteAlbumPageState extends ConsumerState { } try { - await ref - .read(remoteAlbumProvider.notifier) - .addUsers(widget.album.id, newUsers); + await ref.read(remoteAlbumProvider.notifier).addUsers(widget.album.id, newUsers); if (newUsers.isNotEmpty) { ImmichToast.show( @@ -157,9 +154,7 @@ class _RemoteAlbumPageState extends ConsumerState { if (confirmed == true) { try { - await ref - .read(remoteAlbumProvider.notifier) - .deleteAlbum(widget.album.id); + await ref.read(remoteAlbumProvider.notifier).deleteAlbum(widget.album.id); ImmichToast.show( context: context, @@ -237,9 +232,7 @@ class _RemoteAlbumPageState extends ConsumerState { overrides: [ timelineServiceProvider.overrideWith( (ref) { - final timelineService = ref - .watch(timelineFactoryProvider) - .remoteAlbum(albumId: widget.album.id); + final timelineService = ref.watch(timelineFactoryProvider).remoteAlbum(albumId: widget.album.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_trash.page.dart b/mobile/lib/presentation/pages/drift_trash.page.dart index 108a7e1cc9..61fc5e35f7 100644 --- a/mobile/lib/presentation/pages/drift_trash.page.dart +++ b/mobile/lib/presentation/pages/drift_trash.page.dart @@ -23,8 +23,7 @@ class DriftTrashPage extends StatelessWidget { throw Exception('User must be logged in to access trash'); } - final timelineService = - ref.watch(timelineFactoryProvider).trash(user.id); + final timelineService = ref.watch(timelineFactoryProvider).trash(user.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/drift_user_selection.page.dart b/mobile/lib/presentation/pages/drift_user_selection.page.dart index 6f5c4c3e2b..5aaa438a11 100644 --- a/mobile/lib/presentation/pages/drift_user_selection.page.dart +++ b/mobile/lib/presentation/pages/drift_user_selection.page.dart @@ -14,8 +14,7 @@ import 'package:immich_mobile/providers/user.provider.dart'; import 'package:immich_mobile/widgets/common/user_circle_avatar.dart'; // TODO: Refactor this provider when we have user provider/service/repository pattern in place -final driftUsersProvider = - FutureProvider.autoDispose>((ref) async { +final driftUsersProvider = FutureProvider.autoDispose>((ref) async { final drift = ref.watch(driftProvider); final currentUser = ref.watch(currentUserProvider); @@ -57,8 +56,7 @@ class DriftUserSelectionPage extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final AsyncValue> suggestedShareUsers = - ref.watch(driftUsersProvider); + final AsyncValue> suggestedShareUsers = ref.watch(driftUsersProvider); final sharedUsersList = useState>({}); addNewUsersHandler() { @@ -174,8 +172,7 @@ class DriftUserSelectionPage extends HookConsumerWidget { ), actions: [ TextButton( - onPressed: - sharedUsersList.value.isEmpty ? null : addNewUsersHandler, + onPressed: sharedUsersList.value.isEmpty ? null : addNewUsersHandler, child: const Text( "add", style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold), @@ -186,16 +183,13 @@ class DriftUserSelectionPage extends HookConsumerWidget { body: suggestedShareUsers.widgetWhen( onData: (users) { // Get shared users for this album from the database - final sharedUsers = - ref.watch(remoteAlbumSharedUsersProvider(album.id)); + final sharedUsers = ref.watch(remoteAlbumSharedUsersProvider(album.id)); return sharedUsers.when( data: (albumSharedUsers) { // Filter out users that are already shared with this album and the owner final filteredUsers = users.where((user) { - return !albumSharedUsers - .any((sharedUser) => sharedUser.id == user.id) && - user.id != album.ownerId; + return !albumSharedUsers.any((sharedUser) => sharedUser.id == user.id) && user.id != album.ownerId; }).toList(); return buildUserList(filteredUsers); @@ -203,8 +197,7 @@ class DriftUserSelectionPage extends HookConsumerWidget { loading: () => const Center(child: CircularProgressIndicator()), error: (error, stack) { // If we can't load shared users, just filter out the owner - final filteredUsers = - users.where((user) => user.id != album.ownerId).toList(); + final filteredUsers = users.where((user) => user.id != album.ownerId).toList(); return buildUserList(filteredUsers); }, ); diff --git a/mobile/lib/presentation/pages/drift_video.page.dart b/mobile/lib/presentation/pages/drift_video.page.dart index 8c0e8e6911..94c5620f9a 100644 --- a/mobile/lib/presentation/pages/drift_video.page.dart +++ b/mobile/lib/presentation/pages/drift_video.page.dart @@ -22,8 +22,7 @@ class DriftVideoPage extends StatelessWidget { throw Exception('User must be logged in to video'); } - final timelineService = - ref.watch(timelineFactoryProvider).video(user.id); + final timelineService = ref.watch(timelineFactoryProvider).video(user.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/local_timeline.page.dart b/mobile/lib/presentation/pages/local_timeline.page.dart index fd4e44616b..d322b5d9d2 100644 --- a/mobile/lib/presentation/pages/local_timeline.page.dart +++ b/mobile/lib/presentation/pages/local_timeline.page.dart @@ -19,9 +19,7 @@ class LocalTimelinePage extends StatelessWidget { overrides: [ timelineServiceProvider.overrideWith( (ref) { - final timelineService = ref - .watch(timelineFactoryProvider) - .localAlbum(albumId: album.id); + final timelineService = ref.watch(timelineFactoryProvider).localAlbum(albumId: album.id); ref.onDispose(timelineService.dispose); return timelineService; }, diff --git a/mobile/lib/presentation/pages/search/drift_search.page.dart b/mobile/lib/presentation/pages/search/drift_search.page.dart index 7101a42b01..5174c118d8 100644 --- a/mobile/lib/presentation/pages/search/drift_search.page.dart +++ b/mobile/lib/presentation/pages/search/drift_search.page.dart @@ -36,8 +36,7 @@ class DriftSearchPage extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final textSearchType = useState(TextSearchType.context); - final searchHintText = - useState('sunrise_on_the_beach'.t(context: context)); + final searchHintText = useState('sunrise_on_the_beach'.t(context: context)); final textSearchController = useTextEditingController(); final filter = useState( SearchFilter( @@ -52,8 +51,7 @@ class DriftSearchPage extends HookConsumerWidget { isFavorite: false, ), mediaType: preFilter?.mediaType ?? AssetType.other, - language: - "${context.locale.languageCode}-${context.locale.countryCode}", + language: "${context.locale.languageCode}-${context.locale.countryCode}", ), ); @@ -91,9 +89,7 @@ class DriftSearchPage extends HookConsumerWidget { isSearching.value = true; ref.watch(paginatedSearchProvider.notifier).clear(); - final hasResult = await ref - .watch(paginatedSearchProvider.notifier) - .search(filter.value); + final hasResult = await ref.watch(paginatedSearchProvider.notifier).search(filter.value); if (!hasResult) { context.showSnackBar( @@ -107,9 +103,7 @@ class DriftSearchPage extends HookConsumerWidget { loadMoreSearchResult() async { isSearching.value = true; - final hasResult = await ref - .watch(paginatedSearchProvider.notifier) - .search(filter.value); + final hasResult = await ref.watch(paginatedSearchProvider.notifier).search(filter.value); if (!hasResult) { context.showSnackBar( @@ -157,9 +151,7 @@ class DriftSearchPage extends HookConsumerWidget { ); peopleCurrentFilterWidget.value = Text( - value - .map((e) => e.name != '' ? e.name : 'no_name'.t(context: context)) - .join(', '), + value.map((e) => e.name != '' ? e.name : 'no_name'.t(context: context)).join(', '), style: context.textTheme.labelLarge, ); } @@ -424,8 +416,7 @@ class DriftSearchPage extends HookConsumerWidget { ); if (value) { filterText.add( - 'search_filter_display_option_not_in_album' - .t(context: context), + 'search_filter_display_option_not_in_album'.t(context: context), ); } break; @@ -572,9 +563,7 @@ class DriftSearchPage extends HookConsumerWidget { 'search_by_context'.t(context: context), style: context.textTheme.bodyLarge?.copyWith( fontWeight: FontWeight.w500, - color: textSearchType.value == TextSearchType.context - ? context.colorScheme.primary - : null, + color: textSearchType.value == TextSearchType.context ? context.colorScheme.primary : null, ), ), selectedColor: context.colorScheme.primary, @@ -582,8 +571,7 @@ class DriftSearchPage extends HookConsumerWidget { ), onPressed: () { textSearchType.value = TextSearchType.context; - searchHintText.value = - 'sunrise_on_the_beach'.t(context: context); + searchHintText.value = 'sunrise_on_the_beach'.t(context: context); }, ), MenuItemButton( @@ -593,9 +581,7 @@ class DriftSearchPage extends HookConsumerWidget { 'search_filter_filename'.t(context: context), style: context.textTheme.bodyLarge?.copyWith( fontWeight: FontWeight.w500, - color: textSearchType.value == TextSearchType.filename - ? context.colorScheme.primary - : null, + color: textSearchType.value == TextSearchType.filename ? context.colorScheme.primary : null, ), ), selectedColor: context.colorScheme.primary, @@ -603,8 +589,7 @@ class DriftSearchPage extends HookConsumerWidget { ), onPressed: () { textSearchType.value = TextSearchType.filename; - searchHintText.value = - 'file_name_or_extension'.t(context: context); + searchHintText.value = 'file_name_or_extension'.t(context: context); }, ), MenuItemButton( @@ -614,20 +599,15 @@ class DriftSearchPage extends HookConsumerWidget { 'search_by_description'.t(context: context), style: context.textTheme.bodyLarge?.copyWith( fontWeight: FontWeight.w500, - color: - textSearchType.value == TextSearchType.description - ? context.colorScheme.primary - : null, + color: textSearchType.value == TextSearchType.description ? context.colorScheme.primary : null, ), ), selectedColor: context.colorScheme.primary, - selected: - textSearchType.value == TextSearchType.description, + selected: textSearchType.value == TextSearchType.description, ), onPressed: () { textSearchType.value = TextSearchType.description; - searchHintText.value = - 'search_by_description_example'.t(context: context); + searchHintText.value = 'search_by_description_example'.t(context: context); }, ), ], @@ -657,9 +637,7 @@ class DriftSearchPage extends HookConsumerWidget { hintText: searchHintText.value, key: const Key('search_text_field'), controller: textSearchController, - contentPadding: preFilter != null - ? const EdgeInsets.only(left: 24) - : const EdgeInsets.all(8), + contentPadding: preFilter != null ? const EdgeInsets.only(left: 24) : const EdgeInsets.all(8), prefixIcon: preFilter != null ? null : Icon( @@ -718,8 +696,7 @@ class DriftSearchPage extends HookConsumerWidget { SearchFilterChip( icon: Icons.display_settings_outlined, onTap: showDisplayOptionPicker, - label: - 'search_filter_display_options'.t(context: context), + label: 'search_filter_display_options'.t(context: context), currentFilter: displayOptionCurrentFilterWidget.value, ), ], @@ -755,16 +732,13 @@ class _SearchResultGrid extends ConsumerWidget { return NotificationListener( onNotification: (notification) { - final isBottomSheetNotification = notification.context - ?.findAncestorWidgetOfExactType() != - null; + final isBottomSheetNotification = + notification.context?.findAncestorWidgetOfExactType() != null; final metrics = notification.metrics; final isVerticalScroll = metrics.axis == Axis.vertical; - if (metrics.pixels >= metrics.maxScrollExtent && - isVerticalScroll && - !isBottomSheetNotification) { + if (metrics.pixels >= metrics.maxScrollExtent && isVerticalScroll && !isBottomSheetNotification) { onScrollEnd(); } @@ -775,9 +749,7 @@ class _SearchResultGrid extends ConsumerWidget { overrides: [ timelineServiceProvider.overrideWith( (ref) { - final timelineService = ref - .watch(timelineFactoryProvider) - .fromAssets(searchResult.assets); + final timelineService = ref.watch(timelineFactoryProvider).fromAssets(searchResult.assets); ref.onDispose(timelineService.dispose); return timelineService; }, @@ -806,9 +778,7 @@ class _SearchEmptyContent extends StatelessWidget { const SizedBox(height: 40), Center( child: Image.asset( - context.isDarkTheme - ? 'assets/polaroid-dark.png' - : 'assets/polaroid-light.png', + context.isDarkTheme ? 'assets/polaroid-dark.png' : 'assets/polaroid-light.png', height: 125, ), ), diff --git a/mobile/lib/presentation/pages/search/paginated_search.provider.dart b/mobile/lib/presentation/pages/search/paginated_search.provider.dart index 84635fd0b9..c93d002b95 100644 --- a/mobile/lib/presentation/pages/search/paginated_search.provider.dart +++ b/mobile/lib/presentation/pages/search/paginated_search.provider.dart @@ -4,16 +4,14 @@ import 'package:immich_mobile/domain/services/search.service.dart'; import 'package:immich_mobile/models/search/search_filter.model.dart'; import 'package:immich_mobile/providers/infrastructure/search.provider.dart'; -final paginatedSearchProvider = - StateNotifierProvider( +final paginatedSearchProvider = StateNotifierProvider( (ref) => PaginatedSearchNotifier(ref.watch(searchServiceProvider)), ); class PaginatedSearchNotifier extends StateNotifier { final SearchService _searchService; - PaginatedSearchNotifier(this._searchService) - : super(const SearchResult(assets: [], nextPage: 1)); + PaginatedSearchNotifier(this._searchService) : super(const SearchResult(assets: [], nextPage: 1)); Future search(SearchFilter filter) async { if (state.nextPage == null) { diff --git a/mobile/lib/presentation/widgets/action_buttons/archive_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/archive_action_button.widget.dart index 061e15e58a..f17bf553ce 100644 --- a/mobile/lib/presentation/widgets/action_buttons/archive_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/archive_action_button.widget.dart @@ -35,9 +35,7 @@ class ArchiveActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/base_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/base_action_button.widget.dart index 2ad285326c..cc65571a40 100644 --- a/mobile/lib/presentation/widgets/action_buttons/base_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/base_action_button.widget.dart @@ -25,12 +25,10 @@ class BaseActionButton extends StatelessWidget { @override Widget build(BuildContext context) { - final miniWidth = - minWidth ?? (context.isMobile ? context.width / 4.5 : 75.0); + final miniWidth = minWidth ?? (context.isMobile ? context.width / 4.5 : 75.0); final iconTheme = IconTheme.of(context); final iconSize = iconTheme.size ?? 24.0; - final iconColor = - this.iconColor ?? iconTheme.color ?? context.themeData.iconTheme.color; + final iconColor = this.iconColor ?? iconTheme.color ?? context.themeData.iconTheme.color; final textColor = context.themeData.textTheme.labelLarge?.color; if (menuItem) { diff --git a/mobile/lib/presentation/widgets/action_buttons/cast_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/cast_action_button.widget.dart index 2900d55834..c80dbaaf2d 100644 --- a/mobile/lib/presentation/widgets/action_buttons/cast_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/cast_action_button.widget.dart @@ -17,8 +17,7 @@ class CastActionButton extends ConsumerWidget { return BaseActionButton( iconData: isCasting ? Icons.cast_connected_rounded : Icons.cast_rounded, - iconColor: - isCasting ? context.primaryColor : null, // null = default color + iconColor: isCasting ? context.primaryColor : null, // null = default color label: "cast".t(context: context), onPressed: () { showDialog( diff --git a/mobile/lib/presentation/widgets/action_buttons/delete_local_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/delete_local_action_button.widget.dart index acd3738f7a..af14befe61 100644 --- a/mobile/lib/presentation/widgets/action_buttons/delete_local_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/delete_local_action_button.widget.dart @@ -35,9 +35,7 @@ class DeleteLocalActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart index 7840e8a41d..1f8710b07f 100644 --- a/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart @@ -20,8 +20,7 @@ class DeletePermanentActionButton extends ConsumerWidget { return; } - final result = - await ref.read(actionProvider.notifier).deleteRemoteAndLocal(source); + final result = await ref.read(actionProvider.notifier).deleteRemoteAndLocal(source); ref.read(multiSelectProvider.notifier).reset(); if (source == ActionSource.viewer) { @@ -36,9 +35,7 @@ class DeletePermanentActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart index 71cf5acb0a..6047eb90eb 100644 --- a/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart @@ -17,8 +17,7 @@ class DeleteTrashActionButton extends ConsumerWidget { return; } - final result = - await ref.read(actionProvider.notifier).deleteRemoteAndLocal(source); + final result = await ref.read(actionProvider.notifier).deleteRemoteAndLocal(source); ref.read(multiSelectProvider.notifier).reset(); final successMessage = 'assets_permanently_deleted_count'.t( @@ -29,9 +28,7 @@ class DeleteTrashActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/download_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/download_action_button.widget.dart index c6eda703a5..a6464308e2 100644 --- a/mobile/lib/presentation/widgets/action_buttons/download_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/download_action_button.widget.dart @@ -35,8 +35,7 @@ class DownloadActionButton extends ConsumerWidget { } else if (result.count > 0) { ImmichToast.show( context: context, - msg: 'download_action_prompt' - .t(context: context, args: {'count': result.count.toString()}), + msg: 'download_action_prompt'.t(context: context, args: {'count': result.count.toString()}), gravity: ToastGravity.BOTTOM, toastType: ToastType.success, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/edit_location_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/edit_location_action_button.widget.dart index c7279995ff..fc642483be 100644 --- a/mobile/lib/presentation/widgets/action_buttons/edit_location_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/edit_location_action_button.widget.dart @@ -18,8 +18,7 @@ class EditLocationActionButton extends ConsumerWidget { return; } - final result = - await ref.read(actionProvider.notifier).editLocation(source, context); + final result = await ref.read(actionProvider.notifier).editLocation(source, context); if (result == null) { return; } @@ -34,9 +33,7 @@ class EditLocationActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/favorite_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/favorite_action_button.widget.dart index 39d059c2d1..c330a7bbb1 100644 --- a/mobile/lib/presentation/widgets/action_buttons/favorite_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/favorite_action_button.widget.dart @@ -39,9 +39,7 @@ class FavoriteActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/motion_photo_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/motion_photo_action_button.widget.dart index 47f797c166..696b9ff367 100644 --- a/mobile/lib/presentation/widgets/action_buttons/motion_photo_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/motion_photo_action_button.widget.dart @@ -14,9 +14,7 @@ class MotionPhotoActionButton extends ConsumerWidget { final isPlaying = ref.watch(isPlayingMotionVideoProvider); return BaseActionButton( - iconData: isPlaying - ? Icons.motion_photos_pause_outlined - : Icons.play_circle_outline_rounded, + iconData: isPlaying ? Icons.motion_photos_pause_outlined : Icons.play_circle_outline_rounded, label: "play_motion_photo".t(context: context), onPressed: ref.read(isPlayingMotionVideoProvider.notifier).toggle, menuItem: menuItem, diff --git a/mobile/lib/presentation/widgets/action_buttons/move_to_lock_folder_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/move_to_lock_folder_action_button.widget.dart index 6b3e32a2dc..0fde43b459 100644 --- a/mobile/lib/presentation/widgets/action_buttons/move_to_lock_folder_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/move_to_lock_folder_action_button.widget.dart @@ -20,8 +20,7 @@ class MoveToLockFolderActionButton extends ConsumerWidget { return; } - final result = - await ref.read(actionProvider.notifier).moveToLockFolder(source); + final result = await ref.read(actionProvider.notifier).moveToLockFolder(source); ref.read(multiSelectProvider.notifier).reset(); if (source == ActionSource.viewer) { @@ -36,9 +35,7 @@ class MoveToLockFolderActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/remove_from_album_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/remove_from_album_action_button.widget.dart index 8228e27cc1..8857a1b2d9 100644 --- a/mobile/lib/presentation/widgets/action_buttons/remove_from_album_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/remove_from_album_action_button.widget.dart @@ -23,9 +23,7 @@ class RemoveFromAlbumActionButton extends ConsumerWidget { return; } - final result = await ref - .read(actionProvider.notifier) - .removeFromAlbum(source, albumId); + final result = await ref.read(actionProvider.notifier).removeFromAlbum(source, albumId); ref.read(multiSelectProvider.notifier).reset(); final successMessage = 'remove_from_album_action_prompt'.t( @@ -36,9 +34,7 @@ class RemoveFromAlbumActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/remove_from_lock_folder_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/remove_from_lock_folder_action_button.widget.dart index 20fb62013f..028abf5596 100644 --- a/mobile/lib/presentation/widgets/action_buttons/remove_from_lock_folder_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/remove_from_lock_folder_action_button.widget.dart @@ -18,8 +18,7 @@ class RemoveFromLockFolderActionButton extends ConsumerWidget { return; } - final result = - await ref.read(actionProvider.notifier).removeFromLockFolder(source); + final result = await ref.read(actionProvider.notifier).removeFromLockFolder(source); ref.read(multiSelectProvider.notifier).reset(); final successMessage = 'remove_from_lock_folder_action_prompt'.t( @@ -30,9 +29,7 @@ class RemoveFromLockFolderActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/restore_trash_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/restore_trash_action_button.widget.dart index 6a3df94cbd..7cdc28e1e8 100644 --- a/mobile/lib/presentation/widgets/action_buttons/restore_trash_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/restore_trash_action_button.widget.dart @@ -28,9 +28,7 @@ class RestoreTrashActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/share_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/share_action_button.widget.dart index 1b1553dabc..546fbe408d 100644 --- a/mobile/lib/presentation/widgets/action_buttons/share_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/share_action_button.widget.dart @@ -37,8 +37,7 @@ class ShareActionButton extends ConsumerWidget { } else if (result.count > 0) { ImmichToast.show( context: context, - msg: 'share_action_prompt' - .t(context: context, args: {'count': result.count.toString()}), + msg: 'share_action_prompt'.t(context: context, args: {'count': result.count.toString()}), gravity: ToastGravity.BOTTOM, toastType: ToastType.success, ); @@ -48,8 +47,7 @@ class ShareActionButton extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return BaseActionButton( - iconData: - Platform.isAndroid ? Icons.share_rounded : Icons.ios_share_rounded, + iconData: Platform.isAndroid ? Icons.share_rounded : Icons.ios_share_rounded, label: 'share'.t(context: context), onPressed: () => _onTap(context, ref), ); diff --git a/mobile/lib/presentation/widgets/action_buttons/stack_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/stack_action_button.widget.dart index 13782c0098..d448c5ce86 100644 --- a/mobile/lib/presentation/widgets/action_buttons/stack_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/stack_action_button.widget.dart @@ -24,8 +24,7 @@ class StackActionButton extends ConsumerWidget { throw Exception('User must be logged in to access stack action'); } - final result = - await ref.read(actionProvider.notifier).stack(user.id, source); + final result = await ref.read(actionProvider.notifier).stack(user.id, source); ref.read(multiSelectProvider.notifier).reset(); final successMessage = 'stack_action_prompt'.t( @@ -36,9 +35,7 @@ class StackActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/trash_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/trash_action_button.widget.dart index 2863c71d12..a6656e02a1 100644 --- a/mobile/lib/presentation/widgets/action_buttons/trash_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/trash_action_button.widget.dart @@ -35,9 +35,7 @@ class TrashActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/unarchive_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/unarchive_action_button.widget.dart index e44500144c..d01a5cc47b 100644 --- a/mobile/lib/presentation/widgets/action_buttons/unarchive_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/unarchive_action_button.widget.dart @@ -29,9 +29,7 @@ class UnArchiveActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/unfavorite_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/unfavorite_action_button.widget.dart index b465643796..a45bdfb06a 100644 --- a/mobile/lib/presentation/widgets/action_buttons/unfavorite_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/unfavorite_action_button.widget.dart @@ -39,9 +39,7 @@ class UnFavoriteActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/unstack_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/unstack_action_button.widget.dart index c2757043a3..bf96e6ea41 100644 --- a/mobile/lib/presentation/widgets/action_buttons/unstack_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/unstack_action_button.widget.dart @@ -29,9 +29,7 @@ class UnStackActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/action_buttons/upload_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/upload_action_button.widget.dart index d67c952b1a..9e2fc9b309 100644 --- a/mobile/lib/presentation/widgets/action_buttons/upload_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/upload_action_button.widget.dart @@ -28,9 +28,7 @@ class UploadActionButton extends ConsumerWidget { if (context.mounted) { ImmichToast.show( context: context, - msg: result.success - ? successMessage - : 'scaffold_body_error_occurred'.t(context: context), + msg: result.success ? successMessage : 'scaffold_body_error_occurred'.t(context: context), gravity: ToastGravity.BOTTOM, toastType: result.success ? ToastType.success : ToastType.error, ); diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_stack.provider.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_stack.provider.dart index 5b86258e72..e78c8ea8ad 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_stack.provider.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_stack.provider.dart @@ -2,8 +2,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; -class StackChildrenNotifier - extends AutoDisposeFamilyAsyncNotifier, BaseAsset?> { +class StackChildrenNotifier extends AutoDisposeFamilyAsyncNotifier, BaseAsset?> { @override Future> build(BaseAsset? asset) async { if (asset == null || asset is! RemoteAsset || asset.stackId == null) { @@ -14,7 +13,7 @@ class StackChildrenNotifier } } -final stackChildrenNotifier = AsyncNotifierProvider.autoDispose - .family, BaseAsset?>( +final stackChildrenNotifier = + AsyncNotifierProvider.autoDispose.family, BaseAsset?>( StackChildrenNotifier.new, ); diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_stack.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_stack.widget.dart index 8b3d0c6575..92f516157e 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_stack.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_stack.widget.dart @@ -14,8 +14,7 @@ class AssetStackRow extends ConsumerWidget { int opacity = ref.watch( assetViewerProvider.select((state) => state.backgroundOpacity), ); - final showControls = - ref.watch(assetViewerProvider.select((s) => s.showingControls)); + final showControls = ref.watch(assetViewerProvider.select((s) => s.showingControls)); if (!showControls) { opacity = 0; @@ -68,8 +67,7 @@ class _StackList extends ConsumerWidget { child: Container( height: 60, width: 60, - decoration: index == - ref.watch(assetViewerProvider.select((s) => s.stackIndex)) + decoration: index == ref.watch(assetViewerProvider.select((s) => s.stackIndex)) ? const BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(6)), diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart index 34339c8ba3..20cf59b2e7 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart @@ -120,12 +120,10 @@ class _AssetViewerState extends ConsumerState { super.dispose(); } - bool get showingBottomSheet => - ref.read(assetViewerProvider.select((s) => s.showingBottomSheet)); + bool get showingBottomSheet => ref.read(assetViewerProvider.select((s) => s.showingBottomSheet)); Color get backgroundColor { - final opacity = - ref.read(assetViewerProvider.select((s) => s.backgroundOpacity)); + final opacity = ref.read(assetViewerProvider.select((s) => s.backgroundOpacity)); return Colors.black.withAlpha(opacity); } @@ -139,9 +137,7 @@ class _AssetViewerState extends ConsumerState { // This is used to calculate the scale of the asset when the bottom sheet is showing. // It is a small increment to ensure that the asset is slightly zoomed in when the // bottom sheet is showing, which emulates the zoom effect. - double get _getScaleForBottomSheet => - (viewController?.prevValue.scale ?? viewController?.value.scale ?? 1.0) + - 0.01; + double get _getScaleForBottomSheet => (viewController?.prevValue.scale ?? viewController?.value.scale ?? 1.0) + 0.01; double _getVerticalOffsetForBottomSheet(double extent) => (context.height * extent) - (context.height * _kBottomSheetMinimumExtent); @@ -235,8 +231,8 @@ class _AssetViewerState extends ConsumerState { void _onPageBuild(PhotoViewControllerBase controller) { viewController ??= controller; if (showingBottomSheet) { - final verticalOffset = (context.height * bottomSheetController.size) - - (context.height * _kBottomSheetMinimumExtent); + final verticalOffset = + (context.height * bottomSheetController.size) - (context.height * _kBottomSheetMinimumExtent); controller.position = Offset(0, -verticalOffset); } } @@ -262,9 +258,8 @@ class _AssetViewerState extends ConsumerState { viewController = controller; dragDownPosition = details.localPosition; initialPhotoViewState = controller.value; - final isZoomed = - scaleStateController.scaleState == PhotoViewScaleState.zoomedIn || - scaleStateController.scaleState == PhotoViewScaleState.covering; + final isZoomed = scaleStateController.scaleState == PhotoViewScaleState.zoomedIn || + scaleStateController.scaleState == PhotoViewScaleState.covering; if (!showingBottomSheet && isZoomed) { blockGestures = true; } @@ -349,8 +344,7 @@ class _AssetViewerState extends ConsumerState { updatedScale = initialPhotoViewState.scale! * (1.0 - scaleReduction); } - final backgroundOpacity = - (255 * (1.0 - (scaleReduction / dragRatio))).round(); + final backgroundOpacity = (255 * (1.0 - (scaleReduction / dragRatio))).round(); viewController?.updateMultiple( position: initialPhotoViewState.position + delta, @@ -494,8 +488,7 @@ class _AssetViewerState extends ConsumerState { } void _snapBottomSheet() { - if (bottomSheetController.size > _kBottomSheetSnapExtent || - bottomSheetController.size < 0.4) { + if (bottomSheetController.size > _kBottomSheetSnapExtent || bottomSheetController.size < 0.4) { return; } isSnapping = true; @@ -514,8 +507,7 @@ class _AssetViewerState extends ConsumerState { BaseAsset asset = ref.read(timelineServiceProvider).getAsset(index); final stackChildren = ref.read(stackChildrenNotifier(asset)).valueOrNull; if (stackChildren != null && stackChildren.isNotEmpty) { - asset = stackChildren - .elementAt(ref.read(assetViewerProvider.select((s) => s.stackIndex))); + asset = stackChildren.elementAt(ref.read(assetViewerProvider.select((s) => s.stackIndex))); } return Container( width: double.infinity, @@ -547,8 +539,7 @@ class _AssetViewerState extends ConsumerState { BaseAsset asset = ref.read(timelineServiceProvider).getAsset(index); final stackChildren = ref.read(stackChildrenNotifier(asset)).valueOrNull; if (stackChildren != null && stackChildren.isNotEmpty) { - asset = stackChildren - .elementAt(ref.read(assetViewerProvider.select((s) => s.stackIndex))); + asset = stackChildren.elementAt(ref.read(assetViewerProvider.select((s) => s.stackIndex))); } final isPlayingMotionVideo = ref.read(isPlayingMotionVideoProvider); @@ -564,8 +555,7 @@ class _AssetViewerState extends ConsumerState { return PhotoViewGalleryPageOptions( key: ValueKey(asset.heroTag), imageProvider: getFullImageProvider(asset, size: size), - heroAttributes: - PhotoViewHeroAttributes(tag: '${asset.heroTag}_$heroOffset'), + heroAttributes: PhotoViewHeroAttributes(tag: '${asset.heroTag}_$heroOffset'), filterQuality: FilterQuality.high, tightMode: true, initialScale: PhotoViewComputedScale.contained * 0.999, @@ -600,8 +590,7 @@ class _AssetViewerState extends ConsumerState { onDragUpdate: _onDragUpdate, onDragEnd: _onDragEnd, onTapDown: _onTapDown, - heroAttributes: - PhotoViewHeroAttributes(tag: '${asset.heroTag}_$heroOffset'), + heroAttributes: PhotoViewHeroAttributes(tag: '${asset.heroTag}_$heroOffset'), filterQuality: FilterQuality.high, initialScale: PhotoViewComputedScale.contained * 0.99, maxScale: 1.0, @@ -615,8 +604,7 @@ class _AssetViewerState extends ConsumerState { asset: asset, image: Image( key: ValueKey(asset), - image: - getFullImageProvider(asset, size: Size(ctx.width, ctx.height)), + image: getFullImageProvider(asset, size: Size(ctx.width, ctx.height)), fit: BoxFit.contain, height: ctx.height, width: ctx.width, @@ -641,8 +629,7 @@ class _AssetViewerState extends ConsumerState { ref.watch(isPlayingMotionVideoProvider); // Listen for casting changes and send initial asset to the cast provider - ref.listen(castProvider.select((value) => value.isCasting), - (_, isCasting) async { + ref.listen(castProvider.select((value) => value.isCasting), (_, isCasting) async { if (!isCasting) return; final asset = ref.read(currentAssetNotifier); diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart index e57a6ff7ca..32d5249bdc 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_viewer.state.dart @@ -108,7 +108,6 @@ class AssetViewerStateNotifier extends AutoDisposeNotifier { } } -final assetViewerProvider = - AutoDisposeNotifierProvider( +final assetViewerProvider = AutoDisposeNotifierProvider( AssetViewerStateNotifier.new, ); diff --git a/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart index 65bab5acb8..9ea2035930 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart @@ -29,8 +29,7 @@ class ViewerBottomBar extends ConsumerWidget { int opacity = ref.watch( assetViewerProvider.select((state) => state.backgroundOpacity), ); - final showControls = - ref.watch(assetViewerProvider.select((s) => s.showingControls)); + final showControls = ref.watch(assetViewerProvider.select((s) => s.showingControls)); if (!showControls) { opacity = 0; @@ -38,10 +37,8 @@ class ViewerBottomBar extends ConsumerWidget { final actions = [ const ShareActionButton(source: ActionSource.viewer), - if (asset.isLocalOnly) - const UploadActionButton(source: ActionSource.viewer), - if (asset.hasRemote && isOwner) - const ArchiveActionButton(source: ActionSource.viewer), + if (asset.isLocalOnly) const UploadActionButton(source: ActionSource.viewer), + if (asset.hasRemote && isOwner) const ArchiveActionButton(source: ActionSource.viewer), ]; return IgnorePointer( @@ -55,11 +52,9 @@ class ViewerBottomBar extends ConsumerWidget { ? const SizedBox.shrink() : Theme( data: context.themeData.copyWith( - iconTheme: - const IconThemeData(size: 22, color: Colors.white), + iconTheme: const IconThemeData(size: 22, color: Colors.white), textTheme: context.themeData.textTheme.copyWith( - labelLarge: - context.themeData.textTheme.labelLarge?.copyWith( + labelLarge: context.themeData.textTheme.labelLarge?.copyWith( color: Colors.white, ), ), diff --git a/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart index 9111469629..b6d24724b4 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet.widget.dart @@ -52,8 +52,7 @@ class AssetDetailBottomSheet extends ConsumerWidget { if (asset.hasRemote) ...[ const ShareLinkActionButton(source: ActionSource.viewer), const ArchiveActionButton(source: ActionSource.viewer), - if (!asset.hasLocal) - const DownloadActionButton(source: ActionSource.viewer), + if (!asset.hasLocal) const DownloadActionButton(source: ActionSource.viewer), isTrashEnable ? const TrashActionButton(source: ActionSource.viewer) : const DeletePermanentActionButton(source: ActionSource.viewer), @@ -100,18 +99,14 @@ class _AssetDetailBottomSheet extends ConsumerWidget { String _getFileInfo(BaseAsset asset, ExifInfo? exifInfo) { final height = asset.height ?? exifInfo?.height; final width = asset.width ?? exifInfo?.width; - final resolution = (width != null && height != null) - ? "${width.toInt()} x ${height.toInt()}" - : null; - final fileSize = - exifInfo?.fileSize != null ? formatBytes(exifInfo!.fileSize!) : null; + final resolution = (width != null && height != null) ? "${width.toInt()} x ${height.toInt()}" : null; + final fileSize = exifInfo?.fileSize != null ? formatBytes(exifInfo!.fileSize!) : null; return switch ((fileSize, resolution)) { (null, null) => '', (String fileSize, null) => fileSize, (null, String resolution) => resolution, - (String fileSize, String resolution) => - '$fileSize$_kSeparator$resolution', + (String fileSize, String resolution) => '$fileSize$_kSeparator$resolution', }; } @@ -133,17 +128,12 @@ class _AssetDetailBottomSheet extends ConsumerWidget { return null; } - final fNumber = - exifInfo.fNumber.isNotEmpty ? 'ƒ/${exifInfo.fNumber}' : null; - final exposureTime = - exifInfo.exposureTime.isNotEmpty ? exifInfo.exposureTime : null; - final focalLength = - exifInfo.focalLength.isNotEmpty ? '${exifInfo.focalLength} mm' : null; + final fNumber = exifInfo.fNumber.isNotEmpty ? 'ƒ/${exifInfo.fNumber}' : null; + final exposureTime = exifInfo.exposureTime.isNotEmpty ? exifInfo.exposureTime : null; + final focalLength = exifInfo.focalLength.isNotEmpty ? '${exifInfo.focalLength} mm' : null; final iso = exifInfo.iso != null ? 'ISO ${exifInfo.iso}' : null; - return [fNumber, exposureTime, focalLength, iso] - .where((spec) => spec != null && spec.isNotEmpty) - .join(_kSeparator); + return [fNumber, exposureTime, focalLength, iso].where((spec) => spec != null && spec.isNotEmpty).join(_kSeparator); } @override diff --git a/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet/location_details.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet/location_details.widget.dart index 855328ebde..f91dafb3ed 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet/location_details.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/bottom_sheet/location_details.widget.dart @@ -71,17 +71,13 @@ class _SheetLocationDetailsState extends ConsumerState { final hasCoordinates = exifInfo?.hasCoordinates ?? false; // Guard no lat/lng - if (!hasCoordinates || - (asset != null && asset is LocalAsset && asset!.hasRemote)) { + if (!hasCoordinates || (asset != null && asset is LocalAsset && asset!.hasRemote)) { return const SizedBox.shrink(); } - final remoteId = asset is LocalAsset - ? (asset as LocalAsset).remoteId - : (asset as RemoteAsset).id; + final remoteId = asset is LocalAsset ? (asset as LocalAsset).remoteId : (asset as RemoteAsset).id; final locationName = _getLocationName(exifInfo); - final coordinates = - "${exifInfo!.latitude!.toStringAsFixed(4)}, ${exifInfo!.longitude!.toStringAsFixed(4)}"; + final coordinates = "${exifInfo!.latitude!.toStringAsFixed(4)}, ${exifInfo!.longitude!.toStringAsFixed(4)}"; return Padding( padding: EdgeInsets.symmetric( diff --git a/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart index 4cdf9f2287..3f48a83bcb 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/top_app_bar.widget.dart @@ -30,13 +30,11 @@ class ViewerTopAppBar extends ConsumerWidget implements PreferredSizeWidget { final isOwner = asset is RemoteAsset && asset.ownerId == user?.id; final isInLockedView = ref.watch(inLockedViewProvider); - final isShowingSheet = ref - .watch(assetViewerProvider.select((state) => state.showingBottomSheet)); + final isShowingSheet = ref.watch(assetViewerProvider.select((state) => state.showingBottomSheet)); int opacity = ref.watch( assetViewerProvider.select((state) => state.backgroundOpacity), ); - final showControls = - ref.watch(assetViewerProvider.select((s) => s.showingControls)); + final showControls = ref.watch(assetViewerProvider.select((s) => s.showingControls)); if (!showControls) { opacity = 0; @@ -45,8 +43,7 @@ class ViewerTopAppBar extends ConsumerWidget implements PreferredSizeWidget { final isCasting = ref.watch( castProvider.select((c) => c.isCasting), ); - final websocketConnected = - ref.watch(websocketProvider.select((c) => c.isConnected)); + final websocketConnected = ref.watch(websocketProvider.select((c) => c.isConnected)); final actions = [ if (isCasting || (asset.hasRemote && websocketConnected)) @@ -78,8 +75,7 @@ class ViewerTopAppBar extends ConsumerWidget implements PreferredSizeWidget { opacity: opacity / 255, duration: Durations.short2, child: AppBar( - backgroundColor: - isShowingSheet ? Colors.transparent : Colors.black.withAlpha(125), + backgroundColor: isShowingSheet ? Colors.transparent : Colors.black.withAlpha(125), leading: const _AppBarBackButton(), iconTheme: const IconThemeData(size: 22, color: Colors.white), actionsIconTheme: const IconThemeData(size: 22, color: Colors.white), @@ -117,12 +113,9 @@ class _AppBarBackButton extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final isShowingSheet = ref - .watch(assetViewerProvider.select((state) => state.showingBottomSheet)); - final backgroundColor = - isShowingSheet && !context.isDarkTheme ? Colors.white : Colors.black; - final foregroundColor = - isShowingSheet && !context.isDarkTheme ? Colors.black : Colors.white; + final isShowingSheet = ref.watch(assetViewerProvider.select((state) => state.showingBottomSheet)); + final backgroundColor = isShowingSheet && !context.isDarkTheme ? Colors.white : Colors.black; + final foregroundColor = isShowingSheet && !context.isDarkTheme ? Colors.black : Colors.white; return Padding( padding: const EdgeInsets.only(left: 12.0), diff --git a/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart index 2accf465ed..f0d665b8ce 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart @@ -92,9 +92,7 @@ class NativeVideoViewer extends HookConsumerWidget { try { if (asset.hasLocal && asset.livePhotoVideoId == null) { - final id = asset is LocalAsset - ? (asset as LocalAsset).id - : (asset as RemoteAsset).localId!; + final id = asset is LocalAsset ? (asset as LocalAsset).id : (asset as RemoteAsset).localId!; final file = await const StorageRepository().getFileForAsset(id); if (file == null) { throw Exception('No file found for the video'); @@ -111,10 +109,8 @@ class NativeVideoViewer extends HookConsumerWidget { // Use a network URL for the video player controller final serverEndpoint = Store.get(StoreKey.serverEndpoint); - final isOriginalVideo = - ref.read(settingsProvider).get(Setting.loadOriginalVideo); - final String postfixUrl = - isOriginalVideo ? 'original' : 'video/playback'; + final isOriginalVideo = ref.read(settingsProvider).get(Setting.loadOriginalVideo); + final String postfixUrl = isOriginalVideo ? 'original' : 'video/playback'; final String videoUrl = asset.livePhotoVideoId != null ? '$serverEndpoint/assets/${asset.livePhotoVideoId}/$postfixUrl' : '$serverEndpoint/assets/$remoteId/$postfixUrl'; @@ -142,8 +138,7 @@ class NativeVideoViewer extends HookConsumerWidget { } try { - aspectRatio.value = - await ref.read(assetServiceProvider).getAspectRatio(asset); + aspectRatio.value = await ref.read(assetServiceProvider).getAspectRatio(asset); } catch (error) { log.severe( 'Error getting aspect ratio for asset ${asset.name}: $error', @@ -159,8 +154,7 @@ class NativeVideoViewer extends HookConsumerWidget { } final videoPlayback = ref.read(videoPlaybackValueProvider); - if ((isBuffering.value || - videoPlayback.state == VideoPlaybackState.initializing) && + if ((isBuffering.value || videoPlayback.state == VideoPlaybackState.initializing) && videoPlayback.state != VideoPlaybackState.buffering) { ref.read(videoPlaybackValueProvider.notifier).value = videoPlayback.copyWith(state: VideoPlaybackState.buffering); @@ -219,8 +213,7 @@ class NativeVideoViewer extends HookConsumerWidget { return; } - final videoPlayback = - VideoPlaybackValue.fromNativeController(videoController); + final videoPlayback = VideoPlaybackValue.fromNativeController(videoController); ref.read(videoPlaybackValueProvider.notifier).value = videoPlayback; if (ref.read(assetViewerProvider.select((s) => s.showingBottomSheet))) { @@ -241,8 +234,7 @@ class NativeVideoViewer extends HookConsumerWidget { return; } - final videoPlayback = - VideoPlaybackValue.fromNativeController(videoController); + final videoPlayback = VideoPlaybackValue.fromNativeController(videoController); if (videoPlayback.state == VideoPlaybackState.playing) { // Sync with the controls playing WakelockPlus.enable(); @@ -251,8 +243,7 @@ class NativeVideoViewer extends HookConsumerWidget { WakelockPlus.disable(); } - ref.read(videoPlaybackValueProvider.notifier).status = - videoPlayback.state; + ref.read(videoPlaybackValueProvider.notifier).status = videoPlayback.state; } void onPlaybackPositionChanged() { @@ -271,8 +262,7 @@ class NativeVideoViewer extends HookConsumerWidget { return; } - ref.read(videoPlaybackValueProvider.notifier).position = - Duration(seconds: playbackInfo.position); + ref.read(videoPlaybackValueProvider.notifier).position = Duration(seconds: playbackInfo.position); // Check if the video is buffering if (playbackInfo.status == PlaybackStatus.playing) { @@ -296,10 +286,8 @@ class NativeVideoViewer extends HookConsumerWidget { } void removeListeners(NativeVideoPlayerController controller) { - controller.onPlaybackPositionChanged - .removeListener(onPlaybackPositionChanged); - controller.onPlaybackStatusChanged - .removeListener(onPlaybackStatusChanged); + controller.onPlaybackPositionChanged.removeListener(onPlaybackPositionChanged); + controller.onPlaybackStatusChanged.removeListener(onPlaybackStatusChanged); controller.onPlaybackReady.removeListener(onPlaybackReady); controller.onPlaybackEnded.removeListener(onPlaybackEnded); } @@ -324,9 +312,7 @@ class NativeVideoViewer extends HookConsumerWidget { nc.loadVideoSource(source).catchError((error) { log.severe('Error loading video source: $error'); }); - final loopVideo = ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.loopVideo); + final loopVideo = ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.loopVideo); nc.setLoop(!asset.isMotionPhoto && loopVideo); controller.value = nc; diff --git a/mobile/lib/presentation/widgets/asset_viewer/video_viewer_controls.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/video_viewer_controls.widget.dart index 883169ae83..1fc01bb8e5 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/video_viewer_controls.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/video_viewer_controls.widget.dart @@ -23,15 +23,12 @@ class VideoViewerControls extends HookConsumerWidget { final assetIsVideo = ref.watch( currentAssetNotifier.select((asset) => asset != null && asset.isVideo), ); - bool showControls = - ref.watch(assetViewerProvider.select((s) => s.showingControls)); - final showBottomSheet = - ref.watch(assetViewerProvider.select((s) => s.showingBottomSheet)); + bool showControls = ref.watch(assetViewerProvider.select((s) => s.showingControls)); + final showBottomSheet = ref.watch(assetViewerProvider.select((s) => s.showingBottomSheet)); if (showBottomSheet) { showControls = false; } - final VideoPlaybackState state = - ref.watch(videoPlaybackValueProvider.select((value) => value.state)); + final VideoPlaybackState state = ref.watch(videoPlaybackValueProvider.select((value) => value.state)); final cast = ref.watch(castProvider); @@ -45,15 +42,12 @@ class VideoViewerControls extends HookConsumerWidget { final state = ref.read(videoPlaybackValueProvider).state; // Do not hide on paused - if (state != VideoPlaybackState.paused && - state != VideoPlaybackState.completed && - assetIsVideo) { + if (state != VideoPlaybackState.paused && state != VideoPlaybackState.completed && assetIsVideo) { ref.read(assetViewerProvider.notifier).setControls(false); } }, ); - final showBuffering = - state == VideoPlaybackState.buffering && !cast.isCasting; + final showBuffering = state == VideoPlaybackState.buffering && !cast.isCasting; /// Shows the controls and starts the timer to hide them void showControlsAndStartHideTimer() { @@ -62,8 +56,7 @@ class VideoViewerControls extends HookConsumerWidget { } // When we change position, show or hide timer - ref.listen(videoPlayerControlsProvider.select((v) => v.position), - (previous, next) { + ref.listen(videoPlayerControlsProvider.select((v) => v.position), (previous, next) { showControlsAndStartHideTimer(); }); @@ -111,14 +104,13 @@ class VideoViewerControls extends HookConsumerWidget { ) else GestureDetector( - onTap: () => - ref.read(assetViewerProvider.notifier).setControls(false), + onTap: () => ref.read(assetViewerProvider.notifier).setControls(false), child: CenterPlayButton( backgroundColor: Colors.black54, iconColor: Colors.white, isFinished: state == VideoPlaybackState.completed, - isPlaying: state == VideoPlaybackState.playing || - (cast.isCasting && cast.castState == CastState.playing), + isPlaying: + state == VideoPlaybackState.playing || (cast.isCasting && cast.castState == CastState.playing), show: assetIsVideo && showControls, onPressed: togglePlay, ), diff --git a/mobile/lib/presentation/widgets/backup/backup_toggle_button.widget.dart b/mobile/lib/presentation/widgets/backup/backup_toggle_button.widget.dart index c817b9b4b6..520111070f 100644 --- a/mobile/lib/presentation/widgets/backup/backup_toggle_button.widget.dart +++ b/mobile/lib/presentation/widgets/backup/backup_toggle_button.widget.dart @@ -21,8 +21,7 @@ class BackupToggleButton extends ConsumerStatefulWidget { ConsumerState createState() => BackupToggleButtonState(); } -class BackupToggleButtonState extends ConsumerState - with SingleTickerProviderStateMixin { +class BackupToggleButtonState extends ConsumerState with SingleTickerProviderStateMixin { late AnimationController _animationController; late Animation _gradientAnimation; bool _isEnabled = false; @@ -42,9 +41,7 @@ class BackupToggleButtonState extends ConsumerState ), ); - _isEnabled = ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableBackup); + _isEnabled = ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableBackup); } @override @@ -54,9 +51,7 @@ class BackupToggleButtonState extends ConsumerState } Future _onToggle(bool value) async { - await ref - .read(appSettingsServiceProvider) - .setSetting(AppSettingsEnum.enableBackup, value); + await ref.read(appSettingsServiceProvider).setSetting(AppSettingsEnum.enableBackup, value); setState(() { _isEnabled = value; @@ -141,8 +136,7 @@ class BackupToggleButtonState extends ConsumerState borderRadius: const BorderRadius.all(Radius.circular(20.5)), onTap: () => isCanceling ? null : _onToggle(!_isEnabled), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), child: Row( children: [ Container( @@ -180,8 +174,7 @@ class BackupToggleButtonState extends ConsumerState children: [ Text( "enable_backup".t(context: context), - style: - context.textTheme.titleMedium?.copyWith( + style: context.textTheme.titleMedium?.copyWith( fontWeight: FontWeight.w600, color: context.primaryColor, ), @@ -214,9 +207,7 @@ class BackupToggleButtonState extends ConsumerState height: 18, child: CircularProgressIndicator( strokeWidth: 2, - backgroundColor: context - .colorScheme.onSurface - .withValues(alpha: 0.2), + backgroundColor: context.colorScheme.onSurface.withValues(alpha: 0.2), ), ), ], @@ -226,8 +217,7 @@ class BackupToggleButtonState extends ConsumerState ), Switch.adaptive( value: _isEnabled, - onChanged: (value) => - isCanceling ? null : _onToggle(value), + onChanged: (value) => isCanceling ? null : _onToggle(value), ), ], ), diff --git a/mobile/lib/presentation/widgets/bottom_sheet/base_bottom_sheet.widget.dart b/mobile/lib/presentation/widgets/bottom_sheet/base_bottom_sheet.widget.dart index e172eec03b..b3e71567e0 100644 --- a/mobile/lib/presentation/widgets/bottom_sheet/base_bottom_sheet.widget.dart +++ b/mobile/lib/presentation/widgets/bottom_sheet/base_bottom_sheet.widget.dart @@ -31,12 +31,10 @@ class BaseBottomSheet extends ConsumerStatefulWidget { }); @override - ConsumerState createState() => - _BaseDraggableScrollableSheetState(); + ConsumerState createState() => _BaseDraggableScrollableSheetState(); } -class _BaseDraggableScrollableSheetState - extends ConsumerState { +class _BaseDraggableScrollableSheetState extends ConsumerState { late DraggableScrollableController _controller; @override @@ -71,8 +69,7 @@ class _BaseDraggableScrollableSheetState shouldCloseOnMinExtent: widget.shouldCloseOnMinExtent, builder: (BuildContext context, ScrollController scrollController) { return Card( - color: widget.backgroundColor ?? - context.colorScheme.surfaceContainerHigh, + color: widget.backgroundColor ?? context.colorScheme.surfaceContainerHigh, borderOnForeground: false, clipBehavior: Clip.antiAlias, elevation: 6.0, diff --git a/mobile/lib/presentation/widgets/images/image_provider.dart b/mobile/lib/presentation/widgets/images/image_provider.dart index 970bb581cf..e4effd0804 100644 --- a/mobile/lib/presentation/widgets/images/image_provider.dart +++ b/mobile/lib/presentation/widgets/images/image_provider.dart @@ -71,5 +71,4 @@ ImageProvider getThumbnailImageProvider({ } bool _shouldUseLocalAsset(BaseAsset asset) => - asset.hasLocal && - (!asset.hasRemote || !AppSetting.get(Setting.preferRemoteImage)); + asset.hasLocal && (!asset.hasRemote || !AppSetting.get(Setting.preferRemoteImage)); diff --git a/mobile/lib/presentation/widgets/images/local_image_provider.dart b/mobile/lib/presentation/widgets/images/local_image_provider.dart index 65311de48a..41bc19ba57 100644 --- a/mobile/lib/presentation/widgets/images/local_image_provider.dart +++ b/mobile/lib/presentation/widgets/images/local_image_provider.dart @@ -17,8 +17,7 @@ import 'package:immich_mobile/providers/image/exceptions/image_loading_exception import 'package:logging/logging.dart'; class LocalThumbProvider extends ImageProvider { - final AssetMediaRepository _assetMediaRepository = - const AssetMediaRepository(); + final AssetMediaRepository _assetMediaRepository = const AssetMediaRepository(); final CacheManager? cacheManager; final String id; @@ -63,20 +62,17 @@ class LocalThumbProvider extends ImageProvider { CacheManager cache, ImageDecoderCallback decode, ) async { - final cacheKey = - '${key.id}-${key.updatedAt}-${key.size.width}x${key.size.height}'; + final cacheKey = '${key.id}-${key.updatedAt}-${key.size.width}x${key.size.height}'; final fileFromCache = await cache.getFileFromCache(cacheKey); if (fileFromCache != null) { try { - final buffer = - await ImmutableBuffer.fromFilePath(fileFromCache.file.path); + final buffer = await ImmutableBuffer.fromFilePath(fileFromCache.file.path); return decode(buffer); } catch (_) {} } - final thumbnailBytes = - await _assetMediaRepository.getThumbnail(key.id, size: key.size); + final thumbnailBytes = await _assetMediaRepository.getThumbnail(key.id, size: key.size); if (thumbnailBytes == null) { PaintingBinding.instance.imageCache.evict(key); throw StateError( @@ -103,8 +99,7 @@ class LocalThumbProvider extends ImageProvider { } class LocalFullImageProvider extends ImageProvider { - final AssetMediaRepository _assetMediaRepository = - const AssetMediaRepository(); + final AssetMediaRepository _assetMediaRepository = const AssetMediaRepository(); final StorageRepository _storageRepository = const StorageRepository(); final String id; @@ -160,8 +155,7 @@ class LocalFullImageProvider extends ImageProvider { throw StateError('Unsupported asset type ${key.type}'); } } catch (error, stack) { - Logger('ImmichLocalImageProvider') - .severe('Error loading local image ${key.name}', error, stack); + Logger('ImmichLocalImageProvider').severe('Error loading local image ${key.name}', error, stack); throw const ImageLoadingException( 'Could not load image from local storage', ); @@ -172,8 +166,7 @@ class LocalFullImageProvider extends ImageProvider { LocalFullImageProvider key, ImageDecoderCallback decode, ) async { - final thumbBytes = - await _assetMediaRepository.getThumbnail(key.id, size: key.size); + final thumbBytes = await _assetMediaRepository.getThumbnail(key.id, size: key.size); if (thumbBytes == null) { return null; } @@ -191,8 +184,7 @@ class LocalFullImageProvider extends ImageProvider { } final fileSize = await file.length(); - final devicePixelRatio = - PlatformDispatcher.instance.views.first.devicePixelRatio; + final devicePixelRatio = PlatformDispatcher.instance.views.first.devicePixelRatio; final isLargeFile = fileSize > 20 * 1024 * 1024; // 20MB final isHEIC = file.path.toLowerCase().contains(RegExp(r'\.(heic|heif)$')); final isProgressive = isLargeFile || (isHEIC && !Platform.isIOS); @@ -204,8 +196,7 @@ class LocalFullImageProvider extends ImageProvider { (key.size.width * progressiveMultiplier).clamp(256, 1024), (key.size.height * progressiveMultiplier).clamp(256, 1024), ); - final mediumThumb = - await _assetMediaRepository.getThumbnail(key.id, size: size); + final mediumThumb = await _assetMediaRepository.getThumbnail(key.id, size: size); if (mediumThumb != null) { final mediumBuffer = await ImmutableBuffer.fromUint8List(mediumThumb); yield await decode(mediumBuffer); @@ -221,8 +212,7 @@ class LocalFullImageProvider extends ImageProvider { (key.size.width * progressiveMultiplier).clamp(512, 2048), (key.size.height * progressiveMultiplier).clamp(512, 2048), ); - final highThumb = - await _assetMediaRepository.getThumbnail(key.id, size: size); + final highThumb = await _assetMediaRepository.getThumbnail(key.id, size: size); if (highThumb != null) { final highBuffer = await ImmutableBuffer.fromUint8List(highThumb); yield await decode(highBuffer); @@ -238,15 +228,11 @@ class LocalFullImageProvider extends ImageProvider { bool operator ==(Object other) { if (identical(this, other)) return true; if (other is LocalFullImageProvider) { - return id == other.id && - size == other.size && - type == other.type && - name == other.name; + return id == other.id && size == other.size && type == other.type && name == other.name; } return false; } @override - int get hashCode => - id.hashCode ^ size.hashCode ^ type.hashCode ^ name.hashCode; + int get hashCode => id.hashCode ^ size.hashCode ^ type.hashCode ^ name.hashCode; } diff --git a/mobile/lib/presentation/widgets/images/thumbnail.widget.dart b/mobile/lib/presentation/widgets/images/thumbnail.widget.dart index f54c32dac1..80f6af617c 100644 --- a/mobile/lib/presentation/widgets/images/thumbnail.widget.dart +++ b/mobile/lib/presentation/widgets/images/thumbnail.widget.dart @@ -26,10 +26,8 @@ class Thumbnail extends StatelessWidget { @override Widget build(BuildContext context) { - final thumbHash = - asset is RemoteAsset ? (asset as RemoteAsset).thumbHash : null; - final provider = - getThumbnailImageProvider(asset: asset, remoteId: remoteId, size: size); + final thumbHash = asset is RemoteAsset ? (asset as RemoteAsset).thumbHash : null; + final provider = getThumbnailImageProvider(asset: asset, remoteId: remoteId, size: size); return OctoImage.fromSet( image: provider, @@ -72,8 +70,7 @@ OctoErrorBuilder _blurHashErrorBuilder( BoxFit? fit, }) => (context, e, s) { - Logger("ImThumbnail") - .warning("Error loading thumbnail for ${asset?.name}", e, s); + Logger("ImThumbnail").warning("Error loading thumbnail for ${asset?.name}", e, s); provider?.evict(); return Stack( alignment: Alignment.center, diff --git a/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart b/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart index b059f5feaa..24a88c5d74 100644 --- a/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart +++ b/mobile/lib/presentation/widgets/images/thumbnail_tile.widget.dart @@ -28,9 +28,8 @@ class ThumbnailTile extends ConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final heroOffset = TabsRouterScope.of(context)?.controller.activeIndex ?? 0; - final assetContainerColor = context.isDarkTheme - ? context.primaryColor.darken(amount: 0.4) - : context.primaryColor.lighten(amount: 0.75); + final assetContainerColor = + context.isDarkTheme ? context.primaryColor.darken(amount: 0.4) : context.primaryColor.lighten(amount: 0.75); final isSelected = ref.watch( multiSelectProvider.select( @@ -53,8 +52,7 @@ class ThumbnailTile extends ConsumerWidget { ) : const BoxDecoration(); - final hasStack = - asset is RemoteAsset && (asset as RemoteAsset).stackId != null; + final hasStack = asset is RemoteAsset && (asset as RemoteAsset).stackId != null; return Stack( children: [ @@ -63,9 +61,8 @@ class ThumbnailTile extends ConsumerWidget { curve: Curves.decelerate, decoration: borderStyle, child: ClipRRect( - borderRadius: isSelected || lockSelection - ? const BorderRadius.all(Radius.circular(15.0)) - : BorderRadius.zero, + borderRadius: + isSelected || lockSelection ? const BorderRadius.all(Radius.circular(15.0)) : BorderRadius.zero, child: Stack( children: [ Positioned.fill( @@ -141,9 +138,7 @@ class ThumbnailTile extends ConsumerWidget { child: _SelectionIndicator( isSelected: isSelected, isLocked: lockSelection, - color: lockSelection - ? context.colorScheme.surfaceContainerHighest - : assetContainerColor, + color: lockSelection ? context.colorScheme.surfaceContainerHighest : assetContainerColor, ), ), ), diff --git a/mobile/lib/presentation/widgets/memory/memory_card.widget.dart b/mobile/lib/presentation/widgets/memory/memory_card.widget.dart index 268bbc30c0..e69c848f45 100644 --- a/mobile/lib/presentation/widgets/memory/memory_card.widget.dart +++ b/mobile/lib/presentation/widgets/memory/memory_card.widget.dart @@ -46,11 +46,9 @@ class DriftMemoryCard extends StatelessWidget { BoxFit fit = BoxFit.contain; if (asset.width != null && asset.height != null) { final aspectRatio = asset.width! / asset.height!; - final phoneAspectRatio = - constraints.maxWidth / constraints.maxHeight; + final phoneAspectRatio = constraints.maxWidth / constraints.maxHeight; // Look for a 25% difference in either direction - if (phoneAspectRatio * .75 < aspectRatio && - phoneAspectRatio * 1.25 > aspectRatio) { + if (phoneAspectRatio * .75 < aspectRatio && phoneAspectRatio * 1.25 > aspectRatio) { // Cover to look nice if we have nearly the same aspect ratio fit = BoxFit.cover; } diff --git a/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart b/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart index 403d8de061..4863b60aad 100644 --- a/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart +++ b/mobile/lib/presentation/widgets/memory/memory_lane.widget.dart @@ -47,8 +47,7 @@ class DriftMemoryLane extends ConsumerWidget { ), ); }, - children: - memories.map((memory) => DriftMemoryCard(memory: memory)).toList(), + children: memories.map((memory) => DriftMemoryCard(memory: memory)).toList(), ), ); } diff --git a/mobile/lib/presentation/widgets/partner_user_avatar.widget.dart b/mobile/lib/presentation/widgets/partner_user_avatar.widget.dart index 9be55cae67..8cdf1ed286 100644 --- a/mobile/lib/presentation/widgets/partner_user_avatar.widget.dart +++ b/mobile/lib/presentation/widgets/partner_user_avatar.widget.dart @@ -13,8 +13,7 @@ class PartnerUserAvatar extends StatelessWidget { @override Widget build(BuildContext context) { - final url = - "${Store.get(StoreKey.serverEndpoint)}/users/${partner.id}/profile-image"; + final url = "${Store.get(StoreKey.serverEndpoint)}/users/${partner.id}/profile-image"; final nameFirstLetter = partner.name.isNotEmpty ? partner.name[0] : ""; return CircleAvatar( radius: 16, diff --git a/mobile/lib/presentation/widgets/remote_album/drift_album_option.widget.dart b/mobile/lib/presentation/widgets/remote_album/drift_album_option.widget.dart index d32608a8b4..81989b263a 100644 --- a/mobile/lib/presentation/widgets/remote_album/drift_album_option.widget.dart +++ b/mobile/lib/presentation/widgets/remote_album/drift_album_option.widget.dart @@ -97,14 +97,12 @@ class DriftRemoteAlbumOption extends ConsumerWidget { ListTile( leading: Icon( Icons.delete, - color: - context.isDarkTheme ? Colors.red[400] : Colors.red[800], + color: context.isDarkTheme ? Colors.red[400] : Colors.red[800], ), title: Text( 'delete_album'.t(context: context), style: textStyle.copyWith( - color: - context.isDarkTheme ? Colors.red[400] : Colors.red[800], + color: context.isDarkTheme ? Colors.red[400] : Colors.red[800], ), ), onTap: onDeleteAlbum, diff --git a/mobile/lib/presentation/widgets/timeline/fixed/row.dart b/mobile/lib/presentation/widgets/timeline/fixed/row.dart index 1062c00740..24f3c97125 100644 --- a/mobile/lib/presentation/widgets/timeline/fixed/row.dart +++ b/mobile/lib/presentation/widgets/timeline/fixed/row.dart @@ -90,8 +90,7 @@ class RenderFixedRow extends RenderBox } } - double get intrinsicWidth => - dimension * childCount + spacing * (childCount - 1); + double get intrinsicWidth => dimension * childCount + spacing * (childCount - 1); @override double computeMinIntrinsicWidth(double height) => intrinsicWidth; diff --git a/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart b/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart index 7fff6d7d2d..ab1670f169 100644 --- a/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart +++ b/mobile/lib/presentation/widgets/timeline/fixed/segment.model.dart @@ -39,9 +39,7 @@ class FixedSegment extends Segment { @override double indexToLayoutOffset(int index) { final relativeIndex = index - gridIndex; - return relativeIndex < 0 - ? startOffset - : gridOffset + (mainAxisExtend * relativeIndex); + return relativeIndex < 0 ? startOffset : gridOffset + (mainAxisExtend * relativeIndex); } @override @@ -98,8 +96,7 @@ class _FixedSegmentRow extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final isScrubbing = - ref.watch(timelineStateProvider.select((s) => s.isScrubbing)); + final isScrubbing = ref.watch(timelineStateProvider.select((s) => s.isScrubbing)); final timelineService = ref.read(timelineServiceProvider); if (isScrubbing) { @@ -215,11 +212,8 @@ class _AssetTileWidget extends ConsumerWidget { return RepaintBoundary( child: GestureDetector( - onTap: () => lockSelection - ? null - : _handleOnTap(context, ref, assetIndex, asset), - onLongPress: () => - lockSelection ? null : _handleOnLongPress(ref, asset), + onTap: () => lockSelection ? null : _handleOnTap(context, ref, assetIndex, asset), + onLongPress: () => lockSelection ? null : _handleOnLongPress(ref, asset), child: ThumbnailTile( asset, lockSelection: lockSelection, diff --git a/mobile/lib/presentation/widgets/timeline/fixed/segment_builder.dart b/mobile/lib/presentation/widgets/timeline/fixed/segment_builder.dart index 6e3af3fd3d..5e260a4e68 100644 --- a/mobile/lib/presentation/widgets/timeline/fixed/segment_builder.dart +++ b/mobile/lib/presentation/widgets/timeline/fixed/segment_builder.dart @@ -37,17 +37,13 @@ class FixedSegmentBuilder extends SegmentBuilder { GroupAssetsBy.month => HeaderType.month, GroupAssetsBy.day || GroupAssetsBy.auto => - bucket is TimeBucket && bucket.date.month != previousDate?.month - ? HeaderType.monthAndDay - : HeaderType.day, + bucket is TimeBucket && bucket.date.month != previousDate?.month ? HeaderType.monthAndDay : HeaderType.day, GroupAssetsBy.none => HeaderType.none, }; final headerExtent = SegmentBuilder.headerExtent(timelineHeader); final segmentStartOffset = startOffset; - startOffset += headerExtent + - (tileHeight * numberOfRows) + - spacing * (numberOfRows - 1); + startOffset += headerExtent + (tileHeight * numberOfRows) + spacing * (numberOfRows - 1); final segmentEndOffset = startOffset; segments.add( diff --git a/mobile/lib/presentation/widgets/timeline/header.widget.dart b/mobile/lib/presentation/widgets/timeline/header.widget.dart index c6c10c26c9..da48acd7db 100644 --- a/mobile/lib/presentation/widgets/timeline/header.widget.dart +++ b/mobile/lib/presentation/widgets/timeline/header.widget.dart @@ -43,10 +43,8 @@ class TimelineHeader extends StatelessWidget { final date = (bucket as TimeBucket).date; - final isMonthHeader = - header == HeaderType.month || header == HeaderType.monthAndDay; - final isDayHeader = - header == HeaderType.day || header == HeaderType.monthAndDay; + final isMonthHeader = header == HeaderType.month || header == HeaderType.monthAndDay; + final isDayHeader = header == HeaderType.day || header == HeaderType.monthAndDay; return Padding( padding: EdgeInsets.only( @@ -111,9 +109,7 @@ class _BulkSelectIconButton extends ConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { List bucketAssets; try { - bucketAssets = ref - .watch(timelineServiceProvider) - .getAssets(assetOffset, bucket.assetCount); + bucketAssets = ref.watch(timelineServiceProvider).getAssets(assetOffset, bucket.assetCount); } catch (e) { bucketAssets = []; } diff --git a/mobile/lib/presentation/widgets/timeline/scrubber.widget.dart b/mobile/lib/presentation/widgets/timeline/scrubber.widget.dart index 248fc6b579..6d23f169b7 100644 --- a/mobile/lib/presentation/widgets/timeline/scrubber.widget.dart +++ b/mobile/lib/presentation/widgets/timeline/scrubber.widget.dart @@ -58,15 +58,13 @@ List<_Segment> _buildSegments({ DateTime? lastDate; double lastOffset = -offsetThreshold; for (final layoutSegment in layoutSegments) { - final scrollPercentage = - layoutSegment.startOffset / layoutSegments.last.endOffset; + final scrollPercentage = layoutSegment.startOffset / layoutSegments.last.endOffset; final startOffset = scrollPercentage * timelineHeight; final date = (layoutSegment.bucket as TimeBucket).date; final label = formatter.format(date); - final showSegment = lastOffset + offsetThreshold <= startOffset && - (lastDate == null || date.year != lastDate.year); + final showSegment = lastOffset + offsetThreshold <= startOffset && (lastDate == null || date.year != lastDate.year); segments.add( _Segment( @@ -85,8 +83,7 @@ List<_Segment> _buildSegments({ return segments; } -class ScrubberState extends ConsumerState - with TickerProviderStateMixin { +class ScrubberState extends ConsumerState with TickerProviderStateMixin { double _thumbTopOffset = 0.0; bool _isDragging = false; List<_Segment> _segments = []; @@ -98,17 +95,14 @@ class ScrubberState extends ConsumerState late AnimationController _labelAnimationController; late Animation _labelAnimation; - double get _scrubberHeight => - widget.timelineHeight - widget.topPadding - widget.bottomPadding; + double get _scrubberHeight => widget.timelineHeight - widget.topPadding - widget.bottomPadding; late ScrollController _scrollController; double get _currentOffset { if (_scrollController.hasClients != true) return 0.0; - return _scrollController.offset * - _scrubberHeight / - _scrollController.position.maxScrollExtent; + return _scrollController.offset * _scrubberHeight / _scrollController.position.maxScrollExtent; } @override @@ -148,8 +142,7 @@ class ScrubberState extends ConsumerState void didUpdateWidget(covariant Scrubber oldWidget) { super.didUpdateWidget(oldWidget); - if (oldWidget.layoutSegments.lastOrNull?.endOffset != - widget.layoutSegments.lastOrNull?.endOffset) { + if (oldWidget.layoutSegments.lastOrNull?.endOffset != widget.layoutSegments.lastOrNull?.endOffset) { _segments = _buildSegments( layoutSegments: widget.layoutSegments, timelineHeight: _scrubberHeight, @@ -179,8 +172,7 @@ class ScrubberState extends ConsumerState return false; } - if (notification is ScrollStartNotification || - notification is ScrollUpdateNotification) { + if (notification is ScrollStartNotification || notification is ScrollUpdateNotification) { ref.read(timelineStateProvider.notifier).setScrolling(true); } else if (notification is ScrollEndNotification) { ref.read(timelineStateProvider.notifier).setScrolling(false); @@ -287,8 +279,7 @@ class ScrubberState extends ConsumerState return widget.layoutSegments.indexWhere( (layoutSegment) { final bucket = layoutSegment.bucket as TimeBucket; - return bucket.date.year == segment.date.year && - bucket.date.month == segment.date.month; + return bucket.date.year == segment.date.year && bucket.date.month == segment.date.month; }, ); } @@ -299,10 +290,7 @@ class ScrubberState extends ConsumerState final viewportHeight = _scrollController.position.viewportDimension; final targetScrollOffset = layoutSegment.startOffset; - final centeredOffset = targetScrollOffset - - (viewportHeight / 4) + - 100 + - (widget.monthSegmentSnappingOffset ?? 0.0); + final centeredOffset = targetScrollOffset - (viewportHeight / 4) + 100 + (widget.monthSegmentSnappingOffset ?? 0.0); _scrollController.jumpTo(centeredOffset.clamp(0.0, maxScrollExtent)); } @@ -354,8 +342,7 @@ class ScrubberState extends ConsumerState isDragging: _isDragging, ), ), - if (_scrollController.hasClients && - _scrollController.position.maxScrollExtent > 0) + if (_scrollController.hasClients && _scrollController.position.maxScrollExtent > 0) PositionedDirectional( top: _thumbTopOffset + widget.topPadding, end: 0, @@ -492,9 +479,8 @@ class _Scrubber extends StatelessWidget { @override Widget build(BuildContext context) { - final backgroundColor = context.isDarkTheme - ? context.colorScheme.primary.darken(amount: .5) - : context.colorScheme.primary; + final backgroundColor = + context.isDarkTheme ? context.colorScheme.primary.darken(amount: .5) : context.colorScheme.primary; return _SlideFadeTransition( animation: thumbAnimation, @@ -590,8 +576,7 @@ class _SlideFadeTransition extends StatelessWidget { Widget build(BuildContext context) { return AnimatedBuilder( animation: _animation, - builder: (context, child) => - _animation.value == 0.0 ? const SizedBox() : child!, + builder: (context, child) => _animation.value == 0.0 ? const SizedBox() : child!, child: SlideTransition( position: Tween( begin: const Offset(0.3, 0.0), diff --git a/mobile/lib/presentation/widgets/timeline/segment.model.dart b/mobile/lib/presentation/widgets/timeline/segment.model.dart index 09d892f69a..6a20db4c98 100644 --- a/mobile/lib/presentation/widgets/timeline/segment.model.dart +++ b/mobile/lib/presentation/widgets/timeline/segment.model.dart @@ -42,8 +42,7 @@ abstract class Segment { bool containsIndex(int index) => firstIndex <= index && index <= lastIndex; - bool isWithinOffset(double offset) => - startOffset <= offset && offset <= endOffset; + bool isWithinOffset(double offset) => startOffset <= offset && offset <= endOffset; int getMinChildIndexForScrollOffset(double scrollOffset); int getMaxChildIndexForScrollOffset(double scrollOffset); @@ -88,13 +87,9 @@ abstract class Segment { } extension SegmentListExtension on List { - bool equals(List other) => - length == other.length && - lastOrNull?.endOffset == other.lastOrNull?.endOffset; + bool equals(List other) => length == other.length && lastOrNull?.endOffset == other.lastOrNull?.endOffset; - Segment? findByIndex(int index) => - firstWhereOrNull((s) => s.containsIndex(index)); + Segment? findByIndex(int index) => firstWhereOrNull((s) => s.containsIndex(index)); - Segment? findByOffset(double offset) => - firstWhereOrNull((s) => s.isWithinOffset(offset)) ?? lastOrNull; + Segment? findByOffset(double offset) => firstWhereOrNull((s) => s.isWithinOffset(offset)) ?? lastOrNull; } diff --git a/mobile/lib/presentation/widgets/timeline/timeline.state.dart b/mobile/lib/presentation/widgets/timeline/timeline.state.dart index 6faa4da9f7..cdf79239d4 100644 --- a/mobile/lib/presentation/widgets/timeline/timeline.state.dart +++ b/mobile/lib/presentation/widgets/timeline/timeline.state.dart @@ -105,9 +105,7 @@ final timelineSegmentProvider = StreamProvider.autoDispose>( final availableTileWidth = args.maxWidth - (spacing * (columnCount - 1)); final tileExtent = math.max(0, availableTileWidth) / columnCount; - final groupBy = args.groupBy ?? - GroupAssetsBy - .values[ref.watch(settingsProvider).get(Setting.groupAssetsBy)]; + final groupBy = args.groupBy ?? GroupAssetsBy.values[ref.watch(settingsProvider).get(Setting.groupAssetsBy)]; final timelineService = ref.watch(timelineServiceProvider); yield* timelineService.watchBuckets().map((buckets) { @@ -123,7 +121,6 @@ final timelineSegmentProvider = StreamProvider.autoDispose>( dependencies: [timelineServiceProvider, timelineArgsProvider], ); -final timelineStateProvider = - NotifierProvider( +final timelineStateProvider = NotifierProvider( TimelineStateNotifier.new, ); diff --git a/mobile/lib/presentation/widgets/timeline/timeline.widget.dart b/mobile/lib/presentation/widgets/timeline/timeline.widget.dart index 873908832b..69998fea54 100644 --- a/mobile/lib/presentation/widgets/timeline/timeline.widget.dart +++ b/mobile/lib/presentation/widgets/timeline/timeline.widget.dart @@ -101,8 +101,7 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> { @override void initState() { super.initState(); - _reloadSubscription = - EventStream.shared.listen((_) => setState(() {})); + _reloadSubscription = EventStream.shared.listen((_) => setState(() {})); } @override @@ -115,8 +114,7 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> { @override Widget build(BuildContext _) { final asyncSegments = ref.watch(timelineSegmentProvider); - final maxHeight = - ref.watch(timelineArgsProvider.select((args) => args.maxHeight)); + final maxHeight = ref.watch(timelineArgsProvider.select((args) => args.maxHeight)); final isSelectionMode = ref.watch( multiSelectProvider.select((s) => s.forceEnable), ); @@ -124,17 +122,11 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> { return asyncSegments.widgetWhen( onData: (segments) { final childCount = (segments.lastOrNull?.lastIndex ?? -1) + 1; - final double appBarExpandedHeight = - widget.appBar != null && widget.appBar is MesmerizingSliverAppBar - ? 200 - : 0; - final topPadding = context.padding.top + - (widget.appBar == null ? 0 : kToolbarHeight) + - 10; + final double appBarExpandedHeight = widget.appBar != null && widget.appBar is MesmerizingSliverAppBar ? 200 : 0; + final topPadding = context.padding.top + (widget.appBar == null ? 0 : kToolbarHeight) + 10; const scrubberBottomPadding = 100.0; - final bottomPadding = context.padding.bottom + - (widget.appBar == null ? 0 : scrubberBottomPadding); + final bottomPadding = context.padding.bottom + (widget.appBar == null ? 0 : scrubberBottomPadding); return PrimaryScrollController( controller: _scrollController, @@ -145,16 +137,12 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> { timelineHeight: maxHeight, topPadding: topPadding, bottomPadding: bottomPadding, - monthSegmentSnappingOffset: - widget.topSliverWidgetHeight ?? 0 + appBarExpandedHeight, + monthSegmentSnappingOffset: widget.topSliverWidgetHeight ?? 0 + appBarExpandedHeight, child: CustomScrollView( primary: true, cacheExtent: maxHeight * 2, slivers: [ - if (isSelectionMode) - const SelectionSliverAppBar() - else if (widget.appBar != null) - widget.appBar!, + if (isSelectionMode) const SelectionSliverAppBar() else if (widget.appBar != null) widget.appBar!, if (widget.topSliverWidget != null) widget.topSliverWidget!, _SliverSegmentedList( segments: segments, @@ -162,8 +150,7 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> { (ctx, index) { if (index >= childCount) return null; final segment = segments.findByIndex(index); - return segment?.builder(ctx, index) ?? - const SizedBox.shrink(); + return segment?.builder(ctx, index) ?? const SizedBox.shrink(); }, childCount: childCount, addAutomaticKeepAlives: false, @@ -233,8 +220,7 @@ class _SliverSegmentedList extends SliverMultiBoxAdaptorWidget { }) : _segments = segments; @override - _RenderSliverTimelineBoxAdaptor createRenderObject(BuildContext context) => - _RenderSliverTimelineBoxAdaptor( + _RenderSliverTimelineBoxAdaptor createRenderObject(BuildContext context) => _RenderSliverTimelineBoxAdaptor( childManager: context as SliverMultiBoxAdaptorElement, segments: _segments, ); @@ -266,17 +252,13 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { }) : _segments = segments; int getMinChildIndexForScrollOffset(double offset) => - _segments.findByOffset(offset)?.getMinChildIndexForScrollOffset(offset) ?? - 0; + _segments.findByOffset(offset)?.getMinChildIndexForScrollOffset(offset) ?? 0; int getMaxChildIndexForScrollOffset(double offset) => - _segments.findByOffset(offset)?.getMaxChildIndexForScrollOffset(offset) ?? - 0; + _segments.findByOffset(offset)?.getMaxChildIndexForScrollOffset(offset) ?? 0; double indexToLayoutOffset(int index) => - (_segments.findByIndex(index) ?? _segments.lastOrNull) - ?.indexToLayoutOffset(index) ?? - 0; + (_segments.findByIndex(index) ?? _segments.lastOrNull)?.indexToLayoutOffset(index) ?? 0; double estimateMaxScrollOffset() => _segments.lastOrNull?.endOffset ?? 0; @@ -288,8 +270,7 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { // Assume initially that we have enough children to fill the viewport/cache area. childManager.setDidUnderflow(false); - final double scrollOffset = - constraints.scrollOffset + constraints.cacheOrigin; + final double scrollOffset = constraints.scrollOffset + constraints.cacheOrigin; assert(scrollOffset >= 0.0); final double remainingExtent = constraints.remainingCacheExtent; @@ -298,31 +279,26 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { final double targetScrollOffset = scrollOffset + remainingExtent; // Find the index of the first child that should be visible or in the leading cache area. - final int firstRequiredChildIndex = - getMinChildIndexForScrollOffset(scrollOffset); + final int firstRequiredChildIndex = getMinChildIndexForScrollOffset(scrollOffset); // Find the index of the last child that should be visible or in the trailing cache area. - final int? lastRequiredChildIndex = targetScrollOffset.isFinite - ? getMaxChildIndexForScrollOffset(targetScrollOffset) - : null; + final int? lastRequiredChildIndex = + targetScrollOffset.isFinite ? getMaxChildIndexForScrollOffset(targetScrollOffset) : null; // Remove children that are no longer visible or within the cache area. if (firstChild == null) { collectGarbage(0, 0); } else { - final int leadingChildrenToRemove = - calculateLeadingGarbage(firstIndex: firstRequiredChildIndex); - final int trailingChildrenToRemove = lastRequiredChildIndex == null - ? 0 - : calculateTrailingGarbage(lastIndex: lastRequiredChildIndex); + final int leadingChildrenToRemove = calculateLeadingGarbage(firstIndex: firstRequiredChildIndex); + final int trailingChildrenToRemove = + lastRequiredChildIndex == null ? 0 : calculateTrailingGarbage(lastIndex: lastRequiredChildIndex); collectGarbage(leadingChildrenToRemove, trailingChildrenToRemove); } // If there are currently no children laid out (e.g., initial load), // try to add the first child needed for the current scroll offset. if (firstChild == null) { - final double firstChildLayoutOffset = - indexToLayoutOffset(firstRequiredChildIndex); + final double firstChildLayoutOffset = indexToLayoutOffset(firstRequiredChildIndex); final bool childAdded = addInitialChild( index: firstRequiredChildIndex, layoutOffset: firstChildLayoutOffset, @@ -330,8 +306,7 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { if (!childAdded) { // There are either no children, or we are past the end of all our children. - final double max = - firstRequiredChildIndex <= 0 ? 0.0 : computeMaxScrollOffset(); + final double max = firstRequiredChildIndex <= 0 ? 0.0 : computeMaxScrollOffset(); geometry = SliverGeometry(scrollExtent: max, maxPaintExtent: max); childManager.didFinishLayout(); return; @@ -342,26 +317,20 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { RenderBox? highestLaidOutChild; final childConstraints = constraints.asBoxConstraints(); - for (int currentIndex = indexOf(firstChild!) - 1; - currentIndex >= firstRequiredChildIndex; - --currentIndex) { - final RenderBox? newLeadingChild = - insertAndLayoutLeadingChild(childConstraints); + for (int currentIndex = indexOf(firstChild!) - 1; currentIndex >= firstRequiredChildIndex; --currentIndex) { + final RenderBox? newLeadingChild = insertAndLayoutLeadingChild(childConstraints); if (newLeadingChild == null) { // If a child is missing where we expect one, it indicates // an inconsistency in offset that needs correction. - final Segment? segment = - _segments.findByIndex(currentIndex) ?? _segments.firstOrNull; + final Segment? segment = _segments.findByIndex(currentIndex) ?? _segments.firstOrNull; geometry = SliverGeometry( // Request a scroll correction based on where the missing child should have been. - scrollOffsetCorrection: - segment?.indexToLayoutOffset(currentIndex) ?? 0.0, + scrollOffsetCorrection: segment?.indexToLayoutOffset(currentIndex) ?? 0.0, ); // Parent will re-layout everything. return; } - final childParentData = - newLeadingChild.parentData! as SliverMultiBoxAdaptorParentData; + final childParentData = newLeadingChild.parentData! as SliverMultiBoxAdaptorParentData; childParentData.layoutOffset = indexToLayoutOffset(currentIndex); assert(childParentData.index == currentIndex); highestLaidOutChild ??= newLeadingChild; @@ -375,10 +344,8 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { // The [firstChild] that existed at the start of performLayout is still the first one we need. if (highestLaidOutChild == null) { firstChild!.layout(childConstraints); - final childParentData = - firstChild!.parentData! as SliverMultiBoxAdaptorParentData; - childParentData.layoutOffset = - indexToLayoutOffset(firstRequiredChildIndex); + final childParentData = firstChild!.parentData! as SliverMultiBoxAdaptorParentData; + childParentData.layoutOffset = indexToLayoutOffset(firstRequiredChildIndex); highestLaidOutChild = firstChild; } @@ -389,8 +356,7 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { double calculatedMaxScrollOffset = double.infinity; for (int currentIndex = indexOf(mostRecentlyLaidOutChild!) + 1; - lastRequiredChildIndex == null || - currentIndex <= lastRequiredChildIndex; + lastRequiredChildIndex == null || currentIndex <= lastRequiredChildIndex; ++currentIndex) { RenderBox? child = childAfter(mostRecentlyLaidOutChild!); @@ -400,11 +366,8 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { after: mostRecentlyLaidOutChild, ); if (child == null) { - final Segment? segment = - _segments.findByIndex(currentIndex) ?? _segments.lastOrNull; - calculatedMaxScrollOffset = - segment?.indexToLayoutOffset(currentIndex) ?? - computeMaxScrollOffset(); + final Segment? segment = _segments.findByIndex(currentIndex) ?? _segments.lastOrNull; + calculatedMaxScrollOffset = segment?.indexToLayoutOffset(currentIndex) ?? computeMaxScrollOffset(); break; } } else { @@ -412,28 +375,23 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { } mostRecentlyLaidOutChild = child; - final childParentData = mostRecentlyLaidOutChild.parentData! - as SliverMultiBoxAdaptorParentData; + final childParentData = mostRecentlyLaidOutChild.parentData! as SliverMultiBoxAdaptorParentData; assert(childParentData.index == currentIndex); childParentData.layoutOffset = indexToLayoutOffset(currentIndex); } final int lastLaidOutChildIndex = indexOf(lastChild!); - final double leadingScrollOffset = - indexToLayoutOffset(firstRequiredChildIndex); - final double trailingScrollOffset = - indexToLayoutOffset(lastLaidOutChildIndex + 1); + final double leadingScrollOffset = indexToLayoutOffset(firstRequiredChildIndex); + final double trailingScrollOffset = indexToLayoutOffset(lastLaidOutChildIndex + 1); assert( firstRequiredChildIndex == 0 || - (childScrollOffset(firstChild!) ?? -1.0) - scrollOffset <= - precisionErrorTolerance, + (childScrollOffset(firstChild!) ?? -1.0) - scrollOffset <= precisionErrorTolerance, ); assert(debugAssertChildListIsNonEmptyAndContiguous()); assert(indexOf(firstChild!) == firstRequiredChildIndex); assert( - lastRequiredChildIndex == null || - lastLaidOutChildIndex <= lastRequiredChildIndex, + lastRequiredChildIndex == null || lastLaidOutChildIndex <= lastRequiredChildIndex, ); calculatedMaxScrollOffset = math.min( @@ -453,11 +411,9 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { to: trailingScrollOffset, ); - final double targetEndScrollOffsetForPaint = - constraints.scrollOffset + constraints.remainingPaintExtent; - final int? targetLastIndexForPaint = targetEndScrollOffsetForPaint.isFinite - ? getMaxChildIndexForScrollOffset(targetEndScrollOffsetForPaint) - : null; + final double targetEndScrollOffsetForPaint = constraints.scrollOffset + constraints.remainingPaintExtent; + final int? targetLastIndexForPaint = + targetEndScrollOffsetForPaint.isFinite ? getMaxChildIndexForScrollOffset(targetEndScrollOffsetForPaint) : null; final maxPaintExtent = math.max(paintExtent, calculatedMaxScrollOffset); @@ -468,8 +424,7 @@ class _RenderSliverTimelineBoxAdaptor extends RenderSliverMultiBoxAdaptor { // Indicates if there's content scrolled off-screen. // This is true if the last child needed for painting is actually laid out, // or if the first child is partially visible. - hasVisualOverflow: (targetLastIndexForPaint != null && - lastLaidOutChildIndex >= targetLastIndexForPaint) || + hasVisualOverflow: (targetLastIndexForPaint != null && lastLaidOutChildIndex >= targetLastIndexForPaint) || constraints.scrollOffset > 0.0, cacheExtent: cacheExtent, ); @@ -489,8 +444,7 @@ class _MultiSelectStatusButton extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final selectCount = - ref.watch(multiSelectProvider.select((s) => s.selectedAssets.length)); + final selectCount = ref.watch(multiSelectProvider.select((s) => s.selectedAssets.length)); return ElevatedButton.icon( onPressed: () => ref.read(multiSelectProvider.notifier).reset(), icon: Icon( diff --git a/mobile/lib/providers/activity.provider.dart b/mobile/lib/providers/activity.provider.dart index 0dcc99320b..38b8caaed9 100644 --- a/mobile/lib/providers/activity.provider.dart +++ b/mobile/lib/providers/activity.provider.dart @@ -11,9 +11,7 @@ part 'activity.provider.g.dart'; class AlbumActivity extends _$AlbumActivity { @override Future> build(String albumId, [String? assetId]) async { - return ref - .watch(activityServiceProvider) - .getAllActivities(albumId, assetId: assetId); + return ref.watch(activityServiceProvider).getAllActivities(albumId, assetId: assetId); } Future removeActivity(String id) async { @@ -24,17 +22,13 @@ class AlbumActivity extends _$AlbumActivity { state = AsyncData(activities); // Decrement activity count only for comments if (removedActivity.type == ActivityType.comment) { - ref - .watch(activityStatisticsProvider(albumId, assetId).notifier) - .removeActivity(); + ref.watch(activityStatisticsProvider(albumId, assetId).notifier).removeActivity(); } } } Future addLike() async { - final activity = await ref - .watch(activityServiceProvider) - .addActivity(albumId, ActivityType.like, assetId: assetId); + final activity = await ref.watch(activityServiceProvider).addActivity(albumId, ActivityType.like, assetId: assetId); if (activity.hasValue) { final activities = state.asData?.value ?? []; state = AsyncData([...activities, activity.requireValue]); @@ -52,9 +46,7 @@ class AlbumActivity extends _$AlbumActivity { if (activity.hasValue) { final activities = state.valueOrNull ?? []; state = AsyncData([...activities, activity.requireValue]); - ref - .watch(activityStatisticsProvider(albumId, assetId).notifier) - .addActivity(); + ref.watch(activityStatisticsProvider(albumId, assetId).notifier).addActivity(); // The previous addActivity call would increase the count of an asset if assetId != null // To also increase the activity count of the album, calling it once again with assetId set to null if (assetId != null) { diff --git a/mobile/lib/providers/activity_service.provider.dart b/mobile/lib/providers/activity_service.provider.dart index 2d63e55354..a7fd0715f8 100644 --- a/mobile/lib/providers/activity_service.provider.dart +++ b/mobile/lib/providers/activity_service.provider.dart @@ -6,5 +6,4 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'activity_service.provider.g.dart'; @riverpod -ActivityService activityService(Ref ref) => - ActivityService(ref.watch(activityApiRepositoryProvider)); +ActivityService activityService(Ref ref) => ActivityService(ref.watch(activityApiRepositoryProvider)); diff --git a/mobile/lib/providers/activity_statistics.provider.dart b/mobile/lib/providers/activity_statistics.provider.dart index c260a7a547..96d2633d1b 100644 --- a/mobile/lib/providers/activity_statistics.provider.dart +++ b/mobile/lib/providers/activity_statistics.provider.dart @@ -9,10 +9,7 @@ part 'activity_statistics.provider.g.dart'; class ActivityStatistics extends _$ActivityStatistics { @override int build(String albumId, [String? assetId]) { - ref - .watch(activityServiceProvider) - .getStatistics(albumId, assetId: assetId) - .then((stats) => state = stats.comments); + ref.watch(activityServiceProvider).getStatistics(albumId, assetId: assetId).then((stats) => state = stats.comments); return 0; } diff --git a/mobile/lib/providers/album/album.provider.dart b/mobile/lib/providers/album/album.provider.dart index 39f5af7344..ae565d20d8 100644 --- a/mobile/lib/providers/album/album.provider.dart +++ b/mobile/lib/providers/album/album.provider.dart @@ -18,8 +18,7 @@ class AlbumNotifier extends StateNotifier> { } }); - _streamSub = - albumService.watchRemoteAlbums().listen((data) => state = data); + _streamSub = albumService.watchRemoteAlbums().listen((data) => state = data); } final AlbumService albumService; @@ -114,8 +113,7 @@ class AlbumNotifier extends StateNotifier> { } Future toggleSortOrder(Album album) { - final order = - album.sortOrder == SortOrder.asc ? SortOrder.desc : SortOrder.asc; + final order = album.sortOrder == SortOrder.asc ? SortOrder.desc : SortOrder.asc; return albumService.updateSortOrder(album, order); } @@ -127,16 +125,14 @@ class AlbumNotifier extends StateNotifier> { } } -final albumProvider = - StateNotifierProvider.autoDispose>((ref) { +final albumProvider = StateNotifierProvider.autoDispose>((ref) { return AlbumNotifier( ref.watch(albumServiceProvider), ref, ); }); -final albumWatcher = - StreamProvider.autoDispose.family((ref, id) async* { +final albumWatcher = StreamProvider.autoDispose.family((ref, id) async* { final albumService = ref.watch(albumServiceProvider); final album = await albumService.getAlbumById(id); @@ -172,7 +168,6 @@ class LocalAlbumsNotifier extends StateNotifier> { } } -final localAlbumsProvider = - StateNotifierProvider.autoDispose>((ref) { +final localAlbumsProvider = StateNotifierProvider.autoDispose>((ref) { return LocalAlbumsNotifier(ref.watch(albumServiceProvider)); }); diff --git a/mobile/lib/providers/album/album_sort_by_options.provider.dart b/mobile/lib/providers/album/album_sort_by_options.provider.dart index c89cd43132..6e1669faef 100644 --- a/mobile/lib/providers/album/album_sort_by_options.provider.dart +++ b/mobile/lib/providers/album/album_sort_by_options.provider.dart @@ -31,8 +31,7 @@ class _AlbumSortHandlers { static const AlbumSortFn assetCount = _sortByAssetCount; static List _sortByAssetCount(List albums, bool isReverse) { - final sorted = - albums.sorted((a, b) => a.assetCount.compareTo(b.assetCount)); + final sorted = albums.sorted((a, b) => a.assetCount.compareTo(b.assetCount)); return (isReverse ? sorted.reversed : sorted).toList(); } @@ -104,9 +103,7 @@ enum AlbumSortMode { class AlbumSortByOptions extends _$AlbumSortByOptions { @override AlbumSortMode build() { - final sortOpt = ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.selectedAlbumSortOrder); + final sortOpt = ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.selectedAlbumSortOrder); return AlbumSortMode.values.firstWhere( (e) => e.storeIndex == sortOpt, orElse: () => AlbumSortMode.title, @@ -126,15 +123,11 @@ class AlbumSortByOptions extends _$AlbumSortByOptions { class AlbumSortOrder extends _$AlbumSortOrder { @override bool build() { - return ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.selectedAlbumSortReverse); + return ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.selectedAlbumSortReverse); } void changeSortDirection(bool isReverse) { state = isReverse; - ref - .watch(appSettingsServiceProvider) - .setSetting(AppSettingsEnum.selectedAlbumSortReverse, isReverse); + ref.watch(appSettingsServiceProvider).setSetting(AppSettingsEnum.selectedAlbumSortReverse, isReverse); } } diff --git a/mobile/lib/providers/album/album_viewer.provider.dart b/mobile/lib/providers/album/album_viewer.provider.dart index d1290df298..afae154cd7 100644 --- a/mobile/lib/providers/album/album_viewer.provider.dart +++ b/mobile/lib/providers/album/album_viewer.provider.dart @@ -88,7 +88,6 @@ class AlbumViewerNotifier extends StateNotifier { } } -final albumViewerProvider = - StateNotifierProvider((ref) { +final albumViewerProvider = StateNotifierProvider((ref) { return AlbumViewerNotifier(ref); }); diff --git a/mobile/lib/providers/album/suggested_shared_users.provider.dart b/mobile/lib/providers/album/suggested_shared_users.provider.dart index 3c8dcb6733..51146748c7 100644 --- a/mobile/lib/providers/album/suggested_shared_users.provider.dart +++ b/mobile/lib/providers/album/suggested_shared_users.provider.dart @@ -4,8 +4,7 @@ import 'package:immich_mobile/domain/services/user.service.dart'; import 'package:immich_mobile/providers/infrastructure/user.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; -final otherUsersProvider = - FutureProvider.autoDispose>((ref) async { +final otherUsersProvider = FutureProvider.autoDispose>((ref) async { UserService userService = ref.watch(userServiceProvider); final currentUser = ref.watch(currentUserProvider); diff --git a/mobile/lib/providers/app_life_cycle.provider.dart b/mobile/lib/providers/app_life_cycle.provider.dart index 647ada4a64..07778ed2ed 100644 --- a/mobile/lib/providers/app_life_cycle.provider.dart +++ b/mobile/lib/providers/app_life_cycle.provider.dart @@ -58,8 +58,7 @@ class AppLifeCycleNotifier extends StateNotifier { // Needs to be logged in if (isAuthenticated) { // switch endpoint if needed - final endpoint = - await _ref.read(authProvider.notifier).setOpenApiServiceEndpoint(); + final endpoint = await _ref.read(authProvider.notifier).setOpenApiServiceEndpoint(); if (kDebugMode) { debugPrint("Using server URL: $endpoint"); } @@ -96,8 +95,7 @@ class AppLifeCycleNotifier extends StateNotifier { await Future.wait([ backgroundManager.syncLocal().then( (_) { - Logger("AppLifeCycleNotifier") - .fine("Hashing assets after syncLocal"); + Logger("AppLifeCycleNotifier").fine("Hashing assets after syncLocal"); // Check if app is still active before hashing if (state == AppLifeCycleEnum.resumed) { backgroundManager.hashAssets(); @@ -106,9 +104,7 @@ class AppLifeCycleNotifier extends StateNotifier { ), backgroundManager.syncRemote(), ]).then((_) async { - final isEnableBackup = _ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableBackup); + final isEnableBackup = _ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableBackup); if (isEnableBackup) { final currentUser = _ref.read(currentUserProvider); @@ -116,9 +112,7 @@ class AppLifeCycleNotifier extends StateNotifier { return; } - await _ref - .read(driftBackupProvider.notifier) - .handleBackupResume(currentUser.id); + await _ref.read(driftBackupProvider.notifier).handleBackupResume(currentUser.id); } }); } catch (e, stackTrace) { @@ -132,13 +126,9 @@ class AppLifeCycleNotifier extends StateNotifier { _ref.read(websocketProvider.notifier).connect(); - await _ref - .read(notificationPermissionProvider.notifier) - .getNotificationPermission(); + await _ref.read(notificationPermissionProvider.notifier).getNotificationPermission(); - await _ref - .read(galleryPermissionNotifier.notifier) - .getGalleryPermissionStatus(); + await _ref.read(galleryPermissionNotifier.notifier).getGalleryPermissionStatus(); if (!Store.isBetaTimelineEnabled) { await _ref.read(iOSBackgroundSettingsProvider.notifier).refresh(); @@ -159,8 +149,7 @@ class AppLifeCycleNotifier extends StateNotifier { if (_ref.read(authProvider).isAuthenticated) { if (!Store.isBetaTimelineEnabled) { // Do not cancel backup if manual upload is in progress - if (_ref.read(backupProvider.notifier).backupProgress != - BackUpProgressEnum.manualInProgress) { + if (_ref.read(backupProvider.notifier).backupProgress != BackUpProgressEnum.manualInProgress) { _ref.read(backupProvider.notifier).cancelBackup(); } } @@ -213,7 +202,6 @@ class AppLifeCycleNotifier extends StateNotifier { } } -final appStateProvider = - StateNotifierProvider((ref) { +final appStateProvider = StateNotifierProvider((ref) { return AppLifeCycleNotifier(ref); }); diff --git a/mobile/lib/providers/asset.provider.dart b/mobile/lib/providers/asset.provider.dart index 7fbacc3afb..5098dd2af4 100644 --- a/mobile/lib/providers/asset.provider.dart +++ b/mobile/lib/providers/asset.provider.dart @@ -182,8 +182,7 @@ class AssetNotifier extends StateNotifier { } } -final assetDetailProvider = - StreamProvider.autoDispose.family((ref, asset) async* { +final assetDetailProvider = StreamProvider.autoDispose.family((ref, asset) async* { final assetService = ref.watch(assetServiceProvider); yield await assetService.loadExif(asset); @@ -194,8 +193,7 @@ final assetDetailProvider = } }); -final assetWatcher = - StreamProvider.autoDispose.family((ref, asset) { +final assetWatcher = StreamProvider.autoDispose.family((ref, asset) { final assetService = ref.watch(assetServiceProvider); return assetService.watchAsset(asset.id, fireImmediately: true); }); diff --git a/mobile/lib/providers/asset_viewer/asset_people.provider.dart b/mobile/lib/providers/asset_viewer/asset_people.provider.dart index b334ef193a..e2227920c7 100644 --- a/mobile/lib/providers/asset_viewer/asset_people.provider.dart +++ b/mobile/lib/providers/asset_viewer/asset_people.provider.dart @@ -17,9 +17,7 @@ class AssetPeopleNotifier extends _$AssetPeopleNotifier { return []; } - final list = await ref - .watch(assetServiceProvider) - .getRemotePeopleOfAsset(asset.remoteId!); + final list = await ref.watch(assetServiceProvider).getRemotePeopleOfAsset(asset.remoteId!); if (list == null) { return []; } diff --git a/mobile/lib/providers/asset_viewer/asset_stack.provider.dart b/mobile/lib/providers/asset_viewer/asset_stack.provider.dart index 9bbbfb49aa..8772e3d0cb 100644 --- a/mobile/lib/providers/asset_viewer/asset_stack.provider.dart +++ b/mobile/lib/providers/asset_viewer/asset_stack.provider.dart @@ -32,10 +32,8 @@ class AssetStackNotifier extends StateNotifier> { } } -final assetStackStateProvider = StateNotifierProvider.autoDispose - .family, String>( - (ref, stackId) => - AssetStackNotifier(ref.watch(assetServiceProvider), stackId), +final assetStackStateProvider = StateNotifierProvider.autoDispose.family, String>( + (ref, stackId) => AssetStackNotifier(ref.watch(assetServiceProvider), stackId), ); @riverpod diff --git a/mobile/lib/providers/asset_viewer/download.provider.dart b/mobile/lib/providers/asset_viewer/download.provider.dart index 7f0d913a02..b35a4546bb 100644 --- a/mobile/lib/providers/asset_viewer/download.provider.dart +++ b/mobile/lib/providers/asset_viewer/download.provider.dart @@ -62,8 +62,7 @@ class DownloadStateNotifier extends StateNotifier { if (update.task.metaData.isEmpty) { return; } - final livePhotosId = - LivePhotosMetadata.fromJson(update.task.metaData).id; + final livePhotosId = LivePhotosMetadata.fromJson(update.task.metaData).id; _downloadService.saveLivePhotos(update.task, livePhotosId); _onDownloadComplete(update.task.taskId); break; @@ -191,8 +190,7 @@ class DownloadStateNotifier extends StateNotifier { } } -final downloadStateProvider = - StateNotifierProvider( +final downloadStateProvider = StateNotifierProvider( ((ref) => DownloadStateNotifier( ref.watch(downloadServiceProvider), ref.watch(shareServiceProvider), diff --git a/mobile/lib/providers/asset_viewer/is_motion_video_playing.provider.dart b/mobile/lib/providers/asset_viewer/is_motion_video_playing.provider.dart index 4af061f954..08722dc896 100644 --- a/mobile/lib/providers/asset_viewer/is_motion_video_playing.provider.dart +++ b/mobile/lib/providers/asset_viewer/is_motion_video_playing.provider.dart @@ -1,8 +1,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; /// Whether to display the video part of a motion photo -final isPlayingMotionVideoProvider = - StateNotifierProvider((ref) { +final isPlayingMotionVideoProvider = StateNotifierProvider((ref) { return IsPlayingMotionVideo(ref); }); diff --git a/mobile/lib/providers/asset_viewer/render_list_status_provider.dart b/mobile/lib/providers/asset_viewer/render_list_status_provider.dart index 903007031e..189ac85452 100644 --- a/mobile/lib/providers/asset_viewer/render_list_status_provider.dart +++ b/mobile/lib/providers/asset_viewer/render_list_status_provider.dart @@ -2,8 +2,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; enum RenderListStatusEnum { complete, empty, error, loading } -final renderListStatusProvider = - StateNotifierProvider((ref) { +final renderListStatusProvider = StateNotifierProvider((ref) { return RenderListStatus(ref); }); diff --git a/mobile/lib/providers/asset_viewer/share_intent_upload.provider.dart b/mobile/lib/providers/asset_viewer/share_intent_upload.provider.dart index 3c448b112f..2a5a6fe09c 100644 --- a/mobile/lib/providers/asset_viewer/share_intent_upload.provider.dart +++ b/mobile/lib/providers/asset_viewer/share_intent_upload.provider.dart @@ -9,8 +9,7 @@ import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/services/share_intent_service.dart'; import 'package:immich_mobile/services/upload.service.dart'; -final shareIntentUploadProvider = StateNotifierProvider< - ShareIntentUploadStateNotifier, List>( +final shareIntentUploadProvider = StateNotifierProvider>( ((ref) => ShareIntentUploadStateNotifier( ref.watch(appRouterProvider), ref.watch(uploadServiceProvider), @@ -18,8 +17,7 @@ final shareIntentUploadProvider = StateNotifierProvider< )), ); -class ShareIntentUploadStateNotifier - extends StateNotifier> { +class ShareIntentUploadStateNotifier extends StateNotifier> { final AppRouter router; final UploadService _uploadService; final ShareIntentService _shareIntentService; @@ -53,8 +51,7 @@ class ShareIntentUploadStateNotifier } void removeAttachment(ShareIntentAttachment attachment) { - final updatedState = - state.where((element) => element != attachment).toList(); + final updatedState = state.where((element) => element != attachment).toList(); if (updatedState.length != state.length) { state = updatedState; } @@ -87,27 +84,20 @@ class ShareIntentUploadStateNotifier state = [ for (final attachment in state) - if (attachment.id == taskId.toInt()) - attachment.copyWith(status: uploadStatus) - else - attachment, + if (attachment.id == taskId.toInt()) attachment.copyWith(status: uploadStatus) else attachment, ]; } void _taskProgressCallback(TaskProgressUpdate update) { // Ignore if the task is canceled or completed - if (update.progress == downloadFailed || - update.progress == downloadCompleted) { + if (update.progress == downloadFailed || update.progress == downloadCompleted) { return; } final taskId = update.task.taskId; state = [ for (final attachment in state) - if (attachment.id == taskId.toInt()) - attachment.copyWith(uploadProgress: update.progress) - else - attachment, + if (attachment.id == taskId.toInt()) attachment.copyWith(uploadProgress: update.progress) else attachment, ]; } diff --git a/mobile/lib/providers/asset_viewer/video_player_controls_provider.dart b/mobile/lib/providers/asset_viewer/video_player_controls_provider.dart index 69be91480f..a758d97ad8 100644 --- a/mobile/lib/providers/asset_viewer/video_player_controls_provider.dart +++ b/mobile/lib/providers/asset_viewer/video_player_controls_provider.dart @@ -13,13 +13,11 @@ class VideoPlaybackControls { final bool restarted; } -final videoPlayerControlsProvider = - StateNotifierProvider((ref) { +final videoPlayerControlsProvider = StateNotifierProvider((ref) { return VideoPlayerControls(ref); }); -const videoPlayerControlsDefault = - VideoPlaybackControls(position: 0, pause: false); +const videoPlayerControlsDefault = VideoPlaybackControls(position: 0, pause: false); class VideoPlayerControls extends StateNotifier { VideoPlayerControls(this.ref) : super(videoPlayerControlsDefault); @@ -64,17 +62,14 @@ class VideoPlayerControls extends StateNotifier { } void togglePlay() { - state = - VideoPlaybackControls(position: state.position, pause: !state.pause); + state = VideoPlaybackControls(position: state.position, pause: !state.pause); } void restart() { - state = - const VideoPlaybackControls(position: 0, pause: false, restarted: true); - ref.read(videoPlaybackValueProvider.notifier).value = - ref.read(videoPlaybackValueProvider.notifier).value.copyWith( - state: VideoPlaybackState.playing, - position: Duration.zero, - ); + state = const VideoPlaybackControls(position: 0, pause: false, restarted: true); + ref.read(videoPlaybackValueProvider.notifier).value = ref.read(videoPlaybackValueProvider.notifier).value.copyWith( + state: VideoPlaybackState.playing, + position: Duration.zero, + ); } } diff --git a/mobile/lib/providers/asset_viewer/video_player_value_provider.dart b/mobile/lib/providers/asset_viewer/video_player_value_provider.dart index 1a3c54e9e9..55a381b02b 100644 --- a/mobile/lib/providers/asset_viewer/video_player_value_provider.dart +++ b/mobile/lib/providers/asset_viewer/video_player_value_provider.dart @@ -75,8 +75,7 @@ const VideoPlaybackValue videoPlaybackValueDefault = VideoPlaybackValue( volume: 0.0, ); -final videoPlaybackValueProvider = - StateNotifierProvider((ref) { +final videoPlaybackValueProvider = StateNotifierProvider((ref) { return VideoPlaybackValueState(ref); }); diff --git a/mobile/lib/providers/auth.provider.dart b/mobile/lib/providers/auth.provider.dart index 2d3de11257..4c43cb37e8 100644 --- a/mobile/lib/providers/auth.provider.dart +++ b/mobile/lib/providers/auth.provider.dart @@ -124,14 +124,12 @@ class AuthNotifier extends StateNotifier { ); // Get the deviceid from the store if it exists, otherwise generate a new one - String deviceId = - Store.tryGet(StoreKey.deviceId) ?? await FlutterUdid.consistentUdid; + String deviceId = Store.tryGet(StoreKey.deviceId) ?? await FlutterUdid.consistentUdid; UserDto? user = _userService.tryGetMyUser(); try { - final serverUser = - await _userService.refreshMyUser().timeout(_timeoutDuration); + final serverUser = await _userService.refreshMyUser().timeout(_timeoutDuration); if (serverUser == null) { _log.severe("Unable to get user information from the server."); } else { diff --git a/mobile/lib/providers/backup/backup.provider.dart b/mobile/lib/providers/backup/backup.provider.dart index 69246398ed..69290bcfc5 100644 --- a/mobile/lib/providers/backup/backup.provider.dart +++ b/mobile/lib/providers/backup/backup.provider.dart @@ -34,8 +34,7 @@ import 'package:logging/logging.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:photo_manager/photo_manager.dart' show PMProgressHandler; -final backupProvider = - StateNotifierProvider((ref) { +final backupProvider = StateNotifierProvider((ref) { return BackupNotifier( ref.watch(backupServiceProvider), ref.watch(serverInfoServiceProvider), @@ -74,8 +73,7 @@ class BackupNotifier extends StateNotifier { autoBackup: Store.get(StoreKey.autoBackup, false), backgroundBackup: Store.get(StoreKey.backgroundBackup, false), backupRequireWifi: Store.get(StoreKey.backupRequireWifi, true), - backupRequireCharging: - Store.get(StoreKey.backupRequireCharging, false), + backupRequireCharging: Store.get(StoreKey.backupRequireCharging, false), backupTriggerDelay: Store.get(StoreKey.backupTriggerDelay, 5000), serverInfo: const ServerDiskInfo( diskAvailable: "0", @@ -124,16 +122,14 @@ class BackupNotifier extends StateNotifier { removeExcludedAlbumForBackup(album); } - state = state - .copyWith(selectedBackupAlbums: {...state.selectedBackupAlbums, album}); + state = state.copyWith(selectedBackupAlbums: {...state.selectedBackupAlbums, album}); } void addExcludedAlbumForBackup(AvailableAlbum album) { if (state.selectedBackupAlbums.contains(album)) { removeAlbumForBackup(album); } - state = state - .copyWith(excludedBackupAlbums: {...state.excludedBackupAlbums, album}); + state = state.copyWith(excludedBackupAlbums: {...state.excludedBackupAlbums, album}); } void removeAlbumForBackup(AvailableAlbum album) { @@ -180,10 +176,7 @@ class BackupNotifier extends StateNotifier { required void Function() onBatteryInfo, }) async { assert( - enabled != null || - requireWifi != null || - requireCharging != null || - triggerDelay != null, + enabled != null || requireWifi != null || requireCharging != null || triggerDelay != null, ); final bool wasEnabled = state.backgroundBackup; final bool wasWifi = state.backupRequireWifi; @@ -257,9 +250,7 @@ class BackupNotifier extends StateNotifier { for (Album album in albums) { AvailableAlbum availableAlbum = AvailableAlbum( album: album, - assetCount: await ref - .read(albumMediaRepositoryProvider) - .getAssetCount(album.localId!), + assetCount: await ref.read(albumMediaRepositoryProvider).getAssetCount(album.localId!), ); availableAlbums.add(availableAlbum); @@ -268,10 +259,8 @@ class BackupNotifier extends StateNotifier { } state = state.copyWith(availableAlbums: availableAlbums); - final List excludedBackupAlbums = - await _backupAlbumService.getAllBySelection(BackupSelection.exclude); - final List selectedBackupAlbums = - await _backupAlbumService.getAllBySelection(BackupSelection.select); + final List excludedBackupAlbums = await _backupAlbumService.getAllBySelection(BackupSelection.exclude); + final List selectedBackupAlbums = await _backupAlbumService.getAllBySelection(BackupSelection.select); final Set selectedAlbums = {}; for (final BackupAlbum ba in selectedBackupAlbums) { @@ -281,8 +270,7 @@ class BackupNotifier extends StateNotifier { selectedAlbums.add( AvailableAlbum( album: albumAsset, - assetCount: - await _albumMediaRepository.getAssetCount(albumAsset.localId!), + assetCount: await _albumMediaRepository.getAssetCount(albumAsset.localId!), lastBackup: ba.lastBackup, ), ); @@ -299,9 +287,7 @@ class BackupNotifier extends StateNotifier { excludedAlbums.add( AvailableAlbum( album: albumAsset, - assetCount: await ref - .read(albumMediaRepositoryProvider) - .getAssetCount(albumAsset.localId!), + assetCount: await ref.read(albumMediaRepositoryProvider).getAssetCount(albumAsset.localId!), lastBackup: ba.lastBackup, ), ); @@ -335,17 +321,13 @@ class BackupNotifier extends StateNotifier { final Set assetsFromExcludedAlbums = {}; for (final album in state.selectedBackupAlbums) { - final assetCount = await ref - .read(albumMediaRepositoryProvider) - .getAssetCount(album.album.localId!); + final assetCount = await ref.read(albumMediaRepositoryProvider).getAssetCount(album.album.localId!); if (assetCount == 0) { continue; } - final assets = await ref - .read(albumMediaRepositoryProvider) - .getAssets(album.album.localId!); + final assets = await ref.read(albumMediaRepositoryProvider).getAssets(album.album.localId!); // Add album's name to the asset info for (final asset in assets) { @@ -370,17 +352,13 @@ class BackupNotifier extends StateNotifier { } for (final album in state.excludedBackupAlbums) { - final assetCount = await ref - .read(albumMediaRepositoryProvider) - .getAssetCount(album.album.localId!); + final assetCount = await ref.read(albumMediaRepositoryProvider).getAssetCount(album.album.localId!); if (assetCount == 0) { continue; } - final assets = await ref - .read(albumMediaRepositoryProvider) - .getAssets(album.album.localId!); + final assets = await ref.read(albumMediaRepositoryProvider).getAssets(album.album.localId!); for (final asset in assets) { assetsFromExcludedAlbums.add( @@ -389,8 +367,7 @@ class BackupNotifier extends StateNotifier { } } - final Set allUniqueAssets = - assetsFromSelectedAlbums.difference(assetsFromExcludedAlbums); + final Set allUniqueAssets = assetsFromSelectedAlbums.difference(assetsFromExcludedAlbums); final allAssetsInDatabase = await _backupService.getDeviceBackupAsset(); @@ -399,11 +376,9 @@ class BackupNotifier extends StateNotifier { } // Find asset that were backup from selected albums - final Set selectedAlbumsBackupAssets = - Set.from(allUniqueAssets.map((e) => e.asset.localId)); + final Set selectedAlbumsBackupAssets = Set.from(allUniqueAssets.map((e) => e.asset.localId)); - selectedAlbumsBackupAssets - .removeWhere((assetId) => !allAssetsInDatabase.contains(assetId)); + selectedAlbumsBackupAssets.removeWhere((assetId) => !allAssetsInDatabase.contains(assetId)); // Remove duplicated asset from all unique assets allUniqueAssets.removeWhere( @@ -459,8 +434,7 @@ class BackupNotifier extends StateNotifier { final candidates = selected.followedBy(excluded).toList(); candidates.sortBy((e) => e.id); - final savedBackupAlbums = - await _backupAlbumService.getAll(sort: BackupAlbumSort.id); + final savedBackupAlbums = await _backupAlbumService.getAll(sort: BackupAlbumSort.id); final List toDelete = []; final List toUpsert = []; @@ -469,8 +443,7 @@ class BackupNotifier extends StateNotifier { candidates, compare: (BackupAlbum a, BackupAlbum b) => a.id.compareTo(b.id), both: (BackupAlbum a, BackupAlbum b) { - b.lastBackup = - a.lastBackup.isAfter(b.lastBackup) ? a.lastBackup : b.lastBackup; + b.lastBackup = a.lastBackup.isAfter(b.lastBackup) ? a.lastBackup : b.lastBackup; toUpsert.add(b); return true; }, @@ -569,8 +542,7 @@ class BackupNotifier extends StateNotifier { state = state.copyWith( allUniqueAssets: state.allUniqueAssets .where( - (candidate) => - candidate.asset.localId != result.candidate.asset.localId, + (candidate) => candidate.asset.localId != result.candidate.asset.localId, ) .toSet(), ); @@ -587,21 +559,13 @@ class BackupNotifier extends StateNotifier { ); } - if (state.allUniqueAssets.length - - state.selectedAlbumsBackupAssetsIds.length == - 0) { - final latestAssetBackup = state.allUniqueAssets - .map((candidate) => candidate.asset.fileModifiedAt) - .reduce( + if (state.allUniqueAssets.length - state.selectedAlbumsBackupAssetsIds.length == 0) { + final latestAssetBackup = state.allUniqueAssets.map((candidate) => candidate.asset.fileModifiedAt).reduce( (v, e) => e.isAfter(v) ? e : v, ); state = state.copyWith( - selectedBackupAlbums: state.selectedBackupAlbums - .map((e) => e.copyWith(lastBackup: latestAssetBackup)) - .toSet(), - excludedBackupAlbums: state.excludedBackupAlbums - .map((e) => e.copyWith(lastBackup: latestAssetBackup)) - .toSet(), + selectedBackupAlbums: state.selectedBackupAlbums.map((e) => e.copyWith(lastBackup: latestAssetBackup)).toSet(), + excludedBackupAlbums: state.excludedBackupAlbums.map((e) => e.copyWith(lastBackup: latestAssetBackup)).toSet(), backupProgress: BackUpProgressEnum.done, progressInPercentage: 0.0, progressInFileSize: "0 B / 0 B", @@ -696,10 +660,8 @@ class BackupNotifier extends StateNotifier { } Future resumeBackup() async { - final List selectedBackupAlbums = - await _backupAlbumService.getAllBySelection(BackupSelection.select); - final List excludedBackupAlbums = - await _backupAlbumService.getAllBySelection(BackupSelection.exclude); + final List selectedBackupAlbums = await _backupAlbumService.getAllBySelection(BackupSelection.select); + final List excludedBackupAlbums = await _backupAlbumService.getAllBySelection(BackupSelection.exclude); Set selectedAlbums = state.selectedBackupAlbums; Set excludedAlbums = state.excludedBackupAlbums; if (selectedAlbums.isNotEmpty) { diff --git a/mobile/lib/providers/backup/backup_album.provider.dart b/mobile/lib/providers/backup/backup_album.provider.dart index 2915c7c216..1e5d424926 100644 --- a/mobile/lib/providers/backup/backup_album.provider.dart +++ b/mobile/lib/providers/backup/backup_album.provider.dart @@ -4,8 +4,7 @@ import 'package:immich_mobile/domain/services/local_album.service.dart'; import 'package:immich_mobile/infrastructure/repositories/local_album.repository.dart'; import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; -final backupAlbumProvider = - StateNotifierProvider>( +final backupAlbumProvider = StateNotifierProvider>( (ref) => BackupAlbumNotifier( ref.watch(localAlbumServiceProvider), ), @@ -19,8 +18,7 @@ class BackupAlbumNotifier extends StateNotifier> { final LocalAlbumService _localAlbumService; Future getAll() async { - state = - await _localAlbumService.getAll(sortBy: {SortLocalAlbumsBy.assetCount}); + state = await _localAlbumService.getAll(sortBy: {SortLocalAlbumsBy.assetCount}); } Future selectAlbum(LocalAlbum album) async { @@ -42,9 +40,8 @@ class BackupAlbumNotifier extends StateNotifier> { state = state .map( - (currentAlbum) => currentAlbum.id == album.id - ? currentAlbum.copyWith(backupSelection: BackupSelection.none) - : currentAlbum, + (currentAlbum) => + currentAlbum.id == album.id ? currentAlbum.copyWith(backupSelection: BackupSelection.none) : currentAlbum, ) .toList(); } diff --git a/mobile/lib/providers/backup/backup_verification.provider.dart b/mobile/lib/providers/backup/backup_verification.provider.dart index 5881814320..c075d81d86 100644 --- a/mobile/lib/providers/backup/backup_verification.provider.dart +++ b/mobile/lib/providers/backup/backup_verification.provider.dart @@ -23,8 +23,7 @@ class BackupVerification extends _$BackupVerification { state = true; final backupState = ref.read(backupProvider); - if (backupState.allUniqueAssets.length > - backupState.selectedAlbumsBackupAssetsIds.length) { + if (backupState.allUniqueAssets.length > backupState.selectedAlbumsBackupAssetsIds.length) { if (context.mounted) { ImmichToast.show( context: context, @@ -48,9 +47,7 @@ class BackupVerification extends _$BackupVerification { WakelockPlus.enable(); const limit = 100; - final toDelete = await ref - .read(backupVerificationServiceProvider) - .findWronglyBackedUpAssets(limit: limit); + final toDelete = await ref.read(backupVerificationServiceProvider).findWronglyBackedUpAssets(limit: limit); if (toDelete.isEmpty) { if (context.mounted) { ImmichToast.show( @@ -67,8 +64,7 @@ class BackupVerification extends _$BackupVerification { onOk: () => _performDeletion(context, toDelete), title: "Corrupt backups!", ok: "Delete", - content: - "Found ${toDelete.length} (max $limit at once) corrupt asset backups. " + content: "Found ${toDelete.length} (max $limit at once) corrupt asset backups. " "Run the check again to find more.\n" "Do you want to delete the corrupt asset backups now?", ), diff --git a/mobile/lib/providers/backup/drift_backup.provider.dart b/mobile/lib/providers/backup/drift_backup.provider.dart index 45941639a0..42a4ae95f3 100644 --- a/mobile/lib/providers/backup/drift_backup.provider.dart +++ b/mobile/lib/providers/backup/drift_backup.provider.dart @@ -31,8 +31,7 @@ class EnqueueStatus { } @override - String toString() => - 'EnqueueStatus(enqueueCount: $enqueueCount, totalCount: $totalCount)'; + String toString() => 'EnqueueStatus(enqueueCount: $enqueueCount, totalCount: $totalCount)'; } class DriftUploadStatus { @@ -198,8 +197,7 @@ class DriftBackupState { } } -final driftBackupProvider = - StateNotifierProvider((ref) { +final driftBackupProvider = StateNotifierProvider((ref) { return ExpBackupNotifier( ref.watch(driftBackupServiceProvider), ref.watch(uploadServiceProvider), @@ -235,8 +233,7 @@ class ExpBackupNotifier extends StateNotifier { /// Remove upload item from state void _removeUploadItem(String taskId) { if (state.uploadItems.containsKey(taskId)) { - final updatedItems = - Map.from(state.uploadItems); + final updatedItems = Map.from(state.uploadItems); updatedItems.remove(taskId); state = state.copyWith(uploadItems: updatedItems); } diff --git a/mobile/lib/providers/backup/error_backup_list.provider.dart b/mobile/lib/providers/backup/error_backup_list.provider.dart index 22ff995905..db116e4bb9 100644 --- a/mobile/lib/providers/backup/error_backup_list.provider.dart +++ b/mobile/lib/providers/backup/error_backup_list.provider.dart @@ -17,7 +17,6 @@ class ErrorBackupListNotifier extends StateNotifier> { } } -final errorBackupListProvider = - StateNotifierProvider>( +final errorBackupListProvider = StateNotifierProvider>( (ref) => ErrorBackupListNotifier(), ); diff --git a/mobile/lib/providers/backup/ios_background_settings.provider.dart b/mobile/lib/providers/backup/ios_background_settings.provider.dart index d70e674845..98d55882cc 100644 --- a/mobile/lib/providers/backup/ios_background_settings.provider.dart +++ b/mobile/lib/providers/backup/ios_background_settings.provider.dart @@ -15,21 +15,17 @@ class IOSBackgroundSettings { }); } -class IOSBackgroundSettingsNotifier - extends StateNotifier { +class IOSBackgroundSettingsNotifier extends StateNotifier { final BackgroundService _service; IOSBackgroundSettingsNotifier(this._service) : super(null); IOSBackgroundSettings? get settings => state; Future refresh() async { - final lastFetchTime = - await _service.getIOSBackupLastRun(IosBackgroundTask.fetch); - final lastProcessingTime = - await _service.getIOSBackupLastRun(IosBackgroundTask.processing); + final lastFetchTime = await _service.getIOSBackupLastRun(IosBackgroundTask.fetch); + final lastProcessingTime = await _service.getIOSBackupLastRun(IosBackgroundTask.processing); int numberOfProcesses = await _service.getIOSBackupNumberOfProcesses(); - final appRefreshEnabled = - await _service.getIOSBackgroundAppRefreshEnabled(); + final appRefreshEnabled = await _service.getIOSBackgroundAppRefreshEnabled(); // If this is enabled and there are no background processes, // the user just enabled app refresh in Settings. @@ -53,7 +49,6 @@ class IOSBackgroundSettingsNotifier } } -final iOSBackgroundSettingsProvider = StateNotifierProvider< - IOSBackgroundSettingsNotifier, IOSBackgroundSettings?>( +final iOSBackgroundSettingsProvider = StateNotifierProvider( (ref) => IOSBackgroundSettingsNotifier(ref.watch(backgroundServiceProvider)), ); diff --git a/mobile/lib/providers/backup/manual_upload.provider.dart b/mobile/lib/providers/backup/manual_upload.provider.dart index 646a03cebc..b234a4ffe2 100644 --- a/mobile/lib/providers/backup/manual_upload.provider.dart +++ b/mobile/lib/providers/backup/manual_upload.provider.dart @@ -31,8 +31,7 @@ import 'package:logging/logging.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:photo_manager/photo_manager.dart' show PMProgressHandler; -final manualUploadProvider = - StateNotifierProvider((ref) { +final manualUploadProvider = StateNotifierProvider((ref) { return ManualUploadNotifier( ref.watch(localNotificationService), ref.watch(backupProvider.notifier), @@ -82,8 +81,7 @@ class ManualUploadNotifier extends StateNotifier { String? _lastPrintedDetailTitle; static const notifyInterval = Duration(milliseconds: 500); - late final ThrottleProgressUpdate _throttledNotifiy = - ThrottleProgressUpdate(_updateProgress, notifyInterval); + late final ThrottleProgressUpdate _throttledNotifiy = ThrottleProgressUpdate(_updateProgress, notifyInterval); late final ThrottleProgressUpdate _throttledDetailNotify = ThrottleProgressUpdate(_updateDetailProgress, notifyInterval); @@ -106,11 +104,9 @@ class ManualUploadNotifier extends StateNotifier { void _updateDetailProgress(String? title, int progress, int total) { // Guard against throttling calling this method after the upload is done if (_backupProvider.backupProgress == BackUpProgressEnum.manualInProgress) { - final String msg = - total > 0 ? humanReadableBytesProgress(progress, total) : ""; + final String msg = total > 0 ? humanReadableBytesProgress(progress, total) : ""; // only update if message actually differs (to stop many useless notification updates on large assets or slow connections) - if (msg != _lastPrintedDetailContent || - title != _lastPrintedDetailTitle) { + if (msg != _lastPrintedDetailContent || title != _lastPrintedDetailTitle) { _lastPrintedDetailContent = msg; _lastPrintedDetailTitle = title; _localNotificationService.showOrUpdateManualUploadStatus( @@ -184,9 +180,8 @@ class ManualUploadNotifier extends StateNotifier { _throttledNotifiy(); } if (state.showDetailedNotification) { - _throttledDetailNotify.title = - "backup_background_service_current_upload_notification" - .tr(namedArgs: {'filename': currentUploadAsset.fileName}); + _throttledDetailNotify.title = "backup_background_service_current_upload_notification" + .tr(namedArgs: {'filename': currentUploadAsset.fileName}); _throttledDetailNotify.progress = 0; _throttledDetailNotify.total = 0; } @@ -200,8 +195,7 @@ class ManualUploadNotifier extends StateNotifier { if (ref.read(galleryPermissionNotifier.notifier).hasPermission) { await ref.read(fileMediaRepositoryProvider).clearFileCache(); - final allAssetsFromDevice = - allManualUploads.where((e) => e.isLocal && !e.isRemote).toList(); + final allAssetsFromDevice = allManualUploads.where((e) => e.isLocal && !e.isRemote).toList(); if (allAssetsFromDevice.length != allManualUploads.length) { _log.warning( @@ -209,14 +203,11 @@ class ManualUploadNotifier extends StateNotifier { ); } - final selectedBackupAlbums = - await _backupAlbumService.getAllBySelection(BackupSelection.select); - final excludedBackupAlbums = await _backupAlbumService - .getAllBySelection(BackupSelection.exclude); + final selectedBackupAlbums = await _backupAlbumService.getAllBySelection(BackupSelection.select); + final excludedBackupAlbums = await _backupAlbumService.getAllBySelection(BackupSelection.exclude); // Get candidates from selected albums and excluded albums - Set candidates = - await _backupService.buildUploadCandidates( + Set candidates = await _backupService.buildUploadCandidates( selectedBackupAlbums, excludedBackupAlbums, useTimeFilter: false, @@ -260,13 +251,11 @@ class ManualUploadNotifier extends StateNotifier { } // Show detailed asset if enabled in settings or if a single asset is uploaded - bool showDetailedNotification = - ref.read(appSettingsServiceProvider).getSetting( - AppSettingsEnum.backgroundBackupSingleProgress, - ) || - state.totalAssetsToUpload == 1; - state = - state.copyWith(showDetailedNotification: showDetailedNotification); + bool showDetailedNotification = ref.read(appSettingsServiceProvider).getSetting( + AppSettingsEnum.backgroundBackupSingleProgress, + ) || + state.totalAssetsToUpload == 1; + state = state.copyWith(showDetailedNotification: showDetailedNotification); final pmProgressHandler = Platform.isIOS ? PMProgressHandler() : null; final bool ok = await ref.read(backupServiceProvider).backupAsset( @@ -297,8 +286,7 @@ class ManualUploadNotifier extends StateNotifier { presentBanner: true, ); hasErrors = true; - } else if (state.successfulUploads == 0 || - (!ok && !state.cancelToken.isCancelled)) { + } else if (state.successfulUploads == 0 || (!ok && !state.cancelToken.isCancelled)) { await _localNotificationService.showOrUpdateManualUploadStatus( "backup_manual_title".tr(), "failed".tr(), @@ -334,8 +322,7 @@ class ManualUploadNotifier extends StateNotifier { final appState = ref.read(appStateProvider.notifier).getAppState(); // The app is currently in background. Perform the necessary cleanups which // are on-hold for upload completion - if (appState != AppLifeCycleEnum.active && - appState != AppLifeCycleEnum.resumed) { + if (appState != AppLifeCycleEnum.active && appState != AppLifeCycleEnum.resumed) { ref.read(backupProvider.notifier).cancelBackup(); } } @@ -364,8 +351,7 @@ class ManualUploadNotifier extends StateNotifier { ) async { // assumes the background service is currently running and // waits until it has stopped to start the backup. - final bool hasLock = - await ref.read(backgroundServiceProvider).acquireLock(); + final bool hasLock = await ref.read(backgroundServiceProvider).acquireLock(); if (!hasLock) { debugPrint("[uploadAssets] could not acquire lock, exiting"); ImmichToast.show( diff --git a/mobile/lib/providers/folder.provider.dart b/mobile/lib/providers/folder.provider.dart index 810c2cea73..7f89679734 100644 --- a/mobile/lib/providers/folder.provider.dart +++ b/mobile/lib/providers/folder.provider.dart @@ -22,9 +22,7 @@ class FolderStructureNotifier extends StateNotifier> { } } -final folderStructureProvider = - StateNotifierProvider>( - (ref) { +final folderStructureProvider = StateNotifierProvider>((ref) { return FolderStructureNotifier( ref.watch(folderServiceProvider), ); @@ -35,14 +33,12 @@ class FolderRenderListNotifier extends StateNotifier> { final RootFolder _folder; final Logger _log = Logger("FolderAssetsNotifier"); - FolderRenderListNotifier(this._folderService, this._folder) - : super(const AsyncLoading()); + FolderRenderListNotifier(this._folderService, this._folder) : super(const AsyncLoading()); Future fetchAssets(SortOrder order) async { try { final assets = await _folderService.getFolderAssets(_folder, order); - final renderList = - await RenderList.fromAssets(assets, GroupAssetsBy.none); + final renderList = await RenderList.fromAssets(assets, GroupAssetsBy.none); state = AsyncData(renderList); } catch (e, stack) { _log.severe("Failed to fetch folder assets", e, stack); @@ -51,10 +47,8 @@ class FolderRenderListNotifier extends StateNotifier> { } } -final folderRenderListProvider = StateNotifierProvider.family< - FolderRenderListNotifier, - AsyncValue, - RootFolder>((ref, folder) { +final folderRenderListProvider = + StateNotifierProvider.family, RootFolder>((ref, folder) { return FolderRenderListNotifier( ref.watch(folderServiceProvider), folder, diff --git a/mobile/lib/providers/gallery_permission.provider.dart b/mobile/lib/providers/gallery_permission.provider.dart index 07d9cca591..3d8a6da941 100644 --- a/mobile/lib/providers/gallery_permission.provider.dart +++ b/mobile/lib/providers/gallery_permission.provider.dart @@ -5,8 +5,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:permission_handler/permission_handler.dart'; class GalleryPermissionNotifier extends StateNotifier { - GalleryPermissionNotifier() - : super(PermissionStatus.denied) // Denied is the initial state + GalleryPermissionNotifier() : super(PermissionStatus.denied) // Denied is the initial state { // Sets the initial state getGalleryPermissionStatus(); @@ -36,8 +35,7 @@ class GalleryPermissionNotifier extends StateNotifier { // Return the joint result of those two permissions final PermissionStatus status; - if ((photos.isGranted && videos.isGranted) || - (photos.isLimited && videos.isLimited)) { + if ((photos.isGranted && videos.isGranted) || (photos.isLimited && videos.isLimited)) { status = PermissionStatus.granted; } else if (photos.isDenied || videos.isDenied) { status = PermissionStatus.denied; @@ -49,8 +47,7 @@ class GalleryPermissionNotifier extends StateNotifier { result = status; } - if (result == PermissionStatus.granted && - androidInfo.version.sdkInt >= 29) { + if (result == PermissionStatus.granted && androidInfo.version.sdkInt >= 29) { result = await Permission.accessMediaLocation.request(); } } else { @@ -80,8 +77,7 @@ class GalleryPermissionNotifier extends StateNotifier { // Return the joint result of those two permissions final PermissionStatus status; - if ((photos.isGranted && videos.isGranted) || - (photos.isLimited && videos.isLimited)) { + if ((photos.isGranted && videos.isGranted) || (photos.isLimited && videos.isLimited)) { status = PermissionStatus.granted; } else if (photos.isDenied || videos.isDenied) { status = PermissionStatus.denied; @@ -93,8 +89,7 @@ class GalleryPermissionNotifier extends StateNotifier { result = status; } - if (state == PermissionStatus.granted && - androidInfo.version.sdkInt >= 29) { + if (state == PermissionStatus.granted && androidInfo.version.sdkInt >= 29) { result = await Permission.accessMediaLocation.status; } } else { @@ -107,7 +102,6 @@ class GalleryPermissionNotifier extends StateNotifier { } } -final galleryPermissionNotifier = - StateNotifierProvider( +final galleryPermissionNotifier = StateNotifierProvider( (ref) => GalleryPermissionNotifier(), ); diff --git a/mobile/lib/providers/haptic_feedback.provider.dart b/mobile/lib/providers/haptic_feedback.provider.dart index ce8997c85c..711c6fa4e2 100644 --- a/mobile/lib/providers/haptic_feedback.provider.dart +++ b/mobile/lib/providers/haptic_feedback.provider.dart @@ -3,8 +3,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/providers/app_settings.provider.dart'; import 'package:immich_mobile/services/app_settings.service.dart'; -final hapticFeedbackProvider = - StateNotifierProvider((ref) { +final hapticFeedbackProvider = StateNotifierProvider((ref) { return HapticNotifier(ref); }); @@ -15,41 +14,31 @@ class HapticNotifier extends StateNotifier { HapticNotifier(this._ref) : super(null); selectionClick() { - if (_ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableHapticFeedback)) { + if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) { HapticFeedback.selectionClick(); } } lightImpact() { - if (_ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableHapticFeedback)) { + if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) { HapticFeedback.lightImpact(); } } mediumImpact() { - if (_ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableHapticFeedback)) { + if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) { HapticFeedback.mediumImpact(); } } heavyImpact() { - if (_ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableHapticFeedback)) { + if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) { HapticFeedback.heavyImpact(); } } vibrate() { - if (_ref - .read(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.enableHapticFeedback)) { + if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) { HapticFeedback.vibrate(); } } diff --git a/mobile/lib/providers/image/cache/thumbnail_image_cache_manager.dart b/mobile/lib/providers/image/cache/thumbnail_image_cache_manager.dart index dd7ad35277..f8d4cda3e6 100644 --- a/mobile/lib/providers/image/cache/thumbnail_image_cache_manager.dart +++ b/mobile/lib/providers/image/cache/thumbnail_image_cache_manager.dart @@ -3,8 +3,7 @@ import 'package:flutter_cache_manager/flutter_cache_manager.dart'; /// The cache manager for thumbnail images [ImmichRemoteThumbnailProvider] class ThumbnailImageCacheManager extends CacheManager { static const key = 'thumbnailImageCacheKey'; - static final ThumbnailImageCacheManager _instance = - ThumbnailImageCacheManager._(); + static final ThumbnailImageCacheManager _instance = ThumbnailImageCacheManager._(); factory ThumbnailImageCacheManager() { return _instance; diff --git a/mobile/lib/providers/image/immich_local_thumbnail_provider.dart b/mobile/lib/providers/image/immich_local_thumbnail_provider.dart index edcf8a9458..de69115444 100644 --- a/mobile/lib/providers/image/immich_local_thumbnail_provider.dart +++ b/mobile/lib/providers/image/immich_local_thumbnail_provider.dart @@ -13,8 +13,7 @@ import 'package:logging/logging.dart'; /// The local image provider for an asset /// Only viable -class ImmichLocalThumbnailProvider - extends ImageProvider { +class ImmichLocalThumbnailProvider extends ImageProvider { final Asset asset; final int height; final int width; @@ -60,13 +59,11 @@ class ImmichLocalThumbnailProvider CacheManager cache, ImageDecoderCallback decode, ) async* { - final cacheKey = - '$userId${assetData.localId}${assetData.checksum}$width$height'; + final cacheKey = '$userId${assetData.localId}${assetData.checksum}$width$height'; final fileFromCache = await cache.getFileFromCache(cacheKey); if (fileFromCache != null) { try { - final buffer = - await ui.ImmutableBuffer.fromFilePath(fileFromCache.file.path); + final buffer = await ui.ImmutableBuffer.fromFilePath(fileFromCache.file.path); final codec = await decode(buffer); yield codec; return; diff --git a/mobile/lib/providers/image/immich_remote_image_provider.dart b/mobile/lib/providers/image/immich_remote_image_provider.dart index fe0811583c..130b2202b4 100644 --- a/mobile/lib/providers/image/immich_remote_image_provider.dart +++ b/mobile/lib/providers/image/immich_remote_image_provider.dart @@ -15,8 +15,7 @@ import 'package:immich_mobile/entities/store.entity.dart'; import 'package:immich_mobile/utils/image_url_builder.dart'; /// The remote image provider for full size remote images -class ImmichRemoteImageProvider - extends ImageProvider { +class ImmichRemoteImageProvider extends ImageProvider { /// The [Asset.remoteId] of the asset to fetch final String assetId; diff --git a/mobile/lib/providers/image/immich_remote_thumbnail_provider.dart b/mobile/lib/providers/image/immich_remote_thumbnail_provider.dart index 8533cb6f08..cb2a6270b4 100644 --- a/mobile/lib/providers/image/immich_remote_thumbnail_provider.dart +++ b/mobile/lib/providers/image/immich_remote_thumbnail_provider.dart @@ -13,8 +13,7 @@ import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/utils/image_url_builder.dart'; /// The remote image provider -class ImmichRemoteThumbnailProvider - extends ImageProvider { +class ImmichRemoteThumbnailProvider extends ImageProvider { /// The [Asset.remoteId] of the asset to fetch final String assetId; diff --git a/mobile/lib/providers/infrastructure/action.provider.dart b/mobile/lib/providers/infrastructure/action.provider.dart index 3102511295..96c0c5eb18 100644 --- a/mobile/lib/providers/infrastructure/action.provider.dart +++ b/mobile/lib/providers/infrastructure/action.provider.dart @@ -26,8 +26,7 @@ class ActionResult { const ActionResult({required this.count, required this.success, this.error}); @override - String toString() => - 'ActionResult(count: $count, success: $success, error: $error)'; + String toString() => 'ActionResult(count: $count, success: $success, error: $error)'; } class ActionNotifier extends Notifier { @@ -44,10 +43,7 @@ class ActionNotifier extends Notifier { } List _getRemoteIdsForSource(ActionSource source) { - return _getAssets(source) - .whereType() - .toIds() - .toList(growable: false); + return _getAssets(source).whereType().toIds().toList(growable: false); } List _getLocalIdsForSource(ActionSource source) { @@ -67,11 +63,7 @@ class ActionNotifier extends Notifier { List _getOwnedRemoteIdsForSource(ActionSource source) { final ownerId = ref.read(currentUserProvider)?.id; - return _getAssets(source) - .whereType() - .ownedAssets(ownerId) - .toIds() - .toList(growable: false); + return _getAssets(source).whereType().ownedAssets(ownerId).toIds().toList(growable: false); } List _getOwnedRemoteAssetsForSource(ActionSource source) { @@ -355,8 +347,7 @@ class ActionNotifier extends Notifier { } Future downloadAll(ActionSource source) async { - final assets = - _getAssets(source).whereType().toList(growable: false); + final assets = _getAssets(source).whereType().toList(growable: false); try { final didEnqueue = await _service.downloadAll(assets); diff --git a/mobile/lib/providers/infrastructure/album.provider.dart b/mobile/lib/providers/infrastructure/album.provider.dart index 4ec3453d16..4baead4b75 100644 --- a/mobile/lib/providers/infrastructure/album.provider.dart +++ b/mobile/lib/providers/infrastructure/album.provider.dart @@ -22,8 +22,7 @@ final localAlbumProvider = FutureProvider>( ); final localAlbumThumbnailProvider = FutureProvider.family( - (ref, albumId) => - LocalAlbumService(ref.watch(localAlbumRepository)).getThumbnail(albumId), + (ref, albumId) => LocalAlbumService(ref.watch(localAlbumRepository)).getThumbnail(albumId), ); final remoteAlbumRepository = Provider( @@ -38,8 +37,7 @@ final remoteAlbumServiceProvider = Provider( dependencies: [remoteAlbumRepository], ); -final remoteAlbumProvider = - NotifierProvider( +final remoteAlbumProvider = NotifierProvider( RemoteAlbumNotifier.new, dependencies: [remoteAlbumServiceProvider], ); diff --git a/mobile/lib/providers/infrastructure/asset_viewer/current_asset.provider.dart b/mobile/lib/providers/infrastructure/asset_viewer/current_asset.provider.dart index 996d5d816f..66de676c08 100644 --- a/mobile/lib/providers/infrastructure/asset_viewer/current_asset.provider.dart +++ b/mobile/lib/providers/infrastructure/asset_viewer/current_asset.provider.dart @@ -4,8 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; -final currentAssetNotifier = - AutoDisposeNotifierProvider( +final currentAssetNotifier = AutoDisposeNotifierProvider( CurrentAssetNotifier.new, ); @@ -20,10 +19,7 @@ class CurrentAssetNotifier extends AutoDisposeNotifier { _keepAliveLink?.close(); _assetSubscription?.cancel(); state = asset; - _assetSubscription = ref - .watch(assetServiceProvider) - .watchAsset(asset) - .listen((updatedAsset) { + _assetSubscription = ref.watch(assetServiceProvider).watchAsset(asset).listen((updatedAsset) { if (updatedAsset != null) { state = updatedAsset; } diff --git a/mobile/lib/providers/infrastructure/current_album.provider.dart b/mobile/lib/providers/infrastructure/current_album.provider.dart index ece188ee15..5d6e0414b0 100644 --- a/mobile/lib/providers/infrastructure/current_album.provider.dart +++ b/mobile/lib/providers/infrastructure/current_album.provider.dart @@ -4,8 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/album/album.model.dart'; import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; -final currentRemoteAlbumProvider = - AutoDisposeNotifierProvider( +final currentRemoteAlbumProvider = AutoDisposeNotifierProvider( CurrentAlbumNotifier.new, ); @@ -21,10 +20,7 @@ class CurrentAlbumNotifier extends AutoDisposeNotifier { _assetSubscription?.cancel(); state = album; - _assetSubscription = ref - .watch(remoteAlbumServiceProvider) - .watchAlbum(album.id) - .listen((updatedAlbum) { + _assetSubscription = ref.watch(remoteAlbumServiceProvider).watchAlbum(album.id).listen((updatedAlbum) { if (updatedAlbum != null) { state = updatedAlbum; } diff --git a/mobile/lib/providers/infrastructure/exif.provider.dart b/mobile/lib/providers/infrastructure/exif.provider.dart index 59ad632927..c126f6cac0 100644 --- a/mobile/lib/providers/infrastructure/exif.provider.dart +++ b/mobile/lib/providers/infrastructure/exif.provider.dart @@ -6,5 +6,4 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'exif.provider.g.dart'; @Riverpod(keepAlive: true) -IsarExifRepository exifRepository(Ref ref) => - IsarExifRepository(ref.watch(isarProvider)); +IsarExifRepository exifRepository(Ref ref) => IsarExifRepository(ref.watch(isarProvider)); diff --git a/mobile/lib/providers/infrastructure/memory.provider.dart b/mobile/lib/providers/infrastructure/memory.provider.dart index 0e58943f55..e5809a12b4 100644 --- a/mobile/lib/providers/infrastructure/memory.provider.dart +++ b/mobile/lib/providers/infrastructure/memory.provider.dart @@ -14,8 +14,7 @@ final driftMemoryServiceProvider = Provider( (ref) => DriftMemoryService(ref.watch(driftMemoryRepositoryProvider)), ); -final driftMemoryFutureProvider = - FutureProvider.autoDispose>((ref) async { +final driftMemoryFutureProvider = FutureProvider.autoDispose>((ref) async { final user = ref.watch(currentUserProvider); if (user == null) { return []; diff --git a/mobile/lib/providers/infrastructure/partner.provider.dart b/mobile/lib/providers/infrastructure/partner.provider.dart index e1c7ebf960..f4ba4cc73a 100644 --- a/mobile/lib/providers/infrastructure/partner.provider.dart +++ b/mobile/lib/providers/infrastructure/partner.provider.dart @@ -59,20 +59,16 @@ class PartnerNotifier extends Notifier> { } } -final driftAvailablePartnerProvider = - FutureProvider.autoDispose>((ref) { +final driftAvailablePartnerProvider = FutureProvider.autoDispose>((ref) { final currentUser = ref.watch(currentUserProvider); if (currentUser == null) { return []; } - return ref - .watch(driftPartnerServiceProvider) - .getAvailablePartners(currentUser.id); + return ref.watch(driftPartnerServiceProvider).getAvailablePartners(currentUser.id); }); -final driftSharedByPartnerProvider = - FutureProvider.autoDispose>((ref) { +final driftSharedByPartnerProvider = FutureProvider.autoDispose>((ref) { final currentUser = ref.watch(currentUserProvider); if (currentUser == null) { return []; @@ -81,8 +77,7 @@ final driftSharedByPartnerProvider = return ref.watch(driftPartnerServiceProvider).getSharedBy(currentUser.id); }); -final driftSharedWithPartnerProvider = - FutureProvider.autoDispose>((ref) { +final driftSharedWithPartnerProvider = FutureProvider.autoDispose>((ref) { final currentUser = ref.watch(currentUserProvider); if (currentUser == null) { return []; diff --git a/mobile/lib/providers/infrastructure/remote_album.provider.dart b/mobile/lib/providers/infrastructure/remote_album.provider.dart index 2ce10d7cbd..c6d9337b53 100644 --- a/mobile/lib/providers/infrastructure/remote_album.provider.dart +++ b/mobile/lib/providers/infrastructure/remote_album.provider.dart @@ -31,16 +31,14 @@ class RemoteAlbumState { } @override - String toString() => - 'RemoteAlbumState(albums: ${albums.length}, filteredAlbums: ${filteredAlbums.length})'; + String toString() => 'RemoteAlbumState(albums: ${albums.length}, filteredAlbums: ${filteredAlbums.length})'; @override bool operator ==(covariant RemoteAlbumState other) { if (identical(this, other)) return true; final listEquals = const DeepCollectionEquality().equals; - return listEquals(other.albums, albums) && - listEquals(other.filteredAlbums, filteredAlbums); + return listEquals(other.albums, albums) && listEquals(other.filteredAlbums, filteredAlbums); } @override @@ -101,8 +99,7 @@ class RemoteAlbumNotifier extends Notifier { RemoteAlbumSortMode sortMode, { bool isReverse = false, }) { - final sortedAlbums = _remoteAlbumService - .sortAlbums(state.filteredAlbums, sortMode, isReverse: isReverse); + final sortedAlbums = _remoteAlbumService.sortAlbums(state.filteredAlbums, sortMode, isReverse: isReverse); state = state.copyWith(filteredAlbums: sortedAlbums); } @@ -169,12 +166,9 @@ class RemoteAlbumNotifier extends Notifier { } Future toggleAlbumOrder(String albumId) async { - final currentAlbum = - state.albums.firstWhere((album) => album.id == albumId); + final currentAlbum = state.albums.firstWhere((album) => album.id == albumId); - final newOrder = currentAlbum.order == AlbumAssetOrder.asc - ? AlbumAssetOrder.desc - : AlbumAssetOrder.asc; + final newOrder = currentAlbum.order == AlbumAssetOrder.asc ? AlbumAssetOrder.desc : AlbumAssetOrder.asc; return updateAlbum(albumId, order: newOrder); } @@ -182,10 +176,8 @@ class RemoteAlbumNotifier extends Notifier { Future deleteAlbum(String albumId) async { await _remoteAlbumService.deleteAlbum(albumId); - final updatedAlbums = - state.albums.where((album) => album.id != albumId).toList(); - final updatedFilteredAlbums = - state.filteredAlbums.where((album) => album.id != albumId).toList(); + final updatedAlbums = state.albums.where((album) => album.id != albumId).toList(); + final updatedFilteredAlbums = state.filteredAlbums.where((album) => album.id != albumId).toList(); state = state.copyWith( albums: updatedAlbums, @@ -212,16 +204,14 @@ class RemoteAlbumNotifier extends Notifier { } } -final remoteAlbumDateRangeProvider = - FutureProvider.family<(DateTime, DateTime), String>( +final remoteAlbumDateRangeProvider = FutureProvider.family<(DateTime, DateTime), String>( (ref, albumId) async { final service = ref.watch(remoteAlbumServiceProvider); return service.getDateRange(albumId); }, ); -final remoteAlbumSharedUsersProvider = - FutureProvider.autoDispose.family, String>( +final remoteAlbumSharedUsersProvider = FutureProvider.autoDispose.family, String>( (ref, albumId) async { final link = ref.keepAlive(); ref.onDispose(() => link.close()); diff --git a/mobile/lib/providers/infrastructure/setting.provider.dart b/mobile/lib/providers/infrastructure/setting.provider.dart index ad0af8282e..7d8be72cd0 100644 --- a/mobile/lib/providers/infrastructure/setting.provider.dart +++ b/mobile/lib/providers/infrastructure/setting.provider.dart @@ -5,8 +5,7 @@ import 'package:immich_mobile/providers/infrastructure/store.provider.dart'; class SettingsNotifier extends Notifier { @override - SettingsService build() => - SettingsService(storeService: ref.read(storeServiceProvider)); + SettingsService build() => SettingsService(storeService: ref.read(storeServiceProvider)); T get(Setting setting) => state.get(setting); @@ -18,5 +17,4 @@ class SettingsNotifier extends Notifier { Stream watch(Setting setting) => state.watch(setting); } -final settingsProvider = - NotifierProvider(SettingsNotifier.new); +final settingsProvider = NotifierProvider(SettingsNotifier.new); diff --git a/mobile/lib/providers/infrastructure/store.provider.dart b/mobile/lib/providers/infrastructure/store.provider.dart index 6ae7ff987b..0bf42f3e8b 100644 --- a/mobile/lib/providers/infrastructure/store.provider.dart +++ b/mobile/lib/providers/infrastructure/store.provider.dart @@ -7,8 +7,7 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'store.provider.g.dart'; @Riverpod(keepAlive: true) -IsarStoreRepository storeRepository(Ref ref) => - IsarStoreRepository(ref.watch(isarProvider)); +IsarStoreRepository storeRepository(Ref ref) => IsarStoreRepository(ref.watch(isarProvider)); @Riverpod(keepAlive: true) StoreService storeService(Ref _) => StoreService.I; diff --git a/mobile/lib/providers/infrastructure/timeline.provider.dart b/mobile/lib/providers/infrastructure/timeline.provider.dart index bbc04349de..1f8c344f31 100644 --- a/mobile/lib/providers/infrastructure/timeline.provider.dart +++ b/mobile/lib/providers/infrastructure/timeline.provider.dart @@ -11,15 +11,13 @@ final timelineRepositoryProvider = Provider( ); final timelineArgsProvider = Provider.autoDispose( - (ref) => - throw UnimplementedError('Will be overridden through a ProviderScope.'), + (ref) => throw UnimplementedError('Will be overridden through a ProviderScope.'), ); final timelineServiceProvider = Provider( (ref) { final timelineUsers = ref.watch(timelineUsersProvider).valueOrNull ?? []; - final timelineService = - ref.watch(timelineFactoryProvider).main(timelineUsers); + final timelineService = ref.watch(timelineFactoryProvider).main(timelineUsers); ref.onDispose(timelineService.dispose); return timelineService; }, @@ -42,8 +40,6 @@ final timelineUsersProvider = StreamProvider>( return Stream.value([]); } - return ref - .watch(timelineRepositoryProvider) - .watchTimelineUserIds(currentUserId); + return ref.watch(timelineRepositoryProvider).watchTimelineUserIds(currentUserId); }, ); diff --git a/mobile/lib/providers/infrastructure/user.provider.dart b/mobile/lib/providers/infrastructure/user.provider.dart index d328f97600..cd62be2bec 100644 --- a/mobile/lib/providers/infrastructure/user.provider.dart +++ b/mobile/lib/providers/infrastructure/user.provider.dart @@ -15,12 +15,10 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'user.provider.g.dart'; @Riverpod(keepAlive: true) -IsarUserRepository userRepository(Ref ref) => - IsarUserRepository(ref.watch(isarProvider)); +IsarUserRepository userRepository(Ref ref) => IsarUserRepository(ref.watch(isarProvider)); @Riverpod(keepAlive: true) -UserApiRepository userApiRepository(Ref ref) => - UserApiRepository(ref.watch(apiServiceProvider).usersApi); +UserApiRepository userApiRepository(Ref ref) => UserApiRepository(ref.watch(apiServiceProvider).usersApi); @Riverpod(keepAlive: true) UserService userService(Ref ref) => UserService( @@ -41,7 +39,6 @@ final driftPartnerServiceProvider = Provider( ), ); -final partnerUsersProvider = - NotifierProvider>( +final partnerUsersProvider = NotifierProvider>( PartnerNotifier.new, ); diff --git a/mobile/lib/providers/local_auth.provider.dart b/mobile/lib/providers/local_auth.provider.dart index 6f7ca5eb71..56a5b2191b 100644 --- a/mobile/lib/providers/local_auth.provider.dart +++ b/mobile/lib/providers/local_auth.provider.dart @@ -9,8 +9,7 @@ import 'package:immich_mobile/services/local_auth.service.dart'; import 'package:immich_mobile/services/secure_storage.service.dart'; import 'package:logging/logging.dart'; -final localAuthProvider = - StateNotifierProvider((ref) { +final localAuthProvider = StateNotifierProvider((ref) { return LocalAuthNotifier( ref.watch(localAuthServiceProvider), ref.watch(secureStorageServiceProvider), @@ -39,8 +38,7 @@ class LocalAuthNotifier extends StateNotifier { } Future registerBiometric(BuildContext context, String pinCode) async { - final isAuthenticated = - await authenticate(context, 'Authenticate to enable biometrics'); + final isAuthenticated = await authenticate(context, 'Authenticate to enable biometrics'); if (!isAuthenticated) { return false; diff --git a/mobile/lib/providers/map/map_marker.provider.dart b/mobile/lib/providers/map/map_marker.provider.dart index a0a11a0637..e107dd3602 100644 --- a/mobile/lib/providers/map/map_marker.provider.dart +++ b/mobile/lib/providers/map/map_marker.provider.dart @@ -16,8 +16,7 @@ Future> mapMarkers(Ref ref) async { bool isWithPartners = mapState.withPartners; if (mapState.relativeTime != 0) { - fileCreatedAfter = - DateTime.now().subtract(Duration(days: mapState.relativeTime)); + fileCreatedAfter = DateTime.now().subtract(Duration(days: mapState.relativeTime)); } if (mapState.showFavoriteOnly) { diff --git a/mobile/lib/providers/map/map_state.provider.dart b/mobile/lib/providers/map/map_state.provider.dart index 189a23cd0a..4337654be0 100644 --- a/mobile/lib/providers/map/map_state.provider.dart +++ b/mobile/lib/providers/map/map_state.provider.dart @@ -13,22 +13,15 @@ class MapStateNotifier extends _$MapStateNotifier { MapState build() { final appSettingsProvider = ref.read(appSettingsServiceProvider); - final lightStyleUrl = - ref.read(serverInfoProvider).serverConfig.mapLightStyleUrl; - final darkStyleUrl = - ref.read(serverInfoProvider).serverConfig.mapDarkStyleUrl; + final lightStyleUrl = ref.read(serverInfoProvider).serverConfig.mapLightStyleUrl; + final darkStyleUrl = ref.read(serverInfoProvider).serverConfig.mapDarkStyleUrl; return MapState( - themeMode: ThemeMode.values[ - appSettingsProvider.getSetting(AppSettingsEnum.mapThemeMode)], - showFavoriteOnly: appSettingsProvider - .getSetting(AppSettingsEnum.mapShowFavoriteOnly), - includeArchived: appSettingsProvider - .getSetting(AppSettingsEnum.mapIncludeArchived), - withPartners: - appSettingsProvider.getSetting(AppSettingsEnum.mapwithPartners), - relativeTime: - appSettingsProvider.getSetting(AppSettingsEnum.mapRelativeDate), + themeMode: ThemeMode.values[appSettingsProvider.getSetting(AppSettingsEnum.mapThemeMode)], + showFavoriteOnly: appSettingsProvider.getSetting(AppSettingsEnum.mapShowFavoriteOnly), + includeArchived: appSettingsProvider.getSetting(AppSettingsEnum.mapIncludeArchived), + withPartners: appSettingsProvider.getSetting(AppSettingsEnum.mapwithPartners), + relativeTime: appSettingsProvider.getSetting(AppSettingsEnum.mapRelativeDate), lightStyleFetched: AsyncData(lightStyleUrl), darkStyleFetched: AsyncData(darkStyleUrl), ); diff --git a/mobile/lib/providers/memory.provider.dart b/mobile/lib/providers/memory.provider.dart index aed546002d..7fef3060cc 100644 --- a/mobile/lib/providers/memory.provider.dart +++ b/mobile/lib/providers/memory.provider.dart @@ -2,8 +2,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/models/memories/memory.model.dart'; import 'package:immich_mobile/services/memory.service.dart'; -final memoryFutureProvider = - FutureProvider.autoDispose?>((ref) async { +final memoryFutureProvider = FutureProvider.autoDispose?>((ref) async { final service = ref.watch(memoryServiceProvider); return await service.getMemoryLane(); diff --git a/mobile/lib/providers/notification_permission.provider.dart b/mobile/lib/providers/notification_permission.provider.dart index 608f35d63f..e293452390 100644 --- a/mobile/lib/providers/notification_permission.provider.dart +++ b/mobile/lib/providers/notification_permission.provider.dart @@ -6,9 +6,7 @@ import 'package:permission_handler/permission_handler.dart'; class NotificationPermissionNotifier extends StateNotifier { NotificationPermissionNotifier() : super( - Platform.isAndroid - ? PermissionStatus.granted - : PermissionStatus.restricted, + Platform.isAndroid ? PermissionStatus.granted : PermissionStatus.restricted, ) { // Sets the initial state getNotificationPermission().then((p) => state = p); @@ -40,7 +38,6 @@ class NotificationPermissionNotifier extends StateNotifier { } } -final notificationPermissionProvider = - StateNotifierProvider( +final notificationPermissionProvider = StateNotifierProvider( (ref) => NotificationPermissionNotifier(), ); diff --git a/mobile/lib/providers/oauth.provider.dart b/mobile/lib/providers/oauth.provider.dart index d8d66122f7..14b3353943 100644 --- a/mobile/lib/providers/oauth.provider.dart +++ b/mobile/lib/providers/oauth.provider.dart @@ -2,5 +2,4 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/services/oauth.service.dart'; import 'package:immich_mobile/providers/api.provider.dart'; -final oAuthServiceProvider = - Provider((ref) => OAuthService(ref.watch(apiServiceProvider))); +final oAuthServiceProvider = Provider((ref) => OAuthService(ref.watch(apiServiceProvider))); diff --git a/mobile/lib/providers/partner.provider.dart b/mobile/lib/providers/partner.provider.dart index f210c7fe3f..37e07958d3 100644 --- a/mobile/lib/providers/partner.provider.dart +++ b/mobile/lib/providers/partner.provider.dart @@ -38,8 +38,7 @@ class PartnerSharedWithNotifier extends StateNotifier> { } } -final partnerSharedWithProvider = - StateNotifierProvider>((ref) { +final partnerSharedWithProvider = StateNotifierProvider>((ref) { return PartnerSharedWithNotifier( ref.watch(partnerServiceProvider), ); @@ -73,13 +72,11 @@ class PartnerSharedByNotifier extends StateNotifier> { } } -final partnerSharedByProvider = - StateNotifierProvider>((ref) { +final partnerSharedByProvider = StateNotifierProvider>((ref) { return PartnerSharedByNotifier(ref.watch(partnerServiceProvider)); }); -final partnerAvailableProvider = - FutureProvider.autoDispose>((ref) async { +final partnerAvailableProvider = FutureProvider.autoDispose>((ref) async { final otherUsers = await ref.watch(otherUsersProvider.future); final currentPartners = ref.watch(partnerSharedByProvider); final available = Set.of(otherUsers); diff --git a/mobile/lib/providers/search/paginated_search.provider.dart b/mobile/lib/providers/search/paginated_search.provider.dart index 65afb39b7c..dbeacb45c6 100644 --- a/mobile/lib/providers/search/paginated_search.provider.dart +++ b/mobile/lib/providers/search/paginated_search.provider.dart @@ -8,16 +8,14 @@ import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'paginated_search.provider.g.dart'; -final paginatedSearchProvider = - StateNotifierProvider( +final paginatedSearchProvider = StateNotifierProvider( (ref) => PaginatedSearchNotifier(ref.watch(searchServiceProvider)), ); class PaginatedSearchNotifier extends StateNotifier { final SearchService _searchService; - PaginatedSearchNotifier(this._searchService) - : super(const SearchResult(assets: [], nextPage: 1)); + PaginatedSearchNotifier(this._searchService) : super(const SearchResult(assets: [], nextPage: 1)); Future search(SearchFilter filter) async { if (state.nextPage == null) { diff --git a/mobile/lib/providers/search/people.provider.dart b/mobile/lib/providers/search/people.provider.dart index f6ac9d1125..f0faabd35a 100644 --- a/mobile/lib/providers/search/people.provider.dart +++ b/mobile/lib/providers/search/people.provider.dart @@ -25,8 +25,7 @@ Future personAssets(Ref ref, String personId) async { final assets = await personService.getPersonAssets(personId); final settings = ref.read(appSettingsServiceProvider); - final groupBy = - GroupAssetsBy.values[settings.getSetting(AppSettingsEnum.groupAssetsBy)]; + final groupBy = GroupAssetsBy.values[settings.getSetting(AppSettingsEnum.groupAssetsBy)]; return await RenderList.fromAssets(assets, groupBy); } diff --git a/mobile/lib/providers/search/search_page_state.provider.dart b/mobile/lib/providers/search/search_page_state.provider.dart index d0e3720c0f..4bbceca383 100644 --- a/mobile/lib/providers/search/search_page_state.provider.dart +++ b/mobile/lib/providers/search/search_page_state.provider.dart @@ -3,8 +3,7 @@ import 'package:immich_mobile/models/search/search_curated_content.model.dart'; import 'package:immich_mobile/services/search.service.dart'; -final getPreviewPlacesProvider = - FutureProvider.autoDispose>((ref) async { +final getPreviewPlacesProvider = FutureProvider.autoDispose>((ref) async { final SearchService searchService = ref.watch(searchServiceProvider); final exploreData = await searchService.getExploreData(); @@ -13,8 +12,7 @@ final getPreviewPlacesProvider = return []; } - final locations = - exploreData.firstWhere((data) => data.fieldName == "exifInfo.city").items; + final locations = exploreData.firstWhere((data) => data.fieldName == "exifInfo.city").items; final curatedContent = locations .map( @@ -28,8 +26,7 @@ final getPreviewPlacesProvider = return curatedContent; }); -final getAllPlacesProvider = - FutureProvider.autoDispose>((ref) async { +final getAllPlacesProvider = FutureProvider.autoDispose>((ref) async { final SearchService searchService = ref.watch(searchServiceProvider); final assetPlaces = await searchService.getAllPlaces(); diff --git a/mobile/lib/providers/secure_storage.provider.dart b/mobile/lib/providers/secure_storage.provider.dart index 0194e527e9..39813d1027 100644 --- a/mobile/lib/providers/secure_storage.provider.dart +++ b/mobile/lib/providers/secure_storage.provider.dart @@ -1,7 +1,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; -final secureStorageProvider = - StateNotifierProvider((ref) { +final secureStorageProvider = StateNotifierProvider((ref) { return SecureStorageProvider(); }); diff --git a/mobile/lib/providers/server_info.provider.dart b/mobile/lib/providers/server_info.provider.dart index aabf6a5390..4a5e65878b 100644 --- a/mobile/lib/providers/server_info.provider.dart +++ b/mobile/lib/providers/server_info.provider.dart @@ -33,8 +33,7 @@ class ServerInfoNotifier extends StateNotifier { trashDays: 30, oauthButtonText: '', externalDomain: '', - mapLightStyleUrl: - 'https://tiles.immich.cloud/v1/style/light.json', + mapLightStyleUrl: 'https://tiles.immich.cloud/v1/style/light.json', mapDarkStyleUrl: 'https://tiles.immich.cloud/v1/style/dark.json', ), serverDiskInfo: ServerDiskInfo( @@ -90,8 +89,7 @@ class ServerInfoNotifier extends StateNotifier { if (appVersion["major"]! > serverVersion.major) { state = state.copyWith( isVersionMismatch: true, - versionMismatchErrorMessage: - "profile_drawer_server_out_of_date_major".tr(), + versionMismatchErrorMessage: "profile_drawer_server_out_of_date_major".tr(), ); return; } @@ -99,8 +97,7 @@ class ServerInfoNotifier extends StateNotifier { if (appVersion["major"]! < serverVersion.major) { state = state.copyWith( isVersionMismatch: true, - versionMismatchErrorMessage: - "profile_drawer_client_out_of_date_major".tr(), + versionMismatchErrorMessage: "profile_drawer_client_out_of_date_major".tr(), ); return; } @@ -108,8 +105,7 @@ class ServerInfoNotifier extends StateNotifier { if (appVersion["minor"]! > serverVersion.minor) { state = state.copyWith( isVersionMismatch: true, - versionMismatchErrorMessage: - "profile_drawer_server_out_of_date_minor".tr(), + versionMismatchErrorMessage: "profile_drawer_server_out_of_date_minor".tr(), ); return; } @@ -117,8 +113,7 @@ class ServerInfoNotifier extends StateNotifier { if (appVersion["minor"]! < serverVersion.minor) { state = state.copyWith( isVersionMismatch: true, - versionMismatchErrorMessage: - "profile_drawer_client_out_of_date_minor".tr(), + versionMismatchErrorMessage: "profile_drawer_client_out_of_date_minor".tr(), ); return; } @@ -179,7 +174,6 @@ class ServerInfoNotifier extends StateNotifier { } } -final serverInfoProvider = - StateNotifierProvider((ref) { +final serverInfoProvider = StateNotifierProvider((ref) { return ServerInfoNotifier(ref.read(serverInfoServiceProvider)); }); diff --git a/mobile/lib/providers/shared_link.provider.dart b/mobile/lib/providers/shared_link.provider.dart index 29b628c765..32dfed51f2 100644 --- a/mobile/lib/providers/shared_link.provider.dart +++ b/mobile/lib/providers/shared_link.provider.dart @@ -20,9 +20,7 @@ class SharedLinksNotifier extends StateNotifier>> { } } -final sharedLinksStateProvider = - StateNotifierProvider>>( - (ref) { +final sharedLinksStateProvider = StateNotifierProvider>>((ref) { return SharedLinksNotifier( ref.watch(sharedLinkServiceProvider), ); diff --git a/mobile/lib/providers/sync_status.provider.dart b/mobile/lib/providers/sync_status.provider.dart index 5640ad6c89..bf535f525d 100644 --- a/mobile/lib/providers/sync_status.provider.dart +++ b/mobile/lib/providers/sync_status.provider.dart @@ -92,8 +92,7 @@ class SyncStatusNotifier extends Notifier { void startRemoteSync() => setRemoteSyncStatus(SyncStatus.syncing); void completeRemoteSync() => setRemoteSyncStatus(SyncStatus.success); - void errorRemoteSync(String error) => - setRemoteSyncStatus(SyncStatus.error, error); + void errorRemoteSync(String error) => setRemoteSyncStatus(SyncStatus.error, error); /// /// Local Sync @@ -108,8 +107,7 @@ class SyncStatusNotifier extends Notifier { void startLocalSync() => setLocalSyncStatus(SyncStatus.syncing); void completeLocalSync() => setLocalSyncStatus(SyncStatus.success); - void errorLocalSync(String error) => - setLocalSyncStatus(SyncStatus.error, error); + void errorLocalSync(String error) => setLocalSyncStatus(SyncStatus.error, error); /// /// Hash Job @@ -127,7 +125,6 @@ class SyncStatusNotifier extends Notifier { void errorHashJob(String error) => setHashJobStatus(SyncStatus.error, error); } -final syncStatusProvider = - NotifierProvider( +final syncStatusProvider = NotifierProvider( SyncStatusNotifier.new, ); diff --git a/mobile/lib/providers/theme.provider.dart b/mobile/lib/providers/theme.provider.dart index 73623bd026..bdf3735f8e 100644 --- a/mobile/lib/providers/theme.provider.dart +++ b/mobile/lib/providers/theme.provider.dart @@ -9,9 +9,7 @@ import 'package:immich_mobile/providers/app_settings.provider.dart'; import 'package:immich_mobile/services/app_settings.service.dart'; final immichThemeModeProvider = StateProvider((ref) { - final themeMode = ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.themeMode); + final themeMode = ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.themeMode); debugPrint("Current themeMode $themeMode"); @@ -26,14 +24,12 @@ final immichThemeModeProvider = StateProvider((ref) { final immichThemePresetProvider = StateProvider((ref) { final appSettingsProvider = ref.watch(appSettingsServiceProvider); - final primaryColorPreset = - appSettingsProvider.getSetting(AppSettingsEnum.primaryColor); + final primaryColorPreset = appSettingsProvider.getSetting(AppSettingsEnum.primaryColor); debugPrint("Current theme preset $primaryColorPreset"); try { - return ImmichColorPreset.values - .firstWhere((e) => e.name == primaryColorPreset); + return ImmichColorPreset.values.firstWhere((e) => e.name == primaryColorPreset); } catch (e) { debugPrint( "Theme preset $primaryColorPreset not found. Applying default preset.", @@ -47,15 +43,11 @@ final immichThemePresetProvider = StateProvider((ref) { }); final dynamicThemeSettingProvider = StateProvider((ref) { - return ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.dynamicTheme); + return ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.dynamicTheme); }); final colorfulInterfaceSettingProvider = StateProvider((ref) { - return ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.colorfulInterface); + return ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.colorfulInterface); }); // Provider for current selected theme @@ -64,11 +56,7 @@ final immichThemeProvider = StateProvider((ref) { final useSystemColor = ref.watch(dynamicThemeSettingProvider); final useColorfulInterface = ref.watch(colorfulInterfaceSettingProvider); final ImmichTheme? dynamicTheme = DynamicTheme.theme; - final currentTheme = (useSystemColor && dynamicTheme != null) - ? dynamicTheme - : primaryColorPreset.themeOfPreset; + final currentTheme = (useSystemColor && dynamicTheme != null) ? dynamicTheme : primaryColorPreset.themeOfPreset; - return useColorfulInterface - ? currentTheme - : decolorizeSurfaces(theme: currentTheme); + return useColorfulInterface ? currentTheme : decolorizeSurfaces(theme: currentTheme); }); diff --git a/mobile/lib/providers/timeline.provider.dart b/mobile/lib/providers/timeline.provider.dart index b2c763cdfa..6faccff030 100644 --- a/mobile/lib/providers/timeline.provider.dart +++ b/mobile/lib/providers/timeline.provider.dart @@ -18,8 +18,7 @@ final singleUserTimelineProvider = StreamProvider.family( dependencies: [localeProvider], ); -final multiUsersTimelineProvider = - StreamProvider.family>( +final multiUsersTimelineProvider = StreamProvider.family>( (ref, userIds) { ref.watch(localeProvider); final timelineService = ref.watch(timelineServiceProvider); @@ -28,8 +27,7 @@ final multiUsersTimelineProvider = dependencies: [localeProvider], ); -final albumTimelineProvider = - StreamProvider.autoDispose.family((ref, id) { +final albumTimelineProvider = StreamProvider.autoDispose.family((ref, id) { final album = ref.watch(albumWatcher(id)).value; final timelineService = ref.watch(timelineServiceProvider); @@ -65,8 +63,7 @@ final assetSelectionTimelineProvider = StreamProvider((ref) { return timelineService.watchAssetSelectionTimeline(); }); -final assetsTimelineProvider = - FutureProvider.family>((ref, assets) { +final assetsTimelineProvider = FutureProvider.family>((ref, assets) { final timelineService = ref.watch(timelineServiceProvider); return timelineService.getTimelineFromAssets( assets, diff --git a/mobile/lib/providers/timeline/multiselect.provider.dart b/mobile/lib/providers/timeline/multiselect.provider.dart index 9e0f690e7d..d980ad22b5 100644 --- a/mobile/lib/providers/timeline/multiselect.provider.dart +++ b/mobile/lib/providers/timeline/multiselect.provider.dart @@ -5,8 +5,7 @@ import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/domain/services/timeline.service.dart'; import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart'; -final multiSelectProvider = - NotifierProvider( +final multiSelectProvider = NotifierProvider( MultiSelectNotifier.new, dependencies: [timelineServiceProvider], ); @@ -26,9 +25,7 @@ class MultiSelectState { /// Cloud only bool get hasRemote => selectedAssets.any( - (asset) => - asset.storage == AssetState.remote || - asset.storage == AssetState.merged, + (asset) => asset.storage == AssetState.remote || asset.storage == AssetState.merged, ); bool get hasLocal => selectedAssets.any( @@ -46,8 +43,7 @@ class MultiSelectState { }) { return MultiSelectState( selectedAssets: selectedAssets ?? this.selectedAssets, - lockedSelectionAssets: - lockedSelectionAssets ?? this.lockedSelectionAssets, + lockedSelectionAssets: lockedSelectionAssets ?? this.lockedSelectionAssets, forceEnable: forceEnable ?? this.forceEnable, ); } @@ -67,10 +63,7 @@ class MultiSelectState { } @override - int get hashCode => - selectedAssets.hashCode ^ - lockedSelectionAssets.hashCode ^ - forceEnable.hashCode; + int get hashCode => selectedAssets.hashCode ^ lockedSelectionAssets.hashCode ^ forceEnable.hashCode; } class MultiSelectNotifier extends Notifier { @@ -155,8 +148,7 @@ class MultiSelectNotifier extends Notifier { if (bucketAssets.isEmpty) return; // Check if all assets in this bucket are currently selected - final allSelected = - bucketAssets.every((asset) => state.selectedAssets.contains(asset)); + final allSelected = bucketAssets.every((asset) => state.selectedAssets.contains(asset)); final selectedAssets = state.selectedAssets.toSet(); @@ -180,8 +172,7 @@ class MultiSelectNotifier extends Notifier { final bucketSelectionProvider = Provider.family>( (ref, bucketAssets) { - final selectedAssets = - ref.watch(multiSelectProvider.select((s) => s.selectedAssets)); + final selectedAssets = ref.watch(multiSelectProvider.select((s) => s.selectedAssets)); if (bucketAssets.isEmpty) return false; diff --git a/mobile/lib/providers/upload_profile_image.provider.dart b/mobile/lib/providers/upload_profile_image.provider.dart index fe13944ef6..0588b31b68 100644 --- a/mobile/lib/providers/upload_profile_image.provider.dart +++ b/mobile/lib/providers/upload_profile_image.provider.dart @@ -50,28 +50,23 @@ class UploadProfileImageState { String toJson() => json.encode(toMap()); - factory UploadProfileImageState.fromJson(String source) => - UploadProfileImageState.fromMap(json.decode(source)); + factory UploadProfileImageState.fromJson(String source) => UploadProfileImageState.fromMap(json.decode(source)); @override - String toString() => - 'UploadProfileImageState(status: $status, profileImagePath: $profileImagePath)'; + String toString() => 'UploadProfileImageState(status: $status, profileImagePath: $profileImagePath)'; @override bool operator ==(Object other) { if (identical(this, other)) return true; - return other is UploadProfileImageState && - other.status == status && - other.profileImagePath == profileImagePath; + return other is UploadProfileImageState && other.status == status && other.profileImagePath == profileImagePath; } @override int get hashCode => status.hashCode ^ profileImagePath.hashCode; } -class UploadProfileImageNotifier - extends StateNotifier { +class UploadProfileImageNotifier extends StateNotifier { UploadProfileImageNotifier(this._userService) : super( const UploadProfileImageState( @@ -104,7 +99,6 @@ class UploadProfileImageNotifier } } -final uploadProfileImageProvider = - StateNotifierProvider( +final uploadProfileImageProvider = StateNotifierProvider( ((ref) => UploadProfileImageNotifier(ref.watch(userServiceProvider))), ); diff --git a/mobile/lib/providers/user.provider.dart b/mobile/lib/providers/user.provider.dart index 1a1c21554c..10dcb2aff5 100644 --- a/mobile/lib/providers/user.provider.dart +++ b/mobile/lib/providers/user.provider.dart @@ -10,8 +10,7 @@ import 'package:immich_mobile/services/timeline.service.dart'; class CurrentUserProvider extends StateNotifier { CurrentUserProvider(this._userService) : super(null) { state = _userService.tryGetMyUser(); - streamSub = - _userService.watchMyUser().listen((user) => state = user ?? state); + streamSub = _userService.watchMyUser().listen((user) => state = user ?? state); } final UserService _userService; @@ -30,8 +29,7 @@ class CurrentUserProvider extends StateNotifier { } } -final currentUserProvider = - StateNotifierProvider((ref) { +final currentUserProvider = StateNotifierProvider((ref) { return CurrentUserProvider(ref.watch(userServiceProvider)); }); @@ -56,7 +54,6 @@ class TimelineUserIdsProvider extends StateNotifier> { } } -final timelineUsersIdsProvider = - StateNotifierProvider>((ref) { +final timelineUsersIdsProvider = StateNotifierProvider>((ref) { return TimelineUserIdsProvider(ref.watch(timelineServiceProvider)); }); diff --git a/mobile/lib/providers/websocket.provider.dart b/mobile/lib/providers/websocket.provider.dart index 2718738286..6c24cc0568 100644 --- a/mobile/lib/providers/websocket.provider.dart +++ b/mobile/lib/providers/websocket.provider.dart @@ -78,16 +78,13 @@ class WebsocketState { } @override - String toString() => - 'WebsocketState(socket: $socket, isConnected: $isConnected)'; + String toString() => 'WebsocketState(socket: $socket, isConnected: $isConnected)'; @override bool operator ==(Object other) { if (identical(this, other)) return true; - return other is WebsocketState && - other.socket == socket && - other.isConnected == isConnected; + return other is WebsocketState && other.socket == socket && other.isConnected == isConnected; } @override @@ -106,8 +103,7 @@ class WebsocketNotifier extends StateNotifier { final _log = Logger('WebsocketNotifier'); final Ref _ref; - final Debouncer _debounce = - Debouncer(interval: const Duration(milliseconds: 500)); + final Debouncer _debounce = Debouncer(interval: const Duration(milliseconds: 500)); final Debouncer _batchDebouncer = Debouncer( interval: const Duration(seconds: 5), @@ -131,8 +127,7 @@ class WebsocketNotifier extends StateNotifier { final endpoint = Uri.parse(Store.get(StoreKey.serverEndpoint)); final headers = ApiService.getRequestHeaders(); if (endpoint.userInfo.isNotEmpty) { - headers["Authorization"] = - "Basic ${base64.encode(utf8.encode(endpoint.userInfo))}"; + headers["Authorization"] = "Basic ${base64.encode(utf8.encode(endpoint.userInfo))}"; } debugPrint("Attempting to connect to websocket"); @@ -262,49 +257,34 @@ class WebsocketNotifier extends StateNotifier { } Future _handlePendingTrashes() async { - final trashChanges = state.pendingChanges - .where((c) => c.action == PendingAction.assetTrash) - .toList(); + final trashChanges = state.pendingChanges.where((c) => c.action == PendingAction.assetTrash).toList(); if (trashChanges.isNotEmpty) { - List remoteIds = trashChanges - .expand((a) => (a.value as List).map((e) => e.toString())) - .toList(); + List remoteIds = trashChanges.expand((a) => (a.value as List).map((e) => e.toString())).toList(); await _ref.read(syncServiceProvider).handleRemoteAssetRemoval(remoteIds); await _ref.read(assetProvider.notifier).getAllAsset(); state = state.copyWith( - pendingChanges: state.pendingChanges - .whereNot((c) => trashChanges.contains(c)) - .toList(), + pendingChanges: state.pendingChanges.whereNot((c) => trashChanges.contains(c)).toList(), ); } } Future _handlePendingDeletes() async { - final deleteChanges = state.pendingChanges - .where((c) => c.action == PendingAction.assetDelete) - .toList(); + final deleteChanges = state.pendingChanges.where((c) => c.action == PendingAction.assetDelete).toList(); if (deleteChanges.isNotEmpty) { - List remoteIds = - deleteChanges.map((a) => a.value.toString()).toList(); + List remoteIds = deleteChanges.map((a) => a.value.toString()).toList(); await _ref.read(syncServiceProvider).handleRemoteAssetRemoval(remoteIds); state = state.copyWith( - pendingChanges: state.pendingChanges - .whereNot((c) => deleteChanges.contains(c)) - .toList(), + pendingChanges: state.pendingChanges.whereNot((c) => deleteChanges.contains(c)).toList(), ); } } Future _handlePendingUploaded() async { - final uploadedChanges = state.pendingChanges - .where((c) => c.action == PendingAction.assetUploaded) - .toList(); + final uploadedChanges = state.pendingChanges.where((c) => c.action == PendingAction.assetUploaded).toList(); if (uploadedChanges.isNotEmpty) { - List remoteAssets = uploadedChanges - .map((a) => AssetResponseDto.fromJson(a.value)) - .toList(); + List remoteAssets = uploadedChanges.map((a) => AssetResponseDto.fromJson(a.value)).toList(); for (final dto in remoteAssets) { if (dto != null) { final newAsset = Asset.remote(dto); @@ -312,27 +292,20 @@ class WebsocketNotifier extends StateNotifier { } } state = state.copyWith( - pendingChanges: state.pendingChanges - .whereNot((c) => uploadedChanges.contains(c)) - .toList(), + pendingChanges: state.pendingChanges.whereNot((c) => uploadedChanges.contains(c)).toList(), ); } } Future _handlingPendingHidden() async { - final hiddenChanges = state.pendingChanges - .where((c) => c.action == PendingAction.assetHidden) - .toList(); + final hiddenChanges = state.pendingChanges.where((c) => c.action == PendingAction.assetHidden).toList(); if (hiddenChanges.isNotEmpty) { - List remoteIds = - hiddenChanges.map((a) => a.value.toString()).toList(); + List remoteIds = hiddenChanges.map((a) => a.value.toString()).toList(); final db = _ref.watch(dbProvider); await db.writeTxn(() => db.assets.deleteAllByRemoteId(remoteIds)); state = state.copyWith( - pendingChanges: state.pendingChanges - .whereNot((c) => hiddenChanges.contains(c)) - .toList(), + pendingChanges: state.pendingChanges.whereNot((c) => hiddenChanges.contains(c)).toList(), ); } } @@ -354,18 +327,15 @@ class WebsocketNotifier extends StateNotifier { _ref.read(assetProvider.notifier).getAllAsset(); } - void _handleOnUploadSuccess(dynamic data) => - addPendingChange(PendingAction.assetUploaded, data); + void _handleOnUploadSuccess(dynamic data) => addPendingChange(PendingAction.assetUploaded, data); - void _handleOnAssetDelete(dynamic data) => - addPendingChange(PendingAction.assetDelete, data); + void _handleOnAssetDelete(dynamic data) => addPendingChange(PendingAction.assetDelete, data); void _handleOnAssetTrash(dynamic data) { addPendingChange(PendingAction.assetTrash, data); } - void _handleOnAssetHidden(dynamic data) => - addPendingChange(PendingAction.assetHidden, data); + void _handleOnAssetHidden(dynamic data) => addPendingChange(PendingAction.assetHidden, data); _handleReleaseUpdates(dynamic data) { // Json guard @@ -374,27 +344,21 @@ class WebsocketNotifier extends StateNotifier { } final json = data.cast(); - final serverVersionJson = - json.containsKey('serverVersion') ? json['serverVersion'] : null; - final releaseVersionJson = - json.containsKey('releaseVersion') ? json['releaseVersion'] : null; + final serverVersionJson = json.containsKey('serverVersion') ? json['serverVersion'] : null; + final releaseVersionJson = json.containsKey('releaseVersion') ? json['releaseVersion'] : null; if (serverVersionJson == null || releaseVersionJson == null) { return; } - final serverVersionDto = - ServerVersionResponseDto.fromJson(serverVersionJson); - final releaseVersionDto = - ServerVersionResponseDto.fromJson(releaseVersionJson); + final serverVersionDto = ServerVersionResponseDto.fromJson(serverVersionJson); + final releaseVersionDto = ServerVersionResponseDto.fromJson(releaseVersionJson); if (serverVersionDto == null || releaseVersionDto == null) { return; } final serverVersion = ServerVersion.fromDto(serverVersionDto); final releaseVersion = ServerVersion.fromDto(releaseVersionDto); - _ref - .read(serverInfoProvider.notifier) - .handleNewRelease(serverVersion, releaseVersion); + _ref.read(serverInfoProvider.notifier).handleNewRelease(serverVersion, releaseVersion); } void _handleSyncAssetUploadReady(dynamic data) { @@ -409,9 +373,7 @@ class WebsocketNotifier extends StateNotifier { try { unawaited( - _ref - .read(backgroundSyncProvider) - .syncWebsocketBatch(_batchedAssetUploadReady.toList()), + _ref.read(backgroundSyncProvider).syncWebsocketBatch(_batchedAssetUploadReady.toList()), ); } catch (error) { _log.severe("Error processing batched AssetUploadReadyV1 events: $error"); @@ -421,7 +383,6 @@ class WebsocketNotifier extends StateNotifier { } } -final websocketProvider = - StateNotifierProvider((ref) { +final websocketProvider = StateNotifierProvider((ref) { return WebsocketNotifier(ref); }); diff --git a/mobile/lib/repositories/activity_api.repository.dart b/mobile/lib/repositories/activity_api.repository.dart index 1ee92b2e2f..36f380cba7 100644 --- a/mobile/lib/repositories/activity_api.repository.dart +++ b/mobile/lib/repositories/activity_api.repository.dart @@ -15,8 +15,7 @@ class ActivityApiRepository extends ApiRepository { ActivityApiRepository(this._api); Future> getAll(String albumId, {String? assetId}) async { - final response = - await checkNull(_api.getActivities(albumId, assetId: assetId)); + final response = await checkNull(_api.getActivities(albumId, assetId: assetId)); return response.map(_toActivity).toList(); } @@ -28,9 +27,7 @@ class ActivityApiRepository extends ApiRepository { }) async { final dto = ActivityCreateDto( albumId: albumId, - type: type == ActivityType.comment - ? ReactionType.comment - : ReactionType.like, + type: type == ActivityType.comment ? ReactionType.comment : ReactionType.like, assetId: assetId, comment: comment, ); @@ -43,17 +40,14 @@ class ActivityApiRepository extends ApiRepository { } Future getStats(String albumId, {String? assetId}) async { - final response = - await checkNull(_api.getActivityStatistics(albumId, assetId: assetId)); + final response = await checkNull(_api.getActivityStatistics(albumId, assetId: assetId)); return ActivityStats(comments: response.comments); } static Activity _toActivity(ActivityResponseDto dto) => Activity( id: dto.id, createdAt: dto.createdAt, - type: dto.type == ReactionType.comment - ? ActivityType.comment - : ActivityType.like, + type: dto.type == ReactionType.comment ? ActivityType.comment : ActivityType.like, user: UserConverter.fromSimpleUserDto(dto.user), assetId: dto.assetId, comment: dto.comment, diff --git a/mobile/lib/repositories/album.repository.dart b/mobile/lib/repositories/album.repository.dart index 1d0349bb2a..c65dce325d 100644 --- a/mobile/lib/repositories/album.repository.dart +++ b/mobile/lib/repositories/album.repository.dart @@ -4,8 +4,7 @@ import 'package:immich_mobile/domain/models/user.model.dart'; import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart'; -import 'package:immich_mobile/infrastructure/entities/user.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/models/albums/album_search.model.dart'; import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/repositories/database.repository.dart'; @@ -14,8 +13,7 @@ import 'package:isar/isar.dart'; enum AlbumSort { remoteId, localId } -final albumRepositoryProvider = - Provider((ref) => AlbumRepository(ref.watch(dbProvider))); +final albumRepositoryProvider = Provider((ref) => AlbumRepository(ref.watch(dbProvider))); class AlbumRepository extends DatabaseRepository { const AlbumRepository(super.db); @@ -75,8 +73,7 @@ class AlbumRepository extends DatabaseRepository { } else { afterWhere = baseQuery.localIdIsNotNull(); } - QueryBuilder filterQuery = - afterWhere.filter().noOp(); + QueryBuilder filterQuery = afterWhere.filter().noOp(); if (shared != null) { filterQuery = filterQuery.sharedEqualTo(true); } @@ -101,34 +98,27 @@ class AlbumRepository extends DatabaseRepository { () => album.sharedUsers.update(unlink: users.map(entity.User.fromDto)), ); - Future addAssets(Album album, List assets) => - txn(() => album.assets.update(link: assets)); + Future addAssets(Album album, List assets) => txn(() => album.assets.update(link: assets)); - Future removeAssets(Album album, List assets) => - txn(() => album.assets.update(unlink: assets)); + Future removeAssets(Album album, List assets) => txn(() => album.assets.update(unlink: assets)); Future recalculateMetadata(Album album) async { album.startDate = await album.assets.filter().fileCreatedAtProperty().min(); album.endDate = await album.assets.filter().fileCreatedAtProperty().max(); - album.lastModifiedAssetTimestamp = - await album.assets.filter().updatedAtProperty().max(); + album.lastModifiedAssetTimestamp = await album.assets.filter().updatedAtProperty().max(); return album; } Future addUsers(Album album, List users) => txn(() => album.sharedUsers.update(link: users.map(entity.User.fromDto))); - Future deleteAllLocal() => - txn(() => db.albums.where().localIdIsNotNull().deleteAll()); + Future deleteAllLocal() => txn(() => db.albums.where().localIdIsNotNull().deleteAll()); Future> search( String searchTerm, QuickFilterMode filterMode, ) async { - var query = db.albums - .filter() - .nameContains(searchTerm, caseSensitive: false) - .remoteIdIsNotNull(); + var query = db.albums.filter().nameContains(searchTerm, caseSensitive: false).remoteIdIsNotNull(); final isarUserId = fastHash(Store.get(StoreKey.currentUser).id); switch (filterMode) { diff --git a/mobile/lib/repositories/album_api.repository.dart b/mobile/lib/repositories/album_api.repository.dart index 20365534c2..b5b7c72883 100644 --- a/mobile/lib/repositories/album_api.repository.dart +++ b/mobile/lib/repositories/album_api.repository.dart @@ -1,11 +1,9 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/constants/enums.dart'; -import 'package:immich_mobile/domain/models/album/album.model.dart' - show AlbumAssetOrder, RemoteAlbum; +import 'package:immich_mobile/domain/models/album/album.model.dart' show AlbumAssetOrder, RemoteAlbum; import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; -import 'package:immich_mobile/infrastructure/entities/user.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/infrastructure/utils/user.converter.dart'; import 'package:immich_mobile/providers/api.provider.dart'; import 'package:immich_mobile/repositories/api.repository.dart'; @@ -150,8 +148,7 @@ class AlbumApiRepository extends ApiRepository { } Future addUsers(String albumId, Iterable userIds) async { - final albumUsers = - userIds.map((userId) => AlbumUserAddDto(userId: userId)).toList(); + final albumUsers = userIds.map((userId) => AlbumUserAddDto(userId: userId)).toList(); final response = await checkNull( _api.addUsersToAlbum( albumId, @@ -180,11 +177,9 @@ class AlbumApiRepository extends ApiRepository { sortOrder: dto.order == AssetOrder.asc ? SortOrder.asc : SortOrder.desc, ); album.remoteAssetCount = dto.assetCount; - album.owner.value = - entity.User.fromDto(UserConverter.fromSimpleUserDto(dto.owner)); + album.owner.value = entity.User.fromDto(UserConverter.fromSimpleUserDto(dto.owner)); album.remoteThumbnailAssetId = dto.albumThumbnailAssetId; - final users = dto.albumUsers - .map((albumUser) => UserConverter.fromSimpleUserDto(albumUser.user)); + final users = dto.albumUsers.map((albumUser) => UserConverter.fromSimpleUserDto(albumUser.user)); album.sharedUsers.addAll(users.map(entity.User.fromDto)); final assets = dto.assets.map(Asset.remote).toList(); album.assets.addAll(assets); @@ -202,9 +197,7 @@ class AlbumApiRepository extends ApiRepository { updatedAt: dto.updatedAt, thumbnailAssetId: dto.albumThumbnailAssetId, isActivityEnabled: dto.isActivityEnabled, - order: dto.order == AssetOrder.asc - ? AlbumAssetOrder.asc - : AlbumAssetOrder.desc, + order: dto.order == AssetOrder.asc ? AlbumAssetOrder.asc : AlbumAssetOrder.desc, assetCount: dto.assetCount, ownerName: dto.owner.name, ); diff --git a/mobile/lib/repositories/album_media.repository.dart b/mobile/lib/repositories/album_media.repository.dart index 94f1d0581e..6e9dda173c 100644 --- a/mobile/lib/repositories/album_media.repository.dart +++ b/mobile/lib/repositories/album_media.repository.dart @@ -7,14 +7,12 @@ import 'package:immich_mobile/infrastructure/entities/user.entity.dart'; import 'package:immich_mobile/repositories/asset_media.repository.dart'; import 'package:photo_manager/photo_manager.dart' hide AssetType; -final albumMediaRepositoryProvider = - Provider((ref) => const AlbumMediaRepository()); +final albumMediaRepositoryProvider = Provider((ref) => const AlbumMediaRepository()); class AlbumMediaRepository { const AlbumMediaRepository(); - bool get useCustomFilter => - Store.get(StoreKey.photoManagerCustomFilter, true); + bool get useCustomFilter => Store.get(StoreKey.photoManagerCustomFilter, true); FilterOptionGroup? _getAlbumFilter({ DateTimeCond? updateTimeCond, @@ -34,8 +32,7 @@ class AlbumMediaRepository { ), containsPathModified: containsPathModified ?? false, createTimeCond: DateTimeCond.def().copyWith(ignore: true), - updateTimeCond: - updateTimeCond ?? DateTimeCond.def().copyWith(ignore: true), + updateTimeCond: updateTimeCond ?? DateTimeCond.def().copyWith(ignore: true), orders: orderBy ?? [], ) : null; @@ -51,16 +48,13 @@ class AlbumMediaRepository { } Future> getAssetIds(String albumId) async { - final album = - await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter()); - final List assets = - await album.getAssetListRange(start: 0, end: 0x7fffffffffffffff); + final album = await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter()); + final List assets = await album.getAssetListRange(start: 0, end: 0x7fffffffffffffff); return assets.map((e) => e.id).toList(); } Future getAssetCount(String albumId) async { - final album = - await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter()); + final album = await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter()); return album.assetCountAsync; } @@ -81,14 +75,11 @@ class AlbumMediaRepository { min: modifiedFrom ?? DateTime.utc(-271820), max: modifiedUntil ?? DateTime.utc(275760), ), - orderBy: orderByModificationDate - ? [const OrderOption(type: OrderOptionType.updateDate)] - : [], + orderBy: orderByModificationDate ? [const OrderOption(type: OrderOptionType.updateDate)] : [], ), ); - final List assets = - await onDevice.getAssetListRange(start: start, end: end); + final List assets = await onDevice.getAssetListRange(start: start, end: end); return assets.map(AssetMediaRepository.toAsset).toList().cast(); } @@ -103,10 +94,8 @@ class AlbumMediaRepository { static Album _toAlbum(AssetPathEntity assetPathEntity) { final Album album = Album( name: assetPathEntity.name, - createdAt: - assetPathEntity.lastModified?.toUtc() ?? DateTime.now().toUtc(), - modifiedAt: - assetPathEntity.lastModified?.toUtc() ?? DateTime.now().toUtc(), + createdAt: assetPathEntity.lastModified?.toUtc() ?? DateTime.now().toUtc(), + modifiedAt: assetPathEntity.lastModified?.toUtc() ?? DateTime.now().toUtc(), shared: false, activityEnabled: false, ); diff --git a/mobile/lib/repositories/asset.repository.dart b/mobile/lib/repositories/asset.repository.dart index 1e3defae08..2b35364596 100644 --- a/mobile/lib/repositories/asset.repository.dart +++ b/mobile/lib/repositories/asset.repository.dart @@ -11,8 +11,7 @@ import 'package:isar/isar.dart'; enum AssetSort { checksum, ownerIdChecksum } -final assetRepositoryProvider = - Provider((ref) => AssetRepository(ref.watch(dbProvider))); +final assetRepositoryProvider = Provider((ref) => AssetRepository(ref.watch(dbProvider))); class AssetRepository extends DatabaseRepository { const AssetRepository(super.db); @@ -29,8 +28,7 @@ class AssetRepository extends DatabaseRepository { if (notOwnedBy.length == 1) { query = query.not().ownerIdEqualTo(isarUserIds.first); } else if (notOwnedBy.isNotEmpty) { - query = - query.not().anyOf(isarUserIds, (q, int id) => q.ownerIdEqualTo(id)); + query = query.not().anyOf(isarUserIds, (q, int id) => q.ownerIdEqualTo(id)); } if (ownerId != null) { query = query.ownerIdEqualTo(fastHash(ownerId)); @@ -44,8 +42,7 @@ class AssetRepository extends DatabaseRepository { }; } - final QueryBuilder sortedQuery = - switch (sortBy) { + final QueryBuilder sortedQuery = switch (sortBy) { null => query.noOp(), AssetSort.checksum => query.sortByChecksum(), AssetSort.ownerIdChecksum => query.sortByOwnerId().thenByChecksum(), @@ -93,31 +90,18 @@ class AssetRepository extends DatabaseRepository { }) { final baseQuery = db.assets.where(); final isarUserIds = fastHash(ownerId); - final QueryBuilder filteredQuery = - switch (state) { + final QueryBuilder filteredQuery = switch (state) { null => baseQuery.ownerIdEqualToAnyChecksum(isarUserIds).noOp(), - AssetState.local => baseQuery - .remoteIdIsNull() - .filter() - .localIdIsNotNull() - .ownerIdEqualTo(isarUserIds), - AssetState.remote => baseQuery - .localIdIsNull() - .filter() - .remoteIdIsNotNull() - .ownerIdEqualTo(isarUserIds), - AssetState.merged => baseQuery - .ownerIdEqualToAnyChecksum(isarUserIds) - .filter() - .remoteIdIsNotNull() - .localIdIsNotNull(), + AssetState.local => baseQuery.remoteIdIsNull().filter().localIdIsNotNull().ownerIdEqualTo(isarUserIds), + AssetState.remote => baseQuery.localIdIsNull().filter().remoteIdIsNotNull().ownerIdEqualTo(isarUserIds), + AssetState.merged => + baseQuery.ownerIdEqualToAnyChecksum(isarUserIds).filter().remoteIdIsNotNull().localIdIsNotNull(), }; final QueryBuilder query = switch (sortBy) { null => filteredQuery.noOp(), AssetSort.checksum => filteredQuery.sortByChecksum(), - AssetSort.ownerIdChecksum => - filteredQuery.sortByOwnerId().thenByChecksum(), + AssetSort.ownerIdChecksum => filteredQuery.sortByOwnerId().thenByChecksum(), }; return limit == null ? query.findAll() : query.limit(limit).findAll(); @@ -135,15 +119,11 @@ class AssetRepository extends DatabaseRepository { int limit = 100, }) { final baseQuery = db.assets.where(); - final QueryBuilder query = - switch (state) { + final QueryBuilder query = switch (state) { null => baseQuery.noOp(), - AssetState.local => - baseQuery.remoteIdIsNull().filter().localIdIsNotNull(), - AssetState.remote => - baseQuery.localIdIsNull().filter().remoteIdIsNotNull(), - AssetState.merged => - baseQuery.localIdIsNotNull().filter().remoteIdIsNotNull(), + AssetState.local => baseQuery.remoteIdIsNull().filter().localIdIsNotNull(), + AssetState.remote => baseQuery.localIdIsNull().filter().remoteIdIsNotNull(), + AssetState.merged => baseQuery.localIdIsNotNull().filter().remoteIdIsNotNull(), }; return _getMatchesImpl(query, fastHash(ownerId), assets, limit); } @@ -154,12 +134,10 @@ class AssetRepository extends DatabaseRepository { } Future upsertDuplicatedAssets(Iterable duplicatedAssets) => txn( - () => db.duplicatedAssets - .putAll(duplicatedAssets.map(DuplicatedAsset.new).toList()), + () => db.duplicatedAssets.putAll(duplicatedAssets.map(DuplicatedAsset.new).toList()), ); - Future> getAllDuplicatedAssetIds() => - db.duplicatedAssets.where().idProperty().findAll(); + Future> getAllDuplicatedAssetIds() => db.duplicatedAssets.where().idProperty().findAll(); Future getByOwnerIdChecksum(int ownerId, String checksum) => db.assets.getByOwnerIdChecksum(ownerId, checksum); @@ -170,8 +148,7 @@ class AssetRepository extends DatabaseRepository { ) => db.assets.getAllByOwnerIdChecksum(ownerIds, checksums); - Future> getAllLocal() => - db.assets.where().localIdIsNotNull().findAll(); + Future> getAllLocal() => db.assets.where().localIdIsNotNull().findAll(); Future deleteAllByRemoteId(List ids, {AssetState? state}) => txn(() => _getAllByRemoteIdImpl(ids, state).deleteAll()); diff --git a/mobile/lib/repositories/asset_api.repository.dart b/mobile/lib/repositories/asset_api.repository.dart index 6d08b4f0d9..b85ebdea6b 100644 --- a/mobile/lib/repositories/asset_api.repository.dart +++ b/mobile/lib/repositories/asset_api.repository.dart @@ -99,8 +99,7 @@ class AssetApiRepository extends ApiRepository { } Future stack(List ids) async { - final responseDto = - await checkNull(_stacksApi.createStack(StackCreateDto(assetIds: ids))); + final responseDto = await checkNull(_stacksApi.createStack(StackCreateDto(assetIds: ids))); return responseDto.toStack(); } diff --git a/mobile/lib/repositories/asset_media.repository.dart b/mobile/lib/repositories/asset_media.repository.dart index 8708ce9cfd..1355890766 100644 --- a/mobile/lib/repositories/asset_media.repository.dart +++ b/mobile/lib/repositories/asset_media.repository.dart @@ -24,8 +24,7 @@ class AssetMediaRepository { const AssetMediaRepository(this._assetApiRepository); - Future> deleteAll(List ids) => - PhotoManager.editor.deleteWithIds(ids); + Future> deleteAll(List ids) => PhotoManager.editor.deleteWithIds(ids); Future get(String id) async { final entity = await AssetEntity.fromId(id); @@ -52,8 +51,7 @@ class AssetMediaRepository { asset.fileCreatedAt = asset.fileModifiedAt; } if (local.latitude != null) { - asset.exifInfo = - ExifInfo(latitude: local.latitude, longitude: local.longitude); + asset.exifInfo = ExifInfo(latitude: local.latitude, longitude: local.longitude); } asset.local = local; return asset; @@ -82,9 +80,7 @@ class AssetMediaRepository { ? asset.localId : null; if (localId != null) { - File? f = - await AssetEntity(id: localId, width: 1, height: 1, typeInt: 0) - .originFile; + File? f = await AssetEntity(id: localId, width: 1, height: 1, typeInt: 0).originFile; downloadedXFiles.add(XFile(f!.path)); } else if (asset is RemoteAsset) { final tempDir = await getTemporaryDirectory(); @@ -119,8 +115,6 @@ class AssetMediaRepository { _log.warning("Failed to delete temporary file: ${file.path}", e); } } - return result.status == ShareResultStatus.success - ? downloadedXFiles.length - : 0; + return result.status == ShareResultStatus.success ? downloadedXFiles.length : 0; } } diff --git a/mobile/lib/repositories/auth.repository.dart b/mobile/lib/repositories/auth.repository.dart index 1c51cedf96..9d7748254d 100644 --- a/mobile/lib/repositories/auth.repository.dart +++ b/mobile/lib/repositories/auth.repository.dart @@ -80,8 +80,7 @@ class AuthRepository extends DatabaseRepository { } final List jsonList = jsonDecode(jsonString); - final endpointList = - jsonList.map((e) => AuxilaryEndpoint.fromJson(e)).toList(); + final endpointList = jsonList.map((e) => AuxilaryEndpoint.fromJson(e)).toList(); return endpointList; } diff --git a/mobile/lib/repositories/auth_api.repository.dart b/mobile/lib/repositories/auth_api.repository.dart index 4b68867506..992be918f9 100644 --- a/mobile/lib/repositories/auth_api.repository.dart +++ b/mobile/lib/repositories/auth_api.repository.dart @@ -5,8 +5,7 @@ import 'package:immich_mobile/repositories/api.repository.dart'; import 'package:immich_mobile/services/api.service.dart'; import 'package:openapi/api.dart'; -final authApiRepositoryProvider = - Provider((ref) => AuthApiRepository(ref.watch(apiServiceProvider))); +final authApiRepositoryProvider = Provider((ref) => AuthApiRepository(ref.watch(apiServiceProvider))); class AuthApiRepository extends ApiRepository { final ApiService _apiService; @@ -35,9 +34,7 @@ class AuthApiRepository extends ApiRepository { } Future logout() async { - await _apiService.authenticationApi - .logout() - .timeout(const Duration(seconds: 7)); + await _apiService.authenticationApi.logout().timeout(const Duration(seconds: 7)); } _mapLoginReponse(LoginResponseDto dto) { @@ -54,8 +51,7 @@ class AuthApiRepository extends ApiRepository { Future unlockPinCode(String pinCode) async { try { - await _apiService.authenticationApi - .unlockAuthSession(SessionUnlockDto(pinCode: pinCode)); + await _apiService.authenticationApi.unlockAuthSession(SessionUnlockDto(pinCode: pinCode)); return true; } catch (_) { return false; @@ -63,8 +59,7 @@ class AuthApiRepository extends ApiRepository { } Future setupPinCode(String pinCode) { - return _apiService.authenticationApi - .setupPinCode(PinCodeSetupDto(pinCode: pinCode)); + return _apiService.authenticationApi.setupPinCode(PinCodeSetupDto(pinCode: pinCode)); } Future lockPinCode() { diff --git a/mobile/lib/repositories/backup.repository.dart b/mobile/lib/repositories/backup.repository.dart index 05d2047add..6cee6a4427 100644 --- a/mobile/lib/repositories/backup.repository.dart +++ b/mobile/lib/repositories/backup.repository.dart @@ -6,16 +6,14 @@ import 'package:isar/isar.dart'; enum BackupAlbumSort { id } -final backupAlbumRepositoryProvider = - Provider((ref) => BackupAlbumRepository(ref.watch(dbProvider))); +final backupAlbumRepositoryProvider = Provider((ref) => BackupAlbumRepository(ref.watch(dbProvider))); class BackupAlbumRepository extends DatabaseRepository { const BackupAlbumRepository(super.db); Future> getAll({BackupAlbumSort? sort}) { final baseQuery = db.backupAlbums.where(); - final QueryBuilder query = - switch (sort) { + final QueryBuilder query = switch (sort) { null => baseQuery.noOp(), BackupAlbumSort.id => baseQuery.sortById(), }; @@ -28,9 +26,7 @@ class BackupAlbumRepository extends DatabaseRepository { Future> getAllBySelection(BackupSelection backup) => db.backupAlbums.filter().selectionEqualTo(backup).findAll(); - Future deleteAll(List ids) => - txn(() => db.backupAlbums.deleteAll(ids)); + Future deleteAll(List ids) => txn(() => db.backupAlbums.deleteAll(ids)); - Future updateAll(List backupAlbums) => - txn(() => db.backupAlbums.putAll(backupAlbums)); + Future updateAll(List backupAlbums) => txn(() => db.backupAlbums.putAll(backupAlbums)); } diff --git a/mobile/lib/repositories/biometric.repository.dart b/mobile/lib/repositories/biometric.repository.dart index 94540c8249..b185501d19 100644 --- a/mobile/lib/repositories/biometric.repository.dart +++ b/mobile/lib/repositories/biometric.repository.dart @@ -3,8 +3,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/models/auth/biometric_status.model.dart'; import 'package:local_auth/local_auth.dart'; -final biometricRepositoryProvider = - Provider((ref) => BiometricRepository(LocalAuthentication())); +final biometricRepositoryProvider = Provider((ref) => BiometricRepository(LocalAuthentication())); class BiometricRepository { final LocalAuthentication _localAuth; @@ -12,10 +11,8 @@ class BiometricRepository { const BiometricRepository(this._localAuth); Future getStatus() async { - final bool canAuthenticateWithBiometrics = - await _localAuth.canCheckBiometrics; - final bool canAuthenticate = - canAuthenticateWithBiometrics || await _localAuth.isDeviceSupported(); + final bool canAuthenticateWithBiometrics = await _localAuth.canCheckBiometrics; + final bool canAuthenticate = canAuthenticateWithBiometrics || await _localAuth.isDeviceSupported(); final availableBiometric = await _localAuth.getAvailableBiometrics(); return BiometricStatus( diff --git a/mobile/lib/repositories/database.repository.dart b/mobile/lib/repositories/database.repository.dart index c644dae668..71c15e1c40 100644 --- a/mobile/lib/repositories/database.repository.dart +++ b/mobile/lib/repositories/database.repository.dart @@ -11,12 +11,10 @@ abstract class DatabaseRepository implements IDatabaseRepository { bool get inTxn => Zone.current[_zoneTxn] != null; - Future txn(Future Function() callback) => - inTxn ? callback() : transaction(callback); + Future txn(Future Function() callback) => inTxn ? callback() : transaction(callback); @override - Future transaction(Future Function() callback) => - db.writeTxn(callback); + Future transaction(Future Function() callback) => db.writeTxn(callback); } extension Asd on QueryBuilder { diff --git a/mobile/lib/repositories/download.repository.dart b/mobile/lib/repositories/download.repository.dart index a1ad4ee3d9..5908e31786 100644 --- a/mobile/lib/repositories/download.repository.dart +++ b/mobile/lib/repositories/download.repository.dart @@ -122,9 +122,7 @@ class DownloadRepository { taskId: livePhotoVideoId, url: url, headers: headers, - filename: asset.name - .toUpperCase() - .replaceAll(RegExp(r"\.(JPG|HEIC)$"), '.MOV'), + filename: asset.name.toUpperCase().replaceAll(RegExp(r"\.(JPG|HEIC)$"), '.MOV'), updates: Updates.statusAndProgress, group: kDownloadGroupLivePhoto, metaData: json.encode(_dummyMetadata), diff --git a/mobile/lib/repositories/drift_album_api_repository.dart b/mobile/lib/repositories/drift_album_api_repository.dart index 26b55fbef6..f56cc9fbed 100644 --- a/mobile/lib/repositories/drift_album_api_repository.dart +++ b/mobile/lib/repositories/drift_album_api_repository.dart @@ -85,8 +85,7 @@ class DriftAlbumApiRepository extends ApiRepository { }) async { AssetOrder? apiOrder; if (order != null) { - apiOrder = - order == AlbumAssetOrder.asc ? AssetOrder.asc : AssetOrder.desc; + apiOrder = order == AlbumAssetOrder.asc ? AssetOrder.asc : AssetOrder.desc; } final responseDto = await checkNull( @@ -113,8 +112,7 @@ class DriftAlbumApiRepository extends ApiRepository { String albumId, Iterable userIds, ) async { - final albumUsers = - userIds.map((userId) => AlbumUserAddDto(userId: userId)).toList(); + final albumUsers = userIds.map((userId) => AlbumUserAddDto(userId: userId)).toList(); final response = await checkNull( _api.addUsersToAlbum( albumId, @@ -136,8 +134,7 @@ extension on AlbumResponseDto { updatedAt: updatedAt, thumbnailAssetId: albumThumbnailAssetId, isActivityEnabled: isActivityEnabled, - order: - order == AssetOrder.asc ? AlbumAssetOrder.asc : AlbumAssetOrder.desc, + order: order == AssetOrder.asc ? AlbumAssetOrder.asc : AlbumAssetOrder.desc, assetCount: assetCount, ownerName: owner.name, ); diff --git a/mobile/lib/repositories/etag.repository.dart b/mobile/lib/repositories/etag.repository.dart index b8382efdfc..768d95b95c 100644 --- a/mobile/lib/repositories/etag.repository.dart +++ b/mobile/lib/repositories/etag.repository.dart @@ -4,8 +4,7 @@ import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/repositories/database.repository.dart'; import 'package:isar/isar.dart'; -final etagRepositoryProvider = - Provider((ref) => ETagRepository(ref.watch(dbProvider))); +final etagRepositoryProvider = Provider((ref) => ETagRepository(ref.watch(dbProvider))); class ETagRepository extends DatabaseRepository { const ETagRepository(super.db); @@ -16,8 +15,7 @@ class ETagRepository extends DatabaseRepository { Future upsertAll(List etags) => txn(() => db.eTags.putAll(etags)); - Future deleteByIds(List ids) => - txn(() => db.eTags.deleteAllById(ids)); + Future deleteByIds(List ids) => txn(() => db.eTags.deleteAllById(ids)); Future getById(String id) => db.eTags.getById(id); diff --git a/mobile/lib/repositories/file_media.repository.dart b/mobile/lib/repositories/file_media.repository.dart index 2bccb05210..86f99e07dd 100644 --- a/mobile/lib/repositories/file_media.repository.dart +++ b/mobile/lib/repositories/file_media.repository.dart @@ -6,8 +6,7 @@ import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/repositories/asset_media.repository.dart'; import 'package:photo_manager/photo_manager.dart' hide AssetType; -final fileMediaRepositoryProvider = - Provider((ref) => const FileMediaRepository()); +final fileMediaRepositoryProvider = Provider((ref) => const FileMediaRepository()); class FileMediaRepository { const FileMediaRepository(); @@ -66,9 +65,7 @@ class FileMediaRepository { Future clearFileCache() => PhotoManager.clearFileCache(); - Future enableBackgroundAccess() => - PhotoManager.setIgnorePermissionCheck(true); + Future enableBackgroundAccess() => PhotoManager.setIgnorePermissionCheck(true); - Future requestExtendedPermissions() => - PhotoManager.requestPermissionExtend(); + Future requestExtendedPermissions() => PhotoManager.requestPermissionExtend(); } diff --git a/mobile/lib/repositories/gcast.repository.dart b/mobile/lib/repositories/gcast.repository.dart index 11c149ab37..f896de2ab0 100644 --- a/mobile/lib/repositories/gcast.repository.dart +++ b/mobile/lib/repositories/gcast.repository.dart @@ -69,7 +69,6 @@ class GCastRepository { } Future> listDestinations() async { - return await CastDiscoveryService() - .search(timeout: const Duration(seconds: 3)); + return await CastDiscoveryService().search(timeout: const Duration(seconds: 3)); } } diff --git a/mobile/lib/repositories/local_files_manager.repository.dart b/mobile/lib/repositories/local_files_manager.repository.dart index 35c59acc2f..519d79b49b 100644 --- a/mobile/lib/repositories/local_files_manager.repository.dart +++ b/mobile/lib/repositories/local_files_manager.repository.dart @@ -2,8 +2,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/services/local_files_manager.service.dart'; final localFilesManagerRepositoryProvider = Provider( - (ref) => - LocalFilesManagerRepository(ref.watch(localFileManagerServiceProvider)), + (ref) => LocalFilesManagerRepository(ref.watch(localFileManagerServiceProvider)), ); class LocalFilesManagerRepository { diff --git a/mobile/lib/repositories/partner.repository.dart b/mobile/lib/repositories/partner.repository.dart index eb41391ba2..23b6fadebb 100644 --- a/mobile/lib/repositories/partner.repository.dart +++ b/mobile/lib/repositories/partner.repository.dart @@ -1,7 +1,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/user.model.dart'; -import 'package:immich_mobile/infrastructure/entities/user.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/repositories/database.repository.dart'; import 'package:isar/isar.dart'; @@ -14,21 +13,11 @@ class PartnerRepository extends DatabaseRepository { const PartnerRepository(super.db); Future> getSharedBy() async { - return (await db.users - .filter() - .isPartnerSharedByEqualTo(true) - .sortById() - .findAll()) - .map((u) => u.toDto()) - .toList(); + return (await db.users.filter().isPartnerSharedByEqualTo(true).sortById().findAll()).map((u) => u.toDto()).toList(); } Future> getSharedWith() async { - return (await db.users - .filter() - .isPartnerSharedWithEqualTo(true) - .sortById() - .findAll()) + return (await db.users.filter().isPartnerSharedWithEqualTo(true).sortById().findAll()) .map((u) => u.toDto()) .toList(); } @@ -39,11 +28,7 @@ class PartnerRepository extends DatabaseRepository { } Stream> watchSharedWith() { - return (db.users - .filter() - .isPartnerSharedWithEqualTo(true) - .sortById() - .watch()) + return (db.users.filter().isPartnerSharedWithEqualTo(true).sortById().watch()) .map((users) => users.map((u) => u.toDto()).toList()); } } diff --git a/mobile/lib/repositories/partner_api.repository.dart b/mobile/lib/repositories/partner_api.repository.dart index 836a708e3a..00de1ea2f1 100644 --- a/mobile/lib/repositories/partner_api.repository.dart +++ b/mobile/lib/repositories/partner_api.repository.dart @@ -24,9 +24,7 @@ class PartnerApiRepository extends ApiRepository { Future> getAll(Direction direction) async { final response = await checkNull( _api.getPartners( - direction == Direction.sharedByMe - ? PartnerDirection.by - : PartnerDirection.with_, + direction == Direction.sharedByMe ? PartnerDirection.by : PartnerDirection.with_, ), ); return response.map(UserConverter.fromPartnerDto).toList(); diff --git a/mobile/lib/repositories/secure_storage.repository.dart b/mobile/lib/repositories/secure_storage.repository.dart index 5660258a2d..9ae643a587 100644 --- a/mobile/lib/repositories/secure_storage.repository.dart +++ b/mobile/lib/repositories/secure_storage.repository.dart @@ -1,8 +1,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -final secureStorageRepositoryProvider = - Provider((ref) => const SecureStorageRepository(FlutterSecureStorage())); +final secureStorageRepositoryProvider = Provider((ref) => const SecureStorageRepository(FlutterSecureStorage())); class SecureStorageRepository { final FlutterSecureStorage _secureStorage; diff --git a/mobile/lib/repositories/timeline.repository.dart b/mobile/lib/repositories/timeline.repository.dart index ea4cb63753..1579300bc6 100644 --- a/mobile/lib/repositories/timeline.repository.dart +++ b/mobile/lib/repositories/timeline.repository.dart @@ -9,30 +9,17 @@ import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart'; import 'package:isar/isar.dart'; -final timelineRepositoryProvider = - Provider((ref) => TimelineRepository(ref.watch(dbProvider))); +final timelineRepositoryProvider = Provider((ref) => TimelineRepository(ref.watch(dbProvider))); class TimelineRepository extends DatabaseRepository { const TimelineRepository(super.db); Future> getTimelineUserIds(String id) { - return db.users - .filter() - .inTimelineEqualTo(true) - .or() - .idEqualTo(id) - .idProperty() - .findAll(); + return db.users.filter().inTimelineEqualTo(true).or().idEqualTo(id).idProperty().findAll(); } Stream> watchTimelineUsers(String id) { - return db.users - .filter() - .inTimelineEqualTo(true) - .or() - .idEqualTo(id) - .idProperty() - .watch(); + return db.users.filter().inTimelineEqualTo(true).or().idEqualTo(id).idProperty().watch(); } Stream watchArchiveTimeline(String userId) { @@ -65,11 +52,7 @@ class TimelineRepository extends DatabaseRepository { Album album, GroupAssetsBy groupAssetByOption, ) { - final query = album.assets - .filter() - .isTrashedEqualTo(false) - .not() - .visibilityEqualTo(AssetVisibilityEnum.locked); + final query = album.assets.filter().isTrashedEqualTo(false).not().visibilityEqualTo(AssetVisibilityEnum.locked); final withSortedOption = switch (album.sortOrder) { SortOrder.asc => query.sortByFileCreatedAt(), @@ -80,11 +63,7 @@ class TimelineRepository extends DatabaseRepository { } Stream watchTrashTimeline(String userId) { - final query = db.assets - .filter() - .ownerIdEqualTo(fastHash(userId)) - .isTrashedEqualTo(true) - .sortByFileCreatedAtDesc(); + final query = db.assets.filter().ownerIdEqualTo(fastHash(userId)).isTrashedEqualTo(true).sortByFileCreatedAtDesc(); return _watchRenderList(query, GroupAssetsBy.none); } diff --git a/mobile/lib/routing/app_navigation_observer.dart b/mobile/lib/routing/app_navigation_observer.dart index 98560018ee..7e5d73cae8 100644 --- a/mobile/lib/routing/app_navigation_observer.dart +++ b/mobile/lib/routing/app_navigation_observer.dart @@ -27,24 +27,19 @@ class AppNavigationObserver extends AutoRouterObserver { _handleLockedViewState(route, previousRoute); _handleDriftLockedFolderState(route, previousRoute); Future( - () => ref.read(currentRouteNameProvider.notifier).state = - route.settings.name, + () => ref.read(currentRouteNameProvider.notifier).state = route.settings.name, ); } _handleLockedViewState(Route route, Route? previousRoute) { final isInLockedView = ref.read(inLockedViewProvider); final isFromLockedViewToDetailView = - route.settings.name == GalleryViewerRoute.name && - previousRoute?.settings.name == LockedRoute.name; + route.settings.name == GalleryViewerRoute.name && previousRoute?.settings.name == LockedRoute.name; - final isFromDetailViewToInfoPanelView = route.settings.name == null && - previousRoute?.settings.name == GalleryViewerRoute.name && - isInLockedView; + final isFromDetailViewToInfoPanelView = + route.settings.name == null && previousRoute?.settings.name == GalleryViewerRoute.name && isInLockedView; - if (route.settings.name == LockedRoute.name || - isFromLockedViewToDetailView || - isFromDetailViewToInfoPanelView) { + if (route.settings.name == LockedRoute.name || isFromLockedViewToDetailView || isFromDetailViewToInfoPanelView) { Future( () => ref.read(inLockedViewProvider.notifier).state = true, ); @@ -58,12 +53,10 @@ class AppNavigationObserver extends AutoRouterObserver { _handleDriftLockedFolderState(Route route, Route? previousRoute) { final isInLockedView = ref.read(inLockedViewProvider); final isFromLockedViewToDetailView = - route.settings.name == AssetViewerRoute.name && - previousRoute?.settings.name == DriftLockedFolderRoute.name; + route.settings.name == AssetViewerRoute.name && previousRoute?.settings.name == DriftLockedFolderRoute.name; - final isFromDetailViewToInfoPanelView = route.settings.name == null && - previousRoute?.settings.name == AssetViewerRoute.name && - isInLockedView; + final isFromDetailViewToInfoPanelView = + route.settings.name == null && previousRoute?.settings.name == AssetViewerRoute.name && isInLockedView; if (route.settings.name == DriftLockedFolderRoute.name || isFromLockedViewToDetailView || diff --git a/mobile/lib/routing/custom_transition_builders.dart b/mobile/lib/routing/custom_transition_builders.dart index 610edd8185..d8412eb7cf 100644 --- a/mobile/lib/routing/custom_transition_builders.dart +++ b/mobile/lib/routing/custom_transition_builders.dart @@ -3,8 +3,7 @@ import 'package:flutter/material.dart'; class CustomTransitionsBuilders { const CustomTransitionsBuilders._(); - static const ZoomPageTransitionsBuilder zoomPageTransitionsBuilder = - ZoomPageTransitionsBuilder(); + static const ZoomPageTransitionsBuilder zoomPageTransitionsBuilder = ZoomPageTransitionsBuilder(); static const RouteTransitionsBuilder zoomedPage = _zoomedPage; @@ -19,8 +18,7 @@ class CustomTransitionsBuilders { PageRouteBuilder( allowSnapshotting: true, fullscreenDialog: false, - pageBuilder: (context, animation, secondaryAnimation) => - const SizedBox.shrink(), + pageBuilder: (context, animation, secondaryAnimation) => const SizedBox.shrink(), ), context, animation, diff --git a/mobile/lib/routing/gallery_guard.dart b/mobile/lib/routing/gallery_guard.dart index fcac142271..eace8257b6 100644 --- a/mobile/lib/routing/gallery_guard.dart +++ b/mobile/lib/routing/gallery_guard.dart @@ -7,8 +7,7 @@ class GalleryGuard extends AutoRouteGuard { @override void onNavigation(NavigationResolver resolver, StackRouter router) async { final newRouteName = resolver.route.name; - final currentTopRouteName = - router.stack.isNotEmpty ? router.stack.last.name : null; + final currentTopRouteName = router.stack.isNotEmpty ? router.stack.last.name : null; if (currentTopRouteName == newRouteName) { // Replace instead of pushing duplicate diff --git a/mobile/lib/routing/router.dart b/mobile/lib/routing/router.dart index 5b3a92d4e2..a72558508c 100644 --- a/mobile/lib/routing/router.dart +++ b/mobile/lib/routing/router.dart @@ -139,8 +139,7 @@ class AppRouter extends RootStackRouter { ) { _authGuard = AuthGuard(apiService); _duplicateGuard = const DuplicateGuard(); - _lockedGuard = - LockedGuard(apiService, secureStorageService, localAuthService); + _lockedGuard = LockedGuard(apiService, secureStorageService, localAuthService); _backupPermissionGuard = BackupPermissionGuard(galleryPermissionNotifier); _galleryGuard = const GalleryGuard(); } diff --git a/mobile/lib/routing/router.gr.dart b/mobile/lib/routing/router.gr.dart index a59b15856f..1ca04c3a78 100644 --- a/mobile/lib/routing/router.gr.dart +++ b/mobile/lib/routing/router.gr.dart @@ -13,8 +13,7 @@ part of 'router.dart'; /// generated route for /// [ActivitiesPage] class ActivitiesRoute extends PageRouteInfo { - const ActivitiesRoute({List? children}) - : super(ActivitiesRoute.name, initialChildren: children); + const ActivitiesRoute({List? children}) : super(ActivitiesRoute.name, initialChildren: children); static const String name = 'ActivitiesRoute'; @@ -28,8 +27,7 @@ class ActivitiesRoute extends PageRouteInfo { /// generated route for /// [AlbumAdditionalSharedUserSelectionPage] -class AlbumAdditionalSharedUserSelectionRoute - extends PageRouteInfo { +class AlbumAdditionalSharedUserSelectionRoute extends PageRouteInfo { AlbumAdditionalSharedUserSelectionRoute({ Key? key, required Album album, @@ -75,8 +73,7 @@ class AlbumAdditionalSharedUserSelectionRouteArgs { /// generated route for /// [AlbumAssetSelectionPage] -class AlbumAssetSelectionRoute - extends PageRouteInfo { +class AlbumAssetSelectionRoute extends PageRouteInfo { AlbumAssetSelectionRoute({ Key? key, required Set existingAssets, @@ -129,8 +126,7 @@ class AlbumAssetSelectionRouteArgs { /// generated route for /// [AlbumOptionsPage] class AlbumOptionsRoute extends PageRouteInfo { - const AlbumOptionsRoute({List? children}) - : super(AlbumOptionsRoute.name, initialChildren: children); + const AlbumOptionsRoute({List? children}) : super(AlbumOptionsRoute.name, initialChildren: children); static const String name = 'AlbumOptionsRoute'; @@ -181,8 +177,7 @@ class AlbumPreviewRouteArgs { /// generated route for /// [AlbumSharedUserSelectionPage] -class AlbumSharedUserSelectionRoute - extends PageRouteInfo { +class AlbumSharedUserSelectionRoute extends PageRouteInfo { AlbumSharedUserSelectionRoute({ Key? key, required Set assets, @@ -257,8 +252,7 @@ class AlbumViewerRouteArgs { /// generated route for /// [AlbumsPage] class AlbumsRoute extends PageRouteInfo { - const AlbumsRoute({List? children}) - : super(AlbumsRoute.name, initialChildren: children); + const AlbumsRoute({List? children}) : super(AlbumsRoute.name, initialChildren: children); static const String name = 'AlbumsRoute'; @@ -289,8 +283,7 @@ class AllMotionPhotosRoute extends PageRouteInfo { /// generated route for /// [AllPeoplePage] class AllPeopleRoute extends PageRouteInfo { - const AllPeopleRoute({List? children}) - : super(AllPeopleRoute.name, initialChildren: children); + const AllPeopleRoute({List? children}) : super(AllPeopleRoute.name, initialChildren: children); static const String name = 'AllPeopleRoute'; @@ -305,8 +298,7 @@ class AllPeopleRoute extends PageRouteInfo { /// generated route for /// [AllPlacesPage] class AllPlacesRoute extends PageRouteInfo { - const AllPlacesRoute({List? children}) - : super(AllPlacesRoute.name, initialChildren: children); + const AllPlacesRoute({List? children}) : super(AllPlacesRoute.name, initialChildren: children); static const String name = 'AllPlacesRoute'; @@ -321,8 +313,7 @@ class AllPlacesRoute extends PageRouteInfo { /// generated route for /// [AllVideosPage] class AllVideosRoute extends PageRouteInfo { - const AllVideosRoute({List? children}) - : super(AllVideosRoute.name, initialChildren: children); + const AllVideosRoute({List? children}) : super(AllVideosRoute.name, initialChildren: children); static const String name = 'AllVideosRoute'; @@ -374,8 +365,7 @@ class AppLogDetailRouteArgs { /// generated route for /// [AppLogPage] class AppLogRoute extends PageRouteInfo { - const AppLogRoute({List? children}) - : super(AppLogRoute.name, initialChildren: children); + const AppLogRoute({List? children}) : super(AppLogRoute.name, initialChildren: children); static const String name = 'AppLogRoute'; @@ -390,8 +380,7 @@ class AppLogRoute extends PageRouteInfo { /// generated route for /// [ArchivePage] class ArchiveRoute extends PageRouteInfo { - const ArchiveRoute({List? children}) - : super(ArchiveRoute.name, initialChildren: children); + const ArchiveRoute({List? children}) : super(ArchiveRoute.name, initialChildren: children); static const String name = 'ArchiveRoute'; @@ -490,8 +479,7 @@ class BackupControllerRoute extends PageRouteInfo { /// generated route for /// [BackupOptionsPage] class BackupOptionsRoute extends PageRouteInfo { - const BackupOptionsRoute({List? children}) - : super(BackupOptionsRoute.name, initialChildren: children); + const BackupOptionsRoute({List? children}) : super(BackupOptionsRoute.name, initialChildren: children); static const String name = 'BackupOptionsRoute'; @@ -664,8 +652,7 @@ class CropImageRouteArgs { /// generated route for /// [DriftAlbumsPage] class DriftAlbumsRoute extends PageRouteInfo { - const DriftAlbumsRoute({List? children}) - : super(DriftAlbumsRoute.name, initialChildren: children); + const DriftAlbumsRoute({List? children}) : super(DriftAlbumsRoute.name, initialChildren: children); static const String name = 'DriftAlbumsRoute'; @@ -680,8 +667,7 @@ class DriftAlbumsRoute extends PageRouteInfo { /// generated route for /// [DriftArchivePage] class DriftArchiveRoute extends PageRouteInfo { - const DriftArchiveRoute({List? children}) - : super(DriftArchiveRoute.name, initialChildren: children); + const DriftArchiveRoute({List? children}) : super(DriftArchiveRoute.name, initialChildren: children); static const String name = 'DriftArchiveRoute'; @@ -695,8 +681,7 @@ class DriftArchiveRoute extends PageRouteInfo { /// generated route for /// [DriftAssetSelectionTimelinePage] -class DriftAssetSelectionTimelineRoute - extends PageRouteInfo { +class DriftAssetSelectionTimelineRoute extends PageRouteInfo { DriftAssetSelectionTimelineRoute({ Key? key, Set lockedSelectionAssets = const {}, @@ -761,8 +746,7 @@ class DriftBackupAlbumSelectionRoute extends PageRouteInfo { /// generated route for /// [DriftBackupPage] class DriftBackupRoute extends PageRouteInfo { - const DriftBackupRoute({List? children}) - : super(DriftBackupRoute.name, initialChildren: children); + const DriftBackupRoute({List? children}) : super(DriftBackupRoute.name, initialChildren: children); static const String name = 'DriftBackupRoute'; @@ -793,8 +777,7 @@ class DriftCreateAlbumRoute extends PageRouteInfo { /// generated route for /// [DriftFavoritePage] class DriftFavoriteRoute extends PageRouteInfo { - const DriftFavoriteRoute({List? children}) - : super(DriftFavoriteRoute.name, initialChildren: children); + const DriftFavoriteRoute({List? children}) : super(DriftFavoriteRoute.name, initialChildren: children); static const String name = 'DriftFavoriteRoute'; @@ -809,8 +792,7 @@ class DriftFavoriteRoute extends PageRouteInfo { /// generated route for /// [DriftLibraryPage] class DriftLibraryRoute extends PageRouteInfo { - const DriftLibraryRoute({List? children}) - : super(DriftLibraryRoute.name, initialChildren: children); + const DriftLibraryRoute({List? children}) : super(DriftLibraryRoute.name, initialChildren: children); static const String name = 'DriftLibraryRoute'; @@ -908,8 +890,7 @@ class DriftMemoryRouteArgs { /// generated route for /// [DriftPartnerDetailPage] -class DriftPartnerDetailRoute - extends PageRouteInfo { +class DriftPartnerDetailRoute extends PageRouteInfo { DriftPartnerDetailRoute({ Key? key, required PartnerUserDto partner, @@ -947,8 +928,7 @@ class DriftPartnerDetailRouteArgs { /// generated route for /// [DriftPartnerPage] class DriftPartnerRoute extends PageRouteInfo { - const DriftPartnerRoute({List? children}) - : super(DriftPartnerRoute.name, initialChildren: children); + const DriftPartnerRoute({List? children}) : super(DriftPartnerRoute.name, initialChildren: children); static const String name = 'DriftPartnerRoute'; @@ -1097,8 +1077,7 @@ class DriftSearchRouteArgs { /// generated route for /// [DriftTrashPage] class DriftTrashRoute extends PageRouteInfo { - const DriftTrashRoute({List? children}) - : super(DriftTrashRoute.name, initialChildren: children); + const DriftTrashRoute({List? children}) : super(DriftTrashRoute.name, initialChildren: children); static const String name = 'DriftTrashRoute'; @@ -1128,8 +1107,7 @@ class DriftUploadDetailRoute extends PageRouteInfo { /// generated route for /// [DriftUserSelectionPage] -class DriftUserSelectionRoute - extends PageRouteInfo { +class DriftUserSelectionRoute extends PageRouteInfo { DriftUserSelectionRoute({ Key? key, required RemoteAlbum album, @@ -1167,8 +1145,7 @@ class DriftUserSelectionRouteArgs { /// generated route for /// [DriftVideoPage] class DriftVideoRoute extends PageRouteInfo { - const DriftVideoRoute({List? children}) - : super(DriftVideoRoute.name, initialChildren: children); + const DriftVideoRoute({List? children}) : super(DriftVideoRoute.name, initialChildren: children); static const String name = 'DriftVideoRoute'; @@ -1257,8 +1234,7 @@ class FailedBackupStatusRoute extends PageRouteInfo { /// generated route for /// [FavoritesPage] class FavoritesRoute extends PageRouteInfo { - const FavoritesRoute({List? children}) - : super(FavoritesRoute.name, initialChildren: children); + const FavoritesRoute({List? children}) : super(FavoritesRoute.name, initialChildren: children); static const String name = 'FavoritesRoute'; @@ -1273,8 +1249,7 @@ class FavoritesRoute extends PageRouteInfo { /// generated route for /// [FeatInDevPage] class FeatInDevRoute extends PageRouteInfo { - const FeatInDevRoute({List? children}) - : super(FeatInDevRoute.name, initialChildren: children); + const FeatInDevRoute({List? children}) : super(FeatInDevRoute.name, initialChildren: children); static const String name = 'FeatInDevRoute'; @@ -1456,8 +1431,7 @@ class HeaderSettingsRoute extends PageRouteInfo { /// generated route for /// [LibraryPage] class LibraryRoute extends PageRouteInfo { - const LibraryRoute({List? children}) - : super(LibraryRoute.name, initialChildren: children); + const LibraryRoute({List? children}) : super(LibraryRoute.name, initialChildren: children); static const String name = 'LibraryRoute'; @@ -1472,8 +1446,7 @@ class LibraryRoute extends PageRouteInfo { /// generated route for /// [LocalAlbumsPage] class LocalAlbumsRoute extends PageRouteInfo { - const LocalAlbumsRoute({List? children}) - : super(LocalAlbumsRoute.name, initialChildren: children); + const LocalAlbumsRoute({List? children}) : super(LocalAlbumsRoute.name, initialChildren: children); static const String name = 'LocalAlbumsRoute'; @@ -1541,8 +1514,7 @@ class LocalTimelineRouteArgs { /// generated route for /// [LockedPage] class LockedRoute extends PageRouteInfo { - const LockedRoute({List? children}) - : super(LockedRoute.name, initialChildren: children); + const LockedRoute({List? children}) : super(LockedRoute.name, initialChildren: children); static const String name = 'LockedRoute'; @@ -1557,8 +1529,7 @@ class LockedRoute extends PageRouteInfo { /// generated route for /// [LoginPage] class LoginRoute extends PageRouteInfo { - const LoginRoute({List? children}) - : super(LoginRoute.name, initialChildren: children); + const LoginRoute({List? children}) : super(LoginRoute.name, initialChildren: children); static const String name = 'LoginRoute'; @@ -1573,8 +1544,7 @@ class LoginRoute extends PageRouteInfo { /// generated route for /// [MainTimelinePage] class MainTimelineRoute extends PageRouteInfo { - const MainTimelineRoute({List? children}) - : super(MainTimelineRoute.name, initialChildren: children); + const MainTimelineRoute({List? children}) : super(MainTimelineRoute.name, initialChildren: children); static const String name = 'MainTimelineRoute'; @@ -1826,8 +1796,7 @@ class PartnerDetailRouteArgs { /// generated route for /// [PartnerPage] class PartnerRoute extends PageRouteInfo { - const PartnerRoute({List? children}) - : super(PartnerRoute.name, initialChildren: children); + const PartnerRoute({List? children}) : super(PartnerRoute.name, initialChildren: children); static const String name = 'PartnerRoute'; @@ -1926,8 +1895,7 @@ class PersonResultRouteArgs { /// generated route for /// [PhotosPage] class PhotosRoute extends PageRouteInfo { - const PhotosRoute({List? children}) - : super(PhotosRoute.name, initialChildren: children); + const PhotosRoute({List? children}) : super(PhotosRoute.name, initialChildren: children); static const String name = 'PhotosRoute'; @@ -2026,8 +1994,7 @@ class PlacesCollectionRouteArgs { /// generated route for /// [RecentlyTakenPage] class RecentlyTakenRoute extends PageRouteInfo { - const RecentlyTakenRoute({List? children}) - : super(RecentlyTakenRoute.name, initialChildren: children); + const RecentlyTakenRoute({List? children}) : super(RecentlyTakenRoute.name, initialChildren: children); static const String name = 'RecentlyTakenRoute'; @@ -2134,8 +2101,7 @@ class SearchRouteArgs { /// generated route for /// [SettingsPage] class SettingsRoute extends PageRouteInfo { - const SettingsRoute({List? children}) - : super(SettingsRoute.name, initialChildren: children); + const SettingsRoute({List? children}) : super(SettingsRoute.name, initialChildren: children); static const String name = 'SettingsRoute'; @@ -2284,8 +2250,7 @@ class SharedLinkEditRouteArgs { /// generated route for /// [SharedLinkPage] class SharedLinkRoute extends PageRouteInfo { - const SharedLinkRoute({List? children}) - : super(SharedLinkRoute.name, initialChildren: children); + const SharedLinkRoute({List? children}) : super(SharedLinkRoute.name, initialChildren: children); static const String name = 'SharedLinkRoute'; @@ -2300,8 +2265,7 @@ class SharedLinkRoute extends PageRouteInfo { /// generated route for /// [SplashScreenPage] class SplashScreenRoute extends PageRouteInfo { - const SplashScreenRoute({List? children}) - : super(SplashScreenRoute.name, initialChildren: children); + const SplashScreenRoute({List? children}) : super(SplashScreenRoute.name, initialChildren: children); static const String name = 'SplashScreenRoute'; @@ -2316,8 +2280,7 @@ class SplashScreenRoute extends PageRouteInfo { /// generated route for /// [TabControllerPage] class TabControllerRoute extends PageRouteInfo { - const TabControllerRoute({List? children}) - : super(TabControllerRoute.name, initialChildren: children); + const TabControllerRoute({List? children}) : super(TabControllerRoute.name, initialChildren: children); static const String name = 'TabControllerRoute'; @@ -2332,8 +2295,7 @@ class TabControllerRoute extends PageRouteInfo { /// generated route for /// [TabShellPage] class TabShellRoute extends PageRouteInfo { - const TabShellRoute({List? children}) - : super(TabShellRoute.name, initialChildren: children); + const TabShellRoute({List? children}) : super(TabShellRoute.name, initialChildren: children); static const String name = 'TabShellRoute'; @@ -2348,8 +2310,7 @@ class TabShellRoute extends PageRouteInfo { /// generated route for /// [TrashPage] class TrashRoute extends PageRouteInfo { - const TrashRoute({List? children}) - : super(TrashRoute.name, initialChildren: children); + const TrashRoute({List? children}) : super(TrashRoute.name, initialChildren: children); static const String name = 'TrashRoute'; diff --git a/mobile/lib/services/action.service.dart b/mobile/lib/services/action.service.dart index 63bc053a41..dde2b1cd54 100644 --- a/mobile/lib/services/action.service.dart +++ b/mobile/lib/services/action.service.dart @@ -192,8 +192,7 @@ class ActionService { final result = await _albumApiRepository.removeAssets(albumId, remoteIds); if (result.removed.isNotEmpty) { - removedCount = - await _remoteAlbumRepository.removeAssets(albumId, result.removed); + removedCount = await _remoteAlbumRepository.removeAssets(albumId, result.removed); } return removedCount; diff --git a/mobile/lib/services/album.service.dart b/mobile/lib/services/album.service.dart index 6733ec41b2..308b9acc44 100644 --- a/mobile/lib/services/album.service.dart +++ b/mobile/lib/services/album.service.dart @@ -11,8 +11,7 @@ import 'package:immich_mobile/domain/services/user.service.dart'; import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; -import 'package:immich_mobile/infrastructure/entities/user.entity.dart' - as entity; +import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/models/albums/album_add_asset_response.model.dart'; import 'package:immich_mobile/models/albums/album_search.model.dart'; import 'package:immich_mobile/providers/infrastructure/user.provider.dart'; @@ -76,12 +75,8 @@ class AlbumService { bool changes = false; try { final (selectedIds, excludedIds, onDevice) = await ( - _backupAlbumRepository - .getIdsBySelection(BackupSelection.select) - .then((value) => value.toSet()), - _backupAlbumRepository - .getIdsBySelection(BackupSelection.exclude) - .then((value) => value.toSet()), + _backupAlbumRepository.getIdsBySelection(BackupSelection.select).then((value) => value.toSet()), + _backupAlbumRepository.getIdsBySelection(BackupSelection.exclude).then((value) => value.toSet()), _albumMediaRepository.getAll() ).wait; _log.info("Found ${onDevice.length} device albums"); @@ -126,8 +121,7 @@ class AlbumService { onDevice.removeWhere((album) => !selectedIds.contains(album.localId)); _log.info("'Recents' is not selected, keeping only selected albums"); } - changes = - await _syncService.syncLocalAlbumAssetsToDb(onDevice, excludedAssets); + changes = await _syncService.syncLocalAlbumAssetsToDb(onDevice, excludedAssets); _log.info("Syncing completed. Changes: $changes"); } finally { _localCompleter.complete(changes); @@ -141,14 +135,10 @@ class AlbumService { Set excludedAlbumIds, ) async { final Set result = HashSet(); - for (final batchAlbums in albums - .where((album) => excludedAlbumIds.contains(album.localId)) - .slices(5)) { + for (final batchAlbums in albums.where((album) => excludedAlbumIds.contains(album.localId)).slices(5)) { await batchAlbums .map( - (album) => _albumMediaRepository - .getAssetIds(album.localId!) - .then((assetIds) => result.addAll(assetIds)), + (album) => _albumMediaRepository.getAssetIds(album.localId!).then((assetIds) => result.addAll(assetIds)), ) .wait; } @@ -244,9 +234,8 @@ class AlbumService { assets.map((asset) => asset.remoteId!), ); - final List addedAssets = result.added - .map((id) => assets.firstWhere((asset) => asset.remoteId == id)) - .toList(); + final List addedAssets = + result.added.map((id) => assets.firstWhere((asset) => asset.remoteId == id)).toList(); await _updateAssets(album.id, add: addedAssets); @@ -296,8 +285,7 @@ class AlbumService { await _albumApiRepository.delete(album.remoteId!); } if (album.shared) { - final foreignAssets = - await _assetRepository.getByAlbum(album, notOwnedBy: [userId]); + final foreignAssets = await _assetRepository.getByAlbum(album, notOwnedBy: [userId]); await _albumRepository.delete(album.id); final List albums = await _albumRepository.getAll(shared: true); @@ -307,8 +295,7 @@ class AlbumService { await _assetRepository.getByAlbum(album, notOwnedBy: [userId]), ); } - final List idsToRemove = - _syncService.sharedAssetsToRemove(foreignAssets, existing); + final List idsToRemove = _syncService.sharedAssetsToRemove(foreignAssets, existing); if (idsToRemove.isNotEmpty) { await _assetRepository.deleteByIds(idsToRemove); } @@ -341,8 +328,7 @@ class AlbumService { album.remoteId!, assets.map((asset) => asset.remoteId!), ); - final toRemove = result.removed - .map((id) => assets.firstWhere((asset) => asset.remoteId == id)); + final toRemove = result.removed.map((id) => assets.firstWhere((asset) => asset.remoteId == id)); await _updateAssets(album.id, remove: toRemove.toList()); return true; } catch (e) { @@ -379,8 +365,7 @@ class AlbumService { List userIds, ) async { try { - final updatedAlbum = - await _albumApiRepository.addUsers(album.remoteId!, userIds); + final updatedAlbum = await _albumApiRepository.addUsers(album.remoteId!, userIds); album.sharedUsers.addAll(updatedAlbum.remoteUsers); album.shared = true; @@ -503,8 +488,7 @@ class AlbumService { Future updateSortOrder(Album album, SortOrder order) async { try { - final updateAlbum = - await _albumApiRepository.update(album.remoteId!, sortOrder: order); + final updateAlbum = await _albumApiRepository.update(album.remoteId!, sortOrder: order); album.sortOrder = updateAlbum.sortOrder; return _albumRepository.update(album); diff --git a/mobile/lib/services/api.service.dart b/mobile/lib/services/api.service.dart index fe007a2aab..b2e73c1b28 100644 --- a/mobile/lib/services/api.service.dart +++ b/mobile/lib/services/api.service.dart @@ -178,13 +178,11 @@ class ApiService implements Authentication { if (Platform.isIOS) { final iosInfo = await deviceInfoPlugin.iosInfo; - authenticationApi.apiClient - .addDefaultHeader('deviceModel', iosInfo.utsname.machine); + authenticationApi.apiClient.addDefaultHeader('deviceModel', iosInfo.utsname.machine); authenticationApi.apiClient.addDefaultHeader('deviceType', 'iOS'); } else if (Platform.isAndroid) { final androidInfo = await deviceInfoPlugin.androidInfo; - authenticationApi.apiClient - .addDefaultHeader('deviceModel', androidInfo.model); + authenticationApi.apiClient.addDefaultHeader('deviceModel', androidInfo.model); authenticationApi.apiClient.addDefaultHeader('deviceType', 'Android'); } else { authenticationApi.apiClient.addDefaultHeader('deviceModel', 'Unknown'); diff --git a/mobile/lib/services/asset.service.dart b/mobile/lib/services/asset.service.dart index cb7f59e3a9..e9318dd0bf 100644 --- a/mobile/lib/services/asset.service.dart +++ b/mobile/lib/services/asset.service.dart @@ -78,11 +78,8 @@ class AssetService { /// required. Returns `true` if there were any changes. Future refreshRemoteAssets() async { final syncedUserIds = await _etagRepository.getAllIds(); - final List syncedUsers = syncedUserIds.isEmpty - ? [] - : (await _isarUserRepository.getByUserIds(syncedUserIds)) - .nonNulls - .toList(); + final List syncedUsers = + syncedUserIds.isEmpty ? [] : (await _isarUserRepository.getByUserIds(syncedUserIds)).nonNulls.toList(); final Stopwatch sw = Stopwatch()..start(); final bool changes = await _syncService.syncRemoteAssetsToDb( users: syncedUsers, @@ -94,8 +91,10 @@ class AssetService { } /// Returns `(null, null)` if changes are invalid -> requires full sync - Future<(List? toUpsert, List? toDelete)> - _getRemoteAssetChanges(List users, DateTime since) async { + Future<(List? toUpsert, List? toDelete)> _getRemoteAssetChanges( + List users, + DateTime since, + ) async { final dto = AssetDeltaSyncDto( updatedAfter: since, userIds: users.map((e) => e.id).toList(), @@ -112,8 +111,7 @@ class AssetService { String remoteId, ) async { try { - final AssetResponseDto? dto = - await _apiService.assetsApi.getAssetInfo(remoteId); + final AssetResponseDto? dto = await _apiService.assetsApi.getAssetInfo(remoteId); return dto?.people; } catch (error, stack) { @@ -142,8 +140,7 @@ class AssetService { userId: user.id, ); log.fine("Requesting $chunkSize assets from $lastId"); - final List? assets = - await _apiService.syncApi.getFullSyncForUser(dto); + final List? assets = await _apiService.syncApi.getFullSyncForUser(dto); if (assets == null) return null; log.fine( "Received ${assets.length} assets from ${assets.firstOrNull?.id} to ${assets.lastOrNull?.id}", @@ -172,8 +169,7 @@ class AssetService { a.exifInfo = newExif; if (newExif != a.exifInfo) { if (a.isInDb) { - await _assetRepository - .transaction(() => _assetRepository.update(a)); + await _assetRepository.transaction(() => _assetRepository.update(a)); } else { debugPrint("[loadExif] parameter Asset is not from DB!"); } @@ -230,16 +226,13 @@ class AssetService { await updateAssets( assets, UpdateAssetDto( - visibility: - isArchived ? AssetVisibility.archive : AssetVisibility.timeline, + visibility: isArchived ? AssetVisibility.archive : AssetVisibility.timeline, ), ); for (var element in assets) { element.isArchived = isArchived; - element.visibility = isArchived - ? AssetVisibilityEnum.archive - : AssetVisibilityEnum.timeline; + element.visibility = isArchived ? AssetVisibilityEnum.archive : AssetVisibilityEnum.timeline; } await _syncService.upsertAssetsWithExif(assets); @@ -263,8 +256,7 @@ class AssetService { for (var element in assets) { element.fileCreatedAt = DateTime.parse(updatedDt); - element.exifInfo = element.exifInfo - ?.copyWith(dateTimeOriginal: DateTime.parse(updatedDt)); + element.exifInfo = element.exifInfo?.copyWith(dateTimeOriginal: DateTime.parse(updatedDt)); } await _syncService.upsertAssetsWithExif(assets); @@ -307,10 +299,8 @@ class AssetService { Future syncUploadedAssetToAlbums() async { try { - final selectedAlbums = - await _backupRepository.getAllBySelection(BackupSelection.select); - final excludedAlbums = - await _backupRepository.getAllBySelection(BackupSelection.exclude); + final selectedAlbums = await _backupRepository.getAllBySelection(BackupSelection.select); + final excludedAlbums = await _backupRepository.getAllBySelection(BackupSelection.exclude); final candidates = await _backupService.buildUploadCandidates( selectedAlbums, @@ -375,8 +365,7 @@ class AssetService { var exifInfo = await _exifInfoRepository.get(localExifId); if (exifInfo != null) { - await _exifInfoRepository - .update(exifInfo.copyWith(description: description)); + await _exifInfoRepository.update(exifInfo.copyWith(description: description)); } } } @@ -429,22 +418,16 @@ class AssetService { // Delete files from local gallery final candidates = assets.where((asset) => asset.isLocal); - final deletedIds = await _assetMediaRepository - .deleteAll(candidates.map((asset) => asset.localId!).toList()); + final deletedIds = await _assetMediaRepository.deleteAll(candidates.map((asset) => asset.localId!).toList()); // Modify local database by removing the reference to the local assets if (deletedIds.isNotEmpty) { // Delete records from local database - final isarIds = assets - .where((asset) => asset.storage == AssetState.local) - .map((asset) => asset.id) - .toList(); + final isarIds = assets.where((asset) => asset.storage == AssetState.local).map((asset) => asset.id).toList(); await _assetRepository.deleteByIds(isarIds); // Modify Merged asset to be remote only - final updatedAssets = assets - .where((asset) => asset.storage == AssetState.merged) - .map((asset) { + final updatedAssets = assets.where((asset) => asset.storage == AssetState.merged).map((asset) { asset.localId = null; return asset; }).toList(); @@ -473,9 +456,7 @@ class AssetService { /// Update asset info bassed on the deletion type. final payload = shouldDeletePermanently - ? assets - .where((asset) => asset.storage == AssetState.merged) - .map((asset) { + ? assets.where((asset) => asset.storage == AssetState.merged).map((asset) { asset.remoteId = null; asset.visibility = AssetVisibilityEnum.timeline; return asset; @@ -489,10 +470,8 @@ class AssetService { await _assetRepository.updateAll(payload.toList()); if (shouldDeletePermanently) { - final remoteAssetIds = assets - .where((asset) => asset.storage == AssetState.remote) - .map((asset) => asset.id) - .toList(); + final remoteAssetIds = + assets.where((asset) => asset.storage == AssetState.remote).map((asset) => asset.id).toList(); await _assetRepository.deleteByIds(remoteAssetIds); } }); diff --git a/mobile/lib/services/background.service.dart b/mobile/lib/services/background.service.dart index 97acf2941f..5302df49ce 100644 --- a/mobile/lib/services/background.service.dart +++ b/mobile/lib/services/background.service.dart @@ -39,10 +39,8 @@ final backgroundServiceProvider = Provider((ref) => BackgroundService()); /// Background backup service class BackgroundService { static const String _portNameLock = "immichLock"; - static const MethodChannel _foregroundChannel = - MethodChannel('immich/foregroundChannel'); - static const MethodChannel _backgroundChannel = - MethodChannel('immich/backgroundChannel'); + static const MethodChannel _foregroundChannel = MethodChannel('immich/foregroundChannel'); + static const MethodChannel _backgroundChannel = MethodChannel('immich/backgroundChannel'); static const notifyInterval = Duration(milliseconds: 400); bool _isBackgroundInitialized = false; CancellationToken? _cancellationToken; @@ -56,8 +54,7 @@ class BackgroundService { int _assetsToUploadCount = 0; String _lastPrintedDetailContent = ""; String? _lastPrintedDetailTitle; - late final ThrottleProgressUpdate _throttledNotifiy = - ThrottleProgressUpdate(_updateProgress, notifyInterval); + late final ThrottleProgressUpdate _throttledNotifiy = ThrottleProgressUpdate(_updateProgress, notifyInterval); late final ThrottleProgressUpdate _throttledDetailNotify = ThrottleProgressUpdate(_updateDetailProgress, notifyInterval); @@ -74,10 +71,8 @@ class BackgroundService { Future enableService({bool immediate = false}) async { try { final callback = PluginUtilities.getCallbackHandle(_nativeEntry)!; - final String title = - "backup_background_service_default_notification".tr(); - final bool ok = await _foregroundChannel - .invokeMethod('enable', [callback.toRawHandle(), title, immediate]); + final String title = "backup_background_service_default_notification".tr(); + final bool ok = await _foregroundChannel.invokeMethod('enable', [callback.toRawHandle(), title, immediate]); return ok; } catch (error) { return false; @@ -133,8 +128,7 @@ class BackgroundService { return true; } try { - return await _foregroundChannel - .invokeMethod('isIgnoringBatteryOptimizations'); + return await _foregroundChannel.invokeMethod('isIgnoringBatteryOptimizations'); } catch (error) { return false; } @@ -183,8 +177,7 @@ class BackgroundService { }) async { try { if (_isBackgroundInitialized && _errorGracePeriodExceeded) { - return await _backgroundChannel - .invokeMethod('showError', [title, content, individualTag]); + return await _backgroundChannel.invokeMethod('showError', [title, content, individualTag]); } } catch (error) { debugPrint("[_showErrorNotification] failed to communicate with plugin"); @@ -240,8 +233,7 @@ class BackgroundService { final bs = tempRp.asBroadcastStream(); while (_wantsLockTime == lockTime) { other.send(tempSp); - final dynamic answer = await bs.first - .timeout(const Duration(seconds: 3), onTimeout: () => null); + final dynamic answer = await bs.first.timeout(const Duration(seconds: 3), onTimeout: () => null); if (_wantsLockTime != lockTime) { break; } @@ -257,8 +249,7 @@ class BackgroundService { } else if (answer == false) { // other isolate is still active } - final dynamic isFinished = await bs.first - .timeout(const Duration(seconds: 3), onTimeout: () => false); + final dynamic isFinished = await bs.first.timeout(const Duration(seconds: 3), onTimeout: () => false); if (isFinished == true) { break; } @@ -358,9 +349,7 @@ class BackgroundService { ); HttpSSLOptions.apply(); - ref - .read(apiServiceProvider) - .setAccessToken(Store.get(StoreKey.accessToken)); + ref.read(apiServiceProvider).setAccessToken(Store.get(StoreKey.accessToken)); await ref.read(authServiceProvider).setOpenApiServiceEndpoint(); if (kDebugMode) { debugPrint( @@ -368,12 +357,8 @@ class BackgroundService { ); } - final selectedAlbums = await ref - .read(backupAlbumRepositoryProvider) - .getAllBySelection(BackupSelection.select); - final excludedAlbums = await ref - .read(backupAlbumRepositoryProvider) - .getAllBySelection(BackupSelection.exclude); + final selectedAlbums = await ref.read(backupAlbumRepositoryProvider).getAllBySelection(BackupSelection.select); + final excludedAlbums = await ref.read(backupAlbumRepositoryProvider).getAllBySelection(BackupSelection.exclude); if (selectedAlbums.isEmpty) { return true; } @@ -392,9 +377,7 @@ class BackgroundService { final backupAlbums = [...selectedAlbums, ...excludedAlbums]; backupAlbums.sortBy((e) => e.id); - final dbAlbums = await ref - .read(backupAlbumRepositoryProvider) - .getAll(sort: BackupAlbumSort.id); + final dbAlbums = await ref.read(backupAlbumRepositoryProvider).getAll(sort: BackupAlbumSort.id); final List toDelete = []; final List toUpsert = []; // stores the most recent `lastBackup` per album but always keeps the `selection` from the most recent DB state @@ -403,9 +386,7 @@ class BackgroundService { backupAlbums, compare: (BackupAlbum a, BackupAlbum b) => a.id.compareTo(b.id), both: (BackupAlbum a, BackupAlbum b) { - a.lastBackup = a.lastBackup.isAfter(b.lastBackup) - ? a.lastBackup - : b.lastBackup; + a.lastBackup = a.lastBackup.isAfter(b.lastBackup) ? a.lastBackup : b.lastBackup; toUpsert.add(a); return true; }, @@ -419,9 +400,7 @@ class BackgroundService { return false; } // Android should check for new assets added while performing backup - } while (Platform.isAndroid && - true == - await _backgroundChannel.invokeMethod("hasContentChanged")); + } while (Platform.isAndroid && true == await _backgroundChannel.invokeMethod("hasContentChanged")); return true; } @@ -432,10 +411,8 @@ class BackgroundService { List excludedAlbums, ) async { _errorGracePeriodExceeded = _isErrorGracePeriodExceeded(settingsService); - final bool notifyTotalProgress = settingsService - .getSetting(AppSettingsEnum.backgroundBackupTotalProgress); - final bool notifySingleProgress = settingsService - .getSetting(AppSettingsEnum.backgroundBackupSingleProgress); + final bool notifyTotalProgress = settingsService.getSetting(AppSettingsEnum.backgroundBackupTotalProgress); + final bool notifySingleProgress = settingsService.getSetting(AppSettingsEnum.backgroundBackupSingleProgress); if (_canceledBySystem) { return false; @@ -489,10 +466,8 @@ class BackgroundService { onSuccess: (result) => _onAssetUploaded( shouldNotify: notifyTotalProgress, ), - onProgress: (bytes, totalBytes) => - _onProgress(bytes, totalBytes, shouldNotify: notifySingleProgress), - onCurrentAsset: (asset) => - _onSetCurrentBackupAsset(asset, shouldNotify: notifySingleProgress), + onProgress: (bytes, totalBytes) => _onProgress(bytes, totalBytes, shouldNotify: notifySingleProgress), + onCurrentAsset: (asset) => _onSetCurrentBackupAsset(asset, shouldNotify: notifySingleProgress), onError: _onBackupError, isBackground: true, ); @@ -527,8 +502,7 @@ class BackgroundService { } void _updateDetailProgress(String? title, int progress, int total) { - final String msg = - total > 0 ? humanReadableBytesProgress(progress, total) : ""; + final String msg = total > 0 ? humanReadableBytesProgress(progress, total) : ""; // only update if message actually differs (to stop many useless notification updates on large assets or slow connections) if (msg != _lastPrintedDetailContent || _lastPrintedDetailTitle != title) { _lastPrintedDetailContent = msg; @@ -557,8 +531,8 @@ class BackgroundService { void _onBackupError(ErrorUploadAsset errorAssetInfo) { _showErrorNotification( - title: "backup_background_service_upload_failure_notification" - .tr(namedArgs: {'filename': errorAssetInfo.fileName}), + title: + "backup_background_service_upload_failure_notification".tr(namedArgs: {'filename': errorAssetInfo.fileName}), individualTag: errorAssetInfo.id, ); } @@ -571,16 +545,14 @@ class BackgroundService { return; } - _throttledDetailNotify.title = - "backup_background_service_current_upload_notification" - .tr(namedArgs: {'filename': currentUploadAsset.fileName}); + _throttledDetailNotify.title = "backup_background_service_current_upload_notification" + .tr(namedArgs: {'filename': currentUploadAsset.fileName}); _throttledDetailNotify.progress = 0; _throttledDetailNotify.total = 0; } bool _isErrorGracePeriodExceeded(AppSettingsService appSettingsService) { - final int value = appSettingsService - .getSetting(AppSettingsEnum.uploadErrorNotificationGracePeriod); + final int value = appSettingsService.getSetting(AppSettingsEnum.uploadErrorNotificationGracePeriod); if (value == 0) { return true; } else if (value == 5) { diff --git a/mobile/lib/services/backup.service.dart b/mobile/lib/services/backup.service.dart index 370b64398d..ea332dd1f9 100644 --- a/mobile/lib/services/backup.service.dart +++ b/mobile/lib/services/backup.service.dart @@ -74,8 +74,7 @@ class BackupService { } } - Future _saveDuplicatedAssetIds(List deviceAssetIds) => - _assetRepository.transaction( + Future _saveDuplicatedAssetIds(List deviceAssetIds) => _assetRepository.transaction( () => _assetRepository.upsertDuplicatedAssets(deviceAssetIds), ); @@ -127,8 +126,7 @@ class BackupService { continue; } - if (useTimeFilter && - localAlbum.modifiedAt.isBefore(backupAlbum.lastBackup)) { + if (useTimeFilter && localAlbum.modifiedAt.isBefore(backupAlbum.lastBackup)) { continue; } final List assets; @@ -189,8 +187,7 @@ class BackupService { final Set existing = {}; try { final String deviceId = Store.get(StoreKey.deviceId); - final CheckExistingAssetsResponseDto? duplicates = - await _apiService.assetsApi.checkExistingAssets( + final CheckExistingAssetsResponseDto? duplicates = await _apiService.assetsApi.checkExistingAssets( CheckExistingAssetsDto( deviceAssetIds: candidates.map((c) => c.asset.localId!).toList(), deviceId: deviceId, @@ -215,8 +212,7 @@ class BackupService { } Future _checkPermissions() async { - if (Platform.isAndroid && - !(await pm.Permission.accessMediaLocation.status).isGranted) { + if (Platform.isAndroid && !(await pm.Permission.accessMediaLocation.status).isGranted) { // double check that permission is granted here, to guard against // uploading corrupt assets without EXIF information _log.warning("Media location permission is not granted. " @@ -255,8 +251,7 @@ class BackupService { required void Function(CurrentUploadAsset asset) onCurrentAsset, required void Function(ErrorUploadAsset error) onError, }) async { - final bool isIgnoreIcloudAssets = - _appSetting.getSetting(AppSettingsEnum.ignoreIcloudAssets); + final bool isIgnoreIcloudAssets = _appSetting.getSetting(AppSettingsEnum.ignoreIcloudAssets); final shouldSyncAlbums = _appSetting.getSetting(AppSettingsEnum.syncAlbums); final String deviceId = Store.get(StoreKey.deviceId); final String savedEndpoint = Store.get(StoreKey.serverEndpoint); @@ -279,8 +274,7 @@ class BackupService { File? livePhotoFile; try { - final isAvailableLocally = - await asset.local!.isLocallyAvailable(isOrigin: true); + final isAvailableLocally = await asset.local!.isLocallyAvailable(isOrigin: true); // Handle getting files from iCloud if (!isAvailableLocally && Platform.isIOS) { @@ -292,17 +286,14 @@ class BackupService { onCurrentAsset( CurrentUploadAsset( id: asset.localId!, - fileCreatedAt: asset.fileCreatedAt.year == 1970 - ? asset.fileModifiedAt - : asset.fileCreatedAt, + fileCreatedAt: asset.fileCreatedAt.year == 1970 ? asset.fileModifiedAt : asset.fileCreatedAt, fileName: asset.fileName, fileType: _getAssetType(asset.type), iCloudAsset: true, ), ); - file = - await asset.local!.loadFile(progressHandler: pmProgressHandler); + file = await asset.local!.loadFile(progressHandler: pmProgressHandler); if (asset.local!.isLivePhoto) { livePhotoFile = await asset.local!.loadFile( withSubtype: true, @@ -310,18 +301,15 @@ class BackupService { ); } } else { - file = - await asset.local!.originFile.timeout(const Duration(seconds: 5)); + file = await asset.local!.originFile.timeout(const Duration(seconds: 5)); if (asset.local!.isLivePhoto) { - livePhotoFile = await asset.local!.originFileWithSubtype - .timeout(const Duration(seconds: 5)); + livePhotoFile = await asset.local!.originFileWithSubtype.timeout(const Duration(seconds: 5)); } } if (file != null) { - String? originalFileName = - await _assetMediaRepository.getOriginalFilename(asset.localId!); + String? originalFileName = await _assetMediaRepository.getOriginalFilename(asset.localId!); originalFileName ??= asset.fileName; if (asset.local!.isLivePhoto) { @@ -349,10 +337,8 @@ class BackupService { baseRequest.headers.addAll(ApiService.getRequestHeaders()); baseRequest.fields['deviceAssetId'] = asset.localId!; baseRequest.fields['deviceId'] = deviceId; - baseRequest.fields['fileCreatedAt'] = - asset.fileCreatedAt.toUtc().toIso8601String(); - baseRequest.fields['fileModifiedAt'] = - asset.fileModifiedAt.toUtc().toIso8601String(); + baseRequest.fields['fileCreatedAt'] = asset.fileCreatedAt.toUtc().toIso8601String(); + baseRequest.fields['fileModifiedAt'] = asset.fileModifiedAt.toUtc().toIso8601String(); baseRequest.fields['isFavorite'] = asset.isFavorite.toString(); baseRequest.fields['duration'] = asset.duration.toString(); baseRequest.files.add(assetRawUploadData); @@ -360,9 +346,7 @@ class BackupService { onCurrentAsset( CurrentUploadAsset( id: asset.localId!, - fileCreatedAt: asset.fileCreatedAt.year == 1970 - ? asset.fileModifiedAt - : asset.fileCreatedAt, + fileCreatedAt: asset.fileCreatedAt.year == 1970 ? asset.fileModifiedAt : asset.fileCreatedAt, fileName: originalFileName, fileType: _getAssetType(asset.type), fileSize: file.lengthSync(), @@ -389,8 +373,7 @@ class BackupService { cancellationToken: cancelToken, ); - final responseBody = - jsonDecode(await response.stream.bytesToString()); + final responseBody = jsonDecode(await response.stream.bytesToString()); if (![200, 201].contains(response.statusCode)) { final error = responseBody; diff --git a/mobile/lib/services/backup_verification.service.dart b/mobile/lib/services/backup_verification.service.dart index 6d6884eb00..2f61a125ea 100644 --- a/mobile/lib/services/backup_verification.service.dart +++ b/mobile/lib/services/backup_verification.service.dart @@ -181,10 +181,8 @@ class BackupVerificationService { // for images: make sure they are pixel-wise identical // (skip first few KBs containing metadata) - final Uint64List localImage = - _fakeDecodeImg(await file.readAsBytes()); - final res = await apiService.assetsApi - .downloadAssetWithHttpInfo(remote.remoteId!); + final Uint64List localImage = _fakeDecodeImg(await file.readAsBytes()); + final res = await apiService.assetsApi.downloadAssetWithHttpInfo(remote.remoteId!); final Uint64List remoteImage = _fakeDecodeImg(res.bodyBytes); final eq = const ListEquality().equals(remoteImage, localImage); @@ -198,9 +196,7 @@ class BackupVerificationService { static Uint64List _fakeDecodeImg(Uint8List bytes) { const headerLength = 131072; // assume header is at most 128 KB - final start = bytes.length < headerLength * 2 - ? (bytes.length ~/ (4 * 8)) * 8 - : headerLength; + final start = bytes.length < headerLength * 2 ? (bytes.length ~/ (4 * 8)) * 8 : headerLength; return bytes.buffer.asUint64List(start); } diff --git a/mobile/lib/services/deep_link.service.dart b/mobile/lib/services/deep_link.service.dart index e97a370967..caa20918c3 100644 --- a/mobile/lib/services/deep_link.service.dart +++ b/mobile/lib/services/deep_link.service.dart @@ -67,8 +67,7 @@ class DeepLinkService { ) async { final path = link.uri.path; - const uuidRegex = - r'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; + const uuidRegex = r'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; final assetRegex = RegExp('/photos/($uuidRegex)'); final albumRegex = RegExp('/albums/($uuidRegex)'); diff --git a/mobile/lib/services/download.service.dart b/mobile/lib/services/download.service.dart index fbd3f406fd..a540ca103f 100644 --- a/mobile/lib/services/download.service.dart +++ b/mobile/lib/services/download.service.dart @@ -35,8 +35,7 @@ class DownloadService { ) { _downloadRepository.onImageDownloadStatus = _onImageDownloadCallback; _downloadRepository.onVideoDownloadStatus = _onVideoDownloadCallback; - _downloadRepository.onLivePhotoDownloadStatus = - _onLivePhotoDownloadCallback; + _downloadRepository.onLivePhotoDownloadStatus = _onLivePhotoDownloadCallback; _downloadRepository.onTaskProgress = _onTaskProgressCallback; } @@ -108,10 +107,8 @@ class DownloadService { return false; } - final imageRecord = - _findTaskRecord(records, livePhotosId, LivePhotosPart.image); - final videoRecord = - _findTaskRecord(records, livePhotosId, LivePhotosPart.video); + final imageRecord = _findTaskRecord(records, livePhotosId, LivePhotosPart.image); + final videoRecord = _findTaskRecord(records, livePhotosId, LivePhotosPart.video); final imageFilePath = await imageRecord.task.filePath(); final videoFilePath = await videoRecord.task.filePath(); @@ -126,8 +123,7 @@ class DownloadService { } on PlatformException catch (error, stack) { // Handle saving MotionPhotos on iOS if (error.code == 'PHPhotosErrorDomain (-1)') { - final result = await _fileMediaRepository - .saveImageWithFile(imageFilePath, title: task.filename); + final result = await _fileMediaRepository.saveImageWithFile(imageFilePath, title: task.filename); return result != null; } _log.severe("Error saving live photo", error, stack); @@ -158,8 +154,7 @@ class DownloadService { } Future> downloadAll(List assets) async { - return await _downloadRepository - .downloadAll(assets.expand(_createDownloadTasks).toList()); + return await _downloadRepository.downloadAll(assets.expand(_createDownloadTasks).toList()); } Future download(Asset asset) async { @@ -181,9 +176,7 @@ class DownloadService { ), _buildDownloadTask( asset.livePhotoVideoId!, - asset.fileName - .toUpperCase() - .replaceAll(RegExp(r"\.(JPG|HEIC)$"), '.MOV'), + asset.fileName.toUpperCase().replaceAll(RegExp(r"\.(JPG|HEIC)$"), '.MOV'), group: kDownloadGroupLivePhoto, metadata: LivePhotosMetadata( part: LivePhotosPart.video, diff --git a/mobile/lib/services/drift_backup.service.dart b/mobile/lib/services/drift_backup.service.dart index ab878969a0..5aba1794f6 100644 --- a/mobile/lib/services/drift_backup.service.dart +++ b/mobile/lib/services/drift_backup.service.dart @@ -144,8 +144,7 @@ class DriftBackupService { } final response = jsonDecode(update.responseBody!); - final localAsset = - await _localAssetRepository.getById(metadata.localAssetId); + final localAsset = await _localAssetRepository.getById(metadata.localAssetId); if (localAsset == null) { return; } @@ -313,6 +312,5 @@ class UploadTaskMetadata { } @override - int get hashCode => - localAssetId.hashCode ^ isLivePhotos.hashCode ^ livePhotoVideoId.hashCode; + int get hashCode => localAssetId.hashCode ^ isLivePhotos.hashCode ^ livePhotoVideoId.hashCode; } diff --git a/mobile/lib/services/entity.service.dart b/mobile/lib/services/entity.service.dart index 8ffead40fa..468cc8f684 100644 --- a/mobile/lib/services/entity.service.dart +++ b/mobile/lib/services/entity.service.dart @@ -20,25 +20,21 @@ class EntityService { final user = await _isarUserRepository.getByUserId(ownerId); album.owner.value = user == null ? null : User.fromDto(user); } - final thumbnailAssetId = - album.remoteThumbnailAssetId ?? album.thumbnail.value?.remoteId; + final thumbnailAssetId = album.remoteThumbnailAssetId ?? album.thumbnail.value?.remoteId; if (thumbnailAssetId != null) { // set thumbnail with asset from database - album.thumbnail.value = - await _assetRepository.getByRemoteId(thumbnailAssetId); + album.thumbnail.value = await _assetRepository.getByRemoteId(thumbnailAssetId); } if (album.remoteUsers.isNotEmpty) { // replace all users with users from database - final users = await _isarUserRepository - .getByUserIds(album.remoteUsers.map((user) => user.id).toList()); + final users = await _isarUserRepository.getByUserIds(album.remoteUsers.map((user) => user.id).toList()); album.sharedUsers.clear(); album.sharedUsers.addAll(users.nonNulls.map(User.fromDto)); album.shared = true; } if (album.remoteAssets.isNotEmpty) { // replace all assets with assets from database - final assets = await _assetRepository - .getAllByRemoteId(album.remoteAssets.map((asset) => asset.remoteId!)); + final assets = await _assetRepository.getAllByRemoteId(album.remoteAssets.map((asset) => asset.remoteId!)); album.assets.clear(); album.assets.addAll(assets); } diff --git a/mobile/lib/services/etag.service.dart b/mobile/lib/services/etag.service.dart index 4b6f2279ed..00eb83fcea 100644 --- a/mobile/lib/services/etag.service.dart +++ b/mobile/lib/services/etag.service.dart @@ -1,8 +1,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/repositories/etag.repository.dart'; -final etagServiceProvider = - Provider((ref) => ETagService(ref.watch(etagRepositoryProvider))); +final etagServiceProvider = Provider((ref) => ETagService(ref.watch(etagRepositoryProvider))); class ETagService { final ETagRepository _eTagRepository; diff --git a/mobile/lib/services/exif.service.dart b/mobile/lib/services/exif.service.dart index 4d21614ec5..57f793b21e 100644 --- a/mobile/lib/services/exif.service.dart +++ b/mobile/lib/services/exif.service.dart @@ -2,8 +2,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/infrastructure/repositories/exif.repository.dart'; import 'package:immich_mobile/providers/infrastructure/exif.provider.dart'; -final exifServiceProvider = - Provider((ref) => ExifService(ref.watch(exifRepositoryProvider))); +final exifServiceProvider = Provider((ref) => ExifService(ref.watch(exifRepositoryProvider))); class ExifService { final IsarExifRepository _exifInfoRepository; diff --git a/mobile/lib/services/folder.service.dart b/mobile/lib/services/folder.service.dart index 5b97b475b2..3f4936bb61 100644 --- a/mobile/lib/services/folder.service.dart +++ b/mobile/lib/services/folder.service.dart @@ -30,15 +30,13 @@ class FolderService { fullPath = '/$fullPath'; } - List segments = fullPath.split('/') - ..removeWhere((s) => s.isEmpty); + List segments = fullPath.split('/')..removeWhere((s) => s.isEmpty); String currentPath = ''; for (int i = 0; i < segments.length; i++) { String parentPath = currentPath.isEmpty ? '_root_' : currentPath; - currentPath = - i == 0 ? '/${segments[i]}' : '$currentPath/${segments[i]}'; + currentPath = i == 0 ? '/${segments[i]}' : '$currentPath/${segments[i]}'; if (!folderMap.containsKey(parentPath)) { folderMap[parentPath] = []; @@ -54,26 +52,20 @@ class FolderService { ); // Sort folders based on order parameter folderMap[parentPath]!.sort( - (a, b) => order == SortOrder.desc - ? b.name.compareTo(a.name) - : a.name.compareTo(b.name), + (a, b) => order == SortOrder.desc ? b.name.compareTo(a.name) : a.name.compareTo(b.name), ); } } } void attachSubfolders(RecursiveFolder folder) { - String fullPath = folder.path.isEmpty - ? '/${folder.name}' - : '${folder.path}/${folder.name}'; + String fullPath = folder.path.isEmpty ? '/${folder.name}' : '${folder.path}/${folder.name}'; if (folderMap.containsKey(fullPath)) { folder.subfolders.addAll(folderMap[fullPath]!); // Sort subfolders based on order parameter folder.subfolders.sort( - (a, b) => order == SortOrder.desc - ? b.name.compareTo(a.name) - : a.name.compareTo(b.name), + (a, b) => order == SortOrder.desc ? b.name.compareTo(a.name) : a.name.compareTo(b.name), ); for (var subfolder in folder.subfolders) { attachSubfolders(subfolder); @@ -84,9 +76,7 @@ class FolderService { List rootSubfolders = folderMap['_root_'] ?? []; // Sort root subfolders based on order parameter rootSubfolders.sort( - (a, b) => order == SortOrder.desc - ? b.name.compareTo(a.name) - : a.name.compareTo(b.name), + (a, b) => order == SortOrder.desc ? b.name.compareTo(a.name) : a.name.compareTo(b.name), ); for (var folder in rootSubfolders) { @@ -105,8 +95,7 @@ class FolderService { ) async { try { if (folder is RecursiveFolder) { - String fullPath = - folder.path.isEmpty ? folder.name : '${folder.path}/${folder.name}'; + String fullPath = folder.path.isEmpty ? folder.name : '${folder.path}/${folder.name}'; fullPath = fullPath[0] == '/' ? fullPath.substring(1) : fullPath; var result = await _folderApiRepository.getAssetsForPath(fullPath); diff --git a/mobile/lib/services/gcast.service.dart b/mobile/lib/services/gcast.service.dart index 6d6646fe50..de9b8bbcb2 100644 --- a/mobile/lib/services/gcast.service.dart +++ b/mobile/lib/services/gcast.service.dart @@ -71,8 +71,7 @@ class GCastService { } void _handleMediaStatus(Map message) { - final statusList = - (message['status'] as List).whereType>().toList(); + final statusList = (message['status'] as List).whereType>().toList(); if (statusList.isEmpty) { return; @@ -112,8 +111,7 @@ class GCastService { } if (status["currentTime"] != null) { - final currentTime = - Duration(milliseconds: (status["currentTime"] * 1000 ?? 0).toInt()); + final currentTime = Duration(milliseconds: (status["currentTime"] * 1000 ?? 0).toInt()); onCurrentTime?.call(currentTime); } } @@ -150,8 +148,7 @@ class GCastService { // we want to make sure we have at least 10 seconds remaining in the session // this is to account for network latency and other delays when sending the request - final bufferedExpiration = - tokenExpiration.subtract(const Duration(seconds: 10)); + final bufferedExpiration = tokenExpiration.subtract(const Duration(seconds: 10)); return bufferedExpiration.isAfter(DateTime.now()); } @@ -181,8 +178,7 @@ class GCastService { type: AssetMediaSize.fullsize, ); - final authenticatedURL = - "$unauthenticatedUrl&sessionKey=${sessionKey?.token}"; + final authenticatedURL = "$unauthenticatedUrl&sessionKey=${sessionKey?.token}"; // get image mime type final mimeType = await _assetApiRepository.getAssetMIMEType(asset.id); @@ -210,8 +206,7 @@ class GCastService { _mediaStatusPollingTimer?.cancel(); if (asset.isVideo) { - _mediaStatusPollingTimer = - Timer.periodic(const Duration(milliseconds: 500), (timer) { + _mediaStatusPollingTimer = Timer.periodic(const Duration(milliseconds: 500), (timer) { if (isConnected) { _gCastRepository.sendMessage(CastSession.kNamespaceMedia, { "type": "GET_STATUS", @@ -264,11 +259,7 @@ class GCastService { return dests .map( - (device) => ( - device.extras["fn"] ?? "Google Cast", - CastDestinationType.googleCast, - device - ), + (device) => (device.extras["fn"] ?? "Google Cast", CastDestinationType.googleCast, device), ) .where((device) { final caString = device.$3.extras["ca"]; diff --git a/mobile/lib/services/local_files_manager.service.dart b/mobile/lib/services/local_files_manager.service.dart index 6ba8b43fbf..ae935a131c 100644 --- a/mobile/lib/services/local_files_manager.service.dart +++ b/mobile/lib/services/local_files_manager.service.dart @@ -13,8 +13,7 @@ class LocalFilesManagerService { Future moveToTrash(List mediaUrls) async { try { - return await _channel - .invokeMethod('moveToTrash', {'mediaUrls': mediaUrls}); + return await _channel.invokeMethod('moveToTrash', {'mediaUrls': mediaUrls}); } catch (e, s) { _logger.warning('Error moving file to trash', e, s); return false; diff --git a/mobile/lib/services/local_notification.service.dart b/mobile/lib/services/local_notification.service.dart index b47ee280b8..d67cc23616 100644 --- a/mobile/lib/services/local_notification.service.dart +++ b/mobile/lib/services/local_notification.service.dart @@ -13,8 +13,7 @@ final localNotificationService = Provider( ); class LocalNotificationService { - final FlutterLocalNotificationsPlugin _localNotificationPlugin = - FlutterLocalNotificationsPlugin(); + final FlutterLocalNotificationsPlugin _localNotificationPlugin = FlutterLocalNotificationsPlugin(); final PermissionStatus _permissionStatus; final Ref ref; @@ -29,17 +28,14 @@ class LocalNotificationService { static const cancelUploadActionID = 'cancel_upload'; Future setup() async { - const androidSetting = - AndroidInitializationSettings('@drawable/notification_icon'); + const androidSetting = AndroidInitializationSettings('@drawable/notification_icon'); const iosSetting = DarwinInitializationSettings(); - const initSettings = - InitializationSettings(android: androidSetting, iOS: iosSetting); + const initSettings = InitializationSettings(android: androidSetting, iOS: iosSetting); await _localNotificationPlugin.initialize( initSettings, - onDidReceiveNotificationResponse: - _onDidReceiveForegroundNotificationResponse, + onDidReceiveNotificationResponse: _onDidReceiveForegroundNotificationResponse, ); } diff --git a/mobile/lib/services/memory.service.dart b/mobile/lib/services/memory.service.dart index a44a5ad1bd..ca877e7c78 100644 --- a/mobile/lib/services/memory.service.dart +++ b/mobile/lib/services/memory.service.dart @@ -35,8 +35,7 @@ class MemoryService { List memories = []; for (final memory in data) { - final dbAssets = await _assetRepository - .getAllByRemoteId(memory.assets.map((e) => e.id)); + final dbAssets = await _assetRepository.getAllByRemoteId(memory.assets.map((e) => e.id)); final yearsAgo = now.year - memory.data.year; if (dbAssets.isNotEmpty) { final String title = 'years_ago'.t( @@ -67,8 +66,7 @@ class MemoryService { if (memoryResponse == null) { return null; } - final dbAssets = await _assetRepository - .getAllByRemoteId(memoryResponse.assets.map((e) => e.id)); + final dbAssets = await _assetRepository.getAllByRemoteId(memoryResponse.assets.map((e) => e.id)); if (dbAssets.isEmpty) { log.warning("No assets found for memory with ID: $id"); return null; diff --git a/mobile/lib/services/partner.service.dart b/mobile/lib/services/partner.service.dart index ec210fd587..7b4f8a09b0 100644 --- a/mobile/lib/services/partner.service.dart +++ b/mobile/lib/services/partner.service.dart @@ -45,8 +45,7 @@ class PartnerService { Future removePartner(UserDto partner) async { try { await _partnerApiRepository.delete(partner.id); - await _isarUserRepository - .update(partner.copyWith(isPartnerSharedBy: false)); + await _isarUserRepository.update(partner.copyWith(isPartnerSharedBy: false)); } catch (e) { _log.warning("Failed to remove partner ${partner.id}", e); return false; @@ -57,8 +56,7 @@ class PartnerService { Future addPartner(UserDto partner) async { try { await _partnerApiRepository.create(partner.id); - await _isarUserRepository - .update(partner.copyWith(isPartnerSharedBy: true)); + await _isarUserRepository.update(partner.copyWith(isPartnerSharedBy: true)); return true; } catch (e) { _log.warning("Failed to add partner ${partner.id}", e); @@ -75,8 +73,7 @@ class PartnerService { partner.id, inTimeline: inTimeline, ); - await _isarUserRepository - .update(partner.copyWith(inTimeline: dto.inTimeline)); + await _isarUserRepository.update(partner.copyWith(inTimeline: dto.inTimeline)); return true; } catch (e) { _log.warning("Failed to update partner ${partner.id}", e); diff --git a/mobile/lib/services/person.service.dart b/mobile/lib/services/person.service.dart index 08b18dfd10..a2f7203d37 100644 --- a/mobile/lib/services/person.service.dart +++ b/mobile/lib/services/person.service.dart @@ -40,8 +40,7 @@ class PersonService { Future> getPersonAssets(String id) async { try { final assets = await _assetApiRepository.search(personIds: [id]); - return await _assetRepository - .getAllByRemoteId(assets.map((a) => a.remoteId!)); + return await _assetRepository.getAllByRemoteId(assets.map((a) => a.remoteId!)); } catch (error, stack) { _log.severe("Error while fetching person assets", error, stack); } diff --git a/mobile/lib/services/search.service.dart b/mobile/lib/services/search.service.dart index aa72a7908b..2aa39fcf80 100644 --- a/mobile/lib/services/search.service.dart +++ b/mobile/lib/services/search.service.dart @@ -61,8 +61,7 @@ class SearchService { } return SearchResult( - assets: await _assetRepository - .getAllByRemoteId(response.assets.items.map((e) => e.id)), + assets: await _assetRepository.getAllByRemoteId(response.assets.items.map((e) => e.id)), nextPage: response.assets.nextPage?.toInt(), ); } catch (error, stackTrace) { diff --git a/mobile/lib/services/share.service.dart b/mobile/lib/services/share.service.dart index 77afa10fb6..fec8b76af0 100644 --- a/mobile/lib/services/share.service.dart +++ b/mobile/lib/services/share.service.dart @@ -10,8 +10,7 @@ import 'package:path_provider/path_provider.dart'; import 'package:share_plus/share_plus.dart'; import 'api.service.dart'; -final shareServiceProvider = - Provider((ref) => ShareService(ref.watch(apiServiceProvider))); +final shareServiceProvider = Provider((ref) => ShareService(ref.watch(apiServiceProvider))); class ShareService { final ApiService _apiService; @@ -37,8 +36,7 @@ class ShareService { final tempDir = await getTemporaryDirectory(); final fileName = asset.fileName; final tempFile = await File('${tempDir.path}/$fileName').create(); - final res = await _apiService.assetsApi - .downloadAssetWithHttpInfo(asset.remoteId!); + final res = await _apiService.assetsApi.downloadAssetWithHttpInfo(asset.remoteId!); if (res.statusCode != 200) { _log.severe( diff --git a/mobile/lib/services/shared_link.service.dart b/mobile/lib/services/shared_link.service.dart index a2b5ed9062..44923b39d7 100644 --- a/mobile/lib/services/shared_link.service.dart +++ b/mobile/lib/services/shared_link.service.dart @@ -18,9 +18,7 @@ class SharedLinkService { Future>> getAllSharedLinks() async { try { final list = await _apiService.sharedLinksApi.getAllSharedLinks(); - return list != null - ? AsyncData(list.map(SharedLink.fromDto).toList()) - : const AsyncData([]); + return list != null ? AsyncData(list.map(SharedLink.fromDto).toList()) : const AsyncData([]); } catch (e, stack) { _log.severe("Failed to fetch shared links", e, stack); return AsyncError(e, stack); @@ -46,8 +44,7 @@ class SharedLinkService { DateTime? expiresAt, }) async { try { - final type = - albumId != null ? SharedLinkType.ALBUM : SharedLinkType.INDIVIDUAL; + final type = albumId != null ? SharedLinkType.ALBUM : SharedLinkType.INDIVIDUAL; SharedLinkCreateDto? dto; if (type == SharedLinkType.ALBUM) { dto = SharedLinkCreateDto( @@ -74,8 +71,7 @@ class SharedLinkService { } if (dto != null) { - final responseDto = - await _apiService.sharedLinksApi.createSharedLink(dto); + final responseDto = await _apiService.sharedLinksApi.createSharedLink(dto); if (responseDto != null) { return SharedLink.fromDto(responseDto); } diff --git a/mobile/lib/services/stack.service.dart b/mobile/lib/services/stack.service.dart index e2ab6c804b..d46c0c0b99 100644 --- a/mobile/lib/services/stack.service.dart +++ b/mobile/lib/services/stack.service.dart @@ -60,8 +60,7 @@ class StackService { removeAssets.add(asset); } - await _assetRepository - .transaction(() => _assetRepository.updateAll(removeAssets)); + await _assetRepository.transaction(() => _assetRepository.updateAll(removeAssets)); } catch (error) { debugPrint("Error while deleting stack: $error"); } diff --git a/mobile/lib/services/sync.service.dart b/mobile/lib/services/sync.service.dart index 5a95be2237..723dc9c34b 100644 --- a/mobile/lib/services/sync.service.dart +++ b/mobile/lib/services/sync.service.dart @@ -94,8 +94,7 @@ class SyncService { /// Syncs users from the server to the local database /// Returns `true`if there were any changes - Future syncUsersFromServer(List users) => - _lock.run(() => _syncUsersFromServer(users)); + Future syncUsersFromServer(List users) => _lock.run(() => _syncUsersFromServer(users)); /// Syncs remote assets owned by the logged-in user to the DB /// Returns `true` if there were any changes @@ -105,8 +104,7 @@ class SyncService { List users, DateTime since, ) getChangedAssets, - required FutureOr?> Function(UserDto user, DateTime until) - loadAssets, + required FutureOr?> Function(UserDto user, DateTime until) loadAssets, }) => _lock.run( () async => @@ -139,18 +137,13 @@ class SyncService { } deleteCandidates.sort(Asset.compareById); existing.sort(Asset.compareById); - return _diffAssets(existing, deleteCandidates, compare: Asset.compareById) - .$3 - .map((e) => e.id) - .toList(); + return _diffAssets(existing, deleteCandidates, compare: Asset.compareById).$3.map((e) => e.id).toList(); } /// Syncs a new asset to the db. Returns `true` if successful - Future syncNewAssetToDb(Asset newAsset) => - _lock.run(() => _syncNewAssetToDb(newAsset)); + Future syncNewAssetToDb(Asset newAsset) => _lock.run(() => _syncNewAssetToDb(newAsset)); - Future removeAllLocalAlbumsAndAssets() => - _lock.run(_removeAllLocalAlbumsAndAssets); + Future removeAllLocalAlbumsAndAssets() => _lock.run(_removeAllLocalAlbumsAndAssets); // private methods: @@ -189,8 +182,7 @@ class SyncService { /// Syncs a new asset to the db. Returns `true` if successful Future _syncNewAssetToDb(Asset a) async { - final Asset? inDb = - await _assetRepository.getByOwnerIdChecksum(a.ownerId, a.checksum); + final Asset? inDb = await _assetRepository.getByOwnerIdChecksum(a.ownerId, a.checksum); if (inDb != null) { // unify local/remote assets by replacing the // local-only asset in the DB with a local&remote asset @@ -214,8 +206,7 @@ class SyncService { ) getChangedAssets, ) async { final currentUser = _userService.getMyUser(); - final DateTime? since = - (await _eTagRepository.get(currentUser.id))?.time?.toUtc(); + final DateTime? since = (await _eTagRepository.get(currentUser.id))?.time?.toUtc(); if (since == null) return null; final DateTime now = DateTime.now(); final (toUpsert, toDelete) = await getChangedAssets(users, since); @@ -244,13 +235,10 @@ class SyncService { Future _moveToTrashMatchedAssets(Iterable idsToDelete) async { final List localAssets = await _assetRepository.getAllLocal(); - final List matchedAssets = localAssets - .where((asset) => idsToDelete.contains(asset.remoteId)) - .toList(); + final List matchedAssets = localAssets.where((asset) => idsToDelete.contains(asset.remoteId)).toList(); final mediaUrls = await Future.wait( - matchedAssets - .map((asset) => asset.local?.getMediaUrl() ?? Future.value(null)), + matchedAssets.map((asset) => asset.local?.getMediaUrl() ?? Future.value(null)), ); await _localFilesManager.moveToTrash(mediaUrls.nonNulls.toList()); @@ -371,10 +359,8 @@ class SyncService { final bool changes = await diffSortedLists( remoteAlbums, dbAlbums, - compare: (remoteAlbum, dbAlbum) => - remoteAlbum.remoteId!.compareTo(dbAlbum.remoteId!), - both: (remoteAlbum, dbAlbum) => - _syncRemoteAlbum(remoteAlbum, dbAlbum, toDelete, existing), + compare: (remoteAlbum, dbAlbum) => remoteAlbum.remoteId!.compareTo(dbAlbum.remoteId!), + both: (remoteAlbum, dbAlbum) => _syncRemoteAlbum(remoteAlbum, dbAlbum, toDelete, existing), onlyFirst: (remoteAlbum) => _addAlbumFromServer(remoteAlbum, existing), onlySecond: (dbAlbum) => _removeAlbumFromDb(dbAlbum, toDelete), ); @@ -421,11 +407,9 @@ class SyncService { ); // update shared users - final List sharedUsers = - album.sharedUsers.map((u) => u.toDto()).toList(growable: false); + final List sharedUsers = album.sharedUsers.map((u) => u.toDto()).toList(growable: false); sharedUsers.sort((a, b) => a.id.compareTo(b.id)); - final List users = dto.remoteUsers.map((u) => u.toDto()).toList() - ..sort((a, b) => a.id.compareTo(b.id)); + final List users = dto.remoteUsers.map((u) => u.toDto()).toList()..sort((a, b) => a.id.compareTo(b.id)); final List userIdsToAdd = []; final List usersToUnlink = []; diffSortedListsSync( @@ -456,10 +440,8 @@ class SyncService { album.sortOrder = dto.sortOrder; final remoteThumbnailAssetId = dto.remoteThumbnailAssetId; - if (remoteThumbnailAssetId != null && - album.thumbnail.value?.remoteId != remoteThumbnailAssetId) { - album.thumbnail.value = - await _assetRepository.getByRemoteId(remoteThumbnailAssetId); + if (remoteThumbnailAssetId != null && album.thumbnail.value?.remoteId != remoteThumbnailAssetId) { + album.thumbnail.value = await _assetRepository.getByRemoteId(remoteThumbnailAssetId); } // write & commit all changes to DB @@ -480,8 +462,7 @@ class SyncService { if (album.shared || dto.shared) { final userId = (_userService.getMyUser()).id; - final foreign = - await _assetRepository.getByAlbum(album, notOwnedBy: [userId]); + final foreign = await _assetRepository.getByAlbum(album, notOwnedBy: [userId]); existing.addAll(foreign); // delete assets in DB unless they belong to this user or part of some other shared album @@ -505,16 +486,14 @@ class SyncService { if (album.remoteAssetCount == album.remoteAssets.length) { // in case an album contains assets not yet present in local DB: // put missing album assets into local DB - final (existingInDb, updated) = - await _linkWithExistingFromDb(album.remoteAssets.toList()); + final (existingInDb, updated) = await _linkWithExistingFromDb(album.remoteAssets.toList()); existing.addAll(existingInDb); await upsertAssetsWithExif(updated); await _entityService.fillAlbumWithDatabaseEntities(album); await _albumRepository.create(album); } else { - _log.warning( - "Failed to add album from server: assetCount ${album.remoteAssetCount} != " + _log.warning("Failed to add album from server: assetCount ${album.remoteAssetCount} != " "asset array length ${album.remoteAssets.length} for album ${album.name}"); } } @@ -534,8 +513,7 @@ class SyncService { } else if (album.shared) { // delete assets in DB unless they belong to this user or are part of some other shared album or belong to a partner final userIds = (await _getAllAccessibleUsers()).map((user) => user.id); - final orphanedAssets = - await _assetRepository.getByAlbum(album, notOwnedBy: userIds); + final orphanedAssets = await _assetRepository.getByAlbum(album, notOwnedBy: userIds); deleteCandidates.addAll(orphanedAssets); } try { @@ -553,8 +531,7 @@ class SyncService { Set? excludedAssets, ]) async { onDevice.sort((a, b) => a.localId!.compareTo(b.localId!)); - final inDb = - await _albumRepository.getAll(remote: false, sortBy: AlbumSort.localId); + final inDb = await _albumRepository.getAll(remote: false, sortBy: AlbumSort.localId); final List deleteCandidates = []; final List existing = []; final bool anyChanges = await diffSortedLists( @@ -574,8 +551,7 @@ class SyncService { _log.fine( "Syncing all local albums almost done. Collected ${deleteCandidates.length} asset candidates to delete", ); - final (toDelete, toUpdate) = - _handleAssetRemoval(deleteCandidates, existing, remote: false); + final (toDelete, toUpdate) = _handleAssetRemoval(deleteCandidates, existing, remote: false); _log.fine( "${toDelete.length} assets to delete, ${toUpdate.length} to update", ); @@ -610,9 +586,7 @@ class SyncService { return false; } _log.info("Local album ${deviceAlbum.name} has changed. Syncing..."); - if (!forceRefresh && - excludedAssets == null && - await _syncDeviceAlbumFast(deviceAlbum, dbAlbum)) { + if (!forceRefresh && excludedAssets == null && await _syncDeviceAlbumFast(deviceAlbum, dbAlbum)) { _log.info("Fast synced local album ${deviceAlbum.name} to DB"); return true; } @@ -624,8 +598,7 @@ class SyncService { ); assert(inDb.isSorted(Asset.compareByChecksum), "inDb not sorted!"); - final int assetCountOnDevice = - await _albumMediaRepository.getAssetCount(deviceAlbum.localId!); + final int assetCountOnDevice = await _albumMediaRepository.getAssetCount(deviceAlbum.localId!); final List onDevice = await _getHashedAssets( deviceAlbum, excludedAssets: excludedAssets, @@ -643,9 +616,7 @@ class SyncService { _log.info( "Only excluded assets in local album ${deviceAlbum.name} changed. Stopping sync.", ); - if (assetCountOnDevice != - (await _eTagRepository.getById(deviceAlbum.eTagKeyAssetCount)) - ?.assetCount) { + if (assetCountOnDevice != (await _eTagRepository.getById(deviceAlbum.eTagKeyAssetCount))?.assetCount) { await _eTagRepository.upsertAll([ ETag( id: deviceAlbum.eTagKeyAssetCount, @@ -667,8 +638,7 @@ class SyncService { dbAlbum.name = deviceAlbum.name; dbAlbum.description = deviceAlbum.description; dbAlbum.modifiedAt = deviceAlbum.modifiedAt; - if (dbAlbum.thumbnail.value != null && - toDelete.contains(dbAlbum.thumbnail.value)) { + if (dbAlbum.thumbnail.value != null && toDelete.contains(dbAlbum.thumbnail.value)) { dbAlbum.thumbnail.value = null; } try { @@ -702,12 +672,8 @@ class SyncService { ); return false; } - final int totalOnDevice = - await _albumMediaRepository.getAssetCount(deviceAlbum.localId!); - final int lastKnownTotal = - (await _eTagRepository.getById(deviceAlbum.eTagKeyAssetCount)) - ?.assetCount ?? - 0; + final int totalOnDevice = await _albumMediaRepository.getAssetCount(deviceAlbum.localId!); + final int lastKnownTotal = (await _eTagRepository.getById(deviceAlbum.eTagKeyAssetCount))?.assetCount ?? 0; if (totalOnDevice <= lastKnownTotal) { _log.info( "Local album ${deviceAlbum.name} totalOnDevice is less than lastKnownTotal. Skipping sync.", @@ -776,8 +742,7 @@ class SyncService { album.thumbnail.value = thumb; try { await _albumRepository.create(album); - final int assetCount = - await _albumMediaRepository.getAssetCount(album.localId!); + final int assetCount = await _albumMediaRepository.getAssetCount(album.localId!); await _eTagRepository.upsertAll([ ETag(id: album.eTagKeyAssetCount, assetCount: assetCount), ]); @@ -913,9 +878,8 @@ class SyncService { modifiedFrom: modifiedFrom, modifiedUntil: modifiedUntil, ); - final filtered = excludedAssets == null - ? entities - : entities.where((e) => !excludedAssets.contains(e.localId!)).toList(); + final filtered = + excludedAssets == null ? entities : entities.where((e) => !excludedAssets.contains(e.localId!)).toList(); return _hashService.hashAssets(filtered); } @@ -942,15 +906,13 @@ class SyncService { deviceAlbum.description != dbAlbum.description || !deviceAlbum.modifiedAt.isAtSameMomentAs(dbAlbum.modifiedAt) || await _albumMediaRepository.getAssetCount(deviceAlbum.localId!) != - (await _eTagRepository.getById(deviceAlbum.eTagKeyAssetCount)) - ?.assetCount; + (await _eTagRepository.getById(deviceAlbum.eTagKeyAssetCount))?.assetCount; } Future _removeAllLocalAlbumsAndAssets() async { try { final assets = await _assetRepository.getAllLocal(); - final (toDelete, toUpdate) = - _handleAssetRemoval(assets, [], remote: false); + final (toDelete, toUpdate) = _handleAssetRemoval(assets, [], remote: false); await _assetRepository.transaction(() async { await _assetRepository.deleteByIds(toDelete); await _assetRepository.updateAll(toUpdate); @@ -971,10 +933,8 @@ class SyncService { _log.warning("Failed to fetch users", e); users = null; } - final List sharedBy = - await _partnerApiRepository.getAll(Direction.sharedByMe); - final List sharedWith = - await _partnerApiRepository.getAll(Direction.sharedWithMe); + final List sharedBy = await _partnerApiRepository.getAll(Direction.sharedByMe); + final List sharedWith = await _partnerApiRepository.getAll(Direction.sharedWithMe); if (users == null) { _log.warning("Failed to refresh users"); diff --git a/mobile/lib/services/timeline.service.dart b/mobile/lib/services/timeline.service.dart index 47ad17fc25..1a4f9e2685 100644 --- a/mobile/lib/services/timeline.service.dart +++ b/mobile/lib/services/timeline.service.dart @@ -103,8 +103,7 @@ class TimelineService { } GroupAssetsBy _getGroupByOption() { - return GroupAssetsBy - .values[_appSettingsService.getSetting(AppSettingsEnum.groupAssetsBy)]; + return GroupAssetsBy.values[_appSettingsService.getSetting(AppSettingsEnum.groupAssetsBy)]; } Stream watchLockedTimelineProvider() async* { diff --git a/mobile/lib/services/upload.service.dart b/mobile/lib/services/upload.service.dart index b869624e52..398a402586 100644 --- a/mobile/lib/services/upload.service.dart +++ b/mobile/lib/services/upload.service.dart @@ -20,14 +20,11 @@ class UploadService { void Function(TaskStatusUpdate)? onUploadStatus; void Function(TaskProgressUpdate)? onTaskProgress; - final StreamController _taskStatusController = - StreamController.broadcast(); - final StreamController _taskProgressController = - StreamController.broadcast(); + final StreamController _taskStatusController = StreamController.broadcast(); + final StreamController _taskProgressController = StreamController.broadcast(); Stream get taskStatusStream => _taskStatusController.stream; - Stream get taskProgressStream => - _taskProgressController.stream; + Stream get taskProgressStream => _taskProgressController.stream; UploadService( this._uploadRepository, @@ -103,8 +100,7 @@ class UploadService { final headers = ApiService.getRequestHeaders(); final deviceId = Store.get(StoreKey.deviceId); - final (baseDirectory, directory, filename) = - await Task.split(filePath: file.path); + final (baseDirectory, directory, filename) = await Task.split(filePath: file.path); final stats = await file.stat(); final fileCreatedAt = stats.changed; final fileModifiedAt = stats.modified; diff --git a/mobile/lib/theme/theme_data.dart b/mobile/lib/theme/theme_data.dart index a351b09093..32695ef26e 100644 --- a/mobile/lib/theme/theme_data.dart +++ b/mobile/lib/theme/theme_data.dart @@ -45,8 +45,7 @@ ThemeData getThemeData({ fontWeight: FontWeight.w600, fontSize: 18, ), - backgroundColor: - isDark ? colorScheme.surfaceContainer : colorScheme.surface, + backgroundColor: isDark ? colorScheme.surfaceContainer : colorScheme.surface, foregroundColor: colorScheme.primary, elevation: 0, scrolledUnderElevation: 0, @@ -100,8 +99,7 @@ ThemeData getThemeData({ ), ), navigationBarTheme: NavigationBarThemeData( - backgroundColor: - isDark ? colorScheme.surfaceContainer : colorScheme.surface, + backgroundColor: isDark ? colorScheme.surfaceContainer : colorScheme.surface, labelTextStyle: const WidgetStatePropertyAll( TextStyle( fontSize: 14, diff --git a/mobile/lib/utils/backup_progress.dart b/mobile/lib/utils/backup_progress.dart index 38cdeacdb2..3d2af2877e 100644 --- a/mobile/lib/utils/backup_progress.dart +++ b/mobile/lib/utils/backup_progress.dart @@ -50,8 +50,7 @@ String humanReadableBytesProgress(int bytes, int bytesTotal) { } class ThrottleProgressUpdate { - ThrottleProgressUpdate(this._fun, Duration interval) - : _interval = interval.inMicroseconds; + ThrottleProgressUpdate(this._fun, Duration interval) : _interval = interval.inMicroseconds; final void Function(String?, int, int) _fun; final int _interval; int _invokedAt = 0; diff --git a/mobile/lib/utils/cache/custom_image_cache.dart b/mobile/lib/utils/cache/custom_image_cache.dart index 8c70472765..6465a68222 100644 --- a/mobile/lib/utils/cache/custom_image_cache.dart +++ b/mobile/lib/utils/cache/custom_image_cache.dart @@ -60,15 +60,13 @@ final class CustomImageCache implements ImageCache { int get currentSizeBytes => _small.currentSizeBytes + _large.currentSizeBytes; @override - bool evict(Object key, {bool includeLive = true}) => - _cacheForKey(key).evict(key, includeLive: includeLive); + bool evict(Object key, {bool includeLive = true}) => _cacheForKey(key).evict(key, includeLive: includeLive); @override int get liveImageCount => _small.liveImageCount + _large.liveImageCount; @override - int get pendingImageCount => - _small.pendingImageCount + _large.pendingImageCount; + int get pendingImageCount => _small.pendingImageCount + _large.pendingImageCount; @override ImageStreamCompleter? putIfAbsent( @@ -79,6 +77,5 @@ final class CustomImageCache implements ImageCache { _cacheForKey(key).putIfAbsent(key, loader, onError: onError); @override - ImageCacheStatus statusForKey(Object key) => - _cacheForKey(key).statusForKey(key); + ImageCacheStatus statusForKey(Object key) => _cacheForKey(key).statusForKey(key); } diff --git a/mobile/lib/utils/color_filter_generator.dart b/mobile/lib/utils/color_filter_generator.dart index c155823264..d4217a9319 100644 --- a/mobile/lib/utils/color_filter_generator.dart +++ b/mobile/lib/utils/color_filter_generator.dart @@ -82,8 +82,7 @@ class _ColorFilterGenerator { ]; } - double x = - ((1 + ((value > 0) ? ((3 * value) / 100) : (value / 100)))).toDouble(); + double x = ((1 + ((value > 0) ? ((3 * value) / 100) : (value / 100)))).toDouble(); double lumR = 0.3086; double lumG = 0.6094; double lumB = 0.082; diff --git a/mobile/lib/utils/datetime_comparison.dart b/mobile/lib/utils/datetime_comparison.dart index 8c53ea45ba..f8ddcfea11 100644 --- a/mobile/lib/utils/datetime_comparison.dart +++ b/mobile/lib/utils/datetime_comparison.dart @@ -1,3 +1,2 @@ bool isAtSameMomentAs(DateTime? a, DateTime? b) => - (a == null && b == null) || - ((a != null && b != null) && a.isAtSameMomentAs(b)); + (a == null && b == null) || ((a != null && b != null) && a.isAtSameMomentAs(b)); diff --git a/mobile/lib/utils/debounce.dart b/mobile/lib/utils/debounce.dart index 78870151a6..e8d3e6fb24 100644 --- a/mobile/lib/utils/debounce.dart +++ b/mobile/lib/utils/debounce.dart @@ -19,8 +19,7 @@ class Debouncer { if (maxWaitTime != null && // _actionFuture == null && // TODO: should this check be here? - (_lastActionTime == null || - DateTime.now().difference(_lastActionTime!) > maxWaitTime!)) { + (_lastActionTime == null || DateTime.now().difference(_lastActionTime!) > maxWaitTime!)) { _callAndRest(); return; } @@ -60,8 +59,7 @@ class Debouncer { _actionFuture = null; } - bool get isActive => - _actionFuture != null || (_timer != null && _timer!.isActive); + bool get isActive => _actionFuture != null || (_timer != null && _timer!.isActive); } /// Creates a [Debouncer] that will be disposed automatically. If no [interval] is provided, a diff --git a/mobile/lib/utils/draggable_scroll_controller.dart b/mobile/lib/utils/draggable_scroll_controller.dart index 1d22905d1f..cd7ae5b0e1 100644 --- a/mobile/lib/utils/draggable_scroll_controller.dart +++ b/mobile/lib/utils/draggable_scroll_controller.dart @@ -15,19 +15,18 @@ DraggableScrollableController useDraggableScrollController({ ); } -class _DraggableScrollControllerHook - extends Hook { +class _DraggableScrollControllerHook extends Hook { const _DraggableScrollControllerHook({ super.keys, }); @override - HookState> - createState() => _DraggableScrollControllerHookState(); + HookState> createState() => + _DraggableScrollControllerHookState(); } -class _DraggableScrollControllerHookState extends HookState< - DraggableScrollableController, _DraggableScrollControllerHook> { +class _DraggableScrollControllerHookState + extends HookState { late final controller = DraggableScrollableController(); @override diff --git a/mobile/lib/utils/hooks/timer_hook.dart b/mobile/lib/utils/hooks/timer_hook.dart index a78fed42c3..577e46f5d4 100644 --- a/mobile/lib/utils/hooks/timer_hook.dart +++ b/mobile/lib/utils/hooks/timer_hook.dart @@ -23,8 +23,7 @@ class _TimerHook extends Hook { required this.callback, }); @override - HookState> createState() => - _TimerHookState(); + HookState> createState() => _TimerHookState(); } class _TimerHookState extends HookState { diff --git a/mobile/lib/utils/http_ssl_options.dart b/mobile/lib/utils/http_ssl_options.dart index 24e51f1b30..eaf6e77e4a 100644 --- a/mobile/lib/utils/http_ssl_options.dart +++ b/mobile/lib/utils/http_ssl_options.dart @@ -12,8 +12,7 @@ class HttpSSLOptions { static void apply({bool applyNative = true}) { AppSettingsEnum setting = AppSettingsEnum.allowSelfSignedSSLCert; - bool allowSelfSignedSSLCert = - Store.get(setting.storeKey as StoreKey, setting.defaultValue); + bool allowSelfSignedSSLCert = Store.get(setting.storeKey as StoreKey, setting.defaultValue); _apply(allowSelfSignedSSLCert, applyNative: applyNative); } @@ -29,8 +28,7 @@ class HttpSSLOptions { SSLClientCertStoreVal? clientCert = SSLClientCertStoreVal.load(); - HttpOverrides.global = - HttpSSLCertOverride(allowSelfSignedSSLCert, serverHost, clientCert); + HttpOverrides.global = HttpSSLCertOverride(allowSelfSignedSSLCert, serverHost, clientCert); if (applyNative && Platform.isAndroid) { _channel.invokeMethod("apply", [ diff --git a/mobile/lib/utils/immich_loading_overlay.dart b/mobile/lib/utils/immich_loading_overlay.dart index fcc47b1542..b44f78e0bd 100644 --- a/mobile/lib/utils/immich_loading_overlay.dart +++ b/mobile/lib/utils/immich_loading_overlay.dart @@ -7,8 +7,7 @@ final _loadingEntry = OverlayEntry( builder: (context) => SizedBox.square( dimension: double.infinity, child: DecoratedBox( - decoration: - BoxDecoration(color: context.colorScheme.surface.withAlpha(200)), + decoration: BoxDecoration(color: context.colorScheme.surface.withAlpha(200)), child: const Center( child: DelayedLoadingIndicator( delay: Duration(seconds: 1), @@ -30,8 +29,7 @@ class _LoadingOverlay extends Hook> { _LoadingOverlayState createState() => _LoadingOverlayState(); } -class _LoadingOverlayState - extends HookState, _LoadingOverlay> { +class _LoadingOverlayState extends HookState, _LoadingOverlay> { late final _isLoading = ValueNotifier(false)..addListener(_listener); OverlayEntry? _loadingOverlay; diff --git a/mobile/lib/utils/isolate.dart b/mobile/lib/utils/isolate.dart index a506aa4858..7f8e8510d3 100644 --- a/mobile/lib/utils/isolate.dart +++ b/mobile/lib/utils/isolate.dart @@ -17,8 +17,7 @@ class InvalidIsolateUsageException implements Exception { const InvalidIsolateUsageException(); @override - String toString() => - "IsolateHelper should only be used from the root isolate"; + String toString() => "IsolateHelper should only be used from the root isolate"; } // !! Should be used only from the root isolate diff --git a/mobile/lib/utils/map_utils.dart b/mobile/lib/utils/map_utils.dart index 39443fb225..3dd849a044 100644 --- a/mobile/lib/utils/map_utils.dart +++ b/mobile/lib/utils/map_utils.dart @@ -91,12 +91,9 @@ class MapUtils { } } - if (permission == LocationPermission.denied || - permission == LocationPermission.deniedForever) { + if (permission == LocationPermission.denied || permission == LocationPermission.deniedForever) { // Open app settings only if you did not request for permission before - if (permission == LocationPermission.deniedForever && - !shouldRequestPermission && - !silent) { + if (permission == LocationPermission.deniedForever && !shouldRequestPermission && !silent) { await Geolocator.openAppSettings(); } return (null, LocationPermission.deniedForever); diff --git a/mobile/lib/utils/migration.dart b/mobile/lib/utils/migration.dart index a95c376ac2..764c8351d4 100644 --- a/mobile/lib/utils/migration.dart +++ b/mobile/lib/utils/migration.dart @@ -11,8 +11,7 @@ import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/android_device_asset.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; -import 'package:immich_mobile/entities/backup_album.entity.dart' - as isar_backup_album; +import 'package:immich_mobile/entities/backup_album.entity.dart' as isar_backup_album; import 'package:immich_mobile/entities/etag.entity.dart'; import 'package:immich_mobile/entities/ios_device_asset.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart'; @@ -44,8 +43,7 @@ Future migrateDatabaseIfNeeded(Isar db) async { if (id != null) { await db.writeTxn(() async { final user = await db.users.get(id); - await db.storeValues - .put(StoreValue(StoreKey.currentUser.id, strValue: user?.id)); + await db.storeValues.put(StoreValue(StoreKey.currentUser.id, strValue: user?.id)); }); } } @@ -89,9 +87,7 @@ Future _migrateDeviceAsset(Isar db) async { ? (await db.androidDeviceAssets.where().findAll()) .map((a) => _DeviceAsset(assetId: a.id.toString(), hash: a.hash)) .toList() - : (await db.iOSDeviceAssets.where().findAll()) - .map((i) => _DeviceAsset(assetId: i.id, hash: i.hash)) - .toList(); + : (await db.iOSDeviceAssets.where().findAll()).map((i) => _DeviceAsset(assetId: i.id, hash: i.hash)).toList(); final PermissionState ps = await PhotoManager.requestPermissionExtend(); if (!ps.hasAccess) { @@ -105,14 +101,10 @@ Future _migrateDeviceAsset(Isar db) async { } List<_DeviceAsset> localAssets = []; - final List paths = - await PhotoManager.getAssetPathList(onlyAll: true); + final List paths = await PhotoManager.getAssetPathList(onlyAll: true); if (paths.isEmpty) { - localAssets = (await db.assets - .where() - .anyOf(ids, (query, id) => query.localIdEqualTo(id.assetId)) - .findAll()) + localAssets = (await db.assets.where().anyOf(ids, (query, id) => query.localIdEqualTo(id.assetId)).findAll()) .map( (a) => _DeviceAsset(assetId: a.localId!, dateTime: a.fileModifiedAt), ) @@ -121,12 +113,9 @@ Future _migrateDeviceAsset(Isar db) async { final AssetPathEntity albumWithAll = paths.first; final int assetCount = await albumWithAll.assetCountAsync; - final List allDeviceAssets = - await albumWithAll.getAssetListRange(start: 0, end: assetCount); + final List allDeviceAssets = await albumWithAll.getAssetListRange(start: 0, end: assetCount); - localAssets = allDeviceAssets - .map((a) => _DeviceAsset(assetId: a.id, dateTime: a.modifiedDateTime)) - .toList(); + localAssets = allDeviceAssets.map((a) => _DeviceAsset(assetId: a.id, dateTime: a.modifiedDateTime)).toList(); } debugPrint("[MIGRATION] Device Asset Ids length - ${ids.length}"); @@ -205,8 +194,7 @@ Future migrateBackupAlbumsToSqlite( // Recents is a virtual album on Android, and we don't have it with the new sync // If recents is selected previously, select all albums during migration except the excluded ones if (Platform.isAndroid) { - final recentAlbum = - isarBackupAlbums.firstWhereOrNull((album) => album.id == 'isAll'); + final recentAlbum = isarBackupAlbums.firstWhereOrNull((album) => album.id == 'isAll'); if (recentAlbum != null) { await drift.localAlbumEntity.update().write( const LocalAlbumEntityCompanion( @@ -215,8 +203,7 @@ Future migrateBackupAlbumsToSqlite( ); final excluded = isarBackupAlbums .where( - (album) => - album.selection == isar_backup_album.BackupSelection.exclude, + (album) => album.selection == isar_backup_album.BackupSelection.exclude, ) .map((album) => album.id) .toList(); @@ -243,10 +230,8 @@ Future migrateBackupAlbumsToSqlite( backupSelection: Value( switch (album.selection) { isar_backup_album.BackupSelection.none => BackupSelection.none, - isar_backup_album.BackupSelection.select => - BackupSelection.selected, - isar_backup_album.BackupSelection.exclude => - BackupSelection.excluded, + isar_backup_album.BackupSelection.select => BackupSelection.selected, + isar_backup_album.BackupSelection.exclude => BackupSelection.excluded, }, ), ), diff --git a/mobile/lib/utils/remote_album.utils.dart b/mobile/lib/utils/remote_album.utils.dart index 04184ee367..af853e08d2 100644 --- a/mobile/lib/utils/remote_album.utils.dart +++ b/mobile/lib/utils/remote_album.utils.dart @@ -41,8 +41,7 @@ class _RemoteAlbumSortHandlers { List albums, bool isReverse, ) { - final sorted = - albums.sorted((a, b) => a.assetCount.compareTo(b.assetCount)); + final sorted = albums.sorted((a, b) => a.assetCount.compareTo(b.assetCount)); return (isReverse ? sorted.reversed : sorted).toList(); } diff --git a/mobile/lib/utils/selection_handlers.dart b/mobile/lib/utils/selection_handlers.dart index a5466c83a2..633ce2463a 100644 --- a/mobile/lib/utils/selection_handlers.dart +++ b/mobile/lib/utils/selection_handlers.dart @@ -24,10 +24,7 @@ void handleShareAssets( showDialog( context: context, builder: (BuildContext buildContext) { - ref - .watch(shareServiceProvider) - .shareAssets(selection.toList(), context) - .then( + ref.watch(shareServiceProvider).shareAssets(selection.toList(), context).then( (bool status) { if (!status) { ImmichToast.show( @@ -56,14 +53,10 @@ Future handleArchiveAssets( }) async { if (selection.isNotEmpty) { shouldArchive ??= !selection.every((a) => a.isArchived); - await ref - .read(assetProvider.notifier) - .toggleArchive(selection, shouldArchive); + await ref.read(assetProvider.notifier).toggleArchive(selection, shouldArchive); final message = shouldArchive - ? 'moved_to_archive' - .t(context: context, args: {'count': selection.length}) - : 'moved_to_library' - .t(context: context, args: {'count': selection.length}); + ? 'moved_to_archive'.t(context: context, args: {'count': selection.length}) + : 'moved_to_library'.t(context: context, args: {'count': selection.length}); if (context.mounted) { ImmichToast.show( context: context, @@ -83,9 +76,7 @@ Future handleFavoriteAssets( }) async { if (selection.isNotEmpty) { shouldFavorite ??= !selection.every((a) => a.isFavorite); - await ref - .watch(assetProvider.notifier) - .toggleFavorite(selection, shouldFavorite); + await ref.watch(assetProvider.notifier).toggleFavorite(selection, shouldFavorite); final assetOrAssets = selection.length > 1 ? 'assets' : 'asset'; final toastMessage = shouldFavorite @@ -140,8 +131,7 @@ Future handleEditLocation( if (selection.length == 1) { final asset = selection.first; final assetWithExif = await ref.watch(assetServiceProvider).loadExif(asset); - if (assetWithExif.exifInfo?.latitude != null && - assetWithExif.exifInfo?.longitude != null) { + if (assetWithExif.exifInfo?.latitude != null && assetWithExif.exifInfo?.longitude != null) { initialLatLng = LatLng( assetWithExif.exifInfo!.latitude!, assetWithExif.exifInfo!.longitude!, @@ -168,9 +158,7 @@ Future handleSetAssetsVisibility( List selection, ) async { if (selection.isNotEmpty) { - await ref - .watch(assetProvider.notifier) - .setLockedView(selection, visibility); + await ref.watch(assetProvider.notifier).setLockedView(selection, visibility); final assetOrAssets = selection.length > 1 ? 'assets' : 'asset'; final toastMessage = visibility == AssetVisibilityEnum.locked diff --git a/mobile/lib/utils/throttle.dart b/mobile/lib/utils/throttle.dart index bc0dcf9e2f..c4427472d3 100644 --- a/mobile/lib/utils/throttle.dart +++ b/mobile/lib/utils/throttle.dart @@ -9,8 +9,7 @@ class Throttler { Throttler({required this.interval}); T? run(T Function() action) { - if (_lastActionTime == null || - (DateTime.now().difference(_lastActionTime!) > interval)) { + if (_lastActionTime == null || (DateTime.now().difference(_lastActionTime!) > interval)) { final response = action(); _lastActionTime = DateTime.now(); return response; diff --git a/mobile/lib/utils/thumbnail_utils.dart b/mobile/lib/utils/thumbnail_utils.dart index 33dd916980..758305c8bc 100644 --- a/mobile/lib/utils/thumbnail_utils.dart +++ b/mobile/lib/utils/thumbnail_utils.dart @@ -12,8 +12,7 @@ String getAltText( if (exifInfo?.description != null && exifInfo!.description!.isNotEmpty) { return exifInfo.description!; } - final (template, args) = - getAltTextTemplate(exifInfo, fileCreatedAt, type, peopleNames); + final (template, args) = getAltTextTemplate(exifInfo, fileCreatedAt, type, peopleNames); return template.t(args: args); } diff --git a/mobile/lib/utils/url_helper.dart b/mobile/lib/utils/url_helper.dart index 187026b53c..ec65b4f7ee 100644 --- a/mobile/lib/utils/url_helper.dart +++ b/mobile/lib/utils/url_helper.dart @@ -4,8 +4,7 @@ import 'package:punycode/punycode.dart'; String sanitizeUrl(String url) { // Add schema if none is set - final urlWithSchema = - url.trimLeft().startsWith(RegExp(r"https?://")) ? url : "https://$url"; + final urlWithSchema = url.trimLeft().startsWith(RegExp(r"https?://")) ? url : "https://$url"; // Remove trailing slash(es) return urlWithSchema.trimRight().replaceFirst(RegExp(r"/+$"), ""); diff --git a/mobile/lib/widgets/activities/activity_text_field.dart b/mobile/lib/widgets/activities/activity_text_field.dart index ce4f1364a3..f111de5e53 100644 --- a/mobile/lib/widgets/activities/activity_text_field.dart +++ b/mobile/lib/widgets/activities/activity_text_field.dart @@ -24,8 +24,7 @@ class ActivityTextField extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final album = ref.watch(currentAlbumProvider)!; final asset = ref.watch(currentAssetProvider); - final activityNotifier = ref - .read(albumActivityProvider(album.remoteId!, asset?.remoteId).notifier); + final activityNotifier = ref.read(albumActivityProvider(album.remoteId!, asset?.remoteId).notifier); final user = ref.watch(currentUserProvider); final inputController = useTextEditingController(); final inputFocusNode = useFocusNode(); @@ -88,9 +87,7 @@ class ActivityTextField extends HookConsumerWidget { ), ), suffixIconColor: liked ? Colors.red[700] : null, - hintText: !isEnabled - ? 'shared_album_activities_input_disable'.tr() - : 'say_something'.tr(), + hintText: !isEnabled ? 'shared_album_activities_input_disable'.tr() : 'say_something'.tr(), hintStyle: TextStyle( fontWeight: FontWeight.normal, fontSize: 14, diff --git a/mobile/lib/widgets/activities/activity_tile.dart b/mobile/lib/widgets/activities/activity_tile.dart index 2dd16b73cb..a2bc5135c6 100644 --- a/mobile/lib/widgets/activities/activity_tile.dart +++ b/mobile/lib/widgets/activities/activity_tile.dart @@ -38,11 +38,8 @@ class ActivityTile extends HookConsumerWidget { leftAlign: isLike || showAssetThumbnail, ), // No subtitle for like, so center title - titleAlignment: - !isLike ? ListTileTitleAlignment.top : ListTileTitleAlignment.center, - trailing: showAssetThumbnail - ? _ActivityAssetThumbnail(activity.assetId!) - : null, + titleAlignment: !isLike ? ListTileTitleAlignment.top : ListTileTitleAlignment.center, + trailing: showAssetThumbnail ? _ActivityAssetThumbnail(activity.assetId!) : null, subtitle: !isLike ? Text(activity.comment!) : null, ); } @@ -62,12 +59,10 @@ class _ActivityTitle extends StatelessWidget { @override Widget build(BuildContext context) { final textColor = context.isDarkTheme ? Colors.white : Colors.black; - final textStyle = context.textTheme.bodyMedium - ?.copyWith(color: textColor.withValues(alpha: 0.6)); + final textStyle = context.textTheme.bodyMedium?.copyWith(color: textColor.withValues(alpha: 0.6)); return Row( - mainAxisAlignment: - leftAlign ? MainAxisAlignment.start : MainAxisAlignment.spaceBetween, + mainAxisAlignment: leftAlign ? MainAxisAlignment.start : MainAxisAlignment.spaceBetween, mainAxisSize: leftAlign ? MainAxisSize.min : MainAxisSize.max, children: [ Text( diff --git a/mobile/lib/widgets/album/add_to_album_sliverlist.dart b/mobile/lib/widgets/album/add_to_album_sliverlist.dart index 3472e2179b..b0f2a0a49a 100644 --- a/mobile/lib/widgets/album/add_to_album_sliverlist.dart +++ b/mobile/lib/widgets/album/add_to_album_sliverlist.dart @@ -25,13 +25,11 @@ class AddToAlbumSliverList extends HookConsumerWidget { final albumSortMode = ref.watch(albumSortByOptionsProvider); final albumSortIsReverse = ref.watch(albumSortOrderProvider); final sortedAlbums = albumSortMode.sortFn(albums, albumSortIsReverse); - final sortedSharedAlbums = - albumSortMode.sortFn(sharedAlbums, albumSortIsReverse); + final sortedSharedAlbums = albumSortMode.sortFn(sharedAlbums, albumSortIsReverse); return SliverList( - delegate: SliverChildBuilderDelegate( - childCount: albums.length + (sharedAlbums.isEmpty ? 0 : 1), - (context, index) { + delegate: + SliverChildBuilderDelegate(childCount: albums.length + (sharedAlbums.isEmpty ? 0 : 1), (context, index) { // Build shared expander if (index == 0 && sortedSharedAlbums.isNotEmpty) { return Padding( @@ -47,9 +45,7 @@ class AddToAlbumSliverList extends HookConsumerWidget { itemCount: sortedSharedAlbums.length, itemBuilder: (context, index) => AlbumThumbnailListTile( album: sortedSharedAlbums[index], - onTap: enabled - ? () => onAddToAlbum(sortedSharedAlbums[index]) - : () {}, + onTap: enabled ? () => onAddToAlbum(sortedSharedAlbums[index]) : () {}, ), ), ], diff --git a/mobile/lib/widgets/album/album_thumbnail_card.dart b/mobile/lib/widgets/album/album_thumbnail_card.dart index d78f391754..e8d0425d4e 100644 --- a/mobile/lib/widgets/album/album_thumbnail_card.dart +++ b/mobile/lib/widgets/album/album_thumbnail_card.dart @@ -109,9 +109,7 @@ class AlbumThumbnailCard extends ConsumerWidget { borderRadius: const BorderRadius.all( Radius.circular(20), ), - child: album.thumbnail.value == null - ? buildEmptyThumbnail() - : buildAlbumThumbnail(), + child: album.thumbnail.value == null ? buildEmptyThumbnail() : buildAlbumThumbnail(), ), ), if (showTitle) ...[ diff --git a/mobile/lib/widgets/album/album_thumbnail_listtile.dart b/mobile/lib/widgets/album/album_thumbnail_listtile.dart index f35d4b7ede..8332cde889 100644 --- a/mobile/lib/widgets/album/album_thumbnail_listtile.dart +++ b/mobile/lib/widgets/album/album_thumbnail_listtile.dart @@ -50,10 +50,8 @@ class AlbumThumbnailListTile extends StatelessWidget { type: AssetMediaSize.thumbnail, ), httpHeaders: ApiService.getRequestHeaders(), - cacheKey: - getAlbumThumbNailCacheKey(album, type: AssetMediaSize.thumbnail), - errorWidget: (context, url, error) => - const Icon(Icons.image_not_supported_outlined), + cacheKey: getAlbumThumbNailCacheKey(album, type: AssetMediaSize.thumbnail), + errorWidget: (context, url, error) => const Icon(Icons.image_not_supported_outlined), ); } @@ -70,9 +68,7 @@ class AlbumThumbnailListTile extends StatelessWidget { children: [ ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(8)), - child: album.thumbnail.value == null - ? buildEmptyThumbnail() - : buildAlbumThumbnail(), + child: album.thumbnail.value == null ? buildEmptyThumbnail() : buildAlbumThumbnail(), ), Expanded( child: Padding( diff --git a/mobile/lib/widgets/album/album_viewer_appbar.dart b/mobile/lib/widgets/album/album_viewer_appbar.dart index 14715e40a9..f13f1c3b21 100644 --- a/mobile/lib/widgets/album/album_viewer_appbar.dart +++ b/mobile/lib/widgets/album/album_viewer_appbar.dart @@ -12,8 +12,7 @@ import 'package:immich_mobile/providers/album/current_album.provider.dart'; import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/widgets/common/immich_toast.dart'; -class AlbumViewerAppbar extends HookConsumerWidget - implements PreferredSizeWidget { +class AlbumViewerAppbar extends HookConsumerWidget implements PreferredSizeWidget { const AlbumViewerAppbar({ super.key, required this.userId, @@ -53,13 +52,10 @@ class AlbumViewerAppbar extends HookConsumerWidget final newAlbumDescription = albumViewer.editDescriptionText; final isEditAlbum = albumViewer.isEditAlbum; - final comments = album.shared - ? ref.watch(activityStatisticsProvider(album.remoteId!)) - : 0; + final comments = album.shared ? ref.watch(activityStatisticsProvider(album.remoteId!)) : 0; deleteAlbum() async { - final bool success = - await ref.watch(albumProvider.notifier).deleteAlbum(album); + final bool success = await ref.watch(albumProvider.notifier).deleteAlbum(album); context.navigateTo(const TabControllerRoute(children: [AlbumsRoute()])); @@ -112,8 +108,7 @@ class AlbumViewerAppbar extends HookConsumerWidget } void onLeaveAlbumPressed() async { - bool isSuccess = - await ref.watch(albumProvider.notifier).leaveAlbum(album); + bool isSuccess = await ref.watch(albumProvider.notifier).leaveAlbum(album); if (isSuccess) { context.navigateTo(const TabControllerRoute(children: [AlbumsRoute()])); @@ -152,8 +147,7 @@ class AlbumViewerAppbar extends HookConsumerWidget } void onSortOrderToggled() async { - final updatedAlbum = - await ref.read(albumProvider.notifier).toggleSortOrder(album); + final updatedAlbum = await ref.read(albumProvider.notifier).toggleSortOrder(album); if (updatedAlbum == null) { ImmichToast.show( @@ -241,8 +235,7 @@ class AlbumViewerAppbar extends HookConsumerWidget children: [ ...buildBottomSheetActions(), if (onAddPhotos != null) ...commonActions, - if (onAddPhotos != null && userId == album.ownerId) - ...ownerActions, + if (onAddPhotos != null && userId == album.ownerId) ...ownerActions, ], ), ), @@ -281,9 +274,7 @@ class AlbumViewerAppbar extends HookConsumerWidget return IconButton( onPressed: () async { if (newAlbumTitle.isNotEmpty) { - bool isSuccess = await ref - .watch(albumViewerProvider.notifier) - .changeAlbumTitle(album, newAlbumTitle); + bool isSuccess = await ref.watch(albumViewerProvider.notifier).changeAlbumTitle(album, newAlbumTitle); if (!isSuccess) { ImmichToast.show( context: context, @@ -294,9 +285,8 @@ class AlbumViewerAppbar extends HookConsumerWidget } titleFocusNode.unfocus(); } else if (newAlbumDescription.isNotEmpty) { - bool isSuccessDescription = await ref - .watch(albumViewerProvider.notifier) - .changeAlbumDescription(album, newAlbumDescription); + bool isSuccessDescription = + await ref.watch(albumViewerProvider.notifier).changeAlbumDescription(album, newAlbumDescription); if (!isSuccessDescription) { ImmichToast.show( context: context, @@ -330,8 +320,7 @@ class AlbumViewerAppbar extends HookConsumerWidget leading: buildLeadingButton(), centerTitle: false, actions: [ - if (album.shared && (album.activityEnabled || comments != 0)) - buildActivitiesButton(), + if (album.shared && (album.activityEnabled || comments != 0)) buildActivitiesButton(), if (album.isRemote) ...[ IconButton( splashRadius: 25, diff --git a/mobile/lib/widgets/album/album_viewer_editable_description.dart b/mobile/lib/widgets/album/album_viewer_editable_description.dart index b82e7f3d83..94f41dc7fd 100644 --- a/mobile/lib/widgets/album/album_viewer_editable_description.dart +++ b/mobile/lib/widgets/album/album_viewer_editable_description.dart @@ -19,15 +19,13 @@ class AlbumViewerEditableDescription extends HookConsumerWidget { final albumViewerState = ref.watch(albumViewerProvider); final descriptionTextEditController = useTextEditingController( - text: albumViewerState.isEditAlbum && - albumViewerState.editDescriptionText.isNotEmpty + text: albumViewerState.isEditAlbum && albumViewerState.editDescriptionText.isNotEmpty ? albumViewerState.editDescriptionText : albumDescription, ); void onFocusModeChange() { - if (!descriptionFocusNode.hasFocus && - descriptionTextEditController.text.isEmpty) { + if (!descriptionFocusNode.hasFocus && descriptionTextEditController.text.isEmpty) { ref.watch(albumViewerProvider.notifier).setEditDescriptionText(""); descriptionTextEditController.text = ""; } @@ -49,9 +47,7 @@ class AlbumViewerEditableDescription extends HookConsumerWidget { onChanged: (value) { if (value.isEmpty) { } else { - ref - .watch(albumViewerProvider.notifier) - .setEditDescriptionText(value); + ref.watch(albumViewerProvider.notifier).setEditDescriptionText(value); } }, focusNode: descriptionFocusNode, @@ -62,9 +58,7 @@ class AlbumViewerEditableDescription extends HookConsumerWidget { onTap: () { context.focusScope.requestFocus(descriptionFocusNode); - ref - .watch(albumViewerProvider.notifier) - .setEditDescriptionText(albumDescription); + ref.watch(albumViewerProvider.notifier).setEditDescriptionText(albumDescription); ref.watch(albumViewerProvider.notifier).enableEditAlbum(); if (descriptionTextEditController.text == '') { diff --git a/mobile/lib/widgets/album/album_viewer_editable_title.dart b/mobile/lib/widgets/album/album_viewer_editable_title.dart index 038c9a13d8..b64be09ff9 100644 --- a/mobile/lib/widgets/album/album_viewer_editable_title.dart +++ b/mobile/lib/widgets/album/album_viewer_editable_title.dart @@ -19,8 +19,7 @@ class AlbumViewerEditableTitle extends HookConsumerWidget { final albumViewerState = ref.watch(albumViewerProvider); final titleTextEditController = useTextEditingController( - text: albumViewerState.isEditAlbum && - albumViewerState.editTitleText.isNotEmpty + text: albumViewerState.isEditAlbum && albumViewerState.editTitleText.isNotEmpty ? albumViewerState.editTitleText : albumName, ); diff --git a/mobile/lib/widgets/album/remote_album_shared_user_icons.dart b/mobile/lib/widgets/album/remote_album_shared_user_icons.dart index dd1a64abe0..f7f3f62b32 100644 --- a/mobile/lib/widgets/album/remote_album_shared_user_icons.dart +++ b/mobile/lib/widgets/album/remote_album_shared_user_icons.dart @@ -16,8 +16,7 @@ class RemoteAlbumSharedUserIcons extends ConsumerWidget { return const SizedBox(); } - final sharedUsersAsync = - ref.watch(remoteAlbumSharedUsersProvider(currentAlbum.id)); + final sharedUsersAsync = ref.watch(remoteAlbumSharedUsersProvider(currentAlbum.id)); return sharedUsersAsync.maybeWhen( data: (sharedUsers) { diff --git a/mobile/lib/widgets/asset_grid/asset_drag_region.dart b/mobile/lib/widgets/asset_grid/asset_drag_region.dart index 6335a1d64d..f27fae64e8 100644 --- a/mobile/lib/widgets/asset_grid/asset_drag_region.dart +++ b/mobile/lib/widgets/asset_grid/asset_drag_region.dart @@ -65,8 +65,7 @@ class _AssetDragRegionState extends State { Widget build(BuildContext context) { return RawGestureDetector( gestures: { - _CustomLongPressGestureRecognizer: GestureRecognizerFactoryWithHandlers< - _CustomLongPressGestureRecognizer>( + _CustomLongPressGestureRecognizer: GestureRecognizerFactoryWithHandlers<_CustomLongPressGestureRecognizer>( () => _CustomLongPressGestureRecognizer(), _registerCallbacks, ), @@ -89,9 +88,7 @@ class _AssetDragRegionState extends State { final local = box.globalToLocal(position); if (!box.hitTest(hitTestResult, position: local)) return null; - return (hitTestResult.path - .firstWhereOrNull((hit) => hit.target is _AssetIndexProxy) - ?.target as _AssetIndexProxy?) + return (hitTestResult.path.firstWhereOrNull((hit) => hit.target is _AssetIndexProxy)?.target as _AssetIndexProxy?) ?.index; } @@ -99,8 +96,7 @@ class _AssetDragRegionState extends State { /// Calculate widget height and scroll offset when long press starting instead of in [initState] /// or [didChangeDependencies] as the grid might still be rendering into view to get the actual size final height = context.size?.height; - if (height != null && - (topScrollOffset == null || bottomScrollOffset == null)) { + if (height != null && (topScrollOffset == null || bottomScrollOffset == null)) { topScrollOffset = height * scrollOffset; bottomScrollOffset = height - topScrollOffset!; } @@ -188,8 +184,7 @@ class AssetIndexWrapper extends SingleChildRenderObjectWidget { // ignore: library_private_types_in_public_api _AssetIndexProxy renderObject, ) { - renderObject.index = - AssetIndex(rowIndex: rowIndex, sectionIndex: sectionIndex); + renderObject.index = AssetIndex(rowIndex: rowIndex, sectionIndex: sectionIndex); } } diff --git a/mobile/lib/widgets/asset_grid/asset_grid_data_structure.dart b/mobile/lib/widgets/asset_grid/asset_grid_data_structure.dart index 6b94c04c4d..88b993a026 100644 --- a/mobile/lib/widgets/asset_grid/asset_grid_data_structure.dart +++ b/mobile/lib/widgets/asset_grid/asset_grid_data_structure.dart @@ -53,8 +53,7 @@ class RenderList { /// global offset of assets in [_buf] int _bufOffset = 0; - RenderList(this.elements, this.query, this.allAssets) - : totalAssets = allAssets?.length ?? query!.countSync(); + RenderList(this.elements, this.query, this.allAssets) : totalAssets = allAssets?.length ?? query!.countSync(); bool get isEmpty => totalAssets == 0; @@ -90,9 +89,7 @@ class RenderList { // a tiny bit resulting in a another required load from the DB final start = max( 0, - forward - ? offset - oppositeSize - : (len > batchSize ? offset : offset + count - len), + forward ? offset - oppositeSize : (len > batchSize ? offset : offset + count - len), ); // load the calculated batch (start:start+len) from the DB and put it into the buffer _buf = query!.offset(start).limit(len).findAllSync(); @@ -156,9 +153,7 @@ class RenderList { : null; for (int i = 0; i < total; i += sectionSize) { - final date = assets != null - ? assets[i].fileCreatedAt - : await dateLoader?.getDate(i); + final date = assets != null ? assets[i].fileCreatedAt : await dateLoader?.getDate(i); final int count = i + sectionSize > total ? total - i : sectionSize; if (date == null) break; @@ -175,11 +170,8 @@ class RenderList { return RenderList(elements, query, assets); } - final formatSameYear = - groupBy == GroupAssetsBy.month ? DateFormat.MMMM() : DateFormat.MMMEd(); - final formatOtherYear = groupBy == GroupAssetsBy.month - ? DateFormat.yMMMM() - : DateFormat.yMMMEd(); + final formatSameYear = groupBy == GroupAssetsBy.month ? DateFormat.MMMM() : DateFormat.MMMEd(); + final formatOtherYear = groupBy == GroupAssetsBy.month ? DateFormat.yMMMM() : DateFormat.yMMMEd(); final currentYear = DateTime.now().year; final formatMergedSameYear = DateFormat.MMMd(); final formatMergedOtherYear = DateFormat.yMMMd(); @@ -193,16 +185,9 @@ class RenderList { int lastMonthIndex = 0; String formatDateRange(DateTime from, DateTime to) { - final startDate = (from.year == currentYear - ? formatMergedSameYear - : formatMergedOtherYear) - .format(from); - final endDate = (to.year == currentYear - ? formatMergedSameYear - : formatMergedOtherYear) - .format(to); - if (DateTime(from.year, from.month, from.day) == - DateTime(to.year, to.month, to.day)) { + final startDate = (from.year == currentYear ? formatMergedSameYear : formatMergedOtherYear).format(from); + final endDate = (to.year == currentYear ? formatMergedSameYear : formatMergedOtherYear).format(to); + if (DateTime(from.year, from.month, from.day) == DateTime(to.year, to.month, to.day)) { // format range with time when both dates are on the same day final startTime = DateFormat.Hm().format(from); final endTime = DateFormat.Hm().format(to); @@ -212,10 +197,7 @@ class RenderList { } void mergeMonth() { - if (last != null && - groupBy == GroupAssetsBy.auto && - monthCount <= 30 && - elements.length > lastMonthIndex + 1) { + if (last != null && groupBy == GroupAssetsBy.auto && monthCount <= 30 && elements.length > lastMonthIndex + 1) { // merge all days into a single section assert(elements[lastMonthIndex].date.month == last.month); final e = elements[lastMonthIndex]; @@ -233,8 +215,7 @@ class RenderList { } void addElems(DateTime d, DateTime? prevDate) { - final bool newMonth = - last == null || last.year != d.year || last.month != d.month; + final bool newMonth = last == null || last.year != d.year || last.month != d.month; if (newMonth) { mergeMonth(); lastMonthIndex = elements.length; @@ -258,12 +239,8 @@ class RenderList { totalCount: groupBy == GroupAssetsBy.auto ? sectionCount : count, offset: lastOffset + j, title: j == 0 - ? (d.year == currentYear - ? formatSameYear.format(d) - : formatOtherYear.format(d)) - : (groupBy == GroupAssetsBy.auto - ? formatDateRange(d, prevDate ?? d) - : null), + ? (d.year == currentYear ? formatSameYear.format(d) : formatOtherYear.format(d)) + : (groupBy == GroupAssetsBy.auto ? formatDateRange(d, prevDate ?? d) : null), ), ); } @@ -277,11 +254,7 @@ class RenderList { // TODO replace with groupBy once Isar supports such queries final dates = assets != null ? assets.map((a) => a.fileCreatedAt) - : await query! - .offset(offset) - .limit(pageSize) - .fileCreatedAtProperty() - .findAll(); + : await query!.offset(offset).limit(pageSize).fileCreatedAtProperty().findAll(); int i = 0; for (final date in dates) { final d = DateTime( @@ -357,11 +330,7 @@ class DateBatchLoader { Future _loadBatch(int targetIndex) async { final batchStart = (targetIndex ~/ batchSize) * batchSize; - _buffer = await query - .offset(batchStart) - .limit(batchSize) - .fileCreatedAtProperty() - .findAll(); + _buffer = await query.offset(batchStart).limit(batchSize).fileCreatedAtProperty().findAll(); _bufferStart = batchStart; } diff --git a/mobile/lib/widgets/asset_grid/control_bottom_app_bar.dart b/mobile/lib/widgets/asset_grid/control_bottom_app_bar.dart index 3283b90b21..e265162850 100644 --- a/mobile/lib/widgets/asset_grid/control_bottom_app_bar.dart +++ b/mobile/lib/widgets/asset_grid/control_bottom_app_bar.dart @@ -71,15 +71,11 @@ class ControlBottomAppBar extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final hasRemote = - selectionAssetState.hasRemote || selectionAssetState.hasMerged; - final hasLocal = - selectionAssetState.hasLocal || selectionAssetState.hasMerged; - final trashEnabled = - ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash)); + final hasRemote = selectionAssetState.hasRemote || selectionAssetState.hasMerged; + final hasLocal = selectionAssetState.hasLocal || selectionAssetState.hasMerged; + final trashEnabled = ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash)); final albums = ref.watch(albumProvider).where((a) => a.isRemote).toList(); - final sharedAlbums = - ref.watch(albumProvider).where((a) => a.shared).toList(); + final sharedAlbums = ref.watch(albumProvider).where((a) => a.shared).toList(); const bottomPadding = 0.24; final scrollController = useDraggableScrollController(); final isInLockedView = ref.watch(inLockedViewProvider); @@ -132,9 +128,7 @@ class ControlBottomAppBar extends HookConsumerWidget { List renderActionButtons() { return [ ControlBoxButton( - iconData: Platform.isAndroid - ? Icons.share_rounded - : Icons.ios_share_rounded, + iconData: Platform.isAndroid ? Icons.share_rounded : Icons.ios_share_rounded, label: "share".tr(), onPressed: enabled ? () => onShare(true) : null, ), @@ -146,16 +140,13 @@ class ControlBottomAppBar extends HookConsumerWidget { ), if (hasRemote && onArchive != null) ControlBoxButton( - iconData: - unarchive ? Icons.unarchive_outlined : Icons.archive_outlined, + iconData: unarchive ? Icons.unarchive_outlined : Icons.archive_outlined, label: (unarchive ? "unarchive" : "archive").tr(), onPressed: enabled ? onArchive : null, ), if (hasRemote && onFavorite != null) ControlBoxButton( - iconData: unfavorite - ? Icons.favorite_border_rounded - : Icons.favorite_rounded, + iconData: unfavorite ? Icons.favorite_border_rounded : Icons.favorite_rounded, label: (unfavorite ? "unfavorite" : "favorite").tr(), onPressed: enabled ? onFavorite : null, ), @@ -174,11 +165,8 @@ class ControlBottomAppBar extends HookConsumerWidget { child: ControlBoxButton( iconData: Icons.delete_sweep_outlined, label: "delete".tr(), - onPressed: enabled - ? () => handleRemoteDelete(!trashEnabled, onDelete!) - : null, - onLongPressed: - enabled ? () => showForceDeleteDialog(onDelete!) : null, + onPressed: enabled ? () => handleRemoteDelete(!trashEnabled, onDelete!) : null, + onLongPressed: enabled ? () => showForceDeleteDialog(onDelete!) : null, ), ), if (hasRemote && onDeleteServer != null && !isInLockedView) @@ -264,18 +252,12 @@ class ControlBottomAppBar extends HookConsumerWidget { ConstrainedBox( constraints: const BoxConstraints(maxWidth: 100), child: ControlBoxButton( - iconData: isInLockedView - ? Icons.lock_open_rounded - : Icons.lock_outline_rounded, - label: isInLockedView - ? "remove_from_locked_folder".tr() - : "move_to_locked_folder".tr(), + iconData: isInLockedView ? Icons.lock_open_rounded : Icons.lock_outline_rounded, + label: isInLockedView ? "remove_from_locked_folder".tr() : "move_to_locked_folder".tr(), onPressed: enabled ? onToggleLocked : null, ), ), - if (!selectionAssetState.hasLocal && - selectionAssetState.selectedCount > 1 && - onStack != null) + if (!selectionAssetState.hasLocal && selectionAssetState.selectedCount > 1 && onStack != null) ConstrainedBox( constraints: const BoxConstraints(maxWidth: 90), child: ControlBoxButton( diff --git a/mobile/lib/widgets/asset_grid/draggable_scrollbar.dart b/mobile/lib/widgets/asset_grid/draggable_scrollbar.dart index 779da8add7..ffe8c54320 100644 --- a/mobile/lib/widgets/asset_grid/draggable_scrollbar.dart +++ b/mobile/lib/widgets/asset_grid/draggable_scrollbar.dart @@ -276,8 +276,7 @@ class ScrollLabel extends StatelessWidget { final Text child; final BoxConstraints? constraints; - static const BoxConstraints _defaultConstraints = - BoxConstraints.tightFor(width: 72.0, height: 28.0); + static const BoxConstraints _defaultConstraints = BoxConstraints.tightFor(width: 72.0, height: 28.0); const ScrollLabel({ super.key, @@ -308,8 +307,7 @@ class ScrollLabel extends StatelessWidget { } } -class DraggableScrollbarState extends State - with TickerProviderStateMixin { +class DraggableScrollbarState extends State with TickerProviderStateMixin { late double _barOffset; late double _viewOffset; late bool _isDragInProcess; @@ -356,8 +354,7 @@ class DraggableScrollbarState extends State super.dispose(); } - double get barMaxScrollExtent => - context.size!.height - widget.heightScrollThumb; + double get barMaxScrollExtent => context.size!.height - widget.heightScrollThumb; double get barMinScrollExtent => 0; @@ -447,8 +444,7 @@ class DraggableScrollbarState extends State } } - if (notification is ScrollUpdateNotification || - notification is OverscrollNotification) { + if (notification is ScrollUpdateNotification || notification is OverscrollNotification) { if (_thumbAnimationController.status != AnimationStatus.forward) { _thumbAnimationController.forward(); } @@ -627,8 +623,7 @@ class SlideFadeTransition extends StatelessWidget { Widget build(BuildContext context) { return AnimatedBuilder( animation: animation, - builder: (context, child) => - animation.value == 0.0 ? const SizedBox() : child!, + builder: (context, child) => animation.value == 0.0 ? const SizedBox() : child!, child: SlideTransition( position: Tween( begin: const Offset(0.3, 0.0), diff --git a/mobile/lib/widgets/asset_grid/draggable_scrollbar_custom.dart b/mobile/lib/widgets/asset_grid/draggable_scrollbar_custom.dart index 06954f4ff4..63fa3be763 100644 --- a/mobile/lib/widgets/asset_grid/draggable_scrollbar_custom.dart +++ b/mobile/lib/widgets/asset_grid/draggable_scrollbar_custom.dart @@ -169,8 +169,7 @@ class ScrollLabel extends StatelessWidget { final Text child; final BoxConstraints? constraints; - static const BoxConstraints _defaultConstraints = - BoxConstraints.tightFor(width: 72.0, height: 28.0); + static const BoxConstraints _defaultConstraints = BoxConstraints.tightFor(width: 72.0, height: 28.0); const ScrollLabel({ super.key, @@ -202,8 +201,7 @@ class ScrollLabel extends StatelessWidget { } } -class DraggableScrollbarState extends State - with TickerProviderStateMixin { +class DraggableScrollbarState extends State with TickerProviderStateMixin { late double _barOffset; late bool _isDragInProcess; late int _currentItem; @@ -250,10 +248,7 @@ class DraggableScrollbarState extends State super.dispose(); } - double get barMaxScrollExtent => - (context.size?.height ?? 0) - - widget.heightScrollThumb - - (widget.heightOffset ?? 0); + double get barMaxScrollExtent => (context.size?.height ?? 0) - widget.heightScrollThumb - (widget.heightOffset ?? 0); double get barMinScrollExtent => 0; @@ -317,8 +312,7 @@ class DraggableScrollbarState extends State setState(() { try { - int firstItemIndex = - widget.itemPositionsListener.itemPositions.value.first.index; + int firstItemIndex = widget.itemPositionsListener.itemPositions.value.first.index; if (notification is ScrollUpdateNotification) { _barOffset = (firstItemIndex / maxItemCount) * barMaxScrollExtent; @@ -331,8 +325,7 @@ class DraggableScrollbarState extends State } } - if (notification is ScrollUpdateNotification || - notification is OverscrollNotification) { + if (notification is ScrollUpdateNotification || notification is OverscrollNotification) { if (_thumbAnimationController.status != AnimationStatus.forward) { _thumbAnimationController.forward(); } @@ -536,8 +529,7 @@ class SlideFadeTransition extends StatelessWidget { Widget build(BuildContext context) { return AnimatedBuilder( animation: animation, - builder: (context, child) => - animation.value == 0.0 ? const SizedBox() : child!, + builder: (context, child) => animation.value == 0.0 ? const SizedBox() : child!, child: SlideTransition( position: Tween( begin: const Offset(0.3, 0.0), diff --git a/mobile/lib/widgets/asset_grid/group_divider_title.dart b/mobile/lib/widgets/asset_grid/group_divider_title.dart index b9fe8e3c1d..81f9392d37 100644 --- a/mobile/lib/widgets/asset_grid/group_divider_title.dart +++ b/mobile/lib/widgets/asset_grid/group_divider_title.dart @@ -32,8 +32,7 @@ class GroupDividerTitle extends HookConsumerWidget { useEffect( () { - groupBy.value = GroupAssetsBy.values[ - appSettingService.getSetting(AppSettingsEnum.groupAssetsBy)]; + groupBy.value = GroupAssetsBy.values[appSettingService.getSetting(AppSettingsEnum.groupAssetsBy)]; return null; }, [], @@ -75,14 +74,12 @@ class GroupDividerTitle extends HookConsumerWidget { ? Icon( Icons.check_circle_rounded, color: context.primaryColor, - semanticLabel: - "unselect_all_in".tr(namedArgs: {"group": text}), + semanticLabel: "unselect_all_in".tr(namedArgs: {"group": text}), ) : Icon( Icons.check_circle_outline_rounded, color: context.colorScheme.onSurfaceSecondary, - semanticLabel: - "select_all_in".tr(namedArgs: {"group": text}), + semanticLabel: "select_all_in".tr(namedArgs: {"group": text}), ), ), ], diff --git a/mobile/lib/widgets/asset_grid/immich_asset_grid.dart b/mobile/lib/widgets/asset_grid/immich_asset_grid.dart index da4c47e466..112d8074ad 100644 --- a/mobile/lib/widgets/asset_grid/immich_asset_grid.dart +++ b/mobile/lib/widgets/asset_grid/immich_asset_grid.dart @@ -27,8 +27,7 @@ class ImmichAssetGrid extends HookConsumerWidget { final bool canDeselect; final bool? dynamicLayout; final bool showMultiSelectIndicator; - final void Function(Iterable itemPositions)? - visibleItemsListener; + final void Function(Iterable itemPositions)? visibleItemsListener; final Widget? topWidget; final bool shrinkWrap; final bool showDragScroll; @@ -82,10 +81,8 @@ class ImmichAssetGrid extends HookConsumerWidget { Widget buildAssetGridView(RenderList renderList) { return RawGestureDetector( gestures: { - CustomScaleGestureRecognizer: GestureRecognizerFactoryWithHandlers< - CustomScaleGestureRecognizer>( - () => CustomScaleGestureRecognizer(), - (CustomScaleGestureRecognizer scale) { + CustomScaleGestureRecognizer: GestureRecognizerFactoryWithHandlers( + () => CustomScaleGestureRecognizer(), (CustomScaleGestureRecognizer scale) { scale.onStart = (details) { baseScaleFactor.value = scaleFactor.value; }; @@ -106,15 +103,13 @@ class ImmichAssetGrid extends HookConsumerWidget { onRefresh: onRefresh, assetsPerRow: perRow.value, listener: listener, - showStorageIndicator: showStorageIndicator ?? - settings.getSetting(AppSettingsEnum.storageIndicator), + showStorageIndicator: showStorageIndicator ?? settings.getSetting(AppSettingsEnum.storageIndicator), renderList: renderList, margin: margin, selectionActive: selectionActive, preselectedAssets: preselectedAssets, canDeselect: canDeselect, - dynamicLayout: dynamicLayout ?? - settings.getSetting(AppSettingsEnum.dynamicLayout), + dynamicLayout: dynamicLayout ?? settings.getSetting(AppSettingsEnum.dynamicLayout), showMultiSelectIndicator: showMultiSelectIndicator, visibleItemsListener: visibleItemsListener, topWidget: topWidget, diff --git a/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart b/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart index 060898e270..ccea8307ae 100644 --- a/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart +++ b/mobile/lib/widgets/asset_grid/immich_asset_grid_view.dart @@ -51,8 +51,7 @@ class ImmichAssetGridView extends ConsumerStatefulWidget { final bool canDeselect; final bool dynamicLayout; final bool showMultiSelectIndicator; - final void Function(Iterable itemPositions)? - visibleItemsListener; + final void Function(Iterable itemPositions)? visibleItemsListener; final Widget? topWidget; final int heroOffset; final bool shrinkWrap; @@ -90,24 +89,20 @@ class ImmichAssetGridView extends ConsumerStatefulWidget { class ImmichAssetGridViewState extends ConsumerState { final ItemScrollController _itemScrollController = ItemScrollController(); - final ScrollOffsetController _scrollOffsetController = - ScrollOffsetController(); - final ItemPositionsListener _itemPositionsListener = - ItemPositionsListener.create(); + final ScrollOffsetController _scrollOffsetController = ScrollOffsetController(); + final ItemPositionsListener _itemPositionsListener = ItemPositionsListener.create(); late final KeepAliveLink currentAssetLink; /// The timestamp when the haptic feedback was last invoked int _hapticFeedbackTS = 0; DateTime? _prevItemTime; bool _scrolling = false; - final Set _selectedAssets = - LinkedHashSet(equals: (a, b) => a.id == b.id, hashCode: (a) => a.id); + final Set _selectedAssets = LinkedHashSet(equals: (a, b) => a.id == b.id, hashCode: (a) => a.id); bool _dragging = false; int? _dragAnchorAssetIndex; int? _dragAnchorSectionIndex; - final Set _draggedAssets = - HashSet(equals: (a, b) => a.id == b.id, hashCode: (a) => a.id); + final Set _draggedAssets = HashSet(equals: (a, b) => a.id == b.id, hashCode: (a) => a.id); ScrollPhysics? _scrollPhysics; @@ -131,9 +126,7 @@ class ImmichAssetGridViewState extends ConsumerState { void _deselectAssets(List assets) { final assetsToDeselect = assets.where( - (a) => - widget.canDeselect || - !(widget.preselectedAssets?.contains(a) ?? false), + (a) => widget.canDeselect || !(widget.preselectedAssets?.contains(a) ?? false), ); setState(() { @@ -152,9 +145,7 @@ class ImmichAssetGridViewState extends ConsumerState { _dragAnchorSectionIndex = null; _draggedAssets.clear(); _dragging = false; - if (!widget.canDeselect && - widget.preselectedAssets != null && - widget.preselectedAssets!.isNotEmpty) { + if (!widget.canDeselect && widget.preselectedAssets != null && widget.preselectedAssets!.isNotEmpty) { _selectedAssets.addAll(widget.preselectedAssets!); } _callSelectionListener(false); @@ -162,8 +153,7 @@ class ImmichAssetGridViewState extends ConsumerState { } bool _allAssetsSelected(List assets) { - return widget.selectionActive && - assets.firstWhereOrNull((e) => !_selectedAssets.contains(e)) == null; + return widget.selectionActive && assets.firstWhereOrNull((e) => !_selectedAssets.contains(e)) == null; } Future _scrollToIndex(int index) async { @@ -244,8 +234,7 @@ class ImmichAssetGridViewState extends ConsumerState { } Widget _buildAssetGrid() { - final useDragScrolling = - widget.showDragScroll && widget.renderList.totalAssets >= 20; + final useDragScrolling = widget.showDragScroll && widget.renderList.totalAssets >= 20; void dragScrolling(bool active) { if (active != _scrolling) { @@ -256,9 +245,7 @@ class ImmichAssetGridViewState extends ConsumerState { } bool appBarOffset() { - return (ref.watch(tabProvider).index == 0 && - ModalRoute.of(context)?.settings.name == - TabControllerRoute.name) || + return (ref.watch(tabProvider).index == 0 && ModalRoute.of(context)?.settings.name == TabControllerRoute.name) || (ModalRoute.of(context)?.settings.name == AlbumViewerRoute.name); } @@ -272,8 +259,7 @@ class ImmichAssetGridViewState extends ConsumerState { physics: _scrollPhysics, itemScrollController: _itemScrollController, scrollOffsetController: _scrollOffsetController, - itemCount: widget.renderList.elements.length + - (widget.topWidget != null ? 1 : 0), + itemCount: widget.renderList.elements.length + (widget.topWidget != null ? 1 : 0), addRepaintBoundaries: true, shrinkWrap: widget.shrinkWrap, ); @@ -283,13 +269,10 @@ class ImmichAssetGridViewState extends ConsumerState { scrollStateListener: dragScrolling, itemPositionsListener: _itemPositionsListener, controller: _itemScrollController, - backgroundColor: context.isDarkTheme - ? context.colorScheme.primary.darken(amount: .5) - : context.colorScheme.primary, + backgroundColor: + context.isDarkTheme ? context.colorScheme.primary.darken(amount: .5) : context.colorScheme.primary, labelTextBuilder: widget.showLabel ? _labelBuilder : null, - padding: appBarOffset() - ? const EdgeInsets.only(top: 60) - : const EdgeInsets.only(), + padding: appBarOffset() ? const EdgeInsets.only(top: 60) : const EdgeInsets.only(), heightOffset: appBarOffset() ? 60 : 0, labelConstraints: const BoxConstraints(maxHeight: 28), scrollbarAnimationDuration: const Duration(milliseconds: 300), @@ -323,10 +306,7 @@ class ImmichAssetGridViewState extends ConsumerState { // Search for the index of the exact date in the list var index = widget.renderList.elements.indexWhere( - (e) => - e.date.year == date.year && - e.date.month == date.month && - e.date.day == date.day, + (e) => e.date.year == date.year && e.date.month == date.month && e.date.day == date.day, ); // If the exact date is not found, the timeline is grouped by month, @@ -343,8 +323,7 @@ class ImmichAssetGridViewState extends ConsumerState { } else { ImmichToast.show( context: context, - msg: - "The date (${DateFormat.yMd().format(date)}) could not be found in the timeline.", + msg: "The date (${DateFormat.yMd().format(date)}) could not be found in the timeline.", gravity: ToastGravity.BOTTOM, toastType: ToastType.error, ); @@ -417,8 +396,7 @@ class ImmichAssetGridViewState extends ConsumerState { // on startup. if (_prevItemTime == null) { _prevItemTime = date; - } else if (_prevItemTime?.year != date.year || - _prevItemTime?.month != date.month) { + } else if (_prevItemTime?.year != date.year || _prevItemTime?.month != date.month) { _prevItemTime = date; final now = Timeline.now; @@ -511,12 +489,10 @@ class ImmichAssetGridViewState extends ConsumerState { final selectedAssets = {}; var currentSectionIndex = startSectionIndex; while (currentSectionIndex < endSectionIndex) { - final section = - widget.renderList.elements.elementAtOrNull(currentSectionIndex); + final section = widget.renderList.elements.elementAtOrNull(currentSectionIndex); if (section == null) continue; - final sectionAssets = - widget.renderList.loadAssets(section.offset, section.count); + final sectionAssets = widget.renderList.loadAssets(section.offset, section.count); if (currentSectionIndex == startSectionIndex) { selectedAssets.addAll( @@ -531,8 +507,7 @@ class ImmichAssetGridViewState extends ConsumerState { final section = widget.renderList.elements.elementAtOrNull(endSectionIndex); if (section != null) { - final sectionAssets = - widget.renderList.loadAssets(section.offset, section.count); + final sectionAssets = widget.renderList.loadAssets(section.offset, section.count); if (startSectionIndex == endSectionIndex) { selectedAssets.addAll( sectionAssets.slice(startSectionAssetIndex, endSectionAssetIndex + 1), @@ -562,8 +537,7 @@ class ImmichAssetGridViewState extends ConsumerState { /// "add to album" button. /// /// `_selectedAssets` includes `preselectedAssets` on initialization. - if (_selectedAssets.length > - (widget.preselectedAssets?.length ?? 0)) { + if (_selectedAssets.length > (widget.preselectedAssets?.length ?? 0)) { /// `_deselectAll` only deselects the selected assets, /// doesn't affect the preselected ones. _deselectAll(); @@ -585,8 +559,7 @@ class ImmichAssetGridViewState extends ConsumerState { ), child: _buildAssetGrid(), ), - if (widget.showMultiSelectIndicator && widget.selectionActive) - _buildMultiSelectIndicator(), + if (widget.showMultiSelectIndicator && widget.selectionActive) _buildMultiSelectIndicator(), ], ), ); @@ -671,26 +644,20 @@ class _Section extends StatelessWidget { ) { return LayoutBuilder( builder: (context, constraints) { - final width = constraints.maxWidth / assetsPerRow - - margin * (assetsPerRow - 1) / assetsPerRow; + final width = constraints.maxWidth / assetsPerRow - margin * (assetsPerRow - 1) / assetsPerRow; final rows = (section.count + assetsPerRow - 1) ~/ assetsPerRow; - final List assetsToRender = scrolling - ? [] - : renderList.loadAssets(section.offset, section.count); + final List assetsToRender = scrolling ? [] : renderList.loadAssets(section.offset, section.count); return Column( key: ValueKey(section.offset), crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (section.type == RenderAssetGridElementType.monthTitle) - _MonthTitle(date: section.date), + if (section.type == RenderAssetGridElementType.monthTitle) _MonthTitle(date: section.date), if (section.type == RenderAssetGridElementType.groupDividerTitle || section.type == RenderAssetGridElementType.monthTitle) _Title( selectionActive: selectionActive, title: section.title!, - assets: scrolling - ? [] - : renderList.loadAssets(section.offset, section.totalCount), + assets: scrolling ? [] : renderList.loadAssets(section.offset, section.totalCount), allAssetsSelected: allAssetsSelected, selectAssets: selectAssets, deselectAssets: deselectAssets, @@ -699,9 +666,7 @@ class _Section extends StatelessWidget { scrolling ? _PlaceholderRow( key: ValueKey(i), - number: i + 1 == rows - ? section.count - i * assetsPerRow - : assetsPerRow, + number: i + 1 == rows ? section.count - i * assetsPerRow : assetsPerRow, width: width, height: width, margin: margin, @@ -747,9 +712,7 @@ class _MonthTitle extends StatelessWidget { @override Widget build(BuildContext context) { - final monthFormat = DateTime.now().year == date.year - ? DateFormat.MMMM() - : DateFormat.yMMMM(); + final monthFormat = DateTime.now().year == date.year ? DateFormat.MMMM() : DateFormat.yMMMM(); final String title = monthFormat.format(date); return Padding( key: Key("month-$title"), @@ -844,8 +807,7 @@ class _AssetRow extends StatelessWidget { final widthDistribution = List.filled(assets.length, 1.0); if (dynamicLayout) { - final aspectRatios = - assets.map((e) => (e.width ?? 1) / (e.height ?? 1)).toList(); + final aspectRatios = assets.map((e) => (e.width ?? 1) / (e.height ?? 1)).toList(); final meanAspectRatio = aspectRatios.sum / assets.length; // 1: mean width diff --git a/mobile/lib/widgets/asset_grid/multiselect_grid.dart b/mobile/lib/widgets/asset_grid/multiselect_grid.dart index 98b1c6f601..a7c1290b30 100644 --- a/mobile/lib/widgets/asset_grid/multiselect_grid.dart +++ b/mobile/lib/widgets/asset_grid/multiselect_grid.dart @@ -65,11 +65,9 @@ class MultiselectGrid extends HookConsumerWidget { final bool unfavorite; final bool editEnabled; final Widget? emptyIndicator; - Widget buildDefaultLoadingIndicator() => - const Center(child: CircularProgressIndicator()); + Widget buildDefaultLoadingIndicator() => const Center(child: CircularProgressIndicator()); - Widget buildEmptyIndicator() => - emptyIndicator ?? Center(child: const Text("no_assets_to_show").tr()); + Widget buildEmptyIndicator() => emptyIndicator ?? Center(child: const Text("no_assets_to_show").tr()); @override Widget build(BuildContext context, WidgetRef ref) { @@ -103,8 +101,7 @@ class MultiselectGrid extends HookConsumerWidget { ) { selectionEnabledHook.value = multiselect; selection.value = selectedAssets; - selectionAssetState.value = - AssetSelectionState.fromSelection(selectedAssets); + selectionAssetState.value = AssetSelectionState.fromSelection(selectedAssets); } errorBuilder(String? msg) => msg != null && msg.isNotEmpty @@ -120,16 +117,13 @@ class MultiselectGrid extends HookConsumerWidget { String? ownerErrorMessage, }) { final assets = selection.value; - return assets - .remoteOnly(errorCallback: errorBuilder(localErrorMessage)) - .ownedOnly( + return assets.remoteOnly(errorCallback: errorBuilder(localErrorMessage)).ownedOnly( currentUser, errorCallback: errorBuilder(ownerErrorMessage), ); } - Iterable remoteSelection({String? errorMessage}) => - selection.value.remoteOnly( + Iterable remoteSelection({String? errorMessage}) => selection.value.remoteOnly( errorCallback: errorBuilder(errorMessage), ); @@ -139,9 +133,7 @@ class MultiselectGrid extends HookConsumerWidget { // Share = Download + Send to OS specific share sheet handleShareAssets(ref, context, selection.value); } else { - final ids = - remoteSelection(errorMessage: "home_page_share_err_local".tr()) - .map((e) => e.remoteId!); + final ids = remoteSelection(errorMessage: "home_page_share_err_local".tr()).map((e) => e.remoteId!); context.pushRoute(SharedLinkEditRoute(assetsList: ids.toList())); } processing.value = false; @@ -187,18 +179,14 @@ class MultiselectGrid extends HookConsumerWidget { errorCallback: errorBuilder('home_page_delete_err_partner'.tr()), ) .toList(); - final isDeleted = await ref - .read(assetProvider.notifier) - .deleteAssets(toDelete, force: force); + final isDeleted = await ref.read(assetProvider.notifier).deleteAssets(toDelete, force: force); if (isDeleted) { ImmichToast.show( context: context, msg: force - ? 'assets_deleted_permanently' - .tr(namedArgs: {'count': "${selection.value.length}"}) - : 'assets_trashed' - .tr(namedArgs: {'count': "${selection.value.length}"}), + ? 'assets_deleted_permanently'.tr(namedArgs: {'count': "${selection.value.length}"}) + : 'assets_trashed'.tr(namedArgs: {'count': "${selection.value.length}"}), gravity: ToastGravity.BOTTOM, ); selectionEnabledHook.value = false; @@ -213,26 +201,20 @@ class MultiselectGrid extends HookConsumerWidget { try { final localAssets = selection.value.where((a) => a.isLocal).toList(); - final toDelete = isMergedAsset - ? localAssets.where((e) => e.storage == AssetState.merged) - : localAssets; + final toDelete = isMergedAsset ? localAssets.where((e) => e.storage == AssetState.merged) : localAssets; if (toDelete.isEmpty) { return; } - final isDeleted = await ref - .read(assetProvider.notifier) - .deleteLocalAssets(toDelete.toList()); + final isDeleted = await ref.read(assetProvider.notifier).deleteLocalAssets(toDelete.toList()); if (isDeleted) { - final deletedCount = - localAssets.where((e) => !isMergedAsset || e.isRemote).length; + final deletedCount = localAssets.where((e) => !isMergedAsset || e.isRemote).length; ImmichToast.show( context: context, - msg: 'assets_removed_permanently_from_device' - .tr(namedArgs: {'count': "$deletedCount"}), + msg: 'assets_removed_permanently_from_device'.tr(namedArgs: {'count': "$deletedCount"}), gravity: ToastGravity.BOTTOM, ); @@ -248,9 +230,7 @@ class MultiselectGrid extends HookConsumerWidget { try { final toDownload = selection.value.toList(); - final results = await ref - .read(downloadStateProvider.notifier) - .downloadAllAsset(toDownload); + final results = await ref.read(downloadStateProvider.notifier).downloadAllAsset(toDownload); final totalCount = toDownload.length; final successCount = results.where((e) => e).length; @@ -290,19 +270,16 @@ class MultiselectGrid extends HookConsumerWidget { ownerErrorMessage: 'home_page_delete_err_partner'.tr(), ).toList(); - final isDeleted = - await ref.read(assetProvider.notifier).deleteRemoteAssets( - toDelete, - shouldDeletePermanently: shouldDeletePermanently, - ); + final isDeleted = await ref.read(assetProvider.notifier).deleteRemoteAssets( + toDelete, + shouldDeletePermanently: shouldDeletePermanently, + ); if (isDeleted) { ImmichToast.show( context: context, msg: shouldDeletePermanently - ? 'assets_deleted_permanently_from_server' - .tr(namedArgs: {'count': "${toDelete.length}"}) - : 'assets_trashed_from_server' - .tr(namedArgs: {'count': "${toDelete.length}"}), + ? 'assets_deleted_permanently_from_server'.tr(namedArgs: {'count': "${toDelete.length}"}) + : 'assets_trashed_from_server'.tr(namedArgs: {'count': "${toDelete.length}"}), gravity: ToastGravity.BOTTOM, ); } @@ -379,9 +356,7 @@ class MultiselectGrid extends HookConsumerWidget { if (assets.isEmpty) { return; } - final result = await ref - .read(albumServiceProvider) - .createAlbumWithGeneratedName(assets); + final result = await ref.read(albumServiceProvider).createAlbumWithGeneratedName(assets); if (result != null) { ref.watch(albumProvider.notifier).refreshRemoteAlbums(); @@ -449,9 +424,7 @@ class MultiselectGrid extends HookConsumerWidget { ); if (remoteAssets.isNotEmpty) { final isInLockedView = ref.read(inLockedViewProvider); - final visibility = isInLockedView - ? AssetVisibilityEnum.timeline - : AssetVisibilityEnum.locked; + final visibility = isInLockedView ? AssetVisibilityEnum.timeline : AssetVisibilityEnum.locked; await handleSetAssetsVisibility( ref, @@ -489,8 +462,7 @@ class MultiselectGrid extends HookConsumerWidget { child: Stack( children: [ ref.watch(renderListProvider).when( - data: (data) => data.isEmpty && - (buildLoadingIndicator != null || topWidget == null) + data: (data) => data.isEmpty && (buildLoadingIndicator != null || topWidget == null) ? (buildLoadingIndicator ?? buildEmptyIndicator)() : ImmichAssetGrid( renderList: data, diff --git a/mobile/lib/widgets/asset_grid/multiselect_grid_status_indicator.dart b/mobile/lib/widgets/asset_grid/multiselect_grid_status_indicator.dart index b17029f2af..10a541cec3 100644 --- a/mobile/lib/widgets/asset_grid/multiselect_grid_status_indicator.dart +++ b/mobile/lib/widgets/asset_grid/multiselect_grid_status_indicator.dart @@ -25,10 +25,8 @@ class MultiselectGridStatusIndicator extends HookConsumerWidget { ), ) : buildLoadingIndicator!(), - RenderListStatusEnum.empty => - emptyIndicator ?? Center(child: const Text("no_assets_to_show").tr()), - RenderListStatusEnum.error => - Center(child: const Text("error_loading_assets").tr()), + RenderListStatusEnum.empty => emptyIndicator ?? Center(child: const Text("no_assets_to_show").tr()), + RenderListStatusEnum.error => Center(child: const Text("error_loading_assets").tr()), RenderListStatusEnum.complete => const SizedBox() }; } diff --git a/mobile/lib/widgets/asset_grid/thumbnail_image.dart b/mobile/lib/widgets/asset_grid/thumbnail_image.dart index 5b98c8a756..10815d00bb 100644 --- a/mobile/lib/widgets/asset_grid/thumbnail_image.dart +++ b/mobile/lib/widgets/asset_grid/thumbnail_image.dart @@ -41,9 +41,8 @@ class ThumbnailImage extends StatelessWidget { @override Widget build(BuildContext context) { - final assetContainerColor = context.isDarkTheme - ? context.primaryColor.darken(amount: 0.6) - : context.primaryColor.lighten(amount: 0.8); + final assetContainerColor = + context.isDarkTheme ? context.primaryColor.darken(amount: 0.6) : context.primaryColor.lighten(amount: 0.8); return Stack( children: [ @@ -118,9 +117,8 @@ class _SelectedIcon extends StatelessWidget { @override Widget build(BuildContext context) { - final assetContainerColor = context.isDarkTheme - ? context.primaryColor.darken(amount: 0.6) - : context.primaryColor.lighten(amount: 0.8); + final assetContainerColor = + context.isDarkTheme ? context.primaryColor.darken(amount: 0.6) : context.primaryColor.lighten(amount: 0.8); return DecoratedBox( decoration: BoxDecoration( @@ -322,9 +320,7 @@ class _ImageIcon extends StatelessWidget { } return DecoratedBox( - decoration: canDeselect - ? BoxDecoration(color: assetContainerColor) - : const BoxDecoration(color: Colors.grey), + decoration: canDeselect ? BoxDecoration(color: assetContainerColor) : const BoxDecoration(color: Colors.grey), child: ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(15.0)), child: image, diff --git a/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart b/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart index f6a617bf1c..6fda361632 100644 --- a/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart +++ b/mobile/lib/widgets/asset_viewer/advanced_bottom_sheet.dart @@ -35,9 +35,7 @@ class AdvancedBottomSheet extends HookConsumerWidget { const SizedBox(height: 32.0), Container( decoration: BoxDecoration( - color: context.isDarkTheme - ? Colors.grey[900] - : Colors.grey[200], + color: context.isDarkTheme ? Colors.grey[900] : Colors.grey[200], borderRadius: const BorderRadius.all( Radius.circular(15.0), ), @@ -66,8 +64,7 @@ class AdvancedBottomSheet extends HookConsumerWidget { SnackBar( content: Text( "Copied to clipboard", - style: - context.textTheme.bodyLarge?.copyWith( + style: context.textTheme.bodyLarge?.copyWith( color: context.primaryColor, ), ), diff --git a/mobile/lib/widgets/asset_viewer/animated_play_pause.dart b/mobile/lib/widgets/asset_viewer/animated_play_pause.dart index 7935567b8c..dd0d95b93b 100644 --- a/mobile/lib/widgets/asset_viewer/animated_play_pause.dart +++ b/mobile/lib/widgets/asset_viewer/animated_play_pause.dart @@ -17,8 +17,7 @@ class AnimatedPlayPause extends StatefulWidget { State createState() => AnimatedPlayPauseState(); } -class AnimatedPlayPauseState extends State - with SingleTickerProviderStateMixin { +class AnimatedPlayPauseState extends State with SingleTickerProviderStateMixin { late final animationController = AnimationController( vsync: this, value: widget.playing ? 1 : 0, diff --git a/mobile/lib/widgets/asset_viewer/bottom_gallery_bar.dart b/mobile/lib/widgets/asset_viewer/bottom_gallery_bar.dart index 59d97bf0c7..66392b4bb4 100644 --- a/mobile/lib/widgets/asset_viewer/bottom_gallery_bar.dart +++ b/mobile/lib/widgets/asset_viewer/bottom_gallery_bar.dart @@ -52,28 +52,21 @@ class BottomGalleryBar extends ConsumerWidget { if (asset == null) { return const SizedBox(); } - final isOwner = - asset.ownerId == fastHash(ref.watch(currentUserProvider)?.id ?? ''); + final isOwner = asset.ownerId == fastHash(ref.watch(currentUserProvider)?.id ?? ''); final showControls = ref.watch(showControlsProvider); final stackId = asset.stackId; - final stackItems = showStack && stackId != null - ? ref.watch(assetStackStateProvider(stackId)) - : []; + final stackItems = showStack && stackId != null ? ref.watch(assetStackStateProvider(stackId)) : []; bool isStackPrimaryAsset = asset.stackPrimaryAssetId == null; final navStack = AutoRouter.of(context).stackData; - final isTrashEnabled = - ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash)); - final isFromTrash = isTrashEnabled && - navStack.length > 2 && - navStack.elementAt(navStack.length - 2).name == TrashRoute.name; + final isTrashEnabled = ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash)); + final isFromTrash = + isTrashEnabled && navStack.length > 2 && navStack.elementAt(navStack.length - 2).name == TrashRoute.name; final isInAlbum = ref.watch(currentAlbumProvider)?.isRemote ?? false; void removeAssetFromStack() { if (stackIndex.value > 0 && showStack && stackId != null) { - ref - .read(assetStackStateProvider(stackId).notifier) - .removeChild(stackIndex.value - 1); + ref.read(assetStackStateProvider(stackId).notifier).removeChild(stackIndex.value - 1); } } @@ -89,8 +82,7 @@ class BottomGalleryBar extends ConsumerWidget { // `assetIndex == totalAssets.value - 1` handle the case of removing the last asset // to not throw the error when the next preCache index is called - if (totalAssets.value == 1 || - assetIndex.value == totalAssets.value - 1) { + if (totalAssets.value == 1 || assetIndex.value == totalAssets.value - 1) { // Handle only one asset context.maybePop(); } @@ -98,9 +90,7 @@ class BottomGalleryBar extends ConsumerWidget { totalAssets.value -= 1; } if (isDeleted) { - ref - .read(currentAssetProvider.notifier) - .set(renderList.loadAsset(assetIndex.value)); + ref.read(currentAssetProvider.notifier).set(renderList.loadAsset(assetIndex.value)); } return isDeleted; } @@ -144,9 +134,7 @@ class BottomGalleryBar extends ConsumerWidget { return; } - await ref - .read(stackServiceProvider) - .deleteStack(asset.stackId!, stackItems); + await ref.read(stackServiceProvider).deleteStack(asset.stackId!, stackItems); } void showStackActionItems() { @@ -240,8 +228,7 @@ class BottomGalleryBar extends ConsumerWidget { handleRemoveFromAlbum() async { final album = ref.read(currentAlbumProvider); - final bool isSuccess = album != null && - await ref.read(albumProvider.notifier).removeAsset(album, [asset]); + final bool isSuccess = album != null && await ref.read(albumProvider.notifier).removeAsset(album, [asset]); if (isSuccess) { // Workaround for asset remaining in the gallery @@ -373,9 +360,7 @@ class BottomGalleryBar extends ConsumerWidget { unselectedItemColor: Colors.white, showSelectedLabels: true, showUnselectedLabels: true, - items: albumActions - .map((e) => e.keys.first) - .toList(growable: false), + items: albumActions.map((e) => e.keys.first).toList(growable: false), onTap: (index) { albumActions[index].values.first.call(index); }, diff --git a/mobile/lib/widgets/asset_viewer/cast_dialog.dart b/mobile/lib/widgets/asset_viewer/cast_dialog.dart index 9043ea4bea..a0373bcb6c 100644 --- a/mobile/lib/widgets/asset_viewer/cast_dialog.dart +++ b/mobile/lib/widgets/asset_viewer/cast_dialog.dart @@ -49,10 +49,8 @@ class CastDialog extends ConsumerWidget { } final devices = snapshot.data!; - final connected = - devices.where((d) => isCurrentDevice(d.$1)).toList(); - final others = - devices.where((d) => !isCurrentDevice(d.$1)).toList(); + final connected = devices.where((d) => isCurrentDevice(d.$1)).toList(); + final others = devices.where((d) => !isCurrentDevice(d.$1)).toList(); final List sectionedList = []; @@ -85,25 +83,18 @@ class CastDialog extends ConsumerWidget { ).tr(), ); } else { - final (deviceName, type, deviceObj) = - item as (String, CastDestinationType, dynamic); + final (deviceName, type, deviceObj) = item as (String, CastDestinationType, dynamic); return ListTile( title: Text( deviceName, style: TextStyle( - color: isCurrentDevice(deviceName) - ? context.colorScheme.primary - : null, + color: isCurrentDevice(deviceName) ? context.colorScheme.primary : null, ), ), leading: Icon( - type == CastDestinationType.googleCast - ? Icons.cast - : Icons.cast_connected, - color: isCurrentDevice(deviceName) - ? context.colorScheme.primary - : null, + type == CastDestinationType.googleCast ? Icons.cast : Icons.cast_connected, + color: isCurrentDevice(deviceName) ? context.colorScheme.primary : null, ), trailing: isCurrentDevice(deviceName) ? Icon(Icons.check, color: context.colorScheme.primary) @@ -120,9 +111,7 @@ class CastDialog extends ConsumerWidget { } if (!isCurrentDevice(deviceName)) { - ref - .read(castProvider.notifier) - .connect(type, deviceObj); + ref.read(castProvider.notifier).connect(type, deviceObj); } }, ); diff --git a/mobile/lib/widgets/asset_viewer/custom_video_player_controls.dart b/mobile/lib/widgets/asset_viewer/custom_video_player_controls.dart index 18565c8332..d70761f37d 100644 --- a/mobile/lib/widgets/asset_viewer/custom_video_player_controls.dart +++ b/mobile/lib/widgets/asset_viewer/custom_video_player_controls.dart @@ -24,8 +24,7 @@ class CustomVideoPlayerControls extends HookConsumerWidget { currentAssetProvider.select((asset) => asset != null && asset.isVideo), ); final showControls = ref.watch(showControlsProvider); - final VideoPlaybackState state = - ref.watch(videoPlaybackValueProvider.select((value) => value.state)); + final VideoPlaybackState state = ref.watch(videoPlaybackValueProvider.select((value) => value.state)); final cast = ref.watch(castProvider); @@ -39,15 +38,12 @@ class CustomVideoPlayerControls extends HookConsumerWidget { final state = ref.read(videoPlaybackValueProvider).state; // Do not hide on paused - if (state != VideoPlaybackState.paused && - state != VideoPlaybackState.completed && - assetIsVideo) { + if (state != VideoPlaybackState.paused && state != VideoPlaybackState.completed && assetIsVideo) { ref.read(showControlsProvider.notifier).show = false; } }, ); - final showBuffering = - state == VideoPlaybackState.buffering && !cast.isCasting; + final showBuffering = state == VideoPlaybackState.buffering && !cast.isCasting; /// Shows the controls and starts the timer to hide them void showControlsAndStartHideTimer() { @@ -56,8 +52,7 @@ class CustomVideoPlayerControls extends HookConsumerWidget { } // When we change position, show or hide timer - ref.listen(videoPlayerControlsProvider.select((v) => v.position), - (previous, next) { + ref.listen(videoPlayerControlsProvider.select((v) => v.position), (previous, next) { showControlsAndStartHideTimer(); }); @@ -105,14 +100,13 @@ class CustomVideoPlayerControls extends HookConsumerWidget { ) else GestureDetector( - onTap: () => - ref.read(showControlsProvider.notifier).show = false, + onTap: () => ref.read(showControlsProvider.notifier).show = false, child: CenterPlayButton( backgroundColor: Colors.black54, iconColor: Colors.white, isFinished: state == VideoPlaybackState.completed, - isPlaying: state == VideoPlaybackState.playing || - (cast.isCasting && cast.castState == CastState.playing), + isPlaying: + state == VideoPlaybackState.playing || (cast.isCasting && cast.castState == CastState.playing), show: assetIsVideo && showControls, onPressed: togglePlay, ), diff --git a/mobile/lib/widgets/asset_viewer/detail_panel/camera_info.dart b/mobile/lib/widgets/asset_viewer/detail_panel/camera_info.dart index aec18c6a16..bd859b8ced 100644 --- a/mobile/lib/widgets/asset_viewer/detail_panel/camera_info.dart +++ b/mobile/lib/widgets/asset_viewer/detail_panel/camera_info.dart @@ -24,10 +24,7 @@ class CameraInfo extends StatelessWidget { "${exifInfo.make} ${exifInfo.model}", style: context.textTheme.labelLarge, ), - subtitle: exifInfo.f != null || - exifInfo.exposureSeconds != null || - exifInfo.mm != null || - exifInfo.iso != null + subtitle: exifInfo.f != null || exifInfo.exposureSeconds != null || exifInfo.mm != null || exifInfo.iso != null ? Text( "ƒ/${exifInfo.fNumber} ${exifInfo.exposureTime} ${exifInfo.focalLength} mm ISO ${exifInfo.iso ?? ''} ", style: context.textTheme.bodySmall, diff --git a/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart b/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart index 8ad2cdc687..97c9477c97 100644 --- a/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart +++ b/mobile/lib/widgets/asset_viewer/detail_panel/detail_panel.dart @@ -24,9 +24,7 @@ class DetailPanel extends HookConsumerWidget { child: Column( children: [ AssetDateTime(asset: asset), - asset.isRemote - ? DescriptionInput(asset: asset) - : const SizedBox.shrink(), + asset.isRemote ? DescriptionInput(asset: asset) : const SizedBox.shrink(), PeopleInfo(asset: asset), AssetLocation(asset: asset), AssetDetails(asset: asset), diff --git a/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart b/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart index 4af9846cf6..486918c436 100644 --- a/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart +++ b/mobile/lib/widgets/asset_viewer/detail_panel/file_info.dart @@ -17,11 +17,8 @@ class FileInfo extends StatelessWidget { final height = asset.orientatedHeight ?? asset.height; final width = asset.orientatedWidth ?? asset.width; - String resolution = - height != null && width != null ? "$width x $height " : ""; - String fileSize = asset.exifInfo?.fileSize != null - ? formatBytes(asset.exifInfo!.fileSize!) - : ""; + String resolution = height != null && width != null ? "$width x $height " : ""; + String fileSize = asset.exifInfo?.fileSize != null ? formatBytes(asset.exifInfo!.fileSize!) : ""; String text = resolution + fileSize; final imgSizeString = text.isNotEmpty ? text : null; diff --git a/mobile/lib/widgets/asset_viewer/detail_panel/people_info.dart b/mobile/lib/widgets/asset_viewer/detail_panel/people_info.dart index cbb003bd72..a97a04a453 100644 --- a/mobile/lib/widgets/asset_viewer/detail_panel/people_info.dart +++ b/mobile/lib/widgets/asset_viewer/detail_panel/people_info.dart @@ -18,12 +18,8 @@ class PeopleInfo extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final peopleProvider = - ref.watch(assetPeopleNotifierProvider(asset).notifier); - final people = ref - .watch(assetPeopleNotifierProvider(asset)) - .value - ?.where((p) => !p.isHidden); + final peopleProvider = ref.watch(assetPeopleNotifierProvider(asset).notifier); + final people = ref.watch(assetPeopleNotifierProvider(asset)).value?.where((p) => !p.isHidden); showPersonNameEditModel( String personId, @@ -46,8 +42,7 @@ class PeopleInfo extends ConsumerWidget { (p) => SearchCuratedContent( id: p.id, label: p.name, - subtitle: p.birthDate != null && - p.birthDate!.isBefore(asset.fileCreatedAt) + subtitle: p.birthDate != null && p.birthDate!.isBefore(asset.fileCreatedAt) ? _formatAge(p.birthDate!, asset.fileCreatedAt) : null, ), @@ -56,9 +51,7 @@ class PeopleInfo extends ConsumerWidget { []; return AnimatedCrossFade( - crossFadeState: (people?.isEmpty ?? true) - ? CrossFadeState.showFirst - : CrossFadeState.showSecond, + crossFadeState: (people?.isEmpty ?? true) ? CrossFadeState.showFirst : CrossFadeState.showSecond, duration: const Duration(milliseconds: 200), firstChild: Container(), secondChild: Padding( @@ -109,22 +102,18 @@ class PeopleInfo extends ConsumerWidget { int ageInMonths = _calculateAgeInMonths(birthDate, referenceDate); if (ageInMonths <= 11) { - return "exif_bottom_sheet_person_age_months" - .tr(namedArgs: {'months': ageInMonths.toString()}); + return "exif_bottom_sheet_person_age_months".tr(namedArgs: {'months': ageInMonths.toString()}); } else if (ageInMonths > 12 && ageInMonths <= 23) { - return "exif_bottom_sheet_person_age_year_months" - .tr(namedArgs: {'months': (ageInMonths - 12).toString()}); + return "exif_bottom_sheet_person_age_year_months".tr(namedArgs: {'months': (ageInMonths - 12).toString()}); } else { - return "exif_bottom_sheet_person_age_years" - .tr(namedArgs: {'years': ageInYears.toString()}); + return "exif_bottom_sheet_person_age_years".tr(namedArgs: {'years': ageInYears.toString()}); } } int _calculateAge(DateTime birthDate, DateTime referenceDate) { int age = referenceDate.year - birthDate.year; if (referenceDate.month < birthDate.month || - (referenceDate.month == birthDate.month && - referenceDate.day < birthDate.day)) { + (referenceDate.month == birthDate.month && referenceDate.day < birthDate.day)) { age--; } return age; diff --git a/mobile/lib/widgets/asset_viewer/gallery_app_bar.dart b/mobile/lib/widgets/asset_viewer/gallery_app_bar.dart index f47e73ea78..1c24412259 100644 --- a/mobile/lib/widgets/asset_viewer/gallery_app_bar.dart +++ b/mobile/lib/widgets/asset_viewer/gallery_app_bar.dart @@ -34,17 +34,12 @@ class GalleryAppBar extends ConsumerWidget { return const SizedBox(); } final album = ref.watch(currentAlbumProvider); - final isOwner = - asset.ownerId == fastHash(ref.watch(currentUserProvider)?.id ?? ''); + final isOwner = asset.ownerId == fastHash(ref.watch(currentUserProvider)?.id ?? ''); final showControls = ref.watch(showControlsProvider); - final isPartner = ref - .watch(partnerSharedWithProvider) - .map((e) => fastHash(e.id)) - .contains(asset.ownerId); + final isPartner = ref.watch(partnerSharedWithProvider).map((e) => fastHash(e.id)).contains(asset.ownerId); - toggleFavorite(Asset asset) => - ref.read(assetProvider.notifier).toggleFavorite([asset]); + toggleFavorite(Asset asset) => ref.read(assetProvider.notifier).toggleFavorite([asset]); handleActivities() { if (album != null && album.shared && album.remoteId != null) { @@ -53,8 +48,7 @@ class GalleryAppBar extends ConsumerWidget { } handleRestore(Asset asset) async { - final result = - await ref.read(trashProvider.notifier).restoreAssets([asset]); + final result = await ref.read(trashProvider.notifier).restoreAssets([asset]); if (result && context.mounted) { ImmichToast.show( @@ -71,9 +65,7 @@ class GalleryAppBar extends ConsumerWidget { builder: (BuildContext _) { return UploadDialog( onUpload: () { - ref - .read(manualUploadProvider.notifier) - .uploadAssets(context, [asset]); + ref.read(manualUploadProvider.notifier).uploadAssets(context, [asset]); }, ); }, @@ -104,8 +96,7 @@ class GalleryAppBar extends ConsumerWidget { handleLocateAsset() async { // Go back to the gallery await context.maybePop(); - await context - .navigateTo(const TabControllerRoute(children: [PhotosRoute()])); + await context.navigateTo(const TabControllerRoute(children: [PhotosRoute()])); ref.read(tabProvider.notifier).update((state) => state = TabEnum.home); // Scroll to the asset's date scrollToDateNotifierProvider.scrollToDate(asset.fileCreatedAt); diff --git a/mobile/lib/widgets/asset_viewer/top_control_app_bar.dart b/mobile/lib/widgets/asset_viewer/top_control_app_bar.dart index a868aff617..1d04115b7c 100644 --- a/mobile/lib/widgets/asset_viewer/top_control_app_bar.dart +++ b/mobile/lib/widgets/asset_viewer/top_control_app_bar.dart @@ -49,12 +49,9 @@ class TopControlAppBar extends HookConsumerWidget { final a = ref.watch(assetWatcher(asset)).value ?? asset; final album = ref.watch(currentAlbumProvider); final isCasting = ref.watch(castProvider.select((c) => c.isCasting)); - final websocketConnected = - ref.watch(websocketProvider.select((c) => c.isConnected)); + final websocketConnected = ref.watch(websocketProvider.select((c) => c.isConnected)); - final comments = album != null && - album.remoteId != null && - asset.remoteId != null + final comments = album != null && album.remoteId != null && asset.remoteId != null ? ref.watch(activityStatisticsProvider(album.remoteId!, asset.remoteId)) : 0; @@ -204,24 +201,14 @@ class TopControlAppBar extends HookConsumerWidget { shape: const Border(), actions: [ if (asset.isRemote && isOwner) buildFavoriteButton(a), - if (isOwner && - !isInHomePage && - !(isInTrash ?? false) && - !isInLockedView) - buildLocateButton(), + if (isOwner && !isInHomePage && !(isInTrash ?? false) && !isInLockedView) buildLocateButton(), if (asset.livePhotoVideoId != null) const MotionPhotoButton(), if (asset.isLocal && !asset.isRemote) buildUploadButton(), if (asset.isRemote && !asset.isLocal && isOwner) buildDownloadButton(), - if (asset.isRemote && - (isOwner || isPartner) && - !asset.isTrashed && - !isInLockedView) - buildAddToAlbumButton(), - if (isCasting || (asset.isRemote && websocketConnected)) - buildCastButton(), + if (asset.isRemote && (isOwner || isPartner) && !asset.isTrashed && !isInLockedView) buildAddToAlbumButton(), + if (isCasting || (asset.isRemote && websocketConnected)) buildCastButton(), if (asset.isTrashed) buildRestoreButton(), - if (album != null && album.shared && !isInLockedView) - buildActivitiesButton(), + if (album != null && album.shared && !isInLockedView) buildActivitiesButton(), buildMoreInfoButton(), ], ); diff --git a/mobile/lib/widgets/asset_viewer/video_position.dart b/mobile/lib/widgets/asset_viewer/video_position.dart index 0e90669fe3..2bd2eb80bf 100644 --- a/mobile/lib/widgets/asset_viewer/video_position.dart +++ b/mobile/lib/widgets/asset_viewer/video_position.dart @@ -54,8 +54,7 @@ class VideoPosition extends HookConsumerWidget { activeColor: Colors.white, inactiveColor: whiteOpacity75, onChangeStart: (value) { - final state = - ref.read(videoPlaybackValueProvider).state; + final state = ref.read(videoPlaybackValueProvider).state; wasPlaying.value = state != VideoPlaybackState.paused; ref.read(videoPlayerControlsProvider.notifier).pause(); }, @@ -68,19 +67,14 @@ class VideoPosition extends HookConsumerWidget { final seekToDuration = (duration * (value / 100.0)); if (isCasting) { - ref - .read(castProvider.notifier) - .seekTo(seekToDuration); + ref.read(castProvider.notifier).seekTo(seekToDuration); return; } - ref - .read(videoPlayerControlsProvider.notifier) - .position = seekToDuration.inSeconds.toDouble(); + ref.read(videoPlayerControlsProvider.notifier).position = seekToDuration.inSeconds.toDouble(); // This immediately updates the slider position without waiting for the video to update - ref.read(videoPlaybackValueProvider.notifier).position = - seekToDuration; + ref.read(videoPlaybackValueProvider.notifier).position = seekToDuration; }, ), ), diff --git a/mobile/lib/widgets/backup/album_info_card.dart b/mobile/lib/widgets/backup/album_info_card.dart index fa113c6291..696168a384 100644 --- a/mobile/lib/widgets/backup/album_info_card.dart +++ b/mobile/lib/widgets/backup/album_info_card.dart @@ -23,13 +23,9 @@ class AlbumInfoCard extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final bool isSelected = - ref.watch(backupProvider).selectedBackupAlbums.contains(album); - final bool isExcluded = - ref.watch(backupProvider).excludedBackupAlbums.contains(album); - final syncAlbum = ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.syncAlbums); + final bool isSelected = ref.watch(backupProvider).selectedBackupAlbums.contains(album); + final bool isExcluded = ref.watch(backupProvider).excludedBackupAlbums.contains(album); + final syncAlbum = ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.syncAlbums); final isDarkTheme = context.isDarkTheme; @@ -37,10 +33,8 @@ class AlbumInfoCard extends HookConsumerWidget { context.primaryColor.withAlpha(100), BlendMode.darken, ); - ColorFilter excludedFilter = - ColorFilter.mode(Colors.red.withAlpha(75), BlendMode.darken); - ColorFilter unselectedFilter = - const ColorFilter.mode(Colors.black, BlendMode.color); + ColorFilter excludedFilter = ColorFilter.mode(Colors.red.withAlpha(75), BlendMode.darken); + ColorFilter unselectedFilter = const ColorFilter.mode(Colors.black, BlendMode.color); buildSelectedTextBox() { if (isSelected) { @@ -133,9 +127,7 @@ class AlbumInfoCard extends HookConsumerWidget { Radius.circular(12), // if you need this ), side: BorderSide( - color: isDarkTheme - ? const Color.fromARGB(255, 37, 35, 35) - : const Color(0xFFC9C9C9), + color: isDarkTheme ? const Color.fromARGB(255, 37, 35, 35) : const Color(0xFFC9C9C9), width: 1, ), ), @@ -190,8 +182,7 @@ class AlbumInfoCard extends HookConsumerWidget { Padding( padding: const EdgeInsets.only(top: 2.0), child: Text( - album.assetCount.toString() + - (album.isAll ? " (${'all'.tr()})" : ""), + album.assetCount.toString() + (album.isAll ? " (${'all'.tr()})" : ""), style: TextStyle( fontSize: 12, color: Colors.grey[600], diff --git a/mobile/lib/widgets/backup/album_info_list_tile.dart b/mobile/lib/widgets/backup/album_info_list_tile.dart index a263c004bd..7558b909bb 100644 --- a/mobile/lib/widgets/backup/album_info_list_tile.dart +++ b/mobile/lib/widgets/backup/album_info_list_tile.dart @@ -19,23 +19,15 @@ class AlbumInfoListTile extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final bool isSelected = - ref.watch(backupProvider).selectedBackupAlbums.contains(album); - final bool isExcluded = - ref.watch(backupProvider).excludedBackupAlbums.contains(album); - final syncAlbum = ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.syncAlbums); + final bool isSelected = ref.watch(backupProvider).selectedBackupAlbums.contains(album); + final bool isExcluded = ref.watch(backupProvider).excludedBackupAlbums.contains(album); + final syncAlbum = ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.syncAlbums); buildTileColor() { if (isSelected) { - return context.isDarkTheme - ? context.primaryColor.withAlpha(100) - : context.primaryColor.withAlpha(25); + return context.isDarkTheme ? context.primaryColor.withAlpha(100) : context.primaryColor.withAlpha(25); } else if (isExcluded) { - return context.isDarkTheme - ? Colors.red[300]?.withAlpha(150) - : Colors.red[100]?.withAlpha(150); + return context.isDarkTheme ? Colors.red[300]?.withAlpha(150) : Colors.red[100]?.withAlpha(150); } else { return Colors.transparent; } diff --git a/mobile/lib/widgets/backup/asset_info_table.dart b/mobile/lib/widgets/backup/asset_info_table.dart index 98bcc2b3da..a87832d3f1 100644 --- a/mobile/lib/widgets/backup/asset_info_table.dart +++ b/mobile/lib/widgets/backup/asset_info_table.dart @@ -82,9 +82,7 @@ class BackupAssetInfoTable extends ConsumerWidget { ), ).tr( namedArgs: { - 'date': isUploadInProgress - ? _getAssetCreationDate(asset) - : "-", + 'date': isUploadInProgress ? _getAssetCreationDate(asset) : "-", }, ), ), diff --git a/mobile/lib/widgets/backup/drift_album_info_list_tile.dart b/mobile/lib/widgets/backup/drift_album_info_list_tile.dart index 42178c972e..25d5bfef28 100644 --- a/mobile/lib/widgets/backup/drift_album_info_list_tile.dart +++ b/mobile/lib/widgets/backup/drift_album_info_list_tile.dart @@ -22,19 +22,13 @@ class DriftAlbumInfoListTile extends HookConsumerWidget { final bool isSelected = album.backupSelection == BackupSelection.selected; final bool isExcluded = album.backupSelection == BackupSelection.excluded; - final syncAlbum = ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.syncAlbums); + final syncAlbum = ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.syncAlbums); buildTileColor() { if (isSelected) { - return context.isDarkTheme - ? context.primaryColor.withAlpha(100) - : context.primaryColor.withAlpha(25); + return context.isDarkTheme ? context.primaryColor.withAlpha(100) : context.primaryColor.withAlpha(25); } else if (isExcluded) { - return context.isDarkTheme - ? Colors.red[300]?.withAlpha(150) - : Colors.red[100]?.withAlpha(150); + return context.isDarkTheme ? Colors.red[300]?.withAlpha(150) : Colors.red[100]?.withAlpha(150); } else { return Colors.transparent; } diff --git a/mobile/lib/widgets/backup/error_chip.dart b/mobile/lib/widgets/backup/error_chip.dart index 4df3e50f64..3c743a0903 100644 --- a/mobile/lib/widgets/backup/error_chip.dart +++ b/mobile/lib/widgets/backup/error_chip.dart @@ -11,8 +11,7 @@ class BackupErrorChip extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final hasErrors = - ref.watch(errorBackupListProvider.select((value) => value.isNotEmpty)); + final hasErrors = ref.watch(errorBackupListProvider.select((value) => value.isNotEmpty)); if (!hasErrors) { return const SizedBox(); } diff --git a/mobile/lib/widgets/backup/icloud_download_progress_bar.dart b/mobile/lib/widgets/backup/icloud_download_progress_bar.dart index c61fb1a0d1..7d292112ea 100644 --- a/mobile/lib/widgets/backup/icloud_download_progress_bar.dart +++ b/mobile/lib/widgets/backup/icloud_download_progress_bar.dart @@ -17,20 +17,17 @@ class IcloudDownloadProgressBar extends ConsumerWidget { final isIcloudAsset = isManualUpload ? ref.watch( - manualUploadProvider - .select((value) => value.currentUploadAsset.isIcloudAsset), + manualUploadProvider.select((value) => value.currentUploadAsset.isIcloudAsset), ) : ref.watch( - backupProvider - .select((value) => value.currentUploadAsset.isIcloudAsset), + backupProvider.select((value) => value.currentUploadAsset.isIcloudAsset), ); if (!isIcloudAsset) { return const SizedBox(); } - final iCloudDownloadProgress = ref - .watch(backupProvider.select((value) => value.iCloudDownloadProgress)); + final iCloudDownloadProgress = ref.watch(backupProvider.select((value) => value.iCloudDownloadProgress)); return Padding( padding: const EdgeInsets.only(top: 8.0), diff --git a/mobile/lib/widgets/backup/ios_debug_info_tile.dart b/mobile/lib/widgets/backup/ios_debug_info_tile.dart index de80b3bfd1..0f96e4cef6 100644 --- a/mobile/lib/widgets/backup/ios_debug_info_tile.dart +++ b/mobile/lib/widgets/backup/ios_debug_info_tile.dart @@ -24,8 +24,7 @@ class IosDebugInfoTile extends HookConsumerWidget { if (processes == 0) { title = 'ios_debug_info_no_processes_queued'.t(context: context); } else { - title = 'ios_debug_info_processes_queued' - .t(context: context, args: {'count': processes}); + title = 'ios_debug_info_processes_queued'.t(context: context, args: {'count': processes}); } final df = DateFormat.yMd().add_jm(); @@ -33,14 +32,11 @@ class IosDebugInfoTile extends HookConsumerWidget { if (fetch == null && processing == null) { subtitle = 'ios_debug_info_no_sync_yet'.t(context: context); } else if (fetch != null && processing == null) { - subtitle = 'ios_debug_info_fetch_ran_at' - .t(context: context, args: {'dateTime': df.format(fetch)}); + subtitle = 'ios_debug_info_fetch_ran_at'.t(context: context, args: {'dateTime': df.format(fetch)}); } else if (processing != null && fetch == null) { - subtitle = 'ios_debug_info_processing_ran_at' - .t(context: context, args: {'dateTime': df.format(processing)}); + subtitle = 'ios_debug_info_processing_ran_at'.t(context: context, args: {'dateTime': df.format(processing)}); } else { - final fetchOrProcessing = - fetch!.isAfter(processing!) ? fetch : processing; + final fetchOrProcessing = fetch!.isAfter(processing!) ? fetch : processing; subtitle = 'ios_debug_info_last_sync_at'.t( context: context, args: {'dateTime': df.format(fetchOrProcessing)}, diff --git a/mobile/lib/widgets/backup/upload_progress_bar.dart b/mobile/lib/widgets/backup/upload_progress_bar.dart index 9281914d9c..b11a8562b9 100644 --- a/mobile/lib/widgets/backup/upload_progress_bar.dart +++ b/mobile/lib/widgets/backup/upload_progress_bar.dart @@ -18,12 +18,10 @@ class BackupUploadProgressBar extends ConsumerWidget { final isIcloudAsset = isManualUpload ? ref.watch( - manualUploadProvider - .select((value) => value.currentUploadAsset.isIcloudAsset), + manualUploadProvider.select((value) => value.currentUploadAsset.isIcloudAsset), ) : ref.watch( - backupProvider - .select((value) => value.currentUploadAsset.isIcloudAsset), + backupProvider.select((value) => value.currentUploadAsset.isIcloudAsset), ); final uploadProgress = isManualUpload diff --git a/mobile/lib/widgets/common/app_bar_dialog/app_bar_dialog.dart b/mobile/lib/widgets/common/app_bar_dialog/app_bar_dialog.dart index 388f202b6d..e0fa03ba01 100644 --- a/mobile/lib/widgets/common/app_bar_dialog/app_bar_dialog.dart +++ b/mobile/lib/widgets/common/app_bar_dialog/app_bar_dialog.dart @@ -58,9 +58,7 @@ class ImmichAppBarDialog extends HookConsumerWidget { ), Center( child: Image.asset( - context.isDarkTheme - ? 'assets/immich-text-dark.png' - : 'assets/immich-text-light.png', + context.isDarkTheme ? 'assets/immich-text-dark.png' : 'assets/immich-text-light.png', height: 16, ), ), @@ -131,10 +129,7 @@ class ImmichAppBarDialog extends HookConsumerWidget { ok: "yes", onOk: () async { isLoggingOut.value = true; - await ref - .read(authProvider.notifier) - .logout() - .whenComplete(() => isLoggingOut.value = false); + await ref.read(authProvider.notifier).logout().whenComplete(() => isLoggingOut.value = false); ref.read(manualUploadProvider.notifier).cancelBackup(); ref.read(backupProvider.notifier).cancelBackup(); @@ -196,14 +191,12 @@ class ImmichAppBarDialog extends HookConsumerWidget { child: LinearProgressIndicator( minHeight: 10.0, value: percentage, - borderRadius: - const BorderRadius.all(Radius.circular(10.0)), + borderRadius: const BorderRadius.all(Radius.circular(10.0)), ), ), Padding( padding: const EdgeInsets.only(top: 12.0), - child: - const Text('backup_controller_page_storage_format').tr( + child: const Text('backup_controller_page_storage_format').tr( namedArgs: { 'used': usedDiskSpace, 'total': totalDiskSpace, diff --git a/mobile/lib/widgets/common/app_bar_dialog/app_bar_profile_info.dart b/mobile/lib/widgets/common/app_bar_dialog/app_bar_profile_info.dart index 0224ff030f..080c17e951 100644 --- a/mobile/lib/widgets/common/app_bar_dialog/app_bar_profile_info.dart +++ b/mobile/lib/widgets/common/app_bar_dialog/app_bar_profile_info.dart @@ -17,8 +17,7 @@ class AppBarProfileInfoBox extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final authState = ref.watch(authProvider); - final uploadProfileImageStatus = - ref.watch(uploadProfileImageProvider).status; + final uploadProfileImageStatus = ref.watch(uploadProfileImageProvider).status; final user = ref.watch(currentUserProvider); buildUserProfileImage() { @@ -55,12 +54,10 @@ class AppBarProfileInfoBox extends HookConsumerWidget { ); if (image != null) { - var success = - await ref.watch(uploadProfileImageProvider.notifier).upload(image); + var success = await ref.watch(uploadProfileImageProvider.notifier).upload(image); if (success) { - final profileImagePath = - ref.read(uploadProfileImageProvider).profileImagePath; + final profileImagePath = ref.read(uploadProfileImageProvider).profileImagePath; ref.watch(authProvider.notifier).updateUserProfileImagePath( profileImagePath, ); diff --git a/mobile/lib/widgets/common/app_bar_dialog/app_bar_server_info.dart b/mobile/lib/widgets/common/app_bar_dialog/app_bar_server_info.dart index a867a11e00..6b990c1c08 100644 --- a/mobile/lib/widgets/common/app_bar_dialog/app_bar_server_info.dart +++ b/mobile/lib/widgets/common/app_bar_dialog/app_bar_server_info.dart @@ -173,12 +173,10 @@ class AppBarServerInfo extends HookConsumerWidget { verticalOffset: 0, decoration: BoxDecoration( color: context.primaryColor.withValues(alpha: 0.9), - borderRadius: - const BorderRadius.all(Radius.circular(10)), + borderRadius: const BorderRadius.all(Radius.circular(10)), ), textStyle: TextStyle( - color: - context.isDarkTheme ? Colors.black : Colors.white, + color: context.isDarkTheme ? Colors.black : Colors.white, fontWeight: FontWeight.bold, ), message: getServerUrl() ?? '--', diff --git a/mobile/lib/widgets/common/date_time_picker.dart b/mobile/lib/widgets/common/date_time_picker.dart index 064c4845fe..92d0b48684 100644 --- a/mobile/lib/widgets/common/date_time_picker.dart +++ b/mobile/lib/widgets/common/date_time_picker.dart @@ -73,10 +73,7 @@ class _DateTimePicker extends HookWidget { // returns a list of location along with it's offset in duration List<_TimeZoneOffset> getAllTimeZones() { - return tz.timeZoneDatabase.locations.values - .map(_TimeZoneOffset.fromLocation) - .sorted() - .toList(); + return tz.timeZoneDatabase.locations.values.map(_TimeZoneOffset.fromLocation).sorted().toList(); } @override @@ -125,11 +122,9 @@ class _DateTimePicker extends HookWidget { } void popWithDateTime() { - final formattedDateTime = - DateFormat("yyyy-MM-dd'T'HH:mm:ss").format(date.value); - final dtWithOffset = formattedDateTime + - Duration(milliseconds: tzOffset.value.offsetInMilliseconds) - .formatAsOffset(); + final formattedDateTime = DateFormat("yyyy-MM-dd'T'HH:mm:ss").format(date.value); + final dtWithOffset = + formattedDateTime + Duration(milliseconds: tzOffset.value.offsetInMilliseconds).formatAsOffset(); context.pop(dtWithOffset); } @@ -245,19 +240,15 @@ class _TimeZoneOffset implements Comparable<_TimeZoneOffset> { } @override - String toString() => - '_TimeZoneOffset(display: $display, location: $location)'; + String toString() => '_TimeZoneOffset(display: $display, location: $location)'; @override bool operator ==(Object other) { if (identical(this, other)) return true; - return other is _TimeZoneOffset && - other.display == display && - other.offsetInMilliseconds == offsetInMilliseconds; + return other is _TimeZoneOffset && other.display == display && other.offsetInMilliseconds == offsetInMilliseconds; } @override - int get hashCode => - display.hashCode ^ offsetInMilliseconds.hashCode ^ location.hashCode; + int get hashCode => display.hashCode ^ offsetInMilliseconds.hashCode ^ location.hashCode; } diff --git a/mobile/lib/widgets/common/drag_sheet.dart b/mobile/lib/widgets/common/drag_sheet.dart index a98e000e51..0e4651d819 100644 --- a/mobile/lib/widgets/common/drag_sheet.dart +++ b/mobile/lib/widgets/common/drag_sheet.dart @@ -33,8 +33,7 @@ class ControlBoxButton extends StatelessWidget { @override Widget build(BuildContext context) { - final minWidth = - context.isMobile ? MediaQuery.sizeOf(context).width / 4.5 : 75.0; + final minWidth = context.isMobile ? MediaQuery.sizeOf(context).width / 4.5 : 75.0; return MaterialButton( padding: const EdgeInsets.all(10), diff --git a/mobile/lib/widgets/common/dropdown_search_menu.dart b/mobile/lib/widgets/common/dropdown_search_menu.dart index cf954a8977..cde60b2afb 100644 --- a/mobile/lib/widgets/common/dropdown_search_menu.dart +++ b/mobile/lib/widgets/common/dropdown_search_menu.dart @@ -30,8 +30,7 @@ class DropdownSearchMenu extends HookWidget { @override Widget build(BuildContext context) { final selectedItem = useState?>( - dropdownMenuEntries - .firstWhereOrNull((item) => item.value == initialSelection), + dropdownMenuEntries.firstWhereOrNull((item) => item.value == initialSelection), ); final showTimeZoneDropdown = useState(false); @@ -77,10 +76,7 @@ class DropdownSearchMenu extends HookWidget { displayStringForOption: (option) => option.label, optionsBuilder: (textEditingValue) { return dropdownMenuEntries.where( - (item) => item.label - .toLowerCase() - .trim() - .contains(textEditingValue.text.toLowerCase().trim()), + (item) => item.label.toLowerCase().trim().contains(textEditingValue.text.toLowerCase().trim()), ); }, onSelected: (option) { @@ -127,9 +123,7 @@ class DropdownSearchMenu extends HookWidget { onTap: () => onSelected(option), child: Builder( builder: (BuildContext context) { - final bool highlight = - AutocompleteHighlightedOption.of(context) == - index; + final bool highlight = AutocompleteHighlightedOption.of(context) == index; if (highlight) { SchedulerBinding.instance.addPostFrameCallback( (Duration timeStamp) { @@ -142,12 +136,7 @@ class DropdownSearchMenu extends HookWidget { ); } return Container( - color: highlight - ? Theme.of(context) - .colorScheme - .onSurface - .withValues(alpha: 0.12) - : null, + color: highlight ? Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.12) : null, padding: const EdgeInsets.all(16.0), child: Text( option.label, diff --git a/mobile/lib/widgets/common/immich_app_bar.dart b/mobile/lib/widgets/common/immich_app_bar.dart index dbf088c112..0d77e02aa5 100644 --- a/mobile/lib/widgets/common/immich_app_bar.dart +++ b/mobile/lib/widgets/common/immich_app_bar.dart @@ -27,8 +27,7 @@ class ImmichAppBar extends ConsumerWidget implements PreferredSizeWidget { @override Widget build(BuildContext context, WidgetRef ref) { final BackUpState backupState = ref.watch(backupProvider); - final bool isEnableAutoBackup = - backupState.backgroundBackup || backupState.autoBackup; + final bool isEnableAutoBackup = backupState.backgroundBackup || backupState.autoBackup; final ServerInfo serverInfoState = ref.watch(serverInfoProvider); final user = ref.watch(currentUserProvider); final isDarkTheme = context.isDarkTheme; @@ -57,9 +56,8 @@ class ImmichAppBar extends ConsumerWidget implements PreferredSizeWidget { ), backgroundColor: Colors.transparent, alignment: Alignment.bottomRight, - isLabelVisible: serverInfoState.isVersionMismatch || - ((user?.isAdmin ?? false) && - serverInfoState.isNewReleaseAvailable), + isLabelVisible: + serverInfoState.isVersionMismatch || ((user?.isAdmin ?? false) && serverInfoState.isNewReleaseAvailable), offset: const Offset(-2, -12), child: user == null ? const Icon( @@ -92,8 +90,7 @@ class ImmichAppBar extends ConsumerWidget implements PreferredSizeWidget { semanticsLabel: 'backup_controller_page_backup'.tr(), ), ); - } else if (backupState.backupProgress != - BackUpProgressEnum.inBackground && + } else if (backupState.backupProgress != BackUpProgressEnum.inBackground && backupState.backupProgress != BackUpProgressEnum.manualInProgress) { return Icon( Icons.check_outlined, diff --git a/mobile/lib/widgets/common/immich_image.dart b/mobile/lib/widgets/common/immich_image.dart index cbad9037c0..f51748edd6 100644 --- a/mobile/lib/widgets/common/immich_image.dart +++ b/mobile/lib/widgets/common/immich_image.dart @@ -59,8 +59,7 @@ class ImmichImage extends StatelessWidget { // Whether to use the local asset image provider or a remote one static bool useLocal(Asset asset) => - !asset.isRemote || - asset.isLocal && !Store.get(StoreKey.preferRemoteImage, false); + !asset.isRemote || asset.isLocal && !Store.get(StoreKey.preferRemoteImage, false); @override Widget build(BuildContext context) { diff --git a/mobile/lib/widgets/common/immich_sliver_app_bar.dart b/mobile/lib/widgets/common/immich_sliver_app_bar.dart index 09c84e0c20..9f84b7cd7f 100644 --- a/mobile/lib/widgets/common/immich_sliver_app_bar.dart +++ b/mobile/lib/widgets/common/immich_sliver_app_bar.dart @@ -41,8 +41,7 @@ class ImmichSliverAppBar extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final isCasting = ref.watch(castProvider.select((c) => c.isCasting)); - final isMultiSelectEnabled = - ref.watch(multiSelectProvider.select((s) => s.isEnabled)); + final isMultiSelectEnabled = ref.watch(multiSelectProvider.select((s) => s.isEnabled)); return SliverAnimatedOpacity( duration: Durations.medium1, @@ -116,8 +115,7 @@ class _ImmichLogoWithText extends StatelessWidget { Builder( builder: (context) { return Badge( - padding: - const EdgeInsets.symmetric(horizontal: 6, vertical: 4), + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 4), backgroundColor: context.primaryColor, alignment: Alignment.centerRight, offset: const Offset(16, -8), @@ -180,8 +178,8 @@ class _ProfileIndicator extends ConsumerWidget { ), backgroundColor: Colors.transparent, alignment: Alignment.bottomRight, - isLabelVisible: serverInfoState.isVersionMismatch || - ((user?.isAdmin ?? false) && serverInfoState.isNewReleaseAvailable), + isLabelVisible: + serverInfoState.isVersionMismatch || ((user?.isAdmin ?? false) && serverInfoState.isNewReleaseAvailable), offset: const Offset(-2, -12), child: user == null ? const Icon( @@ -241,8 +239,7 @@ class _BackupIndicator extends ConsumerWidget { Widget? _getBackupBadgeIcon(BuildContext context, WidgetRef ref) { final BackUpState backupState = ref.watch(backupProvider); - final bool isEnableAutoBackup = - backupState.backgroundBackup || backupState.autoBackup; + final bool isEnableAutoBackup = backupState.backgroundBackup || backupState.autoBackup; final isDarkTheme = context.isDarkTheme; final iconColor = isDarkTheme ? Colors.white : Colors.black; @@ -257,8 +254,7 @@ class _BackupIndicator extends ConsumerWidget { semanticsLabel: 'backup_controller_page_backup'.tr(), ), ); - } else if (backupState.backupProgress != - BackUpProgressEnum.inBackground && + } else if (backupState.backupProgress != BackUpProgressEnum.inBackground && backupState.backupProgress != BackUpProgressEnum.manualInProgress) { return Icon( Icons.check_outlined, @@ -286,12 +282,10 @@ class _SyncStatusIndicator extends ConsumerStatefulWidget { const _SyncStatusIndicator(); @override - ConsumerState<_SyncStatusIndicator> createState() => - _SyncStatusIndicatorState(); + ConsumerState<_SyncStatusIndicator> createState() => _SyncStatusIndicatorState(); } -class _SyncStatusIndicatorState extends ConsumerState<_SyncStatusIndicator> - with TickerProviderStateMixin { +class _SyncStatusIndicatorState extends ConsumerState<_SyncStatusIndicator> with TickerProviderStateMixin { late AnimationController _rotationController; late AnimationController _dismissalController; late Animation _rotationAnimation; @@ -349,8 +343,7 @@ class _SyncStatusIndicatorState extends ConsumerState<_SyncStatusIndicator> } // Don't show anything if not syncing and dismissal animation is complete - if (!isSyncing && - _dismissalController.status == AnimationStatus.completed) { + if (!isSyncing && _dismissalController.status == AnimationStatus.completed) { return const SizedBox.shrink(); } @@ -364,10 +357,7 @@ class _SyncStatusIndicatorState extends ConsumerState<_SyncStatusIndicator> child: Opacity( opacity: isSyncing ? 1.0 : _dismissalAnimation.value, child: Transform.rotate( - angle: _rotationAnimation.value * - 2 * - 3.14159 * - -1, // Rotate counter-clockwise + angle: _rotationAnimation.value * 2 * 3.14159 * -1, // Rotate counter-clockwise child: Icon( Icons.sync, size: 24, diff --git a/mobile/lib/widgets/common/immich_thumbnail.dart b/mobile/lib/widgets/common/immich_thumbnail.dart index 0918348f4c..5e3bb610d8 100644 --- a/mobile/lib/widgets/common/immich_thumbnail.dart +++ b/mobile/lib/widgets/common/immich_thumbnail.dart @@ -93,8 +93,7 @@ class ImmichThumbnail extends HookConsumerWidget { customErrorBuilder(BuildContext ctx, Object error, StackTrace? stackTrace) { thumbnailProviderInstance.evict(); - final originalErrorWidgetBuilder = - blurHashErrorBuilder(blurhash, fit: fit); + final originalErrorWidgetBuilder = blurHashErrorBuilder(blurhash, fit: fit); return originalErrorWidgetBuilder(ctx, error, stackTrace); } diff --git a/mobile/lib/widgets/common/immich_title_text.dart b/mobile/lib/widgets/common/immich_title_text.dart index 711d0bf396..456ecdc9cf 100644 --- a/mobile/lib/widgets/common/immich_title_text.dart +++ b/mobile/lib/widgets/common/immich_title_text.dart @@ -15,9 +15,7 @@ class ImmichTitleText extends StatelessWidget { Widget build(BuildContext context) { return Image( image: AssetImage( - context.isDarkTheme - ? 'assets/immich-text-dark.png' - : 'assets/immich-text-light.png', + context.isDarkTheme ? 'assets/immich-text-dark.png' : 'assets/immich-text-light.png', ), width: fontSize * 4, filterQuality: FilterQuality.high, diff --git a/mobile/lib/widgets/common/location_picker.dart b/mobile/lib/widgets/common/location_picker.dart index 7bfdf296bb..81f8440836 100644 --- a/mobile/lib/widgets/common/location_picker.dart +++ b/mobile/lib/widgets/common/location_picker.dart @@ -56,8 +56,7 @@ class _LocationPicker extends HookWidget { ? _MapPicker( key: ValueKey(latlng), latlng: latlng, - onModeSwitch: () => - pickerMode.value = _LocationPickerMode.manual, + onModeSwitch: () => pickerMode.value = _LocationPickerMode.manual, onMapTap: onMapTap, ) : _ManualPicker( @@ -141,8 +140,7 @@ class _ManualPickerInput extends HookWidget { errorText: isValid.value ? null : errorText.tr(), ), onEditingComplete: onEditingComplete, - keyboardType: - const TextInputType.numberWithOptions(decimal: true, signed: true), + keyboardType: const TextInputType.numberWithOptions(decimal: true, signed: true), inputFormatters: [LengthLimitingTextInputFormatter(8)], onTapOutside: (_) => focusNode.unfocus(), ); diff --git a/mobile/lib/widgets/common/mesmerizing_sliver_app_bar.dart b/mobile/lib/widgets/common/mesmerizing_sliver_app_bar.dart index eecc099a9e..2130a07866 100644 --- a/mobile/lib/widgets/common/mesmerizing_sliver_app_bar.dart +++ b/mobile/lib/widgets/common/mesmerizing_sliver_app_bar.dart @@ -23,12 +23,10 @@ class MesmerizingSliverAppBar extends ConsumerStatefulWidget { final String title; final IconData icon; @override - ConsumerState createState() => - _MesmerizingSliverAppBarState(); + ConsumerState createState() => _MesmerizingSliverAppBarState(); } -class _MesmerizingSliverAppBarState - extends ConsumerState { +class _MesmerizingSliverAppBarState extends ConsumerState { double _scrollProgress = 0.0; double _calculateScrollProgress(FlexibleSpaceBarSettings? settings) { @@ -41,14 +39,12 @@ class _MesmerizingSliverAppBarState return 1.0; } - return (1.0 - (settings.currentExtent - settings.minExtent) / deltaExtent) - .clamp(0.0, 1.0); + return (1.0 - (settings.currentExtent - settings.minExtent) / deltaExtent).clamp(0.0, 1.0); } @override Widget build(BuildContext context) { - final isMultiSelectEnabled = - ref.watch(multiSelectProvider.select((s) => s.isEnabled)); + final isMultiSelectEnabled = ref.watch(multiSelectProvider.select((s) => s.isEnabled)); return isMultiSelectEnabled ? SliverToBoxAdapter( @@ -65,9 +61,7 @@ class _MesmerizingSliverAppBarState elevation: 0, leading: IconButton( icon: Icon( - Platform.isIOS - ? Icons.arrow_back_ios_new_rounded - : Icons.arrow_back, + Platform.isIOS ? Icons.arrow_back_ios_new_rounded : Icons.arrow_back, color: Color.lerp( Colors.white, context.primaryColor, @@ -93,8 +87,7 @@ class _MesmerizingSliverAppBarState ), flexibleSpace: Builder( builder: (context) { - final settings = context.dependOnInheritedWidgetOfExactType< - FlexibleSpaceBarSettings>(); + final settings = context.dependOnInheritedWidgetOfExactType(); final scrollProgress = _calculateScrollProgress(settings); // Update scroll progress for the leading button @@ -145,12 +138,10 @@ class _ExpandedBackground extends ConsumerStatefulWidget { }); @override - ConsumerState<_ExpandedBackground> createState() => - _ExpandedBackgroundState(); + ConsumerState<_ExpandedBackground> createState() => _ExpandedBackgroundState(); } -class _ExpandedBackgroundState extends ConsumerState<_ExpandedBackground> - with SingleTickerProviderStateMixin { +class _ExpandedBackgroundState extends ConsumerState<_ExpandedBackground> with SingleTickerProviderStateMixin { late AnimationController _slideController; late Animation _slideAnimation; @@ -278,8 +269,7 @@ class _ItemCountTextState extends ConsumerState<_ItemCountText> { @override void initState() { super.initState(); - _reloadSubscription = - EventStream.shared.listen((_) => setState(() {})); + _reloadSubscription = EventStream.shared.listen((_) => setState(() {})); } @override @@ -328,8 +318,7 @@ class _RandomAssetBackground extends StatefulWidget { State<_RandomAssetBackground> createState() => _RandomAssetBackgroundState(); } -class _RandomAssetBackgroundState extends State<_RandomAssetBackground> - with TickerProviderStateMixin { +class _RandomAssetBackgroundState extends State<_RandomAssetBackground> with TickerProviderStateMixin { late AnimationController _zoomController; late AnimationController _crossFadeController; late Animation _zoomAnimation; @@ -500,8 +489,7 @@ class _RandomAssetBackgroundState extends State<_RandomAssetBackground> alignment: Alignment.topRight, image: getFullImageProvider(_currentAsset!), fit: BoxFit.cover, - frameBuilder: - (context, child, frame, wasSynchronouslyLoaded) { + frameBuilder: (context, child, frame, wasSynchronouslyLoaded) { if (wasSynchronouslyLoaded || frame != null) { return child; } @@ -532,8 +520,7 @@ class _RandomAssetBackgroundState extends State<_RandomAssetBackground> alignment: Alignment.topRight, image: getFullImageProvider(_nextAsset!), fit: BoxFit.cover, - frameBuilder: - (context, child, frame, wasSynchronouslyLoaded) { + frameBuilder: (context, child, frame, wasSynchronouslyLoaded) { if (wasSynchronouslyLoaded || frame != null) { return child; } diff --git a/mobile/lib/widgets/common/remote_album_sliver_app_bar.dart b/mobile/lib/widgets/common/remote_album_sliver_app_bar.dart index 41eed09d8c..6f26c87da7 100644 --- a/mobile/lib/widgets/common/remote_album_sliver_app_bar.dart +++ b/mobile/lib/widgets/common/remote_album_sliver_app_bar.dart @@ -35,12 +35,10 @@ class RemoteAlbumSliverAppBar extends ConsumerStatefulWidget { final void Function()? onEditTitle; @override - ConsumerState createState() => - _MesmerizingSliverAppBarState(); + ConsumerState createState() => _MesmerizingSliverAppBarState(); } -class _MesmerizingSliverAppBarState - extends ConsumerState { +class _MesmerizingSliverAppBarState extends ConsumerState { double _scrollProgress = 0.0; double _calculateScrollProgress(FlexibleSpaceBarSettings? settings) { @@ -53,14 +51,12 @@ class _MesmerizingSliverAppBarState return 1.0; } - return (1.0 - (settings.currentExtent - settings.minExtent) / deltaExtent) - .clamp(0.0, 1.0); + return (1.0 - (settings.currentExtent - settings.minExtent) / deltaExtent).clamp(0.0, 1.0); } @override Widget build(BuildContext context) { - final isMultiSelectEnabled = - ref.watch(multiSelectProvider.select((s) => s.isEnabled)); + final isMultiSelectEnabled = ref.watch(multiSelectProvider.select((s) => s.isEnabled)); final currentAlbum = ref.watch(currentRemoteAlbumProvider); if (currentAlbum == null) { @@ -103,9 +99,7 @@ class _MesmerizingSliverAppBarState elevation: 0, leading: IconButton( icon: Icon( - Platform.isIOS - ? Icons.arrow_back_ios_new_rounded - : Icons.arrow_back, + Platform.isIOS ? Icons.arrow_back_ios_new_rounded : Icons.arrow_back, color: actionIconColor, shadows: actionIconShadows, ), @@ -136,8 +130,7 @@ class _MesmerizingSliverAppBarState ], flexibleSpace: Builder( builder: (context) { - final settings = context.dependOnInheritedWidgetOfExactType< - FlexibleSpaceBarSettings>(); + final settings = context.dependOnInheritedWidgetOfExactType(); final scrollProgress = _calculateScrollProgress(settings); // Update scroll progress for the leading button @@ -188,12 +181,10 @@ class _ExpandedBackground extends ConsumerStatefulWidget { }); @override - ConsumerState<_ExpandedBackground> createState() => - _ExpandedBackgroundState(); + ConsumerState<_ExpandedBackground> createState() => _ExpandedBackgroundState(); } -class _ExpandedBackgroundState extends ConsumerState<_ExpandedBackground> - with SingleTickerProviderStateMixin { +class _ExpandedBackgroundState extends ConsumerState<_ExpandedBackground> with SingleTickerProviderStateMixin { late AnimationController _slideController; late Animation _slideAnimation; @@ -405,8 +396,7 @@ class _ItemCountTextState extends ConsumerState<_ItemCountText> { @override void initState() { super.initState(); - _reloadSubscription = - EventStream.shared.listen((_) => setState(() {})); + _reloadSubscription = EventStream.shared.listen((_) => setState(() {})); } @override @@ -453,8 +443,7 @@ class _RandomAssetBackground extends StatefulWidget { State<_RandomAssetBackground> createState() => _RandomAssetBackgroundState(); } -class _RandomAssetBackgroundState extends State<_RandomAssetBackground> - with TickerProviderStateMixin { +class _RandomAssetBackgroundState extends State<_RandomAssetBackground> with TickerProviderStateMixin { late AnimationController _zoomController; late AnimationController _crossFadeController; late Animation _zoomAnimation; @@ -625,8 +614,7 @@ class _RandomAssetBackgroundState extends State<_RandomAssetBackground> alignment: Alignment.topRight, image: getFullImageProvider(_currentAsset!), fit: BoxFit.cover, - frameBuilder: - (context, child, frame, wasSynchronouslyLoaded) { + frameBuilder: (context, child, frame, wasSynchronouslyLoaded) { if (wasSynchronouslyLoaded || frame != null) { return child; } @@ -657,8 +645,7 @@ class _RandomAssetBackgroundState extends State<_RandomAssetBackground> alignment: Alignment.topRight, image: getFullImageProvider(_nextAsset!), fit: BoxFit.cover, - frameBuilder: - (context, child, frame, wasSynchronouslyLoaded) { + frameBuilder: (context, child, frame, wasSynchronouslyLoaded) { if (wasSynchronouslyLoaded || frame != null) { return child; } diff --git a/mobile/lib/widgets/common/scaffold_error_body.dart b/mobile/lib/widgets/common/scaffold_error_body.dart index 5011d229e7..f1d7685f73 100644 --- a/mobile/lib/widgets/common/scaffold_error_body.dart +++ b/mobile/lib/widgets/common/scaffold_error_body.dart @@ -27,8 +27,7 @@ class ScaffoldErrorBody extends StatelessWidget { child: Icon( Icons.error_outline, size: 100, - color: - context.themeData.iconTheme.color?.withValues(alpha: 0.5), + color: context.themeData.iconTheme.color?.withValues(alpha: 0.5), ), ), ), diff --git a/mobile/lib/widgets/common/selection_sliver_app_bar.dart b/mobile/lib/widgets/common/selection_sliver_app_bar.dart index 2f06934bc0..4a6dbbf385 100644 --- a/mobile/lib/widgets/common/selection_sliver_app_bar.dart +++ b/mobile/lib/widgets/common/selection_sliver_app_bar.dart @@ -12,8 +12,7 @@ class SelectionSliverAppBar extends ConsumerStatefulWidget { }); @override - ConsumerState createState() => - _SelectionSliverAppBarState(); + ConsumerState createState() => _SelectionSliverAppBarState(); } class _SelectionSliverAppBarState extends ConsumerState { diff --git a/mobile/lib/widgets/common/thumbhash_placeholder.dart b/mobile/lib/widgets/common/thumbhash_placeholder.dart index aa320f4230..f73aa869f7 100644 --- a/mobile/lib/widgets/common/thumbhash_placeholder.dart +++ b/mobile/lib/widgets/common/thumbhash_placeholder.dart @@ -13,8 +13,7 @@ OctoSet blurHashOrPlaceholder( }) { return OctoSet( placeholderBuilder: blurHashPlaceholderBuilder(blurhash, fit: fit), - errorBuilder: - blurHashErrorBuilder(blurhash, fit: fit, message: errorMessage), + errorBuilder: blurHashErrorBuilder(blurhash, fit: fit, message: errorMessage), ); } diff --git a/mobile/lib/widgets/common/user_avatar.dart b/mobile/lib/widgets/common/user_avatar.dart index a5a6fa2bdd..ff0e39f371 100644 --- a/mobile/lib/widgets/common/user_avatar.dart +++ b/mobile/lib/widgets/common/user_avatar.dart @@ -7,8 +7,7 @@ import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/services/api.service.dart'; Widget userAvatar(BuildContext context, UserDto u, {double? radius}) { - final url = - "${Store.get(StoreKey.serverEndpoint)}/users/${u.id}/profile-image"; + final url = "${Store.get(StoreKey.serverEndpoint)}/users/${u.id}/profile-image"; final nameFirstLetter = u.name.isNotEmpty ? u.name[0] : ""; return CircleAvatar( radius: radius, diff --git a/mobile/lib/widgets/common/user_circle_avatar.dart b/mobile/lib/widgets/common/user_circle_avatar.dart index 479c30d6da..c1d34c4baa 100644 --- a/mobile/lib/widgets/common/user_circle_avatar.dart +++ b/mobile/lib/widgets/common/user_circle_avatar.dart @@ -34,9 +34,7 @@ class UserCircleAvatar extends ConsumerWidget { style: TextStyle( fontWeight: FontWeight.bold, fontSize: 12, - color: userAvatarColor.computeLuminance() > 0.5 - ? Colors.black - : Colors.white, + color: userAvatarColor.computeLuminance() > 0.5 ? Colors.black : Colors.white, ), child: Text(user.name[0].toUpperCase()), ); diff --git a/mobile/lib/widgets/forms/change_password_form.dart b/mobile/lib/widgets/forms/change_password_form.dart index 1c7eed7e5b..d5fdf570dd 100644 --- a/mobile/lib/widgets/forms/change_password_form.dart +++ b/mobile/lib/widgets/forms/change_password_form.dart @@ -17,10 +17,8 @@ class ChangePasswordForm extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final passwordController = - useTextEditingController.fromValue(TextEditingValue.empty); - final confirmPasswordController = - useTextEditingController.fromValue(TextEditingValue.empty); + final passwordController = useTextEditingController.fromValue(TextEditingValue.empty); + final confirmPasswordController = useTextEditingController.fromValue(TextEditingValue.empty); final authState = ref.watch(authProvider); final formKey = GlobalKey(); @@ -72,20 +70,15 @@ class ChangePasswordForm extends HookConsumerWidget { passwordController: passwordController, onPressed: () async { if (formKey.currentState!.validate()) { - var isSuccess = await ref - .read(authProvider.notifier) - .changePassword(passwordController.value.text); + var isSuccess = + await ref.read(authProvider.notifier).changePassword(passwordController.value.text); if (isSuccess) { await ref.read(authProvider.notifier).logout(); - ref - .read(manualUploadProvider.notifier) - .cancelBackup(); + ref.read(manualUploadProvider.notifier).cancelBackup(); ref.read(backupProvider.notifier).cancelBackup(); - await ref - .read(assetProvider.notifier) - .clearAllAssets(); + await ref.read(assetProvider.notifier).clearAllAssets(); ref.read(websocketProvider.notifier).disconnect(); AutoRouter.of(context).back(); diff --git a/mobile/lib/widgets/forms/login/login_form.dart b/mobile/lib/widgets/forms/login/login_form.dart index 24a73b2cbc..7ac070b912 100644 --- a/mobile/lib/widgets/forms/login/login_form.dart +++ b/mobile/lib/widgets/forms/login/login_form.dart @@ -43,12 +43,9 @@ class LoginForm extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final emailController = - useTextEditingController.fromValue(TextEditingValue.empty); - final passwordController = - useTextEditingController.fromValue(TextEditingValue.empty); - final serverEndpointController = - useTextEditingController.fromValue(TextEditingValue.empty); + final emailController = useTextEditingController.fromValue(TextEditingValue.empty); + final passwordController = useTextEditingController.fromValue(TextEditingValue.empty); + final serverEndpointController = useTextEditingController.fromValue(TextEditingValue.empty); final emailFocusNode = useFocusNode(); final passwordFocusNode = useFocusNode(); final serverEndpointFocusNode = useFocusNode(); @@ -102,8 +99,7 @@ class LoginForm extends HookConsumerWidget { try { isLoadingServer.value = true; - final endpoint = - await ref.read(authProvider.notifier).validateServerUrl(serverUrl); + final endpoint = await ref.read(authProvider.notifier).validateServerUrl(serverUrl); // Fetch and load server config and features await ref.read(serverInfoProvider.notifier).getServerInfo(); @@ -114,9 +110,7 @@ class LoginForm extends HookConsumerWidget { isOauthEnable.value = features.oauthEnabled; isPasswordLoginEnable.value = features.passwordLogin; - oAuthButtonLabel.value = config.oauthButtonText.isNotEmpty - ? config.oauthButtonText - : 'OAuth'; + oAuthButtonLabel.value = config.oauthButtonText.isNotEmpty ? config.oauthButtonText : 'OAuth'; serverEndpoint.value = endpoint; } on ApiException catch (e) { @@ -196,9 +190,7 @@ class LoginForm extends HookConsumerWidget { } else { final isBeta = Store.isBetaTimelineEnabled; if (isBeta) { - await ref - .read(galleryPermissionNotifier.notifier) - .requestGalleryPermission(); + await ref.read(galleryPermissionNotifier.notifier).requestGalleryPermission(); await runNewSync(ref); context.replaceRoute(const TabShellRoute()); return; @@ -218,8 +210,7 @@ class LoginForm extends HookConsumerWidget { } String generateRandomString(int length) { - const chars = - 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890'; + const chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890'; final random = Random.secure(); return String.fromCharCodes( Iterable.generate( @@ -308,9 +299,7 @@ class LoginForm extends HookConsumerWidget { ref.watch(backupProvider.notifier).resumeBackup(); } if (isBeta) { - await ref - .read(galleryPermissionNotifier.notifier) - .requestGalleryPermission(); + await ref.read(galleryPermissionNotifier.notifier).requestGalleryPermission(); await runNewSync(ref); context.replaceRoute(const TabShellRoute()); return; @@ -383,8 +372,7 @@ class LoginForm extends HookConsumerWidget { ), ), ), - onPressed: - isLoadingServer.value ? null : getServerAuthSettings, + onPressed: isLoadingServer.value ? null : getServerAuthSettings, icon: const Icon(Icons.arrow_forward_rounded), label: const Text( 'next', @@ -412,14 +400,12 @@ class LoginForm extends HookConsumerWidget { child: Container( padding: const EdgeInsets.all(16), decoration: BoxDecoration( - color: - context.isDarkTheme ? Colors.red.shade700 : Colors.red.shade100, + color: context.isDarkTheme ? Colors.red.shade700 : Colors.red.shade100, borderRadius: const BorderRadius.all( Radius.circular(8), ), border: Border.all( - color: - context.isDarkTheme ? Colors.red.shade900 : Colors.red[200]!, + color: context.isDarkTheme ? Colors.red.shade900 : Colors.red[200]!, ), ), child: Text( @@ -465,8 +451,7 @@ class LoginForm extends HookConsumerWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ const SizedBox(height: 18), - if (isPasswordLoginEnable.value) - LoginButton(onPressed: login), + if (isPasswordLoginEnable.value) LoginButton(onPressed: login), if (isOauthEnable.value) ...[ if (isPasswordLoginEnable.value) Padding( @@ -474,9 +459,7 @@ class LoginForm extends HookConsumerWidget { horizontal: 16.0, ), child: Divider( - color: context.isDarkTheme - ? Colors.white - : Colors.black, + color: context.isDarkTheme ? Colors.white : Colors.black, ), ), OAuthLoginButton( @@ -503,8 +486,7 @@ class LoginForm extends HookConsumerWidget { ); } - final serverSelectionOrLogin = - serverEndpoint.value == null ? buildSelectServer() : buildLogin(); + final serverSelectionOrLogin = serverEndpoint.value == null ? buildSelectServer() : buildLogin(); return LayoutBuilder( builder: (context, constraints) { diff --git a/mobile/lib/widgets/forms/login/password_input.dart b/mobile/lib/widgets/forms/login/password_input.dart index 2d2c1923f7..074899bd57 100644 --- a/mobile/lib/widgets/forms/login/password_input.dart +++ b/mobile/lib/widgets/forms/login/password_input.dart @@ -33,9 +33,7 @@ class PasswordInput extends HookConsumerWidget { suffixIcon: IconButton( onPressed: () => isPasswordVisible.value = !isPasswordVisible.value, icon: Icon( - isPasswordVisible.value - ? Icons.visibility_off_sharp - : Icons.visibility_sharp, + isPasswordVisible.value ? Icons.visibility_off_sharp : Icons.visibility_sharp, ), ), ), diff --git a/mobile/lib/widgets/forms/login/server_endpoint_input.dart b/mobile/lib/widgets/forms/login/server_endpoint_input.dart index 37bcad9d82..cddf9e9985 100644 --- a/mobile/lib/widgets/forms/login/server_endpoint_input.dart +++ b/mobile/lib/widgets/forms/login/server_endpoint_input.dart @@ -18,10 +18,7 @@ class ServerEndpointInput extends StatelessWidget { if (url == null || url.isEmpty) return null; final parsedUrl = Uri.tryParse(sanitizeUrl(url)); - if (parsedUrl == null || - !parsedUrl.isAbsolute || - !parsedUrl.scheme.startsWith("http") || - parsedUrl.host.isEmpty) { + if (parsedUrl == null || !parsedUrl.isAbsolute || !parsedUrl.scheme.startsWith("http") || parsedUrl.host.isEmpty) { return 'login_form_err_invalid_url'.tr(); } diff --git a/mobile/lib/widgets/forms/pin_input.dart b/mobile/lib/widgets/forms/pin_input.dart index 1588a65c60..6602946d7d 100644 --- a/mobile/lib/widgets/forms/pin_input.dart +++ b/mobile/lib/widgets/forms/pin_input.dart @@ -30,8 +30,7 @@ class PinInput extends StatelessWidget { final minimumPadding = 18.0; final gapWidth = 3.0; final screenWidth = context.width; - final pinWidth = - (screenWidth - (minimumPadding * 2) - (gapWidth * 5)) / (length ?? 6); + final pinWidth = (screenWidth - (minimumPadding * 2) - (gapWidth * 5)) / (length ?? 6); if (pinWidth > 60) { return const Size(60, 64); @@ -62,8 +61,7 @@ class PinInput extends StatelessWidget { if (label != null) ...[ Text( label!, - style: context.textTheme.displayLarge - ?.copyWith(color: context.colorScheme.onSurface.withAlpha(200)), + style: context.textTheme.displayLarge?.copyWith(color: context.colorScheme.onSurface.withAlpha(200)), ), const SizedBox(height: 4), ], diff --git a/mobile/lib/widgets/forms/pin_verification_form.dart b/mobile/lib/widgets/forms/pin_verification_form.dart index f4ebf4272f..8a3f0b55df 100644 --- a/mobile/lib/widgets/forms/pin_verification_form.dart +++ b/mobile/lib/widgets/forms/pin_verification_form.dart @@ -30,8 +30,7 @@ class PinVerificationForm extends HookConsumerWidget { final isVerified = useState(false); verifyPin(String pinCode) async { - final isUnlocked = - await ref.read(authProvider.notifier).unlockPinCode(pinCode); + final isUnlocked = await ref.read(authProvider.notifier).unlockPinCode(pinCode); if (isUnlocked) { isVerified.value = true; @@ -58,9 +57,7 @@ class PinVerificationForm extends HookConsumerWidget { : Icon( icon ?? Icons.lock_outline_rounded, size: 64, - color: hasError.value - ? context.colorScheme.error - : context.primaryColor, + color: hasError.value ? context.colorScheme.error : context.primaryColor, ), ), const SizedBox(height: 36), diff --git a/mobile/lib/widgets/map/map_app_bar.dart b/mobile/lib/widgets/map/map_app_bar.dart index ccadd2ad15..2715386737 100644 --- a/mobile/lib/widgets/map/map_app_bar.dart +++ b/mobile/lib/widgets/map/map_app_bar.dart @@ -22,9 +22,8 @@ class MapAppBar extends HookWidget implements PreferredSizeWidget { padding: EdgeInsets.only(top: context.padding.top + 25), child: ValueListenableBuilder( valueListenable: selectedAssets, - builder: (ctx, value, child) => value.isNotEmpty - ? _SelectionRow(selectedAssets: selectedAssets) - : const _NonSelectionRow(), + builder: (ctx, value, child) => + value.isNotEmpty ? _SelectionRow(selectedAssets: selectedAssets) : const _NonSelectionRow(), ), ); } diff --git a/mobile/lib/widgets/map/map_asset_grid.dart b/mobile/lib/widgets/map/map_asset_grid.dart index c8c0816551..ce2a486fc5 100644 --- a/mobile/lib/widgets/map/map_asset_grid.dart +++ b/mobile/lib/widgets/map/map_asset_grid.dart @@ -44,8 +44,7 @@ class MapAssetGrid extends HookConsumerWidget { final cachedRenderList = useRef(null); final lastRenderElementIndex = useRef(null); final assetInSheet = useValueNotifier(null); - final gridScrollThrottler = - useThrottler(interval: const Duration(milliseconds: 300)); + final gridScrollThrottler = useThrottler(interval: const Duration(milliseconds: 300)); // Add a cache for assets we've already loaded final assetCache = useRef>({}); @@ -67,8 +66,7 @@ class MapAssetGrid extends HookConsumerWidget { // Only fetch missing assets if (missingIds.isNotEmpty) { - final newAssets = - await ref.read(dbProvider).assets.getAllByRemoteId(missingIds); + final newAssets = await ref.read(dbProvider).assets.getAllByRemoteId(missingIds); // Add new assets to cache and current list for (final asset in newAssets) { @@ -93,8 +91,7 @@ class MapAssetGrid extends HookConsumerWidget { final orderedPos = positions.sortedByField((p) => p.index); // Index of row where the items are mostly visible const partialOffset = 0.20; - final item = orderedPos - .firstWhereOrNull((p) => p.itemTrailingEdge > partialOffset); + final item = orderedPos.firstWhereOrNull((p) => p.itemTrailingEdge > partialOffset); // Guard no elements, reset state // Also fail fast when the sheet is just opened and the user is yet to scroll (i.e leading = 0) @@ -103,8 +100,7 @@ class MapAssetGrid extends HookConsumerWidget { return; } - final renderElement = - cachedRenderList.value?.elements.elementAtOrNull(item.index); + final renderElement = cachedRenderList.value?.elements.elementAtOrNull(item.index); // Guard no render list or render element if (renderElement == null) { return; @@ -128,13 +124,9 @@ class MapAssetGrid extends HookConsumerWidget { ((renderElement.totalCount / assetsPerRow) * assetsPerRow).floor(); // trailing should never be above the totalOffset - final columnOffset = - (totalOffset - math.min(item.itemTrailingEdge, totalOffset)) ~/ - edgeOffset; + final columnOffset = (totalOffset - math.min(item.itemTrailingEdge, totalOffset)) ~/ edgeOffset; final assetOffset = rowOffset + columnOffset; - final selectedAsset = cachedRenderList.value?.allAssets - ?.elementAtOrNull(assetOffset) - ?.remoteId; + final selectedAsset = cachedRenderList.value?.allAssets?.elementAtOrNull(assetOffset)?.remoteId; if (selectedAsset != null) { onGridAssetChanged?.call(selectedAsset); @@ -154,9 +146,7 @@ class MapAssetGrid extends HookConsumerWidget { // Place it just below the drag handle heightFactor: 0.87, child: assetsInBounds.value.isNotEmpty - ? ref - .watch(assetsTimelineProvider(assetsInBounds.value)) - .when( + ? ref.watch(assetsTimelineProvider(assetsInBounds.value)).when( data: (renderList) { // Cache render list here to use it back during visibleItemsListener cachedRenderList.value = renderList; @@ -170,8 +160,7 @@ class MapAssetGrid extends HookConsumerWidget { showMultiSelectIndicator: false, selectionActive: value.isNotEmpty, listener: onAssetsSelected, - visibleItemsListener: (pos) => gridScrollThrottler - .run(() => handleVisibleItems(pos)), + visibleItemsListener: (pos) => gridScrollThrottler.run(() => handleVisibleItems(pos)), ), ); }, @@ -255,8 +244,7 @@ class _MapSheetDragRegion extends StatelessWidget { @override Widget build(BuildContext context) { final assetsInBoundsText = assetsInBoundCount > 0 - ? "map_assets_in_bounds" - .tr(namedArgs: {'count': assetsInBoundCount.toString()}) + ? "map_assets_in_bounds".tr(namedArgs: {'count': assetsInBoundCount.toString()}) : "map_no_assets_in_bounds".tr(); return SingleChildScrollView( @@ -287,8 +275,7 @@ class _MapSheetDragRegion extends StatelessWidget { assetsInBoundsText, style: TextStyle( fontSize: 20, - color: context.textTheme.displayLarge?.color - ?.withValues(alpha: 0.75), + color: context.textTheme.displayLarge?.color?.withValues(alpha: 0.75), fontWeight: FontWeight.w500, ), ), diff --git a/mobile/lib/widgets/map/map_bottom_sheet.dart b/mobile/lib/widgets/map/map_bottom_sheet.dart index 0249ca70dc..d8c1cc638e 100644 --- a/mobile/lib/widgets/map/map_bottom_sheet.dart +++ b/mobile/lib/widgets/map/map_bottom_sheet.dart @@ -45,8 +45,7 @@ class MapBottomSheet extends HookConsumerWidget { useOnStreamChange(mapEventStream, onData: handleMapEvents); bool onScrollNotification(DraggableScrollableNotification notification) { - isBottomSheetOpened.value = - notification.extent > (notification.maxExtent * 0.9); + isBottomSheetOpened.value = notification.extent > (notification.maxExtent * 0.9); bottomSheetOffset.value = notification.extent; // do not bubble return true; @@ -70,9 +69,7 @@ class MapBottomSheet extends HookConsumerWidget { selectedAssets: selectedAssets, onAssetsSelected: onAssetsSelected, // Do not bother with the event if the bottom sheet is not user scrolled - onGridAssetChanged: (assetId) => isBottomSheetOpened.value - ? onGridAssetChanged?.call(assetId) - : null, + onGridAssetChanged: (assetId) => isBottomSheetOpened.value ? onGridAssetChanged?.call(assetId) : null, onZoomToAsset: onZoomToAsset, ), ), diff --git a/mobile/lib/widgets/map/map_settings/map_settings_list_tile.dart b/mobile/lib/widgets/map/map_settings/map_settings_list_tile.dart index 1abe64ce31..5c755d80be 100644 --- a/mobile/lib/widgets/map/map_settings/map_settings_list_tile.dart +++ b/mobile/lib/widgets/map/map_settings/map_settings_list_tile.dart @@ -21,8 +21,7 @@ class MapSettingsListTile extends StatelessWidget { activeColor: context.primaryColor, title: Text( title, - style: - context.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold), + style: context.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold), ).tr(), value: selected, onChanged: onChanged, diff --git a/mobile/lib/widgets/map/map_settings/map_settings_time_dropdown.dart b/mobile/lib/widgets/map/map_settings/map_settings_time_dropdown.dart index e23716af95..a627ff8f29 100644 --- a/mobile/lib/widgets/map/map_settings/map_settings_time_dropdown.dart +++ b/mobile/lib/widgets/map/map_settings/map_settings_time_dropdown.dart @@ -81,8 +81,7 @@ class MapTimeDropDown extends StatelessWidget { ), ) .inDays, - label: "map_settings_date_range_option_years" - .tr(namedArgs: {'years': "3"}), + label: "map_settings_date_range_option_years".tr(namedArgs: {'years': "3"}), ), ], ), diff --git a/mobile/lib/widgets/map/map_settings/map_theme_picker.dart b/mobile/lib/widgets/map/map_settings/map_theme_picker.dart index 19298df076..747ae06a54 100644 --- a/mobile/lib/widgets/map/map_settings/map_theme_picker.dart +++ b/mobile/lib/widgets/map/map_settings/map_theme_picker.dart @@ -23,8 +23,7 @@ class MapThemePicker extends StatelessWidget { child: Center( child: Text( "map_settings_theme_settings", - style: context.textTheme.bodyMedium - ?.copyWith(fontWeight: FontWeight.bold), + style: context.textTheme.bodyMedium?.copyWith(fontWeight: FontWeight.bold), ).tr(), ), ), @@ -79,9 +78,7 @@ class _BorderedMapThumbnail extends StatelessWidget { border: Border.fromBorderSide( BorderSide( width: 4, - color: shouldHighlight - ? context.colorScheme.onSurface - : Colors.transparent, + color: shouldHighlight ? context.colorScheme.onSurface : Colors.transparent, ), ), borderRadius: const BorderRadius.all(Radius.circular(20)), diff --git a/mobile/lib/widgets/map/map_settings_sheet.dart b/mobile/lib/widgets/map/map_settings_sheet.dart index 78d8aec75f..644056d153 100644 --- a/mobile/lib/widgets/map/map_settings_sheet.dart +++ b/mobile/lib/widgets/map/map_settings_sheet.dart @@ -26,37 +26,30 @@ class MapSettingsSheet extends HookConsumerWidget { children: [ MapThemePicker( themeMode: mapState.themeMode, - onThemeChange: (mode) => ref - .read(mapStateNotifierProvider.notifier) - .switchTheme(mode), + onThemeChange: (mode) => ref.read(mapStateNotifierProvider.notifier).switchTheme(mode), ), const Divider(height: 30, thickness: 2), MapSettingsListTile( title: "map_settings_only_show_favorites", selected: mapState.showFavoriteOnly, - onChanged: (favoriteOnly) => ref - .read(mapStateNotifierProvider.notifier) - .switchFavoriteOnly(favoriteOnly), + onChanged: (favoriteOnly) => + ref.read(mapStateNotifierProvider.notifier).switchFavoriteOnly(favoriteOnly), ), MapSettingsListTile( title: "map_settings_include_show_archived", selected: mapState.includeArchived, - onChanged: (includeArchive) => ref - .read(mapStateNotifierProvider.notifier) - .switchIncludeArchived(includeArchive), + onChanged: (includeArchive) => + ref.read(mapStateNotifierProvider.notifier).switchIncludeArchived(includeArchive), ), MapSettingsListTile( title: "map_settings_include_show_partners", selected: mapState.withPartners, - onChanged: (withPartners) => ref - .read(mapStateNotifierProvider.notifier) - .switchWithPartners(withPartners), + onChanged: (withPartners) => + ref.read(mapStateNotifierProvider.notifier).switchWithPartners(withPartners), ), MapTimeDropDown( relativeTime: mapState.relativeTime, - onTimeChange: (time) => ref - .read(mapStateNotifierProvider.notifier) - .setRelativeTime(time), + onTimeChange: (time) => ref.read(mapStateNotifierProvider.notifier).setRelativeTime(time), ), const SizedBox(height: 20), ], diff --git a/mobile/lib/widgets/map/map_theme_override.dart b/mobile/lib/widgets/map/map_theme_override.dart index 65425f9e78..3f9ae0f43f 100644 --- a/mobile/lib/widgets/map/map_theme_override.dart +++ b/mobile/lib/widgets/map/map_theme_override.dart @@ -18,25 +18,20 @@ class MapThemeOverride extends StatefulHookConsumerWidget { ConsumerState createState() => _MapThemeOverrideState(); } -class _MapThemeOverrideState extends ConsumerState - with WidgetsBindingObserver { +class _MapThemeOverrideState extends ConsumerState with WidgetsBindingObserver { late ThemeMode _theme; bool _isDarkTheme = false; - bool get _isSystemDark => - WidgetsBinding.instance.platformDispatcher.platformBrightness == - Brightness.dark; + bool get _isSystemDark => WidgetsBinding.instance.platformDispatcher.platformBrightness == Brightness.dark; bool checkDarkTheme() { - return _theme == ThemeMode.dark || - _theme == ThemeMode.system && _isSystemDark; + return _theme == ThemeMode.dark || _theme == ThemeMode.system && _isSystemDark; } @override void initState() { super.initState(); - _theme = widget.themeMode ?? - ref.read(mapStateNotifierProvider.select((v) => v.themeMode)); + _theme = widget.themeMode ?? ref.read(mapStateNotifierProvider.select((v) => v.themeMode)); setState(() { _isDarkTheme = checkDarkTheme(); }); @@ -70,8 +65,7 @@ class _MapThemeOverrideState extends ConsumerState @override Widget build(BuildContext context) { - _theme = widget.themeMode ?? - ref.watch(mapStateNotifierProvider.select((v) => v.themeMode)); + _theme = widget.themeMode ?? ref.watch(mapStateNotifierProvider.select((v) => v.themeMode)); var appTheme = ref.watch(immichThemeProvider); final locale = ref.watch(localeProvider); diff --git a/mobile/lib/widgets/map/map_thumbnail.dart b/mobile/lib/widgets/map/map_thumbnail.dart index 5be15f2d5f..0dc1ad3a4f 100644 --- a/mobile/lib/widgets/map/map_thumbnail.dart +++ b/mobile/lib/widgets/map/map_thumbnail.dart @@ -55,8 +55,7 @@ class MapThumbnail extends HookConsumerWidget { // The iOS impl returns wrong toScreenLocation without the delay Future.delayed( const Duration(milliseconds: 100), - () async => - position.value = await mapController.toScreenLocation(centre), + () async => position.value = await mapController.toScreenLocation(centre), ); } onCreated?.call(mapController); @@ -81,8 +80,7 @@ class MapThumbnail extends HookConsumerWidget { duration: Durations.medium2, curve: Curves.easeOut, foregroundDecoration: BoxDecoration( - color: context.colorScheme.inverseSurface - .withAlpha(styleLoaded.value ? 0 : 200), + color: context.colorScheme.inverseSurface.withAlpha(styleLoaded.value ? 0 : 200), borderRadius: const BorderRadius.all(Radius.circular(15)), ), height: height, @@ -94,8 +92,7 @@ class MapThumbnail extends HookConsumerWidget { children: [ style.widgetWhen( onData: (style) => MapLibreMap( - initialCameraPosition: - CameraPosition(target: offsettedCentre, zoom: zoom), + initialCameraPosition: CameraPosition(target: offsettedCentre, zoom: zoom), styleString: style, onMapCreated: onMapCreated, onStyleLoadedCallback: onStyleLoaded, @@ -107,20 +104,18 @@ class MapThumbnail extends HookConsumerWidget { scrollGesturesEnabled: false, rotateGesturesEnabled: false, myLocationEnabled: false, - attributionButtonMargins: - showAttribution == false ? const Point(-100, 0) : null, + attributionButtonMargins: showAttribution == false ? const Point(-100, 0) : null, ), ), ValueListenableBuilder( valueListenable: position, - builder: (_, value, __) => - value != null && assetMarkerRemoteId != null - ? PositionedAssetMarkerIcon( - size: height / 2, - point: value, - assetRemoteId: assetMarkerRemoteId!, - ) - : const SizedBox.shrink(), + builder: (_, value, __) => value != null && assetMarkerRemoteId != null + ? PositionedAssetMarkerIcon( + size: height / 2, + point: value, + assetRemoteId: assetMarkerRemoteId!, + ) + : const SizedBox.shrink(), ), ], ), diff --git a/mobile/lib/widgets/map/positioned_asset_marker_icon.dart b/mobile/lib/widgets/map/positioned_asset_marker_icon.dart index 5ad49b42f8..6207a6ab56 100644 --- a/mobile/lib/widgets/map/positioned_asset_marker_icon.dart +++ b/mobile/lib/widgets/map/positioned_asset_marker_icon.dart @@ -89,8 +89,7 @@ class _AssetMarkerIcon extends StatelessWidget { imageUrl, cacheKey: cacheKey, headers: ApiService.getRequestHeaders(), - errorListener: (_) => - const Icon(Icons.image_not_supported_outlined), + errorListener: (_) => const Icon(Icons.image_not_supported_outlined), ), ), ), @@ -175,7 +174,6 @@ class _PinPainter extends CustomPainter { @override bool shouldRepaint(_PinPainter old) { - return old.primaryColor != primaryColor || - old.secondaryColor != secondaryColor; + return old.primaryColor != primaryColor || old.secondaryColor != secondaryColor; } } diff --git a/mobile/lib/widgets/memories/memory_bottom_info.dart b/mobile/lib/widgets/memories/memory_bottom_info.dart index 6adf1d46b0..1797b5c1c3 100644 --- a/mobile/lib/widgets/memories/memory_bottom_info.dart +++ b/mobile/lib/widgets/memories/memory_bottom_info.dart @@ -44,8 +44,7 @@ class MemoryBottomInfo extends StatelessWidget { minWidth: 0, onPressed: () { context.maybePop(); - scrollToDateNotifierProvider - .scrollToDate(memory.assets[0].fileCreatedAt); + scrollToDateNotifierProvider.scrollToDate(memory.assets[0].fileCreatedAt); }, shape: const CircleBorder(), color: Colors.white.withValues(alpha: 0.2), diff --git a/mobile/lib/widgets/memories/memory_card.dart b/mobile/lib/widgets/memories/memory_card.dart index 31f4d5ed94..1faa114936 100644 --- a/mobile/lib/widgets/memories/memory_card.dart +++ b/mobile/lib/widgets/memories/memory_card.dart @@ -45,11 +45,9 @@ class MemoryCard extends StatelessWidget { BoxFit fit = BoxFit.contain; if (asset.width != null && asset.height != null) { final aspectRatio = asset.width! / asset.height!; - final phoneAspectRatio = - constraints.maxWidth / constraints.maxHeight; + final phoneAspectRatio = constraints.maxWidth / constraints.maxHeight; // Look for a 25% difference in either direction - if (phoneAspectRatio * .75 < aspectRatio && - phoneAspectRatio * 1.25 > aspectRatio) { + if (phoneAspectRatio * .75 < aspectRatio && phoneAspectRatio * 1.25 > aspectRatio) { // Cover to look nice if we have nearly the same aspect ratio fit = BoxFit.cover; } diff --git a/mobile/lib/widgets/memories/memory_epilogue.dart b/mobile/lib/widgets/memories/memory_epilogue.dart index 9796bee6b1..10349aa431 100644 --- a/mobile/lib/widgets/memories/memory_epilogue.dart +++ b/mobile/lib/widgets/memories/memory_epilogue.dart @@ -11,8 +11,7 @@ class MemoryEpilogue extends StatefulWidget { State createState() => _MemoryEpilogueState(); } -class _MemoryEpilogueState extends State - with TickerProviderStateMixin { +class _MemoryEpilogueState extends State with TickerProviderStateMixin { late final _animationController = AnimationController( vsync: this, duration: const Duration( @@ -50,9 +49,7 @@ class _MemoryEpilogueState extends State children: [ Icon( Icons.check_circle_outline_sharp, - color: context.isDarkTheme - ? context.colorScheme.primary - : context.colorScheme.inversePrimary, + color: context.isDarkTheme ? context.colorScheme.primary : context.colorScheme.inversePrimary, size: 64.0, ), const SizedBox(height: 16.0), @@ -75,9 +72,7 @@ class _MemoryEpilogueState extends State child: Text( "memories_start_over", style: context.textTheme.displayMedium?.copyWith( - color: context.isDarkTheme - ? context.colorScheme.primary - : context.colorScheme.inversePrimary, + color: context.isDarkTheme ? context.colorScheme.primary : context.colorScheme.inversePrimary, ), ).tr(), ), diff --git a/mobile/lib/widgets/memories/memory_progress_indicator.dart b/mobile/lib/widgets/memories/memory_progress_indicator.dart index 438816d99c..646846cd11 100644 --- a/mobile/lib/widgets/memories/memory_progress_indicator.dart +++ b/mobile/lib/widgets/memories/memory_progress_indicator.dart @@ -27,9 +27,7 @@ class MemoryProgressIndicator extends StatelessWidget { value: value, borderRadius: const BorderRadius.all(Radius.circular(10.0)), backgroundColor: Colors.grey[800], - color: context.isDarkTheme - ? context.colorScheme.primary - : context.colorScheme.inversePrimary, + color: context.isDarkTheme ? context.colorScheme.primary : context.colorScheme.inversePrimary, ), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, diff --git a/mobile/lib/widgets/photo_view/photo_view.dart b/mobile/lib/widgets/photo_view/photo_view.dart index 30e08748b8..0b769d559b 100644 --- a/mobile/lib/widgets/photo_view/photo_view.dart +++ b/mobile/lib/widgets/photo_view/photo_view.dart @@ -9,8 +9,7 @@ import 'package:immich_mobile/widgets/photo_view/src/utils/photo_view_hero_attri export 'src/controller/photo_view_controller.dart'; export 'src/controller/photo_view_scalestate_controller.dart'; -export 'src/core/photo_view_gesture_detector.dart' - show PhotoViewGestureDetectorScope, PhotoViewPageViewScrollPhysics; +export 'src/core/photo_view_gesture_detector.dart' show PhotoViewGestureDetectorScope, PhotoViewPageViewScrollPhysics; export 'src/photo_view_computed_scale.dart'; export 'src/photo_view_scale_state.dart'; export 'src/utils/photo_view_hero_attributes.dart'; @@ -461,8 +460,7 @@ class PhotoView extends StatefulWidget { } } -class _PhotoViewState extends State - with AutomaticKeepAliveClientMixin { +class _PhotoViewState extends State with AutomaticKeepAliveClientMixin { // image retrieval // controller @@ -550,8 +548,7 @@ class _PhotoViewState extends State BoxConstraints constraints, ) { final computedOuterSize = widget.customSize ?? constraints.biggest; - final backgroundDecoration = widget.backgroundDecoration ?? - const BoxDecoration(color: Colors.black); + final backgroundDecoration = widget.backgroundDecoration ?? const BoxDecoration(color: Colors.black); return widget._isCustomChild ? CustomChildWrapper( @@ -625,14 +622,11 @@ class _PhotoViewState extends State } /// The default [ScaleStateCycle] -PhotoViewScaleState defaultScaleStateCycle(PhotoViewScaleState actual) => - switch (actual) { +PhotoViewScaleState defaultScaleStateCycle(PhotoViewScaleState actual) => switch (actual) { PhotoViewScaleState.initial => PhotoViewScaleState.covering, PhotoViewScaleState.covering => PhotoViewScaleState.originalSize, PhotoViewScaleState.originalSize => PhotoViewScaleState.initial, - PhotoViewScaleState.zoomedIn || - PhotoViewScaleState.zoomedOut => - PhotoViewScaleState.initial, + PhotoViewScaleState.zoomedIn || PhotoViewScaleState.zoomedOut => PhotoViewScaleState.initial, }; /// A type definition for a [Function] that receives the actual [PhotoViewScaleState] and returns the next one diff --git a/mobile/lib/widgets/photo_view/photo_view_gallery.dart b/mobile/lib/widgets/photo_view/photo_view_gallery.dart index 1cd4d4b217..3f8188f7e2 100644 --- a/mobile/lib/widgets/photo_view/photo_view_gallery.dart +++ b/mobile/lib/widgets/photo_view/photo_view_gallery.dart @@ -218,8 +218,7 @@ class PhotoViewGallery extends StatefulWidget { } class _PhotoViewGalleryState extends State { - late final PageController _controller = - widget.pageController ?? PageController(); + late final PageController _controller = widget.pageController ?? PageController(); PhotoViewControllerCallback? _getController; void scaleStateChangedCallback(PhotoViewScaleState scaleState) { diff --git a/mobile/lib/widgets/photo_view/src/controller/photo_view_controller.dart b/mobile/lib/widgets/photo_view/src/controller/photo_view_controller.dart index 37d1c78de1..6a860695b2 100644 --- a/mobile/lib/widgets/photo_view/src/controller/photo_view_controller.dart +++ b/mobile/lib/widgets/photo_view/src/controller/photo_view_controller.dart @@ -106,11 +106,7 @@ class PhotoViewControllerValue { rotationFocusPoint == other.rotationFocusPoint; @override - int get hashCode => - position.hashCode ^ - scale.hashCode ^ - rotation.hashCode ^ - rotationFocusPoint.hashCode; + int get hashCode => position.hashCode ^ scale.hashCode ^ rotation.hashCode ^ rotationFocusPoint.hashCode; @override String toString() { @@ -125,8 +121,7 @@ class PhotoViewControllerValue { /// /// For details of fields and methods, check [PhotoViewControllerBase]. /// -class PhotoViewController - implements PhotoViewControllerBase { +class PhotoViewController implements PhotoViewControllerBase { PhotoViewController({ Offset initialPosition = Offset.zero, double initialRotation = 0.0, diff --git a/mobile/lib/widgets/photo_view/src/controller/photo_view_controller_delegate.dart b/mobile/lib/widgets/photo_view/src/controller/photo_view_controller_delegate.dart index e2e668199a..d28577ea49 100644 --- a/mobile/lib/widgets/photo_view/src/controller/photo_view_controller_delegate.dart +++ b/mobile/lib/widgets/photo_view/src/controller/photo_view_controller_delegate.dart @@ -1,10 +1,6 @@ import 'package:flutter/widgets.dart'; import 'package:immich_mobile/widgets/photo_view/photo_view.dart' - show - PhotoViewControllerBase, - PhotoViewScaleState, - PhotoViewScaleStateController, - ScaleStateCycle; + show PhotoViewControllerBase, PhotoViewScaleState, PhotoViewScaleStateController, ScaleStateCycle; import 'package:immich_mobile/widgets/photo_view/src/core/photo_view_core.dart'; import 'package:immich_mobile/widgets/photo_view/src/utils/photo_view_utils.dart'; @@ -14,8 +10,7 @@ import 'package:immich_mobile/widgets/photo_view/src/utils/photo_view_utils.dart mixin PhotoViewControllerDelegate on State { PhotoViewControllerBase get controller => widget.controller; - PhotoViewScaleStateController get scaleStateController => - widget.scaleStateController; + PhotoViewScaleStateController get scaleStateController => widget.scaleStateController; ScaleBoundaries get scaleBoundaries => widget.scaleBoundaries; @@ -68,9 +63,7 @@ mixin PhotoViewControllerDelegate on State { return; } final PhotoViewScaleState newScaleState = - (scale > scaleBoundaries.initialScale) - ? PhotoViewScaleState.zoomedIn - : PhotoViewScaleState.zoomedOut; + (scale > scaleBoundaries.initialScale) ? PhotoViewScaleState.zoomedIn : PhotoViewScaleState.zoomedOut; scaleStateController.setInvisibly(newScaleState); } @@ -79,8 +72,7 @@ mixin PhotoViewControllerDelegate on State { double get scale { // for figuring out initial scale - final needsRecalc = markNeedsScaleRecalc && - !scaleStateController.scaleState.isScaleStateZooming; + final needsRecalc = markNeedsScaleRecalc && !scaleStateController.scaleState.isScaleStateZooming; final scaleExistsOnController = controller.scale != null; if (needsRecalc || !scaleExistsOnController) { @@ -114,9 +106,8 @@ mixin PhotoViewControllerDelegate on State { PhotoViewScaleState getScaleStateFromNewScale(double newScale) { PhotoViewScaleState newScaleState = PhotoViewScaleState.initial; if (scale != scaleBoundaries.initialScale) { - newScaleState = (newScale > scaleBoundaries.initialScale) - ? PhotoViewScaleState.zoomedIn - : PhotoViewScaleState.zoomedOut; + newScaleState = + (newScale > scaleBoundaries.initialScale) ? PhotoViewScaleState.zoomedIn : PhotoViewScaleState.zoomedOut; } return newScaleState; } @@ -124,17 +115,15 @@ mixin PhotoViewControllerDelegate on State { void updateScaleStateFromNewScale(double newScale) { PhotoViewScaleState newScaleState = PhotoViewScaleState.initial; if (scale != scaleBoundaries.initialScale) { - newScaleState = (newScale > scaleBoundaries.initialScale) - ? PhotoViewScaleState.zoomedIn - : PhotoViewScaleState.zoomedOut; + newScaleState = + (newScale > scaleBoundaries.initialScale) ? PhotoViewScaleState.zoomedIn : PhotoViewScaleState.zoomedOut; } scaleStateController.setInvisibly(newScaleState); } void nextScaleState() { final PhotoViewScaleState scaleState = scaleStateController.scaleState; - if (scaleState == PhotoViewScaleState.zoomedIn || - scaleState == PhotoViewScaleState.zoomedOut) { + if (scaleState == PhotoViewScaleState.zoomedIn || scaleState == PhotoViewScaleState.zoomedOut) { scaleStateController.scaleState = scaleStateCycle(scaleState); return; } diff --git a/mobile/lib/widgets/photo_view/src/controller/photo_view_scalestate_controller.dart b/mobile/lib/widgets/photo_view/src/controller/photo_view_scalestate_controller.dart index dea8be1a0f..e96aff7780 100644 --- a/mobile/lib/widgets/photo_view/src/controller/photo_view_scalestate_controller.dart +++ b/mobile/lib/widgets/photo_view/src/controller/photo_view_scalestate_controller.dart @@ -20,17 +20,14 @@ typedef ScaleStateListener = void Function(double prevScale, double nextScale); /// class PhotoViewScaleStateController { late final IgnorableValueNotifier _scaleStateNotifier = - IgnorableValueNotifier(PhotoViewScaleState.initial) - ..addListener(_scaleStateChangeListener); - final StreamController _outputScaleStateCtrl = - StreamController.broadcast() - ..sink.add(PhotoViewScaleState.initial); + IgnorableValueNotifier(PhotoViewScaleState.initial)..addListener(_scaleStateChangeListener); + final StreamController _outputScaleStateCtrl = StreamController.broadcast() + ..sink.add(PhotoViewScaleState.initial); bool _hasZoomedOutManually = false; /// The output for state/value updates - Stream get outputScaleStateStream => - _outputScaleStateCtrl.stream; + Stream get outputScaleStateStream => _outputScaleStateCtrl.stream; /// The state value before the last change or the initial state if the state has not been changed. PhotoViewScaleState prevScaleState = PhotoViewScaleState.initial; @@ -62,9 +59,7 @@ class PhotoViewScaleStateController { bool get hasChanged => prevScaleState != scaleState; /// Check if is `zoomedIn` & `zoomedOut` - bool get isZooming => - scaleState == PhotoViewScaleState.zoomedIn || - scaleState == PhotoViewScaleState.zoomedOut; + bool get isZooming => scaleState == PhotoViewScaleState.zoomedIn || scaleState == PhotoViewScaleState.zoomedOut; /// Resets the state to the initial value; void reset() { diff --git a/mobile/lib/widgets/photo_view/src/core/photo_view_core.dart b/mobile/lib/widgets/photo_view/src/core/photo_view_core.dart index 6b6e5067c5..e1ec36862a 100644 --- a/mobile/lib/widgets/photo_view/src/core/photo_view_core.dart +++ b/mobile/lib/widgets/photo_view/src/core/photo_view_core.dart @@ -122,10 +122,7 @@ class PhotoViewCore extends StatefulWidget { } class PhotoViewCoreState extends State - with - TickerProviderStateMixin, - PhotoViewControllerDelegate, - HitCornersDetector { + with TickerProviderStateMixin, PhotoViewControllerDelegate, HitCornersDetector { Offset? _normalizedPosition; double? _scaleBefore; double? _rotationBefore; @@ -136,8 +133,8 @@ class PhotoViewCoreState extends State late final AnimationController _positionAnimationController; Animation? _positionAnimation; - late final AnimationController _rotationAnimationController = - AnimationController(vsync: this)..addListener(handleRotationAnimation); + late final AnimationController _rotationAnimationController = AnimationController(vsync: this) + ..addListener(handleRotationAnimation); Animation? _rotationAnimation; PhotoViewHeroAttributes? get heroAttributes => widget.heroAttributes; @@ -166,8 +163,7 @@ class PhotoViewCoreState extends State } bool _shouldAllowPanRotate() => switch (scaleStateController.scaleState) { - PhotoViewScaleState.zoomedIn => - scaleStateController.hasZoomedOutManually, + PhotoViewScaleState.zoomedIn => scaleStateController.hasZoomedOutManually, _ => true, }; @@ -182,8 +178,7 @@ class PhotoViewCoreState extends State updateMultiple( scale: newScale, - position: - panEnabled ? delta : clampPosition(position: delta * details.scale), + position: panEnabled ? delta : clampPosition(position: delta * details.scale), rotation: rotationEnabled ? _rotationBefore! + details.rotation : null, rotationFocusPoint: rotationEnabled ? details.focalPoint : null, ); @@ -266,8 +261,7 @@ class PhotoViewCoreState extends State if (!mounted) { return; } - _positionAnimation = Tween(begin: from, end: to) - .animate(_positionAnimationController); + _positionAnimation = Tween(begin: from, end: to).animate(_positionAnimationController); _positionAnimationController ..value = 0.0 ..fling(velocity: 0.4); @@ -277,8 +271,7 @@ class PhotoViewCoreState extends State if (!mounted) { return; } - _rotationAnimation = Tween(begin: from, end: to) - .animate(_rotationAnimationController); + _rotationAnimation = Tween(begin: from, end: to).animate(_rotationAnimationController); _rotationAnimationController ..value = 0.0 ..fling(velocity: 0.4); @@ -292,8 +285,7 @@ class PhotoViewCoreState extends State /// Check if scale is equal to initial after scale animation update void onAnimationStatusCompleted() { - if (scaleStateController.scaleState != PhotoViewScaleState.initial && - scale == scaleBoundaries.initialScale) { + if (scaleStateController.scaleState != PhotoViewScaleState.initial && scale == scaleBoundaries.initialScale) { scaleStateController.setInvisibly(PhotoViewScaleState.initial); } } @@ -326,8 +318,7 @@ class PhotoViewCoreState extends State _scaleAnimationController = AnimationController(vsync: this) ..addListener(handleScaleAnimation) ..addStatusListener(onAnimationStatus); - _positionAnimationController = AnimationController(vsync: this) - ..addListener(handlePositionAnimate); + _positionAnimationController = AnimationController(vsync: this)..addListener(handlePositionAnimate); } void animateOnScaleStateUpdate(double prevScale, double nextScale) { @@ -389,9 +380,7 @@ class PhotoViewCoreState extends State ); final child = Container( - constraints: widget.tightMode - ? BoxConstraints.tight(scaleBoundaries.childSize * scale) - : null, + constraints: widget.tightMode ? BoxConstraints.tight(scaleBoundaries.childSize * scale) : null, decoration: widget.backgroundDecoration ?? _defaultDecoration, child: Center( child: Transform( @@ -421,8 +410,7 @@ class PhotoViewCoreState extends State ) : null, onDragEnd: widget.onDragEnd != null - ? (details) => - widget.onDragEnd!(context, details, widget.controller.value) + ? (details) => widget.onDragEnd!(context, details, widget.controller.value) : null, onDragUpdate: widget.onDragUpdate != null ? (details) => widget.onDragUpdate!( @@ -432,15 +420,10 @@ class PhotoViewCoreState extends State ) : null, hitDetector: this, - onTapUp: widget.onTapUp != null - ? (details) => widget.onTapUp!(context, details, value) - : null, - onTapDown: widget.onTapDown != null - ? (details) => widget.onTapDown!(context, details, value) - : null, - onLongPressStart: widget.onLongPressStart != null - ? (details) => widget.onLongPressStart!(context, details, value) - : null, + onTapUp: widget.onTapUp != null ? (details) => widget.onTapUp!(context, details, value) : null, + onTapDown: widget.onTapDown != null ? (details) => widget.onTapDown!(context, details, value) : null, + onLongPressStart: + widget.onLongPressStart != null ? (details) => widget.onLongPressStart!(context, details, value) : null, child: child, ); } else { @@ -467,9 +450,7 @@ class PhotoViewCoreState extends State return widget.hasCustomChild ? widget.customChild! : Image( - key: widget.heroAttributes?.tag != null - ? ObjectKey(widget.heroAttributes!.tag) - : null, + key: widget.heroAttributes?.tag != null ? ObjectKey(widget.heroAttributes!.tag) : null, image: widget.imageProvider!, semanticLabel: widget.semanticLabel, gaplessPlayback: widget.gaplessPlayback ?? false, @@ -507,9 +488,7 @@ class _CenterWithOriginalSizeDelegate extends SingleChildLayoutDelegate { @override BoxConstraints getConstraintsForChild(BoxConstraints constraints) { - return useImageScale - ? const BoxConstraints() - : BoxConstraints.tight(subjectSize); + return useImageScale ? const BoxConstraints() : BoxConstraints.tight(subjectSize); } @override @@ -527,6 +506,5 @@ class _CenterWithOriginalSizeDelegate extends SingleChildLayoutDelegate { useImageScale == other.useImageScale; @override - int get hashCode => - subjectSize.hashCode ^ basePosition.hashCode ^ useImageScale.hashCode; + int get hashCode => subjectSize.hashCode ^ basePosition.hashCode ^ useImageScale.hashCode; } diff --git a/mobile/lib/widgets/photo_view/src/core/photo_view_gesture_detector.dart b/mobile/lib/widgets/photo_view/src/core/photo_view_gesture_detector.dart index 93fd1526da..6f456713a9 100644 --- a/mobile/lib/widgets/photo_view/src/core/photo_view_gesture_detector.dart +++ b/mobile/lib/widgets/photo_view/src/core/photo_view_gesture_detector.dart @@ -53,12 +53,10 @@ class PhotoViewGestureDetector extends StatelessWidget { final Axis? axis = scope?.axis; final touchSlopFactor = scope?.touchSlopFactor ?? 2; - final Map gestures = - {}; + final Map gestures = {}; if (onTapDown != null || onTapUp != null) { - gestures[TapGestureRecognizer] = - GestureRecognizerFactoryWithHandlers( + gestures[TapGestureRecognizer] = GestureRecognizerFactoryWithHandlers( () => TapGestureRecognizer(debugOwner: this), (TapGestureRecognizer instance) { instance @@ -69,8 +67,7 @@ class PhotoViewGestureDetector extends StatelessWidget { } if (onDragStart != null || onDragEnd != null || onDragUpdate != null) { - gestures[VerticalDragGestureRecognizer] = - GestureRecognizerFactoryWithHandlers( + gestures[VerticalDragGestureRecognizer] = GestureRecognizerFactoryWithHandlers( () => VerticalDragGestureRecognizer(debugOwner: this), (VerticalDragGestureRecognizer instance) { instance @@ -81,16 +78,14 @@ class PhotoViewGestureDetector extends StatelessWidget { ); } - gestures[DoubleTapGestureRecognizer] = - GestureRecognizerFactoryWithHandlers( + gestures[DoubleTapGestureRecognizer] = GestureRecognizerFactoryWithHandlers( () => DoubleTapGestureRecognizer(debugOwner: this), (DoubleTapGestureRecognizer instance) { instance.onDoubleTap = onDoubleTap; }, ); - gestures[PhotoViewGestureRecognizer] = - GestureRecognizerFactoryWithHandlers( + gestures[PhotoViewGestureRecognizer] = GestureRecognizerFactoryWithHandlers( () => PhotoViewGestureRecognizer( hitDetector: hitDetector, debugOwner: this, @@ -107,10 +102,8 @@ class PhotoViewGestureDetector extends StatelessWidget { }, ); - gestures[LongPressGestureRecognizer] = - GestureRecognizerFactoryWithHandlers( - () => LongPressGestureRecognizer(debugOwner: this), - (LongPressGestureRecognizer instance) { + gestures[LongPressGestureRecognizer] = GestureRecognizerFactoryWithHandlers( + () => LongPressGestureRecognizer(debugOwner: this), (LongPressGestureRecognizer instance) { instance.onLongPressStart = onLongPressStart; }); @@ -198,16 +191,14 @@ class PhotoViewGestureRecognizer extends ScaleGestureRecognizer { for (final int pointer in _pointerLocations.keys) { focalPoint += _pointerLocations[pointer]!; } - _currentFocalPoint = - count > 0 ? focalPoint / count.toDouble() : Offset.zero; + _currentFocalPoint = count > 0 ? focalPoint / count.toDouble() : Offset.zero; // Span is the average deviation from focal point. Horizontal and vertical // spans are the average deviations from the focal point's horizontal and // vertical coordinates, respectively. double totalDeviation = 0.0; for (final int pointer in _pointerLocations.keys) { - totalDeviation += - (_currentFocalPoint! - _pointerLocations[pointer]!).distance; + totalDeviation += (_currentFocalPoint! - _pointerLocations[pointer]!).distance; } _currentSpan = count > 0 ? totalDeviation / count : 0.0; } @@ -219,15 +210,13 @@ class PhotoViewGestureRecognizer extends ScaleGestureRecognizer { : hitDetector!.shouldMove(move, Axis.horizontal); if (shouldMove || _pointerLocations.keys.length > 1) { final double spanDelta = (_currentSpan! - _initialSpan!).abs(); - final double focalPointDelta = - (_currentFocalPoint! - _initialFocalPoint!).distance; + final double focalPointDelta = (_currentFocalPoint! - _initialFocalPoint!).distance; // warning: do not compare `focalPointDelta` to `kPanSlop` // `ScaleGestureRecognizer` uses `kPanSlop`, but `HorizontalDragGestureRecognizer` uses `kTouchSlop` // and PhotoView recognizer may compete with the `HorizontalDragGestureRecognizer` from a containing `PageView` // setting `touchSlopFactor` to 2 restores default `ScaleGestureRecognizer` behaviour as `kPanSlop = kTouchSlop * 2.0` // setting `touchSlopFactor` in [0, 1] will allow this recognizer to accept the gesture before the one from `PageView` - if (spanDelta > kScaleSlop || - focalPointDelta > kTouchSlop * touchSlopFactor) { + if (spanDelta > kScaleSlop || focalPointDelta > kTouchSlop * touchSlopFactor) { acceptGesture(event.pointer); } } @@ -260,8 +249,8 @@ class PhotoViewGestureDetectorScope extends InheritedWidget { }); static PhotoViewGestureDetectorScope? of(BuildContext context) { - final PhotoViewGestureDetectorScope? scope = context - .dependOnInheritedWidgetOfExactType(); + final PhotoViewGestureDetectorScope? scope = + context.dependOnInheritedWidgetOfExactType(); return scope; } @@ -275,8 +264,7 @@ class PhotoViewGestureDetectorScope extends InheritedWidget { @override bool updateShouldNotify(PhotoViewGestureDetectorScope oldWidget) { - return axis != oldWidget.axis && - touchSlopFactor != oldWidget.touchSlopFactor; + return axis != oldWidget.axis && touchSlopFactor != oldWidget.touchSlopFactor; } } diff --git a/mobile/lib/widgets/photo_view/src/core/photo_view_hit_corners.dart b/mobile/lib/widgets/photo_view/src/core/photo_view_hit_corners.dart index 768e5d9cc7..b02b7feb68 100644 --- a/mobile/lib/widgets/photo_view/src/core/photo_view_hit_corners.dart +++ b/mobile/lib/widgets/photo_view/src/core/photo_view_hit_corners.dart @@ -35,8 +35,7 @@ mixin HitCornersDetector on PhotoViewControllerDelegate { if (!hitCorners.hasHitAny) { return true; } - final axisBlocked = hitCorners.hasHitBoth || - (hitCorners.hasHitMax ? mainAxisMove > 0 : mainAxisMove < 0); + final axisBlocked = hitCorners.hasHitBoth || (hitCorners.hasHitMax ? mainAxisMove > 0 : mainAxisMove < 0); if (axisBlocked) { return false; } diff --git a/mobile/lib/widgets/photo_view/src/photo_view_computed_scale.dart b/mobile/lib/widgets/photo_view/src/photo_view_computed_scale.dart index a01db562c7..52bb8a0a50 100644 --- a/mobile/lib/widgets/photo_view/src/photo_view_computed_scale.dart +++ b/mobile/lib/widgets/photo_view/src/photo_view_computed_scale.dart @@ -27,9 +27,7 @@ class PhotoViewComputedScale { @override bool operator ==(Object other) => identical(this, other) || - other is PhotoViewComputedScale && - runtimeType == other.runtimeType && - _value == other._value; + other is PhotoViewComputedScale && runtimeType == other.runtimeType && _value == other._value; @override int get hashCode => _value.hashCode; diff --git a/mobile/lib/widgets/photo_view/src/photo_view_default_widgets.dart b/mobile/lib/widgets/photo_view/src/photo_view_default_widgets.dart index a843087bad..912fb5e839 100644 --- a/mobile/lib/widgets/photo_view/src/photo_view_default_widgets.dart +++ b/mobile/lib/widgets/photo_view/src/photo_view_default_widgets.dart @@ -29,9 +29,7 @@ class PhotoViewDefaultLoading extends StatelessWidget { Widget build(BuildContext context) { final expectedBytes = event?.expectedTotalBytes; final loadedBytes = event?.cumulativeBytesLoaded; - final value = loadedBytes != null && expectedBytes != null - ? loadedBytes / expectedBytes - : null; + final value = loadedBytes != null && expectedBytes != null ? loadedBytes / expectedBytes : null; return Center( child: SizedBox( diff --git a/mobile/lib/widgets/photo_view/src/photo_view_scale_state.dart b/mobile/lib/widgets/photo_view/src/photo_view_scale_state.dart index fc6d4db3f9..0d1d4715e8 100644 --- a/mobile/lib/widgets/photo_view/src/photo_view_scale_state.dart +++ b/mobile/lib/widgets/photo_view/src/photo_view_scale_state.dart @@ -6,7 +6,5 @@ enum PhotoViewScaleState { zoomedIn, zoomedOut; - bool get isScaleStateZooming => - this == PhotoViewScaleState.zoomedIn || - this == PhotoViewScaleState.zoomedOut; + bool get isScaleStateZooming => this == PhotoViewScaleState.zoomedIn || this == PhotoViewScaleState.zoomedOut; } diff --git a/mobile/lib/widgets/photo_view/src/utils/ignorable_change_notifier.dart b/mobile/lib/widgets/photo_view/src/utils/ignorable_change_notifier.dart index d061b7b76c..da213903f6 100644 --- a/mobile/lib/widgets/photo_view/src/utils/ignorable_change_notifier.dart +++ b/mobile/lib/widgets/photo_view/src/utils/ignorable_change_notifier.dart @@ -8,8 +8,7 @@ import 'package:flutter/foundation.dart'; /// The common collection of listeners inherited from [ChangeNotifier] will be fired /// every time. class IgnorableChangeNotifier extends ChangeNotifier { - ObserverList? _ignorableListeners = - ObserverList(); + ObserverList? _ignorableListeners = ObserverList(); bool _debugAssertNotDisposed() { assert(() { @@ -51,8 +50,7 @@ class IgnorableChangeNotifier extends ChangeNotifier { void notifyListeners() { super.notifyListeners(); if (_ignorableListeners != null) { - final List localListeners = - List.from(_ignorableListeners!); + final List localListeners = List.from(_ignorableListeners!); for (VoidCallback listener in localListeners) { try { if (_ignorableListeners!.contains(listener)) { @@ -80,8 +78,7 @@ class IgnorableChangeNotifier extends ChangeNotifier { /// Just like [ValueNotifier] except it extends [IgnorableChangeNotifier] which has /// listeners that wont fire when [updateIgnoring] is called. -class IgnorableValueNotifier extends IgnorableChangeNotifier - implements ValueListenable { +class IgnorableValueNotifier extends IgnorableChangeNotifier implements ValueListenable { IgnorableValueNotifier(this._value); @override diff --git a/mobile/lib/widgets/photo_view/src/utils/photo_view_utils.dart b/mobile/lib/widgets/photo_view/src/utils/photo_view_utils.dart index facd701725..1efdc50161 100644 --- a/mobile/lib/widgets/photo_view/src/utils/photo_view_utils.dart +++ b/mobile/lib/widgets/photo_view/src/utils/photo_view_utils.dart @@ -101,11 +101,7 @@ class ScaleBoundaries { @override int get hashCode => - _minScale.hashCode ^ - _maxScale.hashCode ^ - _initialScale.hashCode ^ - outerSize.hashCode ^ - childSize.hashCode; + _minScale.hashCode ^ _maxScale.hashCode ^ _initialScale.hashCode ^ outerSize.hashCode ^ childSize.hashCode; } double _scaleForContained(Size size, Size childSize) { diff --git a/mobile/lib/widgets/search/curated_places_row.dart b/mobile/lib/widgets/search/curated_places_row.dart index 502b09bc4b..38092071d0 100644 --- a/mobile/lib/widgets/search/curated_places_row.dart +++ b/mobile/lib/widgets/search/curated_places_row.dart @@ -45,8 +45,7 @@ class CuratedPlacesRow extends StatelessWidget { } final actualIndex = index - actualContentIndex; final object = content[actualIndex]; - final thumbnailRequestUrl = - '${Store.get(StoreKey.serverEndpoint)}/assets/${object.id}/thumbnail'; + final thumbnailRequestUrl = '${Store.get(StoreKey.serverEndpoint)}/assets/${object.id}/thumbnail'; return SizedBox.square( dimension: imageSize, child: ThumbnailWithInfo( diff --git a/mobile/lib/widgets/search/search_filter/location_picker.dart b/mobile/lib/widgets/search/search_filter/location_picker.dart index 499c1e6a50..eea4b52256 100644 --- a/mobile/lib/widgets/search/search_filter/location_picker.dart +++ b/mobile/lib/widgets/search/search_filter/location_picker.dart @@ -15,8 +15,7 @@ class LocationPicker extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final countryTextController = - useTextEditingController(text: filter?.country); + final countryTextController = useTextEditingController(text: filter?.country); final stateTextController = useTextEditingController(text: filter?.state); final cityTextController = useTextEditingController(text: filter?.city); diff --git a/mobile/lib/widgets/search/search_filter/people_picker.dart b/mobile/lib/widgets/search/search_filter/people_picker.dart index 05f699b44b..991664dd93 100644 --- a/mobile/lib/widgets/search/search_filter/people_picker.dart +++ b/mobile/lib/widgets/search/search_filter/people_picker.dart @@ -52,18 +52,14 @@ class PeoplePicker extends HookConsumerWidget { shrinkWrap: true, itemCount: people .where( - (person) => person.name - .toLowerCase() - .contains(searchQuery.value.toLowerCase()), + (person) => person.name.toLowerCase().contains(searchQuery.value.toLowerCase()), ) .length, padding: const EdgeInsets.all(8), itemBuilder: (context, index) { final person = people .where( - (person) => person.name - .toLowerCase() - .contains(searchQuery.value.toLowerCase()), + (person) => person.name.toLowerCase().contains(searchQuery.value.toLowerCase()), ) .toList()[index]; final isSelected = selectedPeople.value.contains(person); @@ -76,9 +72,7 @@ class PeoplePicker extends HookConsumerWidget { style: context.textTheme.bodyLarge?.copyWith( fontSize: 20, fontWeight: FontWeight.w500, - color: isSelected - ? context.colorScheme.onPrimary - : context.colorScheme.onSurface, + color: isSelected ? context.colorScheme.onPrimary : context.colorScheme.onSurface, ), ), leading: SizedBox( diff --git a/mobile/lib/widgets/search/search_filter/search_filter_chip.dart b/mobile/lib/widgets/search/search_filter/search_filter_chip.dart index c1e628adeb..60d1366fbd 100644 --- a/mobile/lib/widgets/search/search_filter/search_filter_chip.dart +++ b/mobile/lib/widgets/search/search_filter/search_filter_chip.dart @@ -27,8 +27,7 @@ class SearchFilterChip extends StatelessWidget { side: BorderSide(color: context.colorScheme.secondaryContainer), ), child: Padding( - padding: - const EdgeInsets.symmetric(vertical: 2.0, horizontal: 14.0), + padding: const EdgeInsets.symmetric(vertical: 2.0, horizontal: 14.0), child: Row( children: [ Icon( diff --git a/mobile/lib/widgets/search/thumbnail_with_info.dart b/mobile/lib/widgets/search/thumbnail_with_info.dart index 8722bf8db8..23bdbc915b 100644 --- a/mobile/lib/widgets/search/thumbnail_with_info.dart +++ b/mobile/lib/widgets/search/thumbnail_with_info.dart @@ -22,8 +22,7 @@ class ThumbnailWithInfo extends StatelessWidget { @override Widget build(BuildContext context) { - var textAndIconColor = - context.isDarkTheme ? Colors.grey[100] : Colors.grey[700]; + var textAndIconColor = context.isDarkTheme ? Colors.grey[100] : Colors.grey[700]; return ThumbnailWithInfoContainer( onTap: onTap, borderRadius: borderRadius, @@ -37,8 +36,7 @@ class ThumbnailWithInfo extends StatelessWidget { fit: BoxFit.cover, imageUrl: imageUrl!, httpHeaders: ApiService.getRequestHeaders(), - errorWidget: (context, url, error) => - const Icon(Icons.image_not_supported_outlined), + errorWidget: (context, url, error) => const Icon(Icons.image_not_supported_outlined), ), ) : Center( diff --git a/mobile/lib/widgets/search/thumbnail_with_info_container.dart b/mobile/lib/widgets/search/thumbnail_with_info_container.dart index 1f5f3c2d16..e29d9e780c 100644 --- a/mobile/lib/widgets/search/thumbnail_with_info_container.dart +++ b/mobile/lib/widgets/search/thumbnail_with_info_container.dart @@ -43,9 +43,7 @@ class ThumbnailWithInfoContainer extends StatelessWidget { end: FractionalOffset.bottomCenter, colors: [ Colors.transparent, - label == '' - ? Colors.black.withValues(alpha: 0.1) - : Colors.black.withValues(alpha: 0.5), + label == '' ? Colors.black.withValues(alpha: 0.1) : Colors.black.withValues(alpha: 0.5), ], stops: const [0.0, 1.0], ), @@ -53,8 +51,7 @@ class ThumbnailWithInfoContainer extends StatelessWidget { child: child, ), Padding( - padding: const EdgeInsets.symmetric(horizontal: 8) + - const EdgeInsets.only(bottom: 8), + padding: const EdgeInsets.symmetric(horizontal: 8) + const EdgeInsets.only(bottom: 8), child: Text( label, style: const TextStyle( diff --git a/mobile/lib/widgets/settings/advanced_settings.dart b/mobile/lib/widgets/settings/advanced_settings.dart index bd501ffcf7..3f569863de 100644 --- a/mobile/lib/widgets/settings/advanced_settings.dart +++ b/mobile/lib/widgets/settings/advanced_settings.dart @@ -25,23 +25,18 @@ class AdvancedSettings extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { bool isLoggedIn = ref.read(currentUserProvider) != null; - final advancedTroubleshooting = - useAppSettingsState(AppSettingsEnum.advancedTroubleshooting); - final manageLocalMediaAndroid = - useAppSettingsState(AppSettingsEnum.manageLocalMediaAndroid); + final advancedTroubleshooting = useAppSettingsState(AppSettingsEnum.advancedTroubleshooting); + final manageLocalMediaAndroid = useAppSettingsState(AppSettingsEnum.manageLocalMediaAndroid); final levelId = useAppSettingsState(AppSettingsEnum.logLevel); final preferRemote = useAppSettingsState(AppSettingsEnum.preferRemoteImage); - final allowSelfSignedSSLCert = - useAppSettingsState(AppSettingsEnum.allowSelfSignedSSLCert); - final useAlternatePMFilter = - useAppSettingsState(AppSettingsEnum.photoManagerCustomFilter); + final allowSelfSignedSSLCert = useAppSettingsState(AppSettingsEnum.allowSelfSignedSSLCert); + final useAlternatePMFilter = useAppSettingsState(AppSettingsEnum.photoManagerCustomFilter); final logLevel = Level.LEVELS[levelId.value].name; useValueChanged( levelId.value, - (_, __) => - LogService.I.setLogLevel(Level.LEVELS[levelId.value].toLogLevel()), + (_, __) => LogService.I.setLogLevel(Level.LEVELS[levelId.value].toLogLevel()), ); Future checkAndroidVersion() async { @@ -72,9 +67,7 @@ class AdvancedSettings extends HookConsumerWidget { subtitle: "advanced_settings_sync_remote_deletions_subtitle".tr(), onChanged: (value) async { if (value) { - final result = await ref - .read(localFilesManagerRepositoryProvider) - .requestManageMediaPermission(); + final result = await ref.read(localFilesManagerRepositoryProvider).requestManageMediaPermission(); manageLocalMediaAndroid.value = result; } }, @@ -85,8 +78,7 @@ class AdvancedSettings extends HookConsumerWidget { }, ), SettingsSliderListTile( - text: "advanced_settings_log_level_title" - .tr(namedArgs: {'level': logLevel}), + text: "advanced_settings_log_level_title".tr(namedArgs: {'level': logLevel}), valueNotifier: levelId, maxValue: 8, minValue: 1, @@ -111,8 +103,7 @@ class AdvancedSettings extends HookConsumerWidget { SettingsSwitchListTile( valueNotifier: useAlternatePMFilter, title: "advanced_settings_enable_alternate_media_filter_title".tr(), - subtitle: - "advanced_settings_enable_alternate_media_filter_subtitle".tr(), + subtitle: "advanced_settings_enable_alternate_media_filter_subtitle".tr(), ), ]; diff --git a/mobile/lib/widgets/settings/asset_list_settings/asset_list_layout_settings.dart b/mobile/lib/widgets/settings/asset_list_settings/asset_list_layout_settings.dart index 72402c8d55..de8ae5c2b2 100644 --- a/mobile/lib/widgets/settings/asset_list_settings/asset_list_layout_settings.dart +++ b/mobile/lib/widgets/settings/asset_list_settings/asset_list_layout_settings.dart @@ -29,8 +29,7 @@ class LayoutSettings extends HookConsumerWidget { ), SettingsSliderListTile( valueNotifier: tilesPerRow, - text: 'theme_setting_asset_list_tiles_per_row_title' - .tr(namedArgs: {'count': "${tilesPerRow.value}"}), + text: 'theme_setting_asset_list_tiles_per_row_title'.tr(namedArgs: {'count': "${tilesPerRow.value}"}), label: "${tilesPerRow.value}", maxValue: 6, minValue: 2, diff --git a/mobile/lib/widgets/settings/asset_list_settings/asset_list_settings.dart b/mobile/lib/widgets/settings/asset_list_settings/asset_list_settings.dart index cd12ea3eb2..550e3b5165 100644 --- a/mobile/lib/widgets/settings/asset_list_settings/asset_list_settings.dart +++ b/mobile/lib/widgets/settings/asset_list_settings/asset_list_settings.dart @@ -16,8 +16,7 @@ class AssetListSettings extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final showStorageIndicator = - useAppSettingsState(AppSettingsEnum.storageIndicator); + final showStorageIndicator = useAppSettingsState(AppSettingsEnum.storageIndicator); final assetListSetting = [ SettingsSwitchListTile( diff --git a/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart b/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart index 4534b6ee09..66f7e96943 100644 --- a/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart +++ b/mobile/lib/widgets/settings/asset_viewer_settings/video_viewer_settings.dart @@ -15,8 +15,7 @@ class VideoViewerSettings extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final useLoopVideo = useAppSettingsState(AppSettingsEnum.loopVideo); - final useOriginalVideo = - useAppSettingsState(AppSettingsEnum.loadOriginalVideo); + final useOriginalVideo = useAppSettingsState(AppSettingsEnum.loadOriginalVideo); return Column( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/mobile/lib/widgets/settings/backup_settings/background_settings.dart b/mobile/lib/widgets/settings/backup_settings/background_settings.dart index 619a410545..5207969045 100644 --- a/mobile/lib/widgets/settings/backup_settings/background_settings.dart +++ b/mobile/lib/widgets/settings/backup_settings/background_settings.dart @@ -19,8 +19,7 @@ class BackgroundBackupSettings extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final isBackgroundEnabled = - ref.watch(backupProvider.select((s) => s.backgroundBackup)); + final isBackgroundEnabled = ref.watch(backupProvider.select((s) => s.backgroundBackup)); final iosSettings = ref.watch(iOSBackgroundSettingsProvider); void showErrorToUser(String msg) { @@ -80,12 +79,11 @@ class BackgroundBackupSettings extends ConsumerWidget { title: 'backup_controller_page_background_is_off'.tr(), subtileText: 'backup_controller_page_background_description'.tr(), buttonText: 'backup_controller_page_background_turn_on'.tr(), - onButtonTap: () => - ref.read(backupProvider.notifier).configureBackgroundBackup( - enabled: true, - onError: showErrorToUser, - onBatteryInfo: showBatteryOptimizationInfoToUser, - ), + onButtonTap: () => ref.read(backupProvider.notifier).configureBackgroundBackup( + enabled: true, + onError: showErrorToUser, + onBatteryInfo: showBatteryOptimizationInfoToUser, + ), ); } @@ -96,10 +94,8 @@ class BackgroundBackupSettings extends ConsumerWidget { onError: showErrorToUser, onBatteryInfo: showBatteryOptimizationInfoToUser, ), - if (Platform.isIOS && iosSettings?.appRefreshEnabled != true) - const _IOSBackgroundRefreshDisabled(), - if (Platform.isIOS && iosSettings != null) - IosDebugInfoTile(settings: iosSettings), + if (Platform.isIOS && iosSettings?.appRefreshEnabled != true) const _IOSBackgroundRefreshDisabled(), + if (Platform.isIOS && iosSettings != null) IosDebugInfoTile(settings: iosSettings), ], ); } @@ -112,13 +108,9 @@ class _IOSBackgroundRefreshDisabled extends StatelessWidget { Widget build(BuildContext context) { return SettingsButtonListTile( icon: Icons.task_outlined, - title: - 'backup_controller_page_background_app_refresh_disabled_title'.tr(), - subtileText: - 'backup_controller_page_background_app_refresh_disabled_content'.tr(), - buttonText: - 'backup_controller_page_background_app_refresh_enable_button_text' - .tr(), + title: 'backup_controller_page_background_app_refresh_disabled_title'.tr(), + subtileText: 'backup_controller_page_background_app_refresh_disabled_content'.tr(), + buttonText: 'backup_controller_page_background_app_refresh_enable_button_text'.tr(), onButtonTap: () => openAppSettings(), ); } @@ -135,8 +127,7 @@ class _BackgroundSettingsEnabled extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final isWifiRequired = - ref.watch(backupProvider.select((s) => s.backupRequireWifi)); + final isWifiRequired = ref.watch(backupProvider.select((s) => s.backupRequireWifi)); final isWifiRequiredNotifier = useValueNotifier(isWifiRequired); useValueChanged( isWifiRequired, @@ -145,8 +136,7 @@ class _BackgroundSettingsEnabled extends HookConsumerWidget { ), ); - final isChargingRequired = - ref.watch(backupProvider.select((s) => s.backupRequireCharging)); + final isChargingRequired = ref.watch(backupProvider.select((s) => s.backupRequireCharging)); final isChargingRequiredNotifier = useValueNotifier(isChargingRequired); useValueChanged( isChargingRequired, @@ -162,22 +152,16 @@ class _BackgroundSettingsEnabled extends HookConsumerWidget { _ => 3, }; - int backupDelayToMilliseconds(int v) => - switch (v) { 0 => 5000, 1 => 30000, 2 => 120000, _ => 600000 }; + int backupDelayToMilliseconds(int v) => switch (v) { 0 => 5000, 1 => 30000, 2 => 120000, _ => 600000 }; String formatBackupDelaySliderValue(int v) => switch (v) { - 0 => 'setting_notifications_notify_seconds' - .tr(namedArgs: {'count': '5'}), - 1 => 'setting_notifications_notify_seconds' - .tr(namedArgs: {'count': '30'}), - 2 => 'setting_notifications_notify_minutes' - .tr(namedArgs: {'count': '2'}), - _ => 'setting_notifications_notify_minutes' - .tr(namedArgs: {'count': '10'}), + 0 => 'setting_notifications_notify_seconds'.tr(namedArgs: {'count': '5'}), + 1 => 'setting_notifications_notify_seconds'.tr(namedArgs: {'count': '30'}), + 2 => 'setting_notifications_notify_minutes'.tr(namedArgs: {'count': '2'}), + _ => 'setting_notifications_notify_minutes'.tr(namedArgs: {'count': '10'}), }; - final backupTriggerDelay = - ref.watch(backupProvider.select((s) => s.backupTriggerDelay)); + final backupTriggerDelay = ref.watch(backupProvider.select((s) => s.backupTriggerDelay)); final triggerDelay = useState(backupDelayToSliderValue(backupTriggerDelay)); useValueChanged( triggerDelay.value, @@ -193,35 +177,32 @@ class _BackgroundSettingsEnabled extends HookConsumerWidget { iconColor: context.primaryColor, title: 'backup_controller_page_background_is_on'.tr(), buttonText: 'backup_controller_page_background_turn_off'.tr(), - onButtonTap: () => - ref.read(backupProvider.notifier).configureBackgroundBackup( - enabled: false, - onError: onError, - onBatteryInfo: onBatteryInfo, - ), + onButtonTap: () => ref.read(backupProvider.notifier).configureBackgroundBackup( + enabled: false, + onError: onError, + onBatteryInfo: onBatteryInfo, + ), subtitle: Column( children: [ SettingsSwitchListTile( valueNotifier: isWifiRequiredNotifier, title: 'backup_controller_page_background_wifi'.tr(), icon: Icons.wifi, - onChanged: (enabled) => - ref.read(backupProvider.notifier).configureBackgroundBackup( - requireWifi: enabled, - onError: onError, - onBatteryInfo: onBatteryInfo, - ), + onChanged: (enabled) => ref.read(backupProvider.notifier).configureBackgroundBackup( + requireWifi: enabled, + onError: onError, + onBatteryInfo: onBatteryInfo, + ), ), SettingsSwitchListTile( valueNotifier: isChargingRequiredNotifier, title: 'backup_controller_page_background_charging'.tr(), icon: Icons.charging_station, - onChanged: (enabled) => - ref.read(backupProvider.notifier).configureBackgroundBackup( - requireCharging: enabled, - onError: onError, - onBatteryInfo: onBatteryInfo, - ), + onChanged: (enabled) => ref.read(backupProvider.notifier).configureBackgroundBackup( + requireCharging: enabled, + onError: onError, + onBatteryInfo: onBatteryInfo, + ), ), if (Platform.isAndroid) SettingsSliderListTile( diff --git a/mobile/lib/widgets/settings/backup_settings/backup_settings.dart b/mobile/lib/widgets/settings/backup_settings/backup_settings.dart index 20f172cb28..59ea6f2105 100644 --- a/mobile/lib/widgets/settings/backup_settings/backup_settings.dart +++ b/mobile/lib/widgets/settings/backup_settings/backup_settings.dart @@ -21,10 +21,8 @@ class BackupSettings extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final ignoreIcloudAssets = - useAppSettingsState(AppSettingsEnum.ignoreIcloudAssets); - final isAdvancedTroubleshooting = - useAppSettingsState(AppSettingsEnum.advancedTroubleshooting); + final ignoreIcloudAssets = useAppSettingsState(AppSettingsEnum.ignoreIcloudAssets); + final isAdvancedTroubleshooting = useAppSettingsState(AppSettingsEnum.advancedTroubleshooting); final albumSync = useAppSettingsState(AppSettingsEnum.syncAlbums); final isCorruptCheckInProgress = ref.watch(backupVerificationProvider); final isAlbumSyncInProgress = useState(false); @@ -63,14 +61,10 @@ class BackupSettings extends HookConsumerWidget { ], ) : null, - subtileText: !isCorruptCheckInProgress - ? 'check_corrupt_asset_backup_description'.tr() - : null, + subtileText: !isCorruptCheckInProgress ? 'check_corrupt_asset_backup_description'.tr() : null, buttonText: 'check_corrupt_asset_backup_button'.tr(), onButtonTap: !isCorruptCheckInProgress - ? () => ref - .read(backupVerificationProvider.notifier) - .performBackupCheck(context) + ? () => ref.read(backupVerificationProvider.notifier).performBackupCheck(context) : null, ), if (albumSync.value) diff --git a/mobile/lib/widgets/settings/backup_settings/foreground_settings.dart b/mobile/lib/widgets/settings/backup_settings/foreground_settings.dart index fc3b32b203..a2ff00fe45 100644 --- a/mobile/lib/widgets/settings/backup_settings/foreground_settings.dart +++ b/mobile/lib/widgets/settings/backup_settings/foreground_settings.dart @@ -12,8 +12,7 @@ class ForegroundBackupSettings extends ConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final isAutoBackup = ref.watch(backupProvider.select((s) => s.autoBackup)); - void onButtonTap() => - ref.read(backupProvider.notifier).setAutoBackup(!isAutoBackup); + void onButtonTap() => ref.read(backupProvider.notifier).setAutoBackup(!isAutoBackup); if (isAutoBackup) { return SettingsButtonListTile( diff --git a/mobile/lib/widgets/settings/beta_sync_settings/beta_sync_settings.dart b/mobile/lib/widgets/settings/beta_sync_settings/beta_sync_settings.dart index e69717d3a4..85da49357b 100644 --- a/mobile/lib/widgets/settings/beta_sync_settings/beta_sync_settings.dart +++ b/mobile/lib/widgets/settings/beta_sync_settings/beta_sync_settings.dart @@ -68,8 +68,7 @@ class BetaSyncSettings extends HookConsumerWidget { // Refresh all stream queries database.notifyUpdates({ - for (final table in database.allTables) - drift_db.TableUpdate.onTable(table), + for (final table in database.allTables) drift_db.TableUpdate.onTable(table), }); }); } @@ -77,9 +76,7 @@ class BetaSyncSettings extends HookConsumerWidget { Future exportDatabase() async { try { // WAL Checkpoint to ensure all changes are written to the database - await ref - .read(driftProvider) - .customStatement("pragma wal_checkpoint(truncate)"); + await ref.read(driftProvider).customStatement("pragma wal_checkpoint(truncate)"); final documentsDir = await getApplicationDocumentsDirectory(); final dbFile = File(path.join(documentsDir.path, 'immich.sqlite')); @@ -118,8 +115,7 @@ class BetaSyncSettings extends HookConsumerWidget { if (context.mounted) { context.scaffoldMessenger.showSnackBar( SnackBar( - content: - Text("Database exported successfully".t(context: context)), + content: Text("Database exported successfully".t(context: context)), ), ); } @@ -127,8 +123,7 @@ class BetaSyncSettings extends HookConsumerWidget { if (context.mounted) { context.scaffoldMessenger.showSnackBar( SnackBar( - content: - Text("Failed to export database: $e".t(context: context)), + content: Text("Failed to export database: $e".t(context: context)), ), ); } diff --git a/mobile/lib/widgets/settings/beta_sync_settings/entity_count_tile.dart b/mobile/lib/widgets/settings/beta_sync_settings/entity_count_tile.dart index 1e140fbf2e..e2264cd85f 100644 --- a/mobile/lib/widgets/settings/beta_sync_settings/entity_count_tile.dart +++ b/mobile/lib/widgets/settings/beta_sync_settings/entity_count_tile.dart @@ -16,9 +16,7 @@ class EntitiyCountTile extends StatelessWidget { String zeroPadding(int number, int targetWidth) { final numStr = number.toString(); - return numStr.length < targetWidth - ? "0" * (targetWidth - numStr.length) - : ""; + return numStr.length < targetWidth ? "0" * (targetWidth - numStr.length) : ""; } int calculateMaxDigits(double availableWidth) { @@ -77,8 +75,7 @@ class EntitiyCountTile extends StatelessWidget { TextSpan( text: zeroPadding(count, maxDigits), style: TextStyle( - color: context.colorScheme.onSurfaceSecondary - .withAlpha(75), + color: context.colorScheme.onSurfaceSecondary.withAlpha(75), ), ), TextSpan( diff --git a/mobile/lib/widgets/settings/beta_timeline_list_tile.dart b/mobile/lib/widgets/settings/beta_timeline_list_tile.dart index 154ccb3552..f5f6d66898 100644 --- a/mobile/lib/widgets/settings/beta_timeline_list_tile.dart +++ b/mobile/lib/widgets/settings/beta_timeline_list_tile.dart @@ -18,12 +18,10 @@ class BetaTimelineListTile extends ConsumerStatefulWidget { }); @override - ConsumerState createState() => - _BetaTimelineListTileState(); + ConsumerState createState() => _BetaTimelineListTileState(); } -class _BetaTimelineListTileState extends ConsumerState - with SingleTickerProviderStateMixin { +class _BetaTimelineListTileState extends ConsumerState with SingleTickerProviderStateMixin { late AnimationController _animationController; late Animation _rotationAnimation; late Animation _pulseAnimation; @@ -69,14 +67,11 @@ class _BetaTimelineListTileState extends ConsumerState @override Widget build(BuildContext context) { - final betaTimelineValue = ref - .watch(appSettingsServiceProvider) - .getSetting(AppSettingsEnum.betaTimeline); + final betaTimelineValue = ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.betaTimeline); final serverInfo = ref.watch(serverInfoProvider); final auth = ref.watch(authProvider); - if (!auth.isAuthenticated || - (serverInfo.serverVersion.minor < 136 && kReleaseMode)) { + if (!auth.isAuthenticated || (serverInfo.serverVersion.minor < 136 && kReleaseMode)) { return const SizedBox.shrink(); } @@ -88,9 +83,7 @@ class _BetaTimelineListTileState extends ConsumerState context: context, builder: (context) { return AlertDialog( - title: value - ? const Text("Enable Beta Timeline") - : const Text("Disable Beta Timeline"), + title: value ? const Text("Enable Beta Timeline") : const Text("Disable Beta Timeline"), content: value ? const Text( "Are you sure you want to enable the beta timeline?", @@ -182,8 +175,7 @@ class _BetaTimelineListTileState extends ConsumerState borderRadius: const BorderRadius.all(Radius.circular(10.5)), onTap: () => onSwitchChanged(!betaTimelineValue), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), child: Row( children: [ Transform.scale( @@ -218,10 +210,8 @@ class _BetaTimelineListTileState extends ConsumerState crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - "advanced_settings_beta_timeline_title" - .t(context: context), - style: - context.textTheme.titleMedium?.copyWith( + "advanced_settings_beta_timeline_title".t(context: context), + style: context.textTheme.titleMedium?.copyWith( fontWeight: FontWeight.w600, ), ), @@ -237,17 +227,14 @@ class _BetaTimelineListTileState extends ConsumerState ), gradient: LinearGradient( colors: [ - context.primaryColor - .withValues(alpha: 0.8), - context.primaryColor - .withValues(alpha: 0.6), + context.primaryColor.withValues(alpha: 0.8), + context.primaryColor.withValues(alpha: 0.6), ], ), ), child: Text( 'NEW', - style: - context.textTheme.labelSmall?.copyWith( + style: context.textTheme.labelSmall?.copyWith( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 10, @@ -259,11 +246,9 @@ class _BetaTimelineListTileState extends ConsumerState ), const SizedBox(height: 4), Text( - "advanced_settings_beta_timeline_subtitle" - .t(context: context), + "advanced_settings_beta_timeline_subtitle".t(context: context), style: context.textTheme.labelLarge?.copyWith( - color: context.textTheme.labelLarge?.color - ?.withValues(alpha: 0.9), + color: context.textTheme.labelLarge?.color?.withValues(alpha: 0.9), ), maxLines: 2, ), diff --git a/mobile/lib/widgets/settings/language_settings.dart b/mobile/lib/widgets/settings/language_settings.dart index 4d41d5b19b..012c966b60 100644 --- a/mobile/lib/widgets/settings/language_settings.dart +++ b/mobile/lib/widgets/settings/language_settings.dart @@ -31,13 +31,11 @@ class LanguageSettings extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final localeEntries = useMemoized(() => locales.entries.toList(), const []); final currentLocale = context.locale; - final filteredLocaleEntries = - useState>>(localeEntries); + final filteredLocaleEntries = useState>>(localeEntries); final selectedLocale = useState(currentLocale); final isLoading = useState(false); - final isButtonDisabled = - selectedLocale.value == currentLocale || isLoading.value; + final isButtonDisabled = selectedLocale.value == currentLocale || isLoading.value; final searchController = useTextEditingController(); final searchFocusNode = useFocusNode(); @@ -51,8 +49,7 @@ class LanguageSettings extends HookConsumerWidget { } else { filteredLocaleEntries.value = localeEntries .where( - (entry) => - entry.key.toLowerCase().contains(searchTerm.toLowerCase()), + (entry) => entry.key.toLowerCase().contains(searchTerm.toLowerCase()), ) .toList(); } @@ -94,12 +91,9 @@ class LanguageSettings extends HookConsumerWidget { itemExtent: 64.0, cacheExtent: 100, itemBuilder: (context, index) { - final countryName = - filteredLocaleEntries.value[index].key; - final localeValue = - filteredLocaleEntries.value[index].value; - final bool isSelected = - selectedLocale.value == localeValue; + final countryName = filteredLocaleEntries.value[index].key; + final localeValue = filteredLocaleEntries.value[index].value; + final bool isSelected = selectedLocale.value == localeValue; return _LanguageItem( key: ValueKey(localeValue.toString()), @@ -285,8 +279,7 @@ class _LanguageItem extends StatelessWidget { ), child: DecoratedBox( decoration: BoxDecoration( - color: - context.colorScheme.surfaceContainerLowest.withValues(alpha: .6), + color: context.colorScheme.surfaceContainerLowest.withValues(alpha: .6), borderRadius: const BorderRadius.all( Radius.circular(16.0), ), @@ -300,9 +293,7 @@ class _LanguageItem extends StatelessWidget { countryName, style: context.textTheme.titleSmall?.copyWith( fontWeight: isSelected ? FontWeight.w600 : FontWeight.normal, - color: isSelected - ? context.colorScheme.primary - : context.colorScheme.onSurfaceVariant, + color: isSelected ? context.colorScheme.primary : context.colorScheme.onSurfaceVariant, ), ), trailing: isSelected diff --git a/mobile/lib/widgets/settings/networking_settings/endpoint_input.dart b/mobile/lib/widgets/settings/networking_settings/endpoint_input.dart index 6302f9422a..ec0069f2d1 100644 --- a/mobile/lib/widgets/settings/networking_settings/endpoint_input.dart +++ b/mobile/lib/widgets/settings/networking_settings/endpoint_input.dart @@ -61,8 +61,7 @@ class EndpointInputState extends ConsumerState { final url = controller.text; setState(() => auxCheckStatus = AuxCheckStatus.loading); - final isValid = - await ref.read(authProvider.notifier).validateAuxilaryServerUrl(url); + final isValid = await ref.read(authProvider.notifier).validateAuxilaryServerUrl(url); setState(() { if (mounted) { @@ -140,8 +139,7 @@ class EndpointInputState extends ConsumerState { ), disabledBorder: OutlineInputBorder( borderSide: BorderSide( - color: - context.isDarkTheme ? Colors.grey[900]! : Colors.grey[300]!, + color: context.isDarkTheme ? Colors.grey[900]! : Colors.grey[300]!, ), borderRadius: const BorderRadius.all(Radius.circular(16)), ), diff --git a/mobile/lib/widgets/settings/networking_settings/external_network_preference.dart b/mobile/lib/widgets/settings/networking_settings/external_network_preference.dart index d38ba06d76..d0c212adf5 100644 --- a/mobile/lib/widgets/settings/networking_settings/external_network_preference.dart +++ b/mobile/lib/widgets/settings/networking_settings/external_network_preference.dart @@ -23,12 +23,9 @@ class ExternalNetworkPreference extends HookConsumerWidget { final canSave = useState(false); saveEndpointList() { - canSave.value = - entries.value.every((e) => e.status == AuxCheckStatus.valid); + canSave.value = entries.value.every((e) => e.status == AuxCheckStatus.valid); - final endpointList = entries.value - .where((url) => url.status == AuxCheckStatus.valid) - .toList(); + final endpointList = entries.value.where((url) => url.status == AuxCheckStatus.valid).toList(); final jsonString = jsonEncode(endpointList); @@ -39,8 +36,7 @@ class ExternalNetworkPreference extends HookConsumerWidget { } updateValidationStatus(String url, int index, AuxCheckStatus status) { - entries.value[index] = - entries.value[index].copyWith(url: url, status: status); + entries.value[index] = entries.value[index].copyWith(url: url, status: status); saveEndpointList(); } @@ -90,8 +86,7 @@ class ExternalNetworkPreference extends HookConsumerWidget { } final List jsonList = jsonDecode(jsonString); - entries.value = - jsonList.map((e) => AuxilaryEndpoint.fromJson(e)).toList(); + entries.value = jsonList.map((e) => AuxilaryEndpoint.fromJson(e)).toList(); return null; }, const [], diff --git a/mobile/lib/widgets/settings/networking_settings/local_network_preference.dart b/mobile/lib/widgets/settings/networking_settings/local_network_preference.dart index a50d216a9d..ac61019aaf 100644 --- a/mobile/lib/widgets/settings/networking_settings/local_network_preference.dart +++ b/mobile/lib/widgets/settings/networking_settings/local_network_preference.dart @@ -59,8 +59,7 @@ class LocalNetworkPreference extends HookConsumerWidget { useEffect( () { final wifiName = ref.read(authProvider.notifier).getSavedWifiName(); - final localEndpoint = - ref.read(authProvider.notifier).getSavedLocalEndpoint(); + final localEndpoint = ref.read(authProvider.notifier).getSavedLocalEndpoint(); if (wifiName != null) { wifiNameText.value = wifiName; @@ -131,8 +130,7 @@ class LocalNetworkPreference extends HookConsumerWidget { saveWifiName(wifiName); } - final serverEndpoint = - ref.read(authProvider.notifier).getServerEndpoint(); + final serverEndpoint = ref.read(authProvider.notifier).getServerEndpoint(); if (serverEndpoint != null) { saveLocalEndpoint(serverEndpoint); @@ -194,10 +192,7 @@ class LocalNetworkPreference extends HookConsumerWidget { wifiNameText.value, style: context.textTheme.labelLarge?.copyWith( fontWeight: FontWeight.bold, - color: enabled - ? context.primaryColor - : context.colorScheme.onSurface - .withAlpha(100), + color: enabled ? context.primaryColor : context.colorScheme.onSurface.withAlpha(100), fontFamily: 'Inconsolata', ), ), @@ -217,10 +212,7 @@ class LocalNetworkPreference extends HookConsumerWidget { localEndpointText.value, style: context.textTheme.labelLarge?.copyWith( fontWeight: FontWeight.bold, - color: enabled - ? context.primaryColor - : context.colorScheme.onSurface - .withAlpha(100), + color: enabled ? context.primaryColor : context.colorScheme.onSurface.withAlpha(100), fontFamily: 'Inconsolata', ), ), @@ -238,8 +230,7 @@ class LocalNetworkPreference extends HookConsumerWidget { height: 48, child: OutlinedButton.icon( icon: const Icon(Icons.wifi_find_rounded), - label: - Text('use_current_connection'.tr().toUpperCase()), + label: Text('use_current_connection'.tr().toUpperCase()), onPressed: enabled ? autofillCurrentNetwork : null, ), ), diff --git a/mobile/lib/widgets/settings/networking_settings/networking_settings.dart b/mobile/lib/widgets/settings/networking_settings/networking_settings.dart index 587a0ce6d3..24d62b2663 100644 --- a/mobile/lib/widgets/settings/networking_settings/networking_settings.dart +++ b/mobile/lib/widgets/settings/networking_settings/networking_settings.dart @@ -18,8 +18,7 @@ class NetworkingSettings extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final currentEndpoint = getServerUrl(); - final featureEnabled = - useAppSettingsState(AppSettingsEnum.autoEndpointSwitching); + final featureEnabled = useAppSettingsState(AppSettingsEnum.autoEndpointSwitching); Future checkWifiReadPermission() async { final [hasLocationInUse, hasLocationAlways] = await Future.wait([ @@ -39,9 +38,7 @@ class NetworkingSettings extends HookConsumerWidget { actions: [ TextButton( onPressed: () async { - final isGrant = await ref - .read(networkProvider.notifier) - .requestWifiReadPermission(); + final isGrant = await ref.read(networkProvider.notifier).requestWifiReadPermission(); Navigator.pop(context, isGrant); }, @@ -63,9 +60,7 @@ class NetworkingSettings extends HookConsumerWidget { actions: [ TextButton( onPressed: () async { - final isGrant = await ref - .read(networkProvider.notifier) - .requestWifiReadBackgroundPermission(); + final isGrant = await ref.read(networkProvider.notifier).requestWifiReadBackgroundPermission(); Navigator.pop(context, isGrant); }, @@ -77,8 +72,7 @@ class NetworkingSettings extends HookConsumerWidget { ); } - if (isGrantLocationAlwaysPermission != null && - !isGrantLocationAlwaysPermission) { + if (isGrantLocationAlwaysPermission != null && !isGrantLocationAlwaysPermission) { await ref.read(networkProvider.notifier).openSettings(); } } @@ -101,9 +95,7 @@ class NetworkingSettings extends HookConsumerWidget { padding: const EdgeInsets.only(top: 8, left: 16, bottom: 8), child: NetworkPreferenceTitle( title: "current_server_address".tr().toUpperCase(), - icon: (currentEndpoint?.startsWith('https') ?? false) - ? Icons.https_outlined - : Icons.http_outlined, + icon: (currentEndpoint?.startsWith('https') ?? false) ? Icons.https_outlined : Icons.http_outlined, ), ), Padding( diff --git a/mobile/lib/widgets/settings/notification_setting.dart b/mobile/lib/widgets/settings/notification_setting.dart index cf6745199e..f4e520f4df 100644 --- a/mobile/lib/widgets/settings/notification_setting.dart +++ b/mobile/lib/widgets/settings/notification_setting.dart @@ -20,12 +20,9 @@ class NotificationSetting extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final permissionService = ref.watch(notificationPermissionProvider); - final sliderValue = - useAppSettingsState(AppSettingsEnum.uploadErrorNotificationGracePeriod); - final totalProgressValue = - useAppSettingsState(AppSettingsEnum.backgroundBackupTotalProgress); - final singleProgressValue = - useAppSettingsState(AppSettingsEnum.backgroundBackupSingleProgress); + final sliderValue = useAppSettingsState(AppSettingsEnum.uploadErrorNotificationGracePeriod); + final totalProgressValue = useAppSettingsState(AppSettingsEnum.backgroundBackupTotalProgress); + final singleProgressValue = useAppSettingsState(AppSettingsEnum.backgroundBackupSingleProgress); final hasPermission = permissionService == PermissionStatus.granted; @@ -55,8 +52,7 @@ class NotificationSetting extends HookConsumerWidget { ); } - final String formattedValue = - _formatSliderValue(sliderValue.value.toDouble()); + final String formattedValue = _formatSliderValue(sliderValue.value.toDouble()); final notificationSettings = [ if (!hasPermission) @@ -65,10 +61,8 @@ class NotificationSetting extends HookConsumerWidget { title: 'notification_permission_list_tile_title'.tr(), subtileText: 'notification_permission_list_tile_content'.tr(), buttonText: 'notification_permission_list_tile_enable_button'.tr(), - onButtonTap: () => ref - .watch(notificationPermissionProvider.notifier) - .requestNotificationPermission() - .then((permission) { + onButtonTap: () => + ref.watch(notificationPermissionProvider.notifier).requestNotificationPermission().then((permission) { if (permission == PermissionStatus.permanentlyDenied) { showPermissionsDialog(); } @@ -89,8 +83,7 @@ class NotificationSetting extends HookConsumerWidget { SettingsSliderListTile( enabled: hasPermission, valueNotifier: sliderValue, - text: 'setting_notifications_notify_failures_grace_period' - .tr(namedArgs: {'duration': formattedValue}), + text: 'setting_notifications_notify_failures_grace_period'.tr(namedArgs: {'duration': formattedValue}), maxValue: 5.0, noDivisons: 5, label: formattedValue, @@ -105,8 +98,7 @@ String _formatSliderValue(double v) { if (v == 0.0) { return 'setting_notifications_notify_immediately'.tr(); } else if (v == 1.0) { - return 'setting_notifications_notify_minutes' - .tr(namedArgs: {'count': '30'}); + return 'setting_notifications_notify_minutes'.tr(namedArgs: {'count': '30'}); } else if (v == 2.0) { return 'setting_notifications_notify_hours'.tr(namedArgs: {'count': '2'}); } else if (v == 3.0) { diff --git a/mobile/lib/widgets/settings/preference_settings/haptic_setting.dart b/mobile/lib/widgets/settings/preference_settings/haptic_setting.dart index 90a123bfbd..fbd94b68d6 100644 --- a/mobile/lib/widgets/settings/preference_settings/haptic_setting.dart +++ b/mobile/lib/widgets/settings/preference_settings/haptic_setting.dart @@ -14,10 +14,8 @@ class HapticSetting extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final hapticFeedbackSetting = - useAppSettingsState(AppSettingsEnum.enableHapticFeedback); - final isHapticFeedbackEnabled = - useValueNotifier(hapticFeedbackSetting.value); + final hapticFeedbackSetting = useAppSettingsState(AppSettingsEnum.enableHapticFeedback); + final isHapticFeedbackEnabled = useValueNotifier(hapticFeedbackSetting.value); onHapticFeedbackChange(bool isEnabled) { hapticFeedbackSetting.value = isEnabled; diff --git a/mobile/lib/widgets/settings/preference_settings/primary_color_setting.dart b/mobile/lib/widgets/settings/preference_settings/primary_color_setting.dart index 011904c310..b4f70c5b9b 100644 --- a/mobile/lib/widgets/settings/preference_settings/primary_color_setting.dart +++ b/mobile/lib/widgets/settings/preference_settings/primary_color_setting.dart @@ -20,18 +20,15 @@ class PrimaryColorSetting extends HookConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final themeProvider = ref.read(immichThemeProvider); - final primaryColorSetting = - useAppSettingsState(AppSettingsEnum.primaryColor); - final systemPrimaryColorSetting = - useAppSettingsState(AppSettingsEnum.dynamicTheme); + final primaryColorSetting = useAppSettingsState(AppSettingsEnum.primaryColor); + final systemPrimaryColorSetting = useAppSettingsState(AppSettingsEnum.dynamicTheme); final currentPreset = useValueNotifier(ref.read(immichThemePresetProvider)); const tileSize = 55.0; useValueChanged( primaryColorSetting.value, - (_, __) => currentPreset.value = ImmichColorPreset.values - .firstWhere((e) => e.name == primaryColorSetting.value), + (_, __) => currentPreset.value = ImmichColorPreset.values.firstWhere((e) => e.name == primaryColorSetting.value), ); void popBottomSheet() { @@ -131,8 +128,7 @@ class PrimaryColorSetting extends HookConsumerWidget { padding: const EdgeInsets.symmetric(horizontal: 20), margin: const EdgeInsets.only(top: 10), child: SwitchListTile.adaptive( - contentPadding: - const EdgeInsets.symmetric(vertical: 6, horizontal: 20), + contentPadding: const EdgeInsets.symmetric(vertical: 6, horizontal: 20), dense: true, activeColor: context.primaryColor, tileColor: context.colorScheme.surfaceContainerHigh, @@ -164,8 +160,7 @@ class PrimaryColorSetting extends HookConsumerWidget { topColor: theme.light.primary, bottomColor: theme.dark.primary, tileSize: tileSize, - showSelector: currentPreset.value == preset && - !systemPrimaryColorSetting.value, + showSelector: currentPreset.value == preset && !systemPrimaryColorSetting.value, ), ); }).toList(), @@ -201,8 +196,7 @@ class PrimaryColorSetting extends HookConsumerWidget { ), Text( "theme_setting_primary_color_subtitle".tr(), - style: context.textTheme.bodyMedium - ?.copyWith(color: context.colorScheme.onSurfaceSecondary), + style: context.textTheme.bodyMedium?.copyWith(color: context.colorScheme.onSurfaceSecondary), ), ], ), diff --git a/mobile/lib/widgets/settings/preference_settings/theme_setting.dart b/mobile/lib/widgets/settings/preference_settings/theme_setting.dart index 0c68de4c52..6d5a50e730 100644 --- a/mobile/lib/widgets/settings/preference_settings/theme_setting.dart +++ b/mobile/lib/widgets/settings/preference_settings/theme_setting.dart @@ -20,13 +20,10 @@ class ThemeSetting extends HookConsumerWidget { final currentThemeString = useAppSettingsState(AppSettingsEnum.themeMode); final currentTheme = useValueNotifier(ref.read(immichThemeModeProvider)); final isDarkTheme = useValueNotifier(currentTheme.value == ThemeMode.dark); - final isSystemTheme = - useValueNotifier(currentTheme.value == ThemeMode.system); + final isSystemTheme = useValueNotifier(currentTheme.value == ThemeMode.system); - final applyThemeToBackgroundSetting = - useAppSettingsState(AppSettingsEnum.colorfulInterface); - final applyThemeToBackgroundProvider = - useValueNotifier(ref.read(colorfulInterfaceSettingProvider)); + final applyThemeToBackgroundSetting = useAppSettingsState(AppSettingsEnum.colorfulInterface); + final applyThemeToBackgroundProvider = useValueNotifier(ref.read(colorfulInterfaceSettingProvider)); useValueChanged( currentThemeString.value, @@ -39,8 +36,7 @@ class ThemeSetting extends HookConsumerWidget { useValueChanged( applyThemeToBackgroundSetting.value, - (_, __) => applyThemeToBackgroundProvider.value = - applyThemeToBackgroundSetting.value, + (_, __) => applyThemeToBackgroundProvider.value = applyThemeToBackgroundSetting.value, ); void onThemeChange(bool isDark) { @@ -74,8 +70,7 @@ class ThemeSetting extends HookConsumerWidget { void onSurfaceColorSettingChange(bool useColorfulInterface) { applyThemeToBackgroundSetting.value = useColorfulInterface; - ref.watch(colorfulInterfaceSettingProvider.notifier).state = - useColorfulInterface; + ref.watch(colorfulInterfaceSettingProvider.notifier).state = useColorfulInterface; } return Column( diff --git a/mobile/lib/widgets/settings/settings_button_list_tile.dart b/mobile/lib/widgets/settings/settings_button_list_tile.dart index c8bd8e4b58..602bbd75cf 100644 --- a/mobile/lib/widgets/settings/settings_button_list_tile.dart +++ b/mobile/lib/widgets/settings/settings_button_list_tile.dart @@ -50,8 +50,7 @@ class SettingsButtonListTile extends StatelessWidget { ), if (subtitle != null) subtitle!, const SizedBox(height: 6), - child ?? - ElevatedButton(onPressed: onButtonTap, child: Text(buttonText)), + child ?? ElevatedButton(onPressed: onButtonTap, child: Text(buttonText)), ], ), ); diff --git a/mobile/lib/widgets/settings/settings_card.dart b/mobile/lib/widgets/settings/settings_card.dart index 257c0ce2d6..523add9690 100644 --- a/mobile/lib/widgets/settings/settings_card.dart +++ b/mobile/lib/widgets/settings/settings_card.dart @@ -37,9 +37,7 @@ class SettingsCard extends StatelessWidget { leading: Container( decoration: BoxDecoration( borderRadius: const BorderRadius.all(Radius.circular(16)), - color: context.isDarkTheme - ? Colors.black26 - : Colors.white.withAlpha(100), + color: context.isDarkTheme ? Colors.black26 : Colors.white.withAlpha(100), ), padding: const EdgeInsets.all(16.0), child: Icon(icon, color: context.primaryColor), diff --git a/mobile/lib/widgets/settings/settings_switch_list_tile.dart b/mobile/lib/widgets/settings/settings_switch_list_tile.dart index 8aa4ec0a60..456acd83cd 100644 --- a/mobile/lib/widgets/settings/settings_switch_list_tile.dart +++ b/mobile/lib/widgets/settings/settings_switch_list_tile.dart @@ -40,8 +40,7 @@ class SettingsSwitchListTile extends StatelessWidget { selectedTileColor: enabled ? null : context.themeData.disabledColor, value: valueNotifier.value, onChanged: onSwitchChanged, - activeColor: - enabled ? context.primaryColor : context.themeData.disabledColor, + activeColor: enabled ? context.primaryColor : context.themeData.disabledColor, dense: true, secondary: icon != null ? Icon( @@ -63,9 +62,7 @@ class SettingsSwitchListTile extends StatelessWidget { subtitle!, style: subtitleStyle ?? context.textTheme.bodyMedium?.copyWith( - color: enabled - ? context.colorScheme.onSurfaceSecondary - : context.themeData.disabledColor, + color: enabled ? context.colorScheme.onSurfaceSecondary : context.themeData.disabledColor, ), ) : null, diff --git a/mobile/lib/widgets/settings/ssl_client_cert_settings.dart b/mobile/lib/widgets/settings/ssl_client_cert_settings.dart index 6fdbb156d9..f17fd67638 100644 --- a/mobile/lib/widgets/settings/ssl_client_cert_settings.dart +++ b/mobile/lib/widgets/settings/ssl_client_cert_settings.dart @@ -20,8 +20,7 @@ class SslClientCertSettings extends StatefulWidget { } class _SslClientCertSettingsState extends State { - _SslClientCertSettingsState() - : isCertExist = SSLClientCertStoreVal.load() != null; + _SslClientCertSettingsState() : isCertExist = SSLClientCertStoreVal.load() != null; bool isCertExist; @@ -62,9 +61,7 @@ class _SslClientCertSettingsState extends State { width: 15, ), ElevatedButton( - onPressed: widget.isLoggedIn || !isCertExist - ? null - : () => removeCert(context), + onPressed: widget.isLoggedIn || !isCertExist ? null : () => removeCert(context), child: Text("remove".tr()), ), ], @@ -127,8 +124,7 @@ class _SslClientCertSettingsState extends State { ), actions: [ TextButton( - onPressed: () => - {ctx.pop(), storeCert(context, data, password.text)}, + onPressed: () => {ctx.pop(), storeCert(context, data, password.text)}, child: Text("client_cert_dialog_msg_confirm".tr()), ), ], diff --git a/mobile/lib/widgets/shared_link/shared_link_item.dart b/mobile/lib/widgets/shared_link/shared_link_item.dart index a9707eb0d3..82194d2c7c 100644 --- a/mobile/lib/widgets/shared_link/shared_link_item.dart +++ b/mobile/lib/widgets/shared_link/shared_link_item.dart @@ -45,17 +45,13 @@ class SharedLinkItem extends ConsumerWidget { if (difference.inHours % 24 > 12) { dayDifference += 1; } - expiresText = "shared_link_expires_days" - .tr(namedArgs: {'count': dayDifference.toString()}); + expiresText = "shared_link_expires_days".tr(namedArgs: {'count': dayDifference.toString()}); } else if (difference.inHours > 0) { - expiresText = "shared_link_expires_hours" - .tr(namedArgs: {'count': difference.inHours.toString()}); + expiresText = "shared_link_expires_hours".tr(namedArgs: {'count': difference.inHours.toString()}); } else if (difference.inMinutes > 0) { - expiresText = "shared_link_expires_minutes" - .tr(namedArgs: {'count': difference.inMinutes.toString()}); + expiresText = "shared_link_expires_minutes".tr(namedArgs: {'count': difference.inMinutes.toString()}); } else if (difference.inSeconds > 0) { - expiresText = "shared_link_expires_seconds" - .tr(namedArgs: {'count': difference.inSeconds.toString()}); + expiresText = "shared_link_expires_seconds".tr(namedArgs: {'count': difference.inSeconds.toString()}); } } return Text( @@ -68,17 +64,14 @@ class SharedLinkItem extends ConsumerWidget { Widget build(BuildContext context, WidgetRef ref) { final colorScheme = context.colorScheme; final isDarkMode = colorScheme.brightness == Brightness.dark; - final thumbnailUrl = sharedLink.thumbAssetId != null - ? getThumbnailUrlForRemoteId(sharedLink.thumbAssetId!) - : null; + final thumbnailUrl = sharedLink.thumbAssetId != null ? getThumbnailUrlForRemoteId(sharedLink.thumbAssetId!) : null; final imageSize = math.min(context.width / 4, 100.0); void copyShareLinkToClipboard() { final externalDomain = ref.read( serverInfoProvider.select((s) => s.serverConfig.externalDomain), ); - var serverUrl = - externalDomain.isNotEmpty ? externalDomain : getServerUrl(); + var serverUrl = externalDomain.isNotEmpty ? externalDomain : getServerUrl(); if (serverUrl != null && !serverUrl.endsWith('/')) { serverUrl += '/'; } @@ -116,9 +109,7 @@ class SharedLinkItem extends ConsumerWidget { return ConfirmDialog( title: "delete_shared_link_dialog_title", content: "confirm_delete_shared_link", - onOk: () => ref - .read(sharedLinksStateProvider.notifier) - .deleteLink(sharedLink.id), + onOk: () => ref.read(sharedLinksStateProvider.notifier).deleteLink(sharedLink.id), ); }, ); @@ -181,8 +172,7 @@ class SharedLinkItem extends ConsumerWidget { children: [ if (sharedLink.allowUpload) buildInfoChip("upload".tr()), if (sharedLink.allowDownload) buildInfoChip("download".tr()), - if (sharedLink.showMetadata) - buildInfoChip("shared_link_info_chip_metadata".tr()), + if (sharedLink.showMetadata) buildInfoChip("shared_link_info_chip_metadata".tr()), ], ); } @@ -197,8 +187,7 @@ class SharedLinkItem extends ConsumerWidget { iconSize: actionIconSize, icon: const Icon(Icons.delete_outline), style: const ButtonStyle( - tapTargetSize: - MaterialTapTargetSize.shrinkWrap, // the '2023' part + tapTargetSize: MaterialTapTargetSize.shrinkWrap, // the '2023' part ), onPressed: deleteShareLink, ), @@ -208,11 +197,9 @@ class SharedLinkItem extends ConsumerWidget { iconSize: actionIconSize, icon: const Icon(Icons.edit_outlined), style: const ButtonStyle( - tapTargetSize: - MaterialTapTargetSize.shrinkWrap, // the '2023' part + tapTargetSize: MaterialTapTargetSize.shrinkWrap, // the '2023' part ), - onPressed: () => context - .pushRoute(SharedLinkEditRoute(existingLink: sharedLink)), + onPressed: () => context.pushRoute(SharedLinkEditRoute(existingLink: sharedLink)), ), IconButton( splashRadius: 25, @@ -220,8 +207,7 @@ class SharedLinkItem extends ConsumerWidget { iconSize: actionIconSize, icon: const Icon(Icons.copy_outlined), style: const ButtonStyle( - tapTargetSize: - MaterialTapTargetSize.shrinkWrap, // the '2023' part + tapTargetSize: MaterialTapTargetSize.shrinkWrap, // the '2023' part ), onPressed: copyShareLinkToClipboard, ), diff --git a/mobile/test/domain/services/hash_service_test.dart b/mobile/test/domain/services/hash_service_test.dart index b2ab803ac2..262766662b 100644 --- a/mobile/test/domain/services/hash_service_test.dart +++ b/mobile/test/domain/services/hash_service_test.dart @@ -50,8 +50,7 @@ void main() { when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer( (_) async => [LocalAlbumStub.recent.copyWith(assetCount: 0)], ); - when(() => mockAlbumRepo.getAssetsToHash(LocalAlbumStub.recent.id)) - .thenAnswer((_) async => []); + when(() => mockAlbumRepo.getAssetsToHash(LocalAlbumStub.recent.id)).thenAnswer((_) async => []); await sut.hashAssets(); @@ -64,12 +63,9 @@ void main() { test('skips assets without files', () async { final album = LocalAlbumStub.recent; final asset = LocalAssetStub.image1; - when(() => mockAlbumRepo.getAll(sortBy: sortBy)) - .thenAnswer((_) async => [album]); - when(() => mockAlbumRepo.getAssetsToHash(album.id)) - .thenAnswer((_) async => [asset]); - when(() => mockStorageRepo.getFileForAsset(asset.id)) - .thenAnswer((_) async => null); + when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer((_) async => [album]); + when(() => mockAlbumRepo.getAssetsToHash(album.id)).thenAnswer((_) async => [asset]); + when(() => mockStorageRepo.getFileForAsset(asset.id)).thenAnswer((_) async => null); await sut.hashAssets(); @@ -85,12 +81,9 @@ void main() { when(() => mockFile.length()).thenAnswer((_) async => 1000); when(() => mockFile.path).thenReturn('image-path'); - when(() => mockAlbumRepo.getAll(sortBy: sortBy)) - .thenAnswer((_) async => [album]); - when(() => mockAlbumRepo.getAssetsToHash(album.id)) - .thenAnswer((_) async => [asset]); - when(() => mockStorageRepo.getFileForAsset(asset.id)) - .thenAnswer((_) async => mockFile); + when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer((_) async => [album]); + when(() => mockAlbumRepo.getAssetsToHash(album.id)).thenAnswer((_) async => [asset]); + when(() => mockStorageRepo.getFileForAsset(asset.id)).thenAnswer((_) async => mockFile); when(() => mockNativeApi.hashPaths(['image-path'])).thenAnswer( (_) async => [hash], ); @@ -98,9 +91,7 @@ void main() { await sut.hashAssets(); verify(() => mockNativeApi.hashPaths(['image-path'])).called(1); - final captured = verify(() => mockAssetRepo.updateHashes(captureAny())) - .captured - .first as List; + final captured = verify(() => mockAssetRepo.updateHashes(captureAny())).captured.first as List; expect(captured.length, 1); expect(captured[0].checksum, base64.encode(hash)); }); @@ -112,21 +103,15 @@ void main() { when(() => mockFile.length()).thenAnswer((_) async => 1000); when(() => mockFile.path).thenReturn('image-path'); - when(() => mockAlbumRepo.getAll(sortBy: sortBy)) - .thenAnswer((_) async => [album]); - when(() => mockAlbumRepo.getAssetsToHash(album.id)) - .thenAnswer((_) async => [asset]); - when(() => mockStorageRepo.getFileForAsset(asset.id)) - .thenAnswer((_) async => mockFile); - when(() => mockNativeApi.hashPaths(['image-path'])) - .thenAnswer((_) async => [null]); + when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer((_) async => [album]); + when(() => mockAlbumRepo.getAssetsToHash(album.id)).thenAnswer((_) async => [asset]); + when(() => mockStorageRepo.getFileForAsset(asset.id)).thenAnswer((_) async => mockFile); + when(() => mockNativeApi.hashPaths(['image-path'])).thenAnswer((_) async => [null]); when(() => mockAssetRepo.updateHashes(any())).thenAnswer((_) async => {}); await sut.hashAssets(); - final captured = verify(() => mockAssetRepo.updateHashes(captureAny())) - .captured - .first as List; + final captured = verify(() => mockAssetRepo.updateHashes(captureAny())).captured.first as List; expect(captured.length, 0); }); @@ -137,23 +122,17 @@ void main() { when(() => mockFile.length()).thenAnswer((_) async => 1000); when(() => mockFile.path).thenReturn('image-path'); - when(() => mockAlbumRepo.getAll(sortBy: sortBy)) - .thenAnswer((_) async => [album]); - when(() => mockAlbumRepo.getAssetsToHash(album.id)) - .thenAnswer((_) async => [asset]); - when(() => mockStorageRepo.getFileForAsset(asset.id)) - .thenAnswer((_) async => mockFile); + when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer((_) async => [album]); + when(() => mockAlbumRepo.getAssetsToHash(album.id)).thenAnswer((_) async => [asset]); + when(() => mockStorageRepo.getFileForAsset(asset.id)).thenAnswer((_) async => mockFile); final invalidHash = Uint8List.fromList([1, 2, 3]); - when(() => mockNativeApi.hashPaths(['image-path'])) - .thenAnswer((_) async => [invalidHash]); + when(() => mockNativeApi.hashPaths(['image-path'])).thenAnswer((_) async => [invalidHash]); when(() => mockAssetRepo.updateHashes(any())).thenAnswer((_) async => {}); await sut.hashAssets(); - final captured = verify(() => mockAssetRepo.updateHashes(captureAny())) - .captured - .first as List; + final captured = verify(() => mockAssetRepo.updateHashes(captureAny())).captured.first as List; expect(captured.length, 0); }); @@ -176,18 +155,13 @@ void main() { when(() => mockFile2.length()).thenAnswer((_) async => 100); when(() => mockFile2.path).thenReturn('path-2'); - when(() => mockAlbumRepo.getAll(sortBy: sortBy)) - .thenAnswer((_) async => [album]); - when(() => mockAlbumRepo.getAssetsToHash(album.id)) - .thenAnswer((_) async => [asset1, asset2]); - when(() => mockStorageRepo.getFileForAsset(asset1.id)) - .thenAnswer((_) async => mockFile1); - when(() => mockStorageRepo.getFileForAsset(asset2.id)) - .thenAnswer((_) async => mockFile2); + when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer((_) async => [album]); + when(() => mockAlbumRepo.getAssetsToHash(album.id)).thenAnswer((_) async => [asset1, asset2]); + when(() => mockStorageRepo.getFileForAsset(asset1.id)).thenAnswer((_) async => mockFile1); + when(() => mockStorageRepo.getFileForAsset(asset2.id)).thenAnswer((_) async => mockFile2); final hash = Uint8List.fromList(List.generate(20, (i) => i)); - when(() => mockNativeApi.hashPaths(any())) - .thenAnswer((_) async => [hash]); + when(() => mockNativeApi.hashPaths(any())).thenAnswer((_) async => [hash]); when(() => mockAssetRepo.updateHashes(any())).thenAnswer((_) async => {}); await sut.hashAssets(); @@ -216,18 +190,13 @@ void main() { when(() => mockFile2.length()).thenAnswer((_) async => 100); when(() => mockFile2.path).thenReturn('path-2'); - when(() => mockAlbumRepo.getAll(sortBy: sortBy)) - .thenAnswer((_) async => [album]); - when(() => mockAlbumRepo.getAssetsToHash(album.id)) - .thenAnswer((_) async => [asset1, asset2]); - when(() => mockStorageRepo.getFileForAsset(asset1.id)) - .thenAnswer((_) async => mockFile1); - when(() => mockStorageRepo.getFileForAsset(asset2.id)) - .thenAnswer((_) async => mockFile2); + when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer((_) async => [album]); + when(() => mockAlbumRepo.getAssetsToHash(album.id)).thenAnswer((_) async => [asset1, asset2]); + when(() => mockStorageRepo.getFileForAsset(asset1.id)).thenAnswer((_) async => mockFile1); + when(() => mockStorageRepo.getFileForAsset(asset2.id)).thenAnswer((_) async => mockFile2); final hash = Uint8List.fromList(List.generate(20, (i) => i)); - when(() => mockNativeApi.hashPaths(any())) - .thenAnswer((_) async => [hash]); + when(() => mockNativeApi.hashPaths(any())).thenAnswer((_) async => [hash]); when(() => mockAssetRepo.updateHashes(any())).thenAnswer((_) async => {}); await sut.hashAssets(); @@ -248,25 +217,18 @@ void main() { when(() => mockFile2.length()).thenAnswer((_) async => 100); when(() => mockFile2.path).thenReturn('path-2'); - when(() => mockAlbumRepo.getAll(sortBy: sortBy)) - .thenAnswer((_) async => [album]); - when(() => mockAlbumRepo.getAssetsToHash(album.id)) - .thenAnswer((_) async => [asset1, asset2]); - when(() => mockStorageRepo.getFileForAsset(asset1.id)) - .thenAnswer((_) async => mockFile1); - when(() => mockStorageRepo.getFileForAsset(asset2.id)) - .thenAnswer((_) async => mockFile2); + when(() => mockAlbumRepo.getAll(sortBy: sortBy)).thenAnswer((_) async => [album]); + when(() => mockAlbumRepo.getAssetsToHash(album.id)).thenAnswer((_) async => [asset1, asset2]); + when(() => mockStorageRepo.getFileForAsset(asset1.id)).thenAnswer((_) async => mockFile1); + when(() => mockStorageRepo.getFileForAsset(asset2.id)).thenAnswer((_) async => mockFile2); final validHash = Uint8List.fromList(List.generate(20, (i) => i)); - when(() => mockNativeApi.hashPaths(['path-1', 'path-2'])) - .thenAnswer((_) async => [validHash, null]); + when(() => mockNativeApi.hashPaths(['path-1', 'path-2'])).thenAnswer((_) async => [validHash, null]); when(() => mockAssetRepo.updateHashes(any())).thenAnswer((_) async => {}); await sut.hashAssets(); - final captured = verify(() => mockAssetRepo.updateHashes(captureAny())) - .captured - .first as List; + final captured = verify(() => mockAssetRepo.updateHashes(captureAny())).captured.first as List; expect(captured.length, 1); expect(captured.first.id, asset1.id); }); diff --git a/mobile/test/domain/services/log_service_test.dart b/mobile/test/domain/services/log_service_test.dart index 3efa717f97..ad35a018c8 100644 --- a/mobile/test/domain/services/log_service_test.dart +++ b/mobile/test/domain/services/log_service_test.dart @@ -37,10 +37,8 @@ void main() { registerFallbackValue(_kInfoLog); - when(() => mockLogRepo.truncate(limit: any(named: 'limit'))) - .thenAnswer((_) async => {}); - when(() => mockStoreRepo.tryGet(StoreKey.logLevel)) - .thenAnswer((_) async => LogLevel.fine.index); + when(() => mockLogRepo.truncate(limit: any(named: 'limit'))).thenAnswer((_) async => {}); + when(() => mockStoreRepo.tryGet(StoreKey.logLevel)).thenAnswer((_) async => LogLevel.fine.index); when(() => mockLogRepo.getAll()).thenAnswer((_) async => []); when(() => mockLogRepo.insert(any())).thenAnswer((_) async => true); when(() => mockLogRepo.insertAll(any())).thenAnswer((_) async => true); @@ -57,10 +55,7 @@ void main() { group("Log Service Init:", () { test('Truncates the existing logs on init', () { - final limit = - verify(() => mockLogRepo.truncate(limit: captureAny(named: 'limit'))) - .captured - .firstOrNull as int?; + final limit = verify(() => mockLogRepo.truncate(limit: captureAny(named: 'limit'))).captured.firstOrNull as int?; expect(limit, kLogTruncateLimit); }); @@ -72,8 +67,7 @@ void main() { group("Log Service Set Level:", () { setUp(() async { - when(() => mockStoreRepo.insert(StoreKey.logLevel, any())) - .thenAnswer((_) async => true); + when(() => mockStoreRepo.insert(StoreKey.logLevel, any())).thenAnswer((_) async => true); await sut.setLogLevel(LogLevel.shout); }); diff --git a/mobile/test/domain/services/store_service_test.dart b/mobile/test/domain/services/store_service_test.dart index 7eab532ef3..c436a05454 100644 --- a/mobile/test/domain/services/store_service_test.dart +++ b/mobile/test/domain/services/store_service_test.dart @@ -86,8 +86,7 @@ void main() { group('Store Service put:', () { setUp(() { - when(() => mockStoreRepo.insert(any>(), any())) - .thenAnswer((_) async => true); + when(() => mockStoreRepo.insert(any>(), any())).thenAnswer((_) async => true); }); test('Skip insert when value is not modified', () async { @@ -101,8 +100,7 @@ void main() { final newAccessToken = _kAccessToken.toUpperCase(); await sut.put(StoreKey.accessToken, newAccessToken); verify( - () => - mockStoreRepo.insert(StoreKey.accessToken, newAccessToken), + () => mockStoreRepo.insert(StoreKey.accessToken, newAccessToken), ).called(1); expect(sut.tryGet(StoreKey.accessToken), newAccessToken); }); @@ -113,8 +111,7 @@ void main() { setUp(() { valueController = StreamController.broadcast(); - when(() => mockStoreRepo.watch(any>())) - .thenAnswer((_) => valueController.stream); + when(() => mockStoreRepo.watch(any>())).thenAnswer((_) => valueController.stream); }); tearDown(() async { @@ -143,14 +140,12 @@ void main() { group('Store Service delete:', () { setUp(() { - when(() => mockStoreRepo.delete(any>())) - .thenAnswer((_) async => true); + when(() => mockStoreRepo.delete(any>())).thenAnswer((_) async => true); }); test('Removes the value from the DB', () async { await sut.delete(StoreKey.accessToken); - verify(() => mockStoreRepo.delete(StoreKey.accessToken)) - .called(1); + verify(() => mockStoreRepo.delete(StoreKey.accessToken)).called(1); }); test('Removes the value from the cache', () async { diff --git a/mobile/test/domain/services/sync_stream_service_test.dart b/mobile/test/domain/services/sync_stream_service_test.dart index f9d9c4fbe4..49ac4467d0 100644 --- a/mobile/test/domain/services/sync_stream_service_test.dart +++ b/mobile/test/domain/services/sync_stream_service_test.dart @@ -42,53 +42,41 @@ void main() { when(() => mockAbortCallbackWrapper()).thenReturn(false); - when(() => mockSyncApiRepo.streamChanges(any())) - .thenAnswer((invocation) async { + when(() => mockSyncApiRepo.streamChanges(any())).thenAnswer((invocation) async { handleEventsCallback = invocation.positionalArguments.first; }); when(() => mockSyncApiRepo.ack(any())).thenAnswer((_) async => {}); - when(() => mockSyncStreamRepo.updateUsersV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deleteUsersV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updatePartnerV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deletePartnerV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updateAssetsV1(any())) - .thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updateUsersV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deleteUsersV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updatePartnerV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deletePartnerV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updateAssetsV1(any())).thenAnswer(successHandler); when( () => mockSyncStreamRepo.updateAssetsV1( any(), debugLabel: any(named: 'debugLabel'), ), ).thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deleteAssetsV1(any())) - .thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deleteAssetsV1(any())).thenAnswer(successHandler); when( () => mockSyncStreamRepo.deleteAssetsV1( any(), debugLabel: any(named: 'debugLabel'), ), ).thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updateAssetsExifV1(any())) - .thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updateAssetsExifV1(any())).thenAnswer(successHandler); when( () => mockSyncStreamRepo.updateAssetsExifV1( any(), debugLabel: any(named: 'debugLabel'), ), ).thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updateMemoriesV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deleteMemoriesV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updateMemoryAssetsV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deleteMemoryAssetsV1(any())) - .thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updateMemoriesV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deleteMemoriesV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updateMemoryAssetsV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deleteMemoryAssetsV1(any())).thenAnswer(successHandler); when( () => mockSyncStreamRepo.updateStacksV1( any(), @@ -101,18 +89,12 @@ void main() { debugLabel: any(named: 'debugLabel'), ), ).thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updateUserMetadatasV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deleteUserMetadatasV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updatePeopleV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deletePeopleV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.updateAssetFacesV1(any())) - .thenAnswer(successHandler); - when(() => mockSyncStreamRepo.deleteAssetFacesV1(any())) - .thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updateUserMetadatasV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deleteUserMetadatasV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updatePeopleV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deletePeopleV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.updateAssetFacesV1(any())).thenAnswer(successHandler); + when(() => mockSyncStreamRepo.deleteAssetFacesV1(any())).thenAnswer(successHandler); sut = SyncStreamService( syncApiRepository: mockSyncApiRepo, @@ -221,8 +203,7 @@ void main() { final processingCompleter = Completer(); bool handler1Started = false; - when(() => mockSyncStreamRepo.deleteUsersV1(any())) - .thenAnswer((_) async { + when(() => mockSyncStreamRepo.deleteUsersV1(any())).thenAnswer((_) async { handler1Started = true; return processingCompleter.future; }); @@ -241,8 +222,7 @@ void main() { SyncStreamStub.partnerDeleteV1, ]; - final processingFuture = - handleEventsCallback(events, mockAbortCallbackWrapper.call); + final processingFuture = handleEventsCallback(events, mockAbortCallbackWrapper.call); await pumpEventQueue(); expect(handler1Started, isTrue); @@ -307,8 +287,7 @@ void main() { }); test("handles memory sync failure gracefully", () async { - when(() => mockSyncStreamRepo.updateMemoriesV1(any())) - .thenThrow(Exception("Memory sync failed")); + when(() => mockSyncStreamRepo.updateMemoriesV1(any())).thenThrow(Exception("Memory sync failed")); final events = [ SyncStreamStub.memoryV1, @@ -339,8 +318,7 @@ void main() { verify(() => mockSyncApiRepo.ack(["6"])).called(1); }); - test("processes memory create/update events with correct data types", - () async { + test("processes memory create/update events with correct data types", () async { final events = [SyncStreamStub.memoryV1]; await simulateEvents(events); diff --git a/mobile/test/domain/services/user_service_test.dart b/mobile/test/domain/services/user_service_test.dart index 5cce565477..b26c243430 100644 --- a/mobile/test/domain/services/user_service_test.dart +++ b/mobile/test/domain/services/user_service_test.dart @@ -29,10 +29,8 @@ void main() { ); registerFallbackValue(UserStub.admin); - when(() => mockStoreService.get(StoreKey.currentUser)) - .thenReturn(UserStub.admin); - when(() => mockStoreService.tryGet(StoreKey.currentUser)) - .thenReturn(UserStub.admin); + when(() => mockStoreService.get(StoreKey.currentUser)).thenReturn(UserStub.admin); + when(() => mockStoreService.tryGet(StoreKey.currentUser)).thenReturn(UserStub.admin); }); group('getMyUser', () { @@ -42,8 +40,7 @@ void main() { }); test('should handle user not found scenario', () { - when(() => mockStoreService.get(StoreKey.currentUser)) - .thenThrow(Exception('User not found')); + when(() => mockStoreService.get(StoreKey.currentUser)).thenThrow(Exception('User not found')); expect(() => sut.getMyUser(), throwsA(isA())); }); @@ -56,8 +53,7 @@ void main() { }); test('should return null if user not found', () { - when(() => mockStoreService.tryGet(StoreKey.currentUser)) - .thenReturn(null); + when(() => mockStoreService.tryGet(StoreKey.currentUser)).thenReturn(null); final result = sut.tryGetMyUser(); expect(result, isNull); }); @@ -65,15 +61,13 @@ void main() { group('watchMyUser', () { test('should return user stream from store', () { - when(() => mockStoreService.watch(StoreKey.currentUser)) - .thenAnswer((_) => Stream.value(UserStub.admin)); + when(() => mockStoreService.watch(StoreKey.currentUser)).thenAnswer((_) => Stream.value(UserStub.admin)); final result = sut.watchMyUser(); expect(result, emits(UserStub.admin)); }); test('should return an empty stream if user not found', () { - when(() => mockStoreService.watch(StoreKey.currentUser)) - .thenAnswer((_) => const Stream.empty()); + when(() => mockStoreService.watch(StoreKey.currentUser)).thenAnswer((_) => const Stream.empty()); final result = sut.watchMyUser(); expect(result, emitsInOrder([])); }); @@ -81,16 +75,12 @@ void main() { group('refreshMyUser', () { test('should return user from api and store it', () async { - when(() => mockUserApiRepo.getMyUser()) - .thenAnswer((_) async => UserStub.admin); - when(() => mockStoreService.put(StoreKey.currentUser, UserStub.admin)) - .thenAnswer((_) async => true); - when(() => mockUserRepo.update(UserStub.admin)) - .thenAnswer((_) async => UserStub.admin); + when(() => mockUserApiRepo.getMyUser()).thenAnswer((_) async => UserStub.admin); + when(() => mockStoreService.put(StoreKey.currentUser, UserStub.admin)).thenAnswer((_) async => true); + when(() => mockUserRepo.update(UserStub.admin)).thenAnswer((_) async => UserStub.admin); final result = await sut.refreshMyUser(); - verify(() => mockStoreService.put(StoreKey.currentUser, UserStub.admin)) - .called(1); + verify(() => mockStoreService.put(StoreKey.currentUser, UserStub.admin)).called(1); verify(() => mockUserRepo.update(UserStub.admin)).called(1); expect(result, UserStub.admin); }); @@ -110,8 +100,7 @@ void main() { group('createProfileImage', () { test('should return profile image path', () async { const profileImagePath = 'profile.jpg'; - final updatedUser = - UserStub.admin.copyWith(profileImagePath: profileImagePath); + final updatedUser = UserStub.admin.copyWith(profileImagePath: profileImagePath); when( () => mockUserApiRepo.createProfileImage( @@ -119,24 +108,19 @@ void main() { data: Uint8List(0), ), ).thenAnswer((_) async => profileImagePath); - when(() => mockStoreService.put(StoreKey.currentUser, updatedUser)) - .thenAnswer((_) async => true); - when(() => mockUserRepo.update(updatedUser)) - .thenAnswer((_) async => UserStub.admin); + when(() => mockStoreService.put(StoreKey.currentUser, updatedUser)).thenAnswer((_) async => true); + when(() => mockUserRepo.update(updatedUser)).thenAnswer((_) async => UserStub.admin); - final result = - await sut.createProfileImage(profileImagePath, Uint8List(0)); + final result = await sut.createProfileImage(profileImagePath, Uint8List(0)); - verify(() => mockStoreService.put(StoreKey.currentUser, updatedUser)) - .called(1); + verify(() => mockStoreService.put(StoreKey.currentUser, updatedUser)).called(1); verify(() => mockUserRepo.update(updatedUser)).called(1); expect(result, profileImagePath); }); test('should return null if profile image creation fails', () async { const profileImagePath = 'profile.jpg'; - final updatedUser = - UserStub.admin.copyWith(profileImagePath: profileImagePath); + final updatedUser = UserStub.admin.copyWith(profileImagePath: profileImagePath); when( () => mockUserApiRepo.createProfileImage( @@ -145,8 +129,7 @@ void main() { ), ).thenThrow(Exception('Failed to create profile image')); - final result = - await sut.createProfileImage(profileImagePath, Uint8List(0)); + final result = await sut.createProfileImage(profileImagePath, Uint8List(0)); verifyNever( () => mockStoreService.put(StoreKey.currentUser, updatedUser), ); diff --git a/mobile/test/drift/main/generated/schema_v1.dart b/mobile/test/drift/main/generated/schema_v1.dart index d7b88ea3cf..75f3bdee4c 100644 --- a/mobile/test/drift/main/generated/schema_v1.dart +++ b/mobile/test/drift/main/generated/schema_v1.dart @@ -8,49 +8,30 @@ class UserEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; UserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isAdmin = GeneratedColumn( - 'is_admin', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isAdmin = GeneratedColumn('is_admin', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn email = GeneratedColumn( - 'email', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn profileImagePath = GeneratedColumn( - 'profile_image_path', aliasedName, true, + late final GeneratedColumn email = + GeneratedColumn('email', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn profileImagePath = GeneratedColumn('profile_image_path', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn quotaSizeInBytes = GeneratedColumn( - 'quota_size_in_bytes', aliasedName, true, + late final GeneratedColumn quotaSizeInBytes = GeneratedColumn('quota_size_in_bytes', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn quotaUsageInBytes = GeneratedColumn( - 'quota_usage_in_bytes', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, - defaultValue: const CustomExpression('0')); + late final GeneratedColumn quotaUsageInBytes = GeneratedColumn('quota_usage_in_bytes', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - id, - name, - isAdmin, - email, - profileImagePath, - updatedAt, - quotaSizeInBytes, - quotaUsageInBytes - ]; + List get $columns => + [id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -62,22 +43,17 @@ class UserEntity extends Table with TableInfo { UserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - isAdmin: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, - email: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}email'])!, - profileImagePath: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}profile_image_path']), - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - quotaSizeInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), - quotaUsageInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + isAdmin: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, + email: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}email'])!, + profileImagePath: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}profile_image_path']), + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + quotaSizeInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), + quotaUsageInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, ); } @@ -128,8 +104,7 @@ class UserEntityData extends DataClass implements Insertable { return map; } - factory UserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserEntityData( id: serializer.fromJson(json['id']), @@ -171,13 +146,9 @@ class UserEntityData extends DataClass implements Insertable { name: name ?? this.name, isAdmin: isAdmin ?? this.isAdmin, email: email ?? this.email, - profileImagePath: profileImagePath.present - ? profileImagePath.value - : this.profileImagePath, + profileImagePath: profileImagePath.present ? profileImagePath.value : this.profileImagePath, updatedAt: updatedAt ?? this.updatedAt, - quotaSizeInBytes: quotaSizeInBytes.present - ? quotaSizeInBytes.value - : this.quotaSizeInBytes, + quotaSizeInBytes: quotaSizeInBytes.present ? quotaSizeInBytes.value : this.quotaSizeInBytes, quotaUsageInBytes: quotaUsageInBytes ?? this.quotaUsageInBytes, ); UserEntityData copyWithCompanion(UserEntityCompanion data) { @@ -186,16 +157,10 @@ class UserEntityData extends DataClass implements Insertable { name: data.name.present ? data.name.value : this.name, isAdmin: data.isAdmin.present ? data.isAdmin.value : this.isAdmin, email: data.email.present ? data.email.value : this.email, - profileImagePath: data.profileImagePath.present - ? data.profileImagePath.value - : this.profileImagePath, + profileImagePath: data.profileImagePath.present ? data.profileImagePath.value : this.profileImagePath, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - quotaSizeInBytes: data.quotaSizeInBytes.present - ? data.quotaSizeInBytes.value - : this.quotaSizeInBytes, - quotaUsageInBytes: data.quotaUsageInBytes.present - ? data.quotaUsageInBytes.value - : this.quotaUsageInBytes, + quotaSizeInBytes: data.quotaSizeInBytes.present ? data.quotaSizeInBytes.value : this.quotaSizeInBytes, + quotaUsageInBytes: data.quotaUsageInBytes.present ? data.quotaUsageInBytes.value : this.quotaUsageInBytes, ); } @@ -215,8 +180,8 @@ class UserEntityData extends DataClass implements Insertable { } @override - int get hashCode => Object.hash(id, name, isAdmin, email, profileImagePath, - updatedAt, quotaSizeInBytes, quotaUsageInBytes); + int get hashCode => + Object.hash(id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes); @override bool operator ==(Object other) => identical(this, other) || @@ -351,74 +316,55 @@ class UserEntityCompanion extends UpdateCompanion { } } -class RemoteAssetEntity extends Table - with TableInfo { +class RemoteAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn localDateTime = - GeneratedColumn('local_date_time', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn thumbHash = GeneratedColumn( - 'thumb_hash', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn localDateTime = GeneratedColumn('local_date_time', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn thumbHash = + GeneratedColumn('thumb_hash', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); late final GeneratedColumn livePhotoVideoId = GeneratedColumn( 'live_photo_video_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn visibility = GeneratedColumn( - 'visibility', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn stackId = GeneratedColumn( - 'stack_id', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn visibility = + GeneratedColumn('visibility', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn stackId = + GeneratedColumn('stack_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ name, @@ -450,40 +396,26 @@ class RemoteAssetEntity extends Table RemoteAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - localDateTime: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), - thumbHash: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - livePhotoVideoId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), - visibility: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, - stackId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}stack_id']), + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + localDateTime: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), + thumbHash: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + livePhotoVideoId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), + visibility: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, + stackId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}stack_id']), ); } @@ -498,8 +430,7 @@ class RemoteAssetEntity extends Table bool get isStrict => true; } -class RemoteAssetEntityData extends DataClass - implements Insertable { +class RemoteAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -574,8 +505,7 @@ class RemoteAssetEntityData extends DataClass return map; } - factory RemoteAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAssetEntityData( name: serializer.fromJson(json['name']), @@ -646,20 +576,15 @@ class RemoteAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum ?? this.checksum, isFavorite: isFavorite ?? this.isFavorite, ownerId: ownerId ?? this.ownerId, - localDateTime: - localDateTime.present ? localDateTime.value : this.localDateTime, + localDateTime: localDateTime.present ? localDateTime.value : this.localDateTime, thumbHash: thumbHash.present ? thumbHash.value : this.thumbHash, deletedAt: deletedAt.present ? deletedAt.value : this.deletedAt, - livePhotoVideoId: livePhotoVideoId.present - ? livePhotoVideoId.value - : this.livePhotoVideoId, + livePhotoVideoId: livePhotoVideoId.present ? livePhotoVideoId.value : this.livePhotoVideoId, visibility: visibility ?? this.visibility, stackId: stackId.present ? stackId.value : this.stackId, ); @@ -671,24 +596,16 @@ class RemoteAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - localDateTime: data.localDateTime.present - ? data.localDateTime.value - : this.localDateTime, + localDateTime: data.localDateTime.present ? data.localDateTime.value : this.localDateTime, thumbHash: data.thumbHash.present ? data.thumbHash.value : this.thumbHash, deletedAt: data.deletedAt.present ? data.deletedAt.value : this.deletedAt, - livePhotoVideoId: data.livePhotoVideoId.present - ? data.livePhotoVideoId.value - : this.livePhotoVideoId, - visibility: - data.visibility.present ? data.visibility.value : this.visibility, + livePhotoVideoId: data.livePhotoVideoId.present ? data.livePhotoVideoId.value : this.livePhotoVideoId, + visibility: data.visibility.present ? data.visibility.value : this.visibility, stackId: data.stackId.present ? data.stackId.value : this.stackId, ); } @@ -718,24 +635,8 @@ class RemoteAssetEntityData extends DataClass } @override - int get hashCode => Object.hash( - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - ownerId, - localDateTime, - thumbHash, - deletedAt, - livePhotoVideoId, - visibility, - stackId); + int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, + isFavorite, ownerId, localDateTime, thumbHash, deletedAt, livePhotoVideoId, visibility, stackId); @override bool operator ==(Object other) => identical(this, other) || @@ -759,8 +660,7 @@ class RemoteAssetEntityData extends DataClass other.stackId == this.stackId); } -class RemoteAssetEntityCompanion - extends UpdateCompanion { +class RemoteAssetEntityCompanion extends UpdateCompanion { final Value name; final Value type; final Value createdAt; @@ -982,69 +882,43 @@ class RemoteAssetEntityCompanion } } -class LocalAssetEntity extends Table - with TableInfo { +class LocalAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), - defaultValue: const CustomExpression('0')); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); + late final GeneratedColumn orientation = GeneratedColumn('orientation', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - orientation - ]; + List get $columns => + [name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1056,28 +930,18 @@ class LocalAssetEntity extends Table LocalAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum']), - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum']), + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + orientation: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, ); } @@ -1092,8 +956,7 @@ class LocalAssetEntity extends Table bool get isStrict => true; } -class LocalAssetEntityData extends DataClass - implements Insertable { +class LocalAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -1142,8 +1005,7 @@ class LocalAssetEntityData extends DataClass return map; } - factory LocalAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAssetEntityData( name: serializer.fromJson(json['name']), @@ -1196,9 +1058,7 @@ class LocalAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum.present ? checksum.value : this.checksum, isFavorite: isFavorite ?? this.isFavorite, @@ -1212,15 +1072,11 @@ class LocalAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + orientation: data.orientation.present ? data.orientation.value : this.orientation, ); } @@ -1243,8 +1099,8 @@ class LocalAssetEntityData extends DataClass } @override - int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, - height, durationInSeconds, id, checksum, isFavorite, orientation); + int get hashCode => Object.hash( + name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation); @override bool operator ==(Object other) => identical(this, other) || @@ -1420,34 +1276,26 @@ class StackEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; StackEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn primaryAssetId = GeneratedColumn( - 'primary_asset_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn primaryAssetId = GeneratedColumn('primary_asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id)')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id)')); @override - List get $columns => - [id, createdAt, updatedAt, ownerId, primaryAssetId]; + List get $columns => [id, createdAt, updatedAt, ownerId, primaryAssetId]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1459,16 +1307,12 @@ class StackEntity extends Table with TableInfo { StackEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return StackEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - primaryAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + primaryAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, ); } @@ -1506,8 +1350,7 @@ class StackEntityData extends DataClass implements Insertable { return map; } - factory StackEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory StackEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return StackEntityData( id: serializer.fromJson(json['id']), @@ -1530,11 +1373,7 @@ class StackEntityData extends DataClass implements Insertable { } StackEntityData copyWith( - {String? id, - DateTime? createdAt, - DateTime? updatedAt, - String? ownerId, - String? primaryAssetId}) => + {String? id, DateTime? createdAt, DateTime? updatedAt, String? ownerId, String? primaryAssetId}) => StackEntityData( id: id ?? this.id, createdAt: createdAt ?? this.createdAt, @@ -1548,9 +1387,7 @@ class StackEntityData extends DataClass implements Insertable { createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - primaryAssetId: data.primaryAssetId.present - ? data.primaryAssetId.value - : this.primaryAssetId, + primaryAssetId: data.primaryAssetId.present ? data.primaryAssetId.value : this.primaryAssetId, ); } @@ -1567,8 +1404,7 @@ class StackEntityData extends DataClass implements Insertable { } @override - int get hashCode => - Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); + int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); @override bool operator ==(Object other) => identical(this, other) || @@ -1667,24 +1503,19 @@ class StackEntityCompanion extends UpdateCompanion { } } -class UserMetadataEntity extends Table - with TableInfo { +class UserMetadataEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; UserMetadataEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn key = GeneratedColumn( - 'key', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn value = GeneratedColumn( - 'value', aliasedName, false, - type: DriftSqlType.blob, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn key = + GeneratedColumn('key', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn value = + GeneratedColumn('value', aliasedName, false, type: DriftSqlType.blob, requiredDuringInsert: true); @override List get $columns => [userId, key, value]; @override @@ -1698,12 +1529,9 @@ class UserMetadataEntity extends Table UserMetadataEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserMetadataEntityData( - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - key: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}key'])!, - value: attachedDatabase.typeMapping - .read(DriftSqlType.blob, data['${effectivePrefix}value'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + key: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}key'])!, + value: attachedDatabase.typeMapping.read(DriftSqlType.blob, data['${effectivePrefix}value'])!, ); } @@ -1718,13 +1546,11 @@ class UserMetadataEntity extends Table bool get isStrict => true; } -class UserMetadataEntityData extends DataClass - implements Insertable { +class UserMetadataEntityData extends DataClass implements Insertable { final String userId; final int key; final Uint8List value; - const UserMetadataEntityData( - {required this.userId, required this.key, required this.value}); + const UserMetadataEntityData({required this.userId, required this.key, required this.value}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1734,8 +1560,7 @@ class UserMetadataEntityData extends DataClass return map; } - factory UserMetadataEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserMetadataEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserMetadataEntityData( userId: serializer.fromJson(json['userId']), @@ -1753,9 +1578,7 @@ class UserMetadataEntityData extends DataClass }; } - UserMetadataEntityData copyWith( - {String? userId, int? key, Uint8List? value}) => - UserMetadataEntityData( + UserMetadataEntityData copyWith({String? userId, int? key, Uint8List? value}) => UserMetadataEntityData( userId: userId ?? this.userId, key: key ?? this.key, value: value ?? this.value, @@ -1789,8 +1612,7 @@ class UserMetadataEntityData extends DataClass $driftBlobEquality.equals(other.value, this.value)); } -class UserMetadataEntityCompanion - extends UpdateCompanion { +class UserMetadataEntityCompanion extends UpdateCompanion { final Value userId; final Value key; final Value value; @@ -1818,8 +1640,7 @@ class UserMetadataEntityCompanion }); } - UserMetadataEntityCompanion copyWith( - {Value? userId, Value? key, Value? value}) { + UserMetadataEntityCompanion copyWith({Value? userId, Value? key, Value? value}) { return UserMetadataEntityCompanion( userId: userId ?? this.userId, key: key ?? this.key, @@ -1853,30 +1674,23 @@ class UserMetadataEntityCompanion } } -class PartnerEntity extends Table - with TableInfo { +class PartnerEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PartnerEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn sharedById = GeneratedColumn( - 'shared_by_id', aliasedName, false, + late final GeneratedColumn sharedById = GeneratedColumn('shared_by_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn sharedWithId = GeneratedColumn( - 'shared_with_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn sharedWithId = GeneratedColumn('shared_with_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn inTimeline = GeneratedColumn( - 'in_timeline', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn inTimeline = GeneratedColumn('in_timeline', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), defaultValue: const CustomExpression('0')); @override List get $columns => [sharedById, sharedWithId, inTimeline]; @@ -1891,12 +1705,9 @@ class PartnerEntity extends Table PartnerEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PartnerEntityData( - sharedById: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, - sharedWithId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, - inTimeline: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, + sharedById: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, + sharedWithId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, + inTimeline: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, ); } @@ -1911,15 +1722,11 @@ class PartnerEntity extends Table bool get isStrict => true; } -class PartnerEntityData extends DataClass - implements Insertable { +class PartnerEntityData extends DataClass implements Insertable { final String sharedById; final String sharedWithId; final bool inTimeline; - const PartnerEntityData( - {required this.sharedById, - required this.sharedWithId, - required this.inTimeline}); + const PartnerEntityData({required this.sharedById, required this.sharedWithId, required this.inTimeline}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1929,8 +1736,7 @@ class PartnerEntityData extends DataClass return map; } - factory PartnerEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PartnerEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PartnerEntityData( sharedById: serializer.fromJson(json['sharedById']), @@ -1948,22 +1754,16 @@ class PartnerEntityData extends DataClass }; } - PartnerEntityData copyWith( - {String? sharedById, String? sharedWithId, bool? inTimeline}) => - PartnerEntityData( + PartnerEntityData copyWith({String? sharedById, String? sharedWithId, bool? inTimeline}) => PartnerEntityData( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, inTimeline: inTimeline ?? this.inTimeline, ); PartnerEntityData copyWithCompanion(PartnerEntityCompanion data) { return PartnerEntityData( - sharedById: - data.sharedById.present ? data.sharedById.value : this.sharedById, - sharedWithId: data.sharedWithId.present - ? data.sharedWithId.value - : this.sharedWithId, - inTimeline: - data.inTimeline.present ? data.inTimeline.value : this.inTimeline, + sharedById: data.sharedById.present ? data.sharedById.value : this.sharedById, + sharedWithId: data.sharedWithId.present ? data.sharedWithId.value : this.sharedWithId, + inTimeline: data.inTimeline.present ? data.inTimeline.value : this.inTimeline, ); } @@ -2015,10 +1815,7 @@ class PartnerEntityCompanion extends UpdateCompanion { }); } - PartnerEntityCompanion copyWith( - {Value? sharedById, - Value? sharedWithId, - Value? inTimeline}) { + PartnerEntityCompanion copyWith({Value? sharedById, Value? sharedWithId, Value? inTimeline}) { return PartnerEntityCompanion( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, @@ -2052,42 +1849,32 @@ class PartnerEntityCompanion extends UpdateCompanion { } } -class LocalAlbumEntity extends Table - with TableInfo { +class LocalAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn backupSelection = GeneratedColumn( - 'backup_selection', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn isIosSharedAlbum = GeneratedColumn( - 'is_ios_shared_album', aliasedName, false, + late final GeneratedColumn backupSelection = + GeneratedColumn('backup_selection', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn isIosSharedAlbum = GeneratedColumn('is_ios_shared_album', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_ios_shared_album" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_ios_shared_album" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn marker_ = GeneratedColumn( - 'marker', aliasedName, true, + late final GeneratedColumn marker_ = GeneratedColumn('marker', aliasedName, true, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); @override - List get $columns => - [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; + List get $columns => [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -2099,18 +1886,13 @@ class LocalAlbumEntity extends Table LocalAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - backupSelection: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, - isIosSharedAlbum: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, - marker_: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}marker']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + backupSelection: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, + isIosSharedAlbum: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, + marker_: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}marker']), ); } @@ -2125,8 +1907,7 @@ class LocalAlbumEntity extends Table bool get isStrict => true; } -class LocalAlbumEntityData extends DataClass - implements Insertable { +class LocalAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final DateTime updatedAt; @@ -2154,8 +1935,7 @@ class LocalAlbumEntityData extends DataClass return map; } - factory LocalAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumEntityData( id: serializer.fromJson(json['id']), @@ -2199,12 +1979,8 @@ class LocalAlbumEntityData extends DataClass id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - backupSelection: data.backupSelection.present - ? data.backupSelection.value - : this.backupSelection, - isIosSharedAlbum: data.isIosSharedAlbum.present - ? data.isIosSharedAlbum.value - : this.isIosSharedAlbum, + backupSelection: data.backupSelection.present ? data.backupSelection.value : this.backupSelection, + isIosSharedAlbum: data.isIosSharedAlbum.present ? data.isIosSharedAlbum.value : this.isIosSharedAlbum, marker_: data.marker_.present ? data.marker_.value : this.marker_, ); } @@ -2223,8 +1999,7 @@ class LocalAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash( - id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); + int get hashCode => Object.hash(id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); @override bool operator ==(Object other) => identical(this, other) || @@ -2335,24 +2110,19 @@ class LocalAlbumEntityCompanion extends UpdateCompanion { } } -class LocalAlbumAssetEntity extends Table - with TableInfo { +class LocalAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -2363,14 +2133,11 @@ class LocalAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - LocalAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + LocalAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -2385,12 +2152,10 @@ class LocalAlbumAssetEntity extends Table bool get isStrict => true; } -class LocalAlbumAssetEntityData extends DataClass - implements Insertable { +class LocalAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const LocalAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const LocalAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -2399,8 +2164,7 @@ class LocalAlbumAssetEntityData extends DataClass return map; } - factory LocalAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -2416,13 +2180,11 @@ class LocalAlbumAssetEntityData extends DataClass }; } - LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - LocalAlbumAssetEntityData( + LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => LocalAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - LocalAlbumAssetEntityData copyWithCompanion( - LocalAlbumAssetEntityCompanion data) { + LocalAlbumAssetEntityData copyWithCompanion(LocalAlbumAssetEntityCompanion data) { return LocalAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -2443,13 +2205,10 @@ class LocalAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is LocalAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is LocalAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class LocalAlbumAssetEntityCompanion - extends UpdateCompanion { +class LocalAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const LocalAlbumAssetEntityCompanion({ @@ -2471,8 +2230,7 @@ class LocalAlbumAssetEntityCompanion }); } - LocalAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + LocalAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return LocalAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -2501,80 +2259,57 @@ class LocalAlbumAssetEntityCompanion } } -class RemoteExifEntity extends Table - with TableInfo { +class RemoteExifEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteExifEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn city = GeneratedColumn( - 'city', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn city = + GeneratedColumn('city', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn state = + GeneratedColumn('state', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn country = + GeneratedColumn('country', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn dateTimeOriginal = GeneratedColumn( + 'date_time_original', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn description = + GeneratedColumn('description', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn exposureTime = GeneratedColumn('exposure_time', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn state = GeneratedColumn( - 'state', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn country = GeneratedColumn( - 'country', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn dateTimeOriginal = - GeneratedColumn('date_time_original', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn exposureTime = GeneratedColumn( - 'exposure_time', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn fNumber = GeneratedColumn( - 'f_number', aliasedName, true, + late final GeneratedColumn fNumber = + GeneratedColumn('f_number', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn fileSize = + GeneratedColumn('file_size', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn focalLength = GeneratedColumn('focal_length', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn fileSize = GeneratedColumn( - 'file_size', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn focalLength = GeneratedColumn( - 'focal_length', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn latitude = GeneratedColumn( - 'latitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn longitude = GeneratedColumn( - 'longitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn iso = GeneratedColumn( - 'iso', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn make = GeneratedColumn( - 'make', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn model = GeneratedColumn( - 'model', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn lens = GeneratedColumn( - 'lens', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn timeZone = GeneratedColumn( - 'time_zone', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn rating = GeneratedColumn( - 'rating', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn projectionType = GeneratedColumn( - 'projection_type', aliasedName, true, + late final GeneratedColumn latitude = + GeneratedColumn('latitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn longitude = + GeneratedColumn('longitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn iso = + GeneratedColumn('iso', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn make = + GeneratedColumn('make', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn model = + GeneratedColumn('model', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn lens = + GeneratedColumn('lens', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn orientation = + GeneratedColumn('orientation', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn timeZone = + GeneratedColumn('time_zone', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn rating = + GeneratedColumn('rating', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn projectionType = GeneratedColumn('projection_type', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ @@ -2612,50 +2347,29 @@ class RemoteExifEntity extends Table RemoteExifEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteExifEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - city: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}city']), - state: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}state']), - country: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}country']), - dateTimeOriginal: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - exposureTime: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), - fNumber: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}f_number']), - fileSize: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}file_size']), - focalLength: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}focal_length']), - latitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}latitude']), - longitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}longitude']), - iso: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}iso']), - make: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}make']), - model: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}model']), - lens: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}lens']), - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}orientation']), - timeZone: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}time_zone']), - rating: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}rating']), - projectionType: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}projection_type']), + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + city: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}city']), + state: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}state']), + country: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}country']), + dateTimeOriginal: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + exposureTime: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), + fNumber: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}f_number']), + fileSize: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}file_size']), + focalLength: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}focal_length']), + latitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}latitude']), + longitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}longitude']), + iso: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}iso']), + make: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}make']), + model: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}model']), + lens: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}lens']), + orientation: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}orientation']), + timeZone: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}time_zone']), + rating: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}rating']), + projectionType: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}projection_type']), ); } @@ -2670,8 +2384,7 @@ class RemoteExifEntity extends Table bool get isStrict => true; } -class RemoteExifEntityData extends DataClass - implements Insertable { +class RemoteExifEntityData extends DataClass implements Insertable { final String assetId; final String? city; final String? state; @@ -2787,16 +2500,14 @@ class RemoteExifEntityData extends DataClass return map; } - factory RemoteExifEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteExifEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteExifEntityData( assetId: serializer.fromJson(json['assetId']), city: serializer.fromJson(json['city']), state: serializer.fromJson(json['state']), country: serializer.fromJson(json['country']), - dateTimeOriginal: - serializer.fromJson(json['dateTimeOriginal']), + dateTimeOriginal: serializer.fromJson(json['dateTimeOriginal']), description: serializer.fromJson(json['description']), height: serializer.fromJson(json['height']), width: serializer.fromJson(json['width']), @@ -2873,14 +2584,11 @@ class RemoteExifEntityData extends DataClass city: city.present ? city.value : this.city, state: state.present ? state.value : this.state, country: country.present ? country.value : this.country, - dateTimeOriginal: dateTimeOriginal.present - ? dateTimeOriginal.value - : this.dateTimeOriginal, + dateTimeOriginal: dateTimeOriginal.present ? dateTimeOriginal.value : this.dateTimeOriginal, description: description.present ? description.value : this.description, height: height.present ? height.value : this.height, width: width.present ? width.value : this.width, - exposureTime: - exposureTime.present ? exposureTime.value : this.exposureTime, + exposureTime: exposureTime.present ? exposureTime.value : this.exposureTime, fNumber: fNumber.present ? fNumber.value : this.fNumber, fileSize: fileSize.present ? fileSize.value : this.fileSize, focalLength: focalLength.present ? focalLength.value : this.focalLength, @@ -2893,8 +2601,7 @@ class RemoteExifEntityData extends DataClass orientation: orientation.present ? orientation.value : this.orientation, timeZone: timeZone.present ? timeZone.value : this.timeZone, rating: rating.present ? rating.value : this.rating, - projectionType: - projectionType.present ? projectionType.value : this.projectionType, + projectionType: projectionType.present ? projectionType.value : this.projectionType, ); RemoteExifEntityData copyWithCompanion(RemoteExifEntityCompanion data) { return RemoteExifEntityData( @@ -2902,33 +2609,24 @@ class RemoteExifEntityData extends DataClass city: data.city.present ? data.city.value : this.city, state: data.state.present ? data.state.value : this.state, country: data.country.present ? data.country.value : this.country, - dateTimeOriginal: data.dateTimeOriginal.present - ? data.dateTimeOriginal.value - : this.dateTimeOriginal, - description: - data.description.present ? data.description.value : this.description, + dateTimeOriginal: data.dateTimeOriginal.present ? data.dateTimeOriginal.value : this.dateTimeOriginal, + description: data.description.present ? data.description.value : this.description, height: data.height.present ? data.height.value : this.height, width: data.width.present ? data.width.value : this.width, - exposureTime: data.exposureTime.present - ? data.exposureTime.value - : this.exposureTime, + exposureTime: data.exposureTime.present ? data.exposureTime.value : this.exposureTime, fNumber: data.fNumber.present ? data.fNumber.value : this.fNumber, fileSize: data.fileSize.present ? data.fileSize.value : this.fileSize, - focalLength: - data.focalLength.present ? data.focalLength.value : this.focalLength, + focalLength: data.focalLength.present ? data.focalLength.value : this.focalLength, latitude: data.latitude.present ? data.latitude.value : this.latitude, longitude: data.longitude.present ? data.longitude.value : this.longitude, iso: data.iso.present ? data.iso.value : this.iso, make: data.make.present ? data.make.value : this.make, model: data.model.present ? data.model.value : this.model, lens: data.lens.present ? data.lens.value : this.lens, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + orientation: data.orientation.present ? data.orientation.value : this.orientation, timeZone: data.timeZone.present ? data.timeZone.value : this.timeZone, rating: data.rating.present ? data.rating.value : this.rating, - projectionType: data.projectionType.present - ? data.projectionType.value - : this.projectionType, + projectionType: data.projectionType.present ? data.projectionType.value : this.projectionType, ); } @@ -3286,67 +2984,43 @@ class RemoteExifEntityCompanion extends UpdateCompanion { } } -class RemoteAlbumEntity extends Table - with TableInfo { +class RemoteAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: false, - defaultValue: const CustomExpression('\'\'')); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn description = GeneratedColumn('description', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: false, defaultValue: const CustomExpression('\'\'')); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn thumbnailAssetId = GeneratedColumn( - 'thumbnail_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn thumbnailAssetId = GeneratedColumn('thumbnail_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); - late final GeneratedColumn isActivityEnabled = GeneratedColumn( - 'is_activity_enabled', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); + late final GeneratedColumn isActivityEnabled = GeneratedColumn('is_activity_enabled', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_activity_enabled" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_activity_enabled" IN (0, 1))'), defaultValue: const CustomExpression('1')); - late final GeneratedColumn order = GeneratedColumn( - 'order', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn order = + GeneratedColumn('order', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override - List get $columns => [ - id, - name, - description, - createdAt, - updatedAt, - ownerId, - thumbnailAssetId, - isActivityEnabled, - order - ]; + List get $columns => + [id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -3358,24 +3032,17 @@ class RemoteAlbumEntity extends Table RemoteAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - thumbnailAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), - isActivityEnabled: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, - order: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}order'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + thumbnailAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), + isActivityEnabled: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, + order: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}order'])!, ); } @@ -3390,8 +3057,7 @@ class RemoteAlbumEntity extends Table bool get isStrict => true; } -class RemoteAlbumEntityData extends DataClass - implements Insertable { +class RemoteAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final String description; @@ -3428,8 +3094,7 @@ class RemoteAlbumEntityData extends DataClass return map; } - factory RemoteAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumEntityData( id: serializer.fromJson(json['id']), @@ -3476,9 +3141,7 @@ class RemoteAlbumEntityData extends DataClass createdAt: createdAt ?? this.createdAt, updatedAt: updatedAt ?? this.updatedAt, ownerId: ownerId ?? this.ownerId, - thumbnailAssetId: thumbnailAssetId.present - ? thumbnailAssetId.value - : this.thumbnailAssetId, + thumbnailAssetId: thumbnailAssetId.present ? thumbnailAssetId.value : this.thumbnailAssetId, isActivityEnabled: isActivityEnabled ?? this.isActivityEnabled, order: order ?? this.order, ); @@ -3486,17 +3149,12 @@ class RemoteAlbumEntityData extends DataClass return RemoteAlbumEntityData( id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, - description: - data.description.present ? data.description.value : this.description, + description: data.description.present ? data.description.value : this.description, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - thumbnailAssetId: data.thumbnailAssetId.present - ? data.thumbnailAssetId.value - : this.thumbnailAssetId, - isActivityEnabled: data.isActivityEnabled.present - ? data.isActivityEnabled.value - : this.isActivityEnabled, + thumbnailAssetId: data.thumbnailAssetId.present ? data.thumbnailAssetId.value : this.thumbnailAssetId, + isActivityEnabled: data.isActivityEnabled.present ? data.isActivityEnabled.value : this.isActivityEnabled, order: data.order.present ? data.order.value : this.order, ); } @@ -3518,8 +3176,8 @@ class RemoteAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash(id, name, description, createdAt, updatedAt, - ownerId, thumbnailAssetId, isActivityEnabled, order); + int get hashCode => + Object.hash(id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order); @override bool operator ==(Object other) => identical(this, other) || @@ -3535,8 +3193,7 @@ class RemoteAlbumEntityData extends DataClass other.order == this.order); } -class RemoteAlbumEntityCompanion - extends UpdateCompanion { +class RemoteAlbumEntityCompanion extends UpdateCompanion { final Value id; final Value name; final Value description; @@ -3668,24 +3325,19 @@ class RemoteAlbumEntityCompanion } } -class RemoteAlbumAssetEntity extends Table - with TableInfo { +class RemoteAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -3696,14 +3348,11 @@ class RemoteAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - RemoteAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -3718,12 +3367,10 @@ class RemoteAlbumAssetEntity extends Table bool get isStrict => true; } -class RemoteAlbumAssetEntityData extends DataClass - implements Insertable { +class RemoteAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const RemoteAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const RemoteAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3732,8 +3379,7 @@ class RemoteAlbumAssetEntityData extends DataClass return map; } - factory RemoteAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -3749,13 +3395,11 @@ class RemoteAlbumAssetEntityData extends DataClass }; } - RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - RemoteAlbumAssetEntityData( + RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => RemoteAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - RemoteAlbumAssetEntityData copyWithCompanion( - RemoteAlbumAssetEntityCompanion data) { + RemoteAlbumAssetEntityData copyWithCompanion(RemoteAlbumAssetEntityCompanion data) { return RemoteAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -3776,13 +3420,10 @@ class RemoteAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is RemoteAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is RemoteAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class RemoteAlbumAssetEntityCompanion - extends UpdateCompanion { +class RemoteAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const RemoteAlbumAssetEntityCompanion({ @@ -3804,8 +3445,7 @@ class RemoteAlbumAssetEntityCompanion }); } - RemoteAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + RemoteAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return RemoteAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -3834,27 +3474,21 @@ class RemoteAlbumAssetEntityCompanion } } -class RemoteAlbumUserEntity extends Table - with TableInfo { +class RemoteAlbumUserEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumUserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn role = GeneratedColumn( - 'role', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn role = + GeneratedColumn('role', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override List get $columns => [albumId, userId, role]; @override @@ -3865,16 +3499,12 @@ class RemoteAlbumUserEntity extends Table @override Set get $primaryKey => {albumId, userId}; @override - RemoteAlbumUserEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumUserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumUserEntityData( - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - role: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}role'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + role: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}role'])!, ); } @@ -3889,13 +3519,11 @@ class RemoteAlbumUserEntity extends Table bool get isStrict => true; } -class RemoteAlbumUserEntityData extends DataClass - implements Insertable { +class RemoteAlbumUserEntityData extends DataClass implements Insertable { final String albumId; final String userId; final int role; - const RemoteAlbumUserEntityData( - {required this.albumId, required this.userId, required this.role}); + const RemoteAlbumUserEntityData({required this.albumId, required this.userId, required this.role}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3905,8 +3533,7 @@ class RemoteAlbumUserEntityData extends DataClass return map; } - factory RemoteAlbumUserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumUserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumUserEntityData( albumId: serializer.fromJson(json['albumId']), @@ -3924,15 +3551,12 @@ class RemoteAlbumUserEntityData extends DataClass }; } - RemoteAlbumUserEntityData copyWith( - {String? albumId, String? userId, int? role}) => - RemoteAlbumUserEntityData( + RemoteAlbumUserEntityData copyWith({String? albumId, String? userId, int? role}) => RemoteAlbumUserEntityData( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, role: role ?? this.role, ); - RemoteAlbumUserEntityData copyWithCompanion( - RemoteAlbumUserEntityCompanion data) { + RemoteAlbumUserEntityData copyWithCompanion(RemoteAlbumUserEntityCompanion data) { return RemoteAlbumUserEntityData( albumId: data.albumId.present ? data.albumId.value : this.albumId, userId: data.userId.present ? data.userId.value : this.userId, @@ -3961,8 +3585,7 @@ class RemoteAlbumUserEntityData extends DataClass other.role == this.role); } -class RemoteAlbumUserEntityCompanion - extends UpdateCompanion { +class RemoteAlbumUserEntityCompanion extends UpdateCompanion { final Value albumId; final Value userId; final Value role; @@ -3990,8 +3613,7 @@ class RemoteAlbumUserEntityCompanion }); } - RemoteAlbumUserEntityCompanion copyWith( - {Value? albumId, Value? userId, Value? role}) { + RemoteAlbumUserEntityCompanion copyWith({Value? albumId, Value? userId, Value? role}) { return RemoteAlbumUserEntityCompanion( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, @@ -4025,74 +3647,47 @@ class RemoteAlbumUserEntityCompanion } } -class MemoryEntity extends Table - with TableInfo { +class MemoryEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn data = GeneratedColumn( - 'data', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isSaved = GeneratedColumn( - 'is_saved', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn data = + GeneratedColumn('data', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isSaved = GeneratedColumn('is_saved', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn memoryAt = GeneratedColumn( - 'memory_at', aliasedName, false, + late final GeneratedColumn memoryAt = GeneratedColumn('memory_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: true); - late final GeneratedColumn seenAt = GeneratedColumn( - 'seen_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn showAt = GeneratedColumn( - 'show_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn hideAt = GeneratedColumn( - 'hide_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn seenAt = + GeneratedColumn('seen_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn showAt = + GeneratedColumn('show_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn hideAt = + GeneratedColumn('hide_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - deletedAt, - ownerId, - type, - data, - isSaved, - memoryAt, - seenAt, - showAt, - hideAt - ]; + List get $columns => + [id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4104,30 +3699,18 @@ class MemoryEntity extends Table MemoryEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - data: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}data'])!, - isSaved: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, - memoryAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, - seenAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), - showAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), - hideAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + data: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}data'])!, + isSaved: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, + memoryAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, + seenAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), + showAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), + hideAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), ); } @@ -4142,8 +3725,7 @@ class MemoryEntity extends Table bool get isStrict => true; } -class MemoryEntityData extends DataClass - implements Insertable { +class MemoryEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4195,8 +3777,7 @@ class MemoryEntityData extends DataClass return map; } - factory MemoryEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryEntityData( id: serializer.fromJson(json['id']), @@ -4296,8 +3877,8 @@ class MemoryEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, - type, data, isSaved, memoryAt, seenAt, showAt, hideAt); + int get hashCode => + Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt); @override bool operator ==(Object other) => identical(this, other) || @@ -4482,24 +4063,19 @@ class MemoryEntityCompanion extends UpdateCompanion { } } -class MemoryAssetEntity extends Table - with TableInfo { +class MemoryAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn memoryId = GeneratedColumn( - 'memory_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn memoryId = GeneratedColumn('memory_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES memory_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES memory_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, memoryId]; @override @@ -4513,10 +4089,8 @@ class MemoryAssetEntity extends Table MemoryAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - memoryId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + memoryId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, ); } @@ -4531,8 +4105,7 @@ class MemoryAssetEntity extends Table bool get isStrict => true; } -class MemoryAssetEntityData extends DataClass - implements Insertable { +class MemoryAssetEntityData extends DataClass implements Insertable { final String assetId; final String memoryId; const MemoryAssetEntityData({required this.assetId, required this.memoryId}); @@ -4544,8 +4117,7 @@ class MemoryAssetEntityData extends DataClass return map; } - factory MemoryAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -4561,8 +4133,7 @@ class MemoryAssetEntityData extends DataClass }; } - MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => - MemoryAssetEntityData( + MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => MemoryAssetEntityData( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, ); @@ -4587,13 +4158,10 @@ class MemoryAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is MemoryAssetEntityData && - other.assetId == this.assetId && - other.memoryId == this.memoryId); + (other is MemoryAssetEntityData && other.assetId == this.assetId && other.memoryId == this.memoryId); } -class MemoryAssetEntityCompanion - extends UpdateCompanion { +class MemoryAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value memoryId; const MemoryAssetEntityCompanion({ @@ -4615,8 +4183,7 @@ class MemoryAssetEntityCompanion }); } - MemoryAssetEntityCompanion copyWith( - {Value? assetId, Value? memoryId}) { + MemoryAssetEntityCompanion copyWith({Value? assetId, Value? memoryId}) { return MemoryAssetEntityCompanion( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, @@ -4645,72 +4212,46 @@ class MemoryAssetEntityCompanion } } -class PersonEntity extends Table - with TableInfo { +class PersonEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PersonEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn faceAssetId = GeneratedColumn( - 'face_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn faceAssetId = GeneratedColumn('face_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn thumbnailPath = GeneratedColumn( - 'thumbnail_path', aliasedName, false, + late final GeneratedColumn thumbnailPath = GeneratedColumn('thumbnail_path', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_favorite" IN (0, 1))')); - late final GeneratedColumn isHidden = GeneratedColumn( - 'is_hidden', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))')); + late final GeneratedColumn isHidden = GeneratedColumn('is_hidden', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); - late final GeneratedColumn color = GeneratedColumn( - 'color', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn birthDate = GeneratedColumn( - 'birth_date', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); + late final GeneratedColumn color = + GeneratedColumn('color', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn birthDate = GeneratedColumn('birth_date', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - ownerId, - name, - faceAssetId, - thumbnailPath, - isFavorite, - isHidden, - color, - birthDate - ]; + List get $columns => + [id, createdAt, updatedAt, ownerId, name, faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4722,28 +4263,17 @@ class PersonEntity extends Table PersonEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PersonEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - faceAssetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), - thumbnailPath: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}thumbnail_path'])!, - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - isHidden: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, - color: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}color']), - birthDate: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + faceAssetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), + thumbnailPath: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumbnail_path'])!, + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + isHidden: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, + color: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}color']), + birthDate: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), ); } @@ -4758,8 +4288,7 @@ class PersonEntity extends Table bool get isStrict => true; } -class PersonEntityData extends DataClass - implements Insertable { +class PersonEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4806,8 +4335,7 @@ class PersonEntityData extends DataClass return map; } - factory PersonEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PersonEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PersonEntityData( id: serializer.fromJson(json['id']), @@ -4873,13 +4401,9 @@ class PersonEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, name: data.name.present ? data.name.value : this.name, - faceAssetId: - data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, - thumbnailPath: data.thumbnailPath.present - ? data.thumbnailPath.value - : this.thumbnailPath, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + faceAssetId: data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, + thumbnailPath: data.thumbnailPath.present ? data.thumbnailPath.value : this.thumbnailPath, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, isHidden: data.isHidden.present ? data.isHidden.value : this.isHidden, color: data.color.present ? data.color.value : this.color, birthDate: data.birthDate.present ? data.birthDate.value : this.birthDate, @@ -4905,8 +4429,8 @@ class PersonEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, name, - faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate); + int get hashCode => Object.hash( + id, createdAt, updatedAt, ownerId, name, faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate); @override bool operator ==(Object other) => identical(this, other) || @@ -5086,30 +4610,25 @@ class DatabaseAtV1 extends GeneratedDatabase { late final RemoteAssetEntity remoteAssetEntity = RemoteAssetEntity(this); late final LocalAssetEntity localAssetEntity = LocalAssetEntity(this); late final StackEntity stackEntity = StackEntity(this); - late final Index idxLocalAssetChecksum = Index('idx_local_asset_checksum', - 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); - late final Index uQRemoteAssetOwnerChecksum = Index( - 'UQ_remote_asset_owner_checksum', + late final Index idxLocalAssetChecksum = + Index('idx_local_asset_checksum', 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); + late final Index uQRemoteAssetOwnerChecksum = Index('UQ_remote_asset_owner_checksum', 'CREATE UNIQUE INDEX UQ_remote_asset_owner_checksum ON remote_asset_entity (checksum, owner_id)'); - late final Index idxRemoteAssetChecksum = Index('idx_remote_asset_checksum', - 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); + late final Index idxRemoteAssetChecksum = + Index('idx_remote_asset_checksum', 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); late final UserMetadataEntity userMetadataEntity = UserMetadataEntity(this); late final PartnerEntity partnerEntity = PartnerEntity(this); late final LocalAlbumEntity localAlbumEntity = LocalAlbumEntity(this); - late final LocalAlbumAssetEntity localAlbumAssetEntity = - LocalAlbumAssetEntity(this); + late final LocalAlbumAssetEntity localAlbumAssetEntity = LocalAlbumAssetEntity(this); late final RemoteExifEntity remoteExifEntity = RemoteExifEntity(this); late final RemoteAlbumEntity remoteAlbumEntity = RemoteAlbumEntity(this); - late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = - RemoteAlbumAssetEntity(this); - late final RemoteAlbumUserEntity remoteAlbumUserEntity = - RemoteAlbumUserEntity(this); + late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = RemoteAlbumAssetEntity(this); + late final RemoteAlbumUserEntity remoteAlbumUserEntity = RemoteAlbumUserEntity(this); late final MemoryEntity memoryEntity = MemoryEntity(this); late final MemoryAssetEntity memoryAssetEntity = MemoryAssetEntity(this); late final PersonEntity personEntity = PersonEntity(this); @override - Iterable> get allTables => - allSchemaEntities.whereType>(); + Iterable> get allTables => allSchemaEntities.whereType>(); @override List get allSchemaEntities => [ userEntity, @@ -5134,6 +4653,5 @@ class DatabaseAtV1 extends GeneratedDatabase { @override int get schemaVersion => 1; @override - DriftDatabaseOptions get options => - const DriftDatabaseOptions(storeDateTimeAsText: true); + DriftDatabaseOptions get options => const DriftDatabaseOptions(storeDateTimeAsText: true); } diff --git a/mobile/test/drift/main/generated/schema_v2.dart b/mobile/test/drift/main/generated/schema_v2.dart index e3edac3501..3d705e0454 100644 --- a/mobile/test/drift/main/generated/schema_v2.dart +++ b/mobile/test/drift/main/generated/schema_v2.dart @@ -8,49 +8,30 @@ class UserEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; UserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isAdmin = GeneratedColumn( - 'is_admin', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isAdmin = GeneratedColumn('is_admin', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn email = GeneratedColumn( - 'email', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn profileImagePath = GeneratedColumn( - 'profile_image_path', aliasedName, true, + late final GeneratedColumn email = + GeneratedColumn('email', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn profileImagePath = GeneratedColumn('profile_image_path', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn quotaSizeInBytes = GeneratedColumn( - 'quota_size_in_bytes', aliasedName, true, + late final GeneratedColumn quotaSizeInBytes = GeneratedColumn('quota_size_in_bytes', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn quotaUsageInBytes = GeneratedColumn( - 'quota_usage_in_bytes', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, - defaultValue: const CustomExpression('0')); + late final GeneratedColumn quotaUsageInBytes = GeneratedColumn('quota_usage_in_bytes', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - id, - name, - isAdmin, - email, - profileImagePath, - updatedAt, - quotaSizeInBytes, - quotaUsageInBytes - ]; + List get $columns => + [id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -62,22 +43,17 @@ class UserEntity extends Table with TableInfo { UserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - isAdmin: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, - email: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}email'])!, - profileImagePath: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}profile_image_path']), - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - quotaSizeInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), - quotaUsageInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + isAdmin: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, + email: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}email'])!, + profileImagePath: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}profile_image_path']), + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + quotaSizeInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), + quotaUsageInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, ); } @@ -128,8 +104,7 @@ class UserEntityData extends DataClass implements Insertable { return map; } - factory UserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserEntityData( id: serializer.fromJson(json['id']), @@ -171,13 +146,9 @@ class UserEntityData extends DataClass implements Insertable { name: name ?? this.name, isAdmin: isAdmin ?? this.isAdmin, email: email ?? this.email, - profileImagePath: profileImagePath.present - ? profileImagePath.value - : this.profileImagePath, + profileImagePath: profileImagePath.present ? profileImagePath.value : this.profileImagePath, updatedAt: updatedAt ?? this.updatedAt, - quotaSizeInBytes: quotaSizeInBytes.present - ? quotaSizeInBytes.value - : this.quotaSizeInBytes, + quotaSizeInBytes: quotaSizeInBytes.present ? quotaSizeInBytes.value : this.quotaSizeInBytes, quotaUsageInBytes: quotaUsageInBytes ?? this.quotaUsageInBytes, ); UserEntityData copyWithCompanion(UserEntityCompanion data) { @@ -186,16 +157,10 @@ class UserEntityData extends DataClass implements Insertable { name: data.name.present ? data.name.value : this.name, isAdmin: data.isAdmin.present ? data.isAdmin.value : this.isAdmin, email: data.email.present ? data.email.value : this.email, - profileImagePath: data.profileImagePath.present - ? data.profileImagePath.value - : this.profileImagePath, + profileImagePath: data.profileImagePath.present ? data.profileImagePath.value : this.profileImagePath, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - quotaSizeInBytes: data.quotaSizeInBytes.present - ? data.quotaSizeInBytes.value - : this.quotaSizeInBytes, - quotaUsageInBytes: data.quotaUsageInBytes.present - ? data.quotaUsageInBytes.value - : this.quotaUsageInBytes, + quotaSizeInBytes: data.quotaSizeInBytes.present ? data.quotaSizeInBytes.value : this.quotaSizeInBytes, + quotaUsageInBytes: data.quotaUsageInBytes.present ? data.quotaUsageInBytes.value : this.quotaUsageInBytes, ); } @@ -215,8 +180,8 @@ class UserEntityData extends DataClass implements Insertable { } @override - int get hashCode => Object.hash(id, name, isAdmin, email, profileImagePath, - updatedAt, quotaSizeInBytes, quotaUsageInBytes); + int get hashCode => + Object.hash(id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes); @override bool operator ==(Object other) => identical(this, other) || @@ -351,74 +316,55 @@ class UserEntityCompanion extends UpdateCompanion { } } -class RemoteAssetEntity extends Table - with TableInfo { +class RemoteAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn localDateTime = - GeneratedColumn('local_date_time', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn thumbHash = GeneratedColumn( - 'thumb_hash', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn localDateTime = GeneratedColumn('local_date_time', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn thumbHash = + GeneratedColumn('thumb_hash', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); late final GeneratedColumn livePhotoVideoId = GeneratedColumn( 'live_photo_video_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn visibility = GeneratedColumn( - 'visibility', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn stackId = GeneratedColumn( - 'stack_id', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn visibility = + GeneratedColumn('visibility', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn stackId = + GeneratedColumn('stack_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ name, @@ -450,40 +396,26 @@ class RemoteAssetEntity extends Table RemoteAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - localDateTime: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), - thumbHash: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - livePhotoVideoId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), - visibility: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, - stackId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}stack_id']), + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + localDateTime: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), + thumbHash: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + livePhotoVideoId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), + visibility: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, + stackId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}stack_id']), ); } @@ -498,8 +430,7 @@ class RemoteAssetEntity extends Table bool get isStrict => true; } -class RemoteAssetEntityData extends DataClass - implements Insertable { +class RemoteAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -574,8 +505,7 @@ class RemoteAssetEntityData extends DataClass return map; } - factory RemoteAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAssetEntityData( name: serializer.fromJson(json['name']), @@ -646,20 +576,15 @@ class RemoteAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum ?? this.checksum, isFavorite: isFavorite ?? this.isFavorite, ownerId: ownerId ?? this.ownerId, - localDateTime: - localDateTime.present ? localDateTime.value : this.localDateTime, + localDateTime: localDateTime.present ? localDateTime.value : this.localDateTime, thumbHash: thumbHash.present ? thumbHash.value : this.thumbHash, deletedAt: deletedAt.present ? deletedAt.value : this.deletedAt, - livePhotoVideoId: livePhotoVideoId.present - ? livePhotoVideoId.value - : this.livePhotoVideoId, + livePhotoVideoId: livePhotoVideoId.present ? livePhotoVideoId.value : this.livePhotoVideoId, visibility: visibility ?? this.visibility, stackId: stackId.present ? stackId.value : this.stackId, ); @@ -671,24 +596,16 @@ class RemoteAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - localDateTime: data.localDateTime.present - ? data.localDateTime.value - : this.localDateTime, + localDateTime: data.localDateTime.present ? data.localDateTime.value : this.localDateTime, thumbHash: data.thumbHash.present ? data.thumbHash.value : this.thumbHash, deletedAt: data.deletedAt.present ? data.deletedAt.value : this.deletedAt, - livePhotoVideoId: data.livePhotoVideoId.present - ? data.livePhotoVideoId.value - : this.livePhotoVideoId, - visibility: - data.visibility.present ? data.visibility.value : this.visibility, + livePhotoVideoId: data.livePhotoVideoId.present ? data.livePhotoVideoId.value : this.livePhotoVideoId, + visibility: data.visibility.present ? data.visibility.value : this.visibility, stackId: data.stackId.present ? data.stackId.value : this.stackId, ); } @@ -718,24 +635,8 @@ class RemoteAssetEntityData extends DataClass } @override - int get hashCode => Object.hash( - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - ownerId, - localDateTime, - thumbHash, - deletedAt, - livePhotoVideoId, - visibility, - stackId); + int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, + isFavorite, ownerId, localDateTime, thumbHash, deletedAt, livePhotoVideoId, visibility, stackId); @override bool operator ==(Object other) => identical(this, other) || @@ -759,8 +660,7 @@ class RemoteAssetEntityData extends DataClass other.stackId == this.stackId); } -class RemoteAssetEntityCompanion - extends UpdateCompanion { +class RemoteAssetEntityCompanion extends UpdateCompanion { final Value name; final Value type; final Value createdAt; @@ -982,69 +882,43 @@ class RemoteAssetEntityCompanion } } -class LocalAssetEntity extends Table - with TableInfo { +class LocalAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), - defaultValue: const CustomExpression('0')); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); + late final GeneratedColumn orientation = GeneratedColumn('orientation', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - orientation - ]; + List get $columns => + [name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1056,28 +930,18 @@ class LocalAssetEntity extends Table LocalAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum']), - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum']), + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + orientation: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, ); } @@ -1092,8 +956,7 @@ class LocalAssetEntity extends Table bool get isStrict => true; } -class LocalAssetEntityData extends DataClass - implements Insertable { +class LocalAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -1142,8 +1005,7 @@ class LocalAssetEntityData extends DataClass return map; } - factory LocalAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAssetEntityData( name: serializer.fromJson(json['name']), @@ -1196,9 +1058,7 @@ class LocalAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum.present ? checksum.value : this.checksum, isFavorite: isFavorite ?? this.isFavorite, @@ -1212,15 +1072,11 @@ class LocalAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + orientation: data.orientation.present ? data.orientation.value : this.orientation, ); } @@ -1243,8 +1099,8 @@ class LocalAssetEntityData extends DataClass } @override - int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, - height, durationInSeconds, id, checksum, isFavorite, orientation); + int get hashCode => Object.hash( + name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation); @override bool operator ==(Object other) => identical(this, other) || @@ -1420,34 +1276,26 @@ class StackEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; StackEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn primaryAssetId = GeneratedColumn( - 'primary_asset_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn primaryAssetId = GeneratedColumn('primary_asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id)')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id)')); @override - List get $columns => - [id, createdAt, updatedAt, ownerId, primaryAssetId]; + List get $columns => [id, createdAt, updatedAt, ownerId, primaryAssetId]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1459,16 +1307,12 @@ class StackEntity extends Table with TableInfo { StackEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return StackEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - primaryAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + primaryAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, ); } @@ -1506,8 +1350,7 @@ class StackEntityData extends DataClass implements Insertable { return map; } - factory StackEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory StackEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return StackEntityData( id: serializer.fromJson(json['id']), @@ -1530,11 +1373,7 @@ class StackEntityData extends DataClass implements Insertable { } StackEntityData copyWith( - {String? id, - DateTime? createdAt, - DateTime? updatedAt, - String? ownerId, - String? primaryAssetId}) => + {String? id, DateTime? createdAt, DateTime? updatedAt, String? ownerId, String? primaryAssetId}) => StackEntityData( id: id ?? this.id, createdAt: createdAt ?? this.createdAt, @@ -1548,9 +1387,7 @@ class StackEntityData extends DataClass implements Insertable { createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - primaryAssetId: data.primaryAssetId.present - ? data.primaryAssetId.value - : this.primaryAssetId, + primaryAssetId: data.primaryAssetId.present ? data.primaryAssetId.value : this.primaryAssetId, ); } @@ -1567,8 +1404,7 @@ class StackEntityData extends DataClass implements Insertable { } @override - int get hashCode => - Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); + int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); @override bool operator ==(Object other) => identical(this, other) || @@ -1667,24 +1503,19 @@ class StackEntityCompanion extends UpdateCompanion { } } -class UserMetadataEntity extends Table - with TableInfo { +class UserMetadataEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; UserMetadataEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn key = GeneratedColumn( - 'key', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn value = GeneratedColumn( - 'value', aliasedName, false, - type: DriftSqlType.blob, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn key = + GeneratedColumn('key', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn value = + GeneratedColumn('value', aliasedName, false, type: DriftSqlType.blob, requiredDuringInsert: true); @override List get $columns => [userId, key, value]; @override @@ -1698,12 +1529,9 @@ class UserMetadataEntity extends Table UserMetadataEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserMetadataEntityData( - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - key: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}key'])!, - value: attachedDatabase.typeMapping - .read(DriftSqlType.blob, data['${effectivePrefix}value'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + key: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}key'])!, + value: attachedDatabase.typeMapping.read(DriftSqlType.blob, data['${effectivePrefix}value'])!, ); } @@ -1718,13 +1546,11 @@ class UserMetadataEntity extends Table bool get isStrict => true; } -class UserMetadataEntityData extends DataClass - implements Insertable { +class UserMetadataEntityData extends DataClass implements Insertable { final String userId; final int key; final Uint8List value; - const UserMetadataEntityData( - {required this.userId, required this.key, required this.value}); + const UserMetadataEntityData({required this.userId, required this.key, required this.value}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1734,8 +1560,7 @@ class UserMetadataEntityData extends DataClass return map; } - factory UserMetadataEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserMetadataEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserMetadataEntityData( userId: serializer.fromJson(json['userId']), @@ -1753,9 +1578,7 @@ class UserMetadataEntityData extends DataClass }; } - UserMetadataEntityData copyWith( - {String? userId, int? key, Uint8List? value}) => - UserMetadataEntityData( + UserMetadataEntityData copyWith({String? userId, int? key, Uint8List? value}) => UserMetadataEntityData( userId: userId ?? this.userId, key: key ?? this.key, value: value ?? this.value, @@ -1789,8 +1612,7 @@ class UserMetadataEntityData extends DataClass $driftBlobEquality.equals(other.value, this.value)); } -class UserMetadataEntityCompanion - extends UpdateCompanion { +class UserMetadataEntityCompanion extends UpdateCompanion { final Value userId; final Value key; final Value value; @@ -1818,8 +1640,7 @@ class UserMetadataEntityCompanion }); } - UserMetadataEntityCompanion copyWith( - {Value? userId, Value? key, Value? value}) { + UserMetadataEntityCompanion copyWith({Value? userId, Value? key, Value? value}) { return UserMetadataEntityCompanion( userId: userId ?? this.userId, key: key ?? this.key, @@ -1853,30 +1674,23 @@ class UserMetadataEntityCompanion } } -class PartnerEntity extends Table - with TableInfo { +class PartnerEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PartnerEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn sharedById = GeneratedColumn( - 'shared_by_id', aliasedName, false, + late final GeneratedColumn sharedById = GeneratedColumn('shared_by_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn sharedWithId = GeneratedColumn( - 'shared_with_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn sharedWithId = GeneratedColumn('shared_with_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn inTimeline = GeneratedColumn( - 'in_timeline', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn inTimeline = GeneratedColumn('in_timeline', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), defaultValue: const CustomExpression('0')); @override List get $columns => [sharedById, sharedWithId, inTimeline]; @@ -1891,12 +1705,9 @@ class PartnerEntity extends Table PartnerEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PartnerEntityData( - sharedById: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, - sharedWithId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, - inTimeline: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, + sharedById: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, + sharedWithId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, + inTimeline: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, ); } @@ -1911,15 +1722,11 @@ class PartnerEntity extends Table bool get isStrict => true; } -class PartnerEntityData extends DataClass - implements Insertable { +class PartnerEntityData extends DataClass implements Insertable { final String sharedById; final String sharedWithId; final bool inTimeline; - const PartnerEntityData( - {required this.sharedById, - required this.sharedWithId, - required this.inTimeline}); + const PartnerEntityData({required this.sharedById, required this.sharedWithId, required this.inTimeline}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1929,8 +1736,7 @@ class PartnerEntityData extends DataClass return map; } - factory PartnerEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PartnerEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PartnerEntityData( sharedById: serializer.fromJson(json['sharedById']), @@ -1948,22 +1754,16 @@ class PartnerEntityData extends DataClass }; } - PartnerEntityData copyWith( - {String? sharedById, String? sharedWithId, bool? inTimeline}) => - PartnerEntityData( + PartnerEntityData copyWith({String? sharedById, String? sharedWithId, bool? inTimeline}) => PartnerEntityData( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, inTimeline: inTimeline ?? this.inTimeline, ); PartnerEntityData copyWithCompanion(PartnerEntityCompanion data) { return PartnerEntityData( - sharedById: - data.sharedById.present ? data.sharedById.value : this.sharedById, - sharedWithId: data.sharedWithId.present - ? data.sharedWithId.value - : this.sharedWithId, - inTimeline: - data.inTimeline.present ? data.inTimeline.value : this.inTimeline, + sharedById: data.sharedById.present ? data.sharedById.value : this.sharedById, + sharedWithId: data.sharedWithId.present ? data.sharedWithId.value : this.sharedWithId, + inTimeline: data.inTimeline.present ? data.inTimeline.value : this.inTimeline, ); } @@ -2015,10 +1815,7 @@ class PartnerEntityCompanion extends UpdateCompanion { }); } - PartnerEntityCompanion copyWith( - {Value? sharedById, - Value? sharedWithId, - Value? inTimeline}) { + PartnerEntityCompanion copyWith({Value? sharedById, Value? sharedWithId, Value? inTimeline}) { return PartnerEntityCompanion( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, @@ -2052,42 +1849,32 @@ class PartnerEntityCompanion extends UpdateCompanion { } } -class LocalAlbumEntity extends Table - with TableInfo { +class LocalAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn backupSelection = GeneratedColumn( - 'backup_selection', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn isIosSharedAlbum = GeneratedColumn( - 'is_ios_shared_album', aliasedName, false, + late final GeneratedColumn backupSelection = + GeneratedColumn('backup_selection', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn isIosSharedAlbum = GeneratedColumn('is_ios_shared_album', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_ios_shared_album" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_ios_shared_album" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn marker_ = GeneratedColumn( - 'marker', aliasedName, true, + late final GeneratedColumn marker_ = GeneratedColumn('marker', aliasedName, true, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); @override - List get $columns => - [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; + List get $columns => [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -2099,18 +1886,13 @@ class LocalAlbumEntity extends Table LocalAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - backupSelection: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, - isIosSharedAlbum: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, - marker_: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}marker']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + backupSelection: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, + isIosSharedAlbum: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, + marker_: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}marker']), ); } @@ -2125,8 +1907,7 @@ class LocalAlbumEntity extends Table bool get isStrict => true; } -class LocalAlbumEntityData extends DataClass - implements Insertable { +class LocalAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final DateTime updatedAt; @@ -2154,8 +1935,7 @@ class LocalAlbumEntityData extends DataClass return map; } - factory LocalAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumEntityData( id: serializer.fromJson(json['id']), @@ -2199,12 +1979,8 @@ class LocalAlbumEntityData extends DataClass id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - backupSelection: data.backupSelection.present - ? data.backupSelection.value - : this.backupSelection, - isIosSharedAlbum: data.isIosSharedAlbum.present - ? data.isIosSharedAlbum.value - : this.isIosSharedAlbum, + backupSelection: data.backupSelection.present ? data.backupSelection.value : this.backupSelection, + isIosSharedAlbum: data.isIosSharedAlbum.present ? data.isIosSharedAlbum.value : this.isIosSharedAlbum, marker_: data.marker_.present ? data.marker_.value : this.marker_, ); } @@ -2223,8 +1999,7 @@ class LocalAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash( - id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); + int get hashCode => Object.hash(id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); @override bool operator ==(Object other) => identical(this, other) || @@ -2335,24 +2110,19 @@ class LocalAlbumEntityCompanion extends UpdateCompanion { } } -class LocalAlbumAssetEntity extends Table - with TableInfo { +class LocalAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -2363,14 +2133,11 @@ class LocalAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - LocalAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + LocalAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -2385,12 +2152,10 @@ class LocalAlbumAssetEntity extends Table bool get isStrict => true; } -class LocalAlbumAssetEntityData extends DataClass - implements Insertable { +class LocalAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const LocalAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const LocalAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -2399,8 +2164,7 @@ class LocalAlbumAssetEntityData extends DataClass return map; } - factory LocalAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -2416,13 +2180,11 @@ class LocalAlbumAssetEntityData extends DataClass }; } - LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - LocalAlbumAssetEntityData( + LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => LocalAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - LocalAlbumAssetEntityData copyWithCompanion( - LocalAlbumAssetEntityCompanion data) { + LocalAlbumAssetEntityData copyWithCompanion(LocalAlbumAssetEntityCompanion data) { return LocalAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -2443,13 +2205,10 @@ class LocalAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is LocalAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is LocalAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class LocalAlbumAssetEntityCompanion - extends UpdateCompanion { +class LocalAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const LocalAlbumAssetEntityCompanion({ @@ -2471,8 +2230,7 @@ class LocalAlbumAssetEntityCompanion }); } - LocalAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + LocalAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return LocalAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -2501,80 +2259,57 @@ class LocalAlbumAssetEntityCompanion } } -class RemoteExifEntity extends Table - with TableInfo { +class RemoteExifEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteExifEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn city = GeneratedColumn( - 'city', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn city = + GeneratedColumn('city', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn state = + GeneratedColumn('state', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn country = + GeneratedColumn('country', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn dateTimeOriginal = GeneratedColumn( + 'date_time_original', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn description = + GeneratedColumn('description', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn exposureTime = GeneratedColumn('exposure_time', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn state = GeneratedColumn( - 'state', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn country = GeneratedColumn( - 'country', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn dateTimeOriginal = - GeneratedColumn('date_time_original', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn exposureTime = GeneratedColumn( - 'exposure_time', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn fNumber = GeneratedColumn( - 'f_number', aliasedName, true, + late final GeneratedColumn fNumber = + GeneratedColumn('f_number', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn fileSize = + GeneratedColumn('file_size', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn focalLength = GeneratedColumn('focal_length', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn fileSize = GeneratedColumn( - 'file_size', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn focalLength = GeneratedColumn( - 'focal_length', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn latitude = GeneratedColumn( - 'latitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn longitude = GeneratedColumn( - 'longitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn iso = GeneratedColumn( - 'iso', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn make = GeneratedColumn( - 'make', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn model = GeneratedColumn( - 'model', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn lens = GeneratedColumn( - 'lens', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn timeZone = GeneratedColumn( - 'time_zone', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn rating = GeneratedColumn( - 'rating', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn projectionType = GeneratedColumn( - 'projection_type', aliasedName, true, + late final GeneratedColumn latitude = + GeneratedColumn('latitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn longitude = + GeneratedColumn('longitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn iso = + GeneratedColumn('iso', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn make = + GeneratedColumn('make', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn model = + GeneratedColumn('model', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn lens = + GeneratedColumn('lens', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn orientation = + GeneratedColumn('orientation', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn timeZone = + GeneratedColumn('time_zone', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn rating = + GeneratedColumn('rating', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn projectionType = GeneratedColumn('projection_type', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ @@ -2612,50 +2347,29 @@ class RemoteExifEntity extends Table RemoteExifEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteExifEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - city: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}city']), - state: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}state']), - country: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}country']), - dateTimeOriginal: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - exposureTime: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), - fNumber: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}f_number']), - fileSize: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}file_size']), - focalLength: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}focal_length']), - latitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}latitude']), - longitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}longitude']), - iso: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}iso']), - make: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}make']), - model: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}model']), - lens: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}lens']), - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}orientation']), - timeZone: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}time_zone']), - rating: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}rating']), - projectionType: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}projection_type']), + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + city: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}city']), + state: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}state']), + country: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}country']), + dateTimeOriginal: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + exposureTime: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), + fNumber: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}f_number']), + fileSize: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}file_size']), + focalLength: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}focal_length']), + latitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}latitude']), + longitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}longitude']), + iso: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}iso']), + make: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}make']), + model: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}model']), + lens: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}lens']), + orientation: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}orientation']), + timeZone: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}time_zone']), + rating: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}rating']), + projectionType: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}projection_type']), ); } @@ -2670,8 +2384,7 @@ class RemoteExifEntity extends Table bool get isStrict => true; } -class RemoteExifEntityData extends DataClass - implements Insertable { +class RemoteExifEntityData extends DataClass implements Insertable { final String assetId; final String? city; final String? state; @@ -2787,16 +2500,14 @@ class RemoteExifEntityData extends DataClass return map; } - factory RemoteExifEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteExifEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteExifEntityData( assetId: serializer.fromJson(json['assetId']), city: serializer.fromJson(json['city']), state: serializer.fromJson(json['state']), country: serializer.fromJson(json['country']), - dateTimeOriginal: - serializer.fromJson(json['dateTimeOriginal']), + dateTimeOriginal: serializer.fromJson(json['dateTimeOriginal']), description: serializer.fromJson(json['description']), height: serializer.fromJson(json['height']), width: serializer.fromJson(json['width']), @@ -2873,14 +2584,11 @@ class RemoteExifEntityData extends DataClass city: city.present ? city.value : this.city, state: state.present ? state.value : this.state, country: country.present ? country.value : this.country, - dateTimeOriginal: dateTimeOriginal.present - ? dateTimeOriginal.value - : this.dateTimeOriginal, + dateTimeOriginal: dateTimeOriginal.present ? dateTimeOriginal.value : this.dateTimeOriginal, description: description.present ? description.value : this.description, height: height.present ? height.value : this.height, width: width.present ? width.value : this.width, - exposureTime: - exposureTime.present ? exposureTime.value : this.exposureTime, + exposureTime: exposureTime.present ? exposureTime.value : this.exposureTime, fNumber: fNumber.present ? fNumber.value : this.fNumber, fileSize: fileSize.present ? fileSize.value : this.fileSize, focalLength: focalLength.present ? focalLength.value : this.focalLength, @@ -2893,8 +2601,7 @@ class RemoteExifEntityData extends DataClass orientation: orientation.present ? orientation.value : this.orientation, timeZone: timeZone.present ? timeZone.value : this.timeZone, rating: rating.present ? rating.value : this.rating, - projectionType: - projectionType.present ? projectionType.value : this.projectionType, + projectionType: projectionType.present ? projectionType.value : this.projectionType, ); RemoteExifEntityData copyWithCompanion(RemoteExifEntityCompanion data) { return RemoteExifEntityData( @@ -2902,33 +2609,24 @@ class RemoteExifEntityData extends DataClass city: data.city.present ? data.city.value : this.city, state: data.state.present ? data.state.value : this.state, country: data.country.present ? data.country.value : this.country, - dateTimeOriginal: data.dateTimeOriginal.present - ? data.dateTimeOriginal.value - : this.dateTimeOriginal, - description: - data.description.present ? data.description.value : this.description, + dateTimeOriginal: data.dateTimeOriginal.present ? data.dateTimeOriginal.value : this.dateTimeOriginal, + description: data.description.present ? data.description.value : this.description, height: data.height.present ? data.height.value : this.height, width: data.width.present ? data.width.value : this.width, - exposureTime: data.exposureTime.present - ? data.exposureTime.value - : this.exposureTime, + exposureTime: data.exposureTime.present ? data.exposureTime.value : this.exposureTime, fNumber: data.fNumber.present ? data.fNumber.value : this.fNumber, fileSize: data.fileSize.present ? data.fileSize.value : this.fileSize, - focalLength: - data.focalLength.present ? data.focalLength.value : this.focalLength, + focalLength: data.focalLength.present ? data.focalLength.value : this.focalLength, latitude: data.latitude.present ? data.latitude.value : this.latitude, longitude: data.longitude.present ? data.longitude.value : this.longitude, iso: data.iso.present ? data.iso.value : this.iso, make: data.make.present ? data.make.value : this.make, model: data.model.present ? data.model.value : this.model, lens: data.lens.present ? data.lens.value : this.lens, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + orientation: data.orientation.present ? data.orientation.value : this.orientation, timeZone: data.timeZone.present ? data.timeZone.value : this.timeZone, rating: data.rating.present ? data.rating.value : this.rating, - projectionType: data.projectionType.present - ? data.projectionType.value - : this.projectionType, + projectionType: data.projectionType.present ? data.projectionType.value : this.projectionType, ); } @@ -3286,67 +2984,43 @@ class RemoteExifEntityCompanion extends UpdateCompanion { } } -class RemoteAlbumEntity extends Table - with TableInfo { +class RemoteAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: false, - defaultValue: const CustomExpression('\'\'')); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn description = GeneratedColumn('description', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: false, defaultValue: const CustomExpression('\'\'')); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn thumbnailAssetId = GeneratedColumn( - 'thumbnail_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn thumbnailAssetId = GeneratedColumn('thumbnail_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); - late final GeneratedColumn isActivityEnabled = GeneratedColumn( - 'is_activity_enabled', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); + late final GeneratedColumn isActivityEnabled = GeneratedColumn('is_activity_enabled', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_activity_enabled" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_activity_enabled" IN (0, 1))'), defaultValue: const CustomExpression('1')); - late final GeneratedColumn order = GeneratedColumn( - 'order', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn order = + GeneratedColumn('order', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override - List get $columns => [ - id, - name, - description, - createdAt, - updatedAt, - ownerId, - thumbnailAssetId, - isActivityEnabled, - order - ]; + List get $columns => + [id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -3358,24 +3032,17 @@ class RemoteAlbumEntity extends Table RemoteAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - thumbnailAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), - isActivityEnabled: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, - order: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}order'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + thumbnailAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), + isActivityEnabled: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, + order: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}order'])!, ); } @@ -3390,8 +3057,7 @@ class RemoteAlbumEntity extends Table bool get isStrict => true; } -class RemoteAlbumEntityData extends DataClass - implements Insertable { +class RemoteAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final String description; @@ -3428,8 +3094,7 @@ class RemoteAlbumEntityData extends DataClass return map; } - factory RemoteAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumEntityData( id: serializer.fromJson(json['id']), @@ -3476,9 +3141,7 @@ class RemoteAlbumEntityData extends DataClass createdAt: createdAt ?? this.createdAt, updatedAt: updatedAt ?? this.updatedAt, ownerId: ownerId ?? this.ownerId, - thumbnailAssetId: thumbnailAssetId.present - ? thumbnailAssetId.value - : this.thumbnailAssetId, + thumbnailAssetId: thumbnailAssetId.present ? thumbnailAssetId.value : this.thumbnailAssetId, isActivityEnabled: isActivityEnabled ?? this.isActivityEnabled, order: order ?? this.order, ); @@ -3486,17 +3149,12 @@ class RemoteAlbumEntityData extends DataClass return RemoteAlbumEntityData( id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, - description: - data.description.present ? data.description.value : this.description, + description: data.description.present ? data.description.value : this.description, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - thumbnailAssetId: data.thumbnailAssetId.present - ? data.thumbnailAssetId.value - : this.thumbnailAssetId, - isActivityEnabled: data.isActivityEnabled.present - ? data.isActivityEnabled.value - : this.isActivityEnabled, + thumbnailAssetId: data.thumbnailAssetId.present ? data.thumbnailAssetId.value : this.thumbnailAssetId, + isActivityEnabled: data.isActivityEnabled.present ? data.isActivityEnabled.value : this.isActivityEnabled, order: data.order.present ? data.order.value : this.order, ); } @@ -3518,8 +3176,8 @@ class RemoteAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash(id, name, description, createdAt, updatedAt, - ownerId, thumbnailAssetId, isActivityEnabled, order); + int get hashCode => + Object.hash(id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order); @override bool operator ==(Object other) => identical(this, other) || @@ -3535,8 +3193,7 @@ class RemoteAlbumEntityData extends DataClass other.order == this.order); } -class RemoteAlbumEntityCompanion - extends UpdateCompanion { +class RemoteAlbumEntityCompanion extends UpdateCompanion { final Value id; final Value name; final Value description; @@ -3668,24 +3325,19 @@ class RemoteAlbumEntityCompanion } } -class RemoteAlbumAssetEntity extends Table - with TableInfo { +class RemoteAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -3696,14 +3348,11 @@ class RemoteAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - RemoteAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -3718,12 +3367,10 @@ class RemoteAlbumAssetEntity extends Table bool get isStrict => true; } -class RemoteAlbumAssetEntityData extends DataClass - implements Insertable { +class RemoteAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const RemoteAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const RemoteAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3732,8 +3379,7 @@ class RemoteAlbumAssetEntityData extends DataClass return map; } - factory RemoteAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -3749,13 +3395,11 @@ class RemoteAlbumAssetEntityData extends DataClass }; } - RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - RemoteAlbumAssetEntityData( + RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => RemoteAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - RemoteAlbumAssetEntityData copyWithCompanion( - RemoteAlbumAssetEntityCompanion data) { + RemoteAlbumAssetEntityData copyWithCompanion(RemoteAlbumAssetEntityCompanion data) { return RemoteAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -3776,13 +3420,10 @@ class RemoteAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is RemoteAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is RemoteAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class RemoteAlbumAssetEntityCompanion - extends UpdateCompanion { +class RemoteAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const RemoteAlbumAssetEntityCompanion({ @@ -3804,8 +3445,7 @@ class RemoteAlbumAssetEntityCompanion }); } - RemoteAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + RemoteAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return RemoteAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -3834,27 +3474,21 @@ class RemoteAlbumAssetEntityCompanion } } -class RemoteAlbumUserEntity extends Table - with TableInfo { +class RemoteAlbumUserEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumUserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn role = GeneratedColumn( - 'role', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn role = + GeneratedColumn('role', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override List get $columns => [albumId, userId, role]; @override @@ -3865,16 +3499,12 @@ class RemoteAlbumUserEntity extends Table @override Set get $primaryKey => {albumId, userId}; @override - RemoteAlbumUserEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumUserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumUserEntityData( - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - role: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}role'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + role: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}role'])!, ); } @@ -3889,13 +3519,11 @@ class RemoteAlbumUserEntity extends Table bool get isStrict => true; } -class RemoteAlbumUserEntityData extends DataClass - implements Insertable { +class RemoteAlbumUserEntityData extends DataClass implements Insertable { final String albumId; final String userId; final int role; - const RemoteAlbumUserEntityData( - {required this.albumId, required this.userId, required this.role}); + const RemoteAlbumUserEntityData({required this.albumId, required this.userId, required this.role}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3905,8 +3533,7 @@ class RemoteAlbumUserEntityData extends DataClass return map; } - factory RemoteAlbumUserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumUserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumUserEntityData( albumId: serializer.fromJson(json['albumId']), @@ -3924,15 +3551,12 @@ class RemoteAlbumUserEntityData extends DataClass }; } - RemoteAlbumUserEntityData copyWith( - {String? albumId, String? userId, int? role}) => - RemoteAlbumUserEntityData( + RemoteAlbumUserEntityData copyWith({String? albumId, String? userId, int? role}) => RemoteAlbumUserEntityData( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, role: role ?? this.role, ); - RemoteAlbumUserEntityData copyWithCompanion( - RemoteAlbumUserEntityCompanion data) { + RemoteAlbumUserEntityData copyWithCompanion(RemoteAlbumUserEntityCompanion data) { return RemoteAlbumUserEntityData( albumId: data.albumId.present ? data.albumId.value : this.albumId, userId: data.userId.present ? data.userId.value : this.userId, @@ -3961,8 +3585,7 @@ class RemoteAlbumUserEntityData extends DataClass other.role == this.role); } -class RemoteAlbumUserEntityCompanion - extends UpdateCompanion { +class RemoteAlbumUserEntityCompanion extends UpdateCompanion { final Value albumId; final Value userId; final Value role; @@ -3990,8 +3613,7 @@ class RemoteAlbumUserEntityCompanion }); } - RemoteAlbumUserEntityCompanion copyWith( - {Value? albumId, Value? userId, Value? role}) { + RemoteAlbumUserEntityCompanion copyWith({Value? albumId, Value? userId, Value? role}) { return RemoteAlbumUserEntityCompanion( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, @@ -4025,74 +3647,47 @@ class RemoteAlbumUserEntityCompanion } } -class MemoryEntity extends Table - with TableInfo { +class MemoryEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn data = GeneratedColumn( - 'data', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isSaved = GeneratedColumn( - 'is_saved', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn data = + GeneratedColumn('data', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isSaved = GeneratedColumn('is_saved', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn memoryAt = GeneratedColumn( - 'memory_at', aliasedName, false, + late final GeneratedColumn memoryAt = GeneratedColumn('memory_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: true); - late final GeneratedColumn seenAt = GeneratedColumn( - 'seen_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn showAt = GeneratedColumn( - 'show_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn hideAt = GeneratedColumn( - 'hide_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn seenAt = + GeneratedColumn('seen_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn showAt = + GeneratedColumn('show_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn hideAt = + GeneratedColumn('hide_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - deletedAt, - ownerId, - type, - data, - isSaved, - memoryAt, - seenAt, - showAt, - hideAt - ]; + List get $columns => + [id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4104,30 +3699,18 @@ class MemoryEntity extends Table MemoryEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - data: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}data'])!, - isSaved: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, - memoryAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, - seenAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), - showAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), - hideAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + data: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}data'])!, + isSaved: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, + memoryAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, + seenAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), + showAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), + hideAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), ); } @@ -4142,8 +3725,7 @@ class MemoryEntity extends Table bool get isStrict => true; } -class MemoryEntityData extends DataClass - implements Insertable { +class MemoryEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4195,8 +3777,7 @@ class MemoryEntityData extends DataClass return map; } - factory MemoryEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryEntityData( id: serializer.fromJson(json['id']), @@ -4296,8 +3877,8 @@ class MemoryEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, - type, data, isSaved, memoryAt, seenAt, showAt, hideAt); + int get hashCode => + Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt); @override bool operator ==(Object other) => identical(this, other) || @@ -4482,24 +4063,19 @@ class MemoryEntityCompanion extends UpdateCompanion { } } -class MemoryAssetEntity extends Table - with TableInfo { +class MemoryAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn memoryId = GeneratedColumn( - 'memory_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn memoryId = GeneratedColumn('memory_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES memory_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES memory_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, memoryId]; @override @@ -4513,10 +4089,8 @@ class MemoryAssetEntity extends Table MemoryAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - memoryId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + memoryId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, ); } @@ -4531,8 +4105,7 @@ class MemoryAssetEntity extends Table bool get isStrict => true; } -class MemoryAssetEntityData extends DataClass - implements Insertable { +class MemoryAssetEntityData extends DataClass implements Insertable { final String assetId; final String memoryId; const MemoryAssetEntityData({required this.assetId, required this.memoryId}); @@ -4544,8 +4117,7 @@ class MemoryAssetEntityData extends DataClass return map; } - factory MemoryAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -4561,8 +4133,7 @@ class MemoryAssetEntityData extends DataClass }; } - MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => - MemoryAssetEntityData( + MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => MemoryAssetEntityData( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, ); @@ -4587,13 +4158,10 @@ class MemoryAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is MemoryAssetEntityData && - other.assetId == this.assetId && - other.memoryId == this.memoryId); + (other is MemoryAssetEntityData && other.assetId == this.assetId && other.memoryId == this.memoryId); } -class MemoryAssetEntityCompanion - extends UpdateCompanion { +class MemoryAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value memoryId; const MemoryAssetEntityCompanion({ @@ -4615,8 +4183,7 @@ class MemoryAssetEntityCompanion }); } - MemoryAssetEntityCompanion copyWith( - {Value? assetId, Value? memoryId}) { + MemoryAssetEntityCompanion copyWith({Value? assetId, Value? memoryId}) { return MemoryAssetEntityCompanion( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, @@ -4645,72 +4212,46 @@ class MemoryAssetEntityCompanion } } -class PersonEntity extends Table - with TableInfo { +class PersonEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PersonEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn faceAssetId = GeneratedColumn( - 'face_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn faceAssetId = GeneratedColumn('face_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn thumbnailPath = GeneratedColumn( - 'thumbnail_path', aliasedName, false, + late final GeneratedColumn thumbnailPath = GeneratedColumn('thumbnail_path', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_favorite" IN (0, 1))')); - late final GeneratedColumn isHidden = GeneratedColumn( - 'is_hidden', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))')); + late final GeneratedColumn isHidden = GeneratedColumn('is_hidden', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); - late final GeneratedColumn color = GeneratedColumn( - 'color', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn birthDate = GeneratedColumn( - 'birth_date', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); + late final GeneratedColumn color = + GeneratedColumn('color', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn birthDate = GeneratedColumn('birth_date', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - ownerId, - name, - faceAssetId, - thumbnailPath, - isFavorite, - isHidden, - color, - birthDate - ]; + List get $columns => + [id, createdAt, updatedAt, ownerId, name, faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4722,28 +4263,17 @@ class PersonEntity extends Table PersonEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PersonEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - faceAssetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), - thumbnailPath: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}thumbnail_path'])!, - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - isHidden: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, - color: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}color']), - birthDate: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + faceAssetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), + thumbnailPath: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumbnail_path'])!, + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + isHidden: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, + color: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}color']), + birthDate: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), ); } @@ -4758,8 +4288,7 @@ class PersonEntity extends Table bool get isStrict => true; } -class PersonEntityData extends DataClass - implements Insertable { +class PersonEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4806,8 +4335,7 @@ class PersonEntityData extends DataClass return map; } - factory PersonEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PersonEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PersonEntityData( id: serializer.fromJson(json['id']), @@ -4873,13 +4401,9 @@ class PersonEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, name: data.name.present ? data.name.value : this.name, - faceAssetId: - data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, - thumbnailPath: data.thumbnailPath.present - ? data.thumbnailPath.value - : this.thumbnailPath, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + faceAssetId: data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, + thumbnailPath: data.thumbnailPath.present ? data.thumbnailPath.value : this.thumbnailPath, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, isHidden: data.isHidden.present ? data.isHidden.value : this.isHidden, color: data.color.present ? data.color.value : this.color, birthDate: data.birthDate.present ? data.birthDate.value : this.birthDate, @@ -4905,8 +4429,8 @@ class PersonEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, name, - faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate); + int get hashCode => Object.hash( + id, createdAt, updatedAt, ownerId, name, faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate); @override bool operator ==(Object other) => identical(this, other) || @@ -5086,30 +4610,25 @@ class DatabaseAtV2 extends GeneratedDatabase { late final RemoteAssetEntity remoteAssetEntity = RemoteAssetEntity(this); late final LocalAssetEntity localAssetEntity = LocalAssetEntity(this); late final StackEntity stackEntity = StackEntity(this); - late final Index idxLocalAssetChecksum = Index('idx_local_asset_checksum', - 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); - late final Index uQRemoteAssetOwnerChecksum = Index( - 'UQ_remote_asset_owner_checksum', + late final Index idxLocalAssetChecksum = + Index('idx_local_asset_checksum', 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); + late final Index uQRemoteAssetOwnerChecksum = Index('UQ_remote_asset_owner_checksum', 'CREATE UNIQUE INDEX UQ_remote_asset_owner_checksum ON remote_asset_entity (checksum, owner_id)'); - late final Index idxRemoteAssetChecksum = Index('idx_remote_asset_checksum', - 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); + late final Index idxRemoteAssetChecksum = + Index('idx_remote_asset_checksum', 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); late final UserMetadataEntity userMetadataEntity = UserMetadataEntity(this); late final PartnerEntity partnerEntity = PartnerEntity(this); late final LocalAlbumEntity localAlbumEntity = LocalAlbumEntity(this); - late final LocalAlbumAssetEntity localAlbumAssetEntity = - LocalAlbumAssetEntity(this); + late final LocalAlbumAssetEntity localAlbumAssetEntity = LocalAlbumAssetEntity(this); late final RemoteExifEntity remoteExifEntity = RemoteExifEntity(this); late final RemoteAlbumEntity remoteAlbumEntity = RemoteAlbumEntity(this); - late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = - RemoteAlbumAssetEntity(this); - late final RemoteAlbumUserEntity remoteAlbumUserEntity = - RemoteAlbumUserEntity(this); + late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = RemoteAlbumAssetEntity(this); + late final RemoteAlbumUserEntity remoteAlbumUserEntity = RemoteAlbumUserEntity(this); late final MemoryEntity memoryEntity = MemoryEntity(this); late final MemoryAssetEntity memoryAssetEntity = MemoryAssetEntity(this); late final PersonEntity personEntity = PersonEntity(this); @override - Iterable> get allTables => - allSchemaEntities.whereType>(); + Iterable> get allTables => allSchemaEntities.whereType>(); @override List get allSchemaEntities => [ userEntity, @@ -5134,6 +4653,5 @@ class DatabaseAtV2 extends GeneratedDatabase { @override int get schemaVersion => 2; @override - DriftDatabaseOptions get options => - const DriftDatabaseOptions(storeDateTimeAsText: true); + DriftDatabaseOptions get options => const DriftDatabaseOptions(storeDateTimeAsText: true); } diff --git a/mobile/test/drift/main/generated/schema_v3.dart b/mobile/test/drift/main/generated/schema_v3.dart index 8f655b3f7d..711cf85253 100644 --- a/mobile/test/drift/main/generated/schema_v3.dart +++ b/mobile/test/drift/main/generated/schema_v3.dart @@ -8,49 +8,30 @@ class UserEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; UserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isAdmin = GeneratedColumn( - 'is_admin', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isAdmin = GeneratedColumn('is_admin', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn email = GeneratedColumn( - 'email', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn profileImagePath = GeneratedColumn( - 'profile_image_path', aliasedName, true, + late final GeneratedColumn email = + GeneratedColumn('email', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn profileImagePath = GeneratedColumn('profile_image_path', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn quotaSizeInBytes = GeneratedColumn( - 'quota_size_in_bytes', aliasedName, true, + late final GeneratedColumn quotaSizeInBytes = GeneratedColumn('quota_size_in_bytes', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn quotaUsageInBytes = GeneratedColumn( - 'quota_usage_in_bytes', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, - defaultValue: const CustomExpression('0')); + late final GeneratedColumn quotaUsageInBytes = GeneratedColumn('quota_usage_in_bytes', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - id, - name, - isAdmin, - email, - profileImagePath, - updatedAt, - quotaSizeInBytes, - quotaUsageInBytes - ]; + List get $columns => + [id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -62,22 +43,17 @@ class UserEntity extends Table with TableInfo { UserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - isAdmin: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, - email: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}email'])!, - profileImagePath: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}profile_image_path']), - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - quotaSizeInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), - quotaUsageInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + isAdmin: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, + email: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}email'])!, + profileImagePath: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}profile_image_path']), + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + quotaSizeInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), + quotaUsageInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, ); } @@ -128,8 +104,7 @@ class UserEntityData extends DataClass implements Insertable { return map; } - factory UserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserEntityData( id: serializer.fromJson(json['id']), @@ -171,13 +146,9 @@ class UserEntityData extends DataClass implements Insertable { name: name ?? this.name, isAdmin: isAdmin ?? this.isAdmin, email: email ?? this.email, - profileImagePath: profileImagePath.present - ? profileImagePath.value - : this.profileImagePath, + profileImagePath: profileImagePath.present ? profileImagePath.value : this.profileImagePath, updatedAt: updatedAt ?? this.updatedAt, - quotaSizeInBytes: quotaSizeInBytes.present - ? quotaSizeInBytes.value - : this.quotaSizeInBytes, + quotaSizeInBytes: quotaSizeInBytes.present ? quotaSizeInBytes.value : this.quotaSizeInBytes, quotaUsageInBytes: quotaUsageInBytes ?? this.quotaUsageInBytes, ); UserEntityData copyWithCompanion(UserEntityCompanion data) { @@ -186,16 +157,10 @@ class UserEntityData extends DataClass implements Insertable { name: data.name.present ? data.name.value : this.name, isAdmin: data.isAdmin.present ? data.isAdmin.value : this.isAdmin, email: data.email.present ? data.email.value : this.email, - profileImagePath: data.profileImagePath.present - ? data.profileImagePath.value - : this.profileImagePath, + profileImagePath: data.profileImagePath.present ? data.profileImagePath.value : this.profileImagePath, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - quotaSizeInBytes: data.quotaSizeInBytes.present - ? data.quotaSizeInBytes.value - : this.quotaSizeInBytes, - quotaUsageInBytes: data.quotaUsageInBytes.present - ? data.quotaUsageInBytes.value - : this.quotaUsageInBytes, + quotaSizeInBytes: data.quotaSizeInBytes.present ? data.quotaSizeInBytes.value : this.quotaSizeInBytes, + quotaUsageInBytes: data.quotaUsageInBytes.present ? data.quotaUsageInBytes.value : this.quotaUsageInBytes, ); } @@ -215,8 +180,8 @@ class UserEntityData extends DataClass implements Insertable { } @override - int get hashCode => Object.hash(id, name, isAdmin, email, profileImagePath, - updatedAt, quotaSizeInBytes, quotaUsageInBytes); + int get hashCode => + Object.hash(id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes); @override bool operator ==(Object other) => identical(this, other) || @@ -351,74 +316,55 @@ class UserEntityCompanion extends UpdateCompanion { } } -class RemoteAssetEntity extends Table - with TableInfo { +class RemoteAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn localDateTime = - GeneratedColumn('local_date_time', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn thumbHash = GeneratedColumn( - 'thumb_hash', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn localDateTime = GeneratedColumn('local_date_time', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn thumbHash = + GeneratedColumn('thumb_hash', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); late final GeneratedColumn livePhotoVideoId = GeneratedColumn( 'live_photo_video_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn visibility = GeneratedColumn( - 'visibility', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn stackId = GeneratedColumn( - 'stack_id', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn visibility = + GeneratedColumn('visibility', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn stackId = + GeneratedColumn('stack_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ name, @@ -450,40 +396,26 @@ class RemoteAssetEntity extends Table RemoteAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - localDateTime: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), - thumbHash: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - livePhotoVideoId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), - visibility: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, - stackId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}stack_id']), + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + localDateTime: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), + thumbHash: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + livePhotoVideoId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), + visibility: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, + stackId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}stack_id']), ); } @@ -498,8 +430,7 @@ class RemoteAssetEntity extends Table bool get isStrict => true; } -class RemoteAssetEntityData extends DataClass - implements Insertable { +class RemoteAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -574,8 +505,7 @@ class RemoteAssetEntityData extends DataClass return map; } - factory RemoteAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAssetEntityData( name: serializer.fromJson(json['name']), @@ -646,20 +576,15 @@ class RemoteAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum ?? this.checksum, isFavorite: isFavorite ?? this.isFavorite, ownerId: ownerId ?? this.ownerId, - localDateTime: - localDateTime.present ? localDateTime.value : this.localDateTime, + localDateTime: localDateTime.present ? localDateTime.value : this.localDateTime, thumbHash: thumbHash.present ? thumbHash.value : this.thumbHash, deletedAt: deletedAt.present ? deletedAt.value : this.deletedAt, - livePhotoVideoId: livePhotoVideoId.present - ? livePhotoVideoId.value - : this.livePhotoVideoId, + livePhotoVideoId: livePhotoVideoId.present ? livePhotoVideoId.value : this.livePhotoVideoId, visibility: visibility ?? this.visibility, stackId: stackId.present ? stackId.value : this.stackId, ); @@ -671,24 +596,16 @@ class RemoteAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - localDateTime: data.localDateTime.present - ? data.localDateTime.value - : this.localDateTime, + localDateTime: data.localDateTime.present ? data.localDateTime.value : this.localDateTime, thumbHash: data.thumbHash.present ? data.thumbHash.value : this.thumbHash, deletedAt: data.deletedAt.present ? data.deletedAt.value : this.deletedAt, - livePhotoVideoId: data.livePhotoVideoId.present - ? data.livePhotoVideoId.value - : this.livePhotoVideoId, - visibility: - data.visibility.present ? data.visibility.value : this.visibility, + livePhotoVideoId: data.livePhotoVideoId.present ? data.livePhotoVideoId.value : this.livePhotoVideoId, + visibility: data.visibility.present ? data.visibility.value : this.visibility, stackId: data.stackId.present ? data.stackId.value : this.stackId, ); } @@ -718,24 +635,8 @@ class RemoteAssetEntityData extends DataClass } @override - int get hashCode => Object.hash( - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - ownerId, - localDateTime, - thumbHash, - deletedAt, - livePhotoVideoId, - visibility, - stackId); + int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, + isFavorite, ownerId, localDateTime, thumbHash, deletedAt, livePhotoVideoId, visibility, stackId); @override bool operator ==(Object other) => identical(this, other) || @@ -759,8 +660,7 @@ class RemoteAssetEntityData extends DataClass other.stackId == this.stackId); } -class RemoteAssetEntityCompanion - extends UpdateCompanion { +class RemoteAssetEntityCompanion extends UpdateCompanion { final Value name; final Value type; final Value createdAt; @@ -982,69 +882,43 @@ class RemoteAssetEntityCompanion } } -class LocalAssetEntity extends Table - with TableInfo { +class LocalAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), - defaultValue: const CustomExpression('0')); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); + late final GeneratedColumn orientation = GeneratedColumn('orientation', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - orientation - ]; + List get $columns => + [name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1056,28 +930,18 @@ class LocalAssetEntity extends Table LocalAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum']), - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum']), + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + orientation: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, ); } @@ -1092,8 +956,7 @@ class LocalAssetEntity extends Table bool get isStrict => true; } -class LocalAssetEntityData extends DataClass - implements Insertable { +class LocalAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -1142,8 +1005,7 @@ class LocalAssetEntityData extends DataClass return map; } - factory LocalAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAssetEntityData( name: serializer.fromJson(json['name']), @@ -1196,9 +1058,7 @@ class LocalAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum.present ? checksum.value : this.checksum, isFavorite: isFavorite ?? this.isFavorite, @@ -1212,15 +1072,11 @@ class LocalAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + orientation: data.orientation.present ? data.orientation.value : this.orientation, ); } @@ -1243,8 +1099,8 @@ class LocalAssetEntityData extends DataClass } @override - int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, - height, durationInSeconds, id, checksum, isFavorite, orientation); + int get hashCode => Object.hash( + name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation); @override bool operator ==(Object other) => identical(this, other) || @@ -1420,31 +1276,24 @@ class StackEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; StackEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn primaryAssetId = GeneratedColumn( - 'primary_asset_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn primaryAssetId = GeneratedColumn('primary_asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); @override - List get $columns => - [id, createdAt, updatedAt, ownerId, primaryAssetId]; + List get $columns => [id, createdAt, updatedAt, ownerId, primaryAssetId]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1456,16 +1305,12 @@ class StackEntity extends Table with TableInfo { StackEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return StackEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - primaryAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + primaryAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, ); } @@ -1503,8 +1348,7 @@ class StackEntityData extends DataClass implements Insertable { return map; } - factory StackEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory StackEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return StackEntityData( id: serializer.fromJson(json['id']), @@ -1527,11 +1371,7 @@ class StackEntityData extends DataClass implements Insertable { } StackEntityData copyWith( - {String? id, - DateTime? createdAt, - DateTime? updatedAt, - String? ownerId, - String? primaryAssetId}) => + {String? id, DateTime? createdAt, DateTime? updatedAt, String? ownerId, String? primaryAssetId}) => StackEntityData( id: id ?? this.id, createdAt: createdAt ?? this.createdAt, @@ -1545,9 +1385,7 @@ class StackEntityData extends DataClass implements Insertable { createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - primaryAssetId: data.primaryAssetId.present - ? data.primaryAssetId.value - : this.primaryAssetId, + primaryAssetId: data.primaryAssetId.present ? data.primaryAssetId.value : this.primaryAssetId, ); } @@ -1564,8 +1402,7 @@ class StackEntityData extends DataClass implements Insertable { } @override - int get hashCode => - Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); + int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); @override bool operator ==(Object other) => identical(this, other) || @@ -1664,24 +1501,19 @@ class StackEntityCompanion extends UpdateCompanion { } } -class UserMetadataEntity extends Table - with TableInfo { +class UserMetadataEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; UserMetadataEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn key = GeneratedColumn( - 'key', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn value = GeneratedColumn( - 'value', aliasedName, false, - type: DriftSqlType.blob, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn key = + GeneratedColumn('key', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn value = + GeneratedColumn('value', aliasedName, false, type: DriftSqlType.blob, requiredDuringInsert: true); @override List get $columns => [userId, key, value]; @override @@ -1695,12 +1527,9 @@ class UserMetadataEntity extends Table UserMetadataEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserMetadataEntityData( - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - key: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}key'])!, - value: attachedDatabase.typeMapping - .read(DriftSqlType.blob, data['${effectivePrefix}value'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + key: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}key'])!, + value: attachedDatabase.typeMapping.read(DriftSqlType.blob, data['${effectivePrefix}value'])!, ); } @@ -1715,13 +1544,11 @@ class UserMetadataEntity extends Table bool get isStrict => true; } -class UserMetadataEntityData extends DataClass - implements Insertable { +class UserMetadataEntityData extends DataClass implements Insertable { final String userId; final int key; final Uint8List value; - const UserMetadataEntityData( - {required this.userId, required this.key, required this.value}); + const UserMetadataEntityData({required this.userId, required this.key, required this.value}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1731,8 +1558,7 @@ class UserMetadataEntityData extends DataClass return map; } - factory UserMetadataEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserMetadataEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserMetadataEntityData( userId: serializer.fromJson(json['userId']), @@ -1750,9 +1576,7 @@ class UserMetadataEntityData extends DataClass }; } - UserMetadataEntityData copyWith( - {String? userId, int? key, Uint8List? value}) => - UserMetadataEntityData( + UserMetadataEntityData copyWith({String? userId, int? key, Uint8List? value}) => UserMetadataEntityData( userId: userId ?? this.userId, key: key ?? this.key, value: value ?? this.value, @@ -1786,8 +1610,7 @@ class UserMetadataEntityData extends DataClass $driftBlobEquality.equals(other.value, this.value)); } -class UserMetadataEntityCompanion - extends UpdateCompanion { +class UserMetadataEntityCompanion extends UpdateCompanion { final Value userId; final Value key; final Value value; @@ -1815,8 +1638,7 @@ class UserMetadataEntityCompanion }); } - UserMetadataEntityCompanion copyWith( - {Value? userId, Value? key, Value? value}) { + UserMetadataEntityCompanion copyWith({Value? userId, Value? key, Value? value}) { return UserMetadataEntityCompanion( userId: userId ?? this.userId, key: key ?? this.key, @@ -1850,30 +1672,23 @@ class UserMetadataEntityCompanion } } -class PartnerEntity extends Table - with TableInfo { +class PartnerEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PartnerEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn sharedById = GeneratedColumn( - 'shared_by_id', aliasedName, false, + late final GeneratedColumn sharedById = GeneratedColumn('shared_by_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn sharedWithId = GeneratedColumn( - 'shared_with_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn sharedWithId = GeneratedColumn('shared_with_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn inTimeline = GeneratedColumn( - 'in_timeline', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn inTimeline = GeneratedColumn('in_timeline', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), defaultValue: const CustomExpression('0')); @override List get $columns => [sharedById, sharedWithId, inTimeline]; @@ -1888,12 +1703,9 @@ class PartnerEntity extends Table PartnerEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PartnerEntityData( - sharedById: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, - sharedWithId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, - inTimeline: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, + sharedById: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, + sharedWithId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, + inTimeline: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, ); } @@ -1908,15 +1720,11 @@ class PartnerEntity extends Table bool get isStrict => true; } -class PartnerEntityData extends DataClass - implements Insertable { +class PartnerEntityData extends DataClass implements Insertable { final String sharedById; final String sharedWithId; final bool inTimeline; - const PartnerEntityData( - {required this.sharedById, - required this.sharedWithId, - required this.inTimeline}); + const PartnerEntityData({required this.sharedById, required this.sharedWithId, required this.inTimeline}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -1926,8 +1734,7 @@ class PartnerEntityData extends DataClass return map; } - factory PartnerEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PartnerEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PartnerEntityData( sharedById: serializer.fromJson(json['sharedById']), @@ -1945,22 +1752,16 @@ class PartnerEntityData extends DataClass }; } - PartnerEntityData copyWith( - {String? sharedById, String? sharedWithId, bool? inTimeline}) => - PartnerEntityData( + PartnerEntityData copyWith({String? sharedById, String? sharedWithId, bool? inTimeline}) => PartnerEntityData( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, inTimeline: inTimeline ?? this.inTimeline, ); PartnerEntityData copyWithCompanion(PartnerEntityCompanion data) { return PartnerEntityData( - sharedById: - data.sharedById.present ? data.sharedById.value : this.sharedById, - sharedWithId: data.sharedWithId.present - ? data.sharedWithId.value - : this.sharedWithId, - inTimeline: - data.inTimeline.present ? data.inTimeline.value : this.inTimeline, + sharedById: data.sharedById.present ? data.sharedById.value : this.sharedById, + sharedWithId: data.sharedWithId.present ? data.sharedWithId.value : this.sharedWithId, + inTimeline: data.inTimeline.present ? data.inTimeline.value : this.inTimeline, ); } @@ -2012,10 +1813,7 @@ class PartnerEntityCompanion extends UpdateCompanion { }); } - PartnerEntityCompanion copyWith( - {Value? sharedById, - Value? sharedWithId, - Value? inTimeline}) { + PartnerEntityCompanion copyWith({Value? sharedById, Value? sharedWithId, Value? inTimeline}) { return PartnerEntityCompanion( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, @@ -2049,42 +1847,32 @@ class PartnerEntityCompanion extends UpdateCompanion { } } -class LocalAlbumEntity extends Table - with TableInfo { +class LocalAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn backupSelection = GeneratedColumn( - 'backup_selection', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn isIosSharedAlbum = GeneratedColumn( - 'is_ios_shared_album', aliasedName, false, + late final GeneratedColumn backupSelection = + GeneratedColumn('backup_selection', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn isIosSharedAlbum = GeneratedColumn('is_ios_shared_album', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_ios_shared_album" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_ios_shared_album" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn marker_ = GeneratedColumn( - 'marker', aliasedName, true, + late final GeneratedColumn marker_ = GeneratedColumn('marker', aliasedName, true, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); @override - List get $columns => - [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; + List get $columns => [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -2096,18 +1884,13 @@ class LocalAlbumEntity extends Table LocalAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - backupSelection: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, - isIosSharedAlbum: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, - marker_: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}marker']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + backupSelection: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, + isIosSharedAlbum: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, + marker_: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}marker']), ); } @@ -2122,8 +1905,7 @@ class LocalAlbumEntity extends Table bool get isStrict => true; } -class LocalAlbumEntityData extends DataClass - implements Insertable { +class LocalAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final DateTime updatedAt; @@ -2151,8 +1933,7 @@ class LocalAlbumEntityData extends DataClass return map; } - factory LocalAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumEntityData( id: serializer.fromJson(json['id']), @@ -2196,12 +1977,8 @@ class LocalAlbumEntityData extends DataClass id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - backupSelection: data.backupSelection.present - ? data.backupSelection.value - : this.backupSelection, - isIosSharedAlbum: data.isIosSharedAlbum.present - ? data.isIosSharedAlbum.value - : this.isIosSharedAlbum, + backupSelection: data.backupSelection.present ? data.backupSelection.value : this.backupSelection, + isIosSharedAlbum: data.isIosSharedAlbum.present ? data.isIosSharedAlbum.value : this.isIosSharedAlbum, marker_: data.marker_.present ? data.marker_.value : this.marker_, ); } @@ -2220,8 +1997,7 @@ class LocalAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash( - id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); + int get hashCode => Object.hash(id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); @override bool operator ==(Object other) => identical(this, other) || @@ -2332,24 +2108,19 @@ class LocalAlbumEntityCompanion extends UpdateCompanion { } } -class LocalAlbumAssetEntity extends Table - with TableInfo { +class LocalAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -2360,14 +2131,11 @@ class LocalAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - LocalAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + LocalAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -2382,12 +2150,10 @@ class LocalAlbumAssetEntity extends Table bool get isStrict => true; } -class LocalAlbumAssetEntityData extends DataClass - implements Insertable { +class LocalAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const LocalAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const LocalAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -2396,8 +2162,7 @@ class LocalAlbumAssetEntityData extends DataClass return map; } - factory LocalAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -2413,13 +2178,11 @@ class LocalAlbumAssetEntityData extends DataClass }; } - LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - LocalAlbumAssetEntityData( + LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => LocalAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - LocalAlbumAssetEntityData copyWithCompanion( - LocalAlbumAssetEntityCompanion data) { + LocalAlbumAssetEntityData copyWithCompanion(LocalAlbumAssetEntityCompanion data) { return LocalAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -2440,13 +2203,10 @@ class LocalAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is LocalAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is LocalAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class LocalAlbumAssetEntityCompanion - extends UpdateCompanion { +class LocalAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const LocalAlbumAssetEntityCompanion({ @@ -2468,8 +2228,7 @@ class LocalAlbumAssetEntityCompanion }); } - LocalAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + LocalAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return LocalAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -2498,80 +2257,57 @@ class LocalAlbumAssetEntityCompanion } } -class RemoteExifEntity extends Table - with TableInfo { +class RemoteExifEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteExifEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn city = GeneratedColumn( - 'city', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn city = + GeneratedColumn('city', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn state = + GeneratedColumn('state', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn country = + GeneratedColumn('country', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn dateTimeOriginal = GeneratedColumn( + 'date_time_original', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn description = + GeneratedColumn('description', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn exposureTime = GeneratedColumn('exposure_time', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn state = GeneratedColumn( - 'state', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn country = GeneratedColumn( - 'country', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn dateTimeOriginal = - GeneratedColumn('date_time_original', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn exposureTime = GeneratedColumn( - 'exposure_time', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn fNumber = GeneratedColumn( - 'f_number', aliasedName, true, + late final GeneratedColumn fNumber = + GeneratedColumn('f_number', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn fileSize = + GeneratedColumn('file_size', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn focalLength = GeneratedColumn('focal_length', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn fileSize = GeneratedColumn( - 'file_size', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn focalLength = GeneratedColumn( - 'focal_length', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn latitude = GeneratedColumn( - 'latitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn longitude = GeneratedColumn( - 'longitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn iso = GeneratedColumn( - 'iso', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn make = GeneratedColumn( - 'make', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn model = GeneratedColumn( - 'model', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn lens = GeneratedColumn( - 'lens', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn timeZone = GeneratedColumn( - 'time_zone', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn rating = GeneratedColumn( - 'rating', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn projectionType = GeneratedColumn( - 'projection_type', aliasedName, true, + late final GeneratedColumn latitude = + GeneratedColumn('latitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn longitude = + GeneratedColumn('longitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn iso = + GeneratedColumn('iso', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn make = + GeneratedColumn('make', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn model = + GeneratedColumn('model', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn lens = + GeneratedColumn('lens', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn orientation = + GeneratedColumn('orientation', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn timeZone = + GeneratedColumn('time_zone', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn rating = + GeneratedColumn('rating', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn projectionType = GeneratedColumn('projection_type', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ @@ -2609,50 +2345,29 @@ class RemoteExifEntity extends Table RemoteExifEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteExifEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - city: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}city']), - state: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}state']), - country: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}country']), - dateTimeOriginal: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - exposureTime: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), - fNumber: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}f_number']), - fileSize: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}file_size']), - focalLength: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}focal_length']), - latitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}latitude']), - longitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}longitude']), - iso: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}iso']), - make: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}make']), - model: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}model']), - lens: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}lens']), - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}orientation']), - timeZone: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}time_zone']), - rating: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}rating']), - projectionType: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}projection_type']), + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + city: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}city']), + state: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}state']), + country: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}country']), + dateTimeOriginal: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + exposureTime: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), + fNumber: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}f_number']), + fileSize: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}file_size']), + focalLength: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}focal_length']), + latitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}latitude']), + longitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}longitude']), + iso: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}iso']), + make: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}make']), + model: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}model']), + lens: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}lens']), + orientation: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}orientation']), + timeZone: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}time_zone']), + rating: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}rating']), + projectionType: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}projection_type']), ); } @@ -2667,8 +2382,7 @@ class RemoteExifEntity extends Table bool get isStrict => true; } -class RemoteExifEntityData extends DataClass - implements Insertable { +class RemoteExifEntityData extends DataClass implements Insertable { final String assetId; final String? city; final String? state; @@ -2784,16 +2498,14 @@ class RemoteExifEntityData extends DataClass return map; } - factory RemoteExifEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteExifEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteExifEntityData( assetId: serializer.fromJson(json['assetId']), city: serializer.fromJson(json['city']), state: serializer.fromJson(json['state']), country: serializer.fromJson(json['country']), - dateTimeOriginal: - serializer.fromJson(json['dateTimeOriginal']), + dateTimeOriginal: serializer.fromJson(json['dateTimeOriginal']), description: serializer.fromJson(json['description']), height: serializer.fromJson(json['height']), width: serializer.fromJson(json['width']), @@ -2870,14 +2582,11 @@ class RemoteExifEntityData extends DataClass city: city.present ? city.value : this.city, state: state.present ? state.value : this.state, country: country.present ? country.value : this.country, - dateTimeOriginal: dateTimeOriginal.present - ? dateTimeOriginal.value - : this.dateTimeOriginal, + dateTimeOriginal: dateTimeOriginal.present ? dateTimeOriginal.value : this.dateTimeOriginal, description: description.present ? description.value : this.description, height: height.present ? height.value : this.height, width: width.present ? width.value : this.width, - exposureTime: - exposureTime.present ? exposureTime.value : this.exposureTime, + exposureTime: exposureTime.present ? exposureTime.value : this.exposureTime, fNumber: fNumber.present ? fNumber.value : this.fNumber, fileSize: fileSize.present ? fileSize.value : this.fileSize, focalLength: focalLength.present ? focalLength.value : this.focalLength, @@ -2890,8 +2599,7 @@ class RemoteExifEntityData extends DataClass orientation: orientation.present ? orientation.value : this.orientation, timeZone: timeZone.present ? timeZone.value : this.timeZone, rating: rating.present ? rating.value : this.rating, - projectionType: - projectionType.present ? projectionType.value : this.projectionType, + projectionType: projectionType.present ? projectionType.value : this.projectionType, ); RemoteExifEntityData copyWithCompanion(RemoteExifEntityCompanion data) { return RemoteExifEntityData( @@ -2899,33 +2607,24 @@ class RemoteExifEntityData extends DataClass city: data.city.present ? data.city.value : this.city, state: data.state.present ? data.state.value : this.state, country: data.country.present ? data.country.value : this.country, - dateTimeOriginal: data.dateTimeOriginal.present - ? data.dateTimeOriginal.value - : this.dateTimeOriginal, - description: - data.description.present ? data.description.value : this.description, + dateTimeOriginal: data.dateTimeOriginal.present ? data.dateTimeOriginal.value : this.dateTimeOriginal, + description: data.description.present ? data.description.value : this.description, height: data.height.present ? data.height.value : this.height, width: data.width.present ? data.width.value : this.width, - exposureTime: data.exposureTime.present - ? data.exposureTime.value - : this.exposureTime, + exposureTime: data.exposureTime.present ? data.exposureTime.value : this.exposureTime, fNumber: data.fNumber.present ? data.fNumber.value : this.fNumber, fileSize: data.fileSize.present ? data.fileSize.value : this.fileSize, - focalLength: - data.focalLength.present ? data.focalLength.value : this.focalLength, + focalLength: data.focalLength.present ? data.focalLength.value : this.focalLength, latitude: data.latitude.present ? data.latitude.value : this.latitude, longitude: data.longitude.present ? data.longitude.value : this.longitude, iso: data.iso.present ? data.iso.value : this.iso, make: data.make.present ? data.make.value : this.make, model: data.model.present ? data.model.value : this.model, lens: data.lens.present ? data.lens.value : this.lens, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + orientation: data.orientation.present ? data.orientation.value : this.orientation, timeZone: data.timeZone.present ? data.timeZone.value : this.timeZone, rating: data.rating.present ? data.rating.value : this.rating, - projectionType: data.projectionType.present - ? data.projectionType.value - : this.projectionType, + projectionType: data.projectionType.present ? data.projectionType.value : this.projectionType, ); } @@ -3283,67 +2982,43 @@ class RemoteExifEntityCompanion extends UpdateCompanion { } } -class RemoteAlbumEntity extends Table - with TableInfo { +class RemoteAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: false, - defaultValue: const CustomExpression('\'\'')); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn description = GeneratedColumn('description', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: false, defaultValue: const CustomExpression('\'\'')); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn thumbnailAssetId = GeneratedColumn( - 'thumbnail_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn thumbnailAssetId = GeneratedColumn('thumbnail_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); - late final GeneratedColumn isActivityEnabled = GeneratedColumn( - 'is_activity_enabled', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); + late final GeneratedColumn isActivityEnabled = GeneratedColumn('is_activity_enabled', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_activity_enabled" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_activity_enabled" IN (0, 1))'), defaultValue: const CustomExpression('1')); - late final GeneratedColumn order = GeneratedColumn( - 'order', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn order = + GeneratedColumn('order', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override - List get $columns => [ - id, - name, - description, - createdAt, - updatedAt, - ownerId, - thumbnailAssetId, - isActivityEnabled, - order - ]; + List get $columns => + [id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -3355,24 +3030,17 @@ class RemoteAlbumEntity extends Table RemoteAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - thumbnailAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), - isActivityEnabled: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, - order: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}order'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + thumbnailAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), + isActivityEnabled: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, + order: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}order'])!, ); } @@ -3387,8 +3055,7 @@ class RemoteAlbumEntity extends Table bool get isStrict => true; } -class RemoteAlbumEntityData extends DataClass - implements Insertable { +class RemoteAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final String description; @@ -3425,8 +3092,7 @@ class RemoteAlbumEntityData extends DataClass return map; } - factory RemoteAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumEntityData( id: serializer.fromJson(json['id']), @@ -3473,9 +3139,7 @@ class RemoteAlbumEntityData extends DataClass createdAt: createdAt ?? this.createdAt, updatedAt: updatedAt ?? this.updatedAt, ownerId: ownerId ?? this.ownerId, - thumbnailAssetId: thumbnailAssetId.present - ? thumbnailAssetId.value - : this.thumbnailAssetId, + thumbnailAssetId: thumbnailAssetId.present ? thumbnailAssetId.value : this.thumbnailAssetId, isActivityEnabled: isActivityEnabled ?? this.isActivityEnabled, order: order ?? this.order, ); @@ -3483,17 +3147,12 @@ class RemoteAlbumEntityData extends DataClass return RemoteAlbumEntityData( id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, - description: - data.description.present ? data.description.value : this.description, + description: data.description.present ? data.description.value : this.description, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - thumbnailAssetId: data.thumbnailAssetId.present - ? data.thumbnailAssetId.value - : this.thumbnailAssetId, - isActivityEnabled: data.isActivityEnabled.present - ? data.isActivityEnabled.value - : this.isActivityEnabled, + thumbnailAssetId: data.thumbnailAssetId.present ? data.thumbnailAssetId.value : this.thumbnailAssetId, + isActivityEnabled: data.isActivityEnabled.present ? data.isActivityEnabled.value : this.isActivityEnabled, order: data.order.present ? data.order.value : this.order, ); } @@ -3515,8 +3174,8 @@ class RemoteAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash(id, name, description, createdAt, updatedAt, - ownerId, thumbnailAssetId, isActivityEnabled, order); + int get hashCode => + Object.hash(id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order); @override bool operator ==(Object other) => identical(this, other) || @@ -3532,8 +3191,7 @@ class RemoteAlbumEntityData extends DataClass other.order == this.order); } -class RemoteAlbumEntityCompanion - extends UpdateCompanion { +class RemoteAlbumEntityCompanion extends UpdateCompanion { final Value id; final Value name; final Value description; @@ -3665,24 +3323,19 @@ class RemoteAlbumEntityCompanion } } -class RemoteAlbumAssetEntity extends Table - with TableInfo { +class RemoteAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -3693,14 +3346,11 @@ class RemoteAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - RemoteAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -3715,12 +3365,10 @@ class RemoteAlbumAssetEntity extends Table bool get isStrict => true; } -class RemoteAlbumAssetEntityData extends DataClass - implements Insertable { +class RemoteAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const RemoteAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const RemoteAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3729,8 +3377,7 @@ class RemoteAlbumAssetEntityData extends DataClass return map; } - factory RemoteAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -3746,13 +3393,11 @@ class RemoteAlbumAssetEntityData extends DataClass }; } - RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - RemoteAlbumAssetEntityData( + RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => RemoteAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - RemoteAlbumAssetEntityData copyWithCompanion( - RemoteAlbumAssetEntityCompanion data) { + RemoteAlbumAssetEntityData copyWithCompanion(RemoteAlbumAssetEntityCompanion data) { return RemoteAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -3773,13 +3418,10 @@ class RemoteAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is RemoteAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is RemoteAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class RemoteAlbumAssetEntityCompanion - extends UpdateCompanion { +class RemoteAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const RemoteAlbumAssetEntityCompanion({ @@ -3801,8 +3443,7 @@ class RemoteAlbumAssetEntityCompanion }); } - RemoteAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + RemoteAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return RemoteAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -3831,27 +3472,21 @@ class RemoteAlbumAssetEntityCompanion } } -class RemoteAlbumUserEntity extends Table - with TableInfo { +class RemoteAlbumUserEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumUserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn role = GeneratedColumn( - 'role', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn role = + GeneratedColumn('role', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override List get $columns => [albumId, userId, role]; @override @@ -3862,16 +3497,12 @@ class RemoteAlbumUserEntity extends Table @override Set get $primaryKey => {albumId, userId}; @override - RemoteAlbumUserEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumUserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumUserEntityData( - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - role: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}role'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + role: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}role'])!, ); } @@ -3886,13 +3517,11 @@ class RemoteAlbumUserEntity extends Table bool get isStrict => true; } -class RemoteAlbumUserEntityData extends DataClass - implements Insertable { +class RemoteAlbumUserEntityData extends DataClass implements Insertable { final String albumId; final String userId; final int role; - const RemoteAlbumUserEntityData( - {required this.albumId, required this.userId, required this.role}); + const RemoteAlbumUserEntityData({required this.albumId, required this.userId, required this.role}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3902,8 +3531,7 @@ class RemoteAlbumUserEntityData extends DataClass return map; } - factory RemoteAlbumUserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumUserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumUserEntityData( albumId: serializer.fromJson(json['albumId']), @@ -3921,15 +3549,12 @@ class RemoteAlbumUserEntityData extends DataClass }; } - RemoteAlbumUserEntityData copyWith( - {String? albumId, String? userId, int? role}) => - RemoteAlbumUserEntityData( + RemoteAlbumUserEntityData copyWith({String? albumId, String? userId, int? role}) => RemoteAlbumUserEntityData( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, role: role ?? this.role, ); - RemoteAlbumUserEntityData copyWithCompanion( - RemoteAlbumUserEntityCompanion data) { + RemoteAlbumUserEntityData copyWithCompanion(RemoteAlbumUserEntityCompanion data) { return RemoteAlbumUserEntityData( albumId: data.albumId.present ? data.albumId.value : this.albumId, userId: data.userId.present ? data.userId.value : this.userId, @@ -3958,8 +3583,7 @@ class RemoteAlbumUserEntityData extends DataClass other.role == this.role); } -class RemoteAlbumUserEntityCompanion - extends UpdateCompanion { +class RemoteAlbumUserEntityCompanion extends UpdateCompanion { final Value albumId; final Value userId; final Value role; @@ -3987,8 +3611,7 @@ class RemoteAlbumUserEntityCompanion }); } - RemoteAlbumUserEntityCompanion copyWith( - {Value? albumId, Value? userId, Value? role}) { + RemoteAlbumUserEntityCompanion copyWith({Value? albumId, Value? userId, Value? role}) { return RemoteAlbumUserEntityCompanion( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, @@ -4022,74 +3645,47 @@ class RemoteAlbumUserEntityCompanion } } -class MemoryEntity extends Table - with TableInfo { +class MemoryEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn data = GeneratedColumn( - 'data', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isSaved = GeneratedColumn( - 'is_saved', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn data = + GeneratedColumn('data', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isSaved = GeneratedColumn('is_saved', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn memoryAt = GeneratedColumn( - 'memory_at', aliasedName, false, + late final GeneratedColumn memoryAt = GeneratedColumn('memory_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: true); - late final GeneratedColumn seenAt = GeneratedColumn( - 'seen_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn showAt = GeneratedColumn( - 'show_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn hideAt = GeneratedColumn( - 'hide_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn seenAt = + GeneratedColumn('seen_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn showAt = + GeneratedColumn('show_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn hideAt = + GeneratedColumn('hide_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - deletedAt, - ownerId, - type, - data, - isSaved, - memoryAt, - seenAt, - showAt, - hideAt - ]; + List get $columns => + [id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4101,30 +3697,18 @@ class MemoryEntity extends Table MemoryEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - data: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}data'])!, - isSaved: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, - memoryAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, - seenAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), - showAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), - hideAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + data: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}data'])!, + isSaved: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, + memoryAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, + seenAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), + showAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), + hideAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), ); } @@ -4139,8 +3723,7 @@ class MemoryEntity extends Table bool get isStrict => true; } -class MemoryEntityData extends DataClass - implements Insertable { +class MemoryEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4192,8 +3775,7 @@ class MemoryEntityData extends DataClass return map; } - factory MemoryEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryEntityData( id: serializer.fromJson(json['id']), @@ -4293,8 +3875,8 @@ class MemoryEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, - type, data, isSaved, memoryAt, seenAt, showAt, hideAt); + int get hashCode => + Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt); @override bool operator ==(Object other) => identical(this, other) || @@ -4479,24 +4061,19 @@ class MemoryEntityCompanion extends UpdateCompanion { } } -class MemoryAssetEntity extends Table - with TableInfo { +class MemoryAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn memoryId = GeneratedColumn( - 'memory_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn memoryId = GeneratedColumn('memory_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES memory_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES memory_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, memoryId]; @override @@ -4510,10 +4087,8 @@ class MemoryAssetEntity extends Table MemoryAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - memoryId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + memoryId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, ); } @@ -4528,8 +4103,7 @@ class MemoryAssetEntity extends Table bool get isStrict => true; } -class MemoryAssetEntityData extends DataClass - implements Insertable { +class MemoryAssetEntityData extends DataClass implements Insertable { final String assetId; final String memoryId; const MemoryAssetEntityData({required this.assetId, required this.memoryId}); @@ -4541,8 +4115,7 @@ class MemoryAssetEntityData extends DataClass return map; } - factory MemoryAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -4558,8 +4131,7 @@ class MemoryAssetEntityData extends DataClass }; } - MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => - MemoryAssetEntityData( + MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => MemoryAssetEntityData( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, ); @@ -4584,13 +4156,10 @@ class MemoryAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is MemoryAssetEntityData && - other.assetId == this.assetId && - other.memoryId == this.memoryId); + (other is MemoryAssetEntityData && other.assetId == this.assetId && other.memoryId == this.memoryId); } -class MemoryAssetEntityCompanion - extends UpdateCompanion { +class MemoryAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value memoryId; const MemoryAssetEntityCompanion({ @@ -4612,8 +4181,7 @@ class MemoryAssetEntityCompanion }); } - MemoryAssetEntityCompanion copyWith( - {Value? assetId, Value? memoryId}) { + MemoryAssetEntityCompanion copyWith({Value? assetId, Value? memoryId}) { return MemoryAssetEntityCompanion( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, @@ -4642,72 +4210,46 @@ class MemoryAssetEntityCompanion } } -class PersonEntity extends Table - with TableInfo { +class PersonEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PersonEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn faceAssetId = GeneratedColumn( - 'face_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn faceAssetId = GeneratedColumn('face_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn thumbnailPath = GeneratedColumn( - 'thumbnail_path', aliasedName, false, + late final GeneratedColumn thumbnailPath = GeneratedColumn('thumbnail_path', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_favorite" IN (0, 1))')); - late final GeneratedColumn isHidden = GeneratedColumn( - 'is_hidden', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))')); + late final GeneratedColumn isHidden = GeneratedColumn('is_hidden', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); - late final GeneratedColumn color = GeneratedColumn( - 'color', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn birthDate = GeneratedColumn( - 'birth_date', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); + late final GeneratedColumn color = + GeneratedColumn('color', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn birthDate = GeneratedColumn('birth_date', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - ownerId, - name, - faceAssetId, - thumbnailPath, - isFavorite, - isHidden, - color, - birthDate - ]; + List get $columns => + [id, createdAt, updatedAt, ownerId, name, faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4719,28 +4261,17 @@ class PersonEntity extends Table PersonEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PersonEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - faceAssetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), - thumbnailPath: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}thumbnail_path'])!, - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - isHidden: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, - color: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}color']), - birthDate: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + faceAssetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), + thumbnailPath: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumbnail_path'])!, + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + isHidden: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, + color: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}color']), + birthDate: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), ); } @@ -4755,8 +4286,7 @@ class PersonEntity extends Table bool get isStrict => true; } -class PersonEntityData extends DataClass - implements Insertable { +class PersonEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4803,8 +4333,7 @@ class PersonEntityData extends DataClass return map; } - factory PersonEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PersonEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PersonEntityData( id: serializer.fromJson(json['id']), @@ -4870,13 +4399,9 @@ class PersonEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, name: data.name.present ? data.name.value : this.name, - faceAssetId: - data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, - thumbnailPath: data.thumbnailPath.present - ? data.thumbnailPath.value - : this.thumbnailPath, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + faceAssetId: data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, + thumbnailPath: data.thumbnailPath.present ? data.thumbnailPath.value : this.thumbnailPath, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, isHidden: data.isHidden.present ? data.isHidden.value : this.isHidden, color: data.color.present ? data.color.value : this.color, birthDate: data.birthDate.present ? data.birthDate.value : this.birthDate, @@ -4902,8 +4427,8 @@ class PersonEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, name, - faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate); + int get hashCode => Object.hash( + id, createdAt, updatedAt, ownerId, name, faceAssetId, thumbnailPath, isFavorite, isHidden, color, birthDate); @override bool operator ==(Object other) => identical(this, other) || @@ -5083,30 +4608,25 @@ class DatabaseAtV3 extends GeneratedDatabase { late final RemoteAssetEntity remoteAssetEntity = RemoteAssetEntity(this); late final LocalAssetEntity localAssetEntity = LocalAssetEntity(this); late final StackEntity stackEntity = StackEntity(this); - late final Index idxLocalAssetChecksum = Index('idx_local_asset_checksum', - 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); - late final Index uQRemoteAssetOwnerChecksum = Index( - 'UQ_remote_asset_owner_checksum', + late final Index idxLocalAssetChecksum = + Index('idx_local_asset_checksum', 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); + late final Index uQRemoteAssetOwnerChecksum = Index('UQ_remote_asset_owner_checksum', 'CREATE UNIQUE INDEX UQ_remote_asset_owner_checksum ON remote_asset_entity (checksum, owner_id)'); - late final Index idxRemoteAssetChecksum = Index('idx_remote_asset_checksum', - 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); + late final Index idxRemoteAssetChecksum = + Index('idx_remote_asset_checksum', 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); late final UserMetadataEntity userMetadataEntity = UserMetadataEntity(this); late final PartnerEntity partnerEntity = PartnerEntity(this); late final LocalAlbumEntity localAlbumEntity = LocalAlbumEntity(this); - late final LocalAlbumAssetEntity localAlbumAssetEntity = - LocalAlbumAssetEntity(this); + late final LocalAlbumAssetEntity localAlbumAssetEntity = LocalAlbumAssetEntity(this); late final RemoteExifEntity remoteExifEntity = RemoteExifEntity(this); late final RemoteAlbumEntity remoteAlbumEntity = RemoteAlbumEntity(this); - late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = - RemoteAlbumAssetEntity(this); - late final RemoteAlbumUserEntity remoteAlbumUserEntity = - RemoteAlbumUserEntity(this); + late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = RemoteAlbumAssetEntity(this); + late final RemoteAlbumUserEntity remoteAlbumUserEntity = RemoteAlbumUserEntity(this); late final MemoryEntity memoryEntity = MemoryEntity(this); late final MemoryAssetEntity memoryAssetEntity = MemoryAssetEntity(this); late final PersonEntity personEntity = PersonEntity(this); @override - Iterable> get allTables => - allSchemaEntities.whereType>(); + Iterable> get allTables => allSchemaEntities.whereType>(); @override List get allSchemaEntities => [ userEntity, @@ -5131,6 +4651,5 @@ class DatabaseAtV3 extends GeneratedDatabase { @override int get schemaVersion => 3; @override - DriftDatabaseOptions get options => - const DriftDatabaseOptions(storeDateTimeAsText: true); + DriftDatabaseOptions get options => const DriftDatabaseOptions(storeDateTimeAsText: true); } diff --git a/mobile/test/drift/main/generated/schema_v4.dart b/mobile/test/drift/main/generated/schema_v4.dart index 9cf72a098b..f54e5e9644 100644 --- a/mobile/test/drift/main/generated/schema_v4.dart +++ b/mobile/test/drift/main/generated/schema_v4.dart @@ -8,49 +8,30 @@ class UserEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; UserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isAdmin = GeneratedColumn( - 'is_admin', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isAdmin = GeneratedColumn('is_admin', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_admin" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn email = GeneratedColumn( - 'email', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn profileImagePath = GeneratedColumn( - 'profile_image_path', aliasedName, true, + late final GeneratedColumn email = + GeneratedColumn('email', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn profileImagePath = GeneratedColumn('profile_image_path', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn quotaSizeInBytes = GeneratedColumn( - 'quota_size_in_bytes', aliasedName, true, + late final GeneratedColumn quotaSizeInBytes = GeneratedColumn('quota_size_in_bytes', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn quotaUsageInBytes = GeneratedColumn( - 'quota_usage_in_bytes', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, - defaultValue: const CustomExpression('0')); + late final GeneratedColumn quotaUsageInBytes = GeneratedColumn('quota_usage_in_bytes', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - id, - name, - isAdmin, - email, - profileImagePath, - updatedAt, - quotaSizeInBytes, - quotaUsageInBytes - ]; + List get $columns => + [id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -62,22 +43,17 @@ class UserEntity extends Table with TableInfo { UserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - isAdmin: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, - email: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}email'])!, - profileImagePath: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}profile_image_path']), - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - quotaSizeInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), - quotaUsageInBytes: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + isAdmin: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_admin'])!, + email: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}email'])!, + profileImagePath: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}profile_image_path']), + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + quotaSizeInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_size_in_bytes']), + quotaUsageInBytes: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}quota_usage_in_bytes'])!, ); } @@ -128,8 +104,7 @@ class UserEntityData extends DataClass implements Insertable { return map; } - factory UserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserEntityData( id: serializer.fromJson(json['id']), @@ -171,13 +146,9 @@ class UserEntityData extends DataClass implements Insertable { name: name ?? this.name, isAdmin: isAdmin ?? this.isAdmin, email: email ?? this.email, - profileImagePath: profileImagePath.present - ? profileImagePath.value - : this.profileImagePath, + profileImagePath: profileImagePath.present ? profileImagePath.value : this.profileImagePath, updatedAt: updatedAt ?? this.updatedAt, - quotaSizeInBytes: quotaSizeInBytes.present - ? quotaSizeInBytes.value - : this.quotaSizeInBytes, + quotaSizeInBytes: quotaSizeInBytes.present ? quotaSizeInBytes.value : this.quotaSizeInBytes, quotaUsageInBytes: quotaUsageInBytes ?? this.quotaUsageInBytes, ); UserEntityData copyWithCompanion(UserEntityCompanion data) { @@ -186,16 +157,10 @@ class UserEntityData extends DataClass implements Insertable { name: data.name.present ? data.name.value : this.name, isAdmin: data.isAdmin.present ? data.isAdmin.value : this.isAdmin, email: data.email.present ? data.email.value : this.email, - profileImagePath: data.profileImagePath.present - ? data.profileImagePath.value - : this.profileImagePath, + profileImagePath: data.profileImagePath.present ? data.profileImagePath.value : this.profileImagePath, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - quotaSizeInBytes: data.quotaSizeInBytes.present - ? data.quotaSizeInBytes.value - : this.quotaSizeInBytes, - quotaUsageInBytes: data.quotaUsageInBytes.present - ? data.quotaUsageInBytes.value - : this.quotaUsageInBytes, + quotaSizeInBytes: data.quotaSizeInBytes.present ? data.quotaSizeInBytes.value : this.quotaSizeInBytes, + quotaUsageInBytes: data.quotaUsageInBytes.present ? data.quotaUsageInBytes.value : this.quotaUsageInBytes, ); } @@ -215,8 +180,8 @@ class UserEntityData extends DataClass implements Insertable { } @override - int get hashCode => Object.hash(id, name, isAdmin, email, profileImagePath, - updatedAt, quotaSizeInBytes, quotaUsageInBytes); + int get hashCode => + Object.hash(id, name, isAdmin, email, profileImagePath, updatedAt, quotaSizeInBytes, quotaUsageInBytes); @override bool operator ==(Object other) => identical(this, other) || @@ -351,74 +316,55 @@ class UserEntityCompanion extends UpdateCompanion { } } -class RemoteAssetEntity extends Table - with TableInfo { +class RemoteAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn localDateTime = - GeneratedColumn('local_date_time', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn thumbHash = GeneratedColumn( - 'thumb_hash', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn localDateTime = GeneratedColumn('local_date_time', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn thumbHash = + GeneratedColumn('thumb_hash', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); late final GeneratedColumn livePhotoVideoId = GeneratedColumn( 'live_photo_video_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn visibility = GeneratedColumn( - 'visibility', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn stackId = GeneratedColumn( - 'stack_id', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn visibility = + GeneratedColumn('visibility', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn stackId = + GeneratedColumn('stack_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ name, @@ -450,40 +396,26 @@ class RemoteAssetEntity extends Table RemoteAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - localDateTime: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), - thumbHash: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - livePhotoVideoId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), - visibility: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, - stackId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}stack_id']), + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum'])!, + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + localDateTime: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}local_date_time']), + thumbHash: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumb_hash']), + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + livePhotoVideoId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}live_photo_video_id']), + visibility: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}visibility'])!, + stackId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}stack_id']), ); } @@ -498,8 +430,7 @@ class RemoteAssetEntity extends Table bool get isStrict => true; } -class RemoteAssetEntityData extends DataClass - implements Insertable { +class RemoteAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -574,8 +505,7 @@ class RemoteAssetEntityData extends DataClass return map; } - factory RemoteAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAssetEntityData( name: serializer.fromJson(json['name']), @@ -646,20 +576,15 @@ class RemoteAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum ?? this.checksum, isFavorite: isFavorite ?? this.isFavorite, ownerId: ownerId ?? this.ownerId, - localDateTime: - localDateTime.present ? localDateTime.value : this.localDateTime, + localDateTime: localDateTime.present ? localDateTime.value : this.localDateTime, thumbHash: thumbHash.present ? thumbHash.value : this.thumbHash, deletedAt: deletedAt.present ? deletedAt.value : this.deletedAt, - livePhotoVideoId: livePhotoVideoId.present - ? livePhotoVideoId.value - : this.livePhotoVideoId, + livePhotoVideoId: livePhotoVideoId.present ? livePhotoVideoId.value : this.livePhotoVideoId, visibility: visibility ?? this.visibility, stackId: stackId.present ? stackId.value : this.stackId, ); @@ -671,24 +596,16 @@ class RemoteAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - localDateTime: data.localDateTime.present - ? data.localDateTime.value - : this.localDateTime, + localDateTime: data.localDateTime.present ? data.localDateTime.value : this.localDateTime, thumbHash: data.thumbHash.present ? data.thumbHash.value : this.thumbHash, deletedAt: data.deletedAt.present ? data.deletedAt.value : this.deletedAt, - livePhotoVideoId: data.livePhotoVideoId.present - ? data.livePhotoVideoId.value - : this.livePhotoVideoId, - visibility: - data.visibility.present ? data.visibility.value : this.visibility, + livePhotoVideoId: data.livePhotoVideoId.present ? data.livePhotoVideoId.value : this.livePhotoVideoId, + visibility: data.visibility.present ? data.visibility.value : this.visibility, stackId: data.stackId.present ? data.stackId.value : this.stackId, ); } @@ -718,24 +635,8 @@ class RemoteAssetEntityData extends DataClass } @override - int get hashCode => Object.hash( - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - ownerId, - localDateTime, - thumbHash, - deletedAt, - livePhotoVideoId, - visibility, - stackId); + int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, + isFavorite, ownerId, localDateTime, thumbHash, deletedAt, livePhotoVideoId, visibility, stackId); @override bool operator ==(Object other) => identical(this, other) || @@ -759,8 +660,7 @@ class RemoteAssetEntityData extends DataClass other.stackId == this.stackId); } -class RemoteAssetEntityCompanion - extends UpdateCompanion { +class RemoteAssetEntityCompanion extends UpdateCompanion { final Value name; final Value type; final Value createdAt; @@ -987,31 +887,24 @@ class StackEntity extends Table with TableInfo { final GeneratedDatabase attachedDatabase; final String? _alias; StackEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn primaryAssetId = GeneratedColumn( - 'primary_asset_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn primaryAssetId = GeneratedColumn('primary_asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); @override - List get $columns => - [id, createdAt, updatedAt, ownerId, primaryAssetId]; + List get $columns => [id, createdAt, updatedAt, ownerId, primaryAssetId]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1023,16 +916,12 @@ class StackEntity extends Table with TableInfo { StackEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return StackEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - primaryAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + primaryAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}primary_asset_id'])!, ); } @@ -1070,8 +959,7 @@ class StackEntityData extends DataClass implements Insertable { return map; } - factory StackEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory StackEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return StackEntityData( id: serializer.fromJson(json['id']), @@ -1094,11 +982,7 @@ class StackEntityData extends DataClass implements Insertable { } StackEntityData copyWith( - {String? id, - DateTime? createdAt, - DateTime? updatedAt, - String? ownerId, - String? primaryAssetId}) => + {String? id, DateTime? createdAt, DateTime? updatedAt, String? ownerId, String? primaryAssetId}) => StackEntityData( id: id ?? this.id, createdAt: createdAt ?? this.createdAt, @@ -1112,9 +996,7 @@ class StackEntityData extends DataClass implements Insertable { createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - primaryAssetId: data.primaryAssetId.present - ? data.primaryAssetId.value - : this.primaryAssetId, + primaryAssetId: data.primaryAssetId.present ? data.primaryAssetId.value : this.primaryAssetId, ); } @@ -1131,8 +1013,7 @@ class StackEntityData extends DataClass implements Insertable { } @override - int get hashCode => - Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); + int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, primaryAssetId); @override bool operator ==(Object other) => identical(this, other) || @@ -1231,69 +1112,43 @@ class StackEntityCompanion extends UpdateCompanion { } } -class LocalAssetEntity extends Table - with TableInfo { +class LocalAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn durationInSeconds = GeneratedColumn('duration_in_seconds', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn durationInSeconds = GeneratedColumn( - 'duration_in_seconds', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn checksum = GeneratedColumn( - 'checksum', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn checksum = + GeneratedColumn('checksum', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), - defaultValue: const CustomExpression('0')); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, false, - type: DriftSqlType.int, - requiredDuringInsert: false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))'), defaultValue: const CustomExpression('0')); + late final GeneratedColumn orientation = GeneratedColumn('orientation', aliasedName, false, + type: DriftSqlType.int, requiredDuringInsert: false, defaultValue: const CustomExpression('0')); @override - List get $columns => [ - name, - type, - createdAt, - updatedAt, - width, - height, - durationInSeconds, - id, - checksum, - isFavorite, - orientation - ]; + List get $columns => + [name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1305,28 +1160,18 @@ class LocalAssetEntity extends Table LocalAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAssetEntityData( - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - durationInSeconds: attachedDatabase.typeMapping.read( - DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - checksum: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}checksum']), - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + durationInSeconds: + attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}duration_in_seconds']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + checksum: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}checksum']), + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + orientation: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}orientation'])!, ); } @@ -1341,8 +1186,7 @@ class LocalAssetEntity extends Table bool get isStrict => true; } -class LocalAssetEntityData extends DataClass - implements Insertable { +class LocalAssetEntityData extends DataClass implements Insertable { final String name; final int type; final DateTime createdAt; @@ -1391,8 +1235,7 @@ class LocalAssetEntityData extends DataClass return map; } - factory LocalAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAssetEntityData( name: serializer.fromJson(json['name']), @@ -1445,9 +1288,7 @@ class LocalAssetEntityData extends DataClass updatedAt: updatedAt ?? this.updatedAt, width: width.present ? width.value : this.width, height: height.present ? height.value : this.height, - durationInSeconds: durationInSeconds.present - ? durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: durationInSeconds.present ? durationInSeconds.value : this.durationInSeconds, id: id ?? this.id, checksum: checksum.present ? checksum.value : this.checksum, isFavorite: isFavorite ?? this.isFavorite, @@ -1461,15 +1302,11 @@ class LocalAssetEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, width: data.width.present ? data.width.value : this.width, height: data.height.present ? data.height.value : this.height, - durationInSeconds: data.durationInSeconds.present - ? data.durationInSeconds.value - : this.durationInSeconds, + durationInSeconds: data.durationInSeconds.present ? data.durationInSeconds.value : this.durationInSeconds, id: data.id.present ? data.id.value : this.id, checksum: data.checksum.present ? data.checksum.value : this.checksum, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + orientation: data.orientation.present ? data.orientation.value : this.orientation, ); } @@ -1492,8 +1329,8 @@ class LocalAssetEntityData extends DataClass } @override - int get hashCode => Object.hash(name, type, createdAt, updatedAt, width, - height, durationInSeconds, id, checksum, isFavorite, orientation); + int get hashCode => Object.hash( + name, type, createdAt, updatedAt, width, height, durationInSeconds, id, checksum, isFavorite, orientation); @override bool operator ==(Object other) => identical(this, other) || @@ -1664,42 +1501,32 @@ class LocalAssetEntityCompanion extends UpdateCompanion { } } -class LocalAlbumEntity extends Table - with TableInfo { +class LocalAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn backupSelection = GeneratedColumn( - 'backup_selection', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn isIosSharedAlbum = GeneratedColumn( - 'is_ios_shared_album', aliasedName, false, + late final GeneratedColumn backupSelection = + GeneratedColumn('backup_selection', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn isIosSharedAlbum = GeneratedColumn('is_ios_shared_album', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_ios_shared_album" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_ios_shared_album" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn marker_ = GeneratedColumn( - 'marker', aliasedName, true, + late final GeneratedColumn marker_ = GeneratedColumn('marker', aliasedName, true, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("marker" IN (0, 1))')); @override - List get $columns => - [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; + List get $columns => [id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -1711,18 +1538,13 @@ class LocalAlbumEntity extends Table LocalAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - backupSelection: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, - isIosSharedAlbum: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, - marker_: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}marker']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + backupSelection: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}backup_selection'])!, + isIosSharedAlbum: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_ios_shared_album'])!, + marker_: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}marker']), ); } @@ -1737,8 +1559,7 @@ class LocalAlbumEntity extends Table bool get isStrict => true; } -class LocalAlbumEntityData extends DataClass - implements Insertable { +class LocalAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final DateTime updatedAt; @@ -1766,8 +1587,7 @@ class LocalAlbumEntityData extends DataClass return map; } - factory LocalAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumEntityData( id: serializer.fromJson(json['id']), @@ -1811,12 +1631,8 @@ class LocalAlbumEntityData extends DataClass id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, - backupSelection: data.backupSelection.present - ? data.backupSelection.value - : this.backupSelection, - isIosSharedAlbum: data.isIosSharedAlbum.present - ? data.isIosSharedAlbum.value - : this.isIosSharedAlbum, + backupSelection: data.backupSelection.present ? data.backupSelection.value : this.backupSelection, + isIosSharedAlbum: data.isIosSharedAlbum.present ? data.isIosSharedAlbum.value : this.isIosSharedAlbum, marker_: data.marker_.present ? data.marker_.value : this.marker_, ); } @@ -1835,8 +1651,7 @@ class LocalAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash( - id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); + int get hashCode => Object.hash(id, name, updatedAt, backupSelection, isIosSharedAlbum, marker_); @override bool operator ==(Object other) => identical(this, other) || @@ -1947,24 +1762,19 @@ class LocalAlbumEntityCompanion extends UpdateCompanion { } } -class LocalAlbumAssetEntity extends Table - with TableInfo { +class LocalAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; LocalAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES local_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES local_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -1975,14 +1785,11 @@ class LocalAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - LocalAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + LocalAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return LocalAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -1997,12 +1804,10 @@ class LocalAlbumAssetEntity extends Table bool get isStrict => true; } -class LocalAlbumAssetEntityData extends DataClass - implements Insertable { +class LocalAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const LocalAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const LocalAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -2011,8 +1816,7 @@ class LocalAlbumAssetEntityData extends DataClass return map; } - factory LocalAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory LocalAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return LocalAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -2028,13 +1832,11 @@ class LocalAlbumAssetEntityData extends DataClass }; } - LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - LocalAlbumAssetEntityData( + LocalAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => LocalAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - LocalAlbumAssetEntityData copyWithCompanion( - LocalAlbumAssetEntityCompanion data) { + LocalAlbumAssetEntityData copyWithCompanion(LocalAlbumAssetEntityCompanion data) { return LocalAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -2055,13 +1857,10 @@ class LocalAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is LocalAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is LocalAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class LocalAlbumAssetEntityCompanion - extends UpdateCompanion { +class LocalAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const LocalAlbumAssetEntityCompanion({ @@ -2083,8 +1882,7 @@ class LocalAlbumAssetEntityCompanion }); } - LocalAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + LocalAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return LocalAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -2113,24 +1911,19 @@ class LocalAlbumAssetEntityCompanion } } -class UserMetadataEntity extends Table - with TableInfo { +class UserMetadataEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; UserMetadataEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn key = GeneratedColumn( - 'key', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn value = GeneratedColumn( - 'value', aliasedName, false, - type: DriftSqlType.blob, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn key = + GeneratedColumn('key', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn value = + GeneratedColumn('value', aliasedName, false, type: DriftSqlType.blob, requiredDuringInsert: true); @override List get $columns => [userId, key, value]; @override @@ -2144,12 +1937,9 @@ class UserMetadataEntity extends Table UserMetadataEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return UserMetadataEntityData( - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - key: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}key'])!, - value: attachedDatabase.typeMapping - .read(DriftSqlType.blob, data['${effectivePrefix}value'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + key: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}key'])!, + value: attachedDatabase.typeMapping.read(DriftSqlType.blob, data['${effectivePrefix}value'])!, ); } @@ -2164,13 +1954,11 @@ class UserMetadataEntity extends Table bool get isStrict => true; } -class UserMetadataEntityData extends DataClass - implements Insertable { +class UserMetadataEntityData extends DataClass implements Insertable { final String userId; final int key; final Uint8List value; - const UserMetadataEntityData( - {required this.userId, required this.key, required this.value}); + const UserMetadataEntityData({required this.userId, required this.key, required this.value}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -2180,8 +1968,7 @@ class UserMetadataEntityData extends DataClass return map; } - factory UserMetadataEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory UserMetadataEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return UserMetadataEntityData( userId: serializer.fromJson(json['userId']), @@ -2199,9 +1986,7 @@ class UserMetadataEntityData extends DataClass }; } - UserMetadataEntityData copyWith( - {String? userId, int? key, Uint8List? value}) => - UserMetadataEntityData( + UserMetadataEntityData copyWith({String? userId, int? key, Uint8List? value}) => UserMetadataEntityData( userId: userId ?? this.userId, key: key ?? this.key, value: value ?? this.value, @@ -2235,8 +2020,7 @@ class UserMetadataEntityData extends DataClass $driftBlobEquality.equals(other.value, this.value)); } -class UserMetadataEntityCompanion - extends UpdateCompanion { +class UserMetadataEntityCompanion extends UpdateCompanion { final Value userId; final Value key; final Value value; @@ -2264,8 +2048,7 @@ class UserMetadataEntityCompanion }); } - UserMetadataEntityCompanion copyWith( - {Value? userId, Value? key, Value? value}) { + UserMetadataEntityCompanion copyWith({Value? userId, Value? key, Value? value}) { return UserMetadataEntityCompanion( userId: userId ?? this.userId, key: key ?? this.key, @@ -2299,30 +2082,23 @@ class UserMetadataEntityCompanion } } -class PartnerEntity extends Table - with TableInfo { +class PartnerEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PartnerEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn sharedById = GeneratedColumn( - 'shared_by_id', aliasedName, false, + late final GeneratedColumn sharedById = GeneratedColumn('shared_by_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn sharedWithId = GeneratedColumn( - 'shared_with_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn sharedWithId = GeneratedColumn('shared_with_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn inTimeline = GeneratedColumn( - 'in_timeline', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn inTimeline = GeneratedColumn('in_timeline', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("in_timeline" IN (0, 1))'), defaultValue: const CustomExpression('0')); @override List get $columns => [sharedById, sharedWithId, inTimeline]; @@ -2337,12 +2113,9 @@ class PartnerEntity extends Table PartnerEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PartnerEntityData( - sharedById: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, - sharedWithId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, - inTimeline: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, + sharedById: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_by_id'])!, + sharedWithId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}shared_with_id'])!, + inTimeline: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}in_timeline'])!, ); } @@ -2357,15 +2130,11 @@ class PartnerEntity extends Table bool get isStrict => true; } -class PartnerEntityData extends DataClass - implements Insertable { +class PartnerEntityData extends DataClass implements Insertable { final String sharedById; final String sharedWithId; final bool inTimeline; - const PartnerEntityData( - {required this.sharedById, - required this.sharedWithId, - required this.inTimeline}); + const PartnerEntityData({required this.sharedById, required this.sharedWithId, required this.inTimeline}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -2375,8 +2144,7 @@ class PartnerEntityData extends DataClass return map; } - factory PartnerEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PartnerEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PartnerEntityData( sharedById: serializer.fromJson(json['sharedById']), @@ -2394,22 +2162,16 @@ class PartnerEntityData extends DataClass }; } - PartnerEntityData copyWith( - {String? sharedById, String? sharedWithId, bool? inTimeline}) => - PartnerEntityData( + PartnerEntityData copyWith({String? sharedById, String? sharedWithId, bool? inTimeline}) => PartnerEntityData( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, inTimeline: inTimeline ?? this.inTimeline, ); PartnerEntityData copyWithCompanion(PartnerEntityCompanion data) { return PartnerEntityData( - sharedById: - data.sharedById.present ? data.sharedById.value : this.sharedById, - sharedWithId: data.sharedWithId.present - ? data.sharedWithId.value - : this.sharedWithId, - inTimeline: - data.inTimeline.present ? data.inTimeline.value : this.inTimeline, + sharedById: data.sharedById.present ? data.sharedById.value : this.sharedById, + sharedWithId: data.sharedWithId.present ? data.sharedWithId.value : this.sharedWithId, + inTimeline: data.inTimeline.present ? data.inTimeline.value : this.inTimeline, ); } @@ -2461,10 +2223,7 @@ class PartnerEntityCompanion extends UpdateCompanion { }); } - PartnerEntityCompanion copyWith( - {Value? sharedById, - Value? sharedWithId, - Value? inTimeline}) { + PartnerEntityCompanion copyWith({Value? sharedById, Value? sharedWithId, Value? inTimeline}) { return PartnerEntityCompanion( sharedById: sharedById ?? this.sharedById, sharedWithId: sharedWithId ?? this.sharedWithId, @@ -2498,80 +2257,57 @@ class PartnerEntityCompanion extends UpdateCompanion { } } -class RemoteExifEntity extends Table - with TableInfo { +class RemoteExifEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteExifEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn city = GeneratedColumn( - 'city', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn city = + GeneratedColumn('city', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn state = + GeneratedColumn('state', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn country = + GeneratedColumn('country', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn dateTimeOriginal = GeneratedColumn( + 'date_time_original', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn description = + GeneratedColumn('description', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn height = + GeneratedColumn('height', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn width = + GeneratedColumn('width', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn exposureTime = GeneratedColumn('exposure_time', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn state = GeneratedColumn( - 'state', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn country = GeneratedColumn( - 'country', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn dateTimeOriginal = - GeneratedColumn('date_time_original', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn height = GeneratedColumn( - 'height', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn width = GeneratedColumn( - 'width', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn exposureTime = GeneratedColumn( - 'exposure_time', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn fNumber = GeneratedColumn( - 'f_number', aliasedName, true, + late final GeneratedColumn fNumber = + GeneratedColumn('f_number', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn fileSize = + GeneratedColumn('file_size', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn focalLength = GeneratedColumn('focal_length', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn fileSize = GeneratedColumn( - 'file_size', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn focalLength = GeneratedColumn( - 'focal_length', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn latitude = GeneratedColumn( - 'latitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn longitude = GeneratedColumn( - 'longitude', aliasedName, true, - type: DriftSqlType.double, requiredDuringInsert: false); - late final GeneratedColumn iso = GeneratedColumn( - 'iso', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn make = GeneratedColumn( - 'make', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn model = GeneratedColumn( - 'model', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn lens = GeneratedColumn( - 'lens', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn orientation = GeneratedColumn( - 'orientation', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn timeZone = GeneratedColumn( - 'time_zone', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn rating = GeneratedColumn( - 'rating', aliasedName, true, - type: DriftSqlType.int, requiredDuringInsert: false); - late final GeneratedColumn projectionType = GeneratedColumn( - 'projection_type', aliasedName, true, + late final GeneratedColumn latitude = + GeneratedColumn('latitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn longitude = + GeneratedColumn('longitude', aliasedName, true, type: DriftSqlType.double, requiredDuringInsert: false); + late final GeneratedColumn iso = + GeneratedColumn('iso', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn make = + GeneratedColumn('make', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn model = + GeneratedColumn('model', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn lens = + GeneratedColumn('lens', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn orientation = + GeneratedColumn('orientation', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn timeZone = + GeneratedColumn('time_zone', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn rating = + GeneratedColumn('rating', aliasedName, true, type: DriftSqlType.int, requiredDuringInsert: false); + late final GeneratedColumn projectionType = GeneratedColumn('projection_type', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); @override List get $columns => [ @@ -2609,50 +2345,29 @@ class RemoteExifEntity extends Table RemoteExifEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteExifEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - city: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}city']), - state: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}state']), - country: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}country']), - dateTimeOriginal: attachedDatabase.typeMapping.read( - DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description']), - height: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}height']), - width: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}width']), - exposureTime: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), - fNumber: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}f_number']), - fileSize: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}file_size']), - focalLength: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}focal_length']), - latitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}latitude']), - longitude: attachedDatabase.typeMapping - .read(DriftSqlType.double, data['${effectivePrefix}longitude']), - iso: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}iso']), - make: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}make']), - model: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}model']), - lens: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}lens']), - orientation: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}orientation']), - timeZone: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}time_zone']), - rating: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}rating']), - projectionType: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}projection_type']), + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + city: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}city']), + state: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}state']), + country: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}country']), + dateTimeOriginal: + attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}date_time_original']), + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description']), + height: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}height']), + width: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}width']), + exposureTime: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}exposure_time']), + fNumber: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}f_number']), + fileSize: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}file_size']), + focalLength: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}focal_length']), + latitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}latitude']), + longitude: attachedDatabase.typeMapping.read(DriftSqlType.double, data['${effectivePrefix}longitude']), + iso: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}iso']), + make: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}make']), + model: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}model']), + lens: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}lens']), + orientation: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}orientation']), + timeZone: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}time_zone']), + rating: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}rating']), + projectionType: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}projection_type']), ); } @@ -2667,8 +2382,7 @@ class RemoteExifEntity extends Table bool get isStrict => true; } -class RemoteExifEntityData extends DataClass - implements Insertable { +class RemoteExifEntityData extends DataClass implements Insertable { final String assetId; final String? city; final String? state; @@ -2784,16 +2498,14 @@ class RemoteExifEntityData extends DataClass return map; } - factory RemoteExifEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteExifEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteExifEntityData( assetId: serializer.fromJson(json['assetId']), city: serializer.fromJson(json['city']), state: serializer.fromJson(json['state']), country: serializer.fromJson(json['country']), - dateTimeOriginal: - serializer.fromJson(json['dateTimeOriginal']), + dateTimeOriginal: serializer.fromJson(json['dateTimeOriginal']), description: serializer.fromJson(json['description']), height: serializer.fromJson(json['height']), width: serializer.fromJson(json['width']), @@ -2870,14 +2582,11 @@ class RemoteExifEntityData extends DataClass city: city.present ? city.value : this.city, state: state.present ? state.value : this.state, country: country.present ? country.value : this.country, - dateTimeOriginal: dateTimeOriginal.present - ? dateTimeOriginal.value - : this.dateTimeOriginal, + dateTimeOriginal: dateTimeOriginal.present ? dateTimeOriginal.value : this.dateTimeOriginal, description: description.present ? description.value : this.description, height: height.present ? height.value : this.height, width: width.present ? width.value : this.width, - exposureTime: - exposureTime.present ? exposureTime.value : this.exposureTime, + exposureTime: exposureTime.present ? exposureTime.value : this.exposureTime, fNumber: fNumber.present ? fNumber.value : this.fNumber, fileSize: fileSize.present ? fileSize.value : this.fileSize, focalLength: focalLength.present ? focalLength.value : this.focalLength, @@ -2890,8 +2599,7 @@ class RemoteExifEntityData extends DataClass orientation: orientation.present ? orientation.value : this.orientation, timeZone: timeZone.present ? timeZone.value : this.timeZone, rating: rating.present ? rating.value : this.rating, - projectionType: - projectionType.present ? projectionType.value : this.projectionType, + projectionType: projectionType.present ? projectionType.value : this.projectionType, ); RemoteExifEntityData copyWithCompanion(RemoteExifEntityCompanion data) { return RemoteExifEntityData( @@ -2899,33 +2607,24 @@ class RemoteExifEntityData extends DataClass city: data.city.present ? data.city.value : this.city, state: data.state.present ? data.state.value : this.state, country: data.country.present ? data.country.value : this.country, - dateTimeOriginal: data.dateTimeOriginal.present - ? data.dateTimeOriginal.value - : this.dateTimeOriginal, - description: - data.description.present ? data.description.value : this.description, + dateTimeOriginal: data.dateTimeOriginal.present ? data.dateTimeOriginal.value : this.dateTimeOriginal, + description: data.description.present ? data.description.value : this.description, height: data.height.present ? data.height.value : this.height, width: data.width.present ? data.width.value : this.width, - exposureTime: data.exposureTime.present - ? data.exposureTime.value - : this.exposureTime, + exposureTime: data.exposureTime.present ? data.exposureTime.value : this.exposureTime, fNumber: data.fNumber.present ? data.fNumber.value : this.fNumber, fileSize: data.fileSize.present ? data.fileSize.value : this.fileSize, - focalLength: - data.focalLength.present ? data.focalLength.value : this.focalLength, + focalLength: data.focalLength.present ? data.focalLength.value : this.focalLength, latitude: data.latitude.present ? data.latitude.value : this.latitude, longitude: data.longitude.present ? data.longitude.value : this.longitude, iso: data.iso.present ? data.iso.value : this.iso, make: data.make.present ? data.make.value : this.make, model: data.model.present ? data.model.value : this.model, lens: data.lens.present ? data.lens.value : this.lens, - orientation: - data.orientation.present ? data.orientation.value : this.orientation, + orientation: data.orientation.present ? data.orientation.value : this.orientation, timeZone: data.timeZone.present ? data.timeZone.value : this.timeZone, rating: data.rating.present ? data.rating.value : this.rating, - projectionType: data.projectionType.present - ? data.projectionType.value - : this.projectionType, + projectionType: data.projectionType.present ? data.projectionType.value : this.projectionType, ); } @@ -3283,67 +2982,43 @@ class RemoteExifEntityCompanion extends UpdateCompanion { } } -class RemoteAlbumEntity extends Table - with TableInfo { +class RemoteAlbumEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn description = GeneratedColumn( - 'description', aliasedName, false, - type: DriftSqlType.string, - requiredDuringInsert: false, - defaultValue: const CustomExpression('\'\'')); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn description = GeneratedColumn('description', aliasedName, false, + type: DriftSqlType.string, requiredDuringInsert: false, defaultValue: const CustomExpression('\'\'')); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn thumbnailAssetId = GeneratedColumn( - 'thumbnail_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn thumbnailAssetId = GeneratedColumn('thumbnail_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); - late final GeneratedColumn isActivityEnabled = GeneratedColumn( - 'is_activity_enabled', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE SET NULL')); + late final GeneratedColumn isActivityEnabled = GeneratedColumn('is_activity_enabled', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_activity_enabled" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_activity_enabled" IN (0, 1))'), defaultValue: const CustomExpression('1')); - late final GeneratedColumn order = GeneratedColumn( - 'order', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn order = + GeneratedColumn('order', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override - List get $columns => [ - id, - name, - description, - createdAt, - updatedAt, - ownerId, - thumbnailAssetId, - isActivityEnabled, - order - ]; + List get $columns => + [id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -3355,24 +3030,17 @@ class RemoteAlbumEntity extends Table RemoteAlbumEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - description: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}description'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - thumbnailAssetId: attachedDatabase.typeMapping.read( - DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), - isActivityEnabled: attachedDatabase.typeMapping.read( - DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, - order: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}order'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + description: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}description'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + thumbnailAssetId: + attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}thumbnail_asset_id']), + isActivityEnabled: + attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_activity_enabled'])!, + order: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}order'])!, ); } @@ -3387,8 +3055,7 @@ class RemoteAlbumEntity extends Table bool get isStrict => true; } -class RemoteAlbumEntityData extends DataClass - implements Insertable { +class RemoteAlbumEntityData extends DataClass implements Insertable { final String id; final String name; final String description; @@ -3425,8 +3092,7 @@ class RemoteAlbumEntityData extends DataClass return map; } - factory RemoteAlbumEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumEntityData( id: serializer.fromJson(json['id']), @@ -3473,9 +3139,7 @@ class RemoteAlbumEntityData extends DataClass createdAt: createdAt ?? this.createdAt, updatedAt: updatedAt ?? this.updatedAt, ownerId: ownerId ?? this.ownerId, - thumbnailAssetId: thumbnailAssetId.present - ? thumbnailAssetId.value - : this.thumbnailAssetId, + thumbnailAssetId: thumbnailAssetId.present ? thumbnailAssetId.value : this.thumbnailAssetId, isActivityEnabled: isActivityEnabled ?? this.isActivityEnabled, order: order ?? this.order, ); @@ -3483,17 +3147,12 @@ class RemoteAlbumEntityData extends DataClass return RemoteAlbumEntityData( id: data.id.present ? data.id.value : this.id, name: data.name.present ? data.name.value : this.name, - description: - data.description.present ? data.description.value : this.description, + description: data.description.present ? data.description.value : this.description, createdAt: data.createdAt.present ? data.createdAt.value : this.createdAt, updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, - thumbnailAssetId: data.thumbnailAssetId.present - ? data.thumbnailAssetId.value - : this.thumbnailAssetId, - isActivityEnabled: data.isActivityEnabled.present - ? data.isActivityEnabled.value - : this.isActivityEnabled, + thumbnailAssetId: data.thumbnailAssetId.present ? data.thumbnailAssetId.value : this.thumbnailAssetId, + isActivityEnabled: data.isActivityEnabled.present ? data.isActivityEnabled.value : this.isActivityEnabled, order: data.order.present ? data.order.value : this.order, ); } @@ -3515,8 +3174,8 @@ class RemoteAlbumEntityData extends DataClass } @override - int get hashCode => Object.hash(id, name, description, createdAt, updatedAt, - ownerId, thumbnailAssetId, isActivityEnabled, order); + int get hashCode => + Object.hash(id, name, description, createdAt, updatedAt, ownerId, thumbnailAssetId, isActivityEnabled, order); @override bool operator ==(Object other) => identical(this, other) || @@ -3532,8 +3191,7 @@ class RemoteAlbumEntityData extends DataClass other.order == this.order); } -class RemoteAlbumEntityCompanion - extends UpdateCompanion { +class RemoteAlbumEntityCompanion extends UpdateCompanion { final Value id; final Value name; final Value description; @@ -3665,24 +3323,19 @@ class RemoteAlbumEntityCompanion } } -class RemoteAlbumAssetEntity extends Table - with TableInfo { +class RemoteAlbumAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, albumId]; @override @@ -3693,14 +3346,11 @@ class RemoteAlbumAssetEntity extends Table @override Set get $primaryKey => {assetId, albumId}; @override - RemoteAlbumAssetEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, ); } @@ -3715,12 +3365,10 @@ class RemoteAlbumAssetEntity extends Table bool get isStrict => true; } -class RemoteAlbumAssetEntityData extends DataClass - implements Insertable { +class RemoteAlbumAssetEntityData extends DataClass implements Insertable { final String assetId; final String albumId; - const RemoteAlbumAssetEntityData( - {required this.assetId, required this.albumId}); + const RemoteAlbumAssetEntityData({required this.assetId, required this.albumId}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3729,8 +3377,7 @@ class RemoteAlbumAssetEntityData extends DataClass return map; } - factory RemoteAlbumAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -3746,13 +3393,11 @@ class RemoteAlbumAssetEntityData extends DataClass }; } - RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => - RemoteAlbumAssetEntityData( + RemoteAlbumAssetEntityData copyWith({String? assetId, String? albumId}) => RemoteAlbumAssetEntityData( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, ); - RemoteAlbumAssetEntityData copyWithCompanion( - RemoteAlbumAssetEntityCompanion data) { + RemoteAlbumAssetEntityData copyWithCompanion(RemoteAlbumAssetEntityCompanion data) { return RemoteAlbumAssetEntityData( assetId: data.assetId.present ? data.assetId.value : this.assetId, albumId: data.albumId.present ? data.albumId.value : this.albumId, @@ -3773,13 +3418,10 @@ class RemoteAlbumAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is RemoteAlbumAssetEntityData && - other.assetId == this.assetId && - other.albumId == this.albumId); + (other is RemoteAlbumAssetEntityData && other.assetId == this.assetId && other.albumId == this.albumId); } -class RemoteAlbumAssetEntityCompanion - extends UpdateCompanion { +class RemoteAlbumAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value albumId; const RemoteAlbumAssetEntityCompanion({ @@ -3801,8 +3443,7 @@ class RemoteAlbumAssetEntityCompanion }); } - RemoteAlbumAssetEntityCompanion copyWith( - {Value? assetId, Value? albumId}) { + RemoteAlbumAssetEntityCompanion copyWith({Value? assetId, Value? albumId}) { return RemoteAlbumAssetEntityCompanion( assetId: assetId ?? this.assetId, albumId: albumId ?? this.albumId, @@ -3831,27 +3472,21 @@ class RemoteAlbumAssetEntityCompanion } } -class RemoteAlbumUserEntity extends Table - with TableInfo { +class RemoteAlbumUserEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; RemoteAlbumUserEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn albumId = GeneratedColumn( - 'album_id', aliasedName, false, + late final GeneratedColumn albumId = GeneratedColumn('album_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_album_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn userId = GeneratedColumn( - 'user_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_album_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn userId = GeneratedColumn('user_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn role = GeneratedColumn( - 'role', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn role = + GeneratedColumn('role', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); @override List get $columns => [albumId, userId, role]; @override @@ -3862,16 +3497,12 @@ class RemoteAlbumUserEntity extends Table @override Set get $primaryKey => {albumId, userId}; @override - RemoteAlbumUserEntityData map(Map data, - {String? tablePrefix}) { + RemoteAlbumUserEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return RemoteAlbumUserEntityData( - albumId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, - userId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, - role: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}role'])!, + albumId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}album_id'])!, + userId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}user_id'])!, + role: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}role'])!, ); } @@ -3886,13 +3517,11 @@ class RemoteAlbumUserEntity extends Table bool get isStrict => true; } -class RemoteAlbumUserEntityData extends DataClass - implements Insertable { +class RemoteAlbumUserEntityData extends DataClass implements Insertable { final String albumId; final String userId; final int role; - const RemoteAlbumUserEntityData( - {required this.albumId, required this.userId, required this.role}); + const RemoteAlbumUserEntityData({required this.albumId, required this.userId, required this.role}); @override Map toColumns(bool nullToAbsent) { final map = {}; @@ -3902,8 +3531,7 @@ class RemoteAlbumUserEntityData extends DataClass return map; } - factory RemoteAlbumUserEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory RemoteAlbumUserEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return RemoteAlbumUserEntityData( albumId: serializer.fromJson(json['albumId']), @@ -3921,15 +3549,12 @@ class RemoteAlbumUserEntityData extends DataClass }; } - RemoteAlbumUserEntityData copyWith( - {String? albumId, String? userId, int? role}) => - RemoteAlbumUserEntityData( + RemoteAlbumUserEntityData copyWith({String? albumId, String? userId, int? role}) => RemoteAlbumUserEntityData( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, role: role ?? this.role, ); - RemoteAlbumUserEntityData copyWithCompanion( - RemoteAlbumUserEntityCompanion data) { + RemoteAlbumUserEntityData copyWithCompanion(RemoteAlbumUserEntityCompanion data) { return RemoteAlbumUserEntityData( albumId: data.albumId.present ? data.albumId.value : this.albumId, userId: data.userId.present ? data.userId.value : this.userId, @@ -3958,8 +3583,7 @@ class RemoteAlbumUserEntityData extends DataClass other.role == this.role); } -class RemoteAlbumUserEntityCompanion - extends UpdateCompanion { +class RemoteAlbumUserEntityCompanion extends UpdateCompanion { final Value albumId; final Value userId; final Value role; @@ -3987,8 +3611,7 @@ class RemoteAlbumUserEntityCompanion }); } - RemoteAlbumUserEntityCompanion copyWith( - {Value? albumId, Value? userId, Value? role}) { + RemoteAlbumUserEntityCompanion copyWith({Value? albumId, Value? userId, Value? role}) { return RemoteAlbumUserEntityCompanion( albumId: albumId ?? this.albumId, userId: userId ?? this.userId, @@ -4022,74 +3645,47 @@ class RemoteAlbumUserEntityCompanion } } -class MemoryEntity extends Table - with TableInfo { +class MemoryEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn deletedAt = GeneratedColumn( - 'deleted_at', aliasedName, true, + late final GeneratedColumn deletedAt = GeneratedColumn('deleted_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn type = GeneratedColumn( - 'type', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn data = GeneratedColumn( - 'data', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn isSaved = GeneratedColumn( - 'is_saved', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn type = + GeneratedColumn('type', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn data = + GeneratedColumn('data', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn isSaved = GeneratedColumn('is_saved', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: false, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_saved" IN (0, 1))'), defaultValue: const CustomExpression('0')); - late final GeneratedColumn memoryAt = GeneratedColumn( - 'memory_at', aliasedName, false, + late final GeneratedColumn memoryAt = GeneratedColumn('memory_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: true); - late final GeneratedColumn seenAt = GeneratedColumn( - 'seen_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn showAt = GeneratedColumn( - 'show_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); - late final GeneratedColumn hideAt = GeneratedColumn( - 'hide_at', aliasedName, true, - type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn seenAt = + GeneratedColumn('seen_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn showAt = + GeneratedColumn('show_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); + late final GeneratedColumn hideAt = + GeneratedColumn('hide_at', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - deletedAt, - ownerId, - type, - data, - isSaved, - memoryAt, - seenAt, - showAt, - hideAt - ]; + List get $columns => + [id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4101,30 +3697,18 @@ class MemoryEntity extends Table MemoryEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - deletedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - type: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}type'])!, - data: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}data'])!, - isSaved: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, - memoryAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, - seenAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), - showAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), - hideAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + deletedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}deleted_at']), + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + type: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}type'])!, + data: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}data'])!, + isSaved: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_saved'])!, + memoryAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}memory_at'])!, + seenAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}seen_at']), + showAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}show_at']), + hideAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}hide_at']), ); } @@ -4139,8 +3723,7 @@ class MemoryEntity extends Table bool get isStrict => true; } -class MemoryEntityData extends DataClass - implements Insertable { +class MemoryEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4192,8 +3775,7 @@ class MemoryEntityData extends DataClass return map; } - factory MemoryEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryEntityData( id: serializer.fromJson(json['id']), @@ -4293,8 +3875,8 @@ class MemoryEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, - type, data, isSaved, memoryAt, seenAt, showAt, hideAt); + int get hashCode => + Object.hash(id, createdAt, updatedAt, deletedAt, ownerId, type, data, isSaved, memoryAt, seenAt, showAt, hideAt); @override bool operator ==(Object other) => identical(this, other) || @@ -4479,24 +4061,19 @@ class MemoryEntityCompanion extends UpdateCompanion { } } -class MemoryAssetEntity extends Table - with TableInfo { +class MemoryAssetEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; MemoryAssetEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn memoryId = GeneratedColumn( - 'memory_id', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn memoryId = GeneratedColumn('memory_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES memory_entity (id) ON DELETE CASCADE')); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES memory_entity (id) ON DELETE CASCADE')); @override List get $columns => [assetId, memoryId]; @override @@ -4510,10 +4087,8 @@ class MemoryAssetEntity extends Table MemoryAssetEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return MemoryAssetEntityData( - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - memoryId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + memoryId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}memory_id'])!, ); } @@ -4528,8 +4103,7 @@ class MemoryAssetEntity extends Table bool get isStrict => true; } -class MemoryAssetEntityData extends DataClass - implements Insertable { +class MemoryAssetEntityData extends DataClass implements Insertable { final String assetId; final String memoryId; const MemoryAssetEntityData({required this.assetId, required this.memoryId}); @@ -4541,8 +4115,7 @@ class MemoryAssetEntityData extends DataClass return map; } - factory MemoryAssetEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory MemoryAssetEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return MemoryAssetEntityData( assetId: serializer.fromJson(json['assetId']), @@ -4558,8 +4131,7 @@ class MemoryAssetEntityData extends DataClass }; } - MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => - MemoryAssetEntityData( + MemoryAssetEntityData copyWith({String? assetId, String? memoryId}) => MemoryAssetEntityData( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, ); @@ -4584,13 +4156,10 @@ class MemoryAssetEntityData extends DataClass @override bool operator ==(Object other) => identical(this, other) || - (other is MemoryAssetEntityData && - other.assetId == this.assetId && - other.memoryId == this.memoryId); + (other is MemoryAssetEntityData && other.assetId == this.assetId && other.memoryId == this.memoryId); } -class MemoryAssetEntityCompanion - extends UpdateCompanion { +class MemoryAssetEntityCompanion extends UpdateCompanion { final Value assetId; final Value memoryId; const MemoryAssetEntityCompanion({ @@ -4612,8 +4181,7 @@ class MemoryAssetEntityCompanion }); } - MemoryAssetEntityCompanion copyWith( - {Value? assetId, Value? memoryId}) { + MemoryAssetEntityCompanion copyWith({Value? assetId, Value? memoryId}) { return MemoryAssetEntityCompanion( assetId: assetId ?? this.assetId, memoryId: memoryId ?? this.memoryId, @@ -4642,68 +4210,44 @@ class MemoryAssetEntityCompanion } } -class PersonEntity extends Table - with TableInfo { +class PersonEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; PersonEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn createdAt = GeneratedColumn('created_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, + late final GeneratedColumn updatedAt = GeneratedColumn('updated_at', aliasedName, false, type: DriftSqlType.dateTime, requiredDuringInsert: false, defaultValue: const CustomExpression('CURRENT_TIMESTAMP')); - late final GeneratedColumn ownerId = GeneratedColumn( - 'owner_id', aliasedName, false, + late final GeneratedColumn ownerId = GeneratedColumn('owner_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES user_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn name = GeneratedColumn( - 'name', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn faceAssetId = GeneratedColumn( - 'face_asset_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES user_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn name = + GeneratedColumn('name', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn faceAssetId = GeneratedColumn('face_asset_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn isFavorite = GeneratedColumn( - 'is_favorite', aliasedName, false, + late final GeneratedColumn isFavorite = GeneratedColumn('is_favorite', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'CHECK ("is_favorite" IN (0, 1))')); - late final GeneratedColumn isHidden = GeneratedColumn( - 'is_hidden', aliasedName, false, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_favorite" IN (0, 1))')); + late final GeneratedColumn isHidden = GeneratedColumn('is_hidden', aliasedName, false, type: DriftSqlType.bool, requiredDuringInsert: true, - defaultConstraints: - GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); - late final GeneratedColumn color = GeneratedColumn( - 'color', aliasedName, true, - type: DriftSqlType.string, requiredDuringInsert: false); - late final GeneratedColumn birthDate = GeneratedColumn( - 'birth_date', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('CHECK ("is_hidden" IN (0, 1))')); + late final GeneratedColumn color = + GeneratedColumn('color', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false); + late final GeneratedColumn birthDate = GeneratedColumn('birth_date', aliasedName, true, type: DriftSqlType.dateTime, requiredDuringInsert: false); @override - List get $columns => [ - id, - createdAt, - updatedAt, - ownerId, - name, - faceAssetId, - isFavorite, - isHidden, - color, - birthDate - ]; + List get $columns => + [id, createdAt, updatedAt, ownerId, name, faceAssetId, isFavorite, isHidden, color, birthDate]; @override String get aliasedName => _alias ?? actualTableName; @override @@ -4715,26 +4259,16 @@ class PersonEntity extends Table PersonEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return PersonEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, - updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, - ownerId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, - name: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}name'])!, - faceAssetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), - isFavorite: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, - isHidden: attachedDatabase.typeMapping - .read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, - color: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}color']), - birthDate: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + createdAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + updatedAt: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + ownerId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}owner_id'])!, + name: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}name'])!, + faceAssetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}face_asset_id']), + isFavorite: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_favorite'])!, + isHidden: attachedDatabase.typeMapping.read(DriftSqlType.bool, data['${effectivePrefix}is_hidden'])!, + color: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}color']), + birthDate: attachedDatabase.typeMapping.read(DriftSqlType.dateTime, data['${effectivePrefix}birth_date']), ); } @@ -4749,8 +4283,7 @@ class PersonEntity extends Table bool get isStrict => true; } -class PersonEntityData extends DataClass - implements Insertable { +class PersonEntityData extends DataClass implements Insertable { final String id; final DateTime createdAt; final DateTime updatedAt; @@ -4794,8 +4327,7 @@ class PersonEntityData extends DataClass return map; } - factory PersonEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory PersonEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return PersonEntityData( id: serializer.fromJson(json['id']), @@ -4857,10 +4389,8 @@ class PersonEntityData extends DataClass updatedAt: data.updatedAt.present ? data.updatedAt.value : this.updatedAt, ownerId: data.ownerId.present ? data.ownerId.value : this.ownerId, name: data.name.present ? data.name.value : this.name, - faceAssetId: - data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, - isFavorite: - data.isFavorite.present ? data.isFavorite.value : this.isFavorite, + faceAssetId: data.faceAssetId.present ? data.faceAssetId.value : this.faceAssetId, + isFavorite: data.isFavorite.present ? data.isFavorite.value : this.isFavorite, isHidden: data.isHidden.present ? data.isHidden.value : this.isHidden, color: data.color.present ? data.color.value : this.color, birthDate: data.birthDate.present ? data.birthDate.value : this.birthDate, @@ -4885,8 +4415,8 @@ class PersonEntityData extends DataClass } @override - int get hashCode => Object.hash(id, createdAt, updatedAt, ownerId, name, - faceAssetId, isFavorite, isHidden, color, birthDate); + int get hashCode => + Object.hash(id, createdAt, updatedAt, ownerId, name, faceAssetId, isFavorite, isHidden, color, birthDate); @override bool operator ==(Object other) => identical(this, other) || @@ -5047,48 +4577,35 @@ class PersonEntityCompanion extends UpdateCompanion { } } -class AssetFaceEntity extends Table - with TableInfo { +class AssetFaceEntity extends Table with TableInfo { @override final GeneratedDatabase attachedDatabase; final String? _alias; AssetFaceEntity(this.attachedDatabase, [this._alias]); - late final GeneratedColumn id = GeneratedColumn( - 'id', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); - late final GeneratedColumn assetId = GeneratedColumn( - 'asset_id', aliasedName, false, + late final GeneratedColumn id = + GeneratedColumn('id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); + late final GeneratedColumn assetId = GeneratedColumn('asset_id', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); - late final GeneratedColumn personId = GeneratedColumn( - 'person_id', aliasedName, true, + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES remote_asset_entity (id) ON DELETE CASCADE')); + late final GeneratedColumn personId = GeneratedColumn('person_id', aliasedName, true, type: DriftSqlType.string, requiredDuringInsert: false, - defaultConstraints: GeneratedColumn.constraintIsAlways( - 'REFERENCES person_entity (id) ON DELETE SET NULL')); - late final GeneratedColumn imageWidth = GeneratedColumn( - 'image_width', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn imageHeight = GeneratedColumn( - 'image_height', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn boundingBoxX1 = GeneratedColumn( - 'bounding_box_x1', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn boundingBoxY1 = GeneratedColumn( - 'bounding_box_y1', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn boundingBoxX2 = GeneratedColumn( - 'bounding_box_x2', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn boundingBoxY2 = GeneratedColumn( - 'bounding_box_y2', aliasedName, false, - type: DriftSqlType.int, requiredDuringInsert: true); - late final GeneratedColumn sourceType = GeneratedColumn( - 'source_type', aliasedName, false, - type: DriftSqlType.string, requiredDuringInsert: true); + defaultConstraints: GeneratedColumn.constraintIsAlways('REFERENCES person_entity (id) ON DELETE SET NULL')); + late final GeneratedColumn imageWidth = + GeneratedColumn('image_width', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn imageHeight = + GeneratedColumn('image_height', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn boundingBoxX1 = + GeneratedColumn('bounding_box_x1', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn boundingBoxY1 = + GeneratedColumn('bounding_box_y1', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn boundingBoxX2 = + GeneratedColumn('bounding_box_x2', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn boundingBoxY2 = + GeneratedColumn('bounding_box_y2', aliasedName, false, type: DriftSqlType.int, requiredDuringInsert: true); + late final GeneratedColumn sourceType = + GeneratedColumn('source_type', aliasedName, false, type: DriftSqlType.string, requiredDuringInsert: true); @override List get $columns => [ id, @@ -5113,26 +4630,16 @@ class AssetFaceEntity extends Table AssetFaceEntityData map(Map data, {String? tablePrefix}) { final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : ''; return AssetFaceEntityData( - id: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}id'])!, - assetId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, - personId: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}person_id']), - imageWidth: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}image_width'])!, - imageHeight: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}image_height'])!, - boundingBoxX1: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}bounding_box_x1'])!, - boundingBoxY1: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}bounding_box_y1'])!, - boundingBoxX2: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}bounding_box_x2'])!, - boundingBoxY2: attachedDatabase.typeMapping - .read(DriftSqlType.int, data['${effectivePrefix}bounding_box_y2'])!, - sourceType: attachedDatabase.typeMapping - .read(DriftSqlType.string, data['${effectivePrefix}source_type'])!, + id: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}id'])!, + assetId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}asset_id'])!, + personId: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}person_id']), + imageWidth: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}image_width'])!, + imageHeight: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}image_height'])!, + boundingBoxX1: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}bounding_box_x1'])!, + boundingBoxY1: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}bounding_box_y1'])!, + boundingBoxX2: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}bounding_box_x2'])!, + boundingBoxY2: attachedDatabase.typeMapping.read(DriftSqlType.int, data['${effectivePrefix}bounding_box_y2'])!, + sourceType: attachedDatabase.typeMapping.read(DriftSqlType.string, data['${effectivePrefix}source_type'])!, ); } @@ -5147,8 +4654,7 @@ class AssetFaceEntity extends Table bool get isStrict => true; } -class AssetFaceEntityData extends DataClass - implements Insertable { +class AssetFaceEntityData extends DataClass implements Insertable { final String id; final String assetId; final String? personId; @@ -5188,8 +4694,7 @@ class AssetFaceEntityData extends DataClass return map; } - factory AssetFaceEntityData.fromJson(Map json, - {ValueSerializer? serializer}) { + factory AssetFaceEntityData.fromJson(Map json, {ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; return AssetFaceEntityData( id: serializer.fromJson(json['id']), @@ -5249,24 +4754,13 @@ class AssetFaceEntityData extends DataClass id: data.id.present ? data.id.value : this.id, assetId: data.assetId.present ? data.assetId.value : this.assetId, personId: data.personId.present ? data.personId.value : this.personId, - imageWidth: - data.imageWidth.present ? data.imageWidth.value : this.imageWidth, - imageHeight: - data.imageHeight.present ? data.imageHeight.value : this.imageHeight, - boundingBoxX1: data.boundingBoxX1.present - ? data.boundingBoxX1.value - : this.boundingBoxX1, - boundingBoxY1: data.boundingBoxY1.present - ? data.boundingBoxY1.value - : this.boundingBoxY1, - boundingBoxX2: data.boundingBoxX2.present - ? data.boundingBoxX2.value - : this.boundingBoxX2, - boundingBoxY2: data.boundingBoxY2.present - ? data.boundingBoxY2.value - : this.boundingBoxY2, - sourceType: - data.sourceType.present ? data.sourceType.value : this.sourceType, + imageWidth: data.imageWidth.present ? data.imageWidth.value : this.imageWidth, + imageHeight: data.imageHeight.present ? data.imageHeight.value : this.imageHeight, + boundingBoxX1: data.boundingBoxX1.present ? data.boundingBoxX1.value : this.boundingBoxX1, + boundingBoxY1: data.boundingBoxY1.present ? data.boundingBoxY1.value : this.boundingBoxY1, + boundingBoxX2: data.boundingBoxX2.present ? data.boundingBoxX2.value : this.boundingBoxX2, + boundingBoxY2: data.boundingBoxY2.present ? data.boundingBoxY2.value : this.boundingBoxY2, + sourceType: data.sourceType.present ? data.sourceType.value : this.sourceType, ); } @@ -5288,17 +4782,8 @@ class AssetFaceEntityData extends DataClass } @override - int get hashCode => Object.hash( - id, - assetId, - personId, - imageWidth, - imageHeight, - boundingBoxX1, - boundingBoxY1, - boundingBoxX2, - boundingBoxY2, - sourceType); + int get hashCode => Object.hash(id, assetId, personId, imageWidth, imageHeight, boundingBoxX1, boundingBoxY1, + boundingBoxX2, boundingBoxY2, sourceType); @override bool operator ==(Object other) => identical(this, other) || @@ -5470,30 +4955,25 @@ class DatabaseAtV4 extends GeneratedDatabase { late final StackEntity stackEntity = StackEntity(this); late final LocalAssetEntity localAssetEntity = LocalAssetEntity(this); late final LocalAlbumEntity localAlbumEntity = LocalAlbumEntity(this); - late final LocalAlbumAssetEntity localAlbumAssetEntity = - LocalAlbumAssetEntity(this); - late final Index idxLocalAssetChecksum = Index('idx_local_asset_checksum', - 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); - late final Index uQRemoteAssetOwnerChecksum = Index( - 'UQ_remote_asset_owner_checksum', + late final LocalAlbumAssetEntity localAlbumAssetEntity = LocalAlbumAssetEntity(this); + late final Index idxLocalAssetChecksum = + Index('idx_local_asset_checksum', 'CREATE INDEX idx_local_asset_checksum ON local_asset_entity (checksum)'); + late final Index uQRemoteAssetOwnerChecksum = Index('UQ_remote_asset_owner_checksum', 'CREATE UNIQUE INDEX UQ_remote_asset_owner_checksum ON remote_asset_entity (checksum, owner_id)'); - late final Index idxRemoteAssetChecksum = Index('idx_remote_asset_checksum', - 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); + late final Index idxRemoteAssetChecksum = + Index('idx_remote_asset_checksum', 'CREATE INDEX idx_remote_asset_checksum ON remote_asset_entity (checksum)'); late final UserMetadataEntity userMetadataEntity = UserMetadataEntity(this); late final PartnerEntity partnerEntity = PartnerEntity(this); late final RemoteExifEntity remoteExifEntity = RemoteExifEntity(this); late final RemoteAlbumEntity remoteAlbumEntity = RemoteAlbumEntity(this); - late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = - RemoteAlbumAssetEntity(this); - late final RemoteAlbumUserEntity remoteAlbumUserEntity = - RemoteAlbumUserEntity(this); + late final RemoteAlbumAssetEntity remoteAlbumAssetEntity = RemoteAlbumAssetEntity(this); + late final RemoteAlbumUserEntity remoteAlbumUserEntity = RemoteAlbumUserEntity(this); late final MemoryEntity memoryEntity = MemoryEntity(this); late final MemoryAssetEntity memoryAssetEntity = MemoryAssetEntity(this); late final PersonEntity personEntity = PersonEntity(this); late final AssetFaceEntity assetFaceEntity = AssetFaceEntity(this); @override - Iterable> get allTables => - allSchemaEntities.whereType>(); + Iterable> get allTables => allSchemaEntities.whereType>(); @override List get allSchemaEntities => [ userEntity, @@ -5519,6 +4999,5 @@ class DatabaseAtV4 extends GeneratedDatabase { @override int get schemaVersion => 4; @override - DriftDatabaseOptions get options => - const DriftDatabaseOptions(storeDateTimeAsText: true); + DriftDatabaseOptions get options => const DriftDatabaseOptions(storeDateTimeAsText: true); } diff --git a/mobile/test/infrastructure/repositories/local_album_repository_test.dart b/mobile/test/infrastructure/repositories/local_album_repository_test.dart index bab25de52a..bb4292be07 100644 --- a/mobile/test/infrastructure/repositories/local_album_repository_test.dart +++ b/mobile/test/infrastructure/repositories/local_album_repository_test.dart @@ -23,8 +23,7 @@ void main() { group('getAll', () { test('sorts albums by backupSelection & isIosSharedAlbum', () async { - final localAlbumRepo = - mediumFactory.getRepository(); + final localAlbumRepo = mediumFactory.getRepository(); await localAlbumRepo.upsert( mediumFactory.localAlbum( id: '1', diff --git a/mobile/test/infrastructure/repositories/store_repository_test.dart b/mobile/test/infrastructure/repositories/store_repository_test.dart index ce13c1ecdd..6d75fbc765 100644 --- a/mobile/test/infrastructure/repositories/store_repository_test.dart +++ b/mobile/test/infrastructure/repositories/store_repository_test.dart @@ -66,8 +66,7 @@ void main() { }); test('converts datetime', () async { - DateTime? backupFailedSince = - await sut.tryGet(StoreKey.backupFailedSince); + DateTime? backupFailedSince = await sut.tryGet(StoreKey.backupFailedSince); expect(backupFailedSince, isNull); await sut.insert(StoreKey.backupFailedSince, _kTestBackupFailed); backupFailedSince = await sut.tryGet(StoreKey.backupFailedSince); diff --git a/mobile/test/infrastructure/repositories/sync_api_repository_test.dart b/mobile/test/infrastructure/repositories/sync_api_repository_test.dart index 55b03a8116..3348cc7c04 100644 --- a/mobile/test/infrastructure/repositories/sync_api_repository_test.dart +++ b/mobile/test/infrastructure/repositories/sync_api_repository_test.dart @@ -39,23 +39,19 @@ void main() { mockSyncApi = MockSyncApi(); mockHttpClient = MockHttpClient(); mockStreamedResponse = MockStreamedResponse(); - responseStreamController = - StreamController>.broadcast(sync: true); + responseStreamController = StreamController>.broadcast(sync: true); registerFallbackValue(FakeBaseRequest()); when(() => mockApiService.apiClient).thenReturn(mockApiClient); when(() => mockApiService.syncApi).thenReturn(mockSyncApi); when(() => mockApiClient.basePath).thenReturn('http://demo.immich.app/api'); - when(() => mockApiService.applyToParams(any(), any())) - .thenAnswer((_) async => {}); + when(() => mockApiService.applyToParams(any(), any())).thenAnswer((_) async => {}); // Mock HTTP client behavior - when(() => mockHttpClient.send(any())) - .thenAnswer((_) async => mockStreamedResponse); + when(() => mockHttpClient.send(any())).thenAnswer((_) async => mockStreamedResponse); when(() => mockStreamedResponse.statusCode).thenReturn(200); - when(() => mockStreamedResponse.stream) - .thenAnswer((_) => http.ByteStream(responseStreamController.stream)); + when(() => mockStreamedResponse.stream).thenAnswer((_) => http.ByteStream(responseStreamController.stream)); when(() => mockHttpClient.close()).thenAnswer((_) => {}); sut = SyncApiRepository(mockApiService); @@ -270,8 +266,7 @@ void main() { test('streamChanges throws ApiException on non-200 status code', () async { when(() => mockStreamedResponse.statusCode).thenReturn(401); final errorBodyController = StreamController>(sync: true); - when(() => mockStreamedResponse.stream) - .thenAnswer((_) => http.ByteStream(errorBodyController.stream)); + when(() => mockStreamedResponse.stream).thenAnswer((_) => http.ByteStream(errorBodyController.stream)); int onDataCallCount = 0; diff --git a/mobile/test/infrastructure/repository.mock.dart b/mobile/test/infrastructure/repository.mock.dart index 1fde303863..ed20f177b7 100644 --- a/mobile/test/infrastructure/repository.mock.dart +++ b/mobile/test/infrastructure/repository.mock.dart @@ -16,16 +16,13 @@ class MockLogRepository extends Mock implements IsarLogRepository {} class MockIsarUserRepository extends Mock implements IsarUserRepository {} -class MockDeviceAssetRepository extends Mock - implements IsarDeviceAssetRepository {} +class MockDeviceAssetRepository extends Mock implements IsarDeviceAssetRepository {} class MockSyncStreamRepository extends Mock implements SyncStreamRepository {} -class MockLocalAlbumRepository extends Mock - implements DriftLocalAlbumRepository {} +class MockLocalAlbumRepository extends Mock implements DriftLocalAlbumRepository {} -class MockLocalAssetRepository extends Mock - implements DriftLocalAssetRepository {} +class MockLocalAssetRepository extends Mock implements DriftLocalAssetRepository {} class MockStorageRepository extends Mock implements StorageRepository {} diff --git a/mobile/test/mock_http_override.dart b/mobile/test/mock_http_override.dart index c25fb79b50..ae19d932c0 100644 --- a/mobile/test/mock_http_override.dart +++ b/mobile/test/mock_http_override.dart @@ -18,15 +18,12 @@ class MockHttpOverrides extends HttpOverrides { // Request mocks when(() => request.headers).thenAnswer((_) => headers); - when(() => request.close()) - .thenAnswer((_) => Future.value(response)); + when(() => request.close()).thenAnswer((_) => Future.value(response)); // Response mocks when(() => response.statusCode).thenReturn(HttpStatus.ok); - when(() => response.compressionState) - .thenReturn(HttpClientResponseCompressionState.decompressed); - when(() => response.contentLength) - .thenAnswer((_) => kTransparentImage.length); + when(() => response.compressionState).thenReturn(HttpClientResponseCompressionState.decompressed); + when(() => response.contentLength).thenAnswer((_) => kTransparentImage.length); when( () => response.listen( captureAny(), @@ -35,18 +32,15 @@ class MockHttpOverrides extends HttpOverrides { onError: captureAny(named: 'onError'), ), ).thenAnswer((invocation) { - final onData = - invocation.positionalArguments[0] as void Function(List); + final onData = invocation.positionalArguments[0] as void Function(List); final onDone = invocation.namedArguments[#onDone] as void Function(); - final onError = invocation.namedArguments[#onError] as void - Function(Object, [StackTrace]); + final onError = invocation.namedArguments[#onError] as void Function(Object, [StackTrace]); final cancelOnError = invocation.namedArguments[#cancelOnError] as bool; - return Stream>.fromIterable([kTransparentImage.toList()]) - .listen( + return Stream>.fromIterable([kTransparentImage.toList()]).listen( onData, onDone: onDone, onError: onError, diff --git a/mobile/test/modules/activity/activities_page_test.dart b/mobile/test/modules/activity/activities_page_test.dart index cf9238d205..c3279e9b58 100644 --- a/mobile/test/modules/activity/activities_page_test.dart +++ b/mobile/test/modules/activity/activities_page_test.dart @@ -198,8 +198,7 @@ void main() { ); await tester.pumpAndSettle(); - when(() => activityMock.addComment(any())) - .thenAnswer((_) => Future.value()); + when(() => activityMock.addComment(any())).thenAnswer((_) => Future.value()); final textField = find.byType(TextField); await tester.enterText(textField, 'Test comment'); diff --git a/mobile/test/modules/activity/activity_mocks.dart b/mobile/test/modules/activity/activity_mocks.dart index 22fbafdbf3..c50810795e 100644 --- a/mobile/test/modules/activity/activity_mocks.dart +++ b/mobile/test/modules/activity/activity_mocks.dart @@ -6,9 +6,7 @@ import 'package:mocktail/mocktail.dart'; class ActivityServiceMock extends Mock implements ActivityService {} -class MockAlbumActivity extends AlbumActivityInternal - with Mock - implements AlbumActivity { +class MockAlbumActivity extends AlbumActivityInternal with Mock implements AlbumActivity { List? initActivities; MockAlbumActivity([this.initActivities]); @@ -18,6 +16,4 @@ class MockAlbumActivity extends AlbumActivityInternal } } -class ActivityStatisticsMock extends ActivityStatisticsInternal - with Mock - implements ActivityStatistics {} +class ActivityStatisticsMock extends ActivityStatisticsInternal with Mock implements ActivityStatistics {} diff --git a/mobile/test/modules/activity/activity_provider_test.dart b/mobile/test/modules/activity/activity_provider_test.dart index a3b3e2466e..9bac84bab9 100644 --- a/mobile/test/modules/activity/activity_provider_test.dart +++ b/mobile/test/modules/activity/activity_provider_test.dart @@ -58,8 +58,7 @@ void main() { container = TestUtils.createContainer( overrides: [ activityServiceProvider.overrideWith((ref) => activityMock), - activityStatisticsProvider('test-album', 'test-asset') - .overrideWith(() => activityStatisticsMock), + activityStatisticsProvider('test-album', 'test-asset').overrideWith(() => activityStatisticsMock), ], ); @@ -90,8 +89,7 @@ void main() { [ isA>>(), predicate( - (AsyncData> ad) => - ad.requireValue.every((e) => _activities.contains(e)), + (AsyncData> ad) => ad.requireValue.every((e) => _activities.contains(e)), ), ], ), @@ -172,8 +170,7 @@ void main() { group('removeActivity()', () { test('Like successfully removed', () async { - when(() => activityMock.removeActivity('3')) - .thenAnswer((_) async => true); + when(() => activityMock.removeActivity('3')).thenAnswer((_) async => true); await container.read(provider.notifier).removeActivity('3'); @@ -192,8 +189,7 @@ void main() { }); test('Remove Like failed', () async { - when(() => activityMock.removeActivity('3')) - .thenAnswer((_) async => false); + when(() => activityMock.removeActivity('3')).thenAnswer((_) async => false); await container.read(provider.notifier).removeActivity('3'); @@ -206,8 +202,7 @@ void main() { }); test('Comment successfully removed', () async { - when(() => activityMock.removeActivity('1')) - .thenAnswer((_) async => true); + when(() => activityMock.removeActivity('1')).thenAnswer((_) async => true); await container.read(provider.notifier).removeActivity('1'); @@ -229,10 +224,8 @@ void main() { container = TestUtils.createContainer( overrides: [ activityServiceProvider.overrideWith((ref) => activityMock), - activityStatisticsProvider('test-album', 'test-asset') - .overrideWith(() => activityStatisticsMock), - activityStatisticsProvider('test-album') - .overrideWith(() => albumActivityStatisticsMock), + activityStatisticsProvider('test-album', 'test-asset').overrideWith(() => activityStatisticsMock), + activityStatisticsProvider('test-album').overrideWith(() => albumActivityStatisticsMock), ], ); }); @@ -255,8 +248,7 @@ void main() { comment: 'Test-Comment', ), ).thenAnswer((_) async => AsyncData(comment)); - when(() => activityStatisticsMock.build('test-album', 'test-asset')) - .thenReturn(4); + when(() => activityStatisticsMock.build('test-album', 'test-asset')).thenReturn(4); when(() => albumActivityStatisticsMock.build('test-album')).thenReturn(2); await container.read(provider.notifier).addComment('Test-Comment'); @@ -296,8 +288,7 @@ void main() { ), ).thenAnswer((_) async => AsyncData(comment)); when(() => albumActivityStatisticsMock.build('test-album')).thenReturn(2); - when(() => activityMock.getAllActivities('test-album')) - .thenAnswer((_) async => [..._activities]); + when(() => activityMock.getAllActivities('test-album')).thenAnswer((_) async => [..._activities]); final albumProvider = albumActivityProvider('test-album'); await container.read(albumProvider.notifier).addComment('Test-Comment'); diff --git a/mobile/test/modules/activity/activity_text_field_test.dart b/mobile/test/modules/activity/activity_text_field_test.dart index a124af0db9..e74099cdcd 100644 --- a/mobile/test/modules/activity/activity_text_field_test.dart +++ b/mobile/test/modules/activity/activity_text_field_test.dart @@ -44,8 +44,7 @@ void main() { activityMock = MockAlbumActivity(); overrides = [ currentAlbumProvider.overrideWith(() => mockCurrentAlbumProvider), - albumActivityProvider(AlbumStub.twoAsset.remoteId!) - .overrideWith(() => activityMock), + albumActivityProvider(AlbumStub.twoAsset.remoteId!).overrideWith(() => activityMock), ]; }); @@ -152,8 +151,7 @@ void main() { overrides: overrides, ); - when(() => activityMock.removeActivity(any())) - .thenAnswer((_) => Future.value()); + when(() => activityMock.removeActivity(any())).thenAnswer((_) => Future.value()); final suffixIcon = find.byType(IconButton); await tester.tap(suffixIcon); diff --git a/mobile/test/modules/activity/activity_tile_test.dart b/mobile/test/modules/activity/activity_tile_test.dart index 22dd606540..fddbb6269c 100644 --- a/mobile/test/modules/activity/activity_tile_test.dart +++ b/mobile/test/modules/activity/activity_tile_test.dart @@ -57,8 +57,7 @@ void main() { expect(find.byType(ListTile), findsOneWidget); }); - testWidgets('No trailing widget when activity assetId == null', - (tester) async { + testWidgets('No trailing widget when activity assetId == null', (tester) async { await tester.pumpConsumerWidget( ActivityTile( Activity( @@ -75,9 +74,7 @@ void main() { expect(listTile.trailing, isNull); }); - testWidgets( - 'Asset Thumbanil as trailing widget when activity assetId != null', - (tester) async { + testWidgets('Asset Thumbanil as trailing widget when activity assetId != null', (tester) async { await tester.pumpConsumerWidget( ActivityTile( Activity( @@ -176,8 +173,7 @@ void main() { user: UserStub.admin, ); - testWidgets('Comment contains User Circle Avatar as leading', - (tester) async { + testWidgets('Comment contains User Circle Avatar as leading', (tester) async { await tester.pumpConsumerWidget( ActivityTile(activity), overrides: overrides, diff --git a/mobile/test/modules/activity/dismissible_activity_test.dart b/mobile/test/modules/activity/dismissible_activity_test.dart index 7bfa400a37..8cc81a69cf 100644 --- a/mobile/test/modules/activity/dismissible_activity_test.dart +++ b/mobile/test/modules/activity/dismissible_activity_test.dart @@ -55,9 +55,7 @@ void main() { expect(find.byType(ConfirmDialog), findsOneWidget); }); - testWidgets( - 'Ok action in ConfirmDialog should call onDismiss with activityId', - (tester) async { + testWidgets('Ok action in ConfirmDialog should call onDismiss with activityId', (tester) async { String? receivedActivityId; await tester.pumpConsumerWidget( DismissibleActivity( diff --git a/mobile/test/modules/album/album_mocks.dart b/mobile/test/modules/album/album_mocks.dart index 147d7b4221..7a1b76e0c7 100644 --- a/mobile/test/modules/album/album_mocks.dart +++ b/mobile/test/modules/album/album_mocks.dart @@ -2,9 +2,7 @@ import 'package:immich_mobile/providers/album/current_album.provider.dart'; import 'package:immich_mobile/entities/album.entity.dart'; import 'package:mocktail/mocktail.dart'; -class MockCurrentAlbumProvider extends CurrentAlbum - with Mock - implements CurrentAlbumInternal { +class MockCurrentAlbumProvider extends CurrentAlbum with Mock implements CurrentAlbumInternal { Album? initAlbum; MockCurrentAlbumProvider([this.initAlbum]); diff --git a/mobile/test/modules/album/album_sort_by_options_provider_test.dart b/mobile/test/modules/album/album_sort_by_options_provider_test.dart index df59f03c56..bf3163f00d 100644 --- a/mobile/test/modules/album/album_sort_by_options_provider_test.dart +++ b/mobile/test/modules/album/album_sort_by_options_provider_test.dart @@ -261,9 +261,7 @@ void main() { }); test('Properly saves the correct store index of sort mode', () { - container - .read(albumSortByOptionsProvider.notifier) - .changeSortMode(AlbumSortMode.mostOldest); + container.read(albumSortByOptionsProvider.notifier).changeSortMode(AlbumSortMode.mostOldest); verify( () => settingsMock.setSetting( @@ -286,14 +284,10 @@ void main() { ); // Created -> Most Oldest - container - .read(albumSortByOptionsProvider.notifier) - .changeSortMode(AlbumSortMode.mostOldest); + container.read(albumSortByOptionsProvider.notifier).changeSortMode(AlbumSortMode.mostOldest); // Most Oldest -> Title - container - .read(albumSortByOptionsProvider.notifier) - .changeSortMode(AlbumSortMode.title); + container.read(albumSortByOptionsProvider.notifier).changeSortMode(AlbumSortMode.title); verifyInOrder([ () => listener.call(null, AlbumSortMode.created), @@ -368,9 +362,7 @@ void main() { container.read(albumSortOrderProvider.notifier).changeSortDirection(true); // true -> false - container - .read(albumSortOrderProvider.notifier) - .changeSortDirection(false); + container.read(albumSortOrderProvider.notifier).changeSortDirection(false); verifyInOrder([ () => listener.call(null, false), diff --git a/mobile/test/modules/asset_viewer/asset_viewer_mocks.dart b/mobile/test/modules/asset_viewer/asset_viewer_mocks.dart index f81f5a9a19..89b06d3c09 100644 --- a/mobile/test/modules/asset_viewer/asset_viewer_mocks.dart +++ b/mobile/test/modules/asset_viewer/asset_viewer_mocks.dart @@ -2,9 +2,7 @@ import 'package:immich_mobile/providers/asset_viewer/current_asset.provider.dart import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:mocktail/mocktail.dart'; -class MockCurrentAssetProvider extends CurrentAssetInternal - with Mock - implements CurrentAsset { +class MockCurrentAssetProvider extends CurrentAssetInternal with Mock implements CurrentAsset { Asset? initAsset; MockCurrentAssetProvider([this.initAsset]); diff --git a/mobile/test/modules/extensions/asset_extensions_test.dart b/mobile/test/modules/extensions/asset_extensions_test.dart index dd334c7b9d..a164b9ddce 100644 --- a/mobile/test/modules/extensions/asset_extensions_test.dart +++ b/mobile/test/modules/extensions/asset_extensions_test.dart @@ -76,8 +76,7 @@ void main() { expect(dateTimeInUTC.timeZoneOffset, tz); }); - test('Returns dateTimeOriginal in UTC from exifInfo with invalid timezone', - () { + test('Returns dateTimeOriginal in UTC from exifInfo with invalid timezone', () { final createdAt = DateTime.parse("2023-01-27T14:00:00-0500"); final dateTimeOriginal = DateTime.parse("2022-01-27T14:00:00+0530"); final e = makeExif( @@ -98,13 +97,11 @@ void main() { final createdAt = DateTime.parse("2023-01-27T14:00:00-0500"); final dateTimeOriginal = DateTime.parse("2022-01-27T14:00:00+0530"); const location = "Asia/Hong_Kong"; - final e = - makeExif(dateTimeOriginal: dateTimeOriginal, timeZone: location); + final e = makeExif(dateTimeOriginal: dateTimeOriginal, timeZone: location); final a = makeAsset(id: '1', createdAt: createdAt, exifInfo: e); final (dt, tz) = a.getTZAdjustedTimeAndOffset(); - final adjustedTime = - TZDateTime.from(dateTimeOriginal.toUtc(), getLocation(location)); + final adjustedTime = TZDateTime.from(dateTimeOriginal.toUtc(), getLocation(location)); expect(adjustedTime, dt); expect(adjustedTime.timeZoneOffset, tz); }); @@ -118,8 +115,7 @@ void main() { final (dt, tz) = a.getTZAdjustedTimeAndOffset(); final location = getLocation("Asia/Hong_Kong"); - final offsetFromLocation = - Duration(milliseconds: location.currentTimeZone.offset); + final offsetFromLocation = Duration(milliseconds: location.currentTimeZone.offset); final adjustedTime = dateTimeOriginal.toUtc().add(offsetFromLocation); // Adds the offset to the actual time and returns the offset separately diff --git a/mobile/test/modules/extensions/datetime_extensions_test.dart b/mobile/test/modules/extensions/datetime_extensions_test.dart index 412d946b1f..b1b1542fcd 100644 --- a/mobile/test/modules/extensions/datetime_extensions_test.dart +++ b/mobile/test/modules/extensions/datetime_extensions_test.dart @@ -25,24 +25,21 @@ void main() { test('returns date range format for this year', () { final startDate = DateTime(currentYear, 3, 23); // Mar 23 final endDate = DateTime(currentYear, 5, 31); // May 31 - final result = - DateRangeFormatting.formatDateRange(startDate, endDate, null); + final result = DateRangeFormatting.formatDateRange(startDate, endDate, null); expect(result, 'Mar 23 - May 31'); }); test('returns date range format for other year (same year)', () { final startDate = DateTime(2023, 8, 28); // Aug 28 final endDate = DateTime(2023, 9, 30); // Sep 30 - final result = - DateRangeFormatting.formatDateRange(startDate, endDate, null); + final result = DateRangeFormatting.formatDateRange(startDate, endDate, null); expect(result, 'Aug 28 - Sep 30, 2023'); }); test('returns date range format over multiple years', () { final startDate = DateTime(2021, 4, 17); // Apr 17, 2021 final endDate = DateTime(2022, 4, 9); // Apr 9, 2022 - final result = - DateRangeFormatting.formatDateRange(startDate, endDate, null); + final result = DateRangeFormatting.formatDateRange(startDate, endDate, null); expect(result, 'Apr 17, 2021 - Apr 9, 2022'); }); }); diff --git a/mobile/test/modules/map/map_mocks.dart b/mobile/test/modules/map/map_mocks.dart index cb525b2d17..959cad3da6 100644 --- a/mobile/test/modules/map/map_mocks.dart +++ b/mobile/test/modules/map/map_mocks.dart @@ -3,9 +3,7 @@ import 'package:immich_mobile/models/map/map_state.model.dart'; import 'package:immich_mobile/providers/map/map_state.provider.dart'; import 'package:mocktail/mocktail.dart'; -class MockMapStateNotifier extends Notifier - with Mock - implements MapStateNotifier { +class MockMapStateNotifier extends Notifier with Mock implements MapStateNotifier { final MapState initState; MockMapStateNotifier(this.initState); diff --git a/mobile/test/modules/map/map_theme_override_test.dart b/mobile/test/modules/map/map_theme_override_test.dart index 59f9b9e246..78fa6b0043 100644 --- a/mobile/test/modules/map/map_theme_override_test.dart +++ b/mobile/test/modules/map/map_theme_override_test.dart @@ -38,8 +38,7 @@ void main() { ]; }); - testWidgets("Return dark theme style when theme mode is dark", - (tester) async { + testWidgets("Return dark theme style when theme mode is dark", (tester) async { AsyncValue? mapStyle; await tester.pumpConsumerWidget( MapThemeOverride( @@ -51,8 +50,7 @@ void main() { overrides: overrides, ); - mapStateNotifier.state = - mapState.copyWith(darkStyleFetched: const AsyncData("dark")); + mapStateNotifier.state = mapState.copyWith(darkStyleFetched: const AsyncData("dark")); await tester.pumpAndSettle(); expect(mapStyle?.valueOrNull, "dark"); }); @@ -76,8 +74,7 @@ void main() { expect(mapStyle?.hasError, isTrue); }); - testWidgets("Return light theme style when theme mode is light", - (tester) async { + testWidgets("Return light theme style when theme mode is light", (tester) async { AsyncValue? mapStyle; await tester.pumpConsumerWidget( MapThemeOverride( @@ -110,8 +107,7 @@ void main() { overrides: overrides, ); - tester.binding.platformDispatcher.platformBrightnessTestValue = - Brightness.dark; + tester.binding.platformDispatcher.platformBrightnessTestValue = Brightness.dark; mapStateNotifier.state = mapState.copyWith( themeMode: ThemeMode.system, darkStyleFetched: const AsyncData("dark"), @@ -121,8 +117,7 @@ void main() { expect(mapStyle?.valueOrNull, "dark"); }); - testWidgets("Return light theme style when system is light", - (tester) async { + testWidgets("Return light theme style when system is light", (tester) async { AsyncValue? mapStyle; await tester.pumpConsumerWidget( MapThemeOverride( @@ -134,8 +129,7 @@ void main() { overrides: overrides, ); - tester.binding.platformDispatcher.platformBrightnessTestValue = - Brightness.light; + tester.binding.platformDispatcher.platformBrightnessTestValue = Brightness.light; mapStateNotifier.state = mapState.copyWith( themeMode: ThemeMode.system, lightStyleFetched: const AsyncData("light"), @@ -145,8 +139,7 @@ void main() { expect(mapStyle?.valueOrNull, "light"); }); - testWidgets("Switches style when system brightness changes", - (tester) async { + testWidgets("Switches style when system brightness changes", (tester) async { AsyncValue? mapStyle; await tester.pumpConsumerWidget( MapThemeOverride( @@ -158,8 +151,7 @@ void main() { overrides: overrides, ); - tester.binding.platformDispatcher.platformBrightnessTestValue = - Brightness.light; + tester.binding.platformDispatcher.platformBrightnessTestValue = Brightness.light; mapStateNotifier.state = mapState.copyWith( themeMode: ThemeMode.system, lightStyleFetched: const AsyncData("light"), @@ -168,8 +160,7 @@ void main() { await tester.pumpAndSettle(); expect(mapStyle?.valueOrNull, "light"); - tester.binding.platformDispatcher.platformBrightnessTestValue = - Brightness.dark; + tester.binding.platformDispatcher.platformBrightnessTestValue = Brightness.dark; await tester.pumpAndSettle(); expect(mapStyle?.valueOrNull, "dark"); }); diff --git a/mobile/test/modules/shared/shared_mocks.dart b/mobile/test/modules/shared/shared_mocks.dart index f50fde7040..790bbbd815 100644 --- a/mobile/test/modules/shared/shared_mocks.dart +++ b/mobile/test/modules/shared/shared_mocks.dart @@ -3,9 +3,7 @@ import 'package:immich_mobile/domain/models/user.model.dart'; import 'package:immich_mobile/providers/user.provider.dart'; import 'package:mocktail/mocktail.dart'; -class MockCurrentUserProvider extends StateNotifier - with Mock - implements CurrentUserProvider { +class MockCurrentUserProvider extends StateNotifier with Mock implements CurrentUserProvider { MockCurrentUserProvider() : super(null); @override diff --git a/mobile/test/modules/shared/sync_service_test.dart b/mobile/test/modules/shared/sync_service_test.dart index a78f65af67..2858e6a9e7 100644 --- a/mobile/test/modules/shared/sync_service_test.dart +++ b/mobile/test/modules/shared/sync_service_test.dart @@ -57,14 +57,11 @@ void main() { final MockExifInfoRepository exifInfoRepository = MockExifInfoRepository(); final MockIsarUserRepository userRepository = MockIsarUserRepository(); final MockETagRepository eTagRepository = MockETagRepository(); - final MockAlbumMediaRepository albumMediaRepository = - MockAlbumMediaRepository(); + final MockAlbumMediaRepository albumMediaRepository = MockAlbumMediaRepository(); final MockAlbumApiRepository albumApiRepository = MockAlbumApiRepository(); final MockAppSettingService appSettingService = MockAppSettingService(); - final MockLocalFilesManagerRepository localFilesManagerRepository = - MockLocalFilesManagerRepository(); - final MockPartnerApiRepository partnerApiRepository = - MockPartnerApiRepository(); + final MockLocalFilesManagerRepository localFilesManagerRepository = MockLocalFilesManagerRepository(); + final MockPartnerApiRepository partnerApiRepository = MockPartnerApiRepository(); final MockUserApiRepository userApiRepository = MockUserApiRepository(); final MockPartnerRepository partnerRepository = MockPartnerRepository(); final MockUserService userService = MockUserService(); @@ -115,13 +112,11 @@ void main() { userApiRepository, ); when(() => userService.getMyUser()).thenReturn(owner); - when(() => eTagRepository.get(owner.id)) - .thenAnswer((_) async => ETag(id: owner.id, time: DateTime.now())); + when(() => eTagRepository.get(owner.id)).thenAnswer((_) async => ETag(id: owner.id, time: DateTime.now())); when(() => eTagRepository.deleteByIds(["1"])).thenAnswer((_) async {}); when(() => eTagRepository.upsertAll(any())).thenAnswer((_) async {}); when(() => partnerRepository.getSharedWith()).thenAnswer((_) async => []); - when(() => userRepository.getAll(sortBy: SortUserBy.id)) - .thenAnswer((_) async => [owner]); + when(() => userRepository.getAll(sortBy: SortUserBy.id)).thenAnswer((_) async => [owner]); when(() => userRepository.getAll()).thenAnswer((_) async => [owner]); when( () => assetRepository.getAll( @@ -133,8 +128,7 @@ void main() { .thenAnswer((_) async => [initialAssets[3], null, null]); when(() => assetRepository.updateAll(any())).thenAnswer((_) async => []); when(() => assetRepository.deleteByIds(any())).thenAnswer((_) async {}); - when(() => exifInfoRepository.updateAll(any())) - .thenAnswer((_) async => []); + when(() => exifInfoRepository.updateAll(any())).thenAnswer((_) async => []); when(() => assetRepository.transaction(any())).thenAnswer( (call) => (call.positionalArguments.first as Function).call(), ); @@ -143,8 +137,7 @@ void main() { ); when(() => userApiRepository.getAll()).thenAnswer((_) async => [owner]); registerFallbackValue(Direction.sharedByMe); - when(() => partnerApiRepository.getAll(any())) - .thenAnswer((_) async => []); + when(() => partnerApiRepository.getAll(any())).thenAnswer((_) async => []); }); test('test inserting existing assets', () async { final List remoteAssets = [ @@ -178,8 +171,7 @@ void main() { expect(c1, isTrue); final updatedAsset = initialAssets[3].updatedCopy(remoteAssets[3]); verify( - () => assetRepository - .updateAll([remoteAssets[4], remoteAssets[5], updatedAsset]), + () => assetRepository.updateAll([remoteAssets[4], remoteAssets[5], updatedAsset]), ); }); @@ -244,8 +236,7 @@ void main() { return; }); when( - () => assetRepository - .getAllByRemoteId(["2-1", "1-1"], state: AssetState.merged), + () => assetRepository.getAllByRemoteId(["2-1", "1-1"], state: AssetState.merged), ).thenAnswer((_) async => [initialAssets[2]]); when(() => assetRepository.getAllByOwnerIdChecksum(any(), any())) .thenAnswer((_) async => [initialAssets[0], null, null]); //afg diff --git a/mobile/test/modules/utils/throttler_test.dart b/mobile/test/modules/utils/throttler_test.dart index 76d8bd2ad7..ba5d542fe6 100644 --- a/mobile/test/modules/utils/throttler_test.dart +++ b/mobile/test/modules/utils/throttler_test.dart @@ -14,8 +14,7 @@ class _Counter { } void main() { - test('Executes the method immediately if no calls received previously', - () async { + test('Executes the method immediately if no calls received previously', () async { var counter = _Counter(); final throttler = Throttler(interval: const Duration(milliseconds: 300)); throttler.run(() => counter.increment()); diff --git a/mobile/test/modules/utils/url_helper_test.dart b/mobile/test/modules/utils/url_helper_test.dart index 840ac91f1f..0e8a8e2aa0 100644 --- a/mobile/test/modules/utils/url_helper_test.dart +++ b/mobile/test/modules/utils/url_helper_test.dart @@ -28,9 +28,7 @@ void main() { expect(punycodeEncodeUrl(url), equals(expected)); }); - test( - 'should encode multi-segment Unicode host with multiple non-ASCII segments', - () { + test('should encode multi-segment Unicode host with multiple non-ASCII segments', () { const url = 'https://bücher.münchen'; const expected = 'https://xn--bcher-kva.xn--mnchen-3ya'; expect(punycodeEncodeUrl(url), equals(expected)); diff --git a/mobile/test/pages/search/search.page_test.dart b/mobile/test/pages/search/search.page_test.dart index fa7f037da5..1c1a410150 100644 --- a/mobile/test/pages/search/search.page_test.dart +++ b/mobile/test/pages/search/search.page_test.dart @@ -42,8 +42,7 @@ void main() { ]; }); - final emptyTextSearch = isA() - .having((s) => s.originalFileName, 'originalFileName', null); + final emptyTextSearch = isA().having((s) => s.originalFileName, 'originalFileName', null); testWidgets('contextual search with/without text', (tester) async { await tester.pumpConsumerWidget( @@ -111,8 +110,7 @@ void main() { expect( captured.first, - isA() - .having((s) => s.originalFileName, 'originalFileName', 'test'), + isA().having((s) => s.originalFileName, 'originalFileName', 'test'), ); await tester.enterText(searchField, ''); diff --git a/mobile/test/repository.mocks.dart b/mobile/test/repository.mocks.dart index 54a7e2d4a4..4b54ec4055 100644 --- a/mobile/test/repository.mocks.dart +++ b/mobile/test/repository.mocks.dart @@ -45,5 +45,4 @@ class MockPartnerRepository extends Mock implements PartnerRepository {} class MockPartnerApiRepository extends Mock implements PartnerApiRepository {} -class MockLocalFilesManagerRepository extends Mock - implements LocalFilesManagerRepository {} +class MockLocalFilesManagerRepository extends Mock implements LocalFilesManagerRepository {} diff --git a/mobile/test/services/album.service_test.dart b/mobile/test/services/album.service_test.dart index 443e37e75d..547b049593 100644 --- a/mobile/test/services/album.service_test.dart +++ b/mobile/test/services/album.service_test.dart @@ -54,28 +54,22 @@ void main() { group('refreshDeviceAlbums', () { test('empty selection with one album in db', () async { - when(() => backupRepository.getIdsBySelection(BackupSelection.exclude)) - .thenAnswer((_) async => []); - when(() => backupRepository.getIdsBySelection(BackupSelection.select)) - .thenAnswer((_) async => []); + when(() => backupRepository.getIdsBySelection(BackupSelection.exclude)).thenAnswer((_) async => []); + when(() => backupRepository.getIdsBySelection(BackupSelection.select)).thenAnswer((_) async => []); when(() => albumMediaRepository.getAll()).thenAnswer((_) async => []); when(() => albumRepository.count(local: true)).thenAnswer((_) async => 1); - when(() => syncService.removeAllLocalAlbumsAndAssets()) - .thenAnswer((_) async => true); + when(() => syncService.removeAllLocalAlbumsAndAssets()).thenAnswer((_) async => true); final result = await sut.refreshDeviceAlbums(); expect(result, false); verify(() => syncService.removeAllLocalAlbumsAndAssets()); }); test('one selected albums, two on device', () async { - when(() => backupRepository.getIdsBySelection(BackupSelection.exclude)) - .thenAnswer((_) async => []); + when(() => backupRepository.getIdsBySelection(BackupSelection.exclude)).thenAnswer((_) async => []); when(() => backupRepository.getIdsBySelection(BackupSelection.select)) .thenAnswer((_) async => [AlbumStub.oneAsset.localId!]); - when(() => albumMediaRepository.getAll()) - .thenAnswer((_) async => [AlbumStub.oneAsset, AlbumStub.twoAsset]); - when(() => syncService.syncLocalAlbumAssetsToDb(any(), any())) - .thenAnswer((_) async => true); + when(() => albumMediaRepository.getAll()).thenAnswer((_) async => [AlbumStub.oneAsset, AlbumStub.twoAsset]); + when(() => syncService.syncLocalAlbumAssetsToDb(any(), any())).thenAnswer((_) async => true); final result = await sut.refreshDeviceAlbums(); expect(result, true); verify( @@ -88,10 +82,8 @@ void main() { group('refreshRemoteAlbums', () { test('is working', () async { when(() => syncService.getUsersFromServer()).thenAnswer((_) async => []); - when(() => syncService.syncUsersFromServer(any())) - .thenAnswer((_) async => true); - when(() => albumApiRepository.getAll(shared: true)) - .thenAnswer((_) async => [AlbumStub.sharedWithUser]); + when(() => syncService.syncUsersFromServer(any())).thenAnswer((_) async => true); + when(() => albumApiRepository.getAll(shared: true)).thenAnswer((_) async => [AlbumStub.sharedWithUser]); when(() => albumApiRepository.getAll(shared: null)) .thenAnswer((_) async => [AlbumStub.oneAsset, AlbumStub.twoAsset]); @@ -142,8 +134,7 @@ void main() { () => albumRepository.create(AlbumStub.oneAsset), ).thenAnswer((_) async => AlbumStub.twoAsset); - final result = - await sut.createAlbum("name", [AssetStub.image1], [UserStub.user1]); + final result = await sut.createAlbum("name", [AssetStub.image1], [UserStub.user1]); expect(result, AlbumStub.twoAsset); verify( () => albumApiRepository.create( @@ -163,10 +154,7 @@ void main() { when( () => albumApiRepository.addAssets(AlbumStub.oneAsset.remoteId!, any()), ).thenAnswer( - (_) async => ( - added: [AssetStub.image2.remoteId!], - duplicates: [AssetStub.image1.remoteId!] - ), + (_) async => (added: [AssetStub.image2.remoteId!], duplicates: [AssetStub.image1.remoteId!]), ); when( () => albumRepository.get(AlbumStub.oneAsset.id), @@ -198,8 +186,7 @@ void main() { group('addAdditionalUserToAlbum', () { test('one added', () async { when( - () => - albumApiRepository.addUsers(AlbumStub.emptyAlbum.remoteId!, any()), + () => albumApiRepository.addUsers(AlbumStub.emptyAlbum.remoteId!, any()), ).thenAnswer( (_) async => AlbumStub.sharedWithUser, ); diff --git a/mobile/test/services/asset.service_test.dart b/mobile/test/services/asset.service_test.dart index 293e5ec76b..5077764f26 100644 --- a/mobile/test/services/asset.service_test.dart +++ b/mobile/test/services/asset.service_test.dart @@ -69,8 +69,7 @@ void main() { setUp(() { assetsApi = MockAssetsApi(); when(() => apiService.assetsApi).thenReturn(assetsApi); - when(() => assetsApi.updateAssets(any())) - .thenAnswer((_) async => Future.value()); + when(() => assetsApi.updateAssets(any())).thenAnswer((_) async => Future.value()); }); test("asset is updated with DateTime", () async { @@ -79,11 +78,9 @@ void main() { await sut.changeDateTime(assets, dateTime.toIso8601String()); verify(() => assetsApi.updateAssets(any())).called(1); - final upsertExifCallback = - verify(() => syncService.upsertAssetsWithExif(captureAny())); + final upsertExifCallback = verify(() => syncService.upsertAssetsWithExif(captureAny())); upsertExifCallback.called(1); - final receivedAssets = - upsertExifCallback.captured.firstOrNull as List? ?? []; + final receivedAssets = upsertExifCallback.captured.firstOrNull as List? ?? []; final receivedDatetime = receivedAssets.cast().map( (a) => a.exifInfo?.dateTimeOriginal ?? DateTime(0), ); @@ -96,14 +93,11 @@ void main() { await sut.changeLocation(assets, latLng); verify(() => assetsApi.updateAssets(any())).called(1); - final upsertExifCallback = - verify(() => syncService.upsertAssetsWithExif(captureAny())); + final upsertExifCallback = verify(() => syncService.upsertAssetsWithExif(captureAny())); upsertExifCallback.called(1); - final receivedAssets = - upsertExifCallback.captured.firstOrNull as List? ?? []; + final receivedAssets = upsertExifCallback.captured.firstOrNull as List? ?? []; final receivedCoords = receivedAssets.cast().map( - (a) => - LatLng(a.exifInfo?.latitude ?? 0, a.exifInfo?.longitude ?? 0), + (a) => LatLng(a.exifInfo?.latitude ?? 0, a.exifInfo?.longitude ?? 0), ); expect(receivedCoords.every((l) => l == latLng), isTrue); }); diff --git a/mobile/test/services/auth.service_test.dart b/mobile/test/services/auth.service_test.dart index 46ad8bbc4c..3e9a02a2a5 100644 --- a/mobile/test/services/auth.service_test.dart +++ b/mobile/test/services/auth.service_test.dart @@ -58,8 +58,7 @@ void main() { const testUrl = 'http://ip:2283'; const resolvedUrl = 'http://ip:2283/api'; - when(() => apiService.resolveAndSetEndpoint(testUrl)) - .thenAnswer((_) async => resolvedUrl); + when(() => apiService.resolveAndSetEndpoint(testUrl)).thenAnswer((_) async => resolvedUrl); when(() => apiService.setDeviceInfoHeader()).thenAnswer((_) async => {}); final result = await sut.validateServerUrl(testUrl); @@ -74,8 +73,7 @@ void main() { const testUrl = 'https://immich.domain.com'; const resolvedUrl = 'https://immich.domain.com/api'; - when(() => apiService.resolveAndSetEndpoint(testUrl)) - .thenAnswer((_) async => resolvedUrl); + when(() => apiService.resolveAndSetEndpoint(testUrl)).thenAnswer((_) async => resolvedUrl); when(() => apiService.setDeviceInfoHeader()).thenAnswer((_) async => {}); final result = await sut.validateServerUrl(testUrl); @@ -89,8 +87,7 @@ void main() { test('Should throw error on invalid URL', () async { const testUrl = 'invalid-url'; - when(() => apiService.resolveAndSetEndpoint(testUrl)) - .thenThrow(Exception('Invalid URL')); + when(() => apiService.resolveAndSetEndpoint(testUrl)).thenThrow(Exception('Invalid URL')); expect( () async => await sut.validateServerUrl(testUrl), @@ -104,8 +101,7 @@ void main() { test('Should throw error on unreachable server', () async { const testUrl = 'https://unreachable.server'; - when(() => apiService.resolveAndSetEndpoint(testUrl)) - .thenThrow(Exception('Server is not reachable')); + when(() => apiService.resolveAndSetEndpoint(testUrl)).thenThrow(Exception('Server is not reachable')); expect( () async => await sut.validateServerUrl(testUrl), @@ -121,8 +117,7 @@ void main() { test('Should logout user', () async { when(() => authApiRepository.logout()).thenAnswer((_) async => {}); when(() => backgroundSyncManager.cancel()).thenAnswer((_) async => {}); - when(() => authRepository.clearLocalData()) - .thenAnswer((_) => Future.value(null)); + when(() => authRepository.clearLocalData()).thenAnswer((_) => Future.value(null)); await sut.logout(); @@ -132,11 +127,9 @@ void main() { }); test('Should clear local data even on server error', () async { - when(() => authApiRepository.logout()) - .thenThrow(Exception('Server error')); + when(() => authApiRepository.logout()).thenThrow(Exception('Server error')); when(() => backgroundSyncManager.cancel()).thenAnswer((_) async => {}); - when(() => authRepository.clearLocalData()) - .thenAnswer((_) => Future.value(null)); + when(() => authRepository.clearLocalData()).thenAnswer((_) => Future.value(null)); await sut.logout(); @@ -148,13 +141,11 @@ void main() { group('setOpenApiServiceEndpoint', () { setUp(() { - when(() => networkService.getWifiName()) - .thenAnswer((_) async => 'TestWifi'); + when(() => networkService.getWifiName()).thenAnswer((_) async => 'TestWifi'); }); test('Should return null if auto endpoint switching is disabled', () async { - when(() => authRepository.getEndpointSwitchingFeature()) - .thenReturn((false)); + when(() => authRepository.getEndpointSwitchingFeature()).thenReturn((false)); final result = await sut.setOpenApiServiceEndpoint(); @@ -166,8 +157,7 @@ void main() { test('Should set local connection if wifi name matches', () async { when(() => authRepository.getEndpointSwitchingFeature()).thenReturn(true); when(() => authRepository.getPreferredWifiName()).thenReturn('TestWifi'); - when(() => authRepository.getLocalEndpoint()) - .thenReturn('http://local.endpoint'); + when(() => authRepository.getLocalEndpoint()).thenReturn('http://local.endpoint'); when(() => apiService.resolveAndSetEndpoint('http://local.endpoint')) .thenAnswer((_) async => 'http://local.endpoint'); @@ -178,14 +168,12 @@ void main() { verify(() => networkService.getWifiName()).called(1); verify(() => authRepository.getPreferredWifiName()).called(1); verify(() => authRepository.getLocalEndpoint()).called(1); - verify(() => apiService.resolveAndSetEndpoint('http://local.endpoint')) - .called(1); + verify(() => apiService.resolveAndSetEndpoint('http://local.endpoint')).called(1); }); test('Should set external endpoint if wifi name not matching', () async { when(() => authRepository.getEndpointSwitchingFeature()).thenReturn(true); - when(() => authRepository.getPreferredWifiName()) - .thenReturn('DifferentWifi'); + when(() => authRepository.getPreferredWifiName()).thenReturn('DifferentWifi'); when(() => authRepository.getExternalEndpointList()).thenReturn([ const AuxilaryEndpoint( url: 'https://external.endpoint', @@ -208,11 +196,9 @@ void main() { ).called(1); }); - test('Should set second external endpoint if the first throw any error', - () async { + test('Should set second external endpoint if the first throw any error', () async { when(() => authRepository.getEndpointSwitchingFeature()).thenReturn(true); - when(() => authRepository.getPreferredWifiName()) - .thenReturn('DifferentWifi'); + when(() => authRepository.getPreferredWifiName()).thenReturn('DifferentWifi'); when(() => authRepository.getExternalEndpointList()).thenReturn([ const AuxilaryEndpoint( url: 'https://external.endpoint', @@ -243,11 +229,9 @@ void main() { ).called(1); }); - test('Should set second external endpoint if the first throw ApiException', - () async { + test('Should set second external endpoint if the first throw ApiException', () async { when(() => authRepository.getEndpointSwitchingFeature()).thenReturn(true); - when(() => authRepository.getPreferredWifiName()) - .thenReturn('DifferentWifi'); + when(() => authRepository.getPreferredWifiName()).thenReturn('DifferentWifi'); when(() => authRepository.getExternalEndpointList()).thenReturn([ const AuxilaryEndpoint( url: 'https://external.endpoint', @@ -281,8 +265,7 @@ void main() { test('Should handle error when setting local connection', () async { when(() => authRepository.getEndpointSwitchingFeature()).thenReturn(true); when(() => authRepository.getPreferredWifiName()).thenReturn('TestWifi'); - when(() => authRepository.getLocalEndpoint()) - .thenReturn('http://local.endpoint'); + when(() => authRepository.getLocalEndpoint()).thenReturn('http://local.endpoint'); when(() => apiService.resolveAndSetEndpoint('http://local.endpoint')) .thenThrow(Exception('Local endpoint error')); @@ -293,14 +276,12 @@ void main() { verify(() => networkService.getWifiName()).called(1); verify(() => authRepository.getPreferredWifiName()).called(1); verify(() => authRepository.getLocalEndpoint()).called(1); - verify(() => apiService.resolveAndSetEndpoint('http://local.endpoint')) - .called(1); + verify(() => apiService.resolveAndSetEndpoint('http://local.endpoint')).called(1); }); test('Should handle error when setting external connection', () async { when(() => authRepository.getEndpointSwitchingFeature()).thenReturn(true); - when(() => authRepository.getPreferredWifiName()) - .thenReturn('DifferentWifi'); + when(() => authRepository.getPreferredWifiName()).thenReturn('DifferentWifi'); when(() => authRepository.getExternalEndpointList()).thenReturn([ const AuxilaryEndpoint( url: 'https://external.endpoint', diff --git a/mobile/test/services/entity.service_test.dart b/mobile/test/services/entity.service_test.dart index 1642be7fb3..7aab7f9428 100644 --- a/mobile/test/services/entity.service_test.dart +++ b/mobile/test/services/entity.service_test.dart @@ -21,8 +21,7 @@ void main() { }); group('fillAlbumWithDatabaseEntities', () { - test('remote album with owner, thumbnail, sharedUsers and assets', - () async { + test('remote album with owner, thumbnail, sharedUsers and assets', () async { final Album album = Album( name: "album-with-two-assets-and-two-users", localId: "album-with-two-assets-and-two-users-local", @@ -41,19 +40,14 @@ void main() { [User.fromDto(UserStub.admin), User.fromDto(UserStub.admin)], ); - when(() => userRepository.getByUserId(any())) - .thenAnswer((_) async => UserStub.admin); - when(() => userRepository.getByUserId(any())) - .thenAnswer((_) async => UserStub.admin); + when(() => userRepository.getByUserId(any())).thenAnswer((_) async => UserStub.admin); + when(() => userRepository.getByUserId(any())).thenAnswer((_) async => UserStub.admin); - when(() => assetRepository.getByRemoteId(AssetStub.image1.remoteId!)) - .thenAnswer((_) async => AssetStub.image1); + when(() => assetRepository.getByRemoteId(AssetStub.image1.remoteId!)).thenAnswer((_) async => AssetStub.image1); - when(() => userRepository.getByUserIds(any())) - .thenAnswer((_) async => [UserStub.user1, UserStub.user2]); + when(() => userRepository.getByUserIds(any())).thenAnswer((_) async => [UserStub.user1, UserStub.user2]); - when(() => assetRepository.getAllByRemoteId(any())) - .thenAnswer((_) async => [AssetStub.image1, AssetStub.image2]); + when(() => assetRepository.getAllByRemoteId(any())).thenAnswer((_) async => [AssetStub.image1, AssetStub.image2]); await sut.fillAlbumWithDatabaseEntities(album); expect(album.owner.value?.toDto(), UserStub.admin); diff --git a/mobile/test/services/hash_service_test.dart b/mobile/test/services/hash_service_test.dart index 2ba9c356a0..5360e30341 100644 --- a/mobile/test/services/hash_service_test.dart +++ b/mobile/test/services/hash_service_test.dart @@ -36,27 +36,22 @@ void main() { backgroundService: mockBackgroundService, ); - when(() => mockDeviceAssetRepository.transaction(any())) - .thenAnswer((_) async { + when(() => mockDeviceAssetRepository.transaction(any())).thenAnswer((_) async { final capturedCallback = verify( () => mockDeviceAssetRepository.transaction(captureAny()), ).captured; // Invoke the transaction callback await (capturedCallback.firstOrNull as Future Function()?)?.call(); }); - when(() => mockDeviceAssetRepository.updateAll(any())) - .thenAnswer((_) async => true); - when(() => mockDeviceAssetRepository.deleteIds(any())) - .thenAnswer((_) async => true); + when(() => mockDeviceAssetRepository.updateAll(any())).thenAnswer((_) async => true); + when(() => mockDeviceAssetRepository.deleteIds(any())).thenAnswer((_) async => true); }); group("HashService: No DeviceAsset entry", () { test("hash successfully", () async { - final (mockAsset, file, deviceAsset, hash) = - await _createAssetMock(AssetStub.image1); + final (mockAsset, file, deviceAsset, hash) = await _createAssetMock(AssetStub.image1); - when(() => mockBackgroundService.digestFiles([file.path])) - .thenAnswer((_) async => [hash]); + when(() => mockBackgroundService.digestFiles([file.path])).thenAnswer((_) async => [hash]); // No DB entries for this asset when( () => mockDeviceAssetRepository.getByIds([AssetStub.image1.localId!]), @@ -65,14 +60,12 @@ void main() { final result = await sut.hashAssets([mockAsset]); // Verify we stored the new hash in DB - when(() => mockDeviceAssetRepository.transaction(any())) - .thenAnswer((_) async { + when(() => mockDeviceAssetRepository.transaction(any())).thenAnswer((_) async { final capturedCallback = verify( () => mockDeviceAssetRepository.transaction(captureAny()), ).captured; // Invoke the transaction callback - await (capturedCallback.firstOrNull as Future Function()?) - ?.call(); + await (capturedCallback.firstOrNull as Future Function()?)?.call(); verify( () => mockDeviceAssetRepository.updateAll([ deviceAsset.copyWith(modifiedTime: AssetStub.image1.fileModifiedAt), @@ -115,25 +108,21 @@ void main() { }); test("hashed successful when asset is modified", () async { - final (mockAsset, file, deviceAsset, hash) = - await _createAssetMock(AssetStub.image1); + final (mockAsset, file, deviceAsset, hash) = await _createAssetMock(AssetStub.image1); - when(() => mockBackgroundService.digestFiles([file.path])) - .thenAnswer((_) async => [hash]); + when(() => mockBackgroundService.digestFiles([file.path])).thenAnswer((_) async => [hash]); when( () => mockDeviceAssetRepository.getByIds([AssetStub.image1.localId!]), ).thenAnswer((_) async => [deviceAsset]); final result = await sut.hashAssets([mockAsset]); - when(() => mockDeviceAssetRepository.transaction(any())) - .thenAnswer((_) async { + when(() => mockDeviceAssetRepository.transaction(any())).thenAnswer((_) async { final capturedCallback = verify( () => mockDeviceAssetRepository.transaction(captureAny()), ).captured; // Invoke the transaction callback - await (capturedCallback.firstOrNull as Future Function()?) - ?.call(); + await (capturedCallback.firstOrNull as Future Function()?)?.call(); verify( () => mockDeviceAssetRepository.updateAll([ deviceAsset.copyWith(modifiedTime: AssetStub.image1.fileModifiedAt), @@ -157,11 +146,9 @@ void main() { late File file; setUp(() async { - (mockAsset, file, deviceAsset, hash) = - await _createAssetMock(AssetStub.image1); + (mockAsset, file, deviceAsset, hash) = await _createAssetMock(AssetStub.image1); - when(() => mockBackgroundService.digestFiles([file.path])) - .thenAnswer((_) async => [hash]); + when(() => mockBackgroundService.digestFiles([file.path])).thenAnswer((_) async => [hash]); when( () => mockDeviceAssetRepository.getByIds([AssetStub.image1.localId!]), ).thenAnswer((_) async => [deviceAsset]); @@ -182,14 +169,12 @@ void main() { }); test("cleanups DeviceAsset when hashing failed", () async { - when(() => mockDeviceAssetRepository.transaction(any())) - .thenAnswer((_) async { + when(() => mockDeviceAssetRepository.transaction(any())).thenAnswer((_) async { final capturedCallback = verify( () => mockDeviceAssetRepository.transaction(captureAny()), ).captured; // Invoke the transaction callback - await (capturedCallback.firstOrNull as Future Function()?) - ?.call(); + await (capturedCallback.firstOrNull as Future Function()?)?.call(); // Verify the callback inside the transaction because, doing it outside results // in a small delay before the callback is invoked, resulting in other LOCs getting executed @@ -210,8 +195,7 @@ void main() { // and verify the results inside the transaction stub verify(() => mockDeviceAssetRepository.updateAll([])).called(1); verify( - () => - mockDeviceAssetRepository.deleteIds([AssetStub.image1.localId!]), + () => mockDeviceAssetRepository.deleteIds([AssetStub.image1.localId!]), ).called(1); }); @@ -240,14 +224,11 @@ void main() { final (asset2, file2, deviceAsset2, hash2) = mock2; final (asset3, file3, deviceAsset3, hash3) = mock3; - when(() => mockDeviceAssetRepository.getByIds(any())) - .thenAnswer((_) async => []); + when(() => mockDeviceAssetRepository.getByIds(any())).thenAnswer((_) async => []); // Setup for multiple batch processing calls - when(() => mockBackgroundService.digestFiles([file1.path, file2.path])) - .thenAnswer((_) async => [hash1, hash2]); - when(() => mockBackgroundService.digestFiles([file3.path])) - .thenAnswer((_) async => [hash3]); + when(() => mockBackgroundService.digestFiles([file1.path, file2.path])).thenAnswer((_) async => [hash1, hash2]); + when(() => mockBackgroundService.digestFiles([file3.path])).thenAnswer((_) async => [hash3]); final size = await file1.length() + await file2.length(); @@ -259,8 +240,7 @@ void main() { final result = await sut.hashAssets([asset1, asset2, asset3]); // Verify multiple batch process calls - verify(() => mockBackgroundService.digestFiles([file1.path, file2.path])) - .called(1); + verify(() => mockBackgroundService.digestFiles([file1.path, file2.path])).called(1); verify(() => mockBackgroundService.digestFiles([file3.path])).called(1); expect( @@ -285,15 +265,11 @@ void main() { final (asset2, file2, deviceAsset2, hash2) = mock2; final (asset3, file3, deviceAsset3, hash3) = mock3; - when(() => mockDeviceAssetRepository.getByIds(any())) - .thenAnswer((_) async => []); + when(() => mockDeviceAssetRepository.getByIds(any())).thenAnswer((_) async => []); - when(() => mockBackgroundService.digestFiles([file1.path])) - .thenAnswer((_) async => [hash1]); - when(() => mockBackgroundService.digestFiles([file2.path])) - .thenAnswer((_) async => [hash2]); - when(() => mockBackgroundService.digestFiles([file3.path])) - .thenAnswer((_) async => [hash3]); + when(() => mockBackgroundService.digestFiles([file1.path])).thenAnswer((_) async => [hash1]); + when(() => mockBackgroundService.digestFiles([file2.path])).thenAnswer((_) async => [hash2]); + when(() => mockBackgroundService.digestFiles([file3.path])).thenAnswer((_) async => [hash3]); sut = HashService( deviceAssetRepository: mockDeviceAssetRepository, @@ -318,17 +294,12 @@ void main() { }); test("HashService: Sort & Process different states", () async { - final (asset1, file1, deviceAsset1, hash1) = - await _createAssetMock(AssetStub.image1); // Will need rehashing - final (asset2, file2, deviceAsset2, hash2) = - await _createAssetMock(AssetStub.image2); // Will have matching hash - final (asset3, file3, deviceAsset3, hash3) = - await _createAssetMock(AssetStub.image3); // No DB entry - final asset4 = - AssetStub.image3.copyWith(localId: "image4"); // Cannot be hashed + final (asset1, file1, deviceAsset1, hash1) = await _createAssetMock(AssetStub.image1); // Will need rehashing + final (asset2, file2, deviceAsset2, hash2) = await _createAssetMock(AssetStub.image2); // Will have matching hash + final (asset3, file3, deviceAsset3, hash3) = await _createAssetMock(AssetStub.image3); // No DB entry + final asset4 = AssetStub.image3.copyWith(localId: "image4"); // Cannot be hashed - when(() => mockBackgroundService.digestFiles([file1.path, file3.path])) - .thenAnswer((_) async => [hash1, hash3]); + when(() => mockBackgroundService.digestFiles([file1.path, file3.path])).thenAnswer((_) async => [hash1, hash3]); // DB entries are not sorted and a dummy entry added when( () => mockDeviceAssetRepository.getByIds([ @@ -349,8 +320,7 @@ void main() { final result = await sut.hashAssets([asset1, asset2, asset3, asset4]); // Verify correct processing of all assets - verify(() => mockBackgroundService.digestFiles([file1.path, file3.path])) - .called(1); + verify(() => mockBackgroundService.digestFiles([file1.path, file3.path])).called(1); expect(result.length, 3); expect(result, [ AssetStub.image2.copyWith(checksum: base64.encode(hash2)), @@ -361,8 +331,7 @@ void main() { group("HashService: Edge cases", () { test("handles empty list of assets", () async { - when(() => mockDeviceAssetRepository.getByIds(any())) - .thenAnswer((_) async => []); + when(() => mockDeviceAssetRepository.getByIds(any())).thenAnswer((_) async => []); final result = await sut.hashAssets([]); @@ -398,8 +367,7 @@ Future<(Asset, File, DeviceAsset, Uint8List)> _createAssetMock( Asset asset, ) async { final random = Random(); - final hash = - Uint8List.fromList(List.generate(20, (i) => random.nextInt(255))); + final hash = Uint8List.fromList(List.generate(20, (i) => random.nextInt(255))); final mockAsset = MockAsset(); final mockAssetEntity = MockAssetEntity(); final fs = MemoryFileSystem(); diff --git a/mobile/test/test_utils/medium_factory.dart b/mobile/test/test_utils/medium_factory.dart index 8dafc564c1..19ad7166c6 100644 --- a/mobile/test/test_utils/medium_factory.dart +++ b/mobile/test/test_utils/medium_factory.dart @@ -25,10 +25,8 @@ class MediumFactory { name: name ?? 'Asset ${random.nextInt(1000000)}', checksum: checksum ?? '${random.nextInt(1000000)}', type: type ?? AssetType.image, - createdAt: createdAt ?? - DateTime.fromMillisecondsSinceEpoch(random.nextInt(1000000000)), - updatedAt: updatedAt ?? - DateTime.fromMillisecondsSinceEpoch(random.nextInt(1000000000)), + createdAt: createdAt ?? DateTime.fromMillisecondsSinceEpoch(random.nextInt(1000000000)), + updatedAt: updatedAt ?? DateTime.fromMillisecondsSinceEpoch(random.nextInt(1000000000)), ); } @@ -45,8 +43,7 @@ class MediumFactory { return LocalAlbum( id: id ?? '${random.nextInt(1000000)}', name: name ?? 'Album ${random.nextInt(1000000)}', - updatedAt: updatedAt ?? - DateTime.fromMillisecondsSinceEpoch(random.nextInt(1000000000)), + updatedAt: updatedAt ?? DateTime.fromMillisecondsSinceEpoch(random.nextInt(1000000000)), assetCount: assetCount ?? random.nextInt(100), backupSelection: backupSelection ?? BackupSelection.none, isIosSharedAlbum: isIosSharedAlbum ?? false,