diff --git a/lib/controllers/auth_url.dart b/lib/controllers/auth_url.dart index 1fe0695..156eb81 100644 --- a/lib/controllers/auth_url.dart +++ b/lib/controllers/auth_url.dart @@ -23,10 +23,8 @@ class AuthUrlController extends AsyncNotifier { ), ); - static final provider = - AsyncNotifierProvider.family< - AuthUrlController, - OAuthAuthCodeResponse, - Uri - >(AuthUrlController.new); + static final provider = AsyncNotifierProvider.family + .autoDispose( + AuthUrlController.new, + ); } diff --git a/lib/pages/select_server.dart b/lib/pages/select_server.dart index c476f98..f7cefb8 100644 --- a/lib/pages/select_server.dart +++ b/lib/pages/select_server.dart @@ -58,6 +58,9 @@ class SelectServerPage extends HookConsumerWidget { await ref.watch(LaunchHelper.provider).launchUrl(codeResponse.url); AppLinks().uriLinkStream.listen((encodedUri) async { + final state = encodedUri.queryParameters["state"]; + if (state != codeResponse.state) return; + final code = encodedUri.queryParameters["code"]; if (code != null) { diff --git a/lib/pages/verify.dart b/lib/pages/verify.dart index 1b4f7ad..4eefa6c 100644 --- a/lib/pages/verify.dart +++ b/lib/pages/verify.dart @@ -2,6 +2,7 @@ import "package:flutter/material.dart"; import "package:flutter_hooks/flutter_hooks.dart"; import "package:hooks_riverpod/hooks_riverpod.dart"; import "package:nexus/controllers/client.dart"; +import "package:nexus/pages/settings.dart"; import "package:nexus/widgets/appbar.dart"; import "package:nexus/helpers/required_validator_helper.dart"; @@ -32,7 +33,15 @@ class VerifyPage extends HookConsumerWidget { } return Scaffold( - appBar: Appbar(), + appBar: Appbar( + actions: .new([ + IconButton( + onPressed: () => + showDialog(context: context, builder: (_) => SettingsPage()), + icon: Icon(Icons.settings), + ), + ]), + ), body: AlertDialog( title: Text("Verify"), content: Form(