34 lines
1.0 KiB
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);
|
|
});
|