UpdateInfo.fromJson constructor

UpdateInfo.fromJson(
  1. Map<String, dynamic> json
)

Create UpdateInfo from JSON

Implementation

factory UpdateInfo.fromJson(Map<String, dynamic> json) {
  try {
    final currentVersion =
        json['currentVersion']?.toString() ?? AppConfig.version;
    final latestVersion =
        json['latestVersion']?.toString() ?? AppConfig.version;
    final hasUpdate = json['hasUpdate'] == true;
    final lastCheckedStr = json['lastChecked']?.toString();
    final error = json['error']?.toString();

    return UpdateInfo(
      currentVersion: currentVersion,
      latestVersion: latestVersion,
      hasUpdate: hasUpdate,
      lastChecked: lastCheckedStr != null
          ? DateTime.tryParse(lastCheckedStr) ?? DateTime.now()
          : DateTime.now(),
      error: error,
    );
  } catch (e) {
    return UpdateInfo(
      currentVersion: AppConfig.version,
      latestVersion: AppConfig.version,
      hasUpdate: false,
      lastChecked: DateTime.now(),
      error: 'Failed to parse update info',
    );
  }
}