49 lines
1.4 KiB
Dart
49 lines
1.4 KiB
Dart
import '../../src/rust/api/ffi_types.dart' as ffi;
|
|
|
|
class SyncStatusModel {
|
|
final String state;
|
|
final int syncedFiles;
|
|
final int totalFiles;
|
|
final int uploadingCount;
|
|
final int downloadingCount;
|
|
final int conflictCount;
|
|
final int errorCount;
|
|
final String? lastSyncTime;
|
|
final String? errorMessage;
|
|
|
|
const SyncStatusModel({
|
|
this.state = 'idle',
|
|
this.syncedFiles = 0,
|
|
this.totalFiles = 0,
|
|
this.uploadingCount = 0,
|
|
this.downloadingCount = 0,
|
|
this.conflictCount = 0,
|
|
this.errorCount = 0,
|
|
this.lastSyncTime,
|
|
this.errorMessage,
|
|
});
|
|
|
|
bool get isIdle => state == 'idle';
|
|
bool get isInitializing => state == 'initializing';
|
|
bool get isInitialSync => state == 'initialSync';
|
|
bool get isContinuous => state == 'continuous';
|
|
bool get isPaused => state == 'paused';
|
|
bool get isError => state == 'error';
|
|
bool get isStopped => state == 'stopped';
|
|
bool get isActive => isInitializing || isInitialSync || isContinuous;
|
|
|
|
static SyncStatusModel fromFfi(ffi.SyncStatusFfi f) {
|
|
return SyncStatusModel(
|
|
state: f.state,
|
|
syncedFiles: f.syncedFiles.toInt(),
|
|
totalFiles: f.totalFiles.toInt(),
|
|
uploadingCount: f.uploadingCount,
|
|
downloadingCount: f.downloadingCount,
|
|
conflictCount: f.conflictCount,
|
|
errorCount: f.errorCount,
|
|
lastSyncTime: f.lastSyncTime,
|
|
errorMessage: f.errorMessage,
|
|
);
|
|
}
|
|
}
|