Files
flutter-picgo/lib/utils/shared_preferences.dart
2020-07-22 11:49:43 +08:00

132 lines
2.9 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'dart:async';
import 'package:flutter_picgo/resources/pb_type_keys.dart';
import 'package:flutter_picgo/resources/shared_preferences_keys.dart';
import 'package:shared_preferences/shared_preferences.dart';
export 'package:flutter_picgo/resources/shared_preferences_keys.dart';
/// 用来做shared_preferences的存储
class SpUtil {
static SpUtil _instance;
static Future<SpUtil> get instance async {
return await getInstance();
}
static SharedPreferences _spf;
SpUtil._();
Future _init() async {
_spf = await SharedPreferences.getInstance();
}
static Future<SpUtil> getInstance() async {
if (_instance == null) {
_instance = new SpUtil._();
}
if (_spf == null) {
await _instance._init();
}
return _instance;
}
static bool _beforeCheck() {
if (_spf == null) {
return true;
}
return false;
}
/// 设置默认图床
setDefaultPB(String type) {
putString(SharedPreferencesKeys.settingDefaultPB, type);
}
/// 获取当前默认图床默认为github
String getDefaultPB() {
return getString(SharedPreferencesKeys.settingDefaultPB) ??
PBTypeKeys.github;
}
// 判断是否存在数据
bool hasKey(String key) {
Set keys = getKeys();
return keys.contains(key);
}
Set<String> getKeys() {
if (_beforeCheck()) return null;
return _spf.getKeys();
}
get(String key) {
if (_beforeCheck()) return null;
return _spf.get(key);
}
getString(String key) {
if (_beforeCheck()) return null;
return _spf.getString(key);
}
Future<bool> putString(String key, String value) {
if (_beforeCheck()) return null;
return _spf.setString(key, value);
}
bool getBool(String key) {
if (_beforeCheck()) return null;
return _spf.getBool(key);
}
Future<bool> putBool(String key, bool value) {
if (_beforeCheck()) return null;
return _spf.setBool(key, value);
}
int getInt(String key) {
if (_beforeCheck()) return null;
return _spf.getInt(key);
}
Future<bool> putInt(String key, int value) {
if (_beforeCheck()) return null;
return _spf.setInt(key, value);
}
double getDouble(String key) {
if (_beforeCheck()) return null;
return _spf.getDouble(key);
}
Future<bool> putDouble(String key, double value) {
if (_beforeCheck()) return null;
return _spf.setDouble(key, value);
}
List<String> getStringList(String key) {
return _spf.getStringList(key);
}
Future<bool> putStringList(String key, List<String> value) {
if (_beforeCheck()) return null;
return _spf.setStringList(key, value);
}
dynamic getDynamic(String key) {
if (_beforeCheck()) return null;
return _spf.get(key);
}
Future<bool> remove(String key) {
if (_beforeCheck()) return null;
return _spf.remove(key);
}
Future<bool> clear() {
if (_beforeCheck()) return null;
return _spf.clear();
}
}