diff --git a/lib/base/routes.dart b/lib/base/routes.dart index f8473d2..7d4d91a 100644 --- a/lib/base/routes.dart +++ b/lib/base/routes.dart @@ -12,7 +12,6 @@ import 'package:qinglong_app/module/others/backup/backup_page.dart'; import 'package:qinglong_app/module/others/dependencies/add_dependency_page.dart'; import 'package:qinglong_app/module/others/dependencies/dependency_page.dart'; import 'package:qinglong_app/module/others/login_log/login_log_page.dart'; -import 'package:qinglong_app/module/others/scripts/acript_add_page.dart'; import 'package:qinglong_app/module/others/scripts/script_detail_page.dart'; import 'package:qinglong_app/module/others/scripts/script_edit_page.dart'; import 'package:qinglong_app/module/others/scripts/script_page.dart'; @@ -28,6 +27,8 @@ import 'package:qinglong_app/module/task/add_task_page.dart'; import 'package:qinglong_app/module/task/task_bean.dart'; import 'package:qinglong_app/module/task/task_detail/task_detail_page.dart'; +import '../module/others/scripts/script_add_page.dart'; + class Routes { static const String routeHomePage = "/home/homepage"; static const String routeLogin = "/login"; @@ -83,8 +84,7 @@ class Routes { return MaterialPageRoute(builder: (context) => const AddTaskPage()); } case routeAddDependency: - return MaterialPageRoute( - builder: (context) => const AddDependencyPage()); + return MaterialPageRoute(builder: (context) => const AddDependencyPage()); case routeAddEnv: if (settings.arguments != null) { return MaterialPageRoute( @@ -164,15 +164,19 @@ class Routes { ), ); case routeScriptAdd: - return CupertinoPageRoute( - builder: (context) => const ScriptAddPage(), + return MaterialPageRoute( + builder: (context) => ScriptAddPage( + (settings.arguments as Map)["title"], + (settings.arguments as Map)["path"], + ), ); case routerSubscription: - return CupertinoPageRoute( + //部分低端手机用Cupertino滑动时掉帧,左侧会出现白色空白 + return MaterialPageRoute( builder: (context) => const SubscriptionPage(), ); case routerSubscriptionDetail: - return CupertinoPageRoute( + return MaterialPageRoute( builder: (context) => SubscriptionDetailPage( settings.arguments as Subscription, ), @@ -181,18 +185,17 @@ class Routes { if (settings.arguments != null) { return MaterialPageRoute( builder: (context) => SubscriptionAddPage( - settings.arguments as Subscription, - )); + settings.arguments as Subscription, + )); } else { return MaterialPageRoute(builder: (context) => const SubscriptionAddPage(null)); } case routerBackup: - return CupertinoPageRoute( + return MaterialPageRoute( builder: (context) => const BackUpPage(), ); } - return null; } } diff --git a/lib/main.dart b/lib/main.dart index c24a918..ed80c37 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:dio_log/overlay_draggable_button.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:get_it/get_it.dart'; @@ -11,6 +12,7 @@ import 'package:qinglong_app/base/theme.dart'; import 'package:qinglong_app/module/login/login_page.dart'; import 'package:qinglong_app/utils/sp_utils.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_displaymode/flutter_displaymode.dart'; import 'base/routes.dart'; import 'base/userinfo_viewmodel.dart'; @@ -41,8 +43,7 @@ void main() async { ), ); if (Platform.isAndroid) { - SystemUiOverlayStyle style = - const SystemUiOverlayStyle(statusBarColor: Colors.transparent); + SystemUiOverlayStyle style = const SystemUiOverlayStyle(statusBarColor: Colors.transparent); SystemChrome.setSystemUIOverlayStyle(style); } } @@ -55,6 +56,29 @@ class QlApp extends ConsumerStatefulWidget { } class QlAppState extends ConsumerState { + List modes = []; + DisplayMode? active; + DisplayMode? preferred; + + @override + void initState() { + super.initState(); + SchedulerBinding.instance.addPostFrameCallback((_) { + fetchAll(); + }); + } + + Future fetchAll() async { + try { + modes = await FlutterDisplayMode.supported; + modes.forEach(print); + await FlutterDisplayMode.setHighRefreshRate(); + } on PlatformException catch (e) { + print(e); + } + setState(() {}); + } + @override Widget build(BuildContext context) { return GestureDetector( @@ -62,40 +86,32 @@ class QlAppState extends ConsumerState { onTap: () { FocusScope.of(context).requestFocus(FocusNode()); }, - child: MediaQuery( - data: - MediaQueryData.fromWindow(WidgetsBinding.instance.window).copyWith( - textScaleFactor: 1, - ), - child: MaterialApp( - title: "青龙", - locale: const Locale('zh', 'CN'), - navigatorKey: navigatorState, - localizationsDelegates: const [ - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - ], - supportedLocales: const [ - Locale('zh', 'CN'), - Locale('en', 'US'), - ], - theme: ref.watch(themeProvider).currentTheme, - onGenerateRoute: (setting) { - return Routes.generateRoute(setting); + child: MaterialApp( + title: "青龙", + locale: const Locale('zh', 'CN'), + navigatorKey: navigatorState, + localizationsDelegates: const [ + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('zh', 'CN'), + Locale('en', 'US'), + ], + theme: ref.watch(themeProvider).currentTheme, + onGenerateRoute: (setting) { + return Routes.generateRoute(setting); + }, + home: Builder( + builder: (context) { + if (!kReleaseMode) { + showDebugBtn(context); + } + return getIt().isLogined() ? const HomePage() : const LoginPage(); }, - home: Builder( - builder: (context) { - if (!kReleaseMode) { - showDebugBtn(context); - } - return getIt().isLogined() - ? const HomePage() - : const LoginPage(); - }, - ), - // home: LoginPage(), ), + // home: LoginPage(), ), ); } diff --git a/lib/module/others/scripts/script_add_page.dart b/lib/module/others/scripts/script_add_page.dart new file mode 100644 index 0000000..269f894 --- /dev/null +++ b/lib/module/others/scripts/script_add_page.dart @@ -0,0 +1,186 @@ +import 'package:code_text_field/code_text_field.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:highlight/languages/javascript.dart'; +import 'package:highlight/languages/json.dart'; +import 'package:highlight/languages/powershell.dart'; +import 'package:highlight/languages/python.dart'; +import 'package:highlight/languages/vbscript-html.dart'; +import 'package:highlight/languages/yaml.dart'; +import 'package:qinglong_app/base/http/api.dart'; +import 'package:qinglong_app/base/http/http.dart'; +import 'package:qinglong_app/base/ql_app_bar.dart'; +import 'package:qinglong_app/base/sp_const.dart'; +import 'package:qinglong_app/base/theme.dart'; +import 'package:qinglong_app/utils/extension.dart'; +import 'package:qinglong_app/utils/sp_utils.dart'; + +class ScriptAddPage extends ConsumerStatefulWidget { + final String title; + final String path; + + const ScriptAddPage(this.title, this.path, {Key? key}) : super(key: key); + + @override + ConsumerState createState() => _ScriptAddPageState(); +} + +class _ScriptAddPageState extends ConsumerState { + CodeController? _codeController; + late String result; + FocusNode focusNode = FocusNode(); + late String preResult; + + @override + void dispose() { + _codeController?.dispose(); + super.dispose(); + } + + @override + void initState() { + result = "## created by 青龙客户端 ${DateTime.now().toString()}\n\n"; + preResult = result; + super.initState(); + + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + focusNode.requestFocus(); + }); + } + + getLanguageType(String title) { + if (title.endsWith(".js")) { + return javascript; + } + + if (title.endsWith(".sh")) { + return powershell; + } + + if (title.endsWith(".py")) { + return python; + } + if (title.endsWith(".json")) { + return json; + } + if (title.endsWith(".yaml")) { + return yaml; + } + return vbscriptHtml; + } + + @override + Widget build(BuildContext context) { + _codeController ??= CodeController( + text: result, + language: getLanguageType(widget.title), + onChange: (value) { + result = value; + }, + theme: ref.watch(themeProvider).themeColor.codeEditorTheme(), + stringMap: { + "export": const TextStyle(fontWeight: FontWeight.normal, color: Color(0xff6B2375)), + }, + ); + return Scaffold( + appBar: QlAppBar( + canBack: true, + backCall: () { + FocusManager.instance.primaryFocus?.unfocus(); + + if (preResult == result) { + Navigator.of(context).pop(); + } else { + showCupertinoDialog( + context: context, + useRootNavigator: false, + builder: (childContext) => CupertinoAlertDialog( + title: const Text("温馨提示"), + content: const Text("你新增的内容还没用提交,确定退出吗?"), + actions: [ + CupertinoDialogAction( + child: const Text( + "取消", + style: TextStyle( + color: Color(0xff999999), + ), + ), + onPressed: () { + Navigator.of(childContext).pop(); + }, + ), + CupertinoDialogAction( + child: Text( + "确定", + style: TextStyle( + color: ref.watch(themeProvider).primaryColor, + ), + ), + onPressed: () { + Navigator.of(childContext).pop(); + Navigator.of(context).pop(); + }, + ), + ], + ), + ); + } + }, + title: '新增${widget.title}', + actions: [ + InkWell( + onTap: () async { + try { + HttpResponse response = await Api.addScript( + widget.title, + widget.path, + result, + ); + if (response.success) { + "提交成功".toast(); + Navigator.of(context).pop(true); + } else { + (response.message ?? "").toast(); + } + } catch (e) {} + }, + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 15, + ), + child: Center( + child: Text( + "提交", + style: TextStyle( + fontSize: 16, + ), + ), + ), + ), + ) + ], + ), + body: SafeArea( + top: false, + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: SpUtil.getBool(spShowLine, defValue: false) ? 0 : 10, + ), + child: CodeField( + controller: _codeController!, + expands: true, + wrap: SpUtil.getBool(spShowLine, defValue: false) ? false : true, + hideColumn: !SpUtil.getBool(spShowLine, defValue: false), + lineNumberStyle: LineNumberStyle( + textStyle: TextStyle( + color: ref.watch(themeProvider).themeColor.descColor(), + fontSize: 12, + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/module/others/subscription/subscription_detail_page.dart b/lib/module/others/subscription/subscription_detail_page.dart index 5bf89be..cb3b465 100644 --- a/lib/module/others/subscription/subscription_detail_page.dart +++ b/lib/module/others/subscription/subscription_detail_page.dart @@ -154,77 +154,80 @@ class _SubscriptionDetailPageState extends State { ) ], ), - body: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TaskDetailCell( - title: "名称", - desc: widget.bean.name, - ), - TaskDetailCell( - title: "仓库类型", - desc: widget.bean.type == "public-repo" - ? "公开仓库" - : widget.bean.type == "private-repo" - ? "私有仓库" - : "单文件", - ), - TaskDetailCell( - title: "链接", - desc: widget.bean.url ?? "", - ), - TaskDetailCell( - title: "分支", - desc: widget.bean.branch ?? "", - ), - TaskDetailCell( - title: "定时类型", - desc: widget.bean.scheduleType ?? "", - ), - TaskDetailCell( - title: "定时规则", - desc: widget.bean.scheduleType == "crontab" - ? widget.bean.schedule ?? "" - : widget.bean.intervalSchedule!.type == "days" - ? "每" + widget.bean.intervalSchedule!.value.toString() + "天" - : widget.bean.intervalSchedule!.type == "hours" - ? "每" + - widget.bean.intervalSchedule!.value.toString() + - "小时" - : widget.bean.intervalSchedule!.type == "minutes" - ? "每" + - widget.bean.intervalSchedule!.value.toString() + - "分钟" - : "每" + - widget.bean.intervalSchedule!.value.toString() + - "秒", - ), - TaskDetailCell( - title: "白名单", - desc: widget.bean.whitelist ?? "", - ), - TaskDetailCell( - title: "黑名单", - desc: widget.bean.blacklist ?? "", - ), - TaskDetailCell( - title: "依赖文件", - desc: widget.bean.dependences ?? "", - ), - TaskDetailCell( - title: "文件后缀", - desc: widget.bean.extensions ?? "", - ), - TaskDetailCell( - title: "执行前", - desc: widget.bean.subAfter ?? "", - ), - TaskDetailCell( - title: "执行后", - desc: widget.bean.subBefore ?? "", - ), - ], + body: SingleChildScrollView( + primary: true, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TaskDetailCell( + title: "名称", + desc: widget.bean.name, + ), + TaskDetailCell( + title: "仓库类型", + desc: widget.bean.type == "public-repo" + ? "公开仓库" + : widget.bean.type == "private-repo" + ? "私有仓库" + : "单文件", + ), + TaskDetailCell( + title: "链接", + desc: widget.bean.url ?? "", + ), + TaskDetailCell( + title: "分支", + desc: widget.bean.branch ?? "", + ), + TaskDetailCell( + title: "定时类型", + desc: widget.bean.scheduleType ?? "", + ), + TaskDetailCell( + title: "定时规则", + desc: widget.bean.scheduleType == "crontab" + ? widget.bean.schedule ?? "" + : widget.bean.intervalSchedule!.type == "days" + ? "每" + widget.bean.intervalSchedule!.value.toString() + "天" + : widget.bean.intervalSchedule!.type == "hours" + ? "每" + + widget.bean.intervalSchedule!.value.toString() + + "小时" + : widget.bean.intervalSchedule!.type == "minutes" + ? "每" + + widget.bean.intervalSchedule!.value.toString() + + "分钟" + : "每" + + widget.bean.intervalSchedule!.value.toString() + + "秒", + ), + TaskDetailCell( + title: "白名单", + desc: widget.bean.whitelist ?? "", + ), + TaskDetailCell( + title: "黑名单", + desc: widget.bean.blacklist ?? "", + ), + TaskDetailCell( + title: "依赖文件", + desc: widget.bean.dependences ?? "", + ), + TaskDetailCell( + title: "文件后缀", + desc: widget.bean.extensions ?? "", + ), + TaskDetailCell( + title: "执行前", + desc: widget.bean.subAfter ?? "", + ), + TaskDetailCell( + title: "执行后", + desc: widget.bean.subBefore ?? "", + ), + ], + ), ), ); } diff --git a/lib/module/others/subscription/subscription_page.dart b/lib/module/others/subscription/subscription_page.dart index d7b5926..4286169 100644 --- a/lib/module/others/subscription/subscription_page.dart +++ b/lib/module/others/subscription/subscription_page.dart @@ -23,55 +23,54 @@ class SubscriptionPage extends ConsumerStatefulWidget { _ScriptPageState createState() => _ScriptPageState(); } -class _ScriptPageState extends ConsumerState - with LazyLoadState { +class _ScriptPageState extends ConsumerState with LazyLoadState { List list = []; @override Widget build(BuildContext context) { return Scaffold( - appBar: QlAppBar( - title: "订阅管理", - canBack: true, - actions: [ - InkWell( - onTap: () { - Navigator.of(context).pushNamed( - Routes.routerSubscriptionAdd, - ); - }, - child: const Padding( - padding: EdgeInsets.symmetric( - horizontal: 15, - ), - child: Center( - child: Icon( - CupertinoIcons.add, - size: 24, - color: Colors.white, - ), + appBar: QlAppBar( + title: "订阅管理", + canBack: true, + actions: [ + InkWell( + onTap: () { + Navigator.of(context).pushNamed( + Routes.routerSubscriptionAdd, + ); + }, + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 15, + ), + child: Center( + child: Icon( + CupertinoIcons.add, + size: 24, + color: Colors.white, ), ), ), - ], - ), - body: RefreshIndicator( - color: Theme.of(context).primaryColor, - onRefresh: () async { - return loadData(); - }, - child: list.isEmpty - ? const EmptyWidget() - : ListView.builder( - keyboardDismissBehavior: - ScrollViewKeyboardDismissBehavior.onDrag, - itemBuilder: (context, index) { - Subscription item = list[index]; - return SubscriptionCell(list[index], index, ref); - }, - itemCount: list.length, - ), - )); + ), + ], + ), + body: RefreshIndicator( + color: Theme.of(context).primaryColor, + onRefresh: () async { + return loadData(); + }, + child: list.isEmpty + ? const EmptyWidget() + : ListView.builder( + keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag, + itemBuilder: (context, index) { + Subscription item = list[index]; + return SubscriptionCell(list[index], index, ref); + }, + itemCount: list.length, + ), + ), + ); } Future loadData() async { @@ -100,8 +99,7 @@ class SubscriptionCell extends StatelessWidget { final int index; final WidgetRef ref; - const SubscriptionCell(this.bean, this.index, this.ref, {Key? key}) - : super(key: key); + const SubscriptionCell(this.bean, this.index, this.ref, {Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -117,9 +115,7 @@ class SubscriptionCell extends StatelessWidget { backgroundColor: const Color(0xff5D5E70), onPressed: (_) { WidgetsBinding.instance.endOfFrame.then((timeStamp) { - Navigator.of(context).pushNamed( - Routes.routerSubscriptionAdd, - arguments: bean); + Navigator.of(context).pushNamed(Routes.routerSubscriptionAdd, arguments: bean); }); }, foregroundColor: Colors.white, @@ -131,9 +127,7 @@ class SubscriptionCell extends StatelessWidget { changeSubscriptionEnable(); }, foregroundColor: Colors.white, - icon: bean.isDisabled == null || bean.isDisabled == 0 - ? Icons.dnd_forwardslash - : Icons.check_circle_outline_sharp, + icon: bean.isDisabled == null || bean.isDisabled == 0 ? Icons.dnd_forwardslash : Icons.check_circle_outline_sharp, ), SlidableAction( backgroundColor: const Color(0xffEA4D3E), @@ -155,9 +149,7 @@ class SubscriptionCell extends StatelessWidget { changeSubscriptionStatus(); }, foregroundColor: Colors.white, - icon: bean.status! == 1 - ? CupertinoIcons.memories - : CupertinoIcons.stop_circle, + icon: bean.status! == 1 ? CupertinoIcons.memories : CupertinoIcons.stop_circle, ), SlidableAction( backgroundColor: const Color(0xff606467), @@ -175,10 +167,8 @@ class SubscriptionCell extends StatelessWidget { ], ), child: InkWell( - onTap: (){ - Navigator.of(context).pushNamed( - Routes.routerSubscriptionDetail, - arguments: bean); + onTap: () { + Navigator.of(context).pushNamed(Routes.routerSubscriptionDetail, arguments: bean); }, child: Column( mainAxisSize: MainAxisSize.min, @@ -211,9 +201,7 @@ class SubscriptionCell extends StatelessWidget { height: 15, child: CircularProgressIndicator( strokeWidth: 2, - color: ref - .watch(themeProvider) - .primaryColor, + color: ref.watch(themeProvider).primaryColor, ), ), SizedBox( @@ -228,10 +216,7 @@ class SubscriptionCell extends StatelessWidget { overflow: TextOverflow.ellipsis, style: TextStyle( overflow: TextOverflow.ellipsis, - color: ref - .watch(themeProvider) - .themeColor - .titleColor(), + color: ref.watch(themeProvider).themeColor.titleColor(), fontSize: 18, ), ), @@ -247,10 +232,7 @@ class SubscriptionCell extends StatelessWidget { maxLines: 1, style: TextStyle( overflow: TextOverflow.ellipsis, - color: ref - .watch(themeProvider) - .themeColor - .descColor(), + color: ref.watch(themeProvider).themeColor.descColor(), fontSize: 12, ), ), @@ -280,10 +262,7 @@ class SubscriptionCell extends StatelessWidget { maxLines: 1, style: TextStyle( overflow: TextOverflow.ellipsis, - color: ref - .watch(themeProvider) - .themeColor - .descColor(), + color: ref.watch(themeProvider).themeColor.descColor(), fontSize: 12, ), ), @@ -301,8 +280,7 @@ class SubscriptionCell extends StatelessWidget { overflow: TextOverflow.ellipsis, style: TextStyle( overflow: TextOverflow.ellipsis, - color: - ref.watch(themeProvider).themeColor.descColor(), + color: ref.watch(themeProvider).themeColor.descColor(), fontSize: 12, ), ), diff --git a/pubspec.lock b/pubspec.lock index 168bf1e..1b2f477 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,154 +5,154 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "22.0.0" analyzer: dependency: transitive description: name: analyzer - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.7.2" archive: dependency: transitive description: name: archive - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.3.0" args: dependency: transitive description: name: args - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.1" async: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.8.2" back_button_interceptor: dependency: "direct main" description: name: back_button_interceptor - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "6.0.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" build: dependency: transitive description: name: build - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.0" build_config: dependency: transitive description: name: build_config - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.0" build_daemon: dependency: transitive description: name: build_daemon - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.0" build_resolvers: dependency: transitive description: name: build_resolvers - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.4" build_runner: dependency: "direct dev" description: name: build_runner - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.11" build_runner_core: dependency: transitive description: name: build_runner_core - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "7.2.3" built_collection: dependency: transitive description: name: built_collection - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "5.1.1" built_value: dependency: transitive description: name: built_value - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "8.3.3" change_app_package_name: dependency: "direct dev" description: name: change_app_package_name - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.0" charcode: dependency: transitive description: name: charcode - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.1" checked_yaml: dependency: transitive description: name: checked_yaml - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" cli_util: dependency: transitive description: name: cli_util - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.3.5" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" code_builder: dependency: transitive description: name: code_builder - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "4.1.0" code_text_field: @@ -166,98 +166,98 @@ packages: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.16.0" convert: dependency: transitive description: name: convert - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.2" crypto: dependency: transitive description: name: crypto - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.5" dart_style: dependency: transitive description: name: dart_style - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" dio: dependency: "direct main" description: name: dio - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.6" dio_log: dependency: "direct main" description: name: dio_log - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.3" drag_and_drop_lists: dependency: "direct main" description: name: drag_and_drop_lists - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.3.2+2" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.0" ffi: dependency: transitive description: name: ffi - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.1" file: dependency: transitive description: name: file - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "6.1.2" file_picker: dependency: "direct main" description: name: file_picker - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "4.6.1" fixnum: dependency: transitive description: name: fixnum - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.1" flip_card: dependency: "direct main" description: name: flip_card - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.6.0" flutter: @@ -269,42 +269,49 @@ packages: dependency: "direct main" description: name: flutter_animator - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.2.2" flutter_app_name: dependency: "direct dev" description: name: flutter_app_name - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.1" flutter_colorpicker: dependency: "direct main" description: name: flutter_colorpicker - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.3" + flutter_displaymode: + dependency: "direct main" + description: + name: flutter_displaymode + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.0" flutter_highlight: dependency: transitive description: name: flutter_highlight - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.7.0" flutter_launcher_icons: dependency: "direct dev" description: name: flutter_launcher_icons - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.9.3" flutter_lints: dependency: "direct dev" description: name: flutter_lints - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.4" flutter_localizations: @@ -316,35 +323,35 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0+1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.6" flutter_riverpod: dependency: "direct main" description: name: flutter_riverpod - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.4" flutter_slidable: dependency: "direct main" description: name: flutter_slidable - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.0" flutter_speed_dial: dependency: transitive description: name: flutter_speed_dial - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.5" flutter_test: @@ -361,476 +368,476 @@ packages: dependency: "direct main" description: name: fluttertoast - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "8.0.9" frontend_server_client: dependency: transitive description: name: frontend_server_client - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.3" get_it: dependency: "direct main" description: name: get_it - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "7.2.0" glob: dependency: transitive description: name: glob - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" google_fonts: dependency: transitive description: name: google_fonts - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.3.3" graphs: dependency: transitive description: name: graphs - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" highlight: dependency: "direct main" description: name: highlight - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.7.0" http: dependency: transitive description: name: http - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.13.4" http_multi_server: dependency: transitive description: name: http_multi_server - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.2.1" http_parser: dependency: transitive description: name: http_parser - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.1" image: dependency: transitive description: name: image - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.3" intl: dependency: "direct main" description: name: intl - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.17.0" io: dependency: transitive description: name: io - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.3" js: dependency: transitive description: name: js - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.6.4" json_annotation: dependency: transitive description: name: json_annotation - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "4.5.0" json_conversion: dependency: "direct dev" description: name: json_conversion - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.0.4" json_conversion_annotation: dependency: "direct main" description: name: json_conversion_annotation - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.0.4" linked_scroll_controller: dependency: transitive description: name: linked_scroll_controller - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.0" lint: dependency: transitive description: name: lint - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.8.2" lints: dependency: transitive description: name: lints - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.1" logger: dependency: "direct main" description: name: logger - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" logging: dependency: transitive description: name: logging - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.12.11" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.1.4" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.7.0" mime: dependency: transitive description: name: mime - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" modal_bottom_sheet: dependency: "direct main" description: name: modal_bottom_sheet - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" move_to_background: dependency: "direct main" description: name: move_to_background - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" package_config: dependency: transitive description: name: package_config - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" package_info_plus: dependency: "direct main" description: name: package_info_plus - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.4.2" package_info_plus_linux: dependency: transitive description: name: package_info_plus_linux - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.5" package_info_plus_macos: dependency: transitive description: name: package_info_plus_macos - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" package_info_plus_web: dependency: transitive description: name: package_info_plus_web - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.5" package_info_plus_windows: dependency: transitive description: name: package_info_plus_windows - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.5" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.8.1" path_provider: dependency: "direct main" description: name: path_provider - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.11" path_provider_android: dependency: transitive description: name: path_provider_android - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.15" path_provider_ios: dependency: transitive description: name: path_provider_ios - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.10" path_provider_linux: dependency: transitive description: name: path_provider_linux - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.7" path_provider_macos: dependency: transitive description: name: path_provider_macos - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.6" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.4" path_provider_windows: dependency: transitive description: name: path_provider_windows - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.7" pedantic: dependency: transitive description: name: pedantic - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.11.1" petitparser: dependency: transitive description: name: petitparser - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "5.0.0" platform: dependency: transitive description: name: platform - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.2" pool: dependency: transitive description: name: pool - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.5.1" process: dependency: transitive description: name: process - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "4.2.4" pub_semver: dependency: transitive description: name: pub_semver - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" pubspec_parse: dependency: transitive description: name: pubspec_parse - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.0" riverpod: dependency: transitive description: name: riverpod - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.3" share_plus: dependency: "direct main" description: name: share_plus - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted - version: "4.0.8" + version: "4.0.9" share_plus_linux: dependency: transitive description: name: share_plus_linux - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.0" share_plus_macos: dependency: transitive description: name: share_plus_macos - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.3" share_plus_web: dependency: transitive description: name: share_plus_web - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" share_plus_windows: dependency: transitive description: name: share_plus_windows - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" shared_preferences: dependency: "direct main" description: name: shared_preferences - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.15" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.12" shared_preferences_ios: dependency: transitive description: name: shared_preferences_ios - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.4" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.4" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" shelf: dependency: transitive description: name: shelf - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" sky_engine: @@ -842,203 +849,203 @@ packages: dependency: transitive description: name: source_gen - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.3" source_span: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.8.2" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.10.0" state_notifier: dependency: transitive description: name: state_notifier - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.7.2+1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" stream_transform: dependency: transitive description: name: stream_transform - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.0" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.0" synchronized: dependency: "direct main" description: name: synchronized - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.0+2" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.4.9" timing: dependency: transitive description: name: timing - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.0" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.1" universal_io: dependency: transitive description: name: universal_io - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.4" url_launcher: dependency: "direct main" description: name: url_launcher - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted - version: "6.1.3" + version: "6.1.4" url_launcher_android: dependency: transitive description: name: url_launcher_android - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "6.0.17" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "6.0.17" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" url_launcher_web: dependency: transitive description: name: url_launcher_web - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.12" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.0.1" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.2" watcher: dependency: transitive description: name: watcher - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0" widget_with_codeview: dependency: "direct main" description: name: widget_with_codeview - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1+2" win32: dependency: transitive description: name: win32 - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "2.6.1" xdg_directories: dependency: transitive description: name: xdg_directories - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.0+1" xml: dependency: transitive description: name: xml - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "5.4.1" yaml: dependency: transitive description: name: yaml - url: "https://pub.dartlang.org" + url: "https://pub.flutter-io.cn" source: hosted version: "3.1.1" sdks: diff --git a/pubspec.yaml b/pubspec.yaml index c3087ca..2d8e10e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: qinglong_app description: A new Flutter project. publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 1.1.0+110 +version: 1.1.1+111 environment: sdk: ">=2.15.1 <3.0.0" @@ -41,6 +41,8 @@ dependencies: code_text_field: path: ./pub/code_field-master path_provider: ^2.0.11 + flutter_displaymode: ^0.4.0 + # flutter pub run build_runner build --delete-conflicting-outputs # flutter pub run change_app_package_name:main work.master.qinglongapp diff --git a/version b/version index 1cc5f65..8cfbc90 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.1.0 \ No newline at end of file +1.1.1 \ No newline at end of file