102 lines
3.0 KiB
Dart
102 lines
3.0 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class SharedPreferencesUtil {
|
|
SharedPreferencesUtil._();
|
|
|
|
static SharedPreferencesUtil? _instance;
|
|
late SharedPreferences sharedPreferences;
|
|
|
|
static SharedPreferencesUtil? getInstance() {
|
|
_instance ??= SharedPreferencesUtil._();
|
|
return _instance;
|
|
}
|
|
|
|
static saveData<T>(String key, T value) async {
|
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
|
|
|
switch (T) {
|
|
case String:
|
|
prefs.setString(key, value as String);
|
|
break;
|
|
case int:
|
|
prefs.setInt(key, value as int);
|
|
break;
|
|
case bool:
|
|
prefs.setBool(key, value as bool);
|
|
break;
|
|
case double:
|
|
prefs.setDouble(key, value as double);
|
|
break;
|
|
}
|
|
}
|
|
|
|
static Future<T?> getData<T>(String key) async {
|
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
|
|
|
T? res;
|
|
switch (T) {
|
|
case String:
|
|
res = prefs.getString(key) as T;
|
|
break;
|
|
case int:
|
|
res = prefs.getInt(key) as T;
|
|
break;
|
|
case bool:
|
|
res = prefs.getBool(key) as T;
|
|
break;
|
|
case double:
|
|
res = prefs.getDouble(key) as T;
|
|
break;
|
|
}
|
|
|
|
return res;
|
|
}
|
|
|
|
Future<bool> setBool(String tag, bool isFirst) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return sharedPreferences.setBool(tag, isFirst);
|
|
}
|
|
|
|
Future<bool> setString(String tag, String data) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return sharedPreferences.setString(tag, data);
|
|
}
|
|
|
|
Future<bool> setMap(String tag, Map<String, dynamic>? data) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return sharedPreferences.setString(tag, jsonEncode(data));
|
|
}
|
|
|
|
Future<bool> setList(String tag, List<dynamic>? data) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return sharedPreferences.setString(tag, jsonEncode(data));
|
|
}
|
|
|
|
Future<bool?> getBool(String tag) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return sharedPreferences.getBool(tag);
|
|
}
|
|
|
|
Future<String?> getString(String tag) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return sharedPreferences.getString(tag);
|
|
}
|
|
|
|
Future<Map<String, dynamic>> getMap(String tag) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return jsonDecode(sharedPreferences.getString(tag) ?? '{}');
|
|
}
|
|
|
|
Future<List<dynamic>> getList(String tag) async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return jsonDecode(sharedPreferences.getString(tag) ?? '[]');
|
|
}
|
|
|
|
Future<bool> clear() async {
|
|
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
return sharedPreferences.clear();
|
|
}
|
|
}
|