Commit 17e7bede808db9fac683eb0ccabcf4f6a29e0bd6

Authored by wdn127929
1 parent 97dc0b7f

升级flutter,修改微信登陆bug

@@ -11,14 +11,14 @@ if (flutterRoot == null) { @@ -11,14 +11,14 @@ if (flutterRoot == null) {
11 throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 11 throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 } 12 }
13 13
14 -def flutterVersionCode = "222" 14 +def flutterVersionCode = "223"
15 if (flutterVersionCode == null) { 15 if (flutterVersionCode == null) {
16 - flutterVersionCode = '222' 16 + flutterVersionCode = '223'
17 } 17 }
18 18
19 -def flutterVersionName = "2.2.2" 19 +def flutterVersionName = "2.2.3"
20 if (flutterVersionName == null) { 20 if (flutterVersionName == null) {
21 - flutterVersionName = '2.2.2' 21 + flutterVersionName = '2.2.3'
22 } 22 }
23 23
24 apply plugin: 'com.android.application' 24 apply plugin: 'com.android.application'
1 -34f4f21cec574b3cdb36b590374022c6  
  1 +0feb5fcd550157bc1a24916743cf7132
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; 57 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
58 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; 58 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
59 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; 59 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
60 - 97C146EE1CF9000F007C117D /* 一键订.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "一键订.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 60 + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
61 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 61 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
62 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 62 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
63 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 63 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
@@ -131,7 +131,7 @@ @@ -131,7 +131,7 @@
131 97C146EF1CF9000F007C117D /* Products */ = { 131 97C146EF1CF9000F007C117D /* Products */ = {
132 isa = PBXGroup; 132 isa = PBXGroup;
133 children = ( 133 children = (
134 - 97C146EE1CF9000F007C117D /* 一键订.app */, 134 + 97C146EE1CF9000F007C117D /* Runner.app */,
135 ); 135 );
136 name = Products; 136 name = Products;
137 sourceTree = "<group>"; 137 sourceTree = "<group>";
@@ -185,7 +185,7 @@ @@ -185,7 +185,7 @@
185 ); 185 );
186 name = Runner; 186 name = Runner;
187 productName = Runner; 187 productName = Runner;
188 - productReference = 97C146EE1CF9000F007C117D /* 一键订.app */; 188 + productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
189 productType = "com.apple.product-type.application"; 189 productType = "com.apple.product-type.application";
190 }; 190 };
191 /* End PBXNativeTarget section */ 191 /* End PBXNativeTarget section */
@@ -474,7 +474,7 @@ @@ -474,7 +474,7 @@
474 CODE_SIGN_IDENTITY = "iPhone Developer"; 474 CODE_SIGN_IDENTITY = "iPhone Developer";
475 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 475 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
476 CODE_SIGN_STYLE = Automatic; 476 CODE_SIGN_STYLE = Automatic;
477 - CURRENT_PROJECT_VERSION = 222; 477 + CURRENT_PROJECT_VERSION = 223;
478 DEVELOPMENT_TEAM = 8J59HM8B82; 478 DEVELOPMENT_TEAM = 8J59HM8B82;
479 ENABLE_BITCODE = NO; 479 ENABLE_BITCODE = NO;
480 FRAMEWORK_SEARCH_PATHS = ( 480 FRAMEWORK_SEARCH_PATHS = (
@@ -487,9 +487,9 @@ @@ -487,9 +487,9 @@
487 "$(inherited)", 487 "$(inherited)",
488 "$(PROJECT_DIR)/Flutter", 488 "$(PROJECT_DIR)/Flutter",
489 ); 489 );
490 - MARKETING_VERSION = 2.2.2; 490 + MARKETING_VERSION = 2.2.5;
491 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine; 491 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
492 - PRODUCT_NAME = "一键订"; 492 + PRODUCT_NAME = Runner;
493 PROVISIONING_PROFILE_SPECIFIER = ""; 493 PROVISIONING_PROFILE_SPECIFIER = "";
494 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 494 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
495 SWIFT_VERSION = 5.0; 495 SWIFT_VERSION = 5.0;
@@ -616,7 +616,7 @@ @@ -616,7 +616,7 @@
616 CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements"; 616 CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements";
617 CODE_SIGN_IDENTITY = "iPhone Developer"; 617 CODE_SIGN_IDENTITY = "iPhone Developer";
618 CODE_SIGN_STYLE = Automatic; 618 CODE_SIGN_STYLE = Automatic;
619 - CURRENT_PROJECT_VERSION = 222; 619 + CURRENT_PROJECT_VERSION = 223;
620 DEVELOPMENT_TEAM = 8J59HM8B82; 620 DEVELOPMENT_TEAM = 8J59HM8B82;
621 ENABLE_BITCODE = NO; 621 ENABLE_BITCODE = NO;
622 FRAMEWORK_SEARCH_PATHS = ( 622 FRAMEWORK_SEARCH_PATHS = (
@@ -629,9 +629,9 @@ @@ -629,9 +629,9 @@
629 "$(inherited)", 629 "$(inherited)",
630 "$(PROJECT_DIR)/Flutter", 630 "$(PROJECT_DIR)/Flutter",
631 ); 631 );
632 - MARKETING_VERSION = 2.2.2; 632 + MARKETING_VERSION = 2.2.5;
633 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine; 633 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
634 - PRODUCT_NAME = "一键订"; 634 + PRODUCT_NAME = Runner;
635 PROVISIONING_PROFILE_SPECIFIER = ""; 635 PROVISIONING_PROFILE_SPECIFIER = "";
636 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 636 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
637 SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 637 SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -649,7 +649,7 @@ @@ -649,7 +649,7 @@
649 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; 649 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
650 CODE_SIGN_IDENTITY = "iPhone Developer"; 650 CODE_SIGN_IDENTITY = "iPhone Developer";
651 CODE_SIGN_STYLE = Automatic; 651 CODE_SIGN_STYLE = Automatic;
652 - CURRENT_PROJECT_VERSION = 222; 652 + CURRENT_PROJECT_VERSION = 223;
653 DEVELOPMENT_TEAM = 8J59HM8B82; 653 DEVELOPMENT_TEAM = 8J59HM8B82;
654 ENABLE_BITCODE = NO; 654 ENABLE_BITCODE = NO;
655 FRAMEWORK_SEARCH_PATHS = ( 655 FRAMEWORK_SEARCH_PATHS = (
@@ -662,9 +662,9 @@ @@ -662,9 +662,9 @@
662 "$(inherited)", 662 "$(inherited)",
663 "$(PROJECT_DIR)/Flutter", 663 "$(PROJECT_DIR)/Flutter",
664 ); 664 );
665 - MARKETING_VERSION = 2.2.2; 665 + MARKETING_VERSION = 2.2.5;
666 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine; 666 PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
667 - PRODUCT_NAME = "一键订"; 667 + PRODUCT_NAME = Runner;
668 PROVISIONING_PROFILE_SPECIFIER = ""; 668 PROVISIONING_PROFILE_SPECIFIER = "";
669 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 669 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
670 SWIFT_VERSION = 5.0; 670 SWIFT_VERSION = 5.0;
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 <BuildableReference 15 <BuildableReference
16 BuildableIdentifier = "primary" 16 BuildableIdentifier = "primary"
17 BlueprintIdentifier = "97C146ED1CF9000F007C117D" 17 BlueprintIdentifier = "97C146ED1CF9000F007C117D"
18 - BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app" 18 + BuildableName = "Runner.app"
19 BlueprintName = "Runner" 19 BlueprintName = "Runner"
20 ReferencedContainer = "container:Runner.xcodeproj"> 20 ReferencedContainer = "container:Runner.xcodeproj">
21 </BuildableReference> 21 </BuildableReference>
@@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
31 <BuildableReference 31 <BuildableReference
32 BuildableIdentifier = "primary" 32 BuildableIdentifier = "primary"
33 BlueprintIdentifier = "97C146ED1CF9000F007C117D" 33 BlueprintIdentifier = "97C146ED1CF9000F007C117D"
34 - BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app" 34 + BuildableName = "Runner.app"
35 BlueprintName = "Runner" 35 BlueprintName = "Runner"
36 ReferencedContainer = "container:Runner.xcodeproj"> 36 ReferencedContainer = "container:Runner.xcodeproj">
37 </BuildableReference> 37 </BuildableReference>
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 <BuildableReference 54 <BuildableReference
55 BuildableIdentifier = "primary" 55 BuildableIdentifier = "primary"
56 BlueprintIdentifier = "97C146ED1CF9000F007C117D" 56 BlueprintIdentifier = "97C146ED1CF9000F007C117D"
57 - BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app" 57 + BuildableName = "Runner.app"
58 BlueprintName = "Runner" 58 BlueprintName = "Runner"
59 ReferencedContainer = "container:Runner.xcodeproj"> 59 ReferencedContainer = "container:Runner.xcodeproj">
60 </BuildableReference> 60 </BuildableReference>
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
71 <BuildableReference 71 <BuildableReference
72 BuildableIdentifier = "primary" 72 BuildableIdentifier = "primary"
73 BlueprintIdentifier = "97C146ED1CF9000F007C117D" 73 BlueprintIdentifier = "97C146ED1CF9000F007C117D"
74 - BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app" 74 + BuildableName = "Runner.app"
75 BlueprintName = "Runner" 75 BlueprintName = "Runner"
76 ReferencedContainer = "container:Runner.xcodeproj"> 76 ReferencedContainer = "container:Runner.xcodeproj">
77 </BuildableReference> 77 </BuildableReference>
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <key>CFBundleDevelopmentRegion</key> 5 <key>CFBundleDevelopmentRegion</key>
6 <string>$(DEVELOPMENT_LANGUAGE)</string> 6 <string>$(DEVELOPMENT_LANGUAGE)</string>
7 <key>CFBundleDisplayName</key> 7 <key>CFBundleDisplayName</key>
8 - <string>$(PRODUCT_NAME)</string> 8 + <string>一键订</string>
9 <key>CFBundleExecutable</key> 9 <key>CFBundleExecutable</key>
10 <string>$(EXECUTABLE_NAME)</string> 10 <string>$(EXECUTABLE_NAME)</string>
11 <key>CFBundleIdentifier</key> 11 <key>CFBundleIdentifier</key>
@@ -35,6 +35,26 @@ import 'provider/user_model.dart'; @@ -35,6 +35,26 @@ import 'provider/user_model.dart';
35 import 'route/navigate_service.dart'; 35 import 'route/navigate_service.dart';
36 import 'route/routes.dart'; 36 import 'route/routes.dart';
37 import 'package:flutter/services.dart'; 37 import 'package:flutter/services.dart';
  38 +import 'package:flutter/material.dart';
  39 +import 'package:flutter/services.dart';
  40 +import 'package:permission_handler/permission_handler.dart';
  41 +
  42 +Future<bool> _requestPermissions() async {
  43 + Map<PermissionGroup, PermissionStatus> permissions =
  44 + await PermissionHandler().requestPermissions([
  45 + PermissionGroup.photos,
  46 + PermissionGroup.location,
  47 + PermissionGroup.camera,
  48 + PermissionGroup.contacts,
  49 + PermissionGroup.storage,
  50 + PermissionGroup.notification
  51 + ]);
  52 +
  53 + List<bool> results = permissions.values.toList().map((status) {
  54 + return status == PermissionStatus.granted;
  55 + }).toList();
  56 + print(results.toString());
  57 +}
38 58
39 Future<void> main() async { 59 Future<void> main() async {
40 FlutterBugly.postCatchedException(() async { 60 FlutterBugly.postCatchedException(() async {
@@ -46,6 +66,7 @@ Future<void> main() async { @@ -46,6 +66,7 @@ Future<void> main() async {
46 LogUtil.init(isDebug: true, tag: 'ONE_KEY'); 66 LogUtil.init(isDebug: true, tag: 'ONE_KEY');
47 Provider.debugCheckInvalidValueType = null; 67 Provider.debugCheckInvalidValueType = null;
48 await initializeDateFormatting(); 68 await initializeDateFormatting();
  69 + _requestPermissions();
49 Utils.changeStatusColor(); 70 Utils.changeStatusColor();
50 SystemChrome.setPreferredOrientations( 71 SystemChrome.setPreferredOrientations(
51 [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]) 72 [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown])
@@ -121,16 +121,16 @@ class _CompleteCreateStorePageState extends State<CompleteCreateStorePage> { @@ -121,16 +121,16 @@ class _CompleteCreateStorePageState extends State<CompleteCreateStorePage> {
121 color: MyColours.color_333333), 121 color: MyColours.color_333333),
122 ), 122 ),
123 VEmptyView(220), 123 VEmptyView(220),
124 - RoundButton(  
125 - radius: ScreenUtil().setWidth(10),  
126 - text: '继续创建桌位',  
127 - fontSize: 34,  
128 - gradientStart: MyColours.color_2AB5B7,  
129 - gradientEnd: MyColours.color_2AB5B7,  
130 - onPressed: () {},  
131 - isBold: false,  
132 - ),  
133 - VEmptyView(20), 124 + // RoundButton(
  125 + // radius: ScreenUtil().setWidth(10),
  126 + // text: '继续创建桌位',
  127 + // fontSize: 34,
  128 + // gradientStart: MyColours.color_2AB5B7,
  129 + // gradientEnd: MyColours.color_2AB5B7,
  130 + // onPressed: () {},
  131 + // isBold: false,
  132 + // ),
  133 + // VEmptyView(20),
134 RoundButton( 134 RoundButton(
135 radius: ScreenUtil().setWidth(10), 135 radius: ScreenUtil().setWidth(10),
136 text: '进入店铺', 136 text: '进入店铺',
@@ -22,10 +22,7 @@ class EnterStoreEnvironmentPage extends StatefulWidget { @@ -22,10 +22,7 @@ class EnterStoreEnvironmentPage extends StatefulWidget {
22 _EnterStoreEnvironmentPageState(); 22 _EnterStoreEnvironmentPageState();
23 } 23 }
24 24
25 -class _EnterStoreEnvironmentPageState extends State<EnterStoreEnvironmentPage>  
26 - with AutomaticKeepAliveClientMixin {  
27 - @override  
28 - bool get wantKeepAlive => true; 25 +class _EnterStoreEnvironmentPageState extends State<EnterStoreEnvironmentPage> {
29 ScrollController _controller = ScrollController(); 26 ScrollController _controller = ScrollController();
30 27
31 @override 28 @override
@@ -68,7 +68,7 @@ class _MapChoicePointPageState extends State<MapChoicePointPage> { @@ -68,7 +68,7 @@ class _MapChoicePointPageState extends State<MapChoicePointPage> {
68 @override 68 @override
69 Widget build(BuildContext context) { 69 Widget build(BuildContext context) {
70 return Scaffold( 70 return Scaffold(
71 - resizeToAvoidBottomPadding: false, //防止底部布局被顶起 71 + resizeToAvoidBottomInset: false, //防止底部布局被顶起
72 appBar: SystemAppBar( 72 appBar: SystemAppBar(
73 '选择位置信息', 73 '选择位置信息',
74 onTap: () { 74 onTap: () {
@@ -131,7 +131,7 @@ class InvicationPageState extends State<InvicationPage> { @@ -131,7 +131,7 @@ class InvicationPageState extends State<InvicationPage> {
131 131
132 if (couponProvider.coupons.length == 0) { 132 if (couponProvider.coupons.length == 0) {
133 setState(() { 133 setState(() {
134 - couponHeight = 0; 134 + couponHeight = 0.0;
135 }); 135 });
136 } else { 136 } else {
137 setState(() { 137 setState(() {
@@ -141,7 +141,7 @@ class InvicationPageState extends State<InvicationPage> { @@ -141,7 +141,7 @@ class InvicationPageState extends State<InvicationPage> {
141 } else { 141 } else {
142 //没有新建的优惠券 142 //没有新建的优惠券
143 setState(() { 143 setState(() {
144 - couponHeight = 0; 144 + couponHeight = 0.0;
145 }); 145 });
146 } 146 }
147 } 147 }
@@ -287,8 +287,7 @@ class InvicationPageState extends State<InvicationPage> { @@ -287,8 +287,7 @@ class InvicationPageState extends State<InvicationPage> {
287 ), 287 ),
288 child: Scaffold( 288 child: Scaffold(
289 backgroundColor: Colors.transparent, 289 backgroundColor: Colors.transparent,
290 - body: SafeArea(  
291 - child: Stack( 290 + body: Stack(
292 children: [ 291 children: [
293 Container( 292 Container(
294 margin: EdgeInsets.only(top: ScreenUtil().setWidth(13 * 2)), 293 margin: EdgeInsets.only(top: ScreenUtil().setWidth(13 * 2)),
@@ -888,7 +887,8 @@ class InvicationPageState extends State<InvicationPage> { @@ -888,7 +887,8 @@ class InvicationPageState extends State<InvicationPage> {
888 Positioned( 887 Positioned(
889 left: ScreenUtil().setWidth(0), 888 left: ScreenUtil().setWidth(0),
890 top: ScreenUtil().setWidth(0), 889 top: ScreenUtil().setWidth(0),
891 - child: GestureDetector( 890 + child: SafeArea(
  891 + child: GestureDetector(
892 onTap: () { 892 onTap: () {
893 Navigator.of(context).pop(); 893 Navigator.of(context).pop();
894 }, 894 },
@@ -906,7 +906,7 @@ class InvicationPageState extends State<InvicationPage> { @@ -906,7 +906,7 @@ class InvicationPageState extends State<InvicationPage> {
906 width: ScreenUtil().setWidth(20), 906 width: ScreenUtil().setWidth(20),
907 height: ScreenUtil().setHeight(31), 907 height: ScreenUtil().setHeight(31),
908 )), 908 )),
909 - ), 909 + )),
910 ), 910 ),
911 Positioned( 911 Positioned(
912 // left: ScreenUtil().setWidth(180), 912 // left: ScreenUtil().setWidth(180),
@@ -974,6 +974,6 @@ class InvicationPageState extends State<InvicationPage> { @@ -974,6 +974,6 @@ class InvicationPageState extends State<InvicationPage> {
974 : Container(), 974 : Container(),
975 ) 975 )
976 ], 976 ],
977 - )))); 977 + )));
978 } 978 }
979 } 979 }
@@ -91,7 +91,7 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore> { @@ -91,7 +91,7 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore> {
91 '', 91 '',
92 // leftTitle: '上一步', 92 // leftTitle: '上一步',
93 onTap: () { 93 onTap: () {
94 - Navigator.pop(context); 94 + Navigator.of(context).pop();
95 }, 95 },
96 ), 96 ),
97 body: Container( 97 body: Container(
@@ -17,10 +17,12 @@ import 'package:one_key/provider/create_store_model.dart'; @@ -17,10 +17,12 @@ import 'package:one_key/provider/create_store_model.dart';
17 import 'package:one_key/provider/other_login_provider.dart'; 17 import 'package:one_key/provider/other_login_provider.dart';
18 import 'package:one_key/provider/user_model.dart'; 18 import 'package:one_key/provider/user_model.dart';
19 import 'package:one_key/res/colors.dart'; 19 import 'package:one_key/res/colors.dart';
  20 +import 'package:one_key/route/navigate_service.dart';
20 import 'package:one_key/utils/navigator_util.dart'; 21 import 'package:one_key/utils/navigator_util.dart';
21 import 'package:one_key/utils/utils.dart'; 22 import 'package:one_key/utils/utils.dart';
22 import 'package:one_key/widgets/MyDivider.dart'; 23 import 'package:one_key/widgets/MyDivider.dart';
23 import 'package:one_key/widgets/h_empty_view.dart'; 24 import 'package:one_key/widgets/h_empty_view.dart';
  25 +import 'package:one_key/widgets/loading.dart';
24 import 'package:one_key/widgets/round_button.dart'; 26 import 'package:one_key/widgets/round_button.dart';
25 import 'package:one_key/widgets/v_empty_view.dart'; 27 import 'package:one_key/widgets/v_empty_view.dart';
26 import 'package:provider/provider.dart'; 28 import 'package:provider/provider.dart';
@@ -50,7 +52,7 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver { @@ -50,7 +52,7 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
50 String errorText = ""; //错误提示 52 String errorText = ""; //错误提示
51 53
52 bool _check = true; 54 bool _check = true;
53 - StreamSubscription<BaseWeChatResponse> _wxlogin; 55 + StreamSubscription<BaseWeChatResponse> streamSubscription;
54 OtherLoginProvider otherLoginProvider; 56 OtherLoginProvider otherLoginProvider;
55 CreateStoreModel createStoreModel; 57 CreateStoreModel createStoreModel;
56 58
@@ -58,7 +60,7 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver { @@ -58,7 +60,7 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
58 void initState() { 60 void initState() {
59 // TODO: implement initState 61 // TODO: implement initState
60 super.initState(); 62 super.initState();
61 - _initFluwx(); 63 + _checkWechat();
62 isLogin(); 64 isLogin();
63 WidgetsBinding.instance.addObserver(this); 65 WidgetsBinding.instance.addObserver(this);
64 WidgetsBinding.instance.addPostFrameCallback((_) { 66 WidgetsBinding.instance.addPostFrameCallback((_) {
@@ -74,13 +76,23 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver { @@ -74,13 +76,23 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
74 }); 76 });
75 } 77 }
76 78
77 - //初始化微信SDK  
78 - _initFluwx() async {  
79 - await registerWxApi(  
80 - appId: "wx85aa3cdd0f791e65",  
81 - doOnAndroid: true,  
82 - doOnIOS: true,  
83 - universalLink: "https://xt04.colorcun.com/link/OneKey/"); 79 + //当页面离开时要清除监听器
  80 + @override
  81 + void dispose() {
  82 + super.dispose();
  83 + WidgetsBinding.instance.removeObserver(this);
  84 + if (streamSubscription != null) {
  85 + streamSubscription.cancel();
  86 + }
  87 + }
  88 +
  89 + //微信是否安装
  90 + _checkWechat() async {
  91 + // await registerWxApi(
  92 + // appId: "wx85aa3cdd0f791e65",
  93 + // doOnAndroid: true,
  94 + // doOnIOS: true,
  95 + // universalLink: "https://xt04.colorcun.com/link/OneKey/");
84 var result = await isWeChatInstalled; 96 var result = await isWeChatInstalled;
85 if (result != null && result) { 97 if (result != null && result) {
86 App.isInstallWx = true; 98 App.isInstallWx = true;
@@ -102,13 +114,6 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver { @@ -102,13 +114,6 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
102 super.didChangeDependencies(); 114 super.didChangeDependencies();
103 } 115 }
104 116
105 - @override  
106 - void dispose() {  
107 - // TODO: implement dispose  
108 - WidgetsBinding.instance.removeObserver(this);  
109 - super.dispose();  
110 - }  
111 -  
112 //监听输入框,设置登录按钮状态 117 //监听输入框,设置登录按钮状态
113 setActivate() { 118 setActivate() {
114 if (_sellerCodeController.text.isNotEmpty && 119 if (_sellerCodeController.text.isNotEmpty &&
@@ -148,11 +153,12 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver { @@ -148,11 +153,12 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
148 153
149 ///获取微信登录code 154 ///获取微信登录code
150 _getWxCode() { 155 _getWxCode() {
151 - _wxlogin = fluwx.weChatResponseEventHandler 156 + streamSubscription = fluwx.weChatResponseEventHandler
152 .distinct((a, b) => a == b) 157 .distinct((a, b) => a == b)
153 .listen((res) { 158 .listen((res) {
154 if (res is fluwx.WeChatAuthResponse && res.errCode == 0) { 159 if (res is fluwx.WeChatAuthResponse && res.errCode == 0) {
155 LogUtil.v("code:" + res.code); 160 LogUtil.v("code:" + res.code);
  161 + // Loading.showLoading(context);
156 _getAccessToken(res.code); 162 _getAccessToken(res.code);
157 } else { 163 } else {
158 // Utils.showToast(res.errStr??"登录失败,请稍后重试"); 164 // Utils.showToast(res.errStr??"登录失败,请稍后重试");
@@ -167,7 +173,8 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver { @@ -167,7 +173,8 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
167 LogUtil.v("access_token:${response.toString()}"); 173 LogUtil.v("access_token:${response.toString()}");
168 Map<String, dynamic> responseData = json.decode(response.data.toString()); 174 Map<String, dynamic> responseData = json.decode(response.data.toString());
169 if (responseData["errcode"] != null) { 175 if (responseData["errcode"] != null) {
170 -// Utils.showToast(responseData["errmsg"]??"登录,请稍后重试"); 176 + Utils.showToast(responseData["errmsg"] ?? "登录,请稍后重试");
  177 + // Loading.hideLoading(context);
171 } else { 178 } else {
172 App.sp.setString("openid", responseData["openid"]); 179 App.sp.setString("openid", responseData["openid"]);
173 App.sp.setString("unionid", responseData["unionid"]); 180 App.sp.setString("unionid", responseData["unionid"]);
@@ -179,9 +186,11 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver { @@ -179,9 +186,11 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
179 Map<String, String> params = { 186 Map<String, String> params = {
180 "unionid": responseData["unionid"], 187 "unionid": responseData["unionid"],
181 }; 188 };
182 - 189 + BuildContext contextTemp =
  190 + App.getIt<NavigateService>().key.currentState.overlay.context;
183 CheckbindPhoneSunModel model = 191 CheckbindPhoneSunModel model =
184 - await otherLoginProvider.checkbindPhone(context, params); 192 + await otherLoginProvider.checkbindPhone(contextTemp, params);
  193 + // Loading.hideLoading(context);
185 if (model != null) { 194 if (model != null) {
186 createStoreModel.storeInfo = StoreInfo(); 195 createStoreModel.storeInfo = StoreInfo();
187 createStoreModel.storeInfo.phone = model.phone; 196 createStoreModel.storeInfo.phone = model.phone;
@@ -48,9 +48,11 @@ class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> { @@ -48,9 +48,11 @@ class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> {
48 _controller = EasyRefreshController(); 48 _controller = EasyRefreshController();
49 WidgetsBinding.instance.addPostFrameCallback((_) { 49 WidgetsBinding.instance.addPostFrameCallback((_) {
50 // getMessage(); 50 // getMessage();
51 - setState(() {  
52 - messageModel.pageState = PageState.Loading;  
53 - }); 51 + // setState(() {
  52 + // messageModel.pageState = PageState.Loading;
  53 + // });
  54 + messageModel.pageState = PageState.Loading;
  55 + messageModel.notifyListeners();
54 }); 56 });
55 } 57 }
56 58
@@ -153,7 +155,7 @@ class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> { @@ -153,7 +155,7 @@ class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> {
153 getMessage(showLoading: true); 155 getMessage(showLoading: true);
154 }, 156 },
155 emptyMsg: 157 emptyMsg:
156 - "暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线预订消息哦", 158 + "暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线买单消息哦",
157 emptyImg: "empty_search", 159 emptyImg: "empty_search",
158 showMsg: "加载中,请稍后...", 160 showMsg: "加载中,请稍后...",
159 ); 161 );
@@ -46,11 +46,14 @@ class MessageOnlinePageState extends State<MessageOnlinePage> { @@ -46,11 +46,14 @@ class MessageOnlinePageState extends State<MessageOnlinePage> {
46 // messageDialogModel.removeMessage(args.toString()); 46 // messageDialogModel.removeMessage(args.toString());
47 // }); 47 // });
48 _controller = EasyRefreshController(); 48 _controller = EasyRefreshController();
  49 + // messageModel.pageState = PageState.Loading;
49 WidgetsBinding.instance.addPostFrameCallback((_) { 50 WidgetsBinding.instance.addPostFrameCallback((_) {
50 // getMessage(); 51 // getMessage();
51 - setState(() {  
52 - messageModel.pageState = PageState.Loading;  
53 - }); 52 + // setState(() {
  53 + // messageModel.pageState = PageState.Loading;
  54 + // });
  55 + messageModel.pageState = PageState.Loading;
  56 + messageModel.notifyListeners();
54 }); 57 });
55 } 58 }
56 59
@@ -43,11 +43,14 @@ class MessageOrderPageState extends State<MessageOrderPage> { @@ -43,11 +43,14 @@ class MessageOrderPageState extends State<MessageOrderPage> {
43 // TODO: implement initState 43 // TODO: implement initState
44 super.initState(); 44 super.initState();
45 _controller = EasyRefreshController(); 45 _controller = EasyRefreshController();
  46 + // messageModel.pageState = PageState.Loading;
46 WidgetsBinding.instance.addPostFrameCallback((_) { 47 WidgetsBinding.instance.addPostFrameCallback((_) {
47 // getMessages(); 48 // getMessages();
48 - setState(() {  
49 - messageModel.pageState = PageState.Loading;  
50 - }); 49 + // setState(() {
  50 + // messageModel.pageState = PageState.Loading;
  51 + // });
  52 + messageModel.pageState = PageState.Loading;
  53 + messageModel.notifyListeners();
51 }); 54 });
52 //从列表数据本地移除提前点餐消息 55 //从列表数据本地移除提前点餐消息
53 // bus.on("remove_untreated_message_order", (args) { 56 // bus.on("remove_untreated_message_order", (args) {
@@ -61,8 +61,10 @@ class MessagePageState extends State<MessagePage> @@ -61,8 +61,10 @@ class MessagePageState extends State<MessagePage>
61 61
62 //三种分类各自的未读消息数目 62 //三种分类各自的未读消息数目
63 _getUnMsgNum() async { 63 _getUnMsgNum() async {
64 - Map<String, String> params = {"sid": userModel.user.sellerid};  
65 - await messageModel.getUnMsgNum(context, params); 64 + if (mounted) {
  65 + Map<String, String> params = {"sid": userModel.user.sellerid};
  66 + await messageModel.getUnMsgNum(context, params);
  67 + }
66 } 68 }
67 69
68 //获取在线预订消息status 0未处理 1已处理 70 //获取在线预订消息status 0未处理 1已处理
@@ -47,14 +47,16 @@ class NoteBookPageState extends State<NoteBookPage> { @@ -47,14 +47,16 @@ class NoteBookPageState extends State<NoteBookPage> {
47 // TODO: implement initState 47 // TODO: implement initState
48 super.initState(); 48 super.initState();
49 LogUtil.v("notebook_page initState"); 49 LogUtil.v("notebook_page initState");
50 - userModel = Provider.of<UserModel>(context, listen: false); 50 +
51 _controller = EasyRefreshController(); 51 _controller = EasyRefreshController();
52 - _initTime(); 52 + // _initTime();
53 bus.on("refresh_book_list", (args) { 53 bus.on("refresh_book_list", (args) {
54 _getReserveList(); 54 _getReserveList();
55 }); 55 });
56 56
57 WidgetsBinding.instance.addPostFrameCallback((_) { 57 WidgetsBinding.instance.addPostFrameCallback((_) {
  58 + _initTime();
  59 + setState(() {});
58 _getReserveList(); 60 _getReserveList();
59 _reserveCountDay(); 61 _reserveCountDay();
60 }); 62 });
@@ -398,6 +400,7 @@ class NoteBookPageState extends State<NoteBookPage> { @@ -398,6 +400,7 @@ class NoteBookPageState extends State<NoteBookPage> {
398 @override 400 @override
399 Widget build(BuildContext context) { 401 Widget build(BuildContext context) {
400 // TODO: implement build 402 // TODO: implement build
  403 + userModel = Provider.of<UserModel>(context, listen: false);
401 return Container( 404 return Container(
402 width: double.infinity, 405 width: double.infinity,
403 height: double.infinity, 406 height: double.infinity,
@@ -49,9 +49,11 @@ class OtherLoginProvider extends ChangeNotifier { @@ -49,9 +49,11 @@ class OtherLoginProvider extends ChangeNotifier {
49 BaseResp<dynamic> baseResp = await DioUtil() 49 BaseResp<dynamic> baseResp = await DioUtil()
50 .request<dynamic>(context, Method.get, HttpUrl.check_seller_acc, 50 .request<dynamic>(context, Method.get, HttpUrl.check_seller_acc,
51 data: params, showLoading: showLoading) 51 data: params, showLoading: showLoading)
52 - .catchError((error) {}); 52 + .catchError((error) {
  53 + print(error);
  54 + });
53 if (baseResp.code == Constant.status_success) { 55 if (baseResp.code == Constant.status_success) {
54 - if (baseResp.data.isNotEmpty) { 56 + if (baseResp.data != null) {
55 //解析解析 57 //解析解析
56 pageState = PageState.Success; 58 pageState = PageState.Success;
57 sellerList = CheckSellerAccModel.fromJson(baseResp.responseData).data; 59 sellerList = CheckSellerAccModel.fromJson(baseResp.responseData).data;
@@ -291,7 +291,7 @@ class TableManagerModel with ChangeNotifier { @@ -291,7 +291,7 @@ class TableManagerModel with ChangeNotifier {
291 }; 291 };
292 pageState = PageState.Loading; 292 pageState = PageState.Loading;
293 notifyListeners(); 293 notifyListeners();
294 - List<Notebook> noteBooks = await model.getReserveList(context, params); 294 + List<Notebook> noteBooks = await newGetReserveList(context, params);
295 for (Notebook notebook in noteBooks) { 295 for (Notebook notebook in noteBooks) {
296 if (notebook.tid.isEmpty) continue; 296 if (notebook.tid.isEmpty) continue;
297 if (notebook.status == "1" || 297 if (notebook.status == "1" ||
@@ -308,6 +308,40 @@ class TableManagerModel with ChangeNotifier { @@ -308,6 +308,40 @@ class TableManagerModel with ChangeNotifier {
308 initData(); 308 initData();
309 } 309 }
310 310
  311 + //获取已预订订单
  312 + Future<List<Notebook>> newGetReserveList(
  313 + BuildContext context, Map<String, String> params) async {
  314 + List<Notebook> notebooks = [];
  315 + BaseResp<List> baseResp = await DioUtil()
  316 + .request<List>(context, Method.get, HttpUrl.get_reserve_list,
  317 + data: params, showLoading: false)
  318 + .catchError((error) {
  319 + print(error.toString());
  320 + if (error is MyError) {
  321 + // switch (error.type) {
  322 + // case 1:
  323 + // pageState = PageState.ConnectivityError;
  324 + // break;
  325 + // case 2:
  326 + // pageState = PageState.ConnectivityTimeOut;
  327 + // break;
  328 + // default:
  329 + // pageState = PageState.ConnectivityError;
  330 + // break;
  331 + // }
  332 + }
  333 + });
  334 + if (baseResp == null) return [];
  335 + if (baseResp.code == Constant.status_success) {
  336 + notebooks = baseResp.data.map<Notebook>((value) {
  337 + return Notebook.fromJson(value);
  338 + }).toList();
  339 + } else {
  340 + Utils.showToast(baseResp.msg ?? "");
  341 + }
  342 + return notebooks;
  343 + }
  344 +
311 //获取一天开始-结束时间字符串 345 //获取一天开始-结束时间字符串
312 String _getRdate() { 346 String _getRdate() {
313 //一天开始时间 347 //一天开始时间
@@ -3,13 +3,10 @@ import 'dart:io'; @@ -3,13 +3,10 @@ import 'dart:io';
3 3
4 import 'package:flutter/material.dart'; 4 import 'package:flutter/material.dart';
5 import 'package:image_picker/image_picker.dart'; 5 import 'package:image_picker/image_picker.dart';
6 -import 'package:one_key/models/upload_img_model.dart'; 6 +
7 import 'package:one_key/provider/upload_img_provider.dart'; 7 import 'package:one_key/provider/upload_img_provider.dart';
8 -import 'package:one_key/res/colors.dart';  
9 -import 'package:one_key/utils/dialog_util.dart';  
10 -import 'package:photo/photo.dart'; 8 +
11 import 'package:qiniu_flutter_sdk/qiniu_flutter_sdk.dart'; 9 import 'package:qiniu_flutter_sdk/qiniu_flutter_sdk.dart';
12 -import 'package:photo_manager/photo_manager.dart';  
13 10
14 enum UploadType { 11 enum UploadType {
15 EnvironmentUploadType, //店铺环境 12 EnvironmentUploadType, //店铺环境
@@ -143,7 +143,7 @@ class Utils { @@ -143,7 +143,7 @@ class Utils {
143 TextPainter painter = TextPainter( 143 TextPainter painter = TextPainter(
144 144
145 ///AUTO:华为手机如果不指定locale的时候,该方法算出来的文字高度是比系统计算偏小的。 145 ///AUTO:华为手机如果不指定locale的时候,该方法算出来的文字高度是比系统计算偏小的。
146 - locale: Localizations.localeOf(context, nullOk: true), 146 + locale: Localizations.localeOf(context),
147 maxLines: maxLines, 147 maxLines: maxLines,
148 textDirection: TextDirection.ltr, 148 textDirection: TextDirection.ltr,
149 text: TextSpan( 149 text: TextSpan(
@@ -49,7 +49,7 @@ packages: @@ -49,7 +49,7 @@ packages:
49 name: async 49 name: async
50 url: "https://pub.flutter-io.cn" 50 url: "https://pub.flutter-io.cn"
51 source: hosted 51 source: hosted
52 - version: "2.5.0-nullsafety.1" 52 + version: "2.5.0"
53 audioplayers: 53 audioplayers:
54 dependency: "direct main" 54 dependency: "direct main"
55 description: 55 description:
@@ -63,7 +63,7 @@ packages: @@ -63,7 +63,7 @@ packages:
63 name: boolean_selector 63 name: boolean_selector
64 url: "https://pub.flutter-io.cn" 64 url: "https://pub.flutter-io.cn"
65 source: hosted 65 source: hosted
66 - version: "2.1.0-nullsafety.1" 66 + version: "2.1.0"
67 build: 67 build:
68 dependency: transitive 68 dependency: transitive
69 description: 69 description:
@@ -133,14 +133,14 @@ packages: @@ -133,14 +133,14 @@ packages:
133 name: characters 133 name: characters
134 url: "https://pub.flutter-io.cn" 134 url: "https://pub.flutter-io.cn"
135 source: hosted 135 source: hosted
136 - version: "1.1.0-nullsafety.3" 136 + version: "1.1.0"
137 charcode: 137 charcode:
138 dependency: transitive 138 dependency: transitive
139 description: 139 description:
140 name: charcode 140 name: charcode
141 url: "https://pub.flutter-io.cn" 141 url: "https://pub.flutter-io.cn"
142 source: hosted 142 source: hosted
143 - version: "1.2.0-nullsafety.1" 143 + version: "1.2.0"
144 checked_yaml: 144 checked_yaml:
145 dependency: transitive 145 dependency: transitive
146 description: 146 description:
@@ -161,7 +161,7 @@ packages: @@ -161,7 +161,7 @@ packages:
161 name: clock 161 name: clock
162 url: "https://pub.flutter-io.cn" 162 url: "https://pub.flutter-io.cn"
163 source: hosted 163 source: hosted
164 - version: "1.1.0-nullsafety.1" 164 + version: "1.1.0"
165 code_builder: 165 code_builder:
166 dependency: transitive 166 dependency: transitive
167 description: 167 description:
@@ -175,7 +175,7 @@ packages: @@ -175,7 +175,7 @@ packages:
175 name: collection 175 name: collection
176 url: "https://pub.flutter-io.cn" 176 url: "https://pub.flutter-io.cn"
177 source: hosted 177 source: hosted
178 - version: "1.15.0-nullsafety.3" 178 + version: "1.15.0"
179 common_utils: 179 common_utils:
180 dependency: "direct main" 180 dependency: "direct main"
181 description: 181 description:
@@ -308,7 +308,7 @@ packages: @@ -308,7 +308,7 @@ packages:
308 name: fake_async 308 name: fake_async
309 url: "https://pub.flutter-io.cn" 309 url: "https://pub.flutter-io.cn"
310 source: hosted 310 source: hosted
311 - version: "1.2.0-nullsafety.1" 311 + version: "1.2.0"
312 ffi: 312 ffi:
313 dependency: transitive 313 dependency: transitive
314 description: 314 description:
@@ -533,7 +533,7 @@ packages: @@ -533,7 +533,7 @@ packages:
533 name: js 533 name: js
534 url: "https://pub.flutter-io.cn" 534 url: "https://pub.flutter-io.cn"
535 source: hosted 535 source: hosted
536 - version: "0.6.2" 536 + version: "0.6.3"
537 json_annotation: 537 json_annotation:
538 dependency: "direct main" 538 dependency: "direct main"
539 description: 539 description:
@@ -582,14 +582,14 @@ packages: @@ -582,14 +582,14 @@ packages:
582 name: matcher 582 name: matcher
583 url: "https://pub.flutter-io.cn" 583 url: "https://pub.flutter-io.cn"
584 source: hosted 584 source: hosted
585 - version: "0.12.10-nullsafety.1" 585 + version: "0.12.10"
586 meta: 586 meta:
587 dependency: transitive 587 dependency: transitive
588 description: 588 description:
589 name: meta 589 name: meta
590 url: "https://pub.flutter-io.cn" 590 url: "https://pub.flutter-io.cn"
591 source: hosted 591 source: hosted
592 - version: "1.3.0-nullsafety.3" 592 + version: "1.3.0"
593 mime: 593 mime:
594 dependency: transitive 594 dependency: transitive
595 description: 595 description:
@@ -659,7 +659,7 @@ packages: @@ -659,7 +659,7 @@ packages:
659 name: path 659 name: path
660 url: "https://pub.flutter-io.cn" 660 url: "https://pub.flutter-io.cn"
661 source: hosted 661 source: hosted
662 - version: "1.8.0-nullsafety.1" 662 + version: "1.8.0"
663 path_drawing: 663 path_drawing:
664 dependency: transitive 664 dependency: transitive
665 description: 665 description:
@@ -930,7 +930,7 @@ packages: @@ -930,7 +930,7 @@ packages:
930 name: source_span 930 name: source_span
931 url: "https://pub.flutter-io.cn" 931 url: "https://pub.flutter-io.cn"
932 source: hosted 932 source: hosted
933 - version: "1.8.0-nullsafety.2" 933 + version: "1.8.0"
934 sqflite: 934 sqflite:
935 dependency: "direct main" 935 dependency: "direct main"
936 description: 936 description:
@@ -951,14 +951,14 @@ packages: @@ -951,14 +951,14 @@ packages:
951 name: stack_trace 951 name: stack_trace
952 url: "https://pub.flutter-io.cn" 952 url: "https://pub.flutter-io.cn"
953 source: hosted 953 source: hosted
954 - version: "1.10.0-nullsafety.1" 954 + version: "1.10.0"
955 stream_channel: 955 stream_channel:
956 dependency: transitive 956 dependency: transitive
957 description: 957 description:
958 name: stream_channel 958 name: stream_channel
959 url: "https://pub.flutter-io.cn" 959 url: "https://pub.flutter-io.cn"
960 source: hosted 960 source: hosted
961 - version: "2.1.0-nullsafety.1" 961 + version: "2.1.0"
962 stream_transform: 962 stream_transform:
963 dependency: transitive 963 dependency: transitive
964 description: 964 description:
@@ -972,7 +972,7 @@ packages: @@ -972,7 +972,7 @@ packages:
972 name: string_scanner 972 name: string_scanner
973 url: "https://pub.flutter-io.cn" 973 url: "https://pub.flutter-io.cn"
974 source: hosted 974 source: hosted
975 - version: "1.1.0-nullsafety.1" 975 + version: "1.1.0"
976 synchronized: 976 synchronized:
977 dependency: transitive 977 dependency: transitive
978 description: 978 description:
@@ -993,14 +993,14 @@ packages: @@ -993,14 +993,14 @@ packages:
993 name: term_glyph 993 name: term_glyph
994 url: "https://pub.flutter-io.cn" 994 url: "https://pub.flutter-io.cn"
995 source: hosted 995 source: hosted
996 - version: "1.2.0-nullsafety.1" 996 + version: "1.2.0"
997 test_api: 997 test_api:
998 dependency: transitive 998 dependency: transitive
999 description: 999 description:
1000 name: test_api 1000 name: test_api
1001 url: "https://pub.flutter-io.cn" 1001 url: "https://pub.flutter-io.cn"
1002 source: hosted 1002 source: hosted
1003 - version: "0.2.19-nullsafety.2" 1003 + version: "0.2.19"
1004 timing: 1004 timing:
1005 dependency: transitive 1005 dependency: transitive
1006 description: 1006 description:
@@ -1023,7 +1023,7 @@ packages: @@ -1023,7 +1023,7 @@ packages:
1023 name: typed_data 1023 name: typed_data
1024 url: "https://pub.flutter-io.cn" 1024 url: "https://pub.flutter-io.cn"
1025 source: hosted 1025 source: hosted
1026 - version: "1.3.0-nullsafety.3" 1026 + version: "1.3.0"
1027 url_launcher: 1027 url_launcher:
1028 dependency: "direct main" 1028 dependency: "direct main"
1029 description: 1029 description:
@@ -1079,7 +1079,7 @@ packages: @@ -1079,7 +1079,7 @@ packages:
1079 name: vector_math 1079 name: vector_math
1080 url: "https://pub.flutter-io.cn" 1080 url: "https://pub.flutter-io.cn"
1081 source: hosted 1081 source: hosted
1082 - version: "2.1.0-nullsafety.3" 1082 + version: "2.1.0"
1083 video_compress: 1083 video_compress:
1084 dependency: "direct main" 1084 dependency: "direct main"
1085 description: 1085 description:
@@ -1158,5 +1158,5 @@ packages: @@ -1158,5 +1158,5 @@ packages:
1158 source: hosted 1158 source: hosted
1159 version: "2.2.1" 1159 version: "2.2.1"
1160 sdks: 1160 sdks:
1161 - dart: ">=2.10.0-110 <2.11.0"  
1162 - flutter: ">=1.20.0 <2.0.0" 1161 + dart: ">=2.12.0-0.0 <3.0.0"
  1162 + flutter: ">=1.20.0"