1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2024-12-29 15:11:58 +00:00

refactor(mobile): entities and models (#9182)

* refactor(mobile): entities

* store entity

* refactor: models

* remove domain

* save all

* bad refactor
This commit is contained in:
Alex 2024-04-30 21:36:40 -05:00 committed by GitHub
parent eba42b245d
commit f057fe045e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
237 changed files with 431 additions and 421 deletions

View file

@ -3,7 +3,7 @@ import 'dart:async';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:integration_test/integration_test.dart'; import 'package:integration_test/integration_test.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';

View file

@ -0,0 +1 @@
This directory contains entity that is stored in the local storage.

View file

@ -1,13 +1,13 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/utils/datetime_comparison.dart'; import 'package:immich_mobile/utils/datetime_comparison.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';
import 'package:photo_manager/photo_manager.dart'; import 'package:photo_manager/photo_manager.dart';
part 'album.g.dart'; part 'album.entity.g.dart';
@Collection(inheritance: false) @Collection(inheritance: false)
class Album { class Album {

View file

@ -1,7 +1,7 @@
import 'package:immich_mobile/shared/models/device_asset.dart'; import 'package:immich_mobile/entities/device_asset.entity.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
part 'android_device_asset.g.dart'; part 'android_device_asset.entity.g.dart';
@Collection() @Collection()
class AndroidDeviceAsset extends DeviceAsset { class AndroidDeviceAsset extends DeviceAsset {

View file

@ -1,7 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:immich_mobile/shared/models/exif_info.dart'; import 'package:immich_mobile/entities/exif_info.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';
@ -9,7 +9,7 @@ import 'package:photo_manager/photo_manager.dart';
import 'package:immich_mobile/extensions/string_extensions.dart'; import 'package:immich_mobile/extensions/string_extensions.dart';
import 'package:path/path.dart' as p; import 'package:path/path.dart' as p;
part 'asset.g.dart'; part 'asset.entity.g.dart';
/// Asset (online or local) /// Asset (online or local)
@Collection(inheritance: false) @Collection(inheritance: false)
@ -432,7 +432,10 @@ class Asset {
return compareByChecksum(a, b); return compareByChecksum(a, b);
} }
static int compareByOwnerChecksumCreatedModified(Asset a, Asset b) { static int compareByOwnerChecksumCreatedModified(
Asset a,
Asset b,
) {
final int ownerIdOrder = a.ownerId.compareTo(b.ownerId); final int ownerIdOrder = a.ownerId.compareTo(b.ownerId);
if (ownerIdOrder != 0) return ownerIdOrder; if (ownerIdOrder != 0) return ownerIdOrder;
final int checksumOrder = compareByChecksum(a, b); final int checksumOrder = compareByChecksum(a, b);
@ -517,9 +520,13 @@ extension AssetsHelper on IsarCollection<Asset> {
Future<Asset?> getByRemoteId(String id) => Future<Asset?> getByRemoteId(String id) =>
where().remoteIdEqualTo(id).findFirst(); where().remoteIdEqualTo(id).findFirst();
QueryBuilder<Asset, Asset, QAfterWhereClause> remote(Iterable<String> ids) => QueryBuilder<Asset, Asset, QAfterWhereClause> remote(
Iterable<String> ids,
) =>
where().anyOf(ids, (q, String e) => q.remoteIdEqualTo(e)); where().anyOf(ids, (q, String e) => q.remoteIdEqualTo(e));
QueryBuilder<Asset, Asset, QAfterWhereClause> local(Iterable<String> ids) { QueryBuilder<Asset, Asset, QAfterWhereClause> local(
Iterable<String> ids,
) {
return where().anyOf(ids, (q, String e) => q.localIdEqualTo(e)); return where().anyOf(ids, (q, String e) => q.localIdEqualTo(e));
} }
} }

View file

@ -1,7 +1,7 @@
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
part 'backup_album.model.g.dart'; part 'backup_album.entity.g.dart';
@Collection(inheritance: false) @Collection(inheritance: false)
class BackupAlbum { class BackupAlbum {

View file

@ -1,7 +1,7 @@
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
part 'duplicated_asset.model.g.dart'; part 'duplicated_asset.entity.g.dart';
@Collection(inheritance: false) @Collection(inheritance: false)
class DuplicatedAsset { class DuplicatedAsset {

View file

@ -1,7 +1,7 @@
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
part 'etag.g.dart'; part 'etag.entity.g.dart';
@Collection(inheritance: false) @Collection(inheritance: false)
class ETag { class ETag {

View file

@ -1,7 +1,7 @@
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';
part 'exif_info.g.dart'; part 'exif_info.entity.g.dart';
/// Exif information 1:1 relation with Asset /// Exif information 1:1 relation with Asset
@Collection(inheritance: false) @Collection(inheritance: false)

View file

@ -1,8 +1,8 @@
import 'package:immich_mobile/shared/models/device_asset.dart'; import 'package:immich_mobile/entities/device_asset.entity.dart';
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
part 'ios_device_asset.g.dart'; part 'ios_device_asset.entity.g.dart';
@Collection() @Collection()
class IOSDeviceAsset extends DeviceAsset { class IOSDeviceAsset extends DeviceAsset {

View file

@ -3,7 +3,7 @@
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
part 'logger_message.model.g.dart'; part 'logger_message.entity.g.dart';
@Collection(inheritance: false) @Collection(inheritance: false)
class LoggerMessage { class LoggerMessage {

View file

@ -1,9 +1,9 @@
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
part 'store.g.dart'; part 'store.entity.g.dart';
/// Key-value store for individual items enumerated in StoreKey. /// Key-value store for individual items enumerated in StoreKey.
/// Supports String, int and JSON-serializable Objects /// Supports String, int and JSON-serializable Objects

View file

@ -1,11 +1,11 @@
import 'dart:ui'; import 'dart:ui';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';
part 'user.g.dart'; part 'user.entity.g.dart';
@Collection(inheritance: false) @Collection(inheritance: false)
class User { class User {

View file

@ -1,4 +1,4 @@
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:timezone/timezone.dart'; import 'package:timezone/timezone.dart';
extension TZExtension on Asset { extension TZExtension on Asset {

View file

@ -1,8 +1,8 @@
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
extension ListExtension<E> on List<E> { extension ListExtension<E> on List<E> {
List<E> uniqueConsecutive({ List<E> uniqueConsecutive({

View file

@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:math'; import 'dart:math';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:immich_mobile/modules/map/models/map_marker.dart'; import 'package:immich_mobile/models/map/map_marker.model.dart';
import 'package:immich_mobile/modules/map/utils/map_utils.dart'; import 'package:immich_mobile/modules/map/utils/map_utils.dart';
import 'package:maplibre_gl/maplibre_gl.dart'; import 'package:maplibre_gl/maplibre_gl.dart';

View file

@ -12,20 +12,20 @@ import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:timezone/data/latest.dart'; import 'package:timezone/data/latest.dart';
import 'package:immich_mobile/constants/locales.dart'; import 'package:immich_mobile/constants/locales.dart';
import 'package:immich_mobile/modules/backup/background_service/background.service.dart'; import 'package:immich_mobile/modules/backup/background_service/background.service.dart';
import 'package:immich_mobile/modules/backup/models/backup_album.model.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart';
import 'package:immich_mobile/modules/backup/models/duplicated_asset.model.dart'; import 'package:immich_mobile/entities/duplicated_asset.entity.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/routing/tab_navigation_observer.dart'; import 'package:immich_mobile/routing/tab_navigation_observer.dart';
import 'package:immich_mobile/shared/cache/widgets_binding.dart'; import 'package:immich_mobile/shared/cache/widgets_binding.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/android_device_asset.dart'; import 'package:immich_mobile/entities/android_device_asset.entity.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/etag.dart'; import 'package:immich_mobile/entities/etag.entity.dart';
import 'package:immich_mobile/shared/models/exif_info.dart'; import 'package:immich_mobile/entities/exif_info.entity.dart';
import 'package:immich_mobile/shared/models/ios_device_asset.dart'; import 'package:immich_mobile/entities/ios_device_asset.entity.dart';
import 'package:immich_mobile/shared/models/logger_message.model.dart'; import 'package:immich_mobile/entities/logger_message.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/providers/app_state.provider.dart'; import 'package:immich_mobile/shared/providers/app_state.provider.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:immich_mobile/shared/services/immich_logger.service.dart'; import 'package:immich_mobile/shared/services/immich_logger.service.dart';

View file

@ -1,4 +1,4 @@
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';
enum ActivityType { comment, like } enum ActivityType { comment, like }

View file

@ -3,20 +3,20 @@ import 'dart:convert';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
class AddAssetsResponse { class AlbumAddAssetsResponse {
List<String> alreadyInAlbum; List<String> alreadyInAlbum;
int successfullyAdded; int successfullyAdded;
AddAssetsResponse({ AlbumAddAssetsResponse({
required this.alreadyInAlbum, required this.alreadyInAlbum,
required this.successfullyAdded, required this.successfullyAdded,
}); });
AddAssetsResponse copyWith({ AlbumAddAssetsResponse copyWith({
List<String>? alreadyInAlbum, List<String>? alreadyInAlbum,
int? successfullyAdded, int? successfullyAdded,
}) { }) {
return AddAssetsResponse( return AlbumAddAssetsResponse(
alreadyInAlbum: alreadyInAlbum ?? this.alreadyInAlbum, alreadyInAlbum: alreadyInAlbum ?? this.alreadyInAlbum,
successfullyAdded: successfullyAdded ?? this.successfullyAdded, successfullyAdded: successfullyAdded ?? this.successfullyAdded,
); );
@ -36,7 +36,7 @@ class AddAssetsResponse {
'AddAssetsResponse(alreadyInAlbum: $alreadyInAlbum, successfullyAdded: $successfullyAdded)'; 'AddAssetsResponse(alreadyInAlbum: $alreadyInAlbum, successfullyAdded: $successfullyAdded)';
@override @override
bool operator ==(covariant AddAssetsResponse other) { bool operator ==(covariant AlbumAddAssetsResponse other) {
if (identical(this, other)) return true; if (identical(this, other)) return true;
final listEquals = const DeepCollectionEquality().equals; final listEquals = const DeepCollectionEquality().equals;

View file

@ -1,5 +1,5 @@
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
class AssetSelectionPageResult { class AssetSelectionPageResult {
final Set<Asset> selectedAssets; final Set<Asset> selectedAssets;

View file

@ -1,25 +1,25 @@
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
class SelectionAssetState { class AssetSelectionState {
final bool hasRemote; final bool hasRemote;
final bool hasLocal; final bool hasLocal;
final bool hasMerged; final bool hasMerged;
final int selectedCount; final int selectedCount;
const SelectionAssetState({ const AssetSelectionState({
this.hasRemote = false, this.hasRemote = false,
this.hasLocal = false, this.hasLocal = false,
this.hasMerged = false, this.hasMerged = false,
this.selectedCount = 0, this.selectedCount = 0,
}); });
SelectionAssetState copyWith({ AssetSelectionState copyWith({
bool? hasRemote, bool? hasRemote,
bool? hasLocal, bool? hasLocal,
bool? hasMerged, bool? hasMerged,
int? selectedCount, int? selectedCount,
}) { }) {
return SelectionAssetState( return AssetSelectionState(
hasRemote: hasRemote ?? this.hasRemote, hasRemote: hasRemote ?? this.hasRemote,
hasLocal: hasLocal ?? this.hasLocal, hasLocal: hasLocal ?? this.hasLocal,
hasMerged: hasMerged ?? this.hasMerged, hasMerged: hasMerged ?? this.hasMerged,
@ -27,7 +27,7 @@ class SelectionAssetState {
); );
} }
SelectionAssetState.fromSelection(Set<Asset> selection) AssetSelectionState.fromSelection(Set<Asset> selection)
: hasLocal = selection.any((e) => e.storage == AssetState.local), : hasLocal = selection.any((e) => e.storage == AssetState.local),
hasMerged = selection.any((e) => e.storage == AssetState.merged), hasMerged = selection.any((e) => e.storage == AssetState.merged),
hasRemote = selection.any((e) => e.storage == AssetState.remote), hasRemote = selection.any((e) => e.storage == AssetState.remote),
@ -38,7 +38,7 @@ class SelectionAssetState {
'SelectionAssetState(hasRemote: $hasRemote, hasMerged: $hasMerged, hasMerged: $hasMerged, selectedCount: $selectedCount)'; 'SelectionAssetState(hasRemote: $hasRemote, hasMerged: $hasMerged, hasMerged: $hasMerged, selectedCount: $selectedCount)';
@override @override
bool operator ==(covariant SelectionAssetState other) { bool operator ==(covariant AssetSelectionState other) {
if (identical(this, other)) return true; if (identical(this, other)) return true;
return other.hasRemote == hasRemote && return other.hasRemote == hasRemote &&

View file

@ -2,18 +2,18 @@ import 'dart:convert';
enum DownloadAssetStatus { idle, loading, success, error } enum DownloadAssetStatus { idle, loading, success, error }
class ImageViewerPageState { class AssetViewerPageState {
// enum // enum
final DownloadAssetStatus downloadAssetStatus; final DownloadAssetStatus downloadAssetStatus;
ImageViewerPageState({ AssetViewerPageState({
required this.downloadAssetStatus, required this.downloadAssetStatus,
}); });
ImageViewerPageState copyWith({ AssetViewerPageState copyWith({
DownloadAssetStatus? downloadAssetStatus, DownloadAssetStatus? downloadAssetStatus,
}) { }) {
return ImageViewerPageState( return AssetViewerPageState(
downloadAssetStatus: downloadAssetStatus ?? this.downloadAssetStatus, downloadAssetStatus: downloadAssetStatus ?? this.downloadAssetStatus,
); );
} }
@ -26,8 +26,8 @@ class ImageViewerPageState {
return result; return result;
} }
factory ImageViewerPageState.fromMap(Map<String, dynamic> map) { factory AssetViewerPageState.fromMap(Map<String, dynamic> map) {
return ImageViewerPageState( return AssetViewerPageState(
downloadAssetStatus: downloadAssetStatus:
DownloadAssetStatus.values[map['downloadAssetStatus'] ?? 0], DownloadAssetStatus.values[map['downloadAssetStatus'] ?? 0],
); );
@ -35,8 +35,8 @@ class ImageViewerPageState {
String toJson() => json.encode(toMap()); String toJson() => json.encode(toMap());
factory ImageViewerPageState.fromJson(String source) => factory AssetViewerPageState.fromJson(String source) =>
ImageViewerPageState.fromMap(json.decode(source)); AssetViewerPageState.fromMap(json.decode(source));
@override @override
String toString() => String toString() =>
@ -46,7 +46,7 @@ class ImageViewerPageState {
bool operator ==(Object other) { bool operator ==(Object other) {
if (identical(this, other)) return true; if (identical(this, other)) return true;
return other is ImageViewerPageState && return other is AssetViewerPageState &&
other.downloadAssetStatus == downloadAssetStatus; other.downloadAssetStatus == downloadAssetStatus;
} }

View file

@ -4,9 +4,9 @@ import 'package:cancellation_token_http/http.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:photo_manager/photo_manager.dart'; import 'package:photo_manager/photo_manager.dart';
import 'package:immich_mobile/modules/backup/models/available_album.model.dart'; import 'package:immich_mobile/models/backup/available_album.model.dart';
import 'package:immich_mobile/modules/backup/models/current_upload_asset.model.dart'; import 'package:immich_mobile/models/backup/current_upload_asset.model.dart';
import 'package:immich_mobile/shared/models/server_info/server_disk_info.model.dart'; import 'package:immich_mobile/models/server_info/server_disk_info.model.dart';
enum BackUpProgressEnum { enum BackUpProgressEnum {
idle, idle,

View file

@ -1,7 +1,7 @@
import 'package:cancellation_token_http/http.dart'; import 'package:cancellation_token_http/http.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:immich_mobile/modules/backup/models/current_upload_asset.model.dart'; import 'package:immich_mobile/models/backup/current_upload_asset.model.dart';
class ManualUploadState { class ManualUploadState {
final CancellationToken cancelToken; final CancellationToken cancelToken;

View file

@ -2,7 +2,7 @@
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
class Memory { class Memory {
final String title; final String title;

View file

@ -4,23 +4,23 @@ import 'dart:convert';
/// A wrapper for [CuratedLocationsResponseDto] objects /// A wrapper for [CuratedLocationsResponseDto] objects
/// and [CuratedObjectsResponseDto] to be displayed in /// and [CuratedObjectsResponseDto] to be displayed in
/// a view /// a view
class CuratedContent { class SearchCuratedContent {
/// The label to show associated with this curated object /// The label to show associated with this curated object
final String label; final String label;
/// The id to lookup the asset from the server /// The id to lookup the asset from the server
final String id; final String id;
CuratedContent({ SearchCuratedContent({
required this.label, required this.label,
required this.id, required this.id,
}); });
CuratedContent copyWith({ SearchCuratedContent copyWith({
String? label, String? label,
String? id, String? id,
}) { }) {
return CuratedContent( return SearchCuratedContent(
label: label ?? this.label, label: label ?? this.label,
id: id ?? this.id, id: id ?? this.id,
); );
@ -33,8 +33,8 @@ class CuratedContent {
}; };
} }
factory CuratedContent.fromMap(Map<String, dynamic> map) { factory SearchCuratedContent.fromMap(Map<String, dynamic> map) {
return CuratedContent( return SearchCuratedContent(
label: map['label'] as String, label: map['label'] as String,
id: map['id'] as String, id: map['id'] as String,
); );
@ -42,14 +42,14 @@ class CuratedContent {
String toJson() => json.encode(toMap()); String toJson() => json.encode(toMap());
factory CuratedContent.fromJson(String source) => factory SearchCuratedContent.fromJson(String source) =>
CuratedContent.fromMap(json.decode(source) as Map<String, dynamic>); SearchCuratedContent.fromMap(json.decode(source) as Map<String, dynamic>);
@override @override
String toString() => 'CuratedContent(label: $label, id: $id)'; String toString() => 'CuratedContent(label: $label, id: $id)';
@override @override
bool operator ==(covariant CuratedContent other) { bool operator ==(covariant SearchCuratedContent other) {
if (identical(this, other)) return true; if (identical(this, other)) return true;
return other.label == label && other.id == id; return other.label == label && other.id == id;

View file

@ -1,7 +1,7 @@
// ignore_for_file: public_member_api_docs, sort_constructors_first // ignore_for_file: public_member_api_docs, sort_constructors_first
import 'dart:convert'; import 'dart:convert';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';
class SearchLocationFilter { class SearchLocationFilter {

View file

@ -1,5 +1,5 @@
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
class SearchResultPageState { class SearchResultPageState {
final bool isLoading; final bool isLoading;

View file

@ -1,7 +1,7 @@
import 'package:immich_mobile/shared/models/server_info/server_config.model.dart'; import 'package:immich_mobile/models/server_info/server_config.model.dart';
import 'package:immich_mobile/shared/models/server_info/server_disk_info.model.dart'; import 'package:immich_mobile/models/server_info/server_disk_info.model.dart';
import 'package:immich_mobile/shared/models/server_info/server_features.model.dart'; import 'package:immich_mobile/models/server_info/server_features.model.dart';
import 'package:immich_mobile/shared/models/server_info/server_version.model.dart'; import 'package:immich_mobile/models/server_info/server_version.model.dart';
class ServerInfo { class ServerInfo {
final ServerVersion serverVersion; final ServerVersion serverVersion;

View file

@ -1,4 +1,4 @@
import 'package:immich_mobile/modules/activities/models/activity.model.dart'; import 'package:immich_mobile/models/activities/activity.model.dart';
import 'package:immich_mobile/modules/activities/providers/activity_service.provider.dart'; import 'package:immich_mobile/modules/activities/providers/activity_service.provider.dart';
import 'package:immich_mobile/modules/activities/providers/activity_statistics.provider.dart'; import 'package:immich_mobile/modules/activities/providers/activity_statistics.provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';

View file

@ -1,6 +1,6 @@
import 'package:immich_mobile/constants/errors.dart'; import 'package:immich_mobile/constants/errors.dart';
import 'package:immich_mobile/mixins/error_logger.mixin.dart'; import 'package:immich_mobile/mixins/error_logger.mixin.dart';
import 'package:immich_mobile/modules/activities/models/activity.model.dart'; import 'package:immich_mobile/models/activities/activity.model.dart';
import 'package:immich_mobile/shared/services/api.service.dart'; import 'package:immich_mobile/shared/services/api.service.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';

View file

@ -5,7 +5,7 @@ import 'package:flutter_hooks/flutter_hooks.dart' hide Store;
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/asyncvalue_extensions.dart'; import 'package:immich_mobile/extensions/asyncvalue_extensions.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/activities/models/activity.model.dart'; import 'package:immich_mobile/models/activities/activity.model.dart';
import 'package:immich_mobile/modules/activities/providers/activity.provider.dart'; import 'package:immich_mobile/modules/activities/providers/activity.provider.dart';
import 'package:immich_mobile/modules/activities/widgets/activity_text_field.dart'; import 'package:immich_mobile/modules/activities/widgets/activity_text_field.dart';
import 'package:immich_mobile/modules/activities/widgets/activity_tile.dart'; import 'package:immich_mobile/modules/activities/widgets/activity_tile.dart';

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/extensions/datetime_extensions.dart'; import 'package:immich_mobile/extensions/datetime_extensions.dart';
import 'package:immich_mobile/modules/activities/models/activity.model.dart'; import 'package:immich_mobile/models/activities/activity.model.dart';
import 'package:immich_mobile/modules/asset_viewer/image_providers/immich_remote_thumbnail_provider.dart'; import 'package:immich_mobile/modules/asset_viewer/image_providers/immich_remote_thumbnail_provider.dart';
import 'package:immich_mobile/modules/asset_viewer/providers/current_asset.provider.dart'; import 'package:immich_mobile/modules/asset_viewer/providers/current_asset.provider.dart';
import 'package:immich_mobile/shared/ui/user_circle_avatar.dart'; import 'package:immich_mobile/shared/ui/user_circle_avatar.dart';

View file

@ -3,10 +3,10 @@ import 'dart:async';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/album/services/album.service.dart'; import 'package:immich_mobile/modules/album/services/album.service.dart';
import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart'; import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:immich_mobile/utils/renderlist_generator.dart'; import 'package:immich_mobile/utils/renderlist_generator.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';

View file

@ -1,7 +1,7 @@
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart'; import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
import 'package:immich_mobile/modules/settings/services/app_settings.service.dart'; import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'album_sort_by_options.provider.g.dart'; part 'album_sort_by_options.provider.g.dart';

View file

@ -1,8 +1,8 @@
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/album/models/album_viewer_page_state.model.dart'; import 'package:immich_mobile/models/albums/album_viewer_page_state.model.dart';
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart'; import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
import 'package:immich_mobile/modules/album/services/album.service.dart'; import 'package:immich_mobile/modules/album/services/album.service.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
class AlbumViewerNotifier extends StateNotifier<AlbumViewerPageState> { class AlbumViewerNotifier extends StateNotifier<AlbumViewerPageState> {
AlbumViewerNotifier(this.ref) AlbumViewerNotifier(this.ref)

View file

@ -1,4 +1,4 @@
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'current_album.provider.g.dart'; part 'current_album.provider.g.dart';

View file

@ -3,9 +3,9 @@ import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/album/services/album.service.dart'; import 'package:immich_mobile/modules/album/services/album.service.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';

View file

@ -1,5 +1,5 @@
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/services/user.service.dart'; import 'package:immich_mobile/shared/services/user.service.dart';
final otherUsersProvider = FutureProvider.autoDispose<List<User>>((ref) { final otherUsersProvider = FutureProvider.autoDispose<List<User>>((ref) {

View file

@ -5,13 +5,13 @@ import 'dart:io';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/album/models/add_asset_response.model.dart'; import 'package:immich_mobile/models/albums/album_add_asset_response.model.dart';
import 'package:immich_mobile/modules/backup/models/backup_album.model.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart';
import 'package:immich_mobile/modules/backup/services/backup.service.dart'; import 'package:immich_mobile/modules/backup/services/backup.service.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/providers/api.provider.dart'; import 'package:immich_mobile/shared/providers/api.provider.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:immich_mobile/shared/services/api.service.dart'; import 'package:immich_mobile/shared/services/api.service.dart';
@ -219,7 +219,7 @@ class AlbumService {
); );
} }
Future<AddAssetsResponse?> addAdditionalAssetToAlbum( Future<AlbumAddAssetsResponse?> addAdditionalAssetToAlbum(
Iterable<Asset> assets, Iterable<Asset> assets,
Album album, Album album,
) async { ) async {
@ -245,7 +245,7 @@ class AlbumService {
await _updateAssets(album.id, add: successAssets); await _updateAssets(album.id, add: successAssets);
return AddAssetsResponse( return AlbumAddAssetsResponse(
alreadyInAlbum: duplicatedAssets, alreadyInAlbum: duplicatedAssets,
successfullyAdded: successAssets.length, successfullyAdded: successAssets.length,
); );

View file

@ -9,8 +9,8 @@ import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart
import 'package:immich_mobile/modules/album/services/album.service.dart'; import 'package:immich_mobile/modules/album/services/album.service.dart';
import 'package:immich_mobile/modules/album/ui/add_to_album_sliverlist.dart'; import 'package:immich_mobile/modules/album/ui/add_to_album_sliverlist.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/ui/drag_sheet.dart'; import 'package:immich_mobile/shared/ui/drag_sheet.dart';
import 'package:immich_mobile/shared/ui/immich_toast.dart'; import 'package:immich_mobile/shared/ui/immich_toast.dart';

View file

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/album/providers/album_sort_by_options.provider.dart'; import 'package:immich_mobile/modules/album/providers/album_sort_by_options.provider.dart';
import 'package:immich_mobile/modules/album/ui/album_thumbnail_listtile.dart'; import 'package:immich_mobile/modules/album/ui/album_thumbnail_listtile.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
class AddToAlbumSliverList extends HookConsumerWidget { class AddToAlbumSliverList extends HookConsumerWidget {
/// The asset to add to an album /// The asset to add to an album

View file

@ -1,8 +1,8 @@
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/shared/ui/immich_thumbnail.dart'; import 'package:immich_mobile/shared/ui/immich_thumbnail.dart';
class AlbumThumbnailCard extends StatelessWidget { class AlbumThumbnailCard extends StatelessWidget {

View file

@ -4,8 +4,8 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/utils/image_url_builder.dart'; import 'package:immich_mobile/utils/image_url_builder.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';

View file

@ -9,7 +9,7 @@ import 'package:immich_mobile/modules/album/providers/album.provider.dart';
import 'package:immich_mobile/modules/album/providers/album_viewer.provider.dart'; import 'package:immich_mobile/modules/album/providers/album_viewer.provider.dart';
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart'; import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/ui/immich_toast.dart'; import 'package:immich_mobile/shared/ui/immich_toast.dart';
import 'package:immich_mobile/shared/views/immich_loading_overlay.dart'; import 'package:immich_mobile/shared/views/immich_loading_overlay.dart';

View file

@ -4,7 +4,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/album/providers/album_viewer.provider.dart'; import 'package:immich_mobile/modules/album/providers/album_viewer.provider.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
class AlbumViewerEditableTitle extends HookConsumerWidget { class AlbumViewerEditableTitle extends HookConsumerWidget {
final Album album; final Album album;

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/ui/immich_thumbnail.dart'; import 'package:immich_mobile/shared/ui/immich_thumbnail.dart';
class SharedAlbumThumbnailImage extends HookConsumerWidget { class SharedAlbumThumbnailImage extends HookConsumerWidget {

View file

@ -8,8 +8,8 @@ import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart'; import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
import 'package:immich_mobile/modules/login/providers/authentication.provider.dart'; import 'package:immich_mobile/modules/login/providers/authentication.provider.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/ui/immich_toast.dart'; import 'package:immich_mobile/shared/ui/immich_toast.dart';
import 'package:immich_mobile/shared/ui/user_circle_avatar.dart'; import 'package:immich_mobile/shared/ui/user_circle_avatar.dart';
import 'package:immich_mobile/shared/views/immich_loading_overlay.dart'; import 'package:immich_mobile/shared/views/immich_loading_overlay.dart';

View file

@ -8,7 +8,7 @@ import 'package:fluttertoast/fluttertoast.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/asyncvalue_extensions.dart'; import 'package:immich_mobile/extensions/asyncvalue_extensions.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/album/models/asset_selection_page_result.model.dart'; import 'package:immich_mobile/models/albums/asset_selection_page_result.model.dart';
import 'package:immich_mobile/modules/album/providers/album.provider.dart'; import 'package:immich_mobile/modules/album/providers/album.provider.dart';
import 'package:immich_mobile/modules/album/providers/current_album.provider.dart'; import 'package:immich_mobile/modules/album/providers/current_album.provider.dart';
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart'; import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
@ -19,8 +19,8 @@ import 'package:immich_mobile/modules/home/providers/multiselect.provider.dart';
import 'package:immich_mobile/modules/login/providers/authentication.provider.dart'; import 'package:immich_mobile/modules/login/providers/authentication.provider.dart';
import 'package:immich_mobile/modules/album/ui/album_viewer_appbar.dart'; import 'package:immich_mobile/modules/album/ui/album_viewer_appbar.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/asset.provider.dart'; import 'package:immich_mobile/shared/providers/asset.provider.dart';
import 'package:immich_mobile/shared/ui/asset_grid/multiselect_grid.dart'; import 'package:immich_mobile/shared/ui/asset_grid/multiselect_grid.dart';
import 'package:immich_mobile/shared/ui/immich_toast.dart'; import 'package:immich_mobile/shared/ui/immich_toast.dart';

View file

@ -5,11 +5,11 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/asyncvalue_extensions.dart'; import 'package:immich_mobile/extensions/asyncvalue_extensions.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/album/models/asset_selection_page_result.model.dart'; import 'package:immich_mobile/models/albums/asset_selection_page_result.model.dart';
import 'package:immich_mobile/modules/asset_viewer/providers/render_list.provider.dart'; import 'package:immich_mobile/modules/asset_viewer/providers/render_list.provider.dart';
import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart'; import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
import 'package:immich_mobile/modules/home/ui/asset_grid/immich_asset_grid.dart'; import 'package:immich_mobile/modules/home/ui/asset_grid/immich_asset_grid.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
@RoutePage<AssetSelectionPageResult?>() @RoutePage<AssetSelectionPageResult?>()

View file

@ -4,14 +4,14 @@ import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/album/models/asset_selection_page_result.model.dart'; import 'package:immich_mobile/models/albums/asset_selection_page_result.model.dart';
import 'package:immich_mobile/modules/album/providers/album.provider.dart'; import 'package:immich_mobile/modules/album/providers/album.provider.dart';
import 'package:immich_mobile/modules/album/providers/album_title.provider.dart'; import 'package:immich_mobile/modules/album/providers/album_title.provider.dart';
import 'package:immich_mobile/modules/album/ui/album_action_outlined_button.dart'; import 'package:immich_mobile/modules/album/ui/album_action_outlined_button.dart';
import 'package:immich_mobile/modules/album/ui/album_title_text_field.dart'; import 'package:immich_mobile/modules/album/ui/album_title_text_field.dart';
import 'package:immich_mobile/modules/album/ui/shared_album_thumbnail_image.dart'; import 'package:immich_mobile/modules/album/ui/shared_album_thumbnail_image.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/asset.provider.dart'; import 'package:immich_mobile/shared/providers/asset.provider.dart';
@RoutePage() @RoutePage()

View file

@ -6,8 +6,8 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/asyncvalue_extensions.dart'; import 'package:immich_mobile/extensions/asyncvalue_extensions.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/album/providers/suggested_shared_users.provider.dart'; import 'package:immich_mobile/modules/album/providers/suggested_shared_users.provider.dart';
import 'package:immich_mobile/shared/models/album.dart'; import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/ui/user_circle_avatar.dart'; import 'package:immich_mobile/shared/ui/user_circle_avatar.dart';
@RoutePage<List<String>?>() @RoutePage<List<String>?>()

View file

@ -9,8 +9,8 @@ import 'package:immich_mobile/modules/album/providers/album_title.provider.dart'
import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart'; import 'package:immich_mobile/modules/album/providers/shared_album.provider.dart';
import 'package:immich_mobile/modules/album/providers/suggested_shared_users.provider.dart'; import 'package:immich_mobile/modules/album/providers/suggested_shared_users.provider.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/user.dart'; import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/shared/ui/user_circle_avatar.dart'; import 'package:immich_mobile/shared/ui/user_circle_avatar.dart';
@RoutePage<List<String>>() @RoutePage<List<String>>()

View file

@ -1,6 +1,6 @@
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart'; import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:immich_mobile/shared/providers/user.provider.dart'; import 'package:immich_mobile/shared/providers/user.provider.dart';
import 'package:immich_mobile/utils/renderlist_generator.dart'; import 'package:immich_mobile/utils/renderlist_generator.dart';

View file

@ -4,7 +4,7 @@ import 'dart:ui' as ui;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:immich_mobile/modules/asset_viewer/image_providers/exceptions/image_loading_exception.dart'; import 'package:immich_mobile/modules/asset_viewer/image_providers/exceptions/image_loading_exception.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
/// Loads the codec from the URI and sends the events to the [chunkEvents] stream /// Loads the codec from the URI and sends the events to the [chunkEvents] stream
/// ///

View file

@ -6,7 +6,7 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/painting.dart'; import 'package:flutter/painting.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:photo_manager/photo_manager.dart'; import 'package:photo_manager/photo_manager.dart';
/// The local image provider for an asset /// The local image provider for an asset

View file

@ -5,7 +5,7 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/painting.dart'; import 'package:flutter/painting.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:photo_manager/photo_manager.dart'; import 'package:photo_manager/photo_manager.dart';
/// The local image provider for an asset /// The local image provider for an asset

View file

@ -10,8 +10,8 @@ import 'package:openapi/api.dart' as api;
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/painting.dart'; import 'package:flutter/painting.dart';
import 'package:immich_mobile/modules/settings/services/app_settings.service.dart'; import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:immich_mobile/utils/image_url_builder.dart'; import 'package:immich_mobile/utils/image_url_builder.dart';
/// The remote image provider for full size remote images /// The remote image provider for full size remote images

View file

@ -9,7 +9,7 @@ import 'package:openapi/api.dart' as api;
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/painting.dart'; import 'package:flutter/painting.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/utils/image_url_builder.dart'; import 'package:immich_mobile/utils/image_url_builder.dart';
/// The remote image provider /// The remote image provider

View file

@ -2,8 +2,8 @@ import 'dart:async';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/asset_viewer/services/asset_description.service.dart'; import 'package:immich_mobile/modules/asset_viewer/services/asset_description.service.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/exif_info.dart'; import 'package:immich_mobile/entities/exif_info.entity.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';

View file

@ -1,4 +1,4 @@
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/services/asset.service.dart'; import 'package:immich_mobile/shared/services/asset.service.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';

View file

@ -1,5 +1,5 @@
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';

View file

@ -1,4 +1,4 @@
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'current_asset.provider.g.dart'; part 'current_asset.provider.g.dart';

View file

@ -4,14 +4,14 @@ import 'package:fluttertoast/fluttertoast.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/album/services/album.service.dart'; import 'package:immich_mobile/modules/album/services/album.service.dart';
import 'package:immich_mobile/modules/asset_viewer/models/image_viewer_page_state.model.dart'; import 'package:immich_mobile/models/asset_viewer/asset_viewer_page_state.model.dart';
import 'package:immich_mobile/modules/asset_viewer/services/image_viewer.service.dart'; import 'package:immich_mobile/modules/asset_viewer/services/image_viewer.service.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/services/share.service.dart'; import 'package:immich_mobile/shared/services/share.service.dart';
import 'package:immich_mobile/shared/ui/immich_toast.dart'; import 'package:immich_mobile/shared/ui/immich_toast.dart';
import 'package:immich_mobile/shared/ui/share_dialog.dart'; import 'package:immich_mobile/shared/ui/share_dialog.dart';
class ImageViewerStateNotifier extends StateNotifier<ImageViewerPageState> { class ImageViewerStateNotifier extends StateNotifier<AssetViewerPageState> {
final ImageViewerService _imageViewerService; final ImageViewerService _imageViewerService;
final ShareService _shareService; final ShareService _shareService;
final AlbumService _albumService; final AlbumService _albumService;
@ -21,7 +21,7 @@ class ImageViewerStateNotifier extends StateNotifier<ImageViewerPageState> {
this._shareService, this._shareService,
this._albumService, this._albumService,
) : super( ) : super(
ImageViewerPageState( AssetViewerPageState(
downloadAssetStatus: DownloadAssetStatus.idle, downloadAssetStatus: DownloadAssetStatus.idle,
), ),
); );
@ -86,7 +86,7 @@ class ImageViewerStateNotifier extends StateNotifier<ImageViewerPageState> {
} }
final imageViewerStateProvider = final imageViewerStateProvider =
StateNotifierProvider<ImageViewerStateNotifier, ImageViewerPageState>( StateNotifierProvider<ImageViewerStateNotifier, AssetViewerPageState>(
((ref) => ImageViewerStateNotifier( ((ref) => ImageViewerStateNotifier(
ref.watch(imageViewerServiceProvider), ref.watch(imageViewerServiceProvider),
ref.watch(shareServiceProvider), ref.watch(shareServiceProvider),

View file

@ -2,7 +2,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart'; import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart'; import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
import 'package:immich_mobile/modules/settings/services/app_settings.service.dart'; import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/utils/renderlist_generator.dart'; import 'package:immich_mobile/utils/renderlist_generator.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';

View file

@ -1,5 +1,5 @@
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/store.dart'; import 'package:immich_mobile/entities/store.entity.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:video_player/video_player.dart'; import 'package:video_player/video_player.dart';

View file

@ -1,5 +1,5 @@
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/shared/models/exif_info.dart'; import 'package:immich_mobile/entities/exif_info.entity.dart';
import 'package:immich_mobile/shared/providers/api.provider.dart'; import 'package:immich_mobile/shared/providers/api.provider.dart';
import 'package:immich_mobile/shared/providers/db.provider.dart'; import 'package:immich_mobile/shared/providers/db.provider.dart';
import 'package:immich_mobile/shared/services/api.service.dart'; import 'package:immich_mobile/shared/services/api.service.dart';

View file

@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/api.provider.dart'; import 'package:immich_mobile/shared/providers/api.provider.dart';
import 'package:immich_mobile/shared/services/api.service.dart'; import 'package:immich_mobile/shared/services/api.service.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';

View file

@ -2,7 +2,7 @@ import 'dart:io';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/response_extensions.dart'; import 'package:immich_mobile/extensions/response_extensions.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/api.provider.dart'; import 'package:immich_mobile/shared/providers/api.provider.dart';
import 'package:immich_mobile/shared/services/api.service.dart'; import 'package:immich_mobile/shared/services/api.service.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
class AdvancedBottomSheet extends HookConsumerWidget { class AdvancedBottomSheet extends HookConsumerWidget {
final Asset assetDetail; final Asset assetDetail;

View file

@ -13,7 +13,7 @@ import 'package:immich_mobile/modules/asset_viewer/services/asset_stack.service.
import 'package:immich_mobile/modules/asset_viewer/ui/video_controls.dart'; import 'package:immich_mobile/modules/asset_viewer/ui/video_controls.dart';
import 'package:immich_mobile/modules/home/ui/delete_dialog.dart'; import 'package:immich_mobile/modules/home/ui/delete_dialog.dart';
import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/asset.provider.dart'; import 'package:immich_mobile/shared/providers/asset.provider.dart';
import 'package:immich_mobile/shared/providers/server_info.provider.dart'; import 'package:immich_mobile/shared/providers/server_info.provider.dart';
import 'package:immich_mobile/shared/providers/user.provider.dart'; import 'package:immich_mobile/shared/providers/user.provider.dart';

View file

@ -4,7 +4,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/asset_viewer/providers/asset_description.provider.dart'; import 'package:immich_mobile/modules/asset_viewer/providers/asset_description.provider.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/providers/user.provider.dart'; import 'package:immich_mobile/shared/providers/user.provider.dart';
import 'package:immich_mobile/shared/ui/immich_toast.dart'; import 'package:immich_mobile/shared/ui/immich_toast.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';

View file

@ -9,8 +9,8 @@ import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_detail.dar
import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_image_properties.dart'; import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_image_properties.dart';
import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_location.dart'; import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_location.dart';
import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_people.dart'; import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_people.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/exif_info.dart'; import 'package:immich_mobile/entities/exif_info.entity.dart';
import 'package:immich_mobile/shared/providers/asset.provider.dart'; import 'package:immich_mobile/shared/providers/asset.provider.dart';
import 'package:immich_mobile/utils/selection_handlers.dart'; import 'package:immich_mobile/utils/selection_handlers.dart';

View file

@ -2,8 +2,8 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_image_properties.dart'; import 'package:immich_mobile/modules/asset_viewer/ui/exif_sheet/exif_image_properties.dart';
import 'package:immich_mobile/shared/models/asset.dart'; import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/shared/models/exif_info.dart'; import 'package:immich_mobile/entities/exif_info.entity.dart';
class ExifDetail extends StatelessWidget { class ExifDetail extends StatelessWidget {
final Asset asset; final Asset asset;

Some files were not shown because too many files have changed in this diff Show more