load<T> method
Implementation
Future<T> load<T>(String key, {T? defaultValue}) async {
final preferences = await SharedPreferences.getInstance();
final type = typeOf<T>();
if (type == String) {
final result = preferences.getString(key);
Log.debug('simple storage result String $result for $key');
return (result ?? defaultValue ?? '') as T;
}
if (type == int) {
final result = preferences.getInt(key);
Log.debug('simple storage result int $result for $key');
return (result ?? defaultValue ?? 0) as T;
}
if (type == bool) {
final result = preferences.getBool(key);
Log.debug('simple storage result bool $result for $key');
return (result ?? defaultValue ?? false) as T;
}
if (type == List) {
final result = preferences.getStringList(key);
Log.debug('simple storage result list $result for $key');
return (result ?? defaultValue ?? <String>[]) as T;
}
if (type == double) {
final result = preferences.getDouble(key);
Log.debug('simple storage result double $result for $key');
return (result ?? defaultValue ?? 0.0) as T;
}
final result = preferences.get(key);
Log.debug('simple storage result dynamic $result for $key');
return (result ?? defaultValue ?? Object()) as T;
}