Integrate secure storage service

This commit is contained in:
2025-09-21 11:53:32 +02:00
parent fc888f9c1b
commit 2df5b6ec62
6 changed files with 519 additions and 9 deletions

View File

@@ -0,0 +1,90 @@
import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:fluttery/secure_storage.dart';
class SecureStorageImpl implements SecureStorage {
final FlutterSecureStorage _secureStorage;
/// Constructor - creates a single instance with default FlutterSecureStorage
SecureStorageImpl() : _secureStorage = const FlutterSecureStorage();
/// Testing constructor
@visibleForTesting
SecureStorageImpl.forTesting({required FlutterSecureStorage instance})
: _secureStorage = instance;
@override
Future<void> write(String key, String value) async {
await _secureStorage.write(key: key, value: value);
}
@override
Future<String?> read(String key) async {
return await _secureStorage.read(key: key);
}
@override
Future<bool> containsKey(String key) async {
return await _secureStorage.containsKey(key: key);
}
@override
Future<void> delete(String key) async {
await _secureStorage.delete(key: key);
}
@override
Future<void> deleteAll() async {
await _secureStorage.deleteAll();
}
@override
Future<Set<String>> readAll() async {
final allData = await _secureStorage.readAll();
return allData.keys.toSet();
}
@override
Future<Set<String>> readAllKeys() async {
final allData = await _secureStorage.readAll();
return allData.keys.toSet();
}
@override
Future<void> writeInt(String key, int value) async {
await _secureStorage.write(key: key, value: value.toString());
}
@override
Future<int?> readInt(String key) async {
final value = await _secureStorage.read(key: key);
if (value == null) return null;
return int.tryParse(value);
}
@override
Future<void> writeBool(String key, bool value) async {
await _secureStorage.write(key: key, value: value.toString());
}
@override
Future<bool?> readBool(String key) async {
final value = await _secureStorage.read(key: key);
if (value == null) return null;
if (value.toLowerCase() == 'true') return true;
if (value.toLowerCase() == 'false') return false;
return null; // Invalid boolean value
}
@override
Future<void> writeDouble(String key, double value) async {
await _secureStorage.write(key: key, value: value.toString());
}
@override
Future<double?> readDouble(String key) async {
final value = await _secureStorage.read(key: key);
if (value == null) return null;
return double.tryParse(value);
}
}