-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathshared_preferences.dart
131 lines (105 loc) · 2.88 KB
/
shared_preferences.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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();
}
}