Files
workavia-mail-front/lib/features/caching/clients/hive_cache_version_client.dart
T
dab246 5b01715dcd TF-1810 Move all hive clients to a separate folder
(cherry picked from commit c72e16b576835b7748e20ab3e5cce5e1f505a65f)
2023-06-05 11:02:20 +07:00

29 lines
951 B
Dart

import 'package:shared_preferences/shared_preferences.dart';
import 'package:tmail_ui_user/features/caching/clients/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<int?> getLatestVersion() {
return Future.sync(() {
final latestVersion = _sharedPreferences.getInt(versionKey);
return latestVersion;
}).catchError(_exceptionThrower.throwException);
}
@override
Future<bool> storeVersion(int newVersion) {
return Future.sync(() async {
return await _sharedPreferences.setInt(versionKey, newVersion);
}).catchError(_exceptionThrower.throwException);
}
}