ChadCSong

修改国际化方式,增加multidex支持

......@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 30
compileSdkVersion 33
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
......@@ -46,6 +46,7 @@ android {
applicationId "com.mofunsky.one_poem"
minSdkVersion 20
targetSdkVersion 30
multiDexEnabled true
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
......
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
......
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
......
......@@ -2,6 +2,7 @@ import 'package:flustars/flustars.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:one_poem/generated/l10n.dart';
import 'package:one_poem/login/widgets/my_text_field.dart';
import 'package:one_poem/res/constant.dart';
import 'package:one_poem/res/resources.dart';
......@@ -15,8 +16,6 @@ import 'package:one_poem/widgets/my_scroll_view.dart';
import '../login_router.dart';
import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart';
/// design/1注册登录/index.html
class LoginPage extends StatefulWidget {
......@@ -84,7 +83,7 @@ class _LoginPageState extends State<LoginPage> with ChangeNotifierMixin<LoginPag
return Scaffold(
appBar: MyAppBar(
isBack: false,
actionName: OnePoemLocalizations.of(context).verificationCodeLogin,
actionName:S.current.verificationCodeLogin,
onPressed: () {
NavigatorUtils.push(context, LoginRouter.smsLoginPage);
},
......@@ -99,7 +98,7 @@ class _LoginPageState extends State<LoginPage> with ChangeNotifierMixin<LoginPag
List<Widget> get _buildBody => <Widget>[
Text(
OnePoemLocalizations.of(context).passwordLogin,
S.of(context).passwordLogin,
style: TextStyles.textBold26,
),
Gaps.vGap16,
......@@ -109,7 +108,7 @@ class _LoginPageState extends State<LoginPage> with ChangeNotifierMixin<LoginPag
controller: _nameController,
maxLength: 11,
keyboardType: TextInputType.phone,
hintText: OnePoemLocalizations.of(context).inputUsernameHint,
hintText: S.of(context).inputUsernameHint,
),
Gaps.vGap8,
MyTextField(
......@@ -119,20 +118,20 @@ class _LoginPageState extends State<LoginPage> with ChangeNotifierMixin<LoginPag
isInputPwd: true,
controller: _passwordController,
keyboardType: TextInputType.visiblePassword,
hintText: OnePoemLocalizations.of(context).inputPasswordHint,
hintText: S.of(context).inputPasswordHint,
),
Gaps.vGap24,
MyButton(
key: const Key('login'),
onPressed: _clickable ? _login : null,
text: OnePoemLocalizations.of(context).login,
text: S.of(context).login,
),
Container(
height: 40.0,
alignment: Alignment.centerRight,
child: GestureDetector(
child: Text(
OnePoemLocalizations.of(context).forgotPasswordLink,
S.of(context).forgotPasswordLink,
key: const Key('forgotPassword'),
style: Theme.of(context).textTheme.subtitle2,
),
......@@ -144,7 +143,7 @@ class _LoginPageState extends State<LoginPage> with ChangeNotifierMixin<LoginPag
alignment: Alignment.center,
child: GestureDetector(
child: Text(
OnePoemLocalizations.of(context).noAccountRegisterLink,
S.of(context).noAccountRegisterLink,
key: const Key('noAccountRegister'),
style: TextStyle(
color: Theme.of(context).primaryColor
......
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:one_poem/generated/l10n.dart';
import 'package:one_poem/login/widgets/my_text_field.dart';
import 'package:one_poem/res/resources.dart';
import 'package:one_poem/res/styles.dart';
......@@ -11,8 +12,6 @@ import 'package:one_poem/widgets/my_app_bar.dart';
import 'package:one_poem/widgets/my_button.dart';
import 'package:one_poem/widgets/my_scroll_view.dart';
import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart';
/// design/1注册登录/index.html#artboard11
class RegisterPage extends StatefulWidget {
......@@ -74,7 +73,7 @@ class _RegisterPageState extends State<RegisterPage> with ChangeNotifierMixin<Re
Widget build(BuildContext context) {
return Scaffold(
appBar: MyAppBar(
title: OnePoemLocalizations.of(context).register,
title: S.of(context).register,
),
body: MyScrollView(
keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2, _nodeText3]),
......@@ -88,7 +87,7 @@ class _RegisterPageState extends State<RegisterPage> with ChangeNotifierMixin<Re
List<Widget> _buildBody() {
return <Widget>[
Text(
OnePoemLocalizations.of(context).openYourAccount,
S.of(context).openYourAccount,
style: TextStyles.textBold26,
),
Gaps.vGap16,
......@@ -98,7 +97,7 @@ class _RegisterPageState extends State<RegisterPage> with ChangeNotifierMixin<Re
controller: _nameController,
maxLength: 11,
keyboardType: TextInputType.phone,
hintText: OnePoemLocalizations.of(context).inputPhoneHint,
hintText: S.of(context).inputPhoneHint,
),
Gaps.vGap8,
MyTextField(
......@@ -108,16 +107,16 @@ class _RegisterPageState extends State<RegisterPage> with ChangeNotifierMixin<Re
keyboardType: TextInputType.number,
getVCode: () async {
if (_nameController.text.length == 11) {
Toast.show(OnePoemLocalizations.of(context).verificationButton);
Toast.show(S.of(context).verificationButton);
/// 一般可以在这里发送真正的请求,请求成功返回true
return true;
} else {
Toast.show(OnePoemLocalizations.of(context).inputPhoneInvalid);
Toast.show(S.of(context).inputPhoneInvalid);
return false;
}
},
maxLength: 6,
hintText: OnePoemLocalizations.of(context).inputVerificationCodeHint,
hintText: S.of(context).inputVerificationCodeHint,
),
Gaps.vGap8,
MyTextField(
......@@ -127,13 +126,13 @@ class _RegisterPageState extends State<RegisterPage> with ChangeNotifierMixin<Re
isInputPwd: true,
controller: _passwordController,
keyboardType: TextInputType.visiblePassword,
hintText: OnePoemLocalizations.of(context).inputPasswordHint,
hintText: S.of(context).inputPasswordHint,
),
Gaps.vGap24,
MyButton(
key: const Key('register'),
onPressed: _clickable ? _register : null,
text: OnePoemLocalizations.of(context).register,
text: S.of(context).register,
)
];
}
......
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:one_poem/generated/l10n.dart';
import 'package:one_poem/login/widgets/my_text_field.dart';
import 'package:one_poem/res/resources.dart';
import 'package:one_poem/util/change_notifier_manage.dart';
......@@ -9,7 +10,6 @@ import 'package:one_poem/widgets/my_app_bar.dart';
import 'package:one_poem/widgets/my_button.dart';
import 'package:one_poem/widgets/my_scroll_view.dart';
import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart';
/// design/1注册登录/index.html#artboard9
class ResetPasswordPage extends StatefulWidget {
......@@ -64,14 +64,14 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> with ChangeNotifi
}
void _reset() {
Toast.show(OnePoemLocalizations.of(context).confirm);
Toast.show(S.of(context).confirm);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: MyAppBar(
title: OnePoemLocalizations.of(context).forgotPasswordLink,
title: S.of(context).forgotPasswordLink,
),
body: MyScrollView(
keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2, _nodeText3]),
......@@ -85,7 +85,7 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> with ChangeNotifi
List<Widget> _buildBody() {
return <Widget>[
Text(
OnePoemLocalizations.of(context).resetLoginPassword,
S.of(context).resetLoginPassword,
style: TextStyles.textBold26,
),
Gaps.vGap16,
......@@ -94,7 +94,7 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> with ChangeNotifi
controller: _nameController,
maxLength: 11,
keyboardType: TextInputType.phone,
hintText: OnePoemLocalizations.of(context).inputPhoneHint,
hintText: S.of(context).inputPhoneHint,
),
Gaps.vGap8,
MyTextField(
......@@ -105,7 +105,7 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> with ChangeNotifi
return Future<bool>.value(true);
},
maxLength: 6,
hintText: OnePoemLocalizations.of(context).inputVerificationCodeHint,
hintText: S.of(context).inputVerificationCodeHint,
),
Gaps.vGap8,
MyTextField(
......@@ -113,12 +113,12 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> with ChangeNotifi
isInputPwd: true,
controller: _passwordController,
keyboardType: TextInputType.visiblePassword,
hintText: OnePoemLocalizations.of(context).inputPasswordHint,
hintText: S.of(context).inputPasswordHint,
),
Gaps.vGap24,
MyButton(
onPressed: _clickable ? _reset : null,
text: OnePoemLocalizations.of(context).confirm,
text: S.of(context).confirm,
)
];
}
......
......@@ -2,6 +2,7 @@ import 'dart:ui';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:one_poem/generated/l10n.dart';
import 'package:one_poem/login/widgets/my_text_field.dart';
import 'package:one_poem/res/resources.dart';
import 'package:one_poem/routers/fluro_navigator.dart';
......@@ -13,7 +14,6 @@ import 'package:one_poem/widgets/my_button.dart';
import 'package:one_poem/widgets/my_scroll_view.dart';
import '../login_router.dart';
import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart';
/// design/1注册登录/index.html#artboard4
class SMSLoginPage extends StatefulWidget {
const SMSLoginPage({Key? key}) : super(key: key);
......@@ -77,7 +77,7 @@ class _SMSLoginPageState extends State<SMSLoginPage> with ChangeNotifierMixin<SM
List<Widget> _buildBody() {
return <Widget>[
Text(
OnePoemLocalizations.of(context).verificationCodeLogin,
S.of(context).verificationCodeLogin,
style: TextStyles.textBold26,
),
Gaps.vGap16,
......@@ -86,7 +86,7 @@ class _SMSLoginPageState extends State<SMSLoginPage> with ChangeNotifierMixin<SM
controller: _phoneController,
maxLength: 11,
keyboardType: TextInputType.phone,
hintText: OnePoemLocalizations.of(context).inputPhoneHint,
hintText: S.of(context).inputPhoneHint,
),
Gaps.vGap8,
MyTextField(
......@@ -94,9 +94,9 @@ class _SMSLoginPageState extends State<SMSLoginPage> with ChangeNotifierMixin<SM
controller: _vCodeController,
maxLength: 6,
keyboardType: TextInputType.number,
hintText: OnePoemLocalizations.of(context).inputVerificationCodeHint,
hintText: S.of(context).inputVerificationCodeHint,
getVCode: () {
Toast.show(OnePoemLocalizations.of(context).getVerificationCode);
Toast.show(S.of(context).getVerificationCode);
return Future<bool>.value(true);
},
),
......@@ -105,11 +105,11 @@ class _SMSLoginPageState extends State<SMSLoginPage> with ChangeNotifierMixin<SM
alignment: Alignment.centerLeft,
child: RichText(
text: TextSpan(
text: OnePoemLocalizations.of(context).registeredTips,
text: S.of(context).registeredTips,
style: Theme.of(context).textTheme.subtitle2?.copyWith(fontSize: Dimens.font_sp14),
children: <TextSpan>[
TextSpan(
text: OnePoemLocalizations.of(context).register,
text: S.of(context).register,
style: TextStyle(
color: Theme.of(context).errorColor,
),
......@@ -126,14 +126,14 @@ class _SMSLoginPageState extends State<SMSLoginPage> with ChangeNotifierMixin<SM
Gaps.vGap24,
MyButton(
onPressed: _clickable ? _login : null,
text: OnePoemLocalizations.of(context).login,
text: S.of(context).login,
),
Container(
height: 40.0,
alignment: Alignment.centerRight,
child: GestureDetector(
child: Text(
OnePoemLocalizations.of(context).forgotPasswordLink,
S.of(context).forgotPasswordLink,
style: Theme.of(context).textTheme.subtitle2,
),
onTap: () => NavigatorUtils.push(context, LoginRouter.resetPasswordPage),
......
......@@ -3,11 +3,11 @@ import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:one_poem/generated/l10n.dart';
import 'package:one_poem/res/resources.dart';
import 'package:one_poem/util/device_utils.dart';
import 'package:one_poem/widgets/load_image.dart';
import 'package:one_poem/widgets/my_button.dart';
import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart';
/// 登录模块的输入框封装
class MyTextField extends StatefulWidget {
......@@ -179,7 +179,7 @@ class _MyTextFieldState extends State<MyTextField> {
key: const Key('getVerificationCode'),
onPressed: _clickable ? _getVCode : null,
fontSize: Dimens.font_sp12,
text: _clickable ? OnePoemLocalizations.of(context).getVerificationCode : '($_currentSecond s)',
text: _clickable ? S.of(context).getVerificationCode : '($_currentSecond s)',
textColor: themeData.primaryColor,
disabledTextColor: isDark ? Colours.dark_text : Colors.white,
backgroundColor: Colors.transparent,
......
......@@ -3,12 +3,11 @@ import 'package:flustars/flustars.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:oktoast/oktoast.dart';
import 'package:one_poem/generated/l10n.dart';
import 'package:provider/provider.dart';
import 'package:quick_actions/quick_actions.dart';
import 'package:url_strategy/url_strategy.dart';
import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart';
import 'home/splash_page.dart';
import 'net/dio_utils.dart';
import 'net/intercept.dart';
......@@ -154,8 +153,8 @@ class MyApp extends StatelessWidget {
themeMode: provider.getThemeMode(),
home: home ?? const SplashPage(),
onGenerateRoute: Routes.router.generator,
localizationsDelegates: OnePoemLocalizations.localizationsDelegates,
supportedLocales: OnePoemLocalizations.supportedLocales,
localizationsDelegates: const [S.delegate],
supportedLocales: S.delegate.supportedLocales,
locale: localeProvider.locale,
navigatorKey: navigatorKey,
builder: (BuildContext context, Widget? child) {
......
......@@ -5,231 +5,224 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "31.0.0"
version: "47.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.8.0"
version: "4.7.0"
archive:
dependency: transitive
description:
name: archive
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.2"
version: "3.1.11"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
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.1"
version: "2.8.2"
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"
cached_network_image:
dependency: "direct main"
description:
name: cached_network_image
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.0"
version: "3.2.1"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.0"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0"
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"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.dartlang.org"
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"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.15.0"
version: "1.16.0"
common_utils:
dependency: "direct main"
description:
name: common_utils
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.2"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.1"
version: "3.1.0"
coverage:
dependency: transitive
description:
name: coverage
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.3"
version: "1.2.0"
cross_file:
dependency: transitive
description:
name: cross_file
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.2"
version: "0.3.3+2"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.1"
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.4"
version: "1.0.5"
decimal:
dependency: "direct overridden"
description:
name: decimal
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.5.0"
device_info_plus:
dependency: "direct main"
description:
name: device_info_plus
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.2.0"
version: "3.2.4"
device_info_plus_linux:
dependency: transitive
description:
name: device_info_plus_linux
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
version: "2.1.1"
device_info_plus_macos:
dependency: transitive
description:
name: device_info_plus_macos
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.2.0"
version: "2.2.3"
device_info_plus_platform_interface:
dependency: transitive
description:
name: device_info_plus_platform_interface
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.0"
version: "2.6.1"
device_info_plus_web:
dependency: transitive
description:
name: device_info_plus_web
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
device_info_plus_windows:
dependency: transitive
description:
name: device_info_plus_windows
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
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.4"
version: "4.0.6"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0"
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.1.2"
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"
fluro:
dependency: "direct main"
description:
name: fluro
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.3"
flustars:
dependency: "direct main"
description:
name: flustars
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.1"
flutter:
......@@ -241,14 +234,14 @@ packages:
dependency: transitive
description:
name: flutter_blurhash
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.0"
version: "0.7.0"
flutter_cache_manager:
dependency: transitive
description:
name: flutter_cache_manager
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.3.0"
flutter_driver:
......@@ -260,7 +253,7 @@ packages:
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:
......@@ -272,21 +265,21 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.5"
version: "2.0.7"
flutter_slidable:
dependency: "direct main"
description:
name: flutter_slidable
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0"
version: "1.3.2"
flutter_swiper_null_safety:
dependency: "direct main"
description:
name: flutter_swiper_null_safety
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.2"
flutter_test:
......@@ -303,9 +296,9 @@ packages:
dependency: transitive
description:
name: frontend_server_client
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.2"
version: "2.1.3"
fuchsia_remote_debug_protocol:
dependency: transitive
description: flutter
......@@ -315,51 +308,51 @@ packages:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.2"
version: "2.1.0"
http:
dependency: transitive
description:
name: http
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.13.4"
version: "0.13.5"
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.0.1"
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.0"
version: "4.0.2"
image_picker:
dependency: "direct main"
description:
name: image_picker
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.4+4"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.4"
version: "2.1.10"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.1"
version: "2.6.2"
integration_test:
dependency: "direct dev"
description: flutter
......@@ -369,324 +362,345 @@ packages:
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.3"
version: "0.6.4"
keyboard_actions:
dependency: "direct main"
description:
name: keyboard_actions
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.4.5"
version: "3.4.7"
lints:
dependency: transitive
description:
name: lints
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.2"
version: "1.1.0"
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.flutter-io.cn"
source: hosted
version: "0.12.10"
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.1"
version: "1.0.2"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.0"
node_preamble:
dependency: transitive
description:
name: node_preamble
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.1"
octo_image:
dependency: transitive
description:
name: octo_image
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
version: "1.0.2"
oktoast:
dependency: "direct main"
description:
name: oktoast
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.5"
version: "3.3.1"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.2"
version: "2.1.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.0"
version: "1.8.1"
path_provider:
dependency: transitive
description:
name: path_provider
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.8"
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.11"
version: "2.0.20"
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.7"
version: "2.0.11"
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.4"
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.4"
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.1"
version: "2.0.5"
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.4"
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"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.0"
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.0.2"
version: "2.1.3"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.5.0"
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.3"
version: "4.2.4"
provider:
dependency: "direct main"
description:
name: provider
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.0.1"
version: "6.0.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.0"
version: "2.1.2"
qr_code_scanner:
dependency: "direct main"
description:
name: qr_code_scanner
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.1"
version: "0.7.0"
quick_actions:
dependency: "direct main"
description:
name: quick_actions
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.0+8"
version: "0.6.0+11"
quick_actions_android:
dependency: transitive
description:
name: quick_actions_android
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.2"
quick_actions_ios:
dependency: transitive
description:
name: quick_actions_ios
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.0+14"
quick_actions_platform_interface:
dependency: transitive
description:
name: quick_actions_platform_interface
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.0"
version: "1.0.3"
rational:
dependency: transitive
description:
name: rational
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.1"
rxdart:
dependency: "direct main"
description:
name: rxdart
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.27.3"
version: "0.27.5"
shared_preferences:
dependency: transitive
description:
name: shared_preferences
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.11"
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.9"
version: "2.0.14"
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.0.8"
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.0.3"
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.2"
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"
version: "2.1.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.2"
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.0.3"
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.2.0"
version: "1.4.0"
shelf_packages_handler:
dependency: transitive
description:
name: shelf_packages_handler
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.0"
version: "3.0.1"
shelf_static:
dependency: transitive
description:
name: shelf_static
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0"
version: "1.1.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.1"
version: "1.0.2"
sky_engine:
dependency: transitive
description: flutter
......@@ -696,303 +710,296 @@ packages:
dependency: transitive
description:
name: source_map_stack_trace
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
version: "2.1.1"
source_maps:
dependency: transitive
description:
name: source_maps
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.10.10"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.1"
version: "1.8.2"
sp_util:
dependency: transitive
description:
name: sp_util
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.3"
sprintf:
dependency: "direct main"
description:
name: sprintf
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.0.0"
version: "6.0.2"
sqflite:
dependency: transitive
description:
name: sqflite
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.1"
version: "2.0.3+1"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.1+1"
version: "2.4.0"
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"
sticky_headers:
dependency: "direct main"
description:
name: sticky_headers
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.0"
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"
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"
sync_http:
dependency: transitive
description:
name: sync_http
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.0"
synchronized:
dependency: transitive
description:
name: synchronized
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.0"
version: "3.0.0+3"
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:
dependency: "direct dev"
description:
name: test
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.17.10"
version: "1.21.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.4.2"
version: "0.4.9"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.4.0"
version: "0.4.13"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.0"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.0.17"
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.13"
version: "6.0.21"
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.13"
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: "2.0.2"
version: "2.0.3"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.2"
version: "2.0.3"
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.0.4"
version: "2.1.1"
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.5"
version: "2.0.13"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.2"
url_strategy:
dependency: "direct main"
description:
name: url_strategy
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.0"
uuid:
dependency: transitive
description:
name: uuid
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.5"
version: "3.0.6"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0"
version: "2.1.2"
vibration:
dependency: "direct main"
description:
name: vibration
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.7.4-nullsafety.0"
vibration_web:
dependency: transitive
description:
name: vibration_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.3-nullsafety.0"
version: "1.7.6"
vm_service:
dependency: transitive
description:
name: vm_service
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "7.1.1"
version: "8.2.2"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.1"
version: "1.0.2"
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.1.0"
version: "2.2.0"
webdriver:
dependency: transitive
description:
name: webdriver
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.0"
webkit_inspection_protocol:
dependency: transitive
description:
name: webkit_inspection_protocol
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.0"
version: "1.2.0"
webview_flutter:
dependency: "direct main"
description:
name: webview_flutter
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.0"
webview_flutter_android:
dependency: transitive
description:
name: webview_flutter_android
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.8.2"
version: "2.10.4"
webview_flutter_platform_interface:
dependency: transitive
description:
name: webview_flutter_platform_interface
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.0"
version: "1.9.5"
webview_flutter_wkwebview:
dependency: transitive
description:
name: webview_flutter_wkwebview
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.7.1"
version: "2.9.5"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.3.3"
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"
version: "0.2.0+2"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.1.0"
version: "3.1.1"
sdks:
dart: ">=2.14.0 <3.0.0"
flutter: ">=2.5.0"
dart: ">=2.17.0 <3.0.0"
flutter: ">=3.0.0"
......
......@@ -70,7 +70,7 @@ dependencies:
# 状态管理 https://github.com/rrousselGit/provider
provider: ^6.0.1
# 扫码 https://github.com/juliuscanute/qr_code_scanner
qr_code_scanner: 0.6.1
qr_code_scanner: 0.7.0
# App Shortcuts https://github.com/flutter/plugins/tree/master/packages/quick_actions
quick_actions: ^0.6.0+8
# 振动(支持Web) https://github.com/benjamindean/flutter_vibration
......