import 'package:shared_preferences/shared_preferences.dart'; import 'package:tmail_ui_user/features/caching/cache_version_client.dart'; import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart'; class HiveCacheVersionClient extends CacheVersionClient { final SharedPreferences _sharedPreferences; final ExceptionThrower _exceptionThrower; HiveCacheVersionClient(this._sharedPreferences, this._exceptionThrower); @override String get versionKey => 'HiveCacheVersion'; @override Future getLatestVersion() { return Future.sync(() { final latestVersion = _sharedPreferences.getInt(versionKey); return latestVersion; }).catchError(_exceptionThrower.throwException); } @override Future storeVersion(int newVersion) { return Future.sync(() async { return await _sharedPreferences.setInt(versionKey, newVersion); }).catchError(_exceptionThrower.throwException); } }