58 lines
1.4 KiB
Dart
58 lines
1.4 KiB
Dart
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
|
|
class SpTool {
|
|
static SharedPreferences? _instance;
|
|
static final String _basePrefix = "app.";
|
|
static Future<SharedPreferences>? _instanceFuture;
|
|
|
|
static Future<SharedPreferences> getInstance() {
|
|
if (_instance != null) {
|
|
return Future.value(_instance);
|
|
}
|
|
|
|
_instanceFuture ??= SharedPreferences.getInstance().then((prefs) {
|
|
_instance = prefs;
|
|
return prefs;
|
|
});
|
|
|
|
return _instanceFuture!;
|
|
}
|
|
|
|
void setString(String key, String value) async {
|
|
final prefs = await getInstance();
|
|
prefs.setString("$_basePrefix$key", value);
|
|
}
|
|
|
|
Future<String> getString(String key) async {
|
|
final prefs = await getInstance();
|
|
return prefs.getString("$_basePrefix$key") ?? '';
|
|
}
|
|
|
|
void setBool(String key, bool value) async {
|
|
final prefs = await getInstance();
|
|
prefs.setBool("$_basePrefix$key", value);
|
|
}
|
|
|
|
Future<bool> getBool(String key) async {
|
|
final prefs = await getInstance();
|
|
return prefs.getBool("$_basePrefix$key") ?? false;
|
|
}
|
|
|
|
void setInt(String key, int value) async {
|
|
final prefs = await getInstance();
|
|
prefs.setInt("$_basePrefix$key", value);
|
|
}
|
|
|
|
Future<int> getInt(String key) async {
|
|
final prefs = await getInstance();
|
|
return prefs.getInt("$_basePrefix$key") ?? 0;
|
|
}
|
|
|
|
void deleteKey(String key) async {
|
|
final prefs = await getInstance();
|
|
prefs.remove("$_basePrefix$key");
|
|
}
|
|
}
|