Correct persitence

This commit is contained in:
Hillel Coren 2021-11-04 10:10:12 +02:00
parent c4a0c956d3
commit 6c88a570cd
27 changed files with 32 additions and 26 deletions

View File

@ -152,6 +152,7 @@ const int kMillisecondsToRefreshActivities = 1000 * 60 * 60 * 24; // 1 day
const int kMillisecondsToRefreshStaticData = 1000 * 60 * 60 * 24; // 1 day
const int kMillisecondsToDebounceUpdate = 500; // .5 second
const int kMillisecondsToDebounceSave = 1500; // 1.5 seconds
const int kMillisecondsToDebounceWrite = 3000; // 3 seconds
const String kLanguageEnglish = '1';

View File

@ -27,6 +27,7 @@ import 'package:invoiceninja_flutter/ui/app/app_builder.dart';
import 'package:invoiceninja_flutter/ui/app/main_screen.dart';
import 'package:invoiceninja_flutter/ui/auth/login_vm.dart';
import 'package:invoiceninja_flutter/ui/dashboard/dashboard_screen_vm.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
@ -405,6 +406,8 @@ Middleware<AppState> _createPersistData(
};
}
final _persistUIDebouncer =
Debouncer(milliseconds: kMillisecondsToDebounceWrite);
Middleware<AppState> _createPersistUI(PersistenceRepository uiRepository) {
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
final action = dynamicAction as PersistUI;
@ -412,7 +415,9 @@ Middleware<AppState> _createPersistUI(PersistenceRepository uiRepository) {
next(action);
if (store.state.prefState.persistUI) {
uiRepository.saveUIState(store.state.uiState);
_persistUIDebouncer.run(() {
uiRepository.saveUIState(store.state.uiState);
});
}
};
}

View File

@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:url_launcher/url_launcher.dart';
class ViewClientList implements StopLoading {
class ViewClientList implements PersistUI {
ViewClientList({
this.force = false,
});

View File

@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewCompanyGatewayList implements StopLoading {
class ViewCompanyGatewayList implements PersistUI {
ViewCompanyGatewayList({this.force = false});
final bool force;

View File

@ -15,7 +15,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:url_launcher/url_launcher.dart';
class ViewCreditList implements StopLoading {
class ViewCreditList implements PersistUI {
ViewCreditList({this.force = false});
final bool force;

View File

@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewDesignList implements StopLoading {
class ViewDesignList implements PersistUI {
ViewDesignList({
this.force = false,
});

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewDocumentList implements StopLoading {
class ViewDocumentList implements PersistUI {
ViewDocumentList({this.force = false});
final bool force;

View File

@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewExpenseList implements StopLoading {
class ViewExpenseList implements PersistUI {
ViewExpenseList({this.force = false});
final bool force;

View File

@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
class ViewExpenseCategoryList implements StopLoading {
class ViewExpenseCategoryList implements PersistUI {
ViewExpenseCategoryList({
this.force = false,
});

View File

@ -14,7 +14,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewGroupList implements StopLoading {
class ViewGroupList implements PersistUI {
ViewGroupList({this.force = false});
final bool force;

View File

@ -14,7 +14,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:url_launcher/url_launcher.dart';
class ViewInvoiceList implements StopLoading {
class ViewInvoiceList implements PersistUI {
ViewInvoiceList({this.force = false});
final bool force;

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewPaymentList implements StopLoading {
class ViewPaymentList implements PersistUI {
ViewPaymentList({this.force = false});
final bool force;

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewPaymentTermList implements StopLoading {
class ViewPaymentTermList implements PersistUI {
ViewPaymentTermList({
this.force = false,
});

View File

@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewProductList implements StopLoading {
class ViewProductList implements PersistUI {
ViewProductList({this.force = false});
final bool force;

View File

@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewProjectList implements StopLoading {
class ViewProjectList implements PersistUI {
ViewProjectList({this.force = false});
final bool force;

View File

@ -15,7 +15,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:url_launcher/url_launcher.dart';
class ViewQuoteList implements StopLoading {
class ViewQuoteList implements PersistUI {
ViewQuoteList({this.force = false});
final bool force;

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
class ViewRecurringExpenseList implements StopLoading {
class ViewRecurringExpenseList implements PersistUI {
ViewRecurringExpenseList({
this.force = false,
});

View File

@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:url_launcher/url_launcher.dart';
class ViewRecurringInvoiceList implements StopLoading {
class ViewRecurringInvoiceList implements PersistUI {
ViewRecurringInvoiceList({
this.force = false,
});

View File

@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
class ViewSubscriptionList implements StopLoading {
class ViewSubscriptionList implements PersistUI {
ViewSubscriptionList({
this.force = false,
});

View File

@ -16,7 +16,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewTaskList implements StopLoading {
class ViewTaskList implements PersistUI {
ViewTaskList({this.force = false});
final bool force;

View File

@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
class ViewTaskStatusList implements StopLoading {
class ViewTaskStatusList implements PersistUI {
ViewTaskStatusList({
this.force = false,
});

View File

@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
class ViewTaxRateList implements StopLoading {
class ViewTaxRateList implements PersistUI {
ViewTaxRateList({this.force = false});
final bool force;

View File

@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewTokenList implements StopLoading {
class ViewTokenList implements PersistUI {
ViewTokenList({
this.force = false,
});

View File

@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/utils/completers.dart';
class ViewUserList implements StopLoading {
class ViewUserList implements PersistUI {
ViewUserList({this.force = false});
final bool force;

View File

@ -11,7 +11,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewVendorList implements StopLoading {
class ViewVendorList implements PersistUI {
ViewVendorList({this.force = false});
final bool force;

View File

@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'
import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class ViewWebhookList implements StopLoading {
class ViewWebhookList implements PersistUI {
ViewWebhookList({
this.force = false,
});

View File

@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
class ViewStubList implements StopLoading {
class ViewStubList implements PersistUI {
ViewStubList({
this.force = false
});