read method
Reads the data associated with key
.
If no data is associated with key
, this method should return null
.
Otherwise it should return the data associated with key
.
It is fine to return expired data, as NotifierPersistX.persist
will handle the
expiration logic.
If possible, make this method synchronous. This can enable
NotifierPersistX.persist
to be synchronous too ; which will allow the persisted
data to be available as soon as possible in the UI.
Implementation
@override
FutureOr<PersistedData<String>?> read(String key) {
final value = _preferences.getString("$_prefix:$key");
final destroyKey = _preferences.getString("$_prefix:$key:destroy");
final expireAtString = _preferences.getString(
"$_prefix:$key:expire_at",
);
if (value == null) return null;
final expireAt = DateTime.tryParse(expireAtString ?? '');
return PersistedData(
value,
destroyKey: destroyKey,
expireAt: expireAt,
);
}