Correct changing languages

This commit is contained in:
Hillel Coren 2020-07-15 14:32:57 +03:00
parent 5f87c90f84
commit 8c6dba446f
4 changed files with 20 additions and 6 deletions

View File

@ -100,16 +100,16 @@ class AuthRepository {
} }
Future<LoginResponse> refresh( Future<LoginResponse> refresh(
{String url, String token, int updatedAt}) async { {@required String url,
@required String token,
@required int updatedAt,
@required bool includeStatic}) async {
url = formatApiUrl(url) + '/refresh'; url = formatApiUrl(url) + '/refresh';
bool includeStatic = false;
if (updatedAt > 0) { if (updatedAt > 0) {
// TODO re-enable this // TODO re-enable this
//url += '?updated_at=$updatedAt'; //url += '?updated_at=$updatedAt';
includeStatic = includeStatic ||
includeStatic =
DateTime.now().millisecondsSinceEpoch - (updatedAt * 1000) > DateTime.now().millisecondsSinceEpoch - (updatedAt * 1000) >
kMillisecondsToRefreshStaticData; kMillisecondsToRefreshStaticData;
} else { } else {

View File

@ -136,10 +136,12 @@ class RefreshData implements StartLoading {
RefreshData({ RefreshData({
this.completer, this.completer,
this.clearData = false, this.clearData = false,
this.includeStatic = false,
}); });
final Completer completer; final Completer completer;
final bool clearData; final bool clearData;
final bool includeStatic;
} }
class ClearData {} class ClearData {}

View File

@ -214,6 +214,7 @@ Middleware<AppState> _createRefreshRequest(AuthRepository repository) {
url: url, url: url,
token: token, token: token,
updatedAt: updatedAt - kUpdatedAtBufferSeconds, updatedAt: updatedAt - kUpdatedAtBufferSeconds,
includeStatic: action.includeStatic,
) )
.then((data) { .then((data) {
if (action.clearData) { if (action.clearData) {

View File

@ -1,3 +1,5 @@
import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart'; import 'package:flutter_redux/flutter_redux.dart';
@ -6,10 +8,12 @@ import 'package:invoiceninja_flutter/data/models/client_model.dart';
import 'package:invoiceninja_flutter/data/models/company_model.dart'; import 'package:invoiceninja_flutter/data/models/company_model.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/group_model.dart'; import 'package:invoiceninja_flutter/data/models/group_model.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/client/client_actions.dart'; import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
import 'package:invoiceninja_flutter/redux/company/company_actions.dart'; import 'package:invoiceninja_flutter/redux/company/company_actions.dart';
import 'package:invoiceninja_flutter/redux/group/group_actions.dart'; import 'package:invoiceninja_flutter/redux/group/group_actions.dart';
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart'; import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
import 'package:invoiceninja_flutter/ui/app/app_builder.dart';
import 'package:invoiceninja_flutter/ui/settings/localization_settings.dart'; import 'package:invoiceninja_flutter/ui/settings/localization_settings.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';
@ -61,7 +65,14 @@ class LocalizationSettingsVM {
switch (settingsUIState.entityType) { switch (settingsUIState.entityType) {
case EntityType.company: case EntityType.company:
final completer = snackBarCompleter<Null>( final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings); context, AppLocalization.of(context).savedSettings)
..future.then<dynamic>((value) {
store.dispatch(RefreshData(
includeStatic: true,
completer: Completer<dynamic>()
..future.then((dynamic value) =>
AppBuilder.of(context).rebuild())));
});
store.dispatch(SaveCompanyRequest( store.dispatch(SaveCompanyRequest(
completer: completer, company: settingsUIState.company)); completer: completer, company: settingsUIState.company));
break; break;