diff --git a/lib/riverpod_controllers/account_services.dart b/lib/riverpod_controllers/account_services.dart index cb1b0cc..22fd0e2 100644 --- a/lib/riverpod_controllers/account_services.dart +++ b/lib/riverpod_controllers/account_services.dart @@ -103,7 +103,7 @@ class CredentialSignin extends _$CredentialSignin { return false; } - FutureResult signIn() async { + FutureResult signIn(bool activateProfileOnSuccess) async { final result = await credentials.signIn(ref).andThenAsync((signedInCredentials) async { ref.read(statusServiceProvider.notifier).setStatus( @@ -126,7 +126,7 @@ class CredentialSignin extends _$CredentialSignin { ref .read(statusServiceProvider.notifier) .setStatus('Loaded user profile ${profileData.handle}'); - if (ref.read(loggedInProfilesProvider).isEmpty) { + if (activateProfileOnSuccess) { ref.read(activeProfileProvider.notifier).setActiveProfile(loginProfile); } ref.read(loggedInProfilesProvider.notifier).add(loginProfile); @@ -158,10 +158,10 @@ class ProfileManager extends _$ProfileManager { return false; } - FutureResult signIn() async { + FutureResult signIn(bool activateProfileOnSuccess) async { return await ref .read(credentialSigninProvider(profile.credentials).notifier) - .signIn(); + .signIn(activateProfileOnSuccess); } Future signOut({bool withNotification = true}) async { @@ -218,7 +218,8 @@ class AccountServicesInitializer extends _$AccountServicesInitializer { continue; } - final pr = await ref.read(profileManagerProvider(p).notifier).signIn(); + final pr = + await ref.read(profileManagerProvider(p).notifier).signIn(false); if (pr.isSuccess) { final profile = pr.value; if (profile.id.isNotEmpty && profile.id == lastActiveProfile) { diff --git a/lib/screens/sign_in.dart b/lib/screens/sign_in.dart index 5e299dd..f1eb0f2 100644 --- a/lib/screens/sign_in.dart +++ b/lib/screens/sign_in.dart @@ -444,7 +444,7 @@ class _SignInScreenState extends ConsumerState { buildSnackbar(context, 'Attempting to sign in account...'); final result = - await ref.read(credentialSigninProvider(creds).notifier).signIn(); + await ref.read(credentialSigninProvider(creds).notifier).signIn(true); if (context.mounted && result.isFailure) { buildSnackbar(context, 'Error signing in: ${result.error}');