Correct persitence
This commit is contained in:
parent
c4a0c956d3
commit
6c88a570cd
|
|
@ -152,6 +152,7 @@ const int kMillisecondsToRefreshActivities = 1000 * 60 * 60 * 24; // 1 day
|
||||||
const int kMillisecondsToRefreshStaticData = 1000 * 60 * 60 * 24; // 1 day
|
const int kMillisecondsToRefreshStaticData = 1000 * 60 * 60 * 24; // 1 day
|
||||||
const int kMillisecondsToDebounceUpdate = 500; // .5 second
|
const int kMillisecondsToDebounceUpdate = 500; // .5 second
|
||||||
const int kMillisecondsToDebounceSave = 1500; // 1.5 seconds
|
const int kMillisecondsToDebounceSave = 1500; // 1.5 seconds
|
||||||
|
const int kMillisecondsToDebounceWrite = 3000; // 3 seconds
|
||||||
|
|
||||||
const String kLanguageEnglish = '1';
|
const String kLanguageEnglish = '1';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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/app/main_screen.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/auth/login_vm.dart';
|
import 'package:invoiceninja_flutter/ui/auth/login_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/dashboard/dashboard_screen_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/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.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) {
|
Middleware<AppState> _createPersistUI(PersistenceRepository uiRepository) {
|
||||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||||
final action = dynamicAction as PersistUI;
|
final action = dynamicAction as PersistUI;
|
||||||
|
|
@ -412,7 +415,9 @@ Middleware<AppState> _createPersistUI(PersistenceRepository uiRepository) {
|
||||||
next(action);
|
next(action);
|
||||||
|
|
||||||
if (store.state.prefState.persistUI) {
|
if (store.state.prefState.persistUI) {
|
||||||
uiRepository.saveUIState(store.state.uiState);
|
_persistUIDebouncer.run(() {
|
||||||
|
uiRepository.saveUIState(store.state.uiState);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class ViewClientList implements StopLoading {
|
class ViewClientList implements PersistUI {
|
||||||
ViewClientList({
|
ViewClientList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewCompanyGatewayList implements StopLoading {
|
class ViewCompanyGatewayList implements PersistUI {
|
||||||
ViewCompanyGatewayList({this.force = false});
|
ViewCompanyGatewayList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class ViewCreditList implements StopLoading {
|
class ViewCreditList implements PersistUI {
|
||||||
ViewCreditList({this.force = false});
|
ViewCreditList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewDesignList implements StopLoading {
|
class ViewDesignList implements PersistUI {
|
||||||
ViewDesignList({
|
ViewDesignList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewDocumentList implements StopLoading {
|
class ViewDocumentList implements PersistUI {
|
||||||
ViewDocumentList({this.force = false});
|
ViewDocumentList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewExpenseList implements StopLoading {
|
class ViewExpenseList implements PersistUI {
|
||||||
ViewExpenseList({this.force = false});
|
ViewExpenseList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
||||||
|
|
||||||
class ViewExpenseCategoryList implements StopLoading {
|
class ViewExpenseCategoryList implements PersistUI {
|
||||||
ViewExpenseCategoryList({
|
ViewExpenseCategoryList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewGroupList implements StopLoading {
|
class ViewGroupList implements PersistUI {
|
||||||
ViewGroupList({this.force = false});
|
ViewGroupList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class ViewInvoiceList implements StopLoading {
|
class ViewInvoiceList implements PersistUI {
|
||||||
ViewInvoiceList({this.force = false});
|
ViewInvoiceList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewPaymentList implements StopLoading {
|
class ViewPaymentList implements PersistUI {
|
||||||
ViewPaymentList({this.force = false});
|
ViewPaymentList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewPaymentTermList implements StopLoading {
|
class ViewPaymentTermList implements PersistUI {
|
||||||
ViewPaymentTermList({
|
ViewPaymentTermList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewProductList implements StopLoading {
|
class ViewProductList implements PersistUI {
|
||||||
ViewProductList({this.force = false});
|
ViewProductList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewProjectList implements StopLoading {
|
class ViewProjectList implements PersistUI {
|
||||||
ViewProjectList({this.force = false});
|
ViewProjectList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class ViewQuoteList implements StopLoading {
|
class ViewQuoteList implements PersistUI {
|
||||||
ViewQuoteList({this.force = false});
|
ViewQuoteList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
||||||
|
|
||||||
class ViewRecurringExpenseList implements StopLoading {
|
class ViewRecurringExpenseList implements PersistUI {
|
||||||
ViewRecurringExpenseList({
|
ViewRecurringExpenseList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class ViewRecurringInvoiceList implements StopLoading {
|
class ViewRecurringInvoiceList implements PersistUI {
|
||||||
ViewRecurringInvoiceList({
|
ViewRecurringInvoiceList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
||||||
|
|
||||||
class ViewSubscriptionList implements StopLoading {
|
class ViewSubscriptionList implements PersistUI {
|
||||||
ViewSubscriptionList({
|
ViewSubscriptionList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewTaskList implements StopLoading {
|
class ViewTaskList implements PersistUI {
|
||||||
ViewTaskList({this.force = false});
|
ViewTaskList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
||||||
|
|
||||||
class ViewTaskStatusList implements StopLoading {
|
class ViewTaskStatusList implements PersistUI {
|
||||||
ViewTaskStatusList({
|
ViewTaskStatusList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
|
|
||||||
class ViewTaxRateList implements StopLoading {
|
class ViewTaxRateList implements PersistUI {
|
||||||
ViewTaxRateList({this.force = false});
|
ViewTaxRateList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewTokenList implements StopLoading {
|
class ViewTokenList implements PersistUI {
|
||||||
ViewTokenList({
|
ViewTokenList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
|
|
||||||
class ViewUserList implements StopLoading {
|
class ViewUserList implements PersistUI {
|
||||||
ViewUserList({this.force = false});
|
ViewUserList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewVendorList implements StopLoading {
|
class ViewVendorList implements PersistUI {
|
||||||
ViewVendorList({this.force = false});
|
ViewVendorList({this.force = false});
|
||||||
|
|
||||||
final bool force;
|
final bool force;
|
||||||
|
|
|
||||||
|
|
@ -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/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ViewWebhookList implements StopLoading {
|
class ViewWebhookList implements PersistUI {
|
||||||
ViewWebhookList({
|
ViewWebhookList({
|
||||||
this.force = false,
|
this.force = false,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart';
|
||||||
|
|
||||||
class ViewStubList implements StopLoading {
|
class ViewStubList implements PersistUI {
|
||||||
ViewStubList({
|
ViewStubList({
|
||||||
this.force = false
|
this.force = false
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue