Commit 17e7bede808db9fac683eb0ccabcf4f6a29e0bd6

Authored by wdn127929
1 parent 97dc0b7f

升级flutter,修改微信登陆bug

... ... @@ -11,14 +11,14 @@ if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = "222"
def flutterVersionCode = "223"
if (flutterVersionCode == null) {
flutterVersionCode = '222'
flutterVersionCode = '223'
}
def flutterVersionName = "2.2.2"
def flutterVersionName = "2.2.3"
if (flutterVersionName == null) {
flutterVersionName = '2.2.2'
flutterVersionName = '2.2.3'
}
apply plugin: 'com.android.application'
... ...
34f4f21cec574b3cdb36b590374022c6
\ No newline at end of file
0feb5fcd550157bc1a24916743cf7132
\ No newline at end of file
... ...
... ... @@ -57,7 +57,7 @@
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* 一键订.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "一键订.app"; sourceTree = BUILT_PRODUCTS_DIR; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
... ... @@ -131,7 +131,7 @@
97C146EF1CF9000F007C117D /* Products */ = {
isa = PBXGroup;
children = (
97C146EE1CF9000F007C117D /* 一键订.app */,
97C146EE1CF9000F007C117D /* Runner.app */,
);
name = Products;
sourceTree = "<group>";
... ... @@ -185,7 +185,7 @@
);
name = Runner;
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* 一键订.app */;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
... ... @@ -474,7 +474,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 222;
CURRENT_PROJECT_VERSION = 223;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
... ... @@ -487,9 +487,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 2.2.2;
MARKETING_VERSION = 2.2.5;
PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
PRODUCT_NAME = "一键订";
PRODUCT_NAME = Runner;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
... ... @@ -616,7 +616,7 @@
CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 222;
CURRENT_PROJECT_VERSION = 223;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
... ... @@ -629,9 +629,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 2.2.2;
MARKETING_VERSION = 2.2.5;
PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
PRODUCT_NAME = "一键订";
PRODUCT_NAME = Runner;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
... ... @@ -649,7 +649,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 222;
CURRENT_PROJECT_VERSION = 223;
DEVELOPMENT_TEAM = 8J59HM8B82;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
... ... @@ -662,9 +662,9 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 2.2.2;
MARKETING_VERSION = 2.2.5;
PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
PRODUCT_NAME = "一键订";
PRODUCT_NAME = Runner;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
... ...
... ... @@ -15,7 +15,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
... ... @@ -31,7 +31,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
... ... @@ -54,7 +54,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
... ... @@ -71,7 +71,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "&#x4e00;&#x952e;&#x8ba2;.app"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
... ...
... ... @@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>$(PRODUCT_NAME)</string>
<string>一键订</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
... ...
... ... @@ -35,6 +35,26 @@ import 'provider/user_model.dart';
import 'route/navigate_service.dart';
import 'route/routes.dart';
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:permission_handler/permission_handler.dart';
Future<bool> _requestPermissions() async {
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler().requestPermissions([
PermissionGroup.photos,
PermissionGroup.location,
PermissionGroup.camera,
PermissionGroup.contacts,
PermissionGroup.storage,
PermissionGroup.notification
]);
List<bool> results = permissions.values.toList().map((status) {
return status == PermissionStatus.granted;
}).toList();
print(results.toString());
}
Future<void> main() async {
FlutterBugly.postCatchedException(() async {
... ... @@ -46,6 +66,7 @@ Future<void> main() async {
LogUtil.init(isDebug: true, tag: 'ONE_KEY');
Provider.debugCheckInvalidValueType = null;
await initializeDateFormatting();
_requestPermissions();
Utils.changeStatusColor();
SystemChrome.setPreferredOrientations(
[DeviceOrientation.portraitUp, DeviceOrientation.portraitDown])
... ...
... ... @@ -121,16 +121,16 @@ class _CompleteCreateStorePageState extends State<CompleteCreateStorePage> {
color: MyColours.color_333333),
),
VEmptyView(220),
RoundButton(
radius: ScreenUtil().setWidth(10),
text: '继续创建桌位',
fontSize: 34,
gradientStart: MyColours.color_2AB5B7,
gradientEnd: MyColours.color_2AB5B7,
onPressed: () {},
isBold: false,
),
VEmptyView(20),
// RoundButton(
// radius: ScreenUtil().setWidth(10),
// text: '继续创建桌位',
// fontSize: 34,
// gradientStart: MyColours.color_2AB5B7,
// gradientEnd: MyColours.color_2AB5B7,
// onPressed: () {},
// isBold: false,
// ),
// VEmptyView(20),
RoundButton(
radius: ScreenUtil().setWidth(10),
text: '进入店铺',
... ...
... ... @@ -22,10 +22,7 @@ class EnterStoreEnvironmentPage extends StatefulWidget {
_EnterStoreEnvironmentPageState();
}
class _EnterStoreEnvironmentPageState extends State<EnterStoreEnvironmentPage>
with AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true;
class _EnterStoreEnvironmentPageState extends State<EnterStoreEnvironmentPage> {
ScrollController _controller = ScrollController();
@override
... ...
... ... @@ -68,7 +68,7 @@ class _MapChoicePointPageState extends State<MapChoicePointPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomPadding: false, //防止底部布局被顶起
resizeToAvoidBottomInset: false, //防止底部布局被顶起
appBar: SystemAppBar(
'选择位置信息',
onTap: () {
... ...
... ... @@ -131,7 +131,7 @@ class InvicationPageState extends State<InvicationPage> {
if (couponProvider.coupons.length == 0) {
setState(() {
couponHeight = 0;
couponHeight = 0.0;
});
} else {
setState(() {
... ... @@ -141,7 +141,7 @@ class InvicationPageState extends State<InvicationPage> {
} else {
//没有新建的优惠券
setState(() {
couponHeight = 0;
couponHeight = 0.0;
});
}
}
... ... @@ -287,8 +287,7 @@ class InvicationPageState extends State<InvicationPage> {
),
child: Scaffold(
backgroundColor: Colors.transparent,
body: SafeArea(
child: Stack(
body: Stack(
children: [
Container(
margin: EdgeInsets.only(top: ScreenUtil().setWidth(13 * 2)),
... ... @@ -888,7 +887,8 @@ class InvicationPageState extends State<InvicationPage> {
Positioned(
left: ScreenUtil().setWidth(0),
top: ScreenUtil().setWidth(0),
child: GestureDetector(
child: SafeArea(
child: GestureDetector(
onTap: () {
Navigator.of(context).pop();
},
... ... @@ -906,7 +906,7 @@ class InvicationPageState extends State<InvicationPage> {
width: ScreenUtil().setWidth(20),
height: ScreenUtil().setHeight(31),
)),
),
)),
),
Positioned(
// left: ScreenUtil().setWidth(180),
... ... @@ -974,6 +974,6 @@ class InvicationPageState extends State<InvicationPage> {
: Container(),
)
],
))));
)));
}
}
... ...
... ... @@ -91,7 +91,7 @@ class _IfNeedCreateStoreState extends State<IfNeedCreateStore> {
'',
// leftTitle: '上一步',
onTap: () {
Navigator.pop(context);
Navigator.of(context).pop();
},
),
body: Container(
... ...
... ... @@ -17,10 +17,12 @@ import 'package:one_key/provider/create_store_model.dart';
import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/navigate_service.dart';
import 'package:one_key/utils/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/loading.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
... ... @@ -50,7 +52,7 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
String errorText = ""; //错误提示
bool _check = true;
StreamSubscription<BaseWeChatResponse> _wxlogin;
StreamSubscription<BaseWeChatResponse> streamSubscription;
OtherLoginProvider otherLoginProvider;
CreateStoreModel createStoreModel;
... ... @@ -58,7 +60,7 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
void initState() {
// TODO: implement initState
super.initState();
_initFluwx();
_checkWechat();
isLogin();
WidgetsBinding.instance.addObserver(this);
WidgetsBinding.instance.addPostFrameCallback((_) {
... ... @@ -74,13 +76,23 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
});
}
//初始化微信SDK
_initFluwx() async {
await registerWxApi(
appId: "wx85aa3cdd0f791e65",
doOnAndroid: true,
doOnIOS: true,
universalLink: "https://xt04.colorcun.com/link/OneKey/");
//当页面离开时要清除监听器
@override
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
if (streamSubscription != null) {
streamSubscription.cancel();
}
}
//微信是否安装
_checkWechat() async {
// await registerWxApi(
// appId: "wx85aa3cdd0f791e65",
// doOnAndroid: true,
// doOnIOS: true,
// universalLink: "https://xt04.colorcun.com/link/OneKey/");
var result = await isWeChatInstalled;
if (result != null && result) {
App.isInstallWx = true;
... ... @@ -102,13 +114,6 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
super.didChangeDependencies();
}
@override
void dispose() {
// TODO: implement dispose
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
//监听输入框,设置登录按钮状态
setActivate() {
if (_sellerCodeController.text.isNotEmpty &&
... ... @@ -148,11 +153,12 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
///获取微信登录code
_getWxCode() {
_wxlogin = fluwx.weChatResponseEventHandler
streamSubscription = fluwx.weChatResponseEventHandler
.distinct((a, b) => a == b)
.listen((res) {
if (res is fluwx.WeChatAuthResponse && res.errCode == 0) {
LogUtil.v("code:" + res.code);
// Loading.showLoading(context);
_getAccessToken(res.code);
} else {
// Utils.showToast(res.errStr??"登录失败,请稍后重试");
... ... @@ -167,7 +173,8 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
LogUtil.v("access_token:${response.toString()}");
Map<String, dynamic> responseData = json.decode(response.data.toString());
if (responseData["errcode"] != null) {
// Utils.showToast(responseData["errmsg"]??"登录,请稍后重试");
Utils.showToast(responseData["errmsg"] ?? "登录,请稍后重试");
// Loading.hideLoading(context);
} else {
App.sp.setString("openid", responseData["openid"]);
App.sp.setString("unionid", responseData["unionid"]);
... ... @@ -179,9 +186,11 @@ class LoginState extends State<LoginPage> with WidgetsBindingObserver {
Map<String, String> params = {
"unionid": responseData["unionid"],
};
BuildContext contextTemp =
App.getIt<NavigateService>().key.currentState.overlay.context;
CheckbindPhoneSunModel model =
await otherLoginProvider.checkbindPhone(context, params);
await otherLoginProvider.checkbindPhone(contextTemp, params);
// Loading.hideLoading(context);
if (model != null) {
createStoreModel.storeInfo = StoreInfo();
createStoreModel.storeInfo.phone = model.phone;
... ...
... ... @@ -48,9 +48,11 @@ class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> {
_controller = EasyRefreshController();
WidgetsBinding.instance.addPostFrameCallback((_) {
// getMessage();
setState(() {
messageModel.pageState = PageState.Loading;
});
// setState(() {
// messageModel.pageState = PageState.Loading;
// });
messageModel.pageState = PageState.Loading;
messageModel.notifyListeners();
});
}
... ... @@ -153,7 +155,7 @@ class MessageOnlineCheckPageState extends State<MessageOnlineCheckPage> {
getMessage(showLoading: true);
},
emptyMsg:
"暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线预订消息哦",
"暂时没有${selectedIndex == 0 ? '未处理' : '已处理'}的在线买单消息哦",
emptyImg: "empty_search",
showMsg: "加载中,请稍后...",
);
... ...
... ... @@ -46,11 +46,14 @@ class MessageOnlinePageState extends State<MessageOnlinePage> {
// messageDialogModel.removeMessage(args.toString());
// });
_controller = EasyRefreshController();
// messageModel.pageState = PageState.Loading;
WidgetsBinding.instance.addPostFrameCallback((_) {
// getMessage();
setState(() {
messageModel.pageState = PageState.Loading;
});
// setState(() {
// messageModel.pageState = PageState.Loading;
// });
messageModel.pageState = PageState.Loading;
messageModel.notifyListeners();
});
}
... ...
... ... @@ -43,11 +43,14 @@ class MessageOrderPageState extends State<MessageOrderPage> {
// TODO: implement initState
super.initState();
_controller = EasyRefreshController();
// messageModel.pageState = PageState.Loading;
WidgetsBinding.instance.addPostFrameCallback((_) {
// getMessages();
setState(() {
messageModel.pageState = PageState.Loading;
});
// setState(() {
// messageModel.pageState = PageState.Loading;
// });
messageModel.pageState = PageState.Loading;
messageModel.notifyListeners();
});
//从列表数据本地移除提前点餐消息
// bus.on("remove_untreated_message_order", (args) {
... ...
... ... @@ -61,8 +61,10 @@ class MessagePageState extends State<MessagePage>
//三种分类各自的未读消息数目
_getUnMsgNum() async {
Map<String, String> params = {"sid": userModel.user.sellerid};
await messageModel.getUnMsgNum(context, params);
if (mounted) {
Map<String, String> params = {"sid": userModel.user.sellerid};
await messageModel.getUnMsgNum(context, params);
}
}
//获取在线预订消息status 0未处理 1已处理
... ...
... ... @@ -47,14 +47,16 @@ class NoteBookPageState extends State<NoteBookPage> {
// TODO: implement initState
super.initState();
LogUtil.v("notebook_page initState");
userModel = Provider.of<UserModel>(context, listen: false);
_controller = EasyRefreshController();
_initTime();
// _initTime();
bus.on("refresh_book_list", (args) {
_getReserveList();
});
WidgetsBinding.instance.addPostFrameCallback((_) {
_initTime();
setState(() {});
_getReserveList();
_reserveCountDay();
});
... ... @@ -398,6 +400,7 @@ class NoteBookPageState extends State<NoteBookPage> {
@override
Widget build(BuildContext context) {
// TODO: implement build
userModel = Provider.of<UserModel>(context, listen: false);
return Container(
width: double.infinity,
height: double.infinity,
... ...
... ... @@ -49,9 +49,11 @@ class OtherLoginProvider extends ChangeNotifier {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.check_seller_acc,
data: params, showLoading: showLoading)
.catchError((error) {});
.catchError((error) {
print(error);
});
if (baseResp.code == Constant.status_success) {
if (baseResp.data.isNotEmpty) {
if (baseResp.data != null) {
//解析解析
pageState = PageState.Success;
sellerList = CheckSellerAccModel.fromJson(baseResp.responseData).data;
... ...
... ... @@ -291,7 +291,7 @@ class TableManagerModel with ChangeNotifier {
};
pageState = PageState.Loading;
notifyListeners();
List<Notebook> noteBooks = await model.getReserveList(context, params);
List<Notebook> noteBooks = await newGetReserveList(context, params);
for (Notebook notebook in noteBooks) {
if (notebook.tid.isEmpty) continue;
if (notebook.status == "1" ||
... ... @@ -308,6 +308,40 @@ class TableManagerModel with ChangeNotifier {
initData();
}
//获取已预订订单
Future<List<Notebook>> newGetReserveList(
BuildContext context, Map<String, String> params) async {
List<Notebook> notebooks = [];
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_reserve_list,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
if (error is MyError) {
// switch (error.type) {
// case 1:
// pageState = PageState.ConnectivityError;
// break;
// case 2:
// pageState = PageState.ConnectivityTimeOut;
// break;
// default:
// pageState = PageState.ConnectivityError;
// break;
// }
}
});
if (baseResp == null) return [];
if (baseResp.code == Constant.status_success) {
notebooks = baseResp.data.map<Notebook>((value) {
return Notebook.fromJson(value);
}).toList();
} else {
Utils.showToast(baseResp.msg ?? "");
}
return notebooks;
}
//获取一天开始-结束时间字符串
String _getRdate() {
//一天开始时间
... ...
... ... @@ -3,13 +3,10 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:one_key/models/upload_img_model.dart';
import 'package:one_key/provider/upload_img_provider.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:photo/photo.dart';
import 'package:qiniu_flutter_sdk/qiniu_flutter_sdk.dart';
import 'package:photo_manager/photo_manager.dart';
enum UploadType {
EnvironmentUploadType, //店铺环境
... ...
... ... @@ -143,7 +143,7 @@ class Utils {
TextPainter painter = TextPainter(
///AUTO:华为手机如果不指定locale的时候,该方法算出来的文字高度是比系统计算偏小的。
locale: Localizations.localeOf(context, nullOk: true),
locale: Localizations.localeOf(context),
maxLines: maxLines,
textDirection: TextDirection.ltr,
text: TextSpan(
... ...
... ... @@ -49,7 +49,7 @@ packages:
name: async
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.5.0-nullsafety.1"
version: "2.5.0"
audioplayers:
dependency: "direct main"
description:
... ... @@ -63,7 +63,7 @@ packages:
name: boolean_selector
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0-nullsafety.1"
version: "2.1.0"
build:
dependency: transitive
description:
... ... @@ -133,14 +133,14 @@ packages:
name: characters
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0-nullsafety.3"
version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0-nullsafety.1"
version: "1.2.0"
checked_yaml:
dependency: transitive
description:
... ... @@ -161,7 +161,7 @@ packages:
name: clock
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0-nullsafety.1"
version: "1.1.0"
code_builder:
dependency: transitive
description:
... ... @@ -175,7 +175,7 @@ packages:
name: collection
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.15.0-nullsafety.3"
version: "1.15.0"
common_utils:
dependency: "direct main"
description:
... ... @@ -308,7 +308,7 @@ packages:
name: fake_async
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0-nullsafety.1"
version: "1.2.0"
ffi:
dependency: transitive
description:
... ... @@ -533,7 +533,7 @@ packages:
name: js
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.6.2"
version: "0.6.3"
json_annotation:
dependency: "direct main"
description:
... ... @@ -582,14 +582,14 @@ packages:
name: matcher
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.12.10-nullsafety.1"
version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.0-nullsafety.3"
version: "1.3.0"
mime:
dependency: transitive
description:
... ... @@ -659,7 +659,7 @@ packages:
name: path
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.0-nullsafety.1"
version: "1.8.0"
path_drawing:
dependency: transitive
description:
... ... @@ -930,7 +930,7 @@ packages:
name: source_span
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.0-nullsafety.2"
version: "1.8.0"
sqflite:
dependency: "direct main"
description:
... ... @@ -951,14 +951,14 @@ packages:
name: stack_trace
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.10.0-nullsafety.1"
version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0-nullsafety.1"
version: "2.1.0"
stream_transform:
dependency: transitive
description:
... ... @@ -972,7 +972,7 @@ packages:
name: string_scanner
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.1.0-nullsafety.1"
version: "1.1.0"
synchronized:
dependency: transitive
description:
... ... @@ -993,14 +993,14 @@ packages:
name: term_glyph
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.2.0-nullsafety.1"
version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.2.19-nullsafety.2"
version: "0.2.19"
timing:
dependency: transitive
description:
... ... @@ -1023,7 +1023,7 @@ packages:
name: typed_data
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.0-nullsafety.3"
version: "1.3.0"
url_launcher:
dependency: "direct main"
description:
... ... @@ -1079,7 +1079,7 @@ packages:
name: vector_math
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.0-nullsafety.3"
version: "2.1.0"
video_compress:
dependency: "direct main"
description:
... ... @@ -1158,5 +1158,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.10.0-110 <2.11.0"
flutter: ">=1.20.0 <2.0.0"
dart: ">=2.12.0-0.0 <3.0.0"
flutter: ">=1.20.0"
... ...