storageSet method
Implementation
@override
Future<bool?> storageSet(String key, dynamic value, {int? ttlSec}) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
bool result = false;
if (value is bool) {
result = await prefs.setBool(key, value);
} else if (value is int) {
result = await prefs.setInt(key, value);
} else if (value is double) {
result = await prefs.setDouble(key, value);
} else if (value is String) {
result = await prefs.setString(key, value);
} else if (value is List<String>) {
result = await prefs.setStringList(key, value);
} else {
result = await prefs.setString(key, value.toString());
}
if (ttlSec != null && ttlSec > 0 && result) {
final expiryKey = '${key}_expiry';
final expiryTime =
DateTime.now().millisecondsSinceEpoch + (ttlSec * 1000);
await prefs.setInt(expiryKey, expiryTime);
}
return result;
}