Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions mobile/drift_schemas/main/drift_schema_v20.json

Large diffs are not rendered by default.

14 changes: 10 additions & 4 deletions mobile/lib/domain/services/sync_stream.service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ class SyncStreamService {
return false;
}

final semVer = SemVer(major: serverVersion.major, minor: serverVersion.minor, patch: serverVersion.patch_);
final serverSemVer = SemVer(major: serverVersion.major, minor: serverVersion.minor, patch: serverVersion.patch_);

final value = Store.get(StoreKey.syncMigrationStatus, "[]");
final migrations = (jsonDecode(value) as List).cast<String>();
int previousLength = migrations.length;
await _runPreSyncTasks(migrations, semVer);
await _runPreSyncTasks(migrations, serverSemVer);

if (migrations.length != previousLength) {
_logger.info("Updated pre-sync migration status: $migrations");
Expand All @@ -82,10 +82,14 @@ class SyncStreamService {

// Start the sync stream and handle events
bool shouldReset = false;
await _syncApiRepository.streamChanges(_handleEvents, onReset: () => shouldReset = true);
await _syncApiRepository.streamChanges(
_handleEvents,
serverVersion: serverSemVer,
onReset: () => shouldReset = true,
);
if (shouldReset) {
_logger.info("Resetting sync state as requested by server");
await _syncApiRepository.streamChanges(_handleEvents);
await _syncApiRepository.streamChanges(_handleEvents, serverVersion: serverSemVer);
}

previousLength = migrations.length;
Expand Down Expand Up @@ -282,6 +286,8 @@ class SyncStreamService {
return _syncStreamRepository.deletePeopleV1(data.cast());
case SyncEntityType.assetFaceV1:
return _syncStreamRepository.updateAssetFacesV1(data.cast());
case SyncEntityType.assetFaceV2:
return _syncStreamRepository.updateAssetFacesV2(data.cast());
case SyncEntityType.assetFaceDeleteV1:
return _syncStreamRepository.deleteAssetFacesV1(data.cast());
default:
Expand Down
4 changes: 4 additions & 0 deletions mobile/lib/infrastructure/entities/asset_face.entity.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ class AssetFaceEntity extends Table with DriftDefaultsMixin {

TextColumn get sourceType => text()();

BoolColumn get isVisible => boolean().withDefault(const Constant(true))();

DateTimeColumn get deletedAt => dateTime().nullable()();

@override
Set<Column> get primaryKey => {id};
}
Loading
Loading