ok lets ship for now
This commit is contained in:
@@ -3,6 +3,7 @@ library;
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
import '../models/app_cloud_prefs.dart';
|
||||
import '../models/home_built_in_sections.dart';
|
||||
import '../models/home_filter_widget.dart';
|
||||
import '../models/overview_favourite.dart';
|
||||
@@ -28,9 +29,18 @@ class PreferencesController extends ChangeNotifier {
|
||||
/// Fired after Home widgets are persisted (for cloud push debounce).
|
||||
VoidCallback? onHomeWidgetsPersisted;
|
||||
|
||||
/// Fired after Home sections / Look ahead are persisted.
|
||||
VoidCallback? onAppPrefsPersisted;
|
||||
|
||||
/// Years ahead Look ahead can navigate (1–30, default 5).
|
||||
int get lookAheadMaxYears => _lookAheadMaxYears;
|
||||
|
||||
/// Snapshot used for PocketBase `app_prefs` sync.
|
||||
AppCloudPrefs get cloudPrefs => AppCloudPrefs(
|
||||
homeBuiltInSections: _homeBuiltInSections,
|
||||
lookAheadMaxYears: _lookAheadMaxYears,
|
||||
);
|
||||
|
||||
List<OverviewFavourite> get overviewFavourites =>
|
||||
List.unmodifiable(_overviewFavourites);
|
||||
|
||||
@@ -55,7 +65,10 @@ class PreferencesController extends ChangeNotifier {
|
||||
|
||||
HomeBuiltInSections get homeBuiltInSections => _homeBuiltInSections;
|
||||
|
||||
Future<void> setHomeBuiltInSections(HomeBuiltInSections sections) async {
|
||||
Future<void> setHomeBuiltInSections(
|
||||
HomeBuiltInSections sections, {
|
||||
bool schedulePush = true,
|
||||
}) async {
|
||||
if (sections.showTransactions == _homeBuiltInSections.showTransactions &&
|
||||
sections.showCategorized == _homeBuiltInSections.showCategorized &&
|
||||
sections.showRecent == _homeBuiltInSections.showRecent) {
|
||||
@@ -64,6 +77,7 @@ class PreferencesController extends ChangeNotifier {
|
||||
_homeBuiltInSections = sections;
|
||||
notifyListeners();
|
||||
await _storage.saveHomeBuiltInSections(sections);
|
||||
if (schedulePush) onAppPrefsPersisted?.call();
|
||||
}
|
||||
|
||||
Future<void> setHomeShowTransactions(bool value) => setHomeBuiltInSections(
|
||||
@@ -78,12 +92,29 @@ class PreferencesController extends ChangeNotifier {
|
||||
_homeBuiltInSections.copyWith(showRecent: value),
|
||||
);
|
||||
|
||||
Future<void> setLookAheadMaxYears(int years) async {
|
||||
Future<void> setLookAheadMaxYears(
|
||||
int years, {
|
||||
bool schedulePush = true,
|
||||
}) async {
|
||||
final next = years.clamp(1, 30);
|
||||
if (next == _lookAheadMaxYears) return;
|
||||
_lookAheadMaxYears = next;
|
||||
notifyListeners();
|
||||
await _storage.setLookAheadMaxYears(next);
|
||||
if (schedulePush) onAppPrefsPersisted?.call();
|
||||
}
|
||||
|
||||
Future<void> replaceCloudPrefs(
|
||||
AppCloudPrefs prefs, {
|
||||
bool notify = true,
|
||||
bool schedulePush = false,
|
||||
}) async {
|
||||
_homeBuiltInSections = prefs.homeBuiltInSections;
|
||||
_lookAheadMaxYears = prefs.lookAheadMaxYears.clamp(1, 30);
|
||||
if (notify) notifyListeners();
|
||||
await _storage.saveHomeBuiltInSections(_homeBuiltInSections);
|
||||
await _storage.setLookAheadMaxYears(_lookAheadMaxYears);
|
||||
if (schedulePush) onAppPrefsPersisted?.call();
|
||||
}
|
||||
|
||||
Future<void> addOverviewFavourite(OverviewFavourite favourite) async {
|
||||
|
||||
Reference in New Issue
Block a user