From 498b18d4328d31ff47e88631e50081d08bbe8521 Mon Sep 17 00:00:00 2001 From: Amrit Prakash Date: Tue, 7 Mar 2023 02:11:52 +0530 Subject: [PATCH] Fix Onboarding screen appear multiple times in the lifecycle of app --- lib/src/providers/authstate_provider.dart | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/src/providers/authstate_provider.dart b/lib/src/providers/authstate_provider.dart index 6eafb30548..d5df28453c 100644 --- a/lib/src/providers/authstate_provider.dart +++ b/lib/src/providers/authstate_provider.dart @@ -1,3 +1,4 @@ +import 'package:blt/src/pages/welcome.dart'; import 'package:blt/src/util/api/user_api.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; @@ -38,10 +39,21 @@ class AuthNotifier extends StateNotifier> { read(loginProvider.notifier).setGuestLogin(); } + Future checkFirstLogin(BuildContext context) async{ + String? firstLogin = await storage.read(key: "firstLogin"); + if(firstLogin == null) { + await storage.write(key: "firstLogin", value: "false"); + }else if(firstLogin == "false"){ + Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute( + builder: (context) => WelcomePage()), (Route route) => false); + } + } + Future loadUserIfRemembered(BuildContext context) async { String? remember = await storage.read(key: "remember"); if (remember == null) { + checkFirstLogin(context); return false; }