storageSet method

  1. @override
Future<bool?> storageSet(
  1. String key,
  2. dynamic value, {
  3. int? ttlSec,
})
override

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;
}