mirror of
https://github.com/foss42/apidash.git
synced 2025-08-06 13:51:20 +08:00
42 lines
1.5 KiB
Dart
42 lines
1.5 KiB
Dart
import 'package:apidash_core/apidash_core.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import '../models/models.dart';
|
|
|
|
const String kSharedPrefSettingsKey = 'apidash-settings';
|
|
const String kSharedPrefOnboardingKey = 'apidash-onboard-status';
|
|
|
|
Future<SettingsModel?> getSettingsFromSharedPrefs() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
var settingsStr = prefs.getString(kSharedPrefSettingsKey);
|
|
if (settingsStr != null) {
|
|
var jsonSettings = kJsonDecoder.convert(settingsStr);
|
|
var jsonMap = Map<String, Object?>.from(jsonSettings);
|
|
var settingsModel = SettingsModel.fromJson(jsonMap);
|
|
return settingsModel;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
Future<void> setSettingsToSharedPrefs(SettingsModel settingsModel) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setString(kSharedPrefSettingsKey, settingsModel.toString());
|
|
}
|
|
|
|
Future<void> setOnboardingStatusToSharedPrefs(
|
|
{required bool isOnboardingComplete}) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setBool(kSharedPrefOnboardingKey, isOnboardingComplete);
|
|
}
|
|
|
|
Future<bool> getOnboardingStatusFromSharedPrefs() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final bool? onboardingStatus = prefs.getBool(kSharedPrefOnboardingKey);
|
|
return onboardingStatus ?? false;
|
|
}
|
|
|
|
Future<void> clearSharedPrefs() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.remove(kSharedPrefSettingsKey);
|
|
}
|