From fd9633c05a9d98c22f7a11f0361e703b4743caed Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Fri, 17 May 2024 08:57:18 +0200 Subject: [PATCH] Force cookie to be saved if not (#5254) --- .../data_models/user_management_provider.dart | 20 +++++++++++-------- packages/smooth_app/lib/main.dart | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/smooth_app/lib/data_models/user_management_provider.dart b/packages/smooth_app/lib/data_models/user_management_provider.dart index 8a45dd082c..5749966146 100644 --- a/packages/smooth_app/lib/data_models/user_management_provider.dart +++ b/packages/smooth_app/lib/data_models/user_management_provider.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; @@ -110,14 +112,16 @@ class UserManagementProvider with ChangeNotifier { password: user.password, ), ); - switch (loginResult.type) { - case LoginResultType.successful: - case LoginResultType.serverIssue: - case LoginResultType.exception: - return; - case LoginResultType.unsuccessful: - // TODO(m123): Notify the user - await logout(); + + if (loginResult.type == LoginResultType.unsuccessful) { + // TODO(m123): Notify the user + await logout(); + return; + } + + /// Save the cookie if necessary + if (user.cookie == null && loginResult.user?.cookie != null) { + putUser(loginResult.user!); } } } diff --git a/packages/smooth_app/lib/main.dart b/packages/smooth_app/lib/main.dart index 8c4e1686d5..74660c8737 100644 --- a/packages/smooth_app/lib/main.dart +++ b/packages/smooth_app/lib/main.dart @@ -136,6 +136,7 @@ Future _init1() async { ), daoString: DaoString(_localDatabase), ); + ProductQuery.setQueryType(_userPreferences); UserManagementProvider().checkUserLoginValidity(); await AnalyticsHelper.linkPreferences(_userPreferences); @@ -144,7 +145,6 @@ Future _init1() async { _themeProvider = ThemeProvider(_userPreferences); _colorProvider = ColorProvider(_userPreferences); _textContrastProvider = TextContrastProvider(_userPreferences); - ProductQuery.setQueryType(_userPreferences); await CameraHelper.init(); await ProductQuery.setUuid(_localDatabase);