feat: full local assets / album sync
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:immich_mobile/utils/collection_util.dart';
|
||||
|
||||
@immutable
|
||||
class DeviceAssetToHash {
|
||||
final int? id;
|
||||
final String localId;
|
||||
final String hash;
|
||||
final DateTime modifiedTime;
|
||||
|
||||
const DeviceAssetToHash({
|
||||
this.id,
|
||||
required this.localId,
|
||||
required this.hash,
|
||||
required this.modifiedTime,
|
||||
});
|
||||
|
||||
@override
|
||||
bool operator ==(covariant DeviceAssetToHash other) {
|
||||
if (identical(this, other)) return true;
|
||||
|
||||
return other.id == id &&
|
||||
other.localId == localId &&
|
||||
other.hash == hash &&
|
||||
other.modifiedTime == modifiedTime;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
return id.hashCode ^
|
||||
localId.hashCode ^
|
||||
hash.hashCode ^
|
||||
modifiedTime.hashCode;
|
||||
}
|
||||
|
||||
DeviceAssetToHash copyWith({
|
||||
int? id,
|
||||
String? localId,
|
||||
String? hash,
|
||||
DateTime? modifiedTime,
|
||||
}) {
|
||||
return DeviceAssetToHash(
|
||||
id: id ?? this.id,
|
||||
localId: localId ?? this.localId,
|
||||
hash: hash ?? this.hash,
|
||||
modifiedTime: modifiedTime ?? this.modifiedTime,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'DeviceAssetToHash(id: ${id ?? "-"}, localId: $localId, hash: $hash, modifiedTime: $modifiedTime)';
|
||||
}
|
||||
|
||||
static int compareByLocalId(DeviceAssetToHash a, DeviceAssetToHash b) =>
|
||||
CollectionUtil.compareToNullable(a.localId, b.localId);
|
||||
}
|
||||
Reference in New Issue
Block a user