You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Dart
		
	
import 'dart:convert';
 | 
						|
 | 
						|
import 'package:hmg_patient_app_new/services/logger_service.dart';
 | 
						|
import 'package:shared_preferences/shared_preferences.dart';
 | 
						|
 | 
						|
abstract class CacheService {
 | 
						|
  Future<void> saveString({required String key, required String value});
 | 
						|
 | 
						|
  Future<void> saveInt({required String key, required int value});
 | 
						|
 | 
						|
  Future<void> saveDouble({required String key, required double value});
 | 
						|
 | 
						|
  Future<void> saveBool({required String key, required bool value});
 | 
						|
 | 
						|
  Future<void> saveStringList({required String key, required List<String> value});
 | 
						|
 | 
						|
  String? getString({required String key});
 | 
						|
 | 
						|
  int? getInt({required String key});
 | 
						|
 | 
						|
  double? getDouble({required String key});
 | 
						|
 | 
						|
  bool? getBool({required String key});
 | 
						|
 | 
						|
  List<String>? getStringList({required String key});
 | 
						|
 | 
						|
  Future<dynamic> getObject({required String key});
 | 
						|
 | 
						|
  Future<void> saveObject({required String key, required dynamic value});
 | 
						|
 | 
						|
  Future<void> remove({required String key});
 | 
						|
 | 
						|
  Future<void> clear();
 | 
						|
}
 | 
						|
 | 
						|
class CacheServiceImp implements CacheService {
 | 
						|
  final SharedPreferences sharedPreferences;
 | 
						|
  final LoggerService loggerService;
 | 
						|
 | 
						|
  CacheServiceImp({
 | 
						|
    required this.sharedPreferences,
 | 
						|
    required this.loggerService,
 | 
						|
  });
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> saveString({required String key, required String value}) async {
 | 
						|
    await sharedPreferences.setString(key, value);
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> saveInt({required String key, required int value}) async {
 | 
						|
    await sharedPreferences.setInt(key, value);
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> saveDouble({required String key, required double value}) async {
 | 
						|
    await sharedPreferences.setDouble(key, value);
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> saveBool({required String key, required bool value}) async {
 | 
						|
    await sharedPreferences.setBool(key, value);
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> saveStringList({required String key, required List<String> value}) async {
 | 
						|
    await sharedPreferences.setStringList(key, value);
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  String? getString({required String key}) => sharedPreferences.getString(key);
 | 
						|
 | 
						|
  @override
 | 
						|
  int? getInt({required String key}) => sharedPreferences.getInt(key);
 | 
						|
 | 
						|
  @override
 | 
						|
  double? getDouble({required String key}) => sharedPreferences.getDouble(key);
 | 
						|
 | 
						|
  @override
 | 
						|
  bool? getBool({required String key}) => sharedPreferences.getBool(key);
 | 
						|
 | 
						|
  @override
 | 
						|
  List<String>? getStringList({required String key}) => sharedPreferences.getStringList(key);
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> remove({required String key}) async {
 | 
						|
    await sharedPreferences.remove(key);
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<dynamic> getObject({required String key}) async {
 | 
						|
    try {
 | 
						|
      await sharedPreferences.reload();
 | 
						|
      var string = sharedPreferences.getString(key);
 | 
						|
      if (string == null) return null;
 | 
						|
      return json.decode(string);
 | 
						|
    } catch (ex) {
 | 
						|
      loggerService.errorLogs(ex.toString());
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> saveObject({required String key, required dynamic value}) async {
 | 
						|
    try {
 | 
						|
      await sharedPreferences.setString(key, json.encode(value));
 | 
						|
    } catch (ex) {
 | 
						|
      loggerService.errorLogs(ex.toString());
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  Future<void> clear() async {
 | 
						|
    await sharedPreferences.clear();
 | 
						|
  }
 | 
						|
}
 |