Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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