Created
January 7, 2020 06:02
-
-
Save apgapg/96bdf02c59715e037eda58c5fc040be4 to your computer and use it in GitHub Desktop.
Base class for using shared/local preferences in Flutter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
abstract class BasePrefs { | |
Future<void> initialise(); | |
//Getters | |
bool getBool(String key); | |
int getInt(String key); | |
double getDouble(String key); | |
String getString(String key); | |
List<String> getStringList(String key); | |
//Setters | |
void setBool(String key, bool value); | |
void setInt(String key, int value); | |
void setDouble(String key, double value); | |
void setString(String key, String value); | |
void setStringList(String key, List<String> value); | |
//MISC | |
Future<void> reload(); | |
void remove(String key); | |
void clear(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:localstorage/localstorage.dart'; | |
import 'package:workozy_app/data/local/prefs/base_prefs.dart'; | |
class JsonPrefs extends BasePrefs { | |
final _storage = LocalStorage('workozy_prefs'); | |
@override | |
Future<void> initialise() async { | |
print("Initialising Json Prefs..."); | |
var result = await _storage.ready; | |
if (result != true) { | |
throw Exception("Error in initialising json_prefs"); | |
} | |
} | |
@override | |
bool getBool(String key) { | |
return _storage.getItem(key) as bool; | |
} | |
@override | |
double getDouble(String key) { | |
return _storage.getItem(key) as double; | |
} | |
@override | |
int getInt(String key) { | |
return _storage.getItem(key) as int; | |
} | |
@override | |
String getString(String key) { | |
return _storage.getItem(key) as String; | |
} | |
@override | |
List<String> getStringList(String key) { | |
return ((_storage.getItem(key) as List) ?? []).cast<String>(); | |
} | |
@override | |
void clear() { | |
_storage.clear(); | |
} | |
@override | |
Future<void> reload() async { | |
// TODO: implement reload | |
} | |
@override | |
void remove(String key) { | |
_storage.deleteItem(key); | |
} | |
@override | |
void setBool(String key, bool value) { | |
_storage.setItem(key, value); | |
} | |
@override | |
void setDouble(String key, double value) { | |
_storage.setItem(key, value); | |
} | |
@override | |
void setInt(String key, int value) { | |
_storage.setItem(key, value); | |
} | |
@override | |
void setString(String key, String value) { | |
_storage.setItem(key, value); | |
} | |
@override | |
void setStringList(String key, List<String> value) { | |
_storage.setItem(key, value); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment