diff --git a/circle_app/.gitignore b/circle_app/.gitignore index 24476c5..d055298 100644 --- a/circle_app/.gitignore +++ b/circle_app/.gitignore @@ -8,6 +8,7 @@ .buildlog/ .history .svn/ +pubspec.lock migrate_working_dir/ # IntelliJ related diff --git a/circle_app/assets/images/mine/icon_cooperate_ali.png b/circle_app/assets/images/mine/icon_cooperate_ali.png new file mode 100644 index 0000000..b0d177e Binary files /dev/null and b/circle_app/assets/images/mine/icon_cooperate_ali.png differ diff --git a/circle_app/assets/images/mine/icon_cooperate_wx.png b/circle_app/assets/images/mine/icon_cooperate_wx.png new file mode 100644 index 0000000..69a3e0f Binary files /dev/null and b/circle_app/assets/images/mine/icon_cooperate_wx.png differ diff --git a/circle_app/assets/images/mine/icon_pay_is_no_select.png b/circle_app/assets/images/mine/icon_pay_is_no_select.png new file mode 100644 index 0000000..0b1ab7a Binary files /dev/null and b/circle_app/assets/images/mine/icon_pay_is_no_select.png differ diff --git a/circle_app/assets/images/mine/icon_pay_select.png b/circle_app/assets/images/mine/icon_pay_select.png new file mode 100644 index 0000000..bd89593 Binary files /dev/null and b/circle_app/assets/images/mine/icon_pay_select.png differ diff --git a/circle_app/assets/images/mine/icon_recommend_pay_way.png b/circle_app/assets/images/mine/icon_recommend_pay_way.png new file mode 100644 index 0000000..e956039 Binary files /dev/null and b/circle_app/assets/images/mine/icon_recommend_pay_way.png differ diff --git a/circle_app/assets/images/mine/icon_yean_vip.png b/circle_app/assets/images/mine/icon_yean_vip.png new file mode 100644 index 0000000..31cf540 Binary files /dev/null and b/circle_app/assets/images/mine/icon_yean_vip.png differ diff --git a/circle_app/lib/app/account/view.dart b/circle_app/lib/app/account/view.dart index f21e975..9780e20 100644 --- a/circle_app/lib/app/account/view.dart +++ b/circle_app/lib/app/account/view.dart @@ -27,7 +27,7 @@ class AccountPage extends StatelessWidget { ), child: Scaffold( backgroundColor: Colors.transparent, - appBar: MyAppBar( + appBar: const MyAppBar( centerTitle: '账号中心', ), body: Scaffold( @@ -68,15 +68,15 @@ class AccountPage extends StatelessWidget { Text( "换绑手机号", style: TextStyle( - color: Color(0xFFF7FAFA), + color: const Color(0xFFF7FAFA), fontSize: 16.0.sp, ), ), - Spacer(), + const Spacer(), Text( logic.photo, style: TextStyle( - color: Color(0xFFB7BECC), + color: const Color(0xFFB7BECC), fontSize: 16.0.sp, ), ), @@ -122,11 +122,11 @@ class AccountPage extends StatelessWidget { Text( "注销账号", style: TextStyle( - color: Color(0xFFF7FAFA), + color: const Color(0xFFF7FAFA), fontSize: 16.0.sp, ), ), - Spacer(), + const Spacer(), Image.asset( getHomeImage("icon_in"), width: 24.0.sp, @@ -273,13 +273,13 @@ class AccountPage extends StatelessWidget { height: 42.sp, decoration: BoxDecoration( borderRadius: BorderRadius.circular(21.0.sp), - color: Color(0xFF21BEAB), + color: const Color(0xFF21BEAB), ), child: Center( child: Text( "退出登录", style: TextStyle( - color: Color(0xFFF7FAFA), + color: const Color(0xFFF7FAFA), fontSize: 16.0.sp, ), ), diff --git a/circle_app/lib/app/blacklist/view.dart b/circle_app/lib/app/blacklist/view.dart index 8b760be..5541c12 100644 --- a/circle_app/lib/app/blacklist/view.dart +++ b/circle_app/lib/app/blacklist/view.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; @@ -9,7 +8,6 @@ import '../../components/my_app_bar.dart'; import '../../router/app_routers.dart'; import '../../util/util.dart'; import 'logic.dart'; -import 'package:flutter/material.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; class BlacklistPage extends StatelessWidget { @@ -32,10 +30,12 @@ class BlacklistPage extends StatelessWidget { ), child: Scaffold( backgroundColor: Colors.transparent, - appBar: MyAppBar(centerTitle: '黑名单',), + appBar: const MyAppBar(centerTitle: '黑名单',), body: SafeArea( child: logic.isLoad ? loaddingWidget(true) : logic.lists.isEmpty ? noResultWidget() : SmartRefresher( controller: logic.refreshController, + onRefresh: _onRefresh, + onLoading: _onLoading, child: ListView.builder( itemCount: logic.lists.length, @@ -45,8 +45,6 @@ class BlacklistPage extends StatelessWidget { ); }, ), - onRefresh: _onRefresh, - onLoading: _onLoading, ), ),), ); @@ -55,108 +53,106 @@ class BlacklistPage extends StatelessWidget { Widget ListItem(User item) { - return Container( - child: GestureDetector( - onTap: () { - Get.toNamed(AppRoutes.UserInfoActivity, arguments: item.id.toString()); - }, - child: Container( - margin: EdgeInsets.only(bottom: 16), - child: Row( - children: [ - Stack(children: [ - ClipOval( - child: GestureDetector( - onTap: () { - var imgList = []; - imgList.add(item.avatar); - Get.toNamed(AppRoutes.Swiper, arguments: { - 'imaglist': imgList, - 'index': 0 - }); - }, - child: CachedNetworkImage( - imageUrl: item.avatar, - width: 53.sp, - height: 53.sp, - ), + return GestureDetector( + onTap: () { + Get.toNamed(AppRoutes.UserInfoActivity, arguments: item.id.toString()); + }, + child: Container( + margin: const EdgeInsets.only(bottom: 16), + child: Row( + children: [ + Stack(children: [ + ClipOval( + child: GestureDetector( + onTap: () { + var imgList = []; + imgList.add(item.avatar); + Get.toNamed(AppRoutes.Swiper, arguments: { + 'imaglist': imgList, + 'index': 0 + }); + }, + child: CachedNetworkImage( + imageUrl: item.avatar, + width: 53.sp, + height: 53.sp, ), ), - Positioned( - right: 0, - left: 0, - bottom: 0, - - child: item.vip > 0 ? - Image( - image: AssetImage(getBaseImage("vip")), - width: 44.sp, - height: 18.sp, - ) : Container(),) - ],), - SizedBox(width: 10.sp), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Text( - item.nickname, - style: const TextStyle(color: Colors.white70, - fontSize: 12, - fontWeight: FontWeight.bold), - ), - SizedBox(width: 4.sp), - // SizedBox(height: 8.sp), - _buildInfoRow(item), - // Placeholder image - ], - ), - - SizedBox(height: 8.sp), - Container( - width: 150.sp, - child: Text( - item.signature, - style: TextStyle(fontSize: 12.sp, color: Color(0xFFB7BECC)), - ), - ), - ], ), - // Pla - Spacer(), - GestureDetector(onTap: () { - logic.setBlock(item.id.toString()); - }, - child: Container( - width: 80, - height: 28, - decoration: BoxDecoration( - color: Color(0xFFFF4D7C), - borderRadius: BorderRadius.circular(14), - ), - child: - Center( - child: Text( - "移出黑名单", - style: TextStyle(fontSize: 14, color: Colors.white), + Positioned( + right: 0, + left: 0, + bottom: 0, + + child: item.vip > 0 ? + Image( + image: AssetImage(getBaseImage("vip")), + width: 44.sp, + height: 18.sp, + ) : Container(),) + ],), + SizedBox(width: 10.sp), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + item.nickname, + style: const TextStyle(color: Colors.white70, + fontSize: 12, + fontWeight: FontWeight.bold), ), + SizedBox(width: 4.sp), + // SizedBox(height: 8.sp), + _buildInfoRow(item), + // Placeholder image + ], + ), + + SizedBox(height: 8.sp), + SizedBox( + width: 150.sp, + child: Text( + item.signature, + style: TextStyle(fontSize: 12.sp, color: const Color(0xFFB7BECC)), ), - ),), - ], - ), - ),), - ); + ), + ], + ), + // Pla + const Spacer(), + GestureDetector(onTap: () { + logic.setBlock(item.id.toString()); + }, + child: Container( + width: 80, + height: 28, + decoration: BoxDecoration( + color: const Color(0xFFFF4D7C), + borderRadius: BorderRadius.circular(14), + ), + child: + const Center( + child: Text( + "移出黑名单", + style: TextStyle(fontSize: 14, color: Colors.white), + ), + ), + ),), + ], + ), + ),); } Widget _buildInfoRow(User userInfoBean) { - String ageMsg = getAgeCOntent(userInfoBean!.gender, userInfoBean!.age, - userInfoBean!.role, userInfoBean!.orientation); + String ageMsg = getAgeCOntent(userInfoBean.gender, userInfoBean.age, + userInfoBean.role, userInfoBean.orientation); return Row( children: [ Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(17), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [ Color.fromRGBO(141, 255, 248, 1.0), Color.fromRGBO(181, 211, 255, 1.0), @@ -169,7 +165,7 @@ class BlacklistPage extends StatelessWidget { top: 2.sp, bottom: 2.sp, left: 10.sp, right: 10.sp), child: Text( ageMsg , - style: TextStyle( + style: const TextStyle( color: Colors.black, fontSize: 10, ), diff --git a/circle_app/lib/app/call_out/logic.dart b/circle_app/lib/app/call_out/logic.dart index 3f42742..62e1da8 100644 --- a/circle_app/lib/app/call_out/logic.dart +++ b/circle_app/lib/app/call_out/logic.dart @@ -74,6 +74,9 @@ class Call_outLogic extends GetxController { quniuData, (quniuData) => QnTokenData.fromJson(quniuData)); quToken = qiniuBean.data!.token.toString(); } + + + showRechargeDialog(){ Get.bottomSheet( Scaffold( @@ -145,15 +148,11 @@ class Call_outLogic extends GetxController { // return; // } showToast(beandata.msg); - var callOutBean = BaseResponse>.fromJson( - data, - (jsonData) => List.from(jsonData), - ); + var callOutBean = BaseResponse>.fromJson(data, (jsonData) => List.from(jsonData),); textEditingController.text = filterSensitiveWords(textEditingController.text, callOutBean.data!); - print( - filterSensitiveWords(textEditingController.text, callOutBean.data!)); + print(filterSensitiveWords(textEditingController.text, callOutBean.data!)); update(); } else if (beandata.code == 30505) { var callOutBean = BaseResponse.fromJson( diff --git a/circle_app/lib/app/call_out/view.dart b/circle_app/lib/app/call_out/view.dart index 5ee8abb..6c0f57b 100644 --- a/circle_app/lib/app/call_out/view.dart +++ b/circle_app/lib/app/call_out/view.dart @@ -6,7 +6,6 @@ import 'package:get/get.dart'; import 'package:video_player/video_player.dart'; import '../../router/app_routers.dart'; -import '../circle/widgets/video_item.dart'; import 'logic.dart'; class Call_outPage extends StatelessWidget { @@ -46,182 +45,180 @@ class Call_outPage extends StatelessWidget { ), body: SafeArea( child: GetBuilder(builder: (Call_outLogic controller) { - return Container( - child: Column( - children: [ - GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: () async { - logic.startSelectCircleActivity(); - }, - child: Container( - height: 45.sp, - padding: EdgeInsets.only(left: 17.sp, right: 17.sp), - child: Row( - children: [ - Text( - '选择圈子:', - style: TextStyle( - color: Colors.white, fontSize: 16.sp), - ), - Expanded(child: Container()), - logic.circleName == '' - ? Container() - : Container( - padding: EdgeInsets.only( - left: 7.sp, right: 7.sp), - height: 21.sp, - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular( - 21 * 0.5.sp), - gradient: const LinearGradient( - begin: Alignment.centerLeft, - end: Alignment.centerRight, - colors: [ - Color(0xff0AFCFF), - Color(0xffD739EA) - ])), - child: Text( - logic.circleName ?? '', - style: TextStyle( - color: Colors.white, - fontSize: 12.sp), - ), - ), - Image.asset( - getHomeImage('icon_in'), - width: 24.sp, - ), - ], - ), - ), - ), - Image.asset( - getCircleImage('line'), - width: Get.width, - fit: BoxFit.fill, - ), - Expanded( - child: Container( - padding: EdgeInsets.only(top: 15.sp), - child: Stack( - children: [ - Container( - height: 200.sp, - child: TextField( - controller: controller.textEditingController, - onChanged: (value) { - controller.update(); - }, - style: TextStyle( - color: Colors.white, fontSize: 14.0.sp), - maxLines: 32, - maxLength: 200, - decoration: InputDecoration( - hintStyle: TextStyle( - color: Color.fromRGBO( - 255, 255, 255, 0.6), - fontSize: 14.sp), - hintText: '请输入...(左下角上传图片或视频哦)', - border: InputBorder.none, - contentPadding: EdgeInsets.only( - left: 17.sp, right: 17.sp), - counter: Text('')), - ), - ), - Positioned( - right: 15.sp, - top: 190.sp, - child: Text( - '${controller.textEditingController.text.length}/200', - style: TextStyle( - color: Colors.white, fontSize: 12.sp), - )), - Container( - margin: EdgeInsets.only(top: 220.sp), - child: _imageAdapter(controller)), - Container( - margin: EdgeInsets.only(top: 220.sp,left: 15.sp,right: 15.sp), - - child:_showVideo(controller) ,) - - ], - ), - )), - Container( - height: 60.sp, - padding: EdgeInsets.only( - left: 17.sp, right: 17.sp, bottom: 5.sp), + return Column( + children: [ + GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () async { + logic.startSelectCircleActivity(); + }, + child: Container( + height: 45.sp, + padding: EdgeInsets.only(left: 17.sp, right: 17.sp), child: Row( children: [ - GestureDetector( - onTap: () { - logic.showImg(); - }, - child: Image.asset( - getCircleImage('photo'), - width: 30.sp, - ), + Text( + '选择圈子:', + style: TextStyle( + color: Colors.white, fontSize: 16.sp), ), - const SizedBox( - width: 16, - ), - GestureDetector( - onTap: () { - logic.showVideo(); - }, - child: Image.asset( - getCircleImage('video'), - width: 30.sp, - ), - ), - Expanded( - child: GestureDetector( - onTap: () { - if(controller.vip ==2){ - controller.isCheck = !controller.isCheck; - controller.update(); - }else{ - controller.showRechargeDialog(); - } - - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - getCircleImage(controller.isCheck - ? 'check' - : 'uncheck'), - width: 17.5.sp, - ), - SizedBox( - width: 4.sp, - ), - Text( - '使用至尊喊话', + Expanded(child: Container()), + logic.circleName == '' + ? Container() + : Container( + padding: EdgeInsets.only( + left: 7.sp, right: 7.sp), + height: 21.sp, + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular( + 21 * 0.5.sp), + gradient: const LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [ + Color(0xff0AFCFF), + Color(0xffD739EA) + ])), + child: Text( + logic.circleName, style: TextStyle( color: Colors.white, - fontSize: 16.sp), - ) - ], - ), - ), + fontSize: 12.sp), + ), + ), + Image.asset( + getHomeImage('icon_in'), + width: 24.sp, ), - GestureDetector( - child: Text( - '内容规范', - style: TextStyle( - color: Color(0xff00FFF4), - fontSize: 14.sp), - ), - ) ], ), - ) - ], - ), + ), + ), + Image.asset( + getCircleImage('line'), + width: Get.width, + fit: BoxFit.fill, + ), + Expanded( + child: Container( + padding: EdgeInsets.only(top: 15.sp), + child: Stack( + children: [ + SizedBox( + height: 200.sp, + child: TextField( + controller: controller.textEditingController, + onChanged: (value) { + controller.update(); + }, + style: TextStyle( + color: Colors.white, fontSize: 14.0.sp), + maxLines: 32, + maxLength: 200, + decoration: InputDecoration( + hintStyle: TextStyle( + color: const Color.fromRGBO( + 255, 255, 255, 0.6), + fontSize: 14.sp), + hintText: '请输入...(左下角上传图片或视频哦)', + border: InputBorder.none, + contentPadding: EdgeInsets.only( + left: 17.sp, right: 17.sp), + counter: const Text('')), + ), + ), + Positioned( + right: 15.sp, + top: 190.sp, + child: Text( + '${controller.textEditingController.text.length}/200', + style: TextStyle( + color: Colors.white, fontSize: 12.sp), + )), + Container( + margin: EdgeInsets.only(top: 220.sp), + child: _imageAdapter(controller)), + Container( + margin: EdgeInsets.only(top: 220.sp,left: 15.sp,right: 15.sp), + + child:_showVideo(controller) ,) + + ], + ), + )), + Container( + height: 60.sp, + padding: EdgeInsets.only( + left: 17.sp, right: 17.sp, bottom: 5.sp), + child: Row( + children: [ + GestureDetector( + onTap: () { + logic.showImg(); + }, + child: Image.asset( + getCircleImage('photo'), + width: 30.sp, + ), + ), + const SizedBox( + width: 16, + ), + GestureDetector( + onTap: () { + logic.showVideo(); + }, + child: Image.asset( + getCircleImage('video'), + width: 30.sp, + ), + ), + Expanded( + child: GestureDetector( + onTap: () { + if(controller.vip ==2){ + controller.isCheck = !controller.isCheck; + controller.update(); + }else{ + controller.showRechargeDialog(); + } + + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + getCircleImage(controller.isCheck + ? 'check' + : 'uncheck'), + width: 17.5.sp, + ), + SizedBox( + width: 4.sp, + ), + Text( + '使用至尊喊话', + style: TextStyle( + color: Colors.white, + fontSize: 16.sp), + ) + ], + ), + ), + ), + GestureDetector( + child: Text( + '内容规范', + style: TextStyle( + color: const Color(0xff00FFF4), + fontSize: 14.sp), + ), + ) + ], + ), + ) + ], ); }), ), @@ -235,47 +232,44 @@ class Call_outPage extends StatelessWidget { return Container(); } else { return _mixVideo(controller); - - - } } - Widget _maxVideo(Call_outLogic controller){ - return Container( - width:controller.videoPlayerController!.value.size.width < controller.videoPlayerController!.value.size.height ? 9*15.sp : 16*15.sp, - height:controller.videoPlayerController!.value.size.width < controller.videoPlayerController!.value.size.height ? 16*15.sp :9*15.sp, - - child: Stack( - children: [ - ClipRRect( - borderRadius: BorderRadius.circular(6.sp), - child: VideoItemWidget(controller.state.videolist[0])), - // Center(child:controller.videoPlayerController!.value.isPlaying ? Container() : Image(image: AssetImage(getMineImage("icon_play")),width: 30.sp,height: 30.sp,),), - Positioned( - top: 0, - right: 0, - child: GestureDetector( - onTap: () { - // showToast("删除"); - _showDelVideoDialog(Get.context!, controller); - }, - child: Image( - image: AssetImage(getMineImage("icon_img_del")), - width: 20.sp, - height: 20.sp, - ), - )) - - // ClosedCaption(text: controller.videoPlayerController!.value.caption.text), - // _ControlsOverlay(controller: controller.videoPlayerController), - // VideoProgressIndicator(controller.videoPlayerController!, allowScrubbing: true), - ], - ), - ); - } + // Widget _maxVideo(Call_outLogic controller){ + // return SizedBox( + // width:controller.videoPlayerController!.value.size.width < controller.videoPlayerController!.value.size.height ? 9*15.sp : 16*15.sp, + // height:controller.videoPlayerController!.value.size.width < controller.videoPlayerController!.value.size.height ? 16*15.sp :9*15.sp, + // + // child: Stack( + // children: [ + // ClipRRect( + // borderRadius: BorderRadius.circular(6.sp), + // child: VideoItemWidget(controller.state.videolist[0])), + // // Center(child:controller.videoPlayerController!.value.isPlaying ? Container() : Image(image: AssetImage(getMineImage("icon_play")),width: 30.sp,height: 30.sp,),), + // Positioned( + // top: 0, + // right: 0, + // child: GestureDetector( + // onTap: () { + // // showToast("删除"); + // _showDelVideoDialog(Get.context!, controller); + // }, + // child: Image( + // image: AssetImage(getMineImage("icon_img_del")), + // width: 20.sp, + // height: 20.sp, + // ), + // )) + // + // // ClosedCaption(text: controller.videoPlayerController!.value.caption.text), + // // _ControlsOverlay(controller: controller.videoPlayerController), + // // VideoProgressIndicator(controller.videoPlayerController!, allowScrubbing: true), + // ], + // ), + // ); + // } Widget _mixVideo(Call_outLogic controller){ - return Container( + return SizedBox( width:controller.videoPlayerController!.value.size.width < controller.videoPlayerController!.value.size.height ? 135.sp : 240.sp, height:controller.videoPlayerController!.value.size.width < controller.videoPlayerController!.value.size.height ? 240.sp :135.sp, child: GestureDetector( @@ -320,7 +314,7 @@ class Call_outPage extends StatelessWidget { Widget _imageAdapter(Call_outLogic controller) { return GridView.builder( - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, // 每行显示的项目数量 ), itemCount: controller.state.imaglist.length, // 项目的总数量,包括固定图片和接口获取的项目 @@ -340,7 +334,7 @@ class Call_outPage extends StatelessWidget { children: [ ClipRRect( borderRadius: BorderRadius.circular(0.0), - child: Container( + child: SizedBox( width: double.infinity, // 设置容器宽度为屏幕宽度 height: double.infinity, // 设置容器高度为屏幕高度 child: ClipRRect( @@ -387,14 +381,14 @@ class Call_outPage extends StatelessWidget { backgroundColor: Colors.transparent, child: Container( height: 160.sp, - padding: EdgeInsets.all(1.0), + padding: const EdgeInsets.all(1.0), child: Stack( children: [ Container( decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)], begin: Alignment.topCenter, end: Alignment.bottomCenter, @@ -406,7 +400,7 @@ class Call_outPage extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [Color(0xFF4C3E5F), Color(0xFF324140)], begin: Alignment.topCenter, end: Alignment.bottomCenter, @@ -432,7 +426,7 @@ class Call_outPage extends StatelessWidget { "是否确认删除该照片。", textAlign: TextAlign.center, style: TextStyle( - color: Color(0xCCF7FAFA), fontSize: 16.sp), + color: const Color(0xCCF7FAFA), fontSize: 16.sp), ), ), Row( @@ -447,7 +441,7 @@ class Call_outPage extends StatelessWidget { margin: EdgeInsets.only(top: 30.sp), decoration: BoxDecoration( borderRadius: BorderRadius.circular(17), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [ Color(0x26FFFFFF), Color(0x26FFFFFF), @@ -461,7 +455,7 @@ class Call_outPage extends StatelessWidget { bottom: 10.sp, left: 52.sp, right: 52.sp), - child: Text( + child: const Text( "否", style: TextStyle( color: Colors.white, @@ -481,7 +475,7 @@ class Call_outPage extends StatelessWidget { margin: EdgeInsets.only(top: 24.sp), decoration: BoxDecoration( borderRadius: BorderRadius.circular(17), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [ Color(0xFF06F9FA), Color(0xFFDC5BFD), @@ -495,7 +489,7 @@ class Call_outPage extends StatelessWidget { bottom: 10.sp, left: 52.sp, right: 52.sp), - child: Text( + child: const Text( "是", style: TextStyle( color: Colors.white, @@ -529,14 +523,14 @@ class Call_outPage extends StatelessWidget { backgroundColor: Colors.transparent, child: Container( height: 160.sp, - padding: EdgeInsets.all(1.0), + padding: const EdgeInsets.all(1.0), child: Stack( children: [ Container( decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)], begin: Alignment.topCenter, end: Alignment.bottomCenter, @@ -548,7 +542,7 @@ class Call_outPage extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [Color(0xFF4C3E5F), Color(0xFF324140)], begin: Alignment.topCenter, end: Alignment.bottomCenter, @@ -574,7 +568,7 @@ class Call_outPage extends StatelessWidget { "是否确认删除该视频。", textAlign: TextAlign.center, style: TextStyle( - color: Color(0xCCF7FAFA), fontSize: 16.sp), + color: const Color(0xCCF7FAFA), fontSize: 16.sp), ), ), Row( @@ -589,7 +583,7 @@ class Call_outPage extends StatelessWidget { margin: EdgeInsets.only(top: 30.sp), decoration: BoxDecoration( borderRadius: BorderRadius.circular(17), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [ Color(0x26FFFFFF), Color(0x26FFFFFF), @@ -603,7 +597,7 @@ class Call_outPage extends StatelessWidget { bottom: 10.sp, left: 52.sp, right: 52.sp), - child: Text( + child: const Text( "否", style: TextStyle( color: Colors.white, @@ -625,7 +619,7 @@ class Call_outPage extends StatelessWidget { margin: EdgeInsets.only(top: 24.sp), decoration: BoxDecoration( borderRadius: BorderRadius.circular(17), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [ Color(0xFF06F9FA), Color(0xFFDC5BFD), @@ -639,7 +633,7 @@ class Call_outPage extends StatelessWidget { bottom: 10.sp, left: 52.sp, right: 52.sp), - child: Text( + child: const Text( "是", style: TextStyle( color: Colors.white, diff --git a/circle_app/lib/app/circle/widgets/info_list_view.dart b/circle_app/lib/app/circle/widgets/info_list_view.dart index 7280033..242ad91 100644 --- a/circle_app/lib/app/circle/widgets/info_list_view.dart +++ b/circle_app/lib/app/circle/widgets/info_list_view.dart @@ -35,19 +35,7 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie @override bool get wantKeepAlive => true; - List genderList = ['男', '女,' 'MTF', 'FTM', 'CD', '酷儿']; - List orientationList = [ - '异性恋', - '同性恋', - '双性恋', - '泛性恋', - '无性恋', - '智性恋', - '性单恋' - ]; - - List roleList = ['Sado', 'Maso', 'Dom', 'Sub', 'Switch']; ListLogic? listsLg; @@ -421,7 +409,7 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie ], ), )), - GestureDetector( + GestureDetector(//加入圈子 onTap: () async { if (widget.bean.isJoin) { _showOutCircleDialog( @@ -475,7 +463,7 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [Color(0xFFDD3DF4), Color(0xFF30FFD9)], begin: Alignment.topCenter, end: Alignment.bottomCenter, @@ -487,7 +475,7 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [Color(0xFF4C3E5F), Color(0xFF324140)], begin: Alignment.topCenter, end: Alignment.bottomCenter, @@ -617,6 +605,22 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie // mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ GestureDetector( + onTap: ()async { + var sp = await SharedPreferencesHelper.getInstance(); + String myUserId = sp.getMyUserId(); + + if(lists.user?.id!.toString() == myUserId){ + Get.toNamed(AppRoutes.UserInfoActivity, arguments: {}); + return; + } + if (widget.bean.is_limit) { + showJoinCiclePiker(widget.bean.id.toString(),widget.bean.amount.toString(),widget.bean.oldAmount.toString(),1,(payResult){ + + }); + return; + } + pushHomePage(lists, lists.id.toString()); + }, child: Stack( alignment: Alignment.center, children: [ @@ -624,21 +628,12 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie getCircleImage('avatar_bg'), width: 42.sp, ), - GestureDetector( - onTap: () { - if (widget.bean.is_limit) { - showJoinCiclePiker(widget.bean.id.toString(),widget.bean.amount.toString(),widget.bean.oldAmount.toString(),1); - return; - } - pushHomePage(lists, lists.id.toString()); - }, - child: ClipOval( - child: Image.network( - lists.user!.avatar!, - width: 40.sp, - height: 40.sp, - fit: BoxFit.fill, - ), + ClipOval( + child: Image.network( + lists.user!.avatar!, + width: 40.sp, + height: 40.sp, + fit: BoxFit.fill, ), ) ], @@ -690,7 +685,9 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie Color(0xffB5D3FF) ])), child: Text( - '${genderList[lists.user!.gender!]}.${lists.user!.age}.${roleList[lists.user!.role!]}.${orientationList[lists.user!.orientation!]}', + getAgeCOntent(lists.user!.gender!, lists.user!.age!, + lists.user!.role!, lists.user!.orientation!), + // '${genderList[lists.user!.gender!]}.${lists.user!.age}.${roleList[lists.user!.role!]}.${orientationList[lists.user!.orientation!]}', style: TextStyle( color: Colors.black, fontSize: 12.sp, @@ -907,6 +904,21 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie // mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ GestureDetector( + onTap: ()async { + var sp = await SharedPreferencesHelper.getInstance(); + String myUserId = sp.getMyUserId(); + if(lists.user?.id!.toString() == myUserId){ + Get.toNamed(AppRoutes.UserInfoActivity, arguments: ""); + return; + } + if (widget.bean.is_limit) { + showJoinCiclePiker(widget.bean.id.toString(),widget.bean.amount.toString(),widget.bean.oldAmount.toString(),1,(payResult){ + + }); + return; + } + pushHomePage(lists, lists.id.toString()); + }, child: Stack( alignment: Alignment.center, children: [ @@ -914,23 +926,14 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie getCircleImage('avatar_bg'), width: 42.sp, ), - GestureDetector( - onTap: () { - if (widget.bean.is_limit) { - showJoinCiclePiker(widget.bean.id.toString(),widget.bean.amount.toString(),widget.bean.oldAmount.toString(),1); - return; - } - pushHomePage( - lists, widget.bean.id.toString()); - }, - child: ClipOval( - child: Image.network( - lists.user!.avatar!, - width: 40.sp, - height: 40.sp, - fit: BoxFit.fill, - ), - )) + ClipOval( + child: Image.network( + lists.user!.avatar!, + width: 40.sp, + height: 40.sp, + fit: BoxFit.fill, + ), + ) ], )), Expanded( @@ -981,7 +984,8 @@ class _InfoListViewState extends State with AutomaticKeepAliveClie Color(0xffB5D3FF) ])), child: Text( - '${genderList[lists.user!.gender!]}.${lists.user!.age}.${roleList[lists.user!.role!]}.${orientationList[lists.user!.orientation!]}', + getAgeCOntent(lists.user!.gender!, lists.user!.age!, + lists.user!.role!, lists.user!.orientation!), style: TextStyle( color: Colors.black, fontSize: 12.sp, diff --git a/circle_app/lib/app/help/view.dart b/circle_app/lib/app/help/view.dart index a3a1dc2..f70660e 100644 --- a/circle_app/lib/app/help/view.dart +++ b/circle_app/lib/app/help/view.dart @@ -58,7 +58,7 @@ class HelpPage extends StatelessWidget { padding: EdgeInsets.only(left: 16.sp, right: 16.sp), child: Row( children: [ - Container( + SizedBox( height: 300.sp, child: Align( alignment: Alignment.topCenter, @@ -73,10 +73,10 @@ class HelpPage extends StatelessWidget { Expanded( child: Container( height: 300, - padding: EdgeInsets.all(16), + padding: const EdgeInsets.all(16), decoration: BoxDecoration( borderRadius: BorderRadius.circular(4.sp), - color: Color(0xFF2E2E3B), + color: const Color(0xFF2E2E3B), ), child: Center( child: Column( @@ -85,7 +85,7 @@ class HelpPage extends StatelessWidget { Text( '猜你想问', style: TextStyle( - color: Color(0xFFB7BECC), + color: const Color(0xFFB7BECC), fontSize: 14.sp, ), ), @@ -126,7 +126,7 @@ class HelpPage extends StatelessWidget { children: [ Text( logic.msgList[index].question, - style: TextStyle( + style: const TextStyle( color: Colors.white), ), Image( @@ -181,7 +181,7 @@ class HelpPage extends StatelessWidget { width: 14.sp, height: 14.sp, ), - label: Text( + label: const Text( '意见反馈', style: TextStyle( color: Colors.white, diff --git a/circle_app/lib/app/home/view.dart b/circle_app/lib/app/home/view.dart index d72ad2a..c68b31a 100644 --- a/circle_app/lib/app/home/view.dart +++ b/circle_app/lib/app/home/view.dart @@ -5,6 +5,7 @@ import 'package:circle_app/app/circle/view.dart'; import 'package:circle_app/app/msg/view.dart'; import 'package:circle_app/router/app_routers.dart'; import 'package:circle_app/util/util.dart'; +import 'package:circle_app/view/ExitAppConfirmation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -33,7 +34,7 @@ class _HomePageState extends State with AutomaticKeepAliveClientMixin onTap: () { // Get.toNamed(AppRoutes.Complete_materialPage); }, - child: Stack(children: [ + child: ExitAppConfirmation(child: Stack(children: [ Scaffold( // backgroundColor: Color.fromRGBO(244, 245, 245, 1.0), bottomNavigationBar: Container( @@ -61,14 +62,14 @@ class _HomePageState extends State with AutomaticKeepAliveClientMixin body: PageView( physics: const NeverScrollableScrollPhysics(), controller: controller.pageController, - onPageChanged: (int index) { - controller.updateIndex(index); - }, + onPageChanged: (int index) { + controller.updateIndex(index); + }, children: controller.tabs, ), ), - ],), + ],),) ); }); } diff --git a/circle_app/lib/app/login/login/logic.dart b/circle_app/lib/app/login/login/logic.dart index 0d656af..55d72ce 100644 --- a/circle_app/lib/app/login/login/logic.dart +++ b/circle_app/lib/app/login/login/logic.dart @@ -39,6 +39,7 @@ class LoginLogic extends GetxController { //倒计时 starDownTimer() { if (sendCodeBtn == false && seconds == 60) { + isPhoto = true; getCode(); } diff --git a/circle_app/lib/app/login/login/view.dart b/circle_app/lib/app/login/login/view.dart index 0fce02e..3435d92 100644 --- a/circle_app/lib/app/login/login/view.dart +++ b/circle_app/lib/app/login/login/view.dart @@ -1,4 +1,3 @@ -import 'dart:math'; import 'package:circle_app/util/util.dart'; import 'package:flutter/material.dart'; @@ -109,7 +108,7 @@ class LoginPage extends StatelessWidget { Stack( alignment: Alignment.center, children: [ - Container( + SizedBox( width: 200.sp, child: TextField( controller: logic.codeEditingController, @@ -142,7 +141,7 @@ class LoginPage extends StatelessWidget { width: 76.sp, height: 29.sp, decoration: BoxDecoration( - color:logic.isPhoto ? Color(0xFF21BEAB) : Colors.white30, + color:logic.isPhoto ? logic.sendCodeBtn? Colors.white30: const Color(0xFF21BEAB) : Colors.white30, borderRadius: BorderRadius.circular( 29.sp / 2) ), diff --git a/circle_app/lib/app/minefragment/logic.dart b/circle_app/lib/app/minefragment/logic.dart index d4b7254..0f7d67d 100644 --- a/circle_app/lib/app/minefragment/logic.dart +++ b/circle_app/lib/app/minefragment/logic.dart @@ -10,7 +10,7 @@ import 'package:shared_preferences/shared_preferences.dart'; class MinefragmentLogic extends GetxController { final MinefragmentState state = MinefragmentState(); - User? userInfoBean = null; + User? userInfoBean; String ageMsg = ""; var isVip = 0; var like_count = 0; @@ -27,7 +27,7 @@ class MinefragmentLogic extends GetxController { int orientation = -1; String enterHomeInfoMsg = "进入主页"; - String JoinedCircle = ""; + String joinedCircle = ""; @override void onInit() async { @@ -43,7 +43,7 @@ class MinefragmentLogic extends GetxController { like_count = bean.data.likeCount ?? 0; like_me_count = bean.data.likeMeCount ?? 0; recent_visit_count = bean.data.recentVisitCount ?? 0; - JoinedCircle = "${"加入了"+bean.data.joininterestcount.toString()}个圈子"; + joinedCircle = "${"加入了${bean.data.joininterestcount}"}个圈子"; SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); diff --git a/circle_app/lib/app/minefragment/view.dart b/circle_app/lib/app/minefragment/view.dart index 60eaf5a..2d5f7ac 100644 --- a/circle_app/lib/app/minefragment/view.dart +++ b/circle_app/lib/app/minefragment/view.dart @@ -46,14 +46,12 @@ class MinefragmentPage extends StatelessWidget { child: Column( children: [ _buildAvatarRow(logic), - _FriendsRow(logic), - Container( - child: Image( - image: AssetImage(getHomeImage("icon_vip")), - fit: BoxFit.fill, - ), + _friendsRow(logic), + Image( + image: AssetImage(getHomeImage("icon_vip")), + fit: BoxFit.fill, ), - _CircleLiveView(logic), + _circleLiveView(logic), ], ), ), @@ -62,13 +60,13 @@ class MinefragmentPage extends StatelessWidget { }); } - Widget _CircleLiveView(MinefragmentLogic logic) { + Widget _circleLiveView(MinefragmentLogic logic) { return Column( - children: [_CircleItemView(logic), _HelpItemView(), _SetUpItemView()], + children: [_circleItemView(logic), _helpItemView(), _setUpItemView()], ); } - Widget _SetUpItemView() { + Widget _setUpItemView() { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { @@ -110,7 +108,7 @@ class MinefragmentPage extends StatelessWidget { ); } - Widget _HelpItemView() { + Widget _helpItemView() { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { @@ -151,7 +149,7 @@ class MinefragmentPage extends StatelessWidget { ); } - Widget _CircleItemView(MinefragmentLogic logic) { + Widget _circleItemView(MinefragmentLogic logic) { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { @@ -179,7 +177,7 @@ class MinefragmentPage extends StatelessWidget { Row( children: [ Text( - logic.JoinedCircle, + logic.joinedCircle, style: const TextStyle(color: Colors.white30), ), Image( @@ -195,7 +193,7 @@ class MinefragmentPage extends StatelessWidget { ); } - Widget _FriendsRow(MinefragmentLogic logic) { + Widget _friendsRow(MinefragmentLogic logic) { return Center( child: Container( width: Get.width, @@ -242,11 +240,9 @@ class MinefragmentPage extends StatelessWidget { onTap: ()async { logic.like_me_count_new = 0; logic.update(); - if(null!=logic.like_me_count){ - SharedPreferencesHelper.getInstance().then((sharedPreferences) { - sharedPreferences.setInt(SharedPreferencesHelper.LIKEMECOUNT, logic.like_me_count); - }); - } + SharedPreferencesHelper.getInstance().then((sharedPreferences) { + sharedPreferences.setInt(SharedPreferencesHelper.LIKEMECOUNT, logic.like_me_count); + }); Get.toNamed(AppRoutes.LikeListActivity); }, child: Stack( @@ -300,11 +296,9 @@ class MinefragmentPage extends StatelessWidget { behavior: HitTestBehavior.opaque, onTap: () async{ logic.recent_visit_count_new = 0; - if(null!=logic.recent_visit_count){ - SharedPreferencesHelper.getInstance().then((sharedPreferences) { - sharedPreferences.setInt(SharedPreferencesHelper.RECENTVISITCOUNT, logic.recent_visit_count); - }); - } + SharedPreferencesHelper.getInstance().then((sharedPreferences) { + sharedPreferences.setInt(SharedPreferencesHelper.RECENTVISITCOUNT, logic.recent_visit_count); + }); Get.toNamed(AppRoutes.VisitorListActivity); }, child: Stack( diff --git a/circle_app/lib/app/report/view.dart b/circle_app/lib/app/report/view.dart index b90cfb2..a344973 100644 --- a/circle_app/lib/app/report/view.dart +++ b/circle_app/lib/app/report/view.dart @@ -31,7 +31,7 @@ class ReportPage extends StatelessWidget { backgroundColor: Colors.transparent, appBar: MyAppBar( centerTitle: '举报', - actionWdiget: Text( + actionWdiget: const Text( "提交", style: TextStyle(color: Colors.white), ), @@ -52,13 +52,13 @@ class ReportPage extends StatelessWidget { ), ), ), - Container( + SizedBox( height: 120.sp, child: _reportAdapter(controller), ), Expanded( child: Padding( - padding: EdgeInsets.fromLTRB(16, 20, 16, 0), + padding: const EdgeInsets.fromLTRB(16, 20, 16, 0), child: ListView( children: [ Text( @@ -71,7 +71,7 @@ class ReportPage extends StatelessWidget { SizedBox(height: 20.sp), // 添加 RecyclerView(ListView) 的内容 // 例如: MyRecyclerViewWidget(), - Container( + SizedBox( height: 130.sp, child: _imageAdapter(controller)), Text( @@ -81,19 +81,19 @@ class ReportPage extends StatelessWidget { fontSize: 14.sp, ), ), - SizedBox(height: 30), + const SizedBox(height: 30), Container( // margin: EdgeInsets.only(left: 10, right: 10), height: 200.sp, width: double.infinity, decoration: BoxDecoration( - color: Color(0xFF4C3E5F), + color: const Color(0xFF4C3E5F), borderRadius: BorderRadius.circular(10), ), padding: EdgeInsets.all(16.sp), child: Stack( children: [ - Container( + SizedBox( height: 200.sp, child: TextField( controller: controller.textEditingController, @@ -106,13 +106,13 @@ class ReportPage extends StatelessWidget { maxLength: 200, decoration: InputDecoration( hintStyle: TextStyle( - color: Color.fromRGBO( + color: const Color.fromRGBO( 255, 255, 255, 0.6), fontSize: 14.sp), hintText: '违规补充说明,帮助审核处理,选填', border: InputBorder.none, - counter: Text('')), + counter: const Text('')), ), ), Positioned( @@ -164,7 +164,7 @@ class ReportPage extends StatelessWidget { Widget _reportAdapter(ReportLogic controller) { return GridView.builder( - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, // crossAxisSpacing: 6.sp, childAspectRatio: 3, @@ -189,7 +189,7 @@ class ReportPage extends StatelessWidget { Widget _imageAdapter(ReportLogic controller) { return GridView.builder( - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, // 每行显示的项目数量 ), itemCount: controller.state.imaglist.length<3 ? controller.state.imaglist.length+1: controller.state.imaglist.length, // Replace with your item count// 项目的总数量,包括固定图片和接口获取的项目 @@ -231,7 +231,7 @@ class ReportPage extends StatelessWidget { EdgeInsets.only(left: 8.sp, right: 8.sp, top: 6.sp, bottom: 6.sp), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20.sp), - gradient: LinearGradient( + gradient: const LinearGradient( colors: [ Color(0xFF06F9FA), Color(0xFFDC5BFD), @@ -260,9 +260,9 @@ class ReportPage extends StatelessWidget { decoration: BoxDecoration( borderRadius: BorderRadius.circular(20.0), // 设置圆角半径 border: Border.all( - color: Color(0xFF392D53), + color: const Color(0xFF392D53), ), - color: Color(0xFF392D53), + color: const Color(0xFF392D53), ), child: Padding( padding: EdgeInsets.only( @@ -270,7 +270,7 @@ class ReportPage extends StatelessWidget { child: Center( child: Text( bean.name, - style: TextStyle( + style: const TextStyle( fontSize: 11.0, color: Colors.white, ), @@ -287,7 +287,7 @@ class ReportPage extends StatelessWidget { children: [ ClipRRect( borderRadius: BorderRadius.circular(0.0), - child: Container( + child: SizedBox( width: double.infinity, // 设置容器宽度为屏幕宽度 height: double.infinity, // 设置容器高度为屏幕高度 child: ClipRRect( diff --git a/circle_app/lib/app/userinfo/logic.dart b/circle_app/lib/app/userinfo/logic.dart index 6d89bed..ad8fc15 100644 --- a/circle_app/lib/app/userinfo/logic.dart +++ b/circle_app/lib/app/userinfo/logic.dart @@ -16,7 +16,7 @@ class UserinfoLogic extends GetxController { var userId = Get.arguments ?? ""; final UserinfoState state = UserinfoState(); final ImagePicker _picker = ImagePicker(); - UserBean? userInfoBean = null; + UserBean? userInfoBean; String imId = ''; String ageMsg = ""; var isVip = 0; @@ -34,7 +34,7 @@ class UserinfoLogic extends GetxController { @override void onInit() async { super.onInit(); - + SmartDialog.showLoading(); if (userId != '') { SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); @@ -86,12 +86,12 @@ class UserinfoLogic extends GetxController { var bean = BaseResponse.fromJson( data, (data) => ResponseBean.fromJson(data)); if (bean.isSuccess()) { - isLike = bean.data.is_follow; + isLike = bean.data.isFollow; isLikeFoMsg = "${bean.data.imageUrgeCount}位圈友感兴趣,其中${bean.data.likeMeCount}位已催您更新"; userInfoBean = bean.data!.user; isVip = userInfoBean!.vip; - imId = bean.data.account_id; + imId = bean.data.accountId; onLineCity = userInfoBean!.isOnline == true ? "在线" : "离线"; if (userInfoBean!.city != null) { onLineCity = "$onLineCity·${userInfoBean!.city}"; @@ -123,7 +123,7 @@ class UserinfoLogic extends GetxController { //} } update(); - + SmartDialog.dismiss(); var data = await DioManager.instance.get(url: Api.getqiniuToken, params: {}); var bean = BaseResponse.fromJson( @@ -209,7 +209,7 @@ class UserinfoLogic extends GetxController { update(); } }); - } catch (e) {} + } catch (_) {} } } @@ -300,23 +300,23 @@ class ResponseBean { UserBean user; int likeMeCount; int imageUrgeCount; - bool is_follow; - String account_id; + bool isFollow; + String accountId; ResponseBean( {required this.user, required this.likeMeCount, required this.imageUrgeCount, - required this.account_id, - required this.is_follow}); + required this.accountId, + required this.isFollow}); factory ResponseBean.fromJson(Map json) { return ResponseBean( - account_id: json['account_id'], + accountId: json['account_id'], user: UserBean.fromJson(json['user']), likeMeCount: json['like_me_count'], imageUrgeCount: json['image_urge_count'], - is_follow: json['is_follow'], + isFollow: json['is_follow'], ); } } diff --git a/circle_app/lib/app/userinfo/view.dart b/circle_app/lib/app/userinfo/view.dart index c0e495d..af692f6 100644 --- a/circle_app/lib/app/userinfo/view.dart +++ b/circle_app/lib/app/userinfo/view.dart @@ -86,7 +86,7 @@ class _MyTabbedScreenState extends State Positioned( bottom: 27.sp, width: Get.width, - child: _MeInfoButton(logic), + child: _meInfoButton(logic), ), ], ), @@ -97,7 +97,7 @@ class _MyTabbedScreenState extends State - Widget _MeInfoButton(UserinfoLogic controller) { + Widget _meInfoButton(UserinfoLogic controller) { if (controller.isMe) { return const SizedBox(); } else { diff --git a/circle_app/lib/app/userinfo/widgets/home_call_out.dart b/circle_app/lib/app/userinfo/widgets/home_call_out.dart index 47f7a79..b091bd0 100644 --- a/circle_app/lib/app/userinfo/widgets/home_call_out.dart +++ b/circle_app/lib/app/userinfo/widgets/home_call_out.dart @@ -23,19 +23,6 @@ class HomeCallOutView extends StatefulWidget { } class _HomeCallOutViewState extends State { - List genderList = ['男', '女,' 'MTF', 'FTM', 'CD', '酷儿']; - - List orientationList = [ - '异性恋', - '同性恋', - '双性恋', - '泛性恋', - '无性恋', - '智性恋', - '性单恋' - ]; - - List roleList = ['Sado', 'Maso', 'Dom', 'Sub', 'Switch']; HomeCallOutLogic? listsLg; @@ -252,8 +239,12 @@ class _HomeCallOutViewState extends State { Color(0xff8DFFF8), Color(0xffB5D3FF) ])), + child: Text( - '${genderList[lists.user!.gender!]}.${lists.user!.age}.${roleList[lists.user!.role!]}.${orientationList[lists.user!.orientation!]}', + getAgeCOntent(lists.user!.gender!, lists.user!.age!, + lists.user!.role!, lists.user!.orientation!), + + // '${genderList[lists.user!.gender!]}.${lists.user!.age}.${roleList[lists.user!.role!]}.${orientationList[lists.user!.orientation!]}', style: TextStyle( color: Colors.black, fontSize: 12.sp, @@ -483,7 +474,9 @@ class _HomeCallOutViewState extends State { Color(0xffB5D3FF) ])), child: Text( - '${genderList[lists.user!.gender!]}.${lists.user!.age}.${roleList[lists.user!.role!]}.${orientationList[lists.user!.orientation!]}', + getAgeCOntent(lists.user!.gender!, lists.user!.age!, + lists.user!.role!, lists.user!.orientation!), + // '${genderList[lists.user!.gender!]}.${lists.user!.age}.${roleList[lists.user!.role!]}.${orientationList[lists.user!.orientation!]}', style: TextStyle( color: Colors.black, fontSize: 12.sp, diff --git a/circle_app/lib/common/Widgets/base_tip_widget.dart b/circle_app/lib/common/Widgets/base_tip_widget.dart index 191c6e9..ec9d937 100644 --- a/circle_app/lib/common/Widgets/base_tip_widget.dart +++ b/circle_app/lib/common/Widgets/base_tip_widget.dart @@ -1,121 +1,250 @@ import 'dart:math'; +import 'package:alipay_kit/alipay_kit.dart'; import 'package:circle_app/util/util.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; -joiinCircileTipWdiget(String cicleId,String pirce,String oldPrice,String title) { - return Scaffold( - backgroundColor: Colors.transparent, - body: Container( - width: Get.width, - height: Get.height, - alignment: Alignment.center, - child: - Stack( - +import '../../network/api.dart'; +import '../../network/dio_manager.dart'; +import '../../util/PaymentUtils.dart'; +import 'open_vip_tip/logic.dart'; +bool isZfbPrice = true; +joiinCircileTipWdiget(String cicleId,String pirce,String oldPrice,String title,MyCallback myCallback) { + return StatefulBuilder( + builder:(BuildContext context, StateSetter setState) { + return Scaffold( + backgroundColor: Colors.transparent, + body: Container( + width: Get.width, + height: Get.height, alignment: Alignment.center, - children: [ - Container( - width: 339.sp, - height: 330.sp, - decoration: BoxDecoration( - image: DecorationImage( - fit: BoxFit.fill, - image: AssetImage(getCircleImage('add_tip_bg'))))), - Positioned( - top: 5.sp, - right: 12.sp, - child: GestureDetector( - onTap: () { - Get.back(); - }, - child: Image.asset( - getCircleImage('close'), - width: 24.sp, - ), - )), - Positioned( - top: 24.sp, - child: Text( - title, - style: TextStyle(color: Colors.white, fontSize: 16.sp), - )), - Positioned( - left: 17.sp, - top: 64.sp, - child: Text( - '为什么要解锁圈子?', - style: TextStyle(color: Colors.white, fontSize: 16.sp), - )), - Positioned( - top: 98.sp, - child: Container( + child: + Stack( + alignment: Alignment.center, + children: [ + Container( width: 339.sp, - padding: EdgeInsets.only(left: 17.sp, right: 17.sp), - child: Text( - '为打造纯净的社交环境,更好地服务大家,基于以下几方面考虑:1、平台升级为全天24小时人工审核,保证用户真实,避免骗子、酒托、虚假人士等扰乱平台 ;2、杜绝未入圈用户随意骚扰或影响已入圈的;3、谢绝只会白嫖的猎奇人士。', - style: TextStyle( - color: Color.fromRGBO(247, 250, 250, 0.8), - fontSize: 12.sp)), - )), - Positioned( - bottom: 18.sp, - child: Container( - width: 168.sp, - height: 42.sp, - alignment: Alignment.center, + height: 330.sp, decoration: BoxDecoration( - borderRadius: BorderRadius.circular(21.sp), - gradient: const LinearGradient( - begin: Alignment.centerLeft, - end: Alignment.centerRight, - colors: [Color(0xff0AFCFF), Color(0xffD739EA)])), + image: DecorationImage( + fit: BoxFit.fill, + image: AssetImage(getCircleImage('add_tip_bg'))))), + Positioned( + top: 5.sp, + right: 12.sp, + child: GestureDetector( + onTap: () { + Get.back(); + }, + child: Image.asset( + getCircleImage('close'), + width: 24.sp, + ), + )), + Positioned( + top: 24.sp, child: Text( - '立即解锁', + title, style: TextStyle(color: Colors.white, fontSize: 16.sp), - ), - )), - Positioned( - bottom: 72.sp, + )), + Positioned( + left: 17.sp, + top: 64.sp, + child: Text( + '为什么要解锁圈子?', + style: TextStyle(color: Colors.white, fontSize: 16.sp), + )), + Positioned( + top: 98.sp, + child: Container( + width: 339.sp, + padding: EdgeInsets.only(left: 17.sp, right: 17.sp), + child: Text( + '为打造纯净的社交环境,更好地服务大家,基于以下几方面考虑:1、平台升级为全天24小时人工审核,保证用户真实,避免骗子、酒托、虚假人士等扰乱平台 ;2、杜绝未入圈用户随意骚扰或影响已入圈的;3、谢绝只会白嫖的猎奇人士。', + style: TextStyle( + color: Color.fromRGBO(247, 250, 250, 0.8), + fontSize: 12.sp)), + )), + Positioned( + bottom: 108.sp, child: Container( + margin: EdgeInsets.only(top: 24.0.sp), child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( - '¥$pirce', - style: TextStyle( - color: Color(0xffE845FF), - fontSize: 16.sp, - fontWeight: FontWeight.w600), + GestureDetector( + onTap: () { + setState(() { + isZfbPrice = true; + }); + }, + child: Row( + children: [ + Image.asset( + isZfbPrice + ? getMineImage("icon_pay_select") + : getMineImage("icon_pay_is_no_select"), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 8.0.sp), + Image.asset( + getMineImage('icon_cooperate_ali'), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 4.0.sp), + Text( + '支付宝支付', + style: TextStyle( + color: Color(0xFFF7FAFA), + fontSize: 14.0.sp, + ), + ), + SizedBox(width: 4.0.sp), + Image.asset( + getMineImage('icon_recommend_pay_way'), + width: 32.0.sp, + height: 16.0.sp, + ), + ], + ), ), - SizedBox( - width: 2.sp, - ), - Text( - '(原价$oldPrice)', - style: TextStyle( - color: Colors.white70, - fontSize: 16.sp, - fontWeight: FontWeight.w400, - decoration: TextDecoration.lineThrough, - decorationColor: Colors.white70, + SizedBox(width: 24.0.sp), + GestureDetector( + onTap: () { + setState(() { + isZfbPrice = false; + }); + }, + child: Row( + children: [ + Image.asset( + !isZfbPrice + ? getMineImage("icon_pay_select") + : getMineImage("icon_pay_is_no_select"), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 8.0.sp), + Image.asset( + getMineImage('icon_cooperate_wx'), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 4.0.sp), + Text( + '微信支付', + style: TextStyle( + color: Color(0xFFF7FAFA), + fontSize: 14.0.sp, + ), + ), + ], ), ), ], ), - )) - ], - ), - ), + ), + ), - ); + Positioned( + bottom: 18.sp, + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: (){ + unlockingPayment(myCallback); + }, + child: Container( + width: 168.sp, + height: 42.sp, + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(21.sp), + gradient: const LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [Color(0xff0AFCFF), Color(0xffD739EA)])), + child: Text( + '立即解锁', + style: TextStyle(color: Colors.white, fontSize: 16.sp), + ), + ), + )), + Positioned( + bottom: 72.sp, + child: Container( + child: Row( + children: [ + Text( + '¥$pirce', + style: TextStyle( + color: Color(0xffE845FF), + fontSize: 16.sp, + fontWeight: FontWeight.w600), + ), + SizedBox( + width: 2.sp, + ), + Text( + '(原价$oldPrice)', + style: TextStyle( + color: Colors.white70, + fontSize: 16.sp, + fontWeight: FontWeight.w400, + decoration: TextDecoration.lineThrough, + decorationColor: Colors.white70, + ), + ), + ], + ), + )) + ], + ), + ), + + ); + }); } - showJoinCiclePiker(String cicleId,String pirce,String oldPrice,int type) { + unlockingPayment(MyCallback myCallback)async{ + if (isZfbPrice) { + var data = await DioManager.instance.post(url: Api.postAliPayOrder, params: { + //"product_id": priceBean[index].id, + "type": 1}); + var bean = BaseResponse.fromJson(data, (data) => PayUrlBean.fromJson(data)); + if(bean.isSuccess()){ + var data = await AlipayKitPlatform.instance.pay( + orderInfo: bean.data.payUrl, + isShowLoading :true + ); + }else { + showToast(bean.msg); + } + + } else{ + initWxApi(); + var data = await DioManager.instance.post(url: Api.postWxOrder, params: { + // "product_id": priceBean[index].id, + "type": 1}); + var bean = BaseResponse.fromJson(data, (data) => PaymentData.fromJson(data)); + if(bean.isSuccess()){ + openWxPay(bean.data); + }else { + showToast(bean.msg); + } + } + + } + +typedef void MyCallback(bool payResult); + + showJoinCiclePiker(String cicleId,String pirce,String oldPrice,int type,MyCallback payResult) { String title = ['解锁圈子才能发布喊话','解锁圈子才能查看主页','解锁圈子才能主动私聊'][type]; return Get.bottomSheet( - joiinCircileTipWdiget(cicleId,pirce,oldPrice,title), + joiinCircileTipWdiget(cicleId,pirce,oldPrice,title,payResult), isScrollControlled: true, enableDrag: false ); diff --git a/circle_app/lib/common/Widgets/open_vip_tip/logic.dart b/circle_app/lib/common/Widgets/open_vip_tip/logic.dart index c15a926..198517e 100644 --- a/circle_app/lib/common/Widgets/open_vip_tip/logic.dart +++ b/circle_app/lib/common/Widgets/open_vip_tip/logic.dart @@ -1,8 +1,143 @@ +import 'dart:convert'; + +import 'package:alipay_kit/alipay_kit.dart'; +import 'package:circle_app/util/util.dart'; import 'package:get/get.dart'; +import '../../../network/api.dart'; +import '../../../network/dio_manager.dart'; +import '../../../util/PaymentUtils.dart'; import 'state.dart'; +import 'package:fluwx/fluwx.dart' as fluwx; class Open_vip_tipLogic extends GetxController { + List priceBean = []; + bool isZfbPrice = true; + + @override + void onInit() async { + super.onInit(); + var data = await DioManager.instance.get(url: Api.getVipPrice, params: {}); + var vipPriceList = BaseResponse>.fromJson(data, (data) => + List.from(data.map((item) => PriceBean.fromJson(item))), + ); + priceBean = vipPriceList.data; + update(); + } + int index = 0; final Open_vip_tipState state = Open_vip_tipState(); + + startPayment() async { + if (isZfbPrice) { + var data = await DioManager.instance.post(url: Api.postAliPayOrder, params: {"product_id": priceBean[index].id, "type": 2}); + var bean = BaseResponse.fromJson(data, (data) => PayUrlBean.fromJson(data)); + if(bean.isSuccess()){ + AlipayKitPlatform.instance.pay( + orderInfo: bean.data.payUrl, + isShowLoading :true + ); + }else { + showToast(bean.msg); + } + + } else{ + initWxApi(); + var data = await DioManager.instance.post(url: Api.postWxOrder, params: {"product_id": priceBean[index].id, "type": 2}); + var bean = BaseResponse.fromJson(data, (data) => PaymentData.fromJson(data)); + if(bean.isSuccess()){ + openWxPay(bean.data); + }else { + showToast(bean.msg); + } + } + } +} + + +//注册微信 +void initWxApi() { + fluwx.registerWxApi( + appId: "wx6c6f4c89465dac4b", + universalLink: "dcc5bd5012a417eb585684700fbd1307", + ); +} + + + + +class PayUrlBean { + String payUrl; + + PayUrlBean({ + required this.payUrl, + }); + + factory PayUrlBean.fromJson(Map json) { + return PayUrlBean( + payUrl: json['pay_url'], + ); + } +} + + + +class PaymentData { + String appId; + String mchId; + String nonceStr; + String sign; + String prepayId; + String packageX; + String timestamp; + + PaymentData({ + required this.appId, + required this.mchId, + required this.nonceStr, + required this.sign, + required this.prepayId, + required this.packageX, + required this.timestamp, + }); + + factory PaymentData.fromJson(Map json) { + return PaymentData( + appId: json['appid'], + mchId: json['mchId'], + nonceStr: json['nonceStr'], + sign: json['sign'], + prepayId: json['prepayId'], + packageX: json['packageX'], + timestamp: json['timestamp'], + ); + } +} + + + +class PriceBean { + int id; + String title; + double amount; + double oldAmount; + String iosItem; + + PriceBean({ + required this.id, + required this.title, + required this.amount, + required this.oldAmount, + required this.iosItem, + }); + + factory PriceBean.fromJson(Map json) { + return PriceBean( + id: json['id'], + title: json['title'], + amount: json['amount'].toDouble(), + oldAmount: json['old_amount'].toDouble(), + iosItem: json['ios_item'], + ); + } } diff --git a/circle_app/lib/common/Widgets/open_vip_tip/view.dart b/circle_app/lib/common/Widgets/open_vip_tip/view.dart index 2d4da20..efa5023 100644 --- a/circle_app/lib/common/Widgets/open_vip_tip/view.dart +++ b/circle_app/lib/common/Widgets/open_vip_tip/view.dart @@ -14,24 +14,29 @@ class Open_vip_tipPage extends StatelessWidget { @override Widget build(BuildContext context) { - List vipFuncList = ["身份标识", - "专属客服", - "无限畅聊", - "至尊喊话", - "图片私聊", - "视频私聊", - "看谁喜欢你", - "看谁看过你", - "缘分匹配"]; + List vipFuncList = [ + "身份标识", + "专属客服", + "无限畅聊", + "至尊喊话", + "图片私聊", + "视频私聊", + "看谁喜欢你", + "看谁看过你", + "缘分匹配" + ]; - List vipDescList = ['会员专属,更显尊贵',"给您更加贴心的服务", - "可以随心所欲畅聊", - "发布的喊话在圈内凸显", - "聊天可以一直使用图片", - "聊天可以一直使用视频", - "看到所有喜欢你的人", - "看到所有看过你的人", - "为您匹配更合适的人"]; + List vipDescList = [ + '会员专属,更显尊贵', + "给您更加贴心的服务", + "可以随心所欲畅聊", + "发布的喊话在圈内凸显", + "聊天可以一直使用图片", + "聊天可以一直使用视频", + "看到所有喜欢你的人", + "看到所有看过你的人", + "为您匹配更合适的人" + ]; // for (int i = 1; i < 10; i++) { // // } @@ -39,13 +44,13 @@ class Open_vip_tipPage extends StatelessWidget { return GetBuilder(builder: (Open_vip_tipLogic controller) { return Scaffold( backgroundColor: Colors.transparent, - body: Container( + body: SizedBox( width: Get.width, height: Get.height, child: Center( child: Container( width: 339.sp, - height: 453.sp, + height: 483.sp, decoration: BoxDecoration( image: DecorationImage( fit: BoxFit.fill, @@ -78,38 +83,126 @@ class Open_vip_tipPage extends StatelessWidget { height: 180.sp, child: Swiper( itemCount: vipFuncList.length, - itemBuilder: (BuildContext context, int index) { - return funcItem(vipFuncList[index], - vipDescList[index], index+1); - }, + itemBuilder: (BuildContext context, int index) { + return funcItem(vipFuncList[index], + vipDescList[index], index + 1); + }, loop: true, - autoplay:true, + autoplay: true, pagination: new SwiperPagination( - builder: DotSwiperPaginationBuilder( - color: Color(0x99FFFFFF), - size:4.sp, - activeColor: Color(0xFF00FFD2), - activeSize: 4.sp - ) - ),//如果不填则不显示指示点 - ), + builder: DotSwiperPaginationBuilder( + color: Color(0x99FFFFFF), + size: 4.sp, + activeColor: Color(0xFF00FFD2), + activeSize: 4.sp)), //如果不填则不显示指示点 + ), )), Positioned( top: 227.sp, + child: controller.priceBean.isEmpty + ? Container() + : Container( + width: 339.sp, + padding: + EdgeInsets.only(left: 17.sp, right: 17.sp), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + typeItem( + controller, controller.index == 0, 0), + typeItem( + controller, controller.index == 1, 1), + typeItem( + controller, controller.index == 2, 2), + ], + ))), + Positioned( + bottom: 108.sp, child: Container( - width: 339.sp, - padding: EdgeInsets.only(left: 17.sp, right: 17.sp), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - typeItem(controller, controller.index == 0, 0), - typeItem(controller, controller.index == 1, 1), - typeItem(controller, controller.index == 2, 2), - ], - ))), + margin: EdgeInsets.only(top: 24.0.sp), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + GestureDetector( + onTap: () { + // 处理支付宝支付逻辑 + controller.isZfbPrice = true; + controller.update(); + }, + child: Row( + children: [ + Image.asset( + controller.isZfbPrice? + getMineImage("icon_pay_select"): getMineImage("icon_pay_is_no_select"), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 8.0.sp), + Image.asset( + getMineImage('icon_cooperate_ali'), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 4.0.sp), + Text( + '支付宝支付', + style: TextStyle( + color: Color(0xFFF7FAFA), + fontSize: 14.0.sp, + ), + ), + SizedBox(width: 4.0.sp), + Image.asset( + getMineImage('icon_recommend_pay_way'), + width: 32.0.sp, + height: 16.0.sp, + ), + ], + ), + ), + SizedBox(width: 24.0.sp), + GestureDetector( + onTap: () { + controller.isZfbPrice = false; + controller.update(); + }, + child: Row( + children: [ + Image.asset( + !controller.isZfbPrice? + getMineImage("icon_pay_select"): getMineImage("icon_pay_is_no_select"), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 8.0.sp), + Image.asset( + getMineImage('icon_cooperate_wx'), + width: 20.0.sp, + height: 20.0.sp, + ), + SizedBox(width: 4.0.sp), + Text( + '微信支付', + style: TextStyle( + color: Color(0xFFF7FAFA), + fontSize: 14.0.sp, + ), + ), + ], + ), + ), + ], + ), + )), Positioned( bottom: 48.sp, - child: Container( + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: (){ + controller.startPayment(); + }, + child: Container( width: 168.sp, height: 42.sp, alignment: Alignment.center, @@ -125,9 +218,9 @@ class Open_vip_tipPage extends StatelessWidget { child: Text( '立即解锁', style: - TextStyle(color: Colors.white, fontSize: 16.sp), + TextStyle(color: Colors.white, fontSize: 16.sp), ), - )), + ),)), Positioned( bottom: 17.sp, child: Container( @@ -164,6 +257,8 @@ class Open_vip_tipPage extends StatelessWidget { } typeItem(Open_vip_tipLogic controller, bool isSelected, int index) { + double pricePerDay = controller.priceBean[index].amount / 30; + String formattedPricePerDay = '${pricePerDay.toStringAsFixed(2)}元/天'; return GestureDetector( onTap: () { controller.index = index; @@ -191,25 +286,25 @@ class Open_vip_tipPage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Text( - '3个月', + controller.priceBean[index].title, style: TextStyle(color: Colors.white, fontSize: 14.sp), ), Text( - '0.67元/天', + formattedPricePerDay, style: TextStyle(color: Colors.white, fontSize: 14.sp), ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - '58元', + controller.priceBean[index].amount.toString(), style: TextStyle(color: Colors.white, fontSize: 14.sp), ), SizedBox( width: 4.sp, ), Text( - '388元', + "${controller.priceBean[index].oldAmount}元", style: TextStyle( color: Colors.white70, fontSize: 10.sp, @@ -222,6 +317,13 @@ class Open_vip_tipPage extends StatelessWidget { ], ), ), + controller.priceBean[index].title=="年度会员"? Positioned( + top: 0.sp, + left: 0.sp, + child: Image.asset(getMineImage("icon_yean_vip")), + width: 44.sp, + height: 18.sp, + ) :Container() ], )); } diff --git a/circle_app/lib/network/api.dart b/circle_app/lib/network/api.dart index 8c55b3a..8e4c143 100644 --- a/circle_app/lib/network/api.dart +++ b/circle_app/lib/network/api.dart @@ -24,6 +24,24 @@ class Api { static const getCircleList = 'user-service/app/config'; + //获取vip价格 + static const getVipPrice = 'mall-service/vips'; + + + + + //支付宝支付 + static const postAliPayOrder = 'mall-service/alipay/order'; + + + + + //微信支付 + static const postWxOrder = 'mall-service/wxpay/order'; + + + + //刷新token static const refreshToken = 'user-service/login/token/refresh'; diff --git a/circle_app/lib/network/dio_manager.dart b/circle_app/lib/network/dio_manager.dart index 00ff189..5d1b6d2 100644 --- a/circle_app/lib/network/dio_manager.dart +++ b/circle_app/lib/network/dio_manager.dart @@ -39,9 +39,9 @@ class DioManager { // 请求基地址 baseUrl: baseUrl, // 连接服务器超时时间,单位是毫秒 - connectTimeout: Duration(seconds: 30000000000), + connectTimeout: const Duration(seconds: 300), // 接收数据的最长时限 - receiveTimeout: Duration(seconds: 30000000000), + receiveTimeout: const Duration(seconds: 300), )); _dio!.interceptors.add(LogInterceptor(responseBody: true)); // _dio!.interceptors.add(ConnectivityInterceptor()); @@ -175,7 +175,7 @@ class DioManager { 'Imei': await getImei(), 'Brand': await getBrand(), }); - print(">>>>>"+params.toString()); + print(">>>>>$params"); /// 不同请求方法,不同的请求参数,按实际项目需求分. /// 这里 get 是 queryParameters,其它用 data. FormData 也是 data diff --git a/circle_app/lib/util/PaymentUtils.dart b/circle_app/lib/util/PaymentUtils.dart new file mode 100644 index 0000000..ba47155 --- /dev/null +++ b/circle_app/lib/util/PaymentUtils.dart @@ -0,0 +1,32 @@ + +import 'package:circle_app/util/util.dart'; + +import '../common/Widgets/open_vip_tip/logic.dart'; +import 'package:fluwx/fluwx.dart' as fluwx; +//微信支付 +Future openWxPay(PaymentData data) async { + //是否安装微信 + bool isInstalled = await fluwx.isWeChatInstalled; + if (!isInstalled) { + showToast("请先安装微信"); + return; + } + //调起支付 + fluwx.payWithWeChat( + appId: data.appId, + partnerId: data.mchId, + prepayId: data.prepayId, + packageValue: data.packageX, + nonceStr: data.nonceStr, + timeStamp: int.parse(data.timestamp), + sign: data.sign, + ); + //监听微信回调 + fluwx.weChatResponseEventHandler.listen((event) { + if(event.isSuccessful) { + showToast("微信支付成功"); + } else { + showToast(event.errStr??"微信支付成功"); + } + }); +} \ No newline at end of file diff --git a/circle_app/lib/view/ExitAppConfirmation.dart b/circle_app/lib/view/ExitAppConfirmation.dart new file mode 100644 index 0000000..f01c3ab --- /dev/null +++ b/circle_app/lib/view/ExitAppConfirmation.dart @@ -0,0 +1,40 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +import '../util/util.dart'; + +class ExitAppConfirmation extends StatefulWidget { + final Widget child; + + ExitAppConfirmation({required this.child}); + + @override + _ExitAppConfirmationState createState() => _ExitAppConfirmationState(); +} + +class _ExitAppConfirmationState extends State { + DateTime? _lastPressed; + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: _onBackPressed, + child: widget.child, + ); + } + + Future _onBackPressed() { + final currentTime = DateTime.now(); + + if (_lastPressed == null || + currentTime.difference(_lastPressed!) > Duration(seconds: 2)) { + _lastPressed = currentTime; + // ScaffoldMessenger.of(context).showSnackBar( + // const SnackBar(content: Text('再按一次返回键退出应用')), + // ); + showToast("再按一次返回键退出应用"); + return Future.value(false); + } + return Future.value(true); + } +} diff --git a/circle_app/lib/view/hometab/binding.dart b/circle_app/lib/view/hometab/binding.dart deleted file mode 100644 index 5c218fc..0000000 --- a/circle_app/lib/view/hometab/binding.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:get/get.dart'; - -import 'logic.dart'; - -class HometabBinding extends Bindings { - @override - void dependencies() { - Get.lazyPut(() => HometabLogic()); - } -} diff --git a/circle_app/lib/view/hometab/logic.dart b/circle_app/lib/view/hometab/logic.dart deleted file mode 100644 index 4bdb73c..0000000 --- a/circle_app/lib/view/hometab/logic.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:get/get.dart'; - -import 'state.dart'; - -class HometabLogic extends GetxController { - final HometabState state = HometabState(); -} diff --git a/circle_app/lib/view/hometab/state.dart b/circle_app/lib/view/hometab/state.dart deleted file mode 100644 index 20f8d24..0000000 --- a/circle_app/lib/view/hometab/state.dart +++ /dev/null @@ -1,5 +0,0 @@ -class HometabState { - HometabState() { - ///Initialize variables - } -} diff --git a/circle_app/lib/view/hometab/view.dart b/circle_app/lib/view/hometab/view.dart deleted file mode 100644 index 35d5fea..0000000 --- a/circle_app/lib/view/hometab/view.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:get/get.dart'; -import 'package:circle_app/app/minefragment/view.dart'; - -import 'logic.dart'; - -class HometabPage extends StatefulWidget { - HometabPage({Key? key}) : super(key: key); - - // final logic = Get.find(); - // final state = Get.find().state; - - @override - _TabsState createState() => _TabsState(); - } - class _TabsState extends State{ - int _currentIndex = 0; - List _pageList = [ - MinefragmentPage(), - MinefragmentPage(), - MinefragmentPage(), - ]; - @override - Widget build(BuildContext context) { - // TODO: implement build - return Scaffold( - - body: this._pageList[this._currentIndex], - bottomNavigationBar: BottomNavigationBar( - currentIndex: this._currentIndex, - onTap: (int index){ - setState(() { - this._currentIndex = index; - }); - }, - iconSize: 30, - fixedColor: Colors.red, - type: BottomNavigationBarType.fixed, - items: [ - BottomNavigationBarItem(icon: Icon(Icons.home),label: ''), - BottomNavigationBarItem(icon: Icon(Icons.home), label: ''), - BottomNavigationBarItem(icon: Icon(Icons.home), label: ''), - ], - ), - - ); - - - } - } - diff --git a/circle_app/macos/Flutter/GeneratedPluginRegistrant.swift b/circle_app/macos/Flutter/GeneratedPluginRegistrant.swift index 6be27df..6ab1844 100644 --- a/circle_app/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/circle_app/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,6 +6,7 @@ import FlutterMacOS import Foundation import audioplayers_darwin +import connectivity_macos import desktop_drop import device_info_plus_macos import fc_native_video_thumbnail_for_us @@ -18,10 +19,12 @@ import photo_manager import shared_preferences_foundation import sqflite import url_launcher_macos +import video_compress import wakelock_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) + ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin")) DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) FcNativeVideoThumbnailPlugin.register(with: registry.registrar(forPlugin: "FcNativeVideoThumbnailPlugin")) @@ -34,5 +37,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + VideoCompressPlugin.register(with: registry.registrar(forPlugin: "VideoCompressPlugin")) WakelockMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockMacosPlugin")) } diff --git a/circle_app/pubspec.lock b/circle_app/pubspec.lock index cdfbe9d..a27baaf 100644 --- a/circle_app/pubspec.lock +++ b/circle_app/pubspec.lock @@ -1,36 +1,244 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a + url: "https://pub.flutter-io.cn" + source: hosted + version: "61.0.0" + adaptive_action_sheet: + dependency: transitive + description: + name: adaptive_action_sheet + sha256: "2cf53889102f2f476d03da30ef4219a3199f1d9b9f7bf063e2b23cd5aa88ea02" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.2" + alipay_kit: + dependency: "direct main" + description: + name: alipay_kit + sha256: fa8e55b304f770cd9640356a72c7b12476eb72e5acf231cea568fd9463213a4c + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.0.0" + alipay_kit_android: + dependency: transitive + description: + name: alipay_kit_android + sha256: "5c8ec94fb0c2e8cdffc4d0ed9459b8c30bf0e822c2c1b910ff85d2124ad7ecb4" + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.13.0" + archive: + dependency: transitive + description: + name: archive + sha256: "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.3.7" + args: + dependency: transitive + description: + name: args + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.2" async: dependency: transitive description: name: async sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.10.0" + audioplayers: + dependency: transitive + description: + name: audioplayers + sha256: "16451eab798b23ad9307aef6f9ca62bb8fb06542af8810eead0d236d3fd40a42" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.1" + audioplayers_android: + dependency: transitive + description: + name: audioplayers_android + sha256: b2c833e6f718b6b030454e329931229afafe9327fdb002874dd544dc8bf2484d + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.0" + audioplayers_darwin: + dependency: transitive + description: + name: audioplayers_darwin + sha256: e7a3c8759bf11ecfe4b20df338bf9f3d37c7719a5761c46a3833aba0ceeaacff + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.1" + audioplayers_linux: + dependency: transitive + description: + name: audioplayers_linux + sha256: e95b65e1f4d4764601dac5e65f8d8186fc29401043ab020f1dacec483d708707 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.4" + audioplayers_platform_interface: + dependency: transitive + description: + name: audioplayers_platform_interface + sha256: "178581a44cb685fd798d2108111d2e98cca3400e30b9c3a05546f124fb37f600" + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.0.0" + audioplayers_web: + dependency: transitive + description: + name: audioplayers_web + sha256: "859ba09be2a57e57a787273f18c8cf0d9b61383870c5ee4b5632fe9adbc37edf" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" + audioplayers_windows: + dependency: transitive + description: + name: audioplayers_windows + sha256: "622e01c4c357c2aaf1b956c3a0f89d97c3cb40315c03f16e3b6c2a31ff9c38bc" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.3" + azlistview_all_platforms: + dependency: transitive + description: + name: azlistview_all_platforms + sha256: "47ce2204863e0c3e481ca2a3813096d9818b153f1f677e839503e33d36e97993" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.2" boolean_selector: dependency: transitive description: name: boolean_selector sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "43865b79fbb78532e4bff7c33087aa43b1d488c4fdef014eaef568af6d8016dc" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.0" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.2.3" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.0" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.2" + camera: + dependency: transitive + description: + name: camera + sha256: ebebead3d5ec3d148249331d751d462d7e8c98102b8830a9b45ec96a2bd4333f + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.10.5+2" + camera_android: + dependency: transitive + description: + name: camera_android + sha256: f83e406d34f5faa80bf0f5c3beee4b4c11da94a94e9621c1bb8e312988621b4b + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.10.8+2" + camera_avfoundation: + dependency: transitive + description: + name: camera_avfoundation + sha256: "1a416e452b30955b392f4efbf23291d3f2ba3660a85e1628859eb62d2a2bab26" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.9.13+2" + camera_platform_interface: + dependency: transitive + description: + name: camera_platform_interface + sha256: "60fa0bb62a4f3bf3a7c413e31e4cd01b69c779ccc8e4668904a24581b86c316b" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.5.1" + camera_web: + dependency: transitive + description: + name: camera_web + sha256: bcbd775fb3a9d51cc3ece899d54ad66f6306410556bac5759f78e13f9228841f + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.3.1+4" characters: dependency: transitive description: name: characters sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.1" + charcode: + dependency: transitive + description: + name: charcode + sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.1" + chewie: + dependency: transitive + description: + name: chewie + sha256: "745e81e84c6d7f3835f89f85bb49771c0a66099e4caf8f8e9e9a372bc66fb2c1" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.5.0" clock: dependency: transitive description: name: clock sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" collection: @@ -38,39 +246,263 @@ packages: description: name: collection sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.17.0" + connectivity: + dependency: "direct main" + description: + name: connectivity + sha256: a8e91263cf3e25fb5cc95e19dfde4999e32a648ac3b9e8a558a28165731678f8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.6" + connectivity_for_web: + dependency: transitive + description: + name: connectivity_for_web + sha256: "01a390c1d5adc2ed1fa1f52d120c07fe9fd01166a93f965a832fd6cfc0ea6482" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.0+1" + connectivity_macos: + dependency: transitive + description: + name: connectivity_macos + sha256: "51ae08d5162eca9669b9d8951ed83ce19c5355a81149f94e4dee2740beb93628" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.1+2" + connectivity_platform_interface: + dependency: transitive + description: + name: connectivity_platform_interface + sha256: "2d82e942df9d49f29a24bb07fb5ce085d4a53e47818c62364d2b6deb9e0d7a8e" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.1" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.1" cross_file: dependency: transitive description: name: cross_file sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.3.3+4" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.3" + csslib: + dependency: transitive + description: + name: csslib + sha256: "831883fb353c8bdc1d71979e5b342c7d88acfbc643113c14ae51e2442ea0f20f" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.17.3" + csv: + dependency: transitive + description: + name: csv + sha256: "016b31a51a913744a0a1655c74ff13c9379e1200e246a03d96c81c5d9ed297b5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.0.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.0.5" + desktop_drop: + dependency: transitive + description: + name: desktop_drop + sha256: "4ca4d960f4b11c032e9adfd2a0a8ac615bc3fddb4cbe73dcf840dd8077582186" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.1" + device_info: + dependency: "direct main" + description: + name: device_info + sha256: f4a8156cb7b7480d969cb734907d18b333c8f0bc0b1ad0b342cdcecf30d62c48 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.3" + device_info_platform_interface: + dependency: transitive + description: + name: device_info_platform_interface + sha256: b148e0bf9640145d09a4f8dea96614076f889e7f7f8b5ecab1c7e5c2dbc73c1b + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.1" + device_info_plus: + dependency: transitive + description: + name: device_info_plus + sha256: b809c4ed5f7fcdb325ccc70b80ad934677dc4e2aa414bf46859a42bfdfafcbb6 + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.1.3" + device_info_plus_linux: + dependency: transitive + description: + name: device_info_plus_linux + sha256: "77a8b3c4af06bc46507f89304d9f49dfc64b4ae004b994532ed23b34adeae4b3" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.0" + device_info_plus_macos: + dependency: transitive + description: + name: device_info_plus_macos + sha256: "37961762fbd46d3620c7b69ca606671014db55fc1b7a11e696fd90ed2e8fe03d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.0" + device_info_plus_platform_interface: + dependency: transitive + description: + name: device_info_plus_platform_interface + sha256: "83fdba24fcf6846d3b10f10dfdc8b6c6d7ada5f8ed21d62ea2909c2dfa043773" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.0" + device_info_plus_web: + dependency: transitive + description: + name: device_info_plus_web + sha256: "5890f6094df108181c7a29720bc23d0fd6159f17d82787fac093d1fefcaf6325" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.0" + device_info_plus_windows: + dependency: transitive + description: + name: device_info_plus_windows + sha256: "23a2874af0e23ee6e3a2a0ebcecec3a9da13241f2cb93a93a44c8764df123dd7" + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.1.0" + diff_match_patch: + dependency: transitive + description: + name: diff_match_patch + sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.1" + dio: + dependency: "direct main" + description: + name: dio + sha256: a9d76e72985d7087eb7c5e7903224ae52b337131518d127c554b9405936752b8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.2.1+1" + disk_space: + dependency: transitive + description: + name: disk_space + sha256: fb27eb2d09ac04784f45b95b1355538b2355c76a081eeaa8439d1a5cfa263888 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.1" + dotted_border: + dependency: transitive + description: + name: dotted_border + sha256: "07a5c5e8d4e6e992279e190e0352be8faa5b8f96d81c77a78b2d42f060279840" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.0+3" + extended_image: + dependency: transitive + description: + name: extended_image + sha256: a6b738d9b8d5513be72c545cc3e9c5c451fbee77c8db3cbec7c32ae85b82fb93 + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.4.1" + extended_image_library: + dependency: transitive + description: + name: extended_image_library + sha256: "550743b43ab093aed35ef234500fcc7a304cbac1eca47b0cc991e07e88750758" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.4.2" fake_async: dependency: transitive description: name: fake_async sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.1" + fast_i18n: + dependency: transitive + description: + name: fast_i18n + sha256: f0039a3c1f5f3b7deafefdbb5222d7eb1ee9c2c2fe1222b648b285711b2c7570 + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.12.6" + fc_native_video_thumbnail_for_us: + dependency: transitive + description: + name: fc_native_video_thumbnail_for_us + sha256: db6fa2998195ef5eadac690ae58d6a909ddb5b0283ebbbf9ae4e0e8f99a54902 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.8+1" + ffi: + dependency: transitive + description: + name: ffi + sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.2" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.1.4" + file_picker: + dependency: transitive + description: + name: file_picker + sha256: b85eb92b175767fdaa0c543bf3b0d1f610fe966412ea72845fe5ba7801e763ff + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.2.10" file_selector_linux: dependency: transitive description: name: file_selector_linux sha256: d17c5e450192cdc40b718804dfb4eaf79a71bed60ee9530703900879ba50baa3 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.9.1+3" file_selector_macos: @@ -78,7 +510,7 @@ packages: description: name: file_selector_macos sha256: "6290eec24fc4cc62535fe609e0c6714d3c1306191dc8c3b0319eaecc09423a3a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.9.2" file_selector_platform_interface: @@ -86,7 +518,7 @@ packages: description: name: file_selector_platform_interface sha256: "2a7f4bbf7bd2f022ecea85bfb1754e87f7dd403a9abc17a84a4fa2ddfe2abc0a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.5.1" file_selector_windows: @@ -94,38 +526,166 @@ packages: description: name: file_selector_windows sha256: ef246380b66d1fb9089fc65622c387bf3780bca79f533424c31d07f12c2c7fd8 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.9.2" + file_utils: + dependency: transitive + description: + name: file_utils + sha256: d1e64389a22649095c8405c9e177272caf05139255931c9ff30d53b5c9bcaa34 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.1" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_blurhash: + dependency: transitive + description: + name: flutter_blurhash + sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.7.0" + flutter_cache_manager: + dependency: "direct main" + description: + name: flutter_cache_manager + sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.3.0" + flutter_easyrefresh: + dependency: transitive + description: + name: flutter_easyrefresh + sha256: "5d161ee5dcac34da9065116568147d742dd25fb9bff3b10024d9054b195087ad" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.2" + flutter_image_compress: + dependency: transitive + description: + name: flutter_image_compress + sha256: "37f1b26399098e5f97b74c1483f534855e7dff68ead6ddaccf747029fb03f29f" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.3" + flutter_install_app: + dependency: "direct main" + description: + name: flutter_install_app + sha256: "9b117006d17c900e671c26bcbc9b15c7b8efd15d6f9b4442ad5d576de20fab53" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" + flutter_intl: + dependency: "direct main" + description: + name: flutter_intl + sha256: "17b138fab0477c7d17abd8ba67d294786eef8fe80342e58b6253aef7d0ca2bad" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.1" flutter_lints: dependency: "direct dev" description: name: flutter_lints sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" + flutter_luban: + dependency: "direct main" + description: + name: flutter_luban + sha256: "42c01fbc1d0dd14f4d573372b79d6747415749552a8e996cf989018cc70cf2a8" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.13" + flutter_markdown: + dependency: transitive + description: + name: flutter_markdown + sha256: dc6d5258653f6857135b32896ccda7f7af0c54dcec832495ad6835154c6c77c0 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.6.15" + flutter_page_indicator: + dependency: transitive + description: + name: flutter_page_indicator + sha256: a5b2992228c2827b69faed3977681a3f5c313c7f13d72272decbb2923d1d7176 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.3" + flutter_pickers: + dependency: "direct main" + description: + name: flutter_pickers + sha256: f38a9d9229afed75f76bae64e628b78b9c20194873e3c141783523cf21ac8a95 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.9" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle sha256: "950e77c2bbe1692bc0874fc7fb491b96a4dc340457f4ea1641443d0a6c1ea360" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.15" + flutter_plugin_record_plus: + dependency: transitive + description: + name: flutter_plugin_record_plus + sha256: e75a5265d37617327d8756d1c4eb7766625489fc1c5bc437fdfd827538285ee4 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.15" flutter_screenutil: dependency: "direct main" description: name: flutter_screenutil sha256: "0a122936b450324cbdfd51be0819cc6fcebb093eb65585e9cd92263f7a1a8a39" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "5.7.0" + flutter_slidable_for_tencent_im: + dependency: transitive + description: + name: flutter_slidable_for_tencent_im + sha256: "425faab6304305dd7d38aef448af02acd65f425bf2bd47ce3b70b0b4e714c17b" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.4.0" + flutter_smart_dialog: + dependency: "direct main" + description: + name: flutter_smart_dialog + sha256: acf66eb7b10ebb3173ef6f40040c0808d4fd56ade885cc850657b5463d3b602a + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.9.2" + flutter_svg: + dependency: transitive + description: + name: flutter_svg + sha256: "6ff9fa12892ae074092de2fa6a9938fb21dbabfdaa2ff57dc697ff912fc8d4b2" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.6" + flutter_swiper: + dependency: "direct main" + description: + name: flutter_swiper + sha256: e52a0e894abfa4099a5d4e5098a00597f3b55e25617cdd19e6fe6be5d24858c7 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.6" flutter_test: dependency: "direct dev" description: flutter @@ -141,39 +701,151 @@ packages: description: name: fluttertoast sha256: "474f7d506230897a3cd28c965ec21c5328ae5605fc9c400cd330e9e9d6ac175c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "8.2.2" + fluwx: + dependency: "direct main" + description: + name: fluwx + sha256: "485b19e75f78d1b2ba867bc36d9e726fd236de6fb0f7587e5eaa840e1bef1a4c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.13.1" + geolocator: + dependency: "direct main" + description: + name: geolocator + sha256: "5c23f3613f50586c0bbb2b8f970240ae66b3bd992088cf60dd5ee2e6f7dde3a8" + url: "https://pub.flutter-io.cn" + source: hosted + version: "9.0.2" + geolocator_android: + dependency: transitive + description: + name: geolocator_android + sha256: "94c2cf51f4a8387335cc2d1a21cc50897bc93069e05fc09aee29bd353a14f6f5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.1.9" + geolocator_apple: + dependency: transitive + description: + name: geolocator_apple + sha256: "36527c555f4c425f7d8fa8c7c07d67b78e3ff7590d40448051959e1860c1cfb4" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.7" + geolocator_platform_interface: + dependency: transitive + description: + name: geolocator_platform_interface + sha256: af4d69231452f9620718588f41acc4cb58312368716bfff2e92e770b46ce6386 + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.0.7" + geolocator_web: + dependency: transitive + description: + name: geolocator_web + sha256: f68a122da48fcfff68bbc9846bb0b74ef651afe84a1b1f6ec20939de4d6860e1 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.6" + geolocator_windows: + dependency: transitive + description: + name: geolocator_windows + sha256: f5911c88e23f48b598dd506c7c19eff0e001645bdc03bb6fecb9f4549208354d + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.1" get: dependency: "direct main" description: name: get sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.6.5" + get_it: + dependency: transitive + description: + name: get_it + sha256: "529de303c739fca98cd7ece5fca500d8ff89649f1bb4b4e94fb20954abcd7468" + url: "https://pub.flutter-io.cn" + source: hosted + version: "7.6.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.2" + globbing: + dependency: transitive + description: + name: globbing + sha256: "4f89cfaf6fa74c9c1740a96259da06bd45411ede56744e28017cc534a12b6e2d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.0" + html: + dependency: transitive + description: + name: html + sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.15.4" http: dependency: transitive description: name: http sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.13.6" + http_client_helper: + dependency: transitive + description: + name: http_client_helper + sha256: "14c6e756644339f561321dab021215475ba4779aa962466f59ccb3ecf66b36c3" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.4" http_parser: dependency: transitive description: name: http_parser sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "4.0.2" + image: + dependency: transitive + description: + name: image + sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.3.0" + image_gallery_saver: + dependency: transitive + description: + name: image_gallery_saver + sha256: be812580c7a320d3bf583af89cac6b376f170d48000aca75215a73285a3223a0 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.7.1" image_picker: dependency: "direct main" description: name: image_picker sha256: "6432178560d95303cc70d038363f892f5a05750dd27bc55220c7301af54d05e9" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.8.8" image_picker_android: @@ -181,7 +853,7 @@ packages: description: name: image_picker_android sha256: "1ec6830289f5b6aeff3aa8239ea737c71950178dda389342dc2215adb06b4bd8" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.8.6+20" image_picker_for_web: @@ -189,7 +861,7 @@ packages: description: name: image_picker_for_web sha256: "98f50d6b9f294c8ba35e25cc0d13b04bfddd25dbc8d32fa9d566a6572f2c081c" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.12" image_picker_ios: @@ -197,7 +869,7 @@ packages: description: name: image_picker_ios sha256: d779210bda268a03b57e923fb1e410f32f5c5e708ad256348bcbf1f44f558fd0 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.8.7+4" image_picker_linux: @@ -205,7 +877,7 @@ packages: description: name: image_picker_linux sha256: "1d8f9a97178d6b8a035f1d2765f17f8ca3d36a40d5594e742a481b1e002f20be" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.0" image_picker_macos: @@ -213,7 +885,7 @@ packages: description: name: image_picker_macos sha256: ff094b36d6c06200808f733144a033e45b4e17d59524e1cf7d2af7e4cb94e1ab - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.0" image_picker_platform_interface: @@ -221,7 +893,7 @@ packages: description: name: image_picker_platform_interface sha256: "7c7b96bb9413a9c28229e717e6fd1e3edd1cc5569c1778fcca060ecf729b65ee" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.8.0" image_picker_windows: @@ -229,31 +901,87 @@ packages: description: name: image_picker_windows sha256: bf77b819eb62c487e6af53b9eb213adc12bd060ef7e43f3b1dd69c53cc24a61d - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.0" + intl: + dependency: transitive + description: + name: intl + sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.17.0" js: dependency: transitive description: name: js sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.6.5" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.8.1" + link_preview_generator: + dependency: transitive + description: + name: link_preview_generator + sha256: f296d4f662810b235335c4e539a70d4b551ae7b80e2941a3a8357e37421ae575 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" lints: dependency: transitive description: name: lints sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" + loading_animation_widget: + dependency: transitive + description: + name: loading_animation_widget + sha256: "1901682600273a966c34cf44a85fc5355da92a8d08a8a43c11adc4e471993e3a" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0+4" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.0" + lpinyin: + dependency: transitive + description: + name: lpinyin + sha256: "0bb843363f1f65170efd09fbdfc760c7ec34fc6354f9fcb2f89e74866a0d814a" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.3" + markdown: + dependency: transitive + description: + name: markdown + sha256: "8e332924094383133cee218b676871f42db2514f1f6ac617b6cf6152a7faab8e" + url: "https://pub.flutter-io.cn" + source: hosted + version: "7.1.0" matcher: dependency: transitive description: name: matcher sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.12.13" material_color_utilities: @@ -261,7 +989,7 @@ packages: description: name: material_color_utilities sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.2.0" meta: @@ -269,25 +997,393 @@ packages: description: name: meta sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.8.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.0" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.2" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.0" + package_info_plus: + dependency: "direct main" + description: + name: package_info_plus + sha256: f62d7253edc197fe3c88d7c2ddab82d68f555e778d55390ccc3537eca8e8d637 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.4.3+1" + package_info_plus_linux: + dependency: transitive + description: + name: package_info_plus_linux + sha256: "04b575f44233d30edbb80a94e57cad9107aada334fc02aabb42b6becd13c43fc" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.5" + package_info_plus_macos: + dependency: transitive + description: + name: package_info_plus_macos + sha256: a2ad8b4acf4cd479d4a0afa5a74ea3f5b1c7563b77e52cc32b3ee6956d5482a6 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: f7a0c8f1e7e981bc65f8b64137a53fd3c195b18d429fba960babc59a5a1c7ae8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.2" + package_info_plus_web: + dependency: transitive + description: + name: package_info_plus_web + sha256: f0829327eb534789e0a16ccac8936a80beed4e2401c4d3a74f3f39094a822d3b + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.6" + package_info_plus_windows: + dependency: transitive + description: + name: package_info_plus_windows + sha256: "79524f11c42dd9078b96d797b3cf79c0a2883a50c4920dc43da8562c115089bc" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.0" + pasteboard: + dependency: transitive + description: + name: pasteboard + sha256: "1c8b6a8b3f1d12e55d4e9404433cda1b4abe66db6b17bc2d2fb5965772c04674" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.0" path: dependency: transitive description: name: path sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.8.2" + path_drawing: + dependency: transitive + description: + name: path_drawing + sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.1" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.15" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "2cec049d282c7f13c594b4a73976b0b4f2d7a1838a6dd5aaf7bd9719196bee86" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.27" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "1995d88ec2948dac43edf8fe58eb434d35d22a2940ecee1a9fefcd62beee6eb3" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.3" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.11" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.6" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "1cb68ba4cd3a795033de62ba1b7b4564dace301f952de6bfb3cd91b202b6ee96" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.7" + pedantic: + dependency: transitive + description: + name: pedantic + sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.11.1" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + sha256: "1b6b3e73f0bcbc856548bbdfb1c33084a401c4f143e220629a9055233d76c331" + url: "https://pub.flutter-io.cn" + source: hosted + version: "10.3.0" + permission_handler_android: + dependency: transitive + description: + name: permission_handler_android + sha256: "8f6a95ccbca13766882f95d32684d7c9bfe6c45650c32bedba948ef1c6a4ddf7" + url: "https://pub.flutter-io.cn" + source: hosted + version: "10.2.3" + permission_handler_apple: + dependency: transitive + description: + name: permission_handler_apple + sha256: "08dcb6ce628ac0b257e429944b4c652c2a4e6af725bdf12b498daa2c6b2b1edb" + url: "https://pub.flutter-io.cn" + source: hosted + version: "9.1.0" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + sha256: de20a5c3269229c1ae2e5a6b822f6cb59578b23e8255c93fbeebfc82116e6b11 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.10.0" + permission_handler_windows: + dependency: transitive + description: + name: permission_handler_windows + sha256: f67cab14b4328574938ecea2db3475dad7af7ead6afab6338772c5f88963e38b + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.2" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.1.0" + photo_manager: + dependency: transitive + description: + name: photo_manager + sha256: bdc4ab1fa9fb064d8ccfea6ab44119f55b220293d7ce2e19eb5a5f998db86c88 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.6.0" + platform: + dependency: transitive + description: + name: platform + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.4" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.7.3" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.2.4" + provider: + dependency: transitive + description: + name: provider + sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.0.5" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.4" + pull_to_refresh: + dependency: "direct main" + description: + name: pull_to_refresh + sha256: bbadd5a931837b57739cf08736bea63167e284e71fb23b218c8c9a6e042aad12 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.0" + qiniu_flutter_sdk: + dependency: "direct main" + description: + name: qiniu_flutter_sdk + sha256: ee6edab2fc18ddf11af91fe767d04fd5435af2e693e65f7b00a10c2026f1011a + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.5.0" + qiniu_sdk_base: + dependency: transitive + description: + name: qiniu_sdk_base + sha256: "256eaa6920489d12c534093e61d12232b6252355edc3ef179041bcc0a8746336" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.5.0" + quiver: + dependency: transitive + description: + name: quiver + sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.2.1" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.27.7" + scroll_to_index: + dependency: transitive + description: + name: scroll_to_index + sha256: "5df1597b5bfa1703c02962a7478a187a8c9dedaeb871aedbf7874ee0d58a0bba" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" + scrollable_positioned_list_for_us: + dependency: transitive + description: + name: scrollable_positioned_list_for_us + sha256: b5bcbb35114902c004a4f98f2dbd5b0a5a7f80a0144a8b46297601e38fa5383d + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.2" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "396f85b8afc6865182610c0a2fc470853d56499f75f7499e2a73a9f0539d23d0" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.2" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "6478c6bbbecfe9aced34c483171e90d7c078f5883558b30ec3163cf18402c749" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.4" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.2" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.0" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" + shell: + dependency: transitive + description: + name: shell + sha256: fd3b7b97e5e7f734138543d5815c6cb6cdd2a1645a0def8ac8e05577cddfbe03 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.0" sky_engine: dependency: transitive description: flutter @@ -298,15 +1394,31 @@ packages: description: name: source_span sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.9.1" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: b4d6710e1200e96845747e37338ea8a819a12b51689a3bcf31eff0003b37a0b9 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.8+4" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "8f7603f3f8f126740bc55c4ca2d1027aab4b74a1267a3e31ce51fe40e3b65b8f" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.5+1" stack_trace: dependency: transitive description: name: stack_trace sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.11.0" stream_channel: @@ -314,23 +1426,143 @@ packages: description: name: stream_channel sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.1" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.0" + system_info2: + dependency: transitive + description: + name: system_info2 + sha256: "90621f3ba586e1f268e38cc7951b172cd4d997e43dc1fbed12eb334c8a22a886" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.4" + tencent_cloud_chat_sdk: + dependency: transitive + description: + name: tencent_cloud_chat_sdk + sha256: f98bdb55164051e2b196cac6e2e79e60248ed8351dc5a91d25568712ccb15839 + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.1.7" + tencent_cloud_chat_uikit: + dependency: "direct main" + description: + name: tencent_cloud_chat_uikit + sha256: "74683402fdc2f387aff4ad70b4fcee4030d4debcf3eb5243e175921b37bc2c89" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.0" + tencent_cloud_uikit_core: + dependency: transitive + description: + name: tencent_cloud_uikit_core + sha256: "0131874c7b15e181001c94f8a668f0ccae3006dea6e70d4e42e5531b63313a27" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.4" + tencent_extended_text: + dependency: transitive + description: + name: tencent_extended_text + sha256: cf0d283c01a9e63f75666d8b5b1cabd463e18e51802bf1d093d7a65bd369b3d4 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.2+1" + tencent_extended_text_field: + dependency: transitive + description: + name: tencent_extended_text_field + sha256: daa10f3775bfac1cc841b34275c2746ced7764f3b77222a93edb4c13bad1209b + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.1+2" + tencent_extended_text_library: + dependency: transitive + description: + name: tencent_extended_text_library + sha256: d6dad4e4e426e6319db809267f160082c44a334716e9f8593fac56d65ae75545 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.0" + tencent_im_base: + dependency: transitive + description: + name: tencent_im_base + sha256: "9b8e712bf27ffae9b686ec532ee8417b8263eba8bab04f105e28a95de1807322" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.57" + tencent_im_sdk_plugin_platform_interface: + dependency: transitive + description: + name: tencent_im_sdk_plugin_platform_interface + sha256: "6a1f053567246148ad40667f2ab71d82bcee0d5d0c12e587340d2796c342b87e" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.3.21" + tencent_keyboard_visibility: + dependency: transitive + description: + name: tencent_keyboard_visibility + sha256: f90bc6671bc85d641b5d8dc1ed9e473de8288c477299290da9c535d7b19ff0e8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.1" + tencent_open_file: + dependency: transitive + description: + name: tencent_open_file + sha256: "01f94f618da42e5593bbad0657fcd13cfc1c2360cca805d8cdfefe898cbe5429" + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.0.10" + tencent_super_tooltip: + dependency: transitive + description: + name: tencent_super_tooltip + sha256: "94bce1bd23212741d800ed4436b95437438ec27ba1fbadfc1051542e480f7c6a" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.1" + tencent_wechat_camera_picker: + dependency: transitive + description: + name: tencent_wechat_camera_picker + sha256: "6a6fd12d61ad2ef17273a226a165fe0b5e3ef5c7e49779de38503e4f4b6e3ef1" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.6.5+2" term_glyph: dependency: transitive description: name: term_glyph sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.2.1" test_api: @@ -338,25 +1570,321 @@ packages: description: name: test_api sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "0.4.16" + tim_ui_kit_sticker_plugin: + dependency: transitive + description: + name: tim_ui_kit_sticker_plugin + sha256: "2a825d33076f319f6c1c87d58e2b0d650c9284ae4afd8efdc206f3e6f3582e64" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.1" + transformer_page_view: + dependency: transitive + description: + name: transformer_page_view + sha256: "2210531bc4148831061c575070173f32693415be8bbbf5bd2159a38f2adff61c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.6" + transparent_image: + dependency: transitive + description: + name: transparent_image + sha256: e8991d955a2094e197ca24c645efec2faf4285772a4746126ca12875e54ca02f + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.1" + tuple: + dependency: transitive + description: + name: tuple + sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.2" typed_data: dependency: transitive description: name: typed_data sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "1.3.2" + universal_html: + dependency: transitive + description: + name: universal_html + sha256: f2e0ff0c4af8e4bbda4d273ca4a11be4055414f478fad5c161609b74790ff696 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.2" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3 + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.1.11" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: eed4e6a1164aa9794409325c3b707ff424d4d1c2a785e7db67f8bbda00e36e51 + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.0.35" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2" + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.1.4" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.5" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "91ee3e75ea9dadf38036200c5d3743518f4a5eb77a8d13fda1ee5764373f185e" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.5" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "6c9ca697a5ae218ce56cece69d46128169a58aa8653c1b01d26fcd4aad8c4370" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "6bb1e5d7fe53daf02a8fee85352432a40b1f868a81880e99ec7440113d5cfcab" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.17" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "254708f17f7c20a9c8c471f67d86d76d4a3f9c1591aad1e15292008aceb82771" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.6" + uuid: + dependency: transitive + description: + name: uuid + sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.7" vector_math: dependency: transitive description: name: vector_math sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" + url: "https://pub.flutter-io.cn" source: hosted version: "2.1.4" + video_compress: + dependency: "direct main" + description: + name: video_compress + sha256: "407693726e674a1e1958801deb2d9daf5a5297707ba6d03375007012dae7389a" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.2" + video_player: + dependency: "direct main" + description: + name: video_player + sha256: de95f0e9405f29b5582573d4166132e71f83b3158aac14e8ee5767a54f4f1fbd + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.6.1" + video_player_android: + dependency: transitive + description: + name: video_player_android + sha256: f338a5a396c845f4632959511cad3542cdf3167e1b2a1a948ef07f7123c03608 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.9" + video_player_avfoundation: + dependency: transitive + description: + name: video_player_avfoundation + sha256: "4c274e439f349a0ee5cb3c42978393ede173a443b98f50de6ffe6900eaa19216" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.6" + video_player_platform_interface: + dependency: transitive + description: + name: video_player_platform_interface + sha256: a8c4dcae2a7a6e7cc1d7f9808294d968eca1993af34a98e95b9bdfa959bec684 + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.1.0" + video_player_web: + dependency: transitive + description: + name: video_player_web + sha256: "44ce41424d104dfb7cf6982cc6b84af2b007a24d126406025bf40de5d481c74c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.16" + video_thumbnail: + dependency: "direct main" + description: + name: video_thumbnail + sha256: "3455c189d3f0bb4e3fc2236475aa84fe598b9b2d0e08f43b9761f5bc44210016" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.5.3" + wakelock: + dependency: transitive + description: + name: wakelock + sha256: "769ecf42eb2d07128407b50cb93d7c10bd2ee48f0276ef0119db1d25cc2f87db" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.6.2" + wakelock_macos: + dependency: transitive + description: + name: wakelock_macos + sha256: "047c6be2f88cb6b76d02553bca5a3a3b95323b15d30867eca53a19a0a319d4cd" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.0" + wakelock_platform_interface: + dependency: transitive + description: + name: wakelock_platform_interface + sha256: "1f4aeb81fb592b863da83d2d0f7b8196067451e4df91046c26b54a403f9de621" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.3.0" + wakelock_web: + dependency: transitive + description: + name: wakelock_web + sha256: "1b256b811ee3f0834888efddfe03da8d18d0819317f20f6193e2922b41a501b5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.0" + wakelock_windows: + dependency: transitive + description: + name: wakelock_windows + sha256: "857f77b3fe6ae82dd045455baa626bc4b93cb9bb6c86bf3f27c182167c3a5567" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.2" + webview_flutter: + dependency: "direct main" + description: + name: webview_flutter + sha256: "789d52bd789373cc1e100fb634af2127e86c99cf9abde09499743270c5de8d00" + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.2.2" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: "532135f6f6b8030cd039f30eab23f340d650350e29f38e9b37d2eaad028f1018" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.8.0" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: "656e2aeaef318900fffd21468b6ddc7958c7092a642f0e7220bac328b70d4a81" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.3.1" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: ecc9e9ea15216afc5ba3b1f14aa19414ceba526e57b19cebd970bfa91a0f4058 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.5.0" + wechat_assets_picker: + dependency: transitive + description: + name: wechat_assets_picker + sha256: "49184fbc83f855bade59961566a6323a2015634ece1f889de5af6fa133a10706" + url: "https://pub.flutter-io.cn" + source: hosted + version: "7.3.4" + win32: + dependency: transitive + description: + name: win32 + sha256: a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.4" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.0" + xml: + dependency: transitive + description: + name: xml + sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.2.2" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.2" sdks: dart: ">=2.19.6 <3.0.0" - flutter: ">=3.3.0" + flutter: ">=3.7.0" diff --git a/circle_app/pubspec.yaml b/circle_app/pubspec.yaml index 6aafbe2..8426dc1 100644 --- a/circle_app/pubspec.yaml +++ b/circle_app/pubspec.yaml @@ -88,6 +88,10 @@ dependencies: flutter_install_app: 1.3.0 #网络拦截 connectivity: ^3.0.6 + # 支付宝SDK插件 + alipay_kit: 5.0.0 + # 微信SDK插件 + fluwx: ^3.8.1+1 diff --git a/circle_app/windows/flutter/generated_plugin_registrant.cc b/circle_app/windows/flutter/generated_plugin_registrant.cc index e584d49..ca6a177 100644 --- a/circle_app/windows/flutter/generated_plugin_registrant.cc +++ b/circle_app/windows/flutter/generated_plugin_registrant.cc @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -23,6 +24,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("FcNativeVideoThumbnailForUsPluginCApi")); FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); + GeolocatorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("GeolocatorWindows")); PasteboardPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("PasteboardPlugin")); PermissionHandlerWindowsPluginRegisterWithRegistrar( diff --git a/circle_app/windows/flutter/generated_plugins.cmake b/circle_app/windows/flutter/generated_plugins.cmake index 17d6504..c05e53e 100644 --- a/circle_app/windows/flutter/generated_plugins.cmake +++ b/circle_app/windows/flutter/generated_plugins.cmake @@ -7,6 +7,7 @@ list(APPEND FLUTTER_PLUGIN_LIST desktop_drop fc_native_video_thumbnail_for_us file_selector_windows + geolocator_windows pasteboard permission_handler_windows url_launcher_windows