MotorSignal-App/lib/features/dashboard/dashboard_config.dart

34 lines
1.0 KiB
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../records/records_service.dart'; // To get sharedPreferencesProvider
enum DashboardLayout { sport, touring, minimal }
class DashboardConfig extends StateNotifier<DashboardLayout> {
final SharedPreferences _prefs;
DashboardConfig(this._prefs) : super(_loadFromPrefs(_prefs));
static DashboardLayout _loadFromPrefs(SharedPreferences prefs) {
final val = prefs.getString('dashboardLayout');
switch (val) {
case 'touring':
return DashboardLayout.touring;
case 'minimal':
return DashboardLayout.minimal;
default:
return DashboardLayout.sport;
}
}
void setLayout(DashboardLayout layout) {
state = layout;
_prefs.setString('dashboardLayout', layout.name);
}
}
final dashboardConfigProvider = StateNotifierProvider<DashboardConfig, DashboardLayout>((ref) {
final prefs = ref.watch(sharedPreferencesProvider);
return DashboardConfig(prefs);
});