diff --git a/lib/main.dart b/lib/main.dart index 273e463..615043e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:url_launcher/url_launcher.dart'; void main() { runApp(const MyApp()); @@ -59,13 +60,15 @@ class StatefulLoginForm extends StatefulWidget { } class _LoginForm extends State { - final usernameController = TextEditingController(); + final Uri getTokenUri = Uri.parse("https://www.jetbrains.com/help/youtrack/incloud/integration-with-gitea.html#enable-youtrack-integration-gitea"); final tokenController = TextEditingController(); final instanceController = TextEditingController(); String instance = "gitea.com"; @override Widget build(BuildContext context) { + final media = MediaQuery.of(context).size; + return SingleChildScrollView( child: Column( mainAxisAlignment: MainAxisAlignment.center, @@ -94,12 +97,6 @@ class _LoginForm extends State { ), controller: instanceController, ), - TextField( - decoration: const InputDecoration( - labelText: "Username", - ), - controller: usernameController, - ), TextField( decoration: const InputDecoration( labelText: "Token", @@ -107,16 +104,27 @@ class _LoginForm extends State { controller: tokenController, obscureText: true, ), - Container( + SizedBox( + width: (media.width > 600) ? media.width * 0.25 : media.width * 0.5, + child: Container( + padding: EdgeInsetsDirectional.all(15), child: ElevatedButton( child: const Text("Login"), onPressed: () => { }, ), - ) + )), + // + TextButton(onPressed: () => { + _launchUrl(getTokenUri) + }, child: Text("Need a Token? Find out how to generate one!")) ], ), ); } } + +void _launchUrl(Uri url) async { + if (!await launchUrl(url)) throw 'Could not launch $url'; +} diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index e71a16d..f6f23bf 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,10 @@ #include "generated_plugin_registrant.h" +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 51436ae..1fc8ed3 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + url_launcher_linux ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/pubspec.lock b/pubspec.lock index 424e8a8..7a95d19 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -79,6 +79,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" intl: dependency: "direct main" description: @@ -86,6 +91,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.17.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" lints: dependency: transitive description: @@ -121,6 +133,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" sky_engine: dependency: transitive description: flutter @@ -175,6 +194,62 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.0" + url_launcher: + dependency: "direct dev" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.0" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.16" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.15" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.5" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" vector_math: dependency: transitive description: @@ -184,3 +259,4 @@ packages: version: "2.1.1" sdks: dart: ">=2.16.2 <3.0.0" + flutter: ">=2.10.0" diff --git a/pubspec.yaml b/pubspec.yaml index bde348a..7f5554e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -48,7 +48,7 @@ dev_dependencies: # package. See that file for information about deactivating specific lint # rules and activating additional ones. flutter_lints: ^1.0.0 - + url_launcher: ^6.1.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec