mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-21 20:12:00 +00:00
+
This commit is contained in:
parent
8bba523ba6
commit
054fa0642c
17 changed files with 242 additions and 15 deletions
|
|
@ -14,6 +14,7 @@ import 'package:mangayomi/views/manga/detail/manga_reader_detail.dart';
|
||||||
import 'package:mangayomi/views/manga/home/manga_home_screen.dart';
|
import 'package:mangayomi/views/manga/home/manga_home_screen.dart';
|
||||||
import 'package:mangayomi/views/manga/home/manga_search_screen.dart';
|
import 'package:mangayomi/views/manga/home/manga_search_screen.dart';
|
||||||
import 'package:mangayomi/views/manga/reader/manga_reader_view.dart';
|
import 'package:mangayomi/views/manga/reader/manga_reader_view.dart';
|
||||||
|
import 'package:mangayomi/views/more/about_screen.dart';
|
||||||
import 'package:mangayomi/views/more/more_screen.dart';
|
import 'package:mangayomi/views/more/more_screen.dart';
|
||||||
import 'package:mangayomi/views/more/settings/appearance/appearance_screen.dart';
|
import 'package:mangayomi/views/more/settings/appearance/appearance_screen.dart';
|
||||||
import 'package:mangayomi/views/more/settings/settings_screen.dart';
|
import 'package:mangayomi/views/more/settings/settings_screen.dart';
|
||||||
|
|
@ -217,6 +218,19 @@ class AsyncRouterNotifier extends ChangeNotifier {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
GoRoute(
|
||||||
|
path: "/about",
|
||||||
|
name: "about",
|
||||||
|
builder: (context, state) {
|
||||||
|
return const AboutScreen();
|
||||||
|
},
|
||||||
|
pageBuilder: (context, state) {
|
||||||
|
return CustomTransition(
|
||||||
|
key: state.pageKey,
|
||||||
|
child: const AboutScreen(),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,7 @@ import 'package:mangayomi/utils/cached_network.dart';
|
||||||
import 'package:mangayomi/utils/headers.dart';
|
import 'package:mangayomi/utils/headers.dart';
|
||||||
import 'package:mangayomi/utils/lang.dart';
|
import 'package:mangayomi/utils/lang.dart';
|
||||||
import 'package:mangayomi/views/library/search_text_form_field.dart';
|
import 'package:mangayomi/views/library/search_text_form_field.dart';
|
||||||
import 'package:mangayomi/views/manga/home/manga_home_screen.dart';
|
|
||||||
import 'package:mangayomi/views/widgets/bottom_text_widget.dart';
|
import 'package:mangayomi/views/widgets/bottom_text_widget.dart';
|
||||||
import 'package:mangayomi/views/widgets/manga_image_card_widget.dart';
|
|
||||||
|
|
||||||
class GlobalSearchScreen extends ConsumerStatefulWidget {
|
class GlobalSearchScreen extends ConsumerStatefulWidget {
|
||||||
const GlobalSearchScreen({
|
const GlobalSearchScreen({
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:developer';
|
|
||||||
|
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
|
@ -52,6 +50,7 @@ class _HistoryScreenState extends ConsumerState<HistoryScreen> {
|
||||||
},
|
},
|
||||||
onSuffixPressed: () {
|
onSuffixPressed: () {
|
||||||
_textEditingController.clear();
|
_textEditingController.clear();
|
||||||
|
setState(() {});
|
||||||
},
|
},
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:developer';
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:hive_flutter/hive_flutter.dart';
|
import 'package:hive_flutter/hive_flutter.dart';
|
||||||
|
|
@ -62,6 +60,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
|
||||||
controller: _textEditingController,
|
controller: _textEditingController,
|
||||||
onSuffixPressed: () {
|
onSuffixPressed: () {
|
||||||
_textEditingController.clear();
|
_textEditingController.clear();
|
||||||
|
setState(() {});
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
: IconButton(
|
: IconButton(
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:developer';
|
|
||||||
|
|
||||||
import 'package:mangayomi/providers/hive_provider.dart';
|
import 'package:mangayomi/providers/hive_provider.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
part 'library_state_provider.g.dart';
|
part 'library_state_provider.g.dart';
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,9 @@ class SeachFormTextField extends StatelessWidget {
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Icons.arrow_back,
|
Icons.arrow_back,
|
||||||
)),
|
)),
|
||||||
suffixIcon: IconButton(
|
suffixIcon: controller.text.isEmpty
|
||||||
|
? null
|
||||||
|
: IconButton(
|
||||||
onPressed: onSuffixPressed, icon: const Icon(Icons.clear)),
|
onPressed: onSuffixPressed, icon: const Icon(Icons.clear)),
|
||||||
enabledBorder: const OutlineInputBorder(
|
enabledBorder: const OutlineInputBorder(
|
||||||
borderSide: BorderSide.none,
|
borderSide: BorderSide.none,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:developer';
|
|
||||||
|
|
||||||
import 'package:mangayomi/models/manga_history.dart';
|
import 'package:mangayomi/models/manga_history.dart';
|
||||||
import 'package:mangayomi/models/manga_reader.dart';
|
import 'package:mangayomi/models/manga_reader.dart';
|
||||||
import 'package:mangayomi/models/model_manga.dart';
|
import 'package:mangayomi/models/model_manga.dart';
|
||||||
|
|
|
||||||
105
lib/views/more/about_screen.dart
Normal file
105
lib/views/more/about_screen.dart
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
|
|
||||||
|
class AboutScreen extends StatefulWidget {
|
||||||
|
const AboutScreen({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<AboutScreen> createState() => _AboutScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _AboutScreenState extends State<AboutScreen> {
|
||||||
|
Future<void> _launchInBrowser(Uri url) async {
|
||||||
|
if (!await launchUrl(
|
||||||
|
url,
|
||||||
|
mode: LaunchMode.externalApplication,
|
||||||
|
)) {
|
||||||
|
throw 'Could not launch $url';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PackageInfo _packageInfo = PackageInfo(
|
||||||
|
appName: 'Unknown',
|
||||||
|
packageName: 'Unknown',
|
||||||
|
version: 'Unknown',
|
||||||
|
buildNumber: 'Unknown',
|
||||||
|
buildSignature: 'Unknown',
|
||||||
|
installerStore: 'Unknown',
|
||||||
|
);
|
||||||
|
|
||||||
|
Future<void> _initPackageInfo() async {
|
||||||
|
final info = await PackageInfo.fromPlatform();
|
||||||
|
if (mounted) {
|
||||||
|
setState(() {
|
||||||
|
_packageInfo = info;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
_initPackageInfo();
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
title: const Text('About'),
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: [
|
||||||
|
const SizedBox(height: 150, child: Center(child: Text("LOGO"))),
|
||||||
|
Flexible(
|
||||||
|
flex: 3,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
const Divider(
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
onTap: () {},
|
||||||
|
title: const Text('Version'),
|
||||||
|
subtitle: Text(
|
||||||
|
'Beta (${_packageInfo.version})',
|
||||||
|
style: const TextStyle(fontSize: 12),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
onTap: () {},
|
||||||
|
title: const Text('Check for update'),
|
||||||
|
),
|
||||||
|
// ListTile(
|
||||||
|
// onTap: () {},
|
||||||
|
// title: const Text("What's news"),
|
||||||
|
// ),
|
||||||
|
// ListTile(
|
||||||
|
// onTap: () {},
|
||||||
|
// title: const Text('Help translation'),
|
||||||
|
// ),
|
||||||
|
// ListTile(
|
||||||
|
// onTap: () {},
|
||||||
|
// title: const Text('Privacy policy'),
|
||||||
|
// ),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
_launchInBrowser(Uri.parse(
|
||||||
|
'https://github.com/kodjodevf/mangayomi'));
|
||||||
|
},
|
||||||
|
icon: const Icon(FontAwesomeIcons.github))
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
import 'package:flutter/cupertino.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:mangayomi/views/more/widgets/incognito_mode_widget.dart';
|
import 'package:mangayomi/views/more/widgets/incognito_mode_widget.dart';
|
||||||
|
|
@ -77,7 +76,9 @@ class MoreScreen extends StatelessWidget {
|
||||||
title: 'Settings',
|
title: 'Settings',
|
||||||
),
|
),
|
||||||
ListTileWidget(
|
ListTileWidget(
|
||||||
onTap: () {},
|
onTap: () {
|
||||||
|
context.push('/about');
|
||||||
|
},
|
||||||
icon: Icons.info_outline,
|
icon: Icons.info_outline,
|
||||||
title: 'About',
|
title: 'About',
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,32 @@ class SettingsScreen extends StatelessWidget {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: const Text("Settings"),
|
title: const Text("Settings"),
|
||||||
actions: [],
|
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
|
ListTileWidget(
|
||||||
|
title: 'General', icon: Icons.tune_rounded, onTap: () {}),
|
||||||
ListTileWidget(
|
ListTileWidget(
|
||||||
title: 'Appearance',
|
title: 'Appearance',
|
||||||
icon: Icons.color_lens_rounded,
|
icon: Icons.color_lens_rounded,
|
||||||
onTap: () => context.push('/appearance')),
|
onTap: () => context.push('/appearance')),
|
||||||
|
ListTileWidget(
|
||||||
|
title: 'Library',
|
||||||
|
icon: Icons.collections_bookmark_rounded,
|
||||||
|
onTap: () {}),
|
||||||
|
ListTileWidget(
|
||||||
|
title: 'Reader',
|
||||||
|
icon: Icons.chrome_reader_mode_rounded,
|
||||||
|
onTap: () {}),
|
||||||
|
ListTileWidget(
|
||||||
|
title: 'Explore', icon: Icons.explore_rounded, onTap: () {}),
|
||||||
|
ListTileWidget(
|
||||||
|
onTap: () {
|
||||||
|
context.push('/about');
|
||||||
|
},
|
||||||
|
icon: Icons.info_outline,
|
||||||
|
title: 'About',
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,13 @@
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <flutter_js/flutter_js_plugin.h>
|
#include <flutter_js/flutter_js_plugin.h>
|
||||||
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||||
|
|
||||||
void fl_register_plugins(FlPluginRegistry* registry) {
|
void fl_register_plugins(FlPluginRegistry* registry) {
|
||||||
g_autoptr(FlPluginRegistrar) flutter_js_registrar =
|
g_autoptr(FlPluginRegistrar) flutter_js_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterJsPlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterJsPlugin");
|
||||||
flutter_js_plugin_register_with_registrar(flutter_js_registrar);
|
flutter_js_plugin_register_with_registrar(flutter_js_registrar);
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
flutter_js
|
flutter_js
|
||||||
|
url_launcher_linux
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,15 @@ import FlutterMacOS
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
import flutter_js
|
import flutter_js
|
||||||
|
import package_info_plus
|
||||||
import path_provider_foundation
|
import path_provider_foundation
|
||||||
import sqflite
|
import sqflite
|
||||||
|
import url_launcher_macos
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
FlutterJsPlugin.register(with: registry.registrar(forPlugin: "FlutterJsPlugin"))
|
FlutterJsPlugin.register(with: registry.registrar(forPlugin: "FlutterJsPlugin"))
|
||||||
|
FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin"))
|
||||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||||
|
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
80
pubspec.lock
80
pubspec.lock
|
|
@ -608,6 +608,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.0"
|
version: "2.1.0"
|
||||||
|
package_info_plus:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: package_info_plus
|
||||||
|
sha256: cbff87676c352d97116af6dbea05aa28c4d65eb0f6d5677a520c11a69ca9a24d
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.0"
|
||||||
|
package_info_plus_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: package_info_plus_platform_interface
|
||||||
|
sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.1"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -925,6 +941,70 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.1"
|
version: "1.3.1"
|
||||||
|
url_launcher:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: url_launcher
|
||||||
|
sha256: "75f2846facd11168d007529d6cd8fcb2b750186bea046af9711f10b907e1587e"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.1.10"
|
||||||
|
url_launcher_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_android
|
||||||
|
sha256: dd729390aa936bf1bdf5cd1bc7468ff340263f80a2c4f569416507667de8e3c8
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.0.26"
|
||||||
|
url_launcher_ios:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_ios
|
||||||
|
sha256: "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.1.4"
|
||||||
|
url_launcher_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_linux
|
||||||
|
sha256: "206fb8334a700ef7754d6a9ed119e7349bc830448098f21a69bf1b4ed038cabc"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.4"
|
||||||
|
url_launcher_macos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_macos
|
||||||
|
sha256: "91ee3e75ea9dadf38036200c5d3743518f4a5eb77a8d13fda1ee5764373f185e"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.5"
|
||||||
|
url_launcher_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_platform_interface
|
||||||
|
sha256: "6c9ca697a5ae218ce56cece69d46128169a58aa8653c1b01d26fcd4aad8c4370"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.2"
|
||||||
|
url_launcher_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_web
|
||||||
|
sha256: "81fe91b6c4f84f222d186a9d23c73157dc4c8e1c71489c4d08be1ad3b228f1aa"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.16"
|
||||||
|
url_launcher_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_windows
|
||||||
|
sha256: a83ba3607a507758669cfafb03f9de09bf6e6280c14d9b9cb18f013e406dcacd
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.5"
|
||||||
uuid:
|
uuid:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,8 @@ dependencies:
|
||||||
# rive: ^0.10.3
|
# rive: ^0.10.3
|
||||||
google_fonts: ^4.0.3
|
google_fonts: ^4.0.3
|
||||||
# draggable_menu: ^0.2.0
|
# draggable_menu: ^0.2.0
|
||||||
|
url_launcher: ^6.1.10
|
||||||
|
package_info_plus: ^3.0.2
|
||||||
|
|
||||||
|
|
||||||
# The following adds the Cupertino Icons font to your application.
|
# The following adds the Cupertino Icons font to your application.
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,11 @@
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <flutter_js/flutter_js_plugin.h>
|
#include <flutter_js/flutter_js_plugin.h>
|
||||||
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
|
|
||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||||
FlutterJsPluginRegisterWithRegistrar(
|
FlutterJsPluginRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("FlutterJsPlugin"));
|
registry->GetRegistrarForPlugin("FlutterJsPlugin"));
|
||||||
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
flutter_js
|
flutter_js
|
||||||
|
url_launcher_windows
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue