restoreAttributionStateFromSnapshots method
Restore attribution state from snapshot messages.
Implementation
AttributionState restoreAttributionStateFromSnapshots(
List<AttributionSnapshotMessage> snapshots,
) {
final attrState = createEmptyAttributionState();
// The last snapshot has the most recent count for every path.
final lastSnapshot = snapshots.isNotEmpty ? snapshots.last : null;
if (lastSnapshot == null) return attrState;
final fileStates = <String, FileAttributionState>{};
for (final entry in lastSnapshot.fileStates.entries) {
fileStates[entry.key] = entry.value;
}
return attrState.copyWith(
surface: lastSnapshot.surface,
fileStates: fileStates,
promptCount: lastSnapshot.promptCount,
promptCountAtLastCommit: lastSnapshot.promptCountAtLastCommit,
permissionPromptCount: lastSnapshot.permissionPromptCount,
permissionPromptCountAtLastCommit:
lastSnapshot.permissionPromptCountAtLastCommit,
escapeCount: lastSnapshot.escapeCount,
escapeCountAtLastCommit: lastSnapshot.escapeCountAtLastCommit,
);
}