import 'dart:io'; import 'package:hmg_qline/constants/app_constants.dart'; import 'package:shared_preferences/shared_preferences.dart'; abstract class CacheService { Future getLastTimeUpdatedFromCache(); Future setLastTimeUpdatedInCache({required String lasTimeUpdated}); Future setLastTimeLogsCleared({required int lastTimeCleared}); Future getLastTimeLogsCleared(); } class CacheServiceImp implements CacheService { SharedPreferences preferencesInstance; CacheServiceImp({required this.preferencesInstance}); @override Future getLastTimeUpdatedFromCache() async { if (preferencesInstance.containsKey(CacheConstants.lastTimeUpdated)) { String? lastTimeUpdated = preferencesInstance.getString(CacheConstants.lastTimeUpdated); DateTime currentLastTimeUpdated = DateTime.fromMillisecondsSinceEpoch(int.parse(lastTimeUpdated!)); return currentLastTimeUpdated; } else { return null; } } @override Future setLastTimeUpdatedInCache({required String lasTimeUpdated}) async { await preferencesInstance.setString(CacheConstants.lastTimeUpdated, lasTimeUpdated); } @override Future getLastTimeLogsCleared() async { if (preferencesInstance.containsKey(CacheConstants.lastTimeUpdated)) { String? lastTimeUpdated = preferencesInstance.getString(CacheConstants.lastTimeUpdated); DateTime currentLastTimeUpdated = DateTime.fromMillisecondsSinceEpoch(int.parse(lastTimeUpdated!)); return currentLastTimeUpdated; } else { return null; } } @override Future setLastTimeLogsCleared({required int lastTimeCleared}) async { await preferencesInstance.setString(CacheConstants.lastTimeUpdated, lastTimeCleared.toString()); } }