init
This commit is contained in:
43
app/lib/services/settings_service.dart
Normal file
43
app/lib/services/settings_service.dart
Normal file
@@ -0,0 +1,43 @@
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class SettingsService {
|
||||
static const _keyServerUrl = 'server_url';
|
||||
static const _keyToken = 'token';
|
||||
static const _keyAutoUpload = 'auto_upload';
|
||||
|
||||
static const _keyUploaded = 'uploaded_keys';
|
||||
|
||||
final SharedPreferences _prefs;
|
||||
|
||||
SettingsService(this._prefs);
|
||||
|
||||
String? get serverUrl => _prefs.getString(_keyServerUrl);
|
||||
Future<bool> setServerUrl(String v) => _prefs.setString(_keyServerUrl, v);
|
||||
|
||||
String? get token => _prefs.getString(_keyToken);
|
||||
Future<bool> setToken(String v) => _prefs.setString(_keyToken, v);
|
||||
|
||||
bool get autoUpload => _prefs.getBool(_keyAutoUpload) ?? false;
|
||||
Future<bool> setAutoUpload(bool v) => _prefs.setBool(_keyAutoUpload, v);
|
||||
|
||||
bool get isConfigured => serverUrl != null && token != null;
|
||||
|
||||
Set<String> getUploadedKeys() => _prefs.getStringList(_keyUploaded)?.toSet() ?? <String>{};
|
||||
|
||||
Future<bool> addUploadedKey(String key) {
|
||||
final keys = _prefs.getStringList(_keyUploaded) ?? [];
|
||||
keys.add(key);
|
||||
return _prefs.setStringList(_keyUploaded, keys);
|
||||
}
|
||||
|
||||
Future<bool> addUploadedKeys(List<String> newKeys) {
|
||||
final keys = _prefs.getStringList(_keyUploaded) ?? [];
|
||||
keys.addAll(newKeys);
|
||||
return _prefs.setStringList(_keyUploaded, keys);
|
||||
}
|
||||
|
||||
static Future<SettingsService> init() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
return SettingsService(prefs);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user