import 'package:flutter/foundation.dart'; import 'package:immich_mobile/domain/interfaces/api/server_api.interface.dart'; import 'package:immich_mobile/domain/models/server-info/server_info.model.dart'; import 'package:immich_mobile/presentation/states/app_info.state.dart'; import 'package:immich_mobile/service_locator.dart'; class ServerInfoProvider extends ValueNotifier { final IServerApiRepository _serverApiRepository; ServerInfoProvider({required IServerApiRepository serverApiRepo}) : _serverApiRepository = serverApiRepo, super(const ServerInfo.initial()); Future fetchFeatures() async => await (_getFeatures(), _getConfig(), _getVersion()).wait; Future _getFeatures() async { final features = await _serverApiRepository.getServerFeatures(); if (features != null) { value = value.copyWith(features: features); } } Future _getConfig() async { final config = await _serverApiRepository.getServerConfig(); if (config != null) { value = value.copyWith(config: config); } } Future _getVersion() async { final version = await _serverApiRepository.getServerVersion(); di().checkVersionMismatch(version); if (version != null) { value = value.copyWith(version: version); } } Future fetchServerDisk() async { final disk = await _serverApiRepository.getServerDiskInfo(); if (disk != null) { value = value.copyWith(disk: disk); } } }