Commit 43c4402e90e2af3e9ac3cda8fff373a2c3dbe501

Authored by wdn127929
1 parent 6071fa5e

500ms 执行最后一次请求

Showing 100 changed files with 84 additions and 3107 deletions

Too many changes to show.

To preserve performance only 100 of 100+ files are displayed.

  1 +
  2 +
1 def localProperties = new Properties() 3 def localProperties = new Properties()
2 def localPropertiesFile = rootProject.file('local.properties') 4 def localPropertiesFile = rootProject.file('local.properties')
3 if (localPropertiesFile.exists()) { 5 if (localPropertiesFile.exists()) {
@@ -46,8 +48,6 @@ apply plugin: 'com.huawei.agconnect' @@ -46,8 +48,6 @@ apply plugin: 'com.huawei.agconnect'
46 android { 48 android {
47 compileSdkVersion 34 49 compileSdkVersion 34
48 50
49 - // namespace 'com.naji.one_key'  
50 -  
51 compileOptions { 51 compileOptions {
52 sourceCompatibility JavaVersion.VERSION_1_8 52 sourceCompatibility JavaVersion.VERSION_1_8
53 targetCompatibility JavaVersion.VERSION_1_8 53 targetCompatibility JavaVersion.VERSION_1_8
@@ -169,12 +169,13 @@ dependencies { @@ -169,12 +169,13 @@ dependencies {
169 testImplementation 'junit:junit:4.12' 169 testImplementation 'junit:junit:4.12'
170 androidTestImplementation 'androidx.test:runner:1.1.1' 170 androidTestImplementation 'androidx.test:runner:1.1.1'
171 androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' 171 androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
172 - implementation 'com.tencent.tpns:huawei:1.4.4.2-release'// 华为推送  
173 - implementation 'com.tencent.tpns:xiaomi:1.4.4.2-release' // 小米推送  
174 - implementation 'com.tencent.tpns:oppo:1.4.4.2-release' // OPPO 推送  
175 - implementation 'com.tencent.tpns:vivo:1.4.4.2-release' // vivo 推送 172 + implementation 'com.tencent.tpns:huawei:1.2.0.3-release'// 华为推送
  173 + implementation 'com.tencent.tpns:xiaomi:1.2.0.3-release' // 小米推送
  174 + implementation 'com.tencent.tpns:oppo:1.2.0.3-release' // OPPO 推送
  175 + implementation 'com.tencent.tpns:vivo:1.2.0.3-release' // vivo 推送
176 implementation 'com.amap.api:location:4.7.0' 176 implementation 'com.amap.api:location:4.7.0'
177 - // implementation 'com.zhihu.android:matisse:0.5.3-beta3' 177 + implementation 'com.zhihu.android:matisse:0.5.3-beta3'
178 implementation 'com.github.bumptech.glide:glide:4.11.0' 178 implementation 'com.github.bumptech.glide:glide:4.11.0'
179 annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' 179 annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
180 } 180 }
  181 +
  1 +
  2 +
1 buildscript { 3 buildscript {
2 // ext.kotlin_version = '1.3.50' 4 // ext.kotlin_version = '1.3.50'
3 // ext.kotlin_version = '1.9.24' 5 // ext.kotlin_version = '1.9.24'
@@ -9,9 +11,9 @@ ext.kotlin_version = '1.8.22' @@ -9,9 +11,9 @@ ext.kotlin_version = '1.8.22'
9 11
10 // ext.kotlin_version = '1.4.32' 12 // ext.kotlin_version = '1.4.32'
11 repositories { 13 repositories {
  14 + mavenCentral()
12 google() 15 google()
13 jcenter() 16 jcenter()
14 - mavenCentral()  
15 17
16 18
17 maven{ 19 maven{
@@ -41,6 +43,7 @@ maven{ @@ -41,6 +43,7 @@ maven{
41 43
42 allprojects { 44 allprojects {
43 repositories { 45 repositories {
  46 + mavenCentral()
44 google() 47 google()
45 jcenter() 48 jcenter()
46 49
@@ -60,6 +63,9 @@ maven{ @@ -60,6 +63,9 @@ maven{
60 } 63 }
61 64
62 rootProject.buildDir = '../build' 65 rootProject.buildDir = '../build'
  66 +// subprojects{
  67 +// project.abiFilters.android.compileSdkVersion 34
  68 +// }
63 subprojects { 69 subprojects {
64 project.buildDir = "${rootProject.buildDir}/${project.name}" 70 project.buildDir = "${rootProject.buildDir}/${project.name}"
65 } 71 }
@@ -81,3 +87,4 @@ subprojects { @@ -81,3 +87,4 @@ subprojects {
81 tasks.register("clean", Delete) { 87 tasks.register("clean", Delete) {
82 delete rootProject.buildDir 88 delete rootProject.buildDir
83 } 89 }
  90 +
@@ -4,5 +4,4 @@ distributionPath=wrapper/dists @@ -4,5 +4,4 @@ distributionPath=wrapper/dists
4 # distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 # distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
5 distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip 5 distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
6 zipStoreBase=GRADLE_USER_HOME 6 zipStoreBase=GRADLE_USER_HOME
7 -zipStorePath=wrapper/dists  
8 - 7 +zipStorePath=wrapper/dists
@@ -40,8 +40,6 @@ PODS: @@ -40,8 +40,6 @@ PODS:
40 - foundation_fluttify 40 - foundation_fluttify
41 - device_info (0.0.1): 41 - device_info (0.0.1):
42 - Flutter 42 - Flutter
43 - - device_info_plus (0.0.1):  
44 - - Flutter  
45 - device_utils_my (0.0.1): 43 - device_utils_my (0.0.1):
46 - Flutter 44 - Flutter
47 - fijkplayer (0.11.0): 45 - fijkplayer (0.11.0):
@@ -79,7 +77,7 @@ PODS: @@ -79,7 +77,7 @@ PODS:
79 - Flutter 77 - Flutter
80 - flutter_statusbarcolor_ns (0.0.1): 78 - flutter_statusbarcolor_ns (0.0.1):
81 - Flutter 79 - Flutter
82 - - flutter_wxwork (0.0.3): 80 + - flutter_wxwork (0.0.1):
83 - Flutter 81 - Flutter
84 - fluttertoast (0.0.2): 82 - fluttertoast (0.0.2):
85 - Flutter 83 - Flutter
@@ -177,7 +175,6 @@ DEPENDENCIES: @@ -177,7 +175,6 @@ DEPENDENCIES:
177 - contacts_service (from `.symlinks/plugins/contacts_service/ios`) 175 - contacts_service (from `.symlinks/plugins/contacts_service/ios`)
178 - core_location_fluttify (from `.symlinks/plugins/core_location_fluttify/ios`) 176 - core_location_fluttify (from `.symlinks/plugins/core_location_fluttify/ios`)
179 - device_info (from `.symlinks/plugins/device_info/ios`) 177 - device_info (from `.symlinks/plugins/device_info/ios`)
180 - - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)  
181 - device_utils_my (from `.symlinks/plugins/device_utils_my/ios`) 178 - device_utils_my (from `.symlinks/plugins/device_utils_my/ios`)
182 - fijkplayer (from `.symlinks/plugins/fijkplayer/ios`) 179 - fijkplayer (from `.symlinks/plugins/fijkplayer/ios`)
183 - Flutter (from `Flutter`) 180 - Flutter (from `Flutter`)
@@ -257,8 +254,6 @@ EXTERNAL SOURCES: @@ -257,8 +254,6 @@ EXTERNAL SOURCES:
257 :path: ".symlinks/plugins/core_location_fluttify/ios" 254 :path: ".symlinks/plugins/core_location_fluttify/ios"
258 device_info: 255 device_info:
259 :path: ".symlinks/plugins/device_info/ios" 256 :path: ".symlinks/plugins/device_info/ios"
260 - device_info_plus:  
261 - :path: ".symlinks/plugins/device_info_plus/ios"  
262 device_utils_my: 257 device_utils_my:
263 :path: ".symlinks/plugins/device_utils_my/ios" 258 :path: ".symlinks/plugins/device_utils_my/ios"
264 fijkplayer: 259 fijkplayer:
@@ -351,7 +346,6 @@ SPEC CHECKSUMS: @@ -351,7 +346,6 @@ SPEC CHECKSUMS:
351 contacts_service: 7c2ed10147f55891576c6a582f431e385d8de92d 346 contacts_service: 7c2ed10147f55891576c6a582f431e385d8de92d
352 core_location_fluttify: d76555ed03db792a010b362a52a72134a69fe32b 347 core_location_fluttify: d76555ed03db792a010b362a52a72134a69fe32b
353 device_info: 52e8c0c9c61def8d0a92bf175f5f500abbea04bc 348 device_info: 52e8c0c9c61def8d0a92bf175f5f500abbea04bc
354 - device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89  
355 device_utils_my: de33d0a3965bd76cf7e9fb58b7ea71d698686969 349 device_utils_my: de33d0a3965bd76cf7e9fb58b7ea71d698686969
356 fijkplayer: 2dd31ec312ba554bb6a9163cb2f44cdb528e50da 350 fijkplayer: 2dd31ec312ba554bb6a9163cb2f44cdb528e50da
357 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 351 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
@@ -366,7 +360,7 @@ SPEC CHECKSUMS: @@ -366,7 +360,7 @@ SPEC CHECKSUMS:
366 flutter_native_image: c0f200e4bc5da392b15878df38654cc85a78b090 360 flutter_native_image: c0f200e4bc5da392b15878df38654cc85a78b090
367 flutter_sms: bb63bc226f41fad2b7cc9f0b1d0c15f7730a8310 361 flutter_sms: bb63bc226f41fad2b7cc9f0b1d0c15f7730a8310
368 flutter_statusbarcolor_ns: 28ea17050f37c962fe05a4722a6d43afc4fca76b 362 flutter_statusbarcolor_ns: 28ea17050f37c962fe05a4722a6d43afc4fca76b
369 - flutter_wxwork: 39312e535fa4fcbaab349048709df5bcd79aa794 363 + flutter_wxwork: 544263eeacf44361e64b749e4ff62b5f680cbc14
370 fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1 364 fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1
371 fluwx: 6bf9c5a3a99ad31b0de137dd92370a0d10a60f4b 365 fluwx: 6bf9c5a3a99ad31b0de137dd92370a0d10a60f4b
372 foundation_fluttify: f4349a7e72691ddf460062127ef64f3a221868a5 366 foundation_fluttify: f4349a7e72691ddf460062127ef64f3a221868a5
@@ -458,8 +458,8 @@ @@ -458,8 +458,8 @@
458 "$(inherited)", 458 "$(inherited)",
459 "@executable_path/Frameworks", 459 "@executable_path/Frameworks",
460 ); 460 );
461 - MARKETING_VERSION = 5.5.0;  
462 - PRODUCT_BUNDLE_IDENTIFIER = com.naji.readLine; 461 + MARKETING_VERSION = 6.0.0;
  462 + PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
463 PRODUCT_NAME = "$(TARGET_NAME)"; 463 PRODUCT_NAME = "$(TARGET_NAME)";
464 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 464 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
465 SWIFT_VERSION = 5.0; 465 SWIFT_VERSION = 5.0;
@@ -641,8 +641,8 @@ @@ -641,8 +641,8 @@
641 "$(inherited)", 641 "$(inherited)",
642 "@executable_path/Frameworks", 642 "@executable_path/Frameworks",
643 ); 643 );
644 - MARKETING_VERSION = 5.5.0;  
645 - PRODUCT_BUNDLE_IDENTIFIER = com.naji.readLine; 644 + MARKETING_VERSION = 6.0.0;
  645 + PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
646 PRODUCT_NAME = "$(TARGET_NAME)"; 646 PRODUCT_NAME = "$(TARGET_NAME)";
647 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 647 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
648 SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 648 SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -667,8 +667,8 @@ @@ -667,8 +667,8 @@
667 "$(inherited)", 667 "$(inherited)",
668 "@executable_path/Frameworks", 668 "@executable_path/Frameworks",
669 ); 669 );
670 - MARKETING_VERSION = 5.5.0;  
671 - PRODUCT_BUNDLE_IDENTIFIER = com.naji.readLine; 670 + MARKETING_VERSION = 6.0.0;
  671 + PRODUCT_BUNDLE_IDENTIFIER = com.naji.reserveLine;
672 PRODUCT_NAME = "$(TARGET_NAME)"; 672 PRODUCT_NAME = "$(TARGET_NAME)";
673 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 673 SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
674 SWIFT_VERSION = 5.0; 674 SWIFT_VERSION = 5.0;
@@ -30,6 +30,7 @@ import 'package:permission_handler/permission_handler.dart'; @@ -30,6 +30,7 @@ import 'package:permission_handler/permission_handler.dart';
30 import 'package:provider/provider.dart'; 30 import 'package:provider/provider.dart';
31 31
32 import '../../app.dart'; 32 import '../../app.dart';
  33 +import '../../utils/common_utils.dart';
33 34
34 class BaseInfoPage extends StatefulWidget { 35 class BaseInfoPage extends StatefulWidget {
35 final FromPage? fromPage; 36 final FromPage? fromPage;
@@ -755,7 +756,8 @@ class _BaseInfoPageState extends State<BaseInfoPage> { @@ -755,7 +756,8 @@ class _BaseInfoPageState extends State<BaseInfoPage> {
755 } 756 }
756 757
757 //接口 758 //接口
758 - _setCustomerActivityBaseinfo(); 759 + JhCommonUtils.debounce(() => _setCustomerActivityBaseinfo(), 500);
  760 +
759 }, 761 },
760 text: '保存', 762 text: '保存',
761 fontSize: 34, 763 fontSize: 34,
1 -  
2 import 'dart:async'; 1 import 'dart:async';
3 import 'dart:convert'; 2 import 'dart:convert';
4 import 'dart:io'; 3 import 'dart:io';
@@ -30,6 +29,7 @@ import 'package:provider/provider.dart'; @@ -30,6 +29,7 @@ import 'package:provider/provider.dart';
30 29
31 import '../../app.dart'; 30 import '../../app.dart';
32 import '../../pages/online_check/photo_view_wiget.dart'; 31 import '../../pages/online_check/photo_view_wiget.dart';
  32 +import '../../utils/common_utils.dart';
33 33
34 class BaseInfoPageSim extends StatefulWidget { 34 class BaseInfoPageSim extends StatefulWidget {
35 final FromPage? fromPage; 35 final FromPage? fromPage;
@@ -135,7 +135,7 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> { @@ -135,7 +135,7 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> {
135 bool success = 135 bool success =
136 await _baseIndoProvider.getCustomerActivityBaseinfo(context, params); 136 await _baseIndoProvider.getCustomerActivityBaseinfo(context, params);
137 if (success) { 137 if (success) {
138 - _nameController.text = _baseIndoProvider.baseInfoSunModel!.name??""; 138 + _nameController.text = _baseIndoProvider.baseInfoSunModel!.name ?? "";
139 nameStr = _baseIndoProvider.baseInfoSunModel!.name; 139 nameStr = _baseIndoProvider.baseInfoSunModel!.name;
140 _uploadImageProvider.touxiang.qiniuUrl = 140 _uploadImageProvider.touxiang.qiniuUrl =
141 _baseIndoProvider.baseInfoSunModel!.photo; 141 _baseIndoProvider.baseInfoSunModel!.photo;
@@ -144,9 +144,9 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> { @@ -144,9 +144,9 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> {
144 _uploadImageProvider.erweima.qiniuUrl = 144 _uploadImageProvider.erweima.qiniuUrl =
145 _baseIndoProvider.baseInfoSunModel!.qrcode; 145 _baseIndoProvider.baseInfoSunModel!.qrcode;
146 _uploadImageProvider.erweima.process = 1; 146 _uploadImageProvider.erweima.process = 1;
147 - _phoneController.text = _baseIndoProvider.baseInfoSunModel!.phone??""; 147 + _phoneController.text = _baseIndoProvider.baseInfoSunModel!.phone ?? "";
148 phoneStr = _baseIndoProvider.baseInfoSunModel!.phone ?? ''; 148 phoneStr = _baseIndoProvider.baseInfoSunModel!.phone ?? '';
149 - _wechatController.text = _baseIndoProvider.baseInfoSunModel!.wechat??""; 149 + _wechatController.text = _baseIndoProvider.baseInfoSunModel!.wechat ?? "";
150 if (_baseIndoProvider.baseInfoSunModel!.wechat != null && 150 if (_baseIndoProvider.baseInfoSunModel!.wechat != null &&
151 _baseIndoProvider.baseInfoSunModel!.wechat != '' && 151 _baseIndoProvider.baseInfoSunModel!.wechat != '' &&
152 phoneStr != '' && 152 phoneStr != '' &&
@@ -155,7 +155,8 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> { @@ -155,7 +155,8 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> {
155 } else { 155 } else {
156 isSelect = false; 156 isSelect = false;
157 } 157 }
158 - _positionController.text = _baseIndoProvider.baseInfoSunModel!.position??""; 158 + _positionController.text =
  159 + _baseIndoProvider.baseInfoSunModel!.position ?? "";
159 _uploadImageProvider.imgSizeErweima = 64; 160 _uploadImageProvider.imgSizeErweima = 64;
160 // setState(() {}); 161 // setState(() {});
161 _uploadImageProvider.notifyListeners(); 162 _uploadImageProvider.notifyListeners();
@@ -215,7 +216,7 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> { @@ -215,7 +216,7 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> {
215 params['id'] = _baseIndoProvider.baseInfoSunModel!.id; 216 params['id'] = _baseIndoProvider.baseInfoSunModel!.id;
216 } 217 }
217 bool isSuccess = 218 bool isSuccess =
218 - await _baseIndoProvider.setCustomerActivityBaseinfo(context, params) ; 219 + await _baseIndoProvider.setCustomerActivityBaseinfo(context, params);
219 // _baseIndoProvider.baseInfoSunModel = null; 220 // _baseIndoProvider.baseInfoSunModel = null;
220 if (isSuccess) { 221 if (isSuccess) {
221 // imgAll和images 比较,挑出不一样的,删除七牛云 222 // imgAll和images 比较,挑出不一样的,删除七牛云
@@ -734,7 +735,8 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> { @@ -734,7 +735,8 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> {
734 _uploadImageProvider.touxiang.qiniuUrl == 735 _uploadImageProvider.touxiang.qiniuUrl ==
735 'http://nosqn.colorcun.com/yd_person.png') { 736 'http://nosqn.colorcun.com/yd_person.png') {
736 } else { 737 } else {
737 - if (_uploadImageProvider.touxiang.process! < 1 && 738 + if (_uploadImageProvider.touxiang.process! <
  739 + 1 &&
738 _uploadImageProvider.touxiang.process! > 740 _uploadImageProvider.touxiang.process! >
739 0.01 && 741 0.01 &&
740 _uploadImageProvider.touxiang.qiniuUrl != 742 _uploadImageProvider.touxiang.qiniuUrl !=
@@ -757,7 +759,9 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> { @@ -757,7 +759,9 @@ class _BaseInfoPageSimState extends State<BaseInfoPageSim> {
757 } 759 }
758 760
759 //接口 761 //接口
760 - _setCustomerActivityBaseinfo(); 762 +
  763 + JhCommonUtils.debounce(
  764 + () => _setCustomerActivityBaseinfo(), 500);
761 }, 765 },
762 text: '保存', 766 text: '保存',
763 fontSize: 34, 767 fontSize: 34,
@@ -143,7 +143,7 @@ class UploadImageUtil { @@ -143,7 +143,7 @@ class UploadImageUtil {
143 controller: putController, 143 controller: putController,
144 ), 144 ),
145 ) 145 )
146 - ..then((PutResponse response) { 146 + .then((PutResponse response) {
147 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}'); 147 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}');
148 print('------------------------'); 148 print('------------------------');
149 String imgUrl = uploadImageProvider.qiniuInfoSunModel!.domain! + 149 String imgUrl = uploadImageProvider.qiniuInfoSunModel!.domain! +
@@ -312,7 +312,7 @@ class UploadImageUtil { @@ -312,7 +312,7 @@ class UploadImageUtil {
312 print('发生错误: 已在队列中'); 312 print('发生错误: 已在队列中');
313 Utils.showToast('发生错误: 已在队列中'); 313 Utils.showToast('发生错误: 已在队列中');
314 break; 314 break;
315 - case StorageErrorType.NO_AVAILABLE_REGION: 315 + // case StorageErrorType.NO_AVAILABLE_REGION:
316 // TODO: Handle this case. 316 // TODO: Handle this case.
317 } 317 }
318 } else { 318 } else {
@@ -370,7 +370,7 @@ class UploadImageUtil { @@ -370,7 +370,7 @@ class UploadImageUtil {
370 controller: putController, 370 controller: putController,
371 ), 371 ),
372 ) 372 )
373 - ..then((PutResponse response) { 373 + .then((PutResponse response) {
374 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}'); 374 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}');
375 print('------------------------'); 375 print('------------------------');
376 String imgUrl = uploadImageProvider.qiniuInfoSunModel!.domain! + 376 String imgUrl = uploadImageProvider.qiniuInfoSunModel!.domain! +
@@ -433,7 +433,7 @@ class UploadImageUtil { @@ -433,7 +433,7 @@ class UploadImageUtil {
433 print('发生错误: 已在队列中'); 433 print('发生错误: 已在队列中');
434 Utils.showToast('发生错误: 已在队列中'); 434 Utils.showToast('发生错误: 已在队列中');
435 break; 435 break;
436 - case StorageErrorType.NO_AVAILABLE_REGION: 436 + // case StorageErrorType.NO_AVAILABLE_REGION:
437 // TODO: Handle this case. 437 // TODO: Handle this case.
438 } 438 }
439 } else { 439 } else {
@@ -526,7 +526,7 @@ class UploadImageUtil { @@ -526,7 +526,7 @@ class UploadImageUtil {
526 controller: putController, 526 controller: putController,
527 ), 527 ),
528 ) 528 )
529 - ..then((PutResponse response) { 529 + .then((PutResponse response) {
530 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}'); 530 print('${index}上传已完成: 原始响应数据: ${jsonEncode(response.rawData)}');
531 print('------------------------'); 531 print('------------------------');
532 String imgUrl = uploadImageProvider.qiniuInfoSunModel!.domain! + 532 String imgUrl = uploadImageProvider.qiniuInfoSunModel!.domain! +
@@ -709,7 +709,7 @@ class UploadImageUtil { @@ -709,7 +709,7 @@ class UploadImageUtil {
709 print('发生错误: 已在队列中'); 709 print('发生错误: 已在队列中');
710 Utils.showToast('发生错误: 已在队列中'); 710 Utils.showToast('发生错误: 已在队列中');
711 break; 711 break;
712 - case StorageErrorType.NO_AVAILABLE_REGION: 712 + // case StorageErrorType.NO_AVAILABLE_REGION:
713 // TODO: Handle this case. 713 // TODO: Handle this case.
714 } 714 }
715 } else { 715 } else {
@@ -1699,7 +1699,7 @@ static Future<bool> isImageLargerThan64KB(Uint8List? imageBytes) async { @@ -1699,7 +1699,7 @@ static Future<bool> isImageLargerThan64KB(Uint8List? imageBytes) async {
1699 resultnew = await realComporessList(result); //压缩图片 1699 resultnew = await realComporessList(result); //压缩图片
1700 } else { 1700 } else {
1701 resultnew = await compressImage(list); 1701 resultnew = await compressImage(list);
1702 - debugPrint("压缩后图片的大小:${size(result.length)}"); 1702 + debugPrint("压缩后图片的大小:${size(resultnew!.length)}");
1703 } 1703 }
1704 1704
1705 Loading.hideLoading(context); 1705 Loading.hideLoading(context);
@@ -5,50 +5,50 @@ packages: @@ -5,50 +5,50 @@ packages:
5 dependency: transitive 5 dependency: transitive
6 description: 6 description:
7 name: async 7 name: async
8 - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 8 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
9 url: "https://pub.flutter-io.cn" 9 url: "https://pub.flutter-io.cn"
10 source: hosted 10 source: hosted
11 - version: "2.12.0" 11 + version: "2.11.0"
12 boolean_selector: 12 boolean_selector:
13 dependency: transitive 13 dependency: transitive
14 description: 14 description:
15 name: boolean_selector 15 name: boolean_selector
16 - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" 16 + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
17 url: "https://pub.flutter-io.cn" 17 url: "https://pub.flutter-io.cn"
18 source: hosted 18 source: hosted
19 - version: "2.1.2" 19 + version: "2.1.1"
20 characters: 20 characters:
21 dependency: transitive 21 dependency: transitive
22 description: 22 description:
23 name: characters 23 name: characters
24 - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 24 + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
25 url: "https://pub.flutter-io.cn" 25 url: "https://pub.flutter-io.cn"
26 source: hosted 26 source: hosted
27 - version: "1.4.0" 27 + version: "1.3.0"
28 clock: 28 clock:
29 dependency: transitive 29 dependency: transitive
30 description: 30 description:
31 name: clock 31 name: clock
32 - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b 32 + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
33 url: "https://pub.flutter-io.cn" 33 url: "https://pub.flutter-io.cn"
34 source: hosted 34 source: hosted
35 - version: "1.1.2" 35 + version: "1.1.1"
36 collection: 36 collection:
37 dependency: transitive 37 dependency: transitive
38 description: 38 description:
39 name: collection 39 name: collection
40 - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" 40 + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
41 url: "https://pub.flutter-io.cn" 41 url: "https://pub.flutter-io.cn"
42 source: hosted 42 source: hosted
43 - version: "1.19.1" 43 + version: "1.19.0"
44 fake_async: 44 fake_async:
45 dependency: transitive 45 dependency: transitive
46 description: 46 description:
47 name: fake_async 47 name: fake_async
48 - sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" 48 + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
49 url: "https://pub.flutter-io.cn" 49 url: "https://pub.flutter-io.cn"
50 source: hosted 50 source: hosted
51 - version: "1.3.2" 51 + version: "1.3.1"
52 flutter: 52 flutter:
53 dependency: "direct main" 53 dependency: "direct main"
54 description: flutter 54 description: flutter
@@ -71,18 +71,18 @@ packages: @@ -71,18 +71,18 @@ packages:
71 dependency: transitive 71 dependency: transitive
72 description: 72 description:
73 name: leak_tracker 73 name: leak_tracker
74 - sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec 74 + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
75 url: "https://pub.flutter-io.cn" 75 url: "https://pub.flutter-io.cn"
76 source: hosted 76 source: hosted
77 - version: "10.0.8" 77 + version: "10.0.7"
78 leak_tracker_flutter_testing: 78 leak_tracker_flutter_testing:
79 dependency: transitive 79 dependency: transitive
80 description: 80 description:
81 name: leak_tracker_flutter_testing 81 name: leak_tracker_flutter_testing
82 - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 82 + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
83 url: "https://pub.flutter-io.cn" 83 url: "https://pub.flutter-io.cn"
84 source: hosted 84 source: hosted
85 - version: "3.0.9" 85 + version: "3.0.8"
86 leak_tracker_testing: 86 leak_tracker_testing:
87 dependency: transitive 87 dependency: transitive
88 description: 88 description:
@@ -103,10 +103,10 @@ packages: @@ -103,10 +103,10 @@ packages:
103 dependency: transitive 103 dependency: transitive
104 description: 104 description:
105 name: matcher 105 name: matcher
106 - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 106 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
107 url: "https://pub.flutter-io.cn" 107 url: "https://pub.flutter-io.cn"
108 source: hosted 108 source: hosted
109 - version: "0.12.17" 109 + version: "0.12.16+1"
110 material_color_utilities: 110 material_color_utilities:
111 dependency: transitive 111 dependency: transitive
112 description: 112 description:
@@ -119,18 +119,18 @@ packages: @@ -119,18 +119,18 @@ packages:
119 dependency: transitive 119 dependency: transitive
120 description: 120 description:
121 name: meta 121 name: meta
122 - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c 122 + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
123 url: "https://pub.flutter-io.cn" 123 url: "https://pub.flutter-io.cn"
124 source: hosted 124 source: hosted
125 - version: "1.16.0" 125 + version: "1.15.0"
126 path: 126 path:
127 dependency: transitive 127 dependency: transitive
128 description: 128 description:
129 name: path 129 name: path
130 - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" 130 + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
131 url: "https://pub.flutter-io.cn" 131 url: "https://pub.flutter-io.cn"
132 source: hosted 132 source: hosted
133 - version: "1.9.1" 133 + version: "1.9.0"
134 scrollable_positioned_list: 134 scrollable_positioned_list:
135 dependency: "direct main" 135 dependency: "direct main"
136 description: 136 description:
@@ -148,50 +148,50 @@ packages: @@ -148,50 +148,50 @@ packages:
148 dependency: transitive 148 dependency: transitive
149 description: 149 description:
150 name: source_span 150 name: source_span
151 - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" 151 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
152 url: "https://pub.flutter-io.cn" 152 url: "https://pub.flutter-io.cn"
153 source: hosted 153 source: hosted
154 - version: "1.10.1" 154 + version: "1.10.0"
155 stack_trace: 155 stack_trace:
156 dependency: transitive 156 dependency: transitive
157 description: 157 description:
158 name: stack_trace 158 name: stack_trace
159 - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" 159 + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
160 url: "https://pub.flutter-io.cn" 160 url: "https://pub.flutter-io.cn"
161 source: hosted 161 source: hosted
162 - version: "1.12.1" 162 + version: "1.12.0"
163 stream_channel: 163 stream_channel:
164 dependency: transitive 164 dependency: transitive
165 description: 165 description:
166 name: stream_channel 166 name: stream_channel
167 - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" 167 + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
168 url: "https://pub.flutter-io.cn" 168 url: "https://pub.flutter-io.cn"
169 source: hosted 169 source: hosted
170 - version: "2.1.4" 170 + version: "2.1.2"
171 string_scanner: 171 string_scanner:
172 dependency: transitive 172 dependency: transitive
173 description: 173 description:
174 name: string_scanner 174 name: string_scanner
175 - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" 175 + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
176 url: "https://pub.flutter-io.cn" 176 url: "https://pub.flutter-io.cn"
177 source: hosted 177 source: hosted
178 - version: "1.4.1" 178 + version: "1.3.0"
179 term_glyph: 179 term_glyph:
180 dependency: transitive 180 dependency: transitive
181 description: 181 description:
182 name: term_glyph 182 name: term_glyph
183 - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" 183 + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
184 url: "https://pub.flutter-io.cn" 184 url: "https://pub.flutter-io.cn"
185 source: hosted 185 source: hosted
186 - version: "1.2.2" 186 + version: "1.2.1"
187 test_api: 187 test_api:
188 dependency: transitive 188 dependency: transitive
189 description: 189 description:
190 name: test_api 190 name: test_api
191 - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd 191 + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
192 url: "https://pub.flutter-io.cn" 192 url: "https://pub.flutter-io.cn"
193 source: hosted 193 source: hosted
194 - version: "0.7.4" 194 + version: "0.7.3"
195 vector_math: 195 vector_math:
196 dependency: transitive 196 dependency: transitive
197 description: 197 description:
@@ -204,10 +204,10 @@ packages: @@ -204,10 +204,10 @@ packages:
204 dependency: transitive 204 dependency: transitive
205 description: 205 description:
206 name: vm_service 206 name: vm_service
207 - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" 207 + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
208 url: "https://pub.flutter-io.cn" 208 url: "https://pub.flutter-io.cn"
209 source: hosted 209 source: hosted
210 - version: "14.3.1" 210 + version: "14.3.0"
211 sdks: 211 sdks:
212 - dart: ">=3.7.0-0 <4.0.0" 212 + dart: ">=3.4.0 <4.0.0"
213 flutter: ">=3.18.0-18.0.pre.54" 213 flutter: ">=3.18.0-18.0.pre.54"
1 -# example  
2 -  
3 -A new Flutter project.  
4 -  
5 -## Getting Started  
6 -  
7 -This project is a starting point for a Flutter application.  
8 -  
9 -A few resources to get you started if this is your first Flutter project:  
10 -  
11 -- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)  
12 -- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)  
13 -  
14 -For help getting started with Flutter, view our  
15 -[online documentation](https://flutter.dev/docs), which offers tutorials,  
16 -samples, guidance on mobile development, and a full API reference.  
1 -# This file configures the analyzer, which statically analyzes Dart code to  
2 -# check for errors, warnings, and lints.  
3 -#  
4 -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled  
5 -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be  
6 -# invoked from the command line by running `flutter analyze`.  
7 -  
8 -# The following line activates a set of recommended lints for Flutter apps,  
9 -# packages, and plugins designed to encourage good coding practices.  
10 -include: package:flutter_lints/flutter.yaml  
11 -  
12 -linter:  
13 - # The lint rules applied to this project can be customized in the  
14 - # section below to disable rules from the `package:flutter_lints/flutter.yaml`  
15 - # included above or to enable additional rules. A list of all available lints  
16 - # and their documentation is published at  
17 - # https://dart-lang.github.io/linter/lints/index.html.  
18 - #  
19 - # Instead of disabling a lint rule for the entire project in the  
20 - # section below, it can also be suppressed for a single line of code  
21 - # or a specific dart file by using the `// ignore: name_of_lint` and  
22 - # `// ignore_for_file: name_of_lint` syntax on the line or in the file  
23 - # producing the lint.  
24 - rules:  
25 - # avoid_print: false # Uncomment to disable the `avoid_print` rule  
26 - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule  
27 -  
28 -# Additional information about this file can be found at  
29 -# https://dart.dev/guides/language/analysis-options  
1 -def localProperties = new Properties()  
2 -def localPropertiesFile = rootProject.file('local.properties')  
3 -if (localPropertiesFile.exists()) {  
4 - localPropertiesFile.withReader('UTF-8') { reader ->  
5 - localProperties.load(reader)  
6 - }  
7 -}  
8 -  
9 -def flutterRoot = localProperties.getProperty('flutter.sdk')  
10 -if (flutterRoot == null) {  
11 - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")  
12 -}  
13 -  
14 -def flutterVersionCode = localProperties.getProperty('flutter.versionCode')  
15 -if (flutterVersionCode == null) {  
16 - flutterVersionCode = '1'  
17 -}  
18 -  
19 -def flutterVersionName = localProperties.getProperty('flutter.versionName')  
20 -if (flutterVersionName == null) {  
21 - flutterVersionName = '1.0'  
22 -}  
23 -  
24 -apply plugin: 'com.android.application'  
25 -apply plugin: 'kotlin-android'  
26 -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"  
27 -  
28 -android {  
29 - compileSdkVersion flutter.compileSdkVersion  
30 -  
31 - compileOptions {  
32 - sourceCompatibility JavaVersion.VERSION_1_8  
33 - targetCompatibility JavaVersion.VERSION_1_8  
34 - }  
35 -  
36 - kotlinOptions {  
37 - jvmTarget = '1.8'  
38 - }  
39 -  
40 - sourceSets {  
41 - main.java.srcDirs += 'src/main/kotlin'  
42 - }  
43 -  
44 - defaultConfig {  
45 - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).  
46 - applicationId "com.example.example"  
47 - minSdkVersion flutter.minSdkVersion  
48 - targetSdkVersion flutter.targetSdkVersion  
49 - versionCode flutterVersionCode.toInteger()  
50 - versionName flutterVersionName  
51 - }  
52 -  
53 - buildTypes {  
54 - release {  
55 - // TODO: Add your own signing config for the release build.  
56 - // Signing with the debug keys for now, so `flutter run --release` works.  
57 - signingConfig signingConfigs.debug  
58 - }  
59 - }  
60 -}  
61 -  
62 -flutter {  
63 - source '../..'  
64 -}  
65 -  
66 -dependencies {  
67 - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"  
68 -}  
1 -<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
2 - package="com.example.example">  
3 - <!-- Flutter needs it to communicate with the running application  
4 - to allow setting breakpoints, to provide hot reload, etc.  
5 - -->  
6 - <uses-permission android:name="android.permission.INTERNET"/>  
7 -</manifest>  
1 -<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
2 - package="com.example.example">  
3 - <application  
4 - android:label="example"  
5 - android:name="${applicationName}"  
6 - android:icon="@mipmap/ic_launcher">  
7 - <activity  
8 - android:name=".MainActivity"  
9 - android:exported="true"  
10 - android:launchMode="singleTop"  
11 - android:theme="@style/LaunchTheme"  
12 - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"  
13 - android:hardwareAccelerated="true"  
14 - android:windowSoftInputMode="adjustResize">  
15 - <!-- Specifies an Android theme to apply to this Activity as soon as  
16 - the Android process has started. This theme is visible to the user  
17 - while the Flutter UI initializes. After that, this theme continues  
18 - to determine the Window background behind the Flutter UI. -->  
19 - <meta-data  
20 - android:name="io.flutter.embedding.android.NormalTheme"  
21 - android:resource="@style/NormalTheme"  
22 - />  
23 - <intent-filter>  
24 - <action android:name="android.intent.action.MAIN"/>  
25 - <category android:name="android.intent.category.LAUNCHER"/>  
26 - </intent-filter>  
27 - </activity>  
28 - <!-- Don't delete the meta-data below.  
29 - This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->  
30 - <meta-data  
31 - android:name="flutterEmbedding"  
32 - android:value="2" />  
33 - </application>  
34 -</manifest>  
1 -package io.flutter.plugins;  
2 -  
3 -import androidx.annotation.Keep;  
4 -import androidx.annotation.NonNull;  
5 -import io.flutter.Log;  
6 -  
7 -import io.flutter.embedding.engine.FlutterEngine;  
8 -  
9 -/**  
10 - * Generated file. Do not edit.  
11 - * This file is generated by the Flutter tool based on the  
12 - * plugins that support the Android platform.  
13 - */  
14 -@Keep  
15 -public final class GeneratedPluginRegistrant {  
16 - private static final String TAG = "GeneratedPluginRegistrant";  
17 - public static void registerWith(@NonNull FlutterEngine flutterEngine) {  
18 - }  
19 -}  
1 -package com.example.example  
2 -  
3 -import io.flutter.embedding.android.FlutterActivity  
4 -  
5 -class MainActivity: FlutterActivity() {  
6 -}  
1 -<?xml version="1.0" encoding="utf-8"?>  
2 -<!-- Modify this file to customize your launch splash screen -->  
3 -<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
4 - <item android:drawable="?android:colorBackground" />  
5 -  
6 - <!-- You can insert your own image assets here -->  
7 - <!-- <item>  
8 - <bitmap  
9 - android:gravity="center"  
10 - android:src="@mipmap/launch_image" />  
11 - </item> -->  
12 -</layer-list>  
1 -<?xml version="1.0" encoding="utf-8"?>  
2 -<!-- Modify this file to customize your launch splash screen -->  
3 -<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
4 - <item android:drawable="@android:color/white" />  
5 -  
6 - <!-- You can insert your own image assets here -->  
7 - <!-- <item>  
8 - <bitmap  
9 - android:gravity="center"  
10 - android:src="@mipmap/launch_image" />  
11 - </item> -->  
12 -</layer-list>  
1 -<?xml version="1.0" encoding="utf-8"?>  
2 -<resources>  
3 - <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->  
4 - <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">  
5 - <!-- Show a splash screen on the activity. Automatically removed when  
6 - Flutter draws its first frame -->  
7 - <item name="android:windowBackground">@drawable/launch_background</item>  
8 - </style>  
9 - <!-- Theme applied to the Android Window as soon as the process has started.  
10 - This theme determines the color of the Android Window while your  
11 - Flutter UI initializes, as well as behind your Flutter UI while its  
12 - running.  
13 -  
14 - This Theme is only used starting with V2 of Flutter's Android embedding. -->  
15 - <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">  
16 - <item name="android:windowBackground">?android:colorBackground</item>  
17 - </style>  
18 -</resources>  
1 -<?xml version="1.0" encoding="utf-8"?>  
2 -<resources>  
3 - <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->  
4 - <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">  
5 - <!-- Show a splash screen on the activity. Automatically removed when  
6 - Flutter draws its first frame -->  
7 - <item name="android:windowBackground">@drawable/launch_background</item>  
8 - </style>  
9 - <!-- Theme applied to the Android Window as soon as the process has started.  
10 - This theme determines the color of the Android Window while your  
11 - Flutter UI initializes, as well as behind your Flutter UI while its  
12 - running.  
13 -  
14 - This Theme is only used starting with V2 of Flutter's Android embedding. -->  
15 - <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">  
16 - <item name="android:windowBackground">?android:colorBackground</item>  
17 - </style>  
18 -</resources>  
1 -<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
2 - package="com.example.example">  
3 - <!-- Flutter needs it to communicate with the running application  
4 - to allow setting breakpoints, to provide hot reload, etc.  
5 - -->  
6 - <uses-permission android:name="android.permission.INTERNET"/>  
7 -</manifest>  
1 -buildscript {  
2 - ext.kotlin_version = '1.6.10'  
3 - repositories {  
4 - google()  
5 - mavenCentral()  
6 - }  
7 -  
8 - dependencies {  
9 - classpath 'com.android.tools.build:gradle:4.1.0'  
10 - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"  
11 - }  
12 -}  
13 -  
14 -allprojects {  
15 - repositories {  
16 - google()  
17 - mavenCentral()  
18 - }  
19 -}  
20 -  
21 -rootProject.buildDir = '../build'  
22 -subprojects {  
23 - project.buildDir = "${rootProject.buildDir}/${project.name}"  
24 -}  
25 -subprojects {  
26 - project.evaluationDependsOn(':app')  
27 -}  
28 -  
29 -task clean(type: Delete) {  
30 - delete rootProject.buildDir  
31 -}  
1 -org.gradle.jvmargs=-Xmx1536M  
2 -android.useAndroidX=true  
3 -android.enableJetifier=true  
1 -#Fri Jun 23 08:50:38 CEST 2017  
2 -distributionBase=GRADLE_USER_HOME  
3 -distributionPath=wrapper/dists  
4 -zipStoreBase=GRADLE_USER_HOME  
5 -zipStorePath=wrapper/dists  
6 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip  
1 -sdk.dir=/Users/naji2021/Library/Android/sdk  
2 -flutter.sdk=/Users/naji2021/Documents/flutter  
1 -include ':app'  
2 -  
3 -def localPropertiesFile = new File(rootProject.projectDir, "local.properties")  
4 -def properties = new Properties()  
5 -  
6 -assert localPropertiesFile.exists()  
7 -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }  
8 -  
9 -def flutterSdkPath = properties.getProperty("flutter.sdk")  
10 -assert flutterSdkPath != null, "flutter.sdk not set in local.properties"  
11 -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
3 -<plist version="1.0">  
4 -<dict>  
5 - <key>CFBundleDevelopmentRegion</key>  
6 - <string>en</string>  
7 - <key>CFBundleExecutable</key>  
8 - <string>App</string>  
9 - <key>CFBundleIdentifier</key>  
10 - <string>io.flutter.flutter.app</string>  
11 - <key>CFBundleInfoDictionaryVersion</key>  
12 - <string>6.0</string>  
13 - <key>CFBundleName</key>  
14 - <string>App</string>  
15 - <key>CFBundlePackageType</key>  
16 - <string>FMWK</string>  
17 - <key>CFBundleShortVersionString</key>  
18 - <string>1.0</string>  
19 - <key>CFBundleSignature</key>  
20 - <string>????</string>  
21 - <key>CFBundleVersion</key>  
22 - <string>1.0</string>  
23 - <key>MinimumOSVersion</key>  
24 - <string>11.0</string>  
25 -</dict>  
26 -</plist>  
1 -// This is a generated file; do not edit or check into version control.  
2 -FLUTTER_ROOT=/Users/naji2021/Documents/flutter  
3 -FLUTTER_APPLICATION_PATH=/Users/naji2021/Desktop/Flutter-ReserveApp/library/calendar_date_picker2-1.1.5/example  
4 -COCOAPODS_PARALLEL_CODE_SIGN=true  
5 -FLUTTER_TARGET=lib/main.dart  
6 -FLUTTER_BUILD_DIR=build  
7 -FLUTTER_BUILD_NAME=1.0.0  
8 -FLUTTER_BUILD_NUMBER=1  
9 -EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386  
10 -EXCLUDED_ARCHS[sdk=iphoneos*]=armv7  
11 -DART_OBFUSCATION=false  
12 -TRACK_WIDGET_CREATION=true  
13 -TREE_SHAKE_ICONS=false  
14 -PACKAGE_CONFIG=.dart_tool/package_config.json  
1 -#!/bin/sh  
2 -# This is a generated file; do not edit or check into version control.  
3 -export "FLUTTER_ROOT=/Users/naji2021/Documents/flutter"  
4 -export "FLUTTER_APPLICATION_PATH=/Users/naji2021/Desktop/Flutter-ReserveApp/library/calendar_date_picker2-1.1.5/example"  
5 -export "COCOAPODS_PARALLEL_CODE_SIGN=true"  
6 -export "FLUTTER_TARGET=lib/main.dart"  
7 -export "FLUTTER_BUILD_DIR=build"  
8 -export "FLUTTER_BUILD_NAME=1.0.0"  
9 -export "FLUTTER_BUILD_NUMBER=1"  
10 -export "DART_OBFUSCATION=false"  
11 -export "TRACK_WIDGET_CREATION=true"  
12 -export "TREE_SHAKE_ICONS=false"  
13 -export "PACKAGE_CONFIG=.dart_tool/package_config.json"  
1 -// !$*UTF8*$!  
2 -{  
3 - archiveVersion = 1;  
4 - classes = {  
5 - };  
6 - objectVersion = 54;  
7 - objects = {  
8 -  
9 -/* Begin PBXBuildFile section */  
10 - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };  
11 - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };  
12 - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };  
13 - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };  
14 - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };  
15 - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };  
16 -/* End PBXBuildFile section */  
17 -  
18 -/* Begin PBXCopyFilesBuildPhase section */  
19 - 9705A1C41CF9048500538489 /* Embed Frameworks */ = {  
20 - isa = PBXCopyFilesBuildPhase;  
21 - buildActionMask = 2147483647;  
22 - dstPath = "";  
23 - dstSubfolderSpec = 10;  
24 - files = (  
25 - );  
26 - name = "Embed Frameworks";  
27 - runOnlyForDeploymentPostprocessing = 0;  
28 - };  
29 -/* End PBXCopyFilesBuildPhase section */  
30 -  
31 -/* Begin PBXFileReference section */  
32 - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };  
33 - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };  
34 - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };  
35 - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };  
36 - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };  
37 - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };  
38 - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };  
39 - 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };  
40 - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };  
41 - 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };  
42 - 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };  
43 - 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };  
44 - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };  
45 -/* End PBXFileReference section */  
46 -  
47 -/* Begin PBXFrameworksBuildPhase section */  
48 - 97C146EB1CF9000F007C117D /* Frameworks */ = {  
49 - isa = PBXFrameworksBuildPhase;  
50 - buildActionMask = 2147483647;  
51 - files = (  
52 - );  
53 - runOnlyForDeploymentPostprocessing = 0;  
54 - };  
55 -/* End PBXFrameworksBuildPhase section */  
56 -  
57 -/* Begin PBXGroup section */  
58 - 9740EEB11CF90186004384FC /* Flutter */ = {  
59 - isa = PBXGroup;  
60 - children = (  
61 - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,  
62 - 9740EEB21CF90195004384FC /* Debug.xcconfig */,  
63 - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,  
64 - 9740EEB31CF90195004384FC /* Generated.xcconfig */,  
65 - );  
66 - name = Flutter;  
67 - sourceTree = "<group>";  
68 - };  
69 - 97C146E51CF9000F007C117D = {  
70 - isa = PBXGroup;  
71 - children = (  
72 - 9740EEB11CF90186004384FC /* Flutter */,  
73 - 97C146F01CF9000F007C117D /* Runner */,  
74 - 97C146EF1CF9000F007C117D /* Products */,  
75 - );  
76 - sourceTree = "<group>";  
77 - };  
78 - 97C146EF1CF9000F007C117D /* Products */ = {  
79 - isa = PBXGroup;  
80 - children = (  
81 - 97C146EE1CF9000F007C117D /* Runner.app */,  
82 - );  
83 - name = Products;  
84 - sourceTree = "<group>";  
85 - };  
86 - 97C146F01CF9000F007C117D /* Runner */ = {  
87 - isa = PBXGroup;  
88 - children = (  
89 - 97C146FA1CF9000F007C117D /* Main.storyboard */,  
90 - 97C146FD1CF9000F007C117D /* Assets.xcassets */,  
91 - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,  
92 - 97C147021CF9000F007C117D /* Info.plist */,  
93 - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,  
94 - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,  
95 - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,  
96 - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,  
97 - );  
98 - path = Runner;  
99 - sourceTree = "<group>";  
100 - };  
101 -/* End PBXGroup section */  
102 -  
103 -/* Begin PBXNativeTarget section */  
104 - 97C146ED1CF9000F007C117D /* Runner */ = {  
105 - isa = PBXNativeTarget;  
106 - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;  
107 - buildPhases = (  
108 - 9740EEB61CF901F6004384FC /* Run Script */,  
109 - 97C146EA1CF9000F007C117D /* Sources */,  
110 - 97C146EB1CF9000F007C117D /* Frameworks */,  
111 - 97C146EC1CF9000F007C117D /* Resources */,  
112 - 9705A1C41CF9048500538489 /* Embed Frameworks */,  
113 - 3B06AD1E1E4923F5004D2608 /* Thin Binary */,  
114 - );  
115 - buildRules = (  
116 - );  
117 - dependencies = (  
118 - );  
119 - name = Runner;  
120 - productName = Runner;  
121 - productReference = 97C146EE1CF9000F007C117D /* Runner.app */;  
122 - productType = "com.apple.product-type.application";  
123 - };  
124 -/* End PBXNativeTarget section */  
125 -  
126 -/* Begin PBXProject section */  
127 - 97C146E61CF9000F007C117D /* Project object */ = {  
128 - isa = PBXProject;  
129 - attributes = {  
130 - LastUpgradeCheck = 1430;  
131 - ORGANIZATIONNAME = "";  
132 - TargetAttributes = {  
133 - 97C146ED1CF9000F007C117D = {  
134 - CreatedOnToolsVersion = 7.3.1;  
135 - LastSwiftMigration = 1100;  
136 - };  
137 - };  
138 - };  
139 - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;  
140 - compatibilityVersion = "Xcode 9.3";  
141 - developmentRegion = en;  
142 - hasScannedForEncodings = 0;  
143 - knownRegions = (  
144 - en,  
145 - Base,  
146 - );  
147 - mainGroup = 97C146E51CF9000F007C117D;  
148 - productRefGroup = 97C146EF1CF9000F007C117D /* Products */;  
149 - projectDirPath = "";  
150 - projectRoot = "";  
151 - targets = (  
152 - 97C146ED1CF9000F007C117D /* Runner */,  
153 - );  
154 - };  
155 -/* End PBXProject section */  
156 -  
157 -/* Begin PBXResourcesBuildPhase section */  
158 - 97C146EC1CF9000F007C117D /* Resources */ = {  
159 - isa = PBXResourcesBuildPhase;  
160 - buildActionMask = 2147483647;  
161 - files = (  
162 - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,  
163 - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,  
164 - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,  
165 - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,  
166 - );  
167 - runOnlyForDeploymentPostprocessing = 0;  
168 - };  
169 -/* End PBXResourcesBuildPhase section */  
170 -  
171 -/* Begin PBXShellScriptBuildPhase section */  
172 - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {  
173 - isa = PBXShellScriptBuildPhase;  
174 - alwaysOutOfDate = 1;  
175 - buildActionMask = 2147483647;  
176 - files = (  
177 - );  
178 - inputPaths = (  
179 - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",  
180 - );  
181 - name = "Thin Binary";  
182 - outputPaths = (  
183 - );  
184 - runOnlyForDeploymentPostprocessing = 0;  
185 - shellPath = /bin/sh;  
186 - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";  
187 - };  
188 - 9740EEB61CF901F6004384FC /* Run Script */ = {  
189 - isa = PBXShellScriptBuildPhase;  
190 - alwaysOutOfDate = 1;  
191 - buildActionMask = 2147483647;  
192 - files = (  
193 - );  
194 - inputPaths = (  
195 - );  
196 - name = "Run Script";  
197 - outputPaths = (  
198 - );  
199 - runOnlyForDeploymentPostprocessing = 0;  
200 - shellPath = /bin/sh;  
201 - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";  
202 - };  
203 -/* End PBXShellScriptBuildPhase section */  
204 -  
205 -/* Begin PBXSourcesBuildPhase section */  
206 - 97C146EA1CF9000F007C117D /* Sources */ = {  
207 - isa = PBXSourcesBuildPhase;  
208 - buildActionMask = 2147483647;  
209 - files = (  
210 - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,  
211 - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,  
212 - );  
213 - runOnlyForDeploymentPostprocessing = 0;  
214 - };  
215 -/* End PBXSourcesBuildPhase section */  
216 -  
217 -/* Begin PBXVariantGroup section */  
218 - 97C146FA1CF9000F007C117D /* Main.storyboard */ = {  
219 - isa = PBXVariantGroup;  
220 - children = (  
221 - 97C146FB1CF9000F007C117D /* Base */,  
222 - );  
223 - name = Main.storyboard;  
224 - sourceTree = "<group>";  
225 - };  
226 - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {  
227 - isa = PBXVariantGroup;  
228 - children = (  
229 - 97C147001CF9000F007C117D /* Base */,  
230 - );  
231 - name = LaunchScreen.storyboard;  
232 - sourceTree = "<group>";  
233 - };  
234 -/* End PBXVariantGroup section */  
235 -  
236 -/* Begin XCBuildConfiguration section */  
237 - 249021D3217E4FDB00AE95B9 /* Profile */ = {  
238 - isa = XCBuildConfiguration;  
239 - buildSettings = {  
240 - ALWAYS_SEARCH_USER_PATHS = NO;  
241 - CLANG_ANALYZER_NONNULL = YES;  
242 - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";  
243 - CLANG_CXX_LIBRARY = "libc++";  
244 - CLANG_ENABLE_MODULES = YES;  
245 - CLANG_ENABLE_OBJC_ARC = YES;  
246 - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;  
247 - CLANG_WARN_BOOL_CONVERSION = YES;  
248 - CLANG_WARN_COMMA = YES;  
249 - CLANG_WARN_CONSTANT_CONVERSION = YES;  
250 - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;  
251 - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;  
252 - CLANG_WARN_EMPTY_BODY = YES;  
253 - CLANG_WARN_ENUM_CONVERSION = YES;  
254 - CLANG_WARN_INFINITE_RECURSION = YES;  
255 - CLANG_WARN_INT_CONVERSION = YES;  
256 - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;  
257 - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;  
258 - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;  
259 - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;  
260 - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;  
261 - CLANG_WARN_STRICT_PROTOTYPES = YES;  
262 - CLANG_WARN_SUSPICIOUS_MOVE = YES;  
263 - CLANG_WARN_UNREACHABLE_CODE = YES;  
264 - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  
265 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";  
266 - COPY_PHASE_STRIP = NO;  
267 - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";  
268 - ENABLE_NS_ASSERTIONS = NO;  
269 - ENABLE_STRICT_OBJC_MSGSEND = YES;  
270 - GCC_C_LANGUAGE_STANDARD = gnu99;  
271 - GCC_NO_COMMON_BLOCKS = YES;  
272 - GCC_WARN_64_TO_32_BIT_CONVERSION = YES;  
273 - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;  
274 - GCC_WARN_UNDECLARED_SELECTOR = YES;  
275 - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;  
276 - GCC_WARN_UNUSED_FUNCTION = YES;  
277 - GCC_WARN_UNUSED_VARIABLE = YES;  
278 - IPHONEOS_DEPLOYMENT_TARGET = 11.0;  
279 - MTL_ENABLE_DEBUG_INFO = NO;  
280 - SDKROOT = iphoneos;  
281 - SUPPORTED_PLATFORMS = iphoneos;  
282 - TARGETED_DEVICE_FAMILY = "1,2";  
283 - VALIDATE_PRODUCT = YES;  
284 - };  
285 - name = Profile;  
286 - };  
287 - 249021D4217E4FDB00AE95B9 /* Profile */ = {  
288 - isa = XCBuildConfiguration;  
289 - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;  
290 - buildSettings = {  
291 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;  
292 - CLANG_ENABLE_MODULES = YES;  
293 - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";  
294 - DEVELOPMENT_TEAM = QRBFK98XY9;  
295 - ENABLE_BITCODE = NO;  
296 - INFOPLIST_FILE = Runner/Info.plist;  
297 - LD_RUNPATH_SEARCH_PATHS = (  
298 - "$(inherited)",  
299 - "@executable_path/Frameworks",  
300 - );  
301 - PRODUCT_BUNDLE_IDENTIFIER = com.example.example;  
302 - PRODUCT_NAME = "$(TARGET_NAME)";  
303 - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";  
304 - SWIFT_VERSION = 5.0;  
305 - VERSIONING_SYSTEM = "apple-generic";  
306 - };  
307 - name = Profile;  
308 - };  
309 - 97C147031CF9000F007C117D /* Debug */ = {  
310 - isa = XCBuildConfiguration;  
311 - buildSettings = {  
312 - ALWAYS_SEARCH_USER_PATHS = NO;  
313 - CLANG_ANALYZER_NONNULL = YES;  
314 - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";  
315 - CLANG_CXX_LIBRARY = "libc++";  
316 - CLANG_ENABLE_MODULES = YES;  
317 - CLANG_ENABLE_OBJC_ARC = YES;  
318 - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;  
319 - CLANG_WARN_BOOL_CONVERSION = YES;  
320 - CLANG_WARN_COMMA = YES;  
321 - CLANG_WARN_CONSTANT_CONVERSION = YES;  
322 - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;  
323 - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;  
324 - CLANG_WARN_EMPTY_BODY = YES;  
325 - CLANG_WARN_ENUM_CONVERSION = YES;  
326 - CLANG_WARN_INFINITE_RECURSION = YES;  
327 - CLANG_WARN_INT_CONVERSION = YES;  
328 - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;  
329 - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;  
330 - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;  
331 - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;  
332 - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;  
333 - CLANG_WARN_STRICT_PROTOTYPES = YES;  
334 - CLANG_WARN_SUSPICIOUS_MOVE = YES;  
335 - CLANG_WARN_UNREACHABLE_CODE = YES;  
336 - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  
337 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";  
338 - COPY_PHASE_STRIP = NO;  
339 - DEBUG_INFORMATION_FORMAT = dwarf;  
340 - ENABLE_STRICT_OBJC_MSGSEND = YES;  
341 - ENABLE_TESTABILITY = YES;  
342 - GCC_C_LANGUAGE_STANDARD = gnu99;  
343 - GCC_DYNAMIC_NO_PIC = NO;  
344 - GCC_NO_COMMON_BLOCKS = YES;  
345 - GCC_OPTIMIZATION_LEVEL = 0;  
346 - GCC_PREPROCESSOR_DEFINITIONS = (  
347 - "DEBUG=1",  
348 - "$(inherited)",  
349 - );  
350 - GCC_WARN_64_TO_32_BIT_CONVERSION = YES;  
351 - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;  
352 - GCC_WARN_UNDECLARED_SELECTOR = YES;  
353 - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;  
354 - GCC_WARN_UNUSED_FUNCTION = YES;  
355 - GCC_WARN_UNUSED_VARIABLE = YES;  
356 - IPHONEOS_DEPLOYMENT_TARGET = 11.0;  
357 - MTL_ENABLE_DEBUG_INFO = YES;  
358 - ONLY_ACTIVE_ARCH = YES;  
359 - SDKROOT = iphoneos;  
360 - TARGETED_DEVICE_FAMILY = "1,2";  
361 - };  
362 - name = Debug;  
363 - };  
364 - 97C147041CF9000F007C117D /* Release */ = {  
365 - isa = XCBuildConfiguration;  
366 - buildSettings = {  
367 - ALWAYS_SEARCH_USER_PATHS = NO;  
368 - CLANG_ANALYZER_NONNULL = YES;  
369 - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";  
370 - CLANG_CXX_LIBRARY = "libc++";  
371 - CLANG_ENABLE_MODULES = YES;  
372 - CLANG_ENABLE_OBJC_ARC = YES;  
373 - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;  
374 - CLANG_WARN_BOOL_CONVERSION = YES;  
375 - CLANG_WARN_COMMA = YES;  
376 - CLANG_WARN_CONSTANT_CONVERSION = YES;  
377 - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;  
378 - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;  
379 - CLANG_WARN_EMPTY_BODY = YES;  
380 - CLANG_WARN_ENUM_CONVERSION = YES;  
381 - CLANG_WARN_INFINITE_RECURSION = YES;  
382 - CLANG_WARN_INT_CONVERSION = YES;  
383 - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;  
384 - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;  
385 - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;  
386 - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;  
387 - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;  
388 - CLANG_WARN_STRICT_PROTOTYPES = YES;  
389 - CLANG_WARN_SUSPICIOUS_MOVE = YES;  
390 - CLANG_WARN_UNREACHABLE_CODE = YES;  
391 - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;  
392 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";  
393 - COPY_PHASE_STRIP = NO;  
394 - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";  
395 - ENABLE_NS_ASSERTIONS = NO;  
396 - ENABLE_STRICT_OBJC_MSGSEND = YES;  
397 - GCC_C_LANGUAGE_STANDARD = gnu99;  
398 - GCC_NO_COMMON_BLOCKS = YES;  
399 - GCC_WARN_64_TO_32_BIT_CONVERSION = YES;  
400 - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;  
401 - GCC_WARN_UNDECLARED_SELECTOR = YES;  
402 - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;  
403 - GCC_WARN_UNUSED_FUNCTION = YES;  
404 - GCC_WARN_UNUSED_VARIABLE = YES;  
405 - IPHONEOS_DEPLOYMENT_TARGET = 11.0;  
406 - MTL_ENABLE_DEBUG_INFO = NO;  
407 - SDKROOT = iphoneos;  
408 - SUPPORTED_PLATFORMS = iphoneos;  
409 - SWIFT_COMPILATION_MODE = wholemodule;  
410 - SWIFT_OPTIMIZATION_LEVEL = "-O";  
411 - TARGETED_DEVICE_FAMILY = "1,2";  
412 - VALIDATE_PRODUCT = YES;  
413 - };  
414 - name = Release;  
415 - };  
416 - 97C147061CF9000F007C117D /* Debug */ = {  
417 - isa = XCBuildConfiguration;  
418 - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;  
419 - buildSettings = {  
420 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;  
421 - CLANG_ENABLE_MODULES = YES;  
422 - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";  
423 - DEVELOPMENT_TEAM = QRBFK98XY9;  
424 - ENABLE_BITCODE = NO;  
425 - INFOPLIST_FILE = Runner/Info.plist;  
426 - LD_RUNPATH_SEARCH_PATHS = (  
427 - "$(inherited)",  
428 - "@executable_path/Frameworks",  
429 - );  
430 - PRODUCT_BUNDLE_IDENTIFIER = com.example.example;  
431 - PRODUCT_NAME = "$(TARGET_NAME)";  
432 - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";  
433 - SWIFT_OPTIMIZATION_LEVEL = "-Onone";  
434 - SWIFT_VERSION = 5.0;  
435 - VERSIONING_SYSTEM = "apple-generic";  
436 - };  
437 - name = Debug;  
438 - };  
439 - 97C147071CF9000F007C117D /* Release */ = {  
440 - isa = XCBuildConfiguration;  
441 - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;  
442 - buildSettings = {  
443 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;  
444 - CLANG_ENABLE_MODULES = YES;  
445 - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";  
446 - DEVELOPMENT_TEAM = QRBFK98XY9;  
447 - ENABLE_BITCODE = NO;  
448 - INFOPLIST_FILE = Runner/Info.plist;  
449 - LD_RUNPATH_SEARCH_PATHS = (  
450 - "$(inherited)",  
451 - "@executable_path/Frameworks",  
452 - );  
453 - PRODUCT_BUNDLE_IDENTIFIER = com.example.example;  
454 - PRODUCT_NAME = "$(TARGET_NAME)";  
455 - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";  
456 - SWIFT_VERSION = 5.0;  
457 - VERSIONING_SYSTEM = "apple-generic";  
458 - };  
459 - name = Release;  
460 - };  
461 -/* End XCBuildConfiguration section */  
462 -  
463 -/* Begin XCConfigurationList section */  
464 - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {  
465 - isa = XCConfigurationList;  
466 - buildConfigurations = (  
467 - 97C147031CF9000F007C117D /* Debug */,  
468 - 97C147041CF9000F007C117D /* Release */,  
469 - 249021D3217E4FDB00AE95B9 /* Profile */,  
470 - );  
471 - defaultConfigurationIsVisible = 0;  
472 - defaultConfigurationName = Release;  
473 - };  
474 - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {  
475 - isa = XCConfigurationList;  
476 - buildConfigurations = (  
477 - 97C147061CF9000F007C117D /* Debug */,  
478 - 97C147071CF9000F007C117D /* Release */,  
479 - 249021D4217E4FDB00AE95B9 /* Profile */,  
480 - );  
481 - defaultConfigurationIsVisible = 0;  
482 - defaultConfigurationName = Release;  
483 - };  
484 -/* End XCConfigurationList section */  
485 - };  
486 - rootObject = 97C146E61CF9000F007C117D /* Project object */;  
487 -}  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<Workspace  
3 - version = "1.0">  
4 - <FileRef  
5 - location = "self:">  
6 - </FileRef>  
7 -</Workspace>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
3 -<plist version="1.0">  
4 -<dict>  
5 - <key>IDEDidComputeMac32BitWarning</key>  
6 - <true/>  
7 -</dict>  
8 -</plist>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
3 -<plist version="1.0">  
4 -<dict>  
5 - <key>PreviewsEnabled</key>  
6 - <false/>  
7 -</dict>  
8 -</plist>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<Scheme  
3 - LastUpgradeVersion = "1430"  
4 - version = "1.3">  
5 - <BuildAction  
6 - parallelizeBuildables = "YES"  
7 - buildImplicitDependencies = "YES">  
8 - <BuildActionEntries>  
9 - <BuildActionEntry  
10 - buildForTesting = "YES"  
11 - buildForRunning = "YES"  
12 - buildForProfiling = "YES"  
13 - buildForArchiving = "YES"  
14 - buildForAnalyzing = "YES">  
15 - <BuildableReference  
16 - BuildableIdentifier = "primary"  
17 - BlueprintIdentifier = "97C146ED1CF9000F007C117D"  
18 - BuildableName = "Runner.app"  
19 - BlueprintName = "Runner"  
20 - ReferencedContainer = "container:Runner.xcodeproj">  
21 - </BuildableReference>  
22 - </BuildActionEntry>  
23 - </BuildActionEntries>  
24 - </BuildAction>  
25 - <TestAction  
26 - buildConfiguration = "Debug"  
27 - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"  
28 - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"  
29 - shouldUseLaunchSchemeArgsEnv = "YES">  
30 - <MacroExpansion>  
31 - <BuildableReference  
32 - BuildableIdentifier = "primary"  
33 - BlueprintIdentifier = "97C146ED1CF9000F007C117D"  
34 - BuildableName = "Runner.app"  
35 - BlueprintName = "Runner"  
36 - ReferencedContainer = "container:Runner.xcodeproj">  
37 - </BuildableReference>  
38 - </MacroExpansion>  
39 - <Testables>  
40 - </Testables>  
41 - </TestAction>  
42 - <LaunchAction  
43 - buildConfiguration = "Debug"  
44 - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"  
45 - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"  
46 - launchStyle = "0"  
47 - useCustomWorkingDirectory = "NO"  
48 - ignoresPersistentStateOnLaunch = "NO"  
49 - debugDocumentVersioning = "YES"  
50 - debugServiceExtension = "internal"  
51 - allowLocationSimulation = "YES">  
52 - <BuildableProductRunnable  
53 - runnableDebuggingMode = "0">  
54 - <BuildableReference  
55 - BuildableIdentifier = "primary"  
56 - BlueprintIdentifier = "97C146ED1CF9000F007C117D"  
57 - BuildableName = "Runner.app"  
58 - BlueprintName = "Runner"  
59 - ReferencedContainer = "container:Runner.xcodeproj">  
60 - </BuildableReference>  
61 - </BuildableProductRunnable>  
62 - </LaunchAction>  
63 - <ProfileAction  
64 - buildConfiguration = "Profile"  
65 - shouldUseLaunchSchemeArgsEnv = "YES"  
66 - savedToolIdentifier = ""  
67 - useCustomWorkingDirectory = "NO"  
68 - debugDocumentVersioning = "YES">  
69 - <BuildableProductRunnable  
70 - runnableDebuggingMode = "0">  
71 - <BuildableReference  
72 - BuildableIdentifier = "primary"  
73 - BlueprintIdentifier = "97C146ED1CF9000F007C117D"  
74 - BuildableName = "Runner.app"  
75 - BlueprintName = "Runner"  
76 - ReferencedContainer = "container:Runner.xcodeproj">  
77 - </BuildableReference>  
78 - </BuildableProductRunnable>  
79 - </ProfileAction>  
80 - <AnalyzeAction  
81 - buildConfiguration = "Debug">  
82 - </AnalyzeAction>  
83 - <ArchiveAction  
84 - buildConfiguration = "Release"  
85 - revealArchiveInOrganizer = "YES">  
86 - </ArchiveAction>  
87 -</Scheme>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<Workspace  
3 - version = "1.0">  
4 - <FileRef  
5 - location = "group:Runner.xcodeproj">  
6 - </FileRef>  
7 -</Workspace>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
3 -<plist version="1.0">  
4 -<dict>  
5 - <key>IDEDidComputeMac32BitWarning</key>  
6 - <true/>  
7 -</dict>  
8 -</plist>  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
3 -<plist version="1.0">  
4 -<dict>  
5 - <key>PreviewsEnabled</key>  
6 - <false/>  
7 -</dict>  
8 -</plist>  
1 -import UIKit  
2 -import Flutter  
3 -  
4 -@UIApplicationMain  
5 -@objc class AppDelegate: FlutterAppDelegate {  
6 - override func application(  
7 - _ application: UIApplication,  
8 - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?  
9 - ) -> Bool {  
10 - GeneratedPluginRegistrant.register(with: self)  
11 - return super.application(application, didFinishLaunchingWithOptions: launchOptions)  
12 - }  
13 -}  
1 -{  
2 - "images" : [  
3 - {  
4 - "size" : "20x20",  
5 - "idiom" : "iphone",  
6 - "filename" : "Icon-App-20x20@2x.png",  
7 - "scale" : "2x"  
8 - },  
9 - {  
10 - "size" : "20x20",  
11 - "idiom" : "iphone",  
12 - "filename" : "Icon-App-20x20@3x.png",  
13 - "scale" : "3x"  
14 - },  
15 - {  
16 - "size" : "29x29",  
17 - "idiom" : "iphone",  
18 - "filename" : "Icon-App-29x29@1x.png",  
19 - "scale" : "1x"  
20 - },  
21 - {  
22 - "size" : "29x29",  
23 - "idiom" : "iphone",  
24 - "filename" : "Icon-App-29x29@2x.png",  
25 - "scale" : "2x"  
26 - },  
27 - {  
28 - "size" : "29x29",  
29 - "idiom" : "iphone",  
30 - "filename" : "Icon-App-29x29@3x.png",  
31 - "scale" : "3x"  
32 - },  
33 - {  
34 - "size" : "40x40",  
35 - "idiom" : "iphone",  
36 - "filename" : "Icon-App-40x40@2x.png",  
37 - "scale" : "2x"  
38 - },  
39 - {  
40 - "size" : "40x40",  
41 - "idiom" : "iphone",  
42 - "filename" : "Icon-App-40x40@3x.png",  
43 - "scale" : "3x"  
44 - },  
45 - {  
46 - "size" : "60x60",  
47 - "idiom" : "iphone",  
48 - "filename" : "Icon-App-60x60@2x.png",  
49 - "scale" : "2x"  
50 - },  
51 - {  
52 - "size" : "60x60",  
53 - "idiom" : "iphone",  
54 - "filename" : "Icon-App-60x60@3x.png",  
55 - "scale" : "3x"  
56 - },  
57 - {  
58 - "size" : "20x20",  
59 - "idiom" : "ipad",  
60 - "filename" : "Icon-App-20x20@1x.png",  
61 - "scale" : "1x"  
62 - },  
63 - {  
64 - "size" : "20x20",  
65 - "idiom" : "ipad",  
66 - "filename" : "Icon-App-20x20@2x.png",  
67 - "scale" : "2x"  
68 - },  
69 - {  
70 - "size" : "29x29",  
71 - "idiom" : "ipad",  
72 - "filename" : "Icon-App-29x29@1x.png",  
73 - "scale" : "1x"  
74 - },  
75 - {  
76 - "size" : "29x29",  
77 - "idiom" : "ipad",  
78 - "filename" : "Icon-App-29x29@2x.png",  
79 - "scale" : "2x"  
80 - },  
81 - {  
82 - "size" : "40x40",  
83 - "idiom" : "ipad",  
84 - "filename" : "Icon-App-40x40@1x.png",  
85 - "scale" : "1x"  
86 - },  
87 - {  
88 - "size" : "40x40",  
89 - "idiom" : "ipad",  
90 - "filename" : "Icon-App-40x40@2x.png",  
91 - "scale" : "2x"  
92 - },  
93 - {  
94 - "size" : "76x76",  
95 - "idiom" : "ipad",  
96 - "filename" : "Icon-App-76x76@1x.png",  
97 - "scale" : "1x"  
98 - },  
99 - {  
100 - "size" : "76x76",  
101 - "idiom" : "ipad",  
102 - "filename" : "Icon-App-76x76@2x.png",  
103 - "scale" : "2x"  
104 - },  
105 - {  
106 - "size" : "83.5x83.5",  
107 - "idiom" : "ipad",  
108 - "filename" : "Icon-App-83.5x83.5@2x.png",  
109 - "scale" : "2x"  
110 - },  
111 - {  
112 - "size" : "1024x1024",  
113 - "idiom" : "ios-marketing",  
114 - "filename" : "Icon-App-1024x1024@1x.png",  
115 - "scale" : "1x"  
116 - }  
117 - ],  
118 - "info" : {  
119 - "version" : 1,  
120 - "author" : "xcode"  
121 - }  
122 -}  
1 -{  
2 - "images" : [  
3 - {  
4 - "idiom" : "universal",  
5 - "filename" : "LaunchImage.png",  
6 - "scale" : "1x"  
7 - },  
8 - {  
9 - "idiom" : "universal",  
10 - "filename" : "LaunchImage@2x.png",  
11 - "scale" : "2x"  
12 - },  
13 - {  
14 - "idiom" : "universal",  
15 - "filename" : "LaunchImage@3x.png",  
16 - "scale" : "3x"  
17 - }  
18 - ],  
19 - "info" : {  
20 - "version" : 1,  
21 - "author" : "xcode"  
22 - }  
23 -}  
1 -# Launch Screen Assets  
2 -  
3 -You can customize the launch screen with your own desired assets by replacing the image files in this directory.  
4 -  
5 -You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.  
1 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>  
2 -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">  
3 - <dependencies>  
4 - <deployment identifier="iOS"/>  
5 - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>  
6 - </dependencies>  
7 - <scenes>  
8 - <!--View Controller-->  
9 - <scene sceneID="EHf-IW-A2E">  
10 - <objects>  
11 - <viewController id="01J-lp-oVM" sceneMemberID="viewController">  
12 - <layoutGuides>  
13 - <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>  
14 - <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>  
15 - </layoutGuides>  
16 - <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">  
17 - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>  
18 - <subviews>  
19 - <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">  
20 - </imageView>  
21 - </subviews>  
22 - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>  
23 - <constraints>  
24 - <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>  
25 - <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>  
26 - </constraints>  
27 - </view>  
28 - </viewController>  
29 - <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>  
30 - </objects>  
31 - <point key="canvasLocation" x="53" y="375"/>  
32 - </scene>  
33 - </scenes>  
34 - <resources>  
35 - <image name="LaunchImage" width="168" height="185"/>  
36 - </resources>  
37 -</document>  
1 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>  
2 -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">  
3 - <dependencies>  
4 - <deployment identifier="iOS"/>  
5 - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>  
6 - </dependencies>  
7 - <scenes>  
8 - <!--Flutter View Controller-->  
9 - <scene sceneID="tne-QT-ifu">  
10 - <objects>  
11 - <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">  
12 - <layoutGuides>  
13 - <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>  
14 - <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>  
15 - </layoutGuides>  
16 - <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">  
17 - <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>  
18 - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>  
19 - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>  
20 - </view>  
21 - </viewController>  
22 - <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>  
23 - </objects>  
24 - </scene>  
25 - </scenes>  
26 -</document>  
1 -//  
2 -// Generated file. Do not edit.  
3 -//  
4 -  
5 -// clang-format off  
6 -  
7 -#ifndef GeneratedPluginRegistrant_h  
8 -#define GeneratedPluginRegistrant_h  
9 -  
10 -#import <Flutter/Flutter.h>  
11 -  
12 -NS_ASSUME_NONNULL_BEGIN  
13 -  
14 -@interface GeneratedPluginRegistrant : NSObject  
15 -+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry;  
16 -@end  
17 -  
18 -NS_ASSUME_NONNULL_END  
19 -#endif /* GeneratedPluginRegistrant_h */  
1 -//  
2 -// Generated file. Do not edit.  
3 -//  
4 -  
5 -// clang-format off  
6 -  
7 -#import "GeneratedPluginRegistrant.h"  
8 -  
9 -@implementation GeneratedPluginRegistrant  
10 -  
11 -+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry {  
12 -}  
13 -  
14 -@end  
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
3 -<plist version="1.0">  
4 -<dict>  
5 - <key>CFBundleDevelopmentRegion</key>  
6 - <string>$(DEVELOPMENT_LANGUAGE)</string>  
7 - <key>CFBundleDisplayName</key>  
8 - <string>Example</string>  
9 - <key>CFBundleExecutable</key>  
10 - <string>$(EXECUTABLE_NAME)</string>  
11 - <key>CFBundleIdentifier</key>  
12 - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>  
13 - <key>CFBundleInfoDictionaryVersion</key>  
14 - <string>6.0</string>  
15 - <key>CFBundleName</key>  
16 - <string>example</string>  
17 - <key>CFBundlePackageType</key>  
18 - <string>APPL</string>  
19 - <key>CFBundleShortVersionString</key>  
20 - <string>$(FLUTTER_BUILD_NAME)</string>  
21 - <key>CFBundleSignature</key>  
22 - <string>????</string>  
23 - <key>CFBundleVersion</key>  
24 - <string>$(FLUTTER_BUILD_NUMBER)</string>  
25 - <key>LSRequiresIPhoneOS</key>  
26 - <true/>  
27 - <key>UILaunchStoryboardName</key>  
28 - <string>LaunchScreen</string>  
29 - <key>UIMainStoryboardFile</key>  
30 - <string>Main</string>  
31 - <key>UISupportedInterfaceOrientations</key>  
32 - <array>  
33 - <string>UIInterfaceOrientationPortrait</string>  
34 - <string>UIInterfaceOrientationLandscapeLeft</string>  
35 - <string>UIInterfaceOrientationLandscapeRight</string>  
36 - </array>  
37 - <key>UISupportedInterfaceOrientations~ipad</key>  
38 - <array>  
39 - <string>UIInterfaceOrientationPortrait</string>  
40 - <string>UIInterfaceOrientationPortraitUpsideDown</string>  
41 - <string>UIInterfaceOrientationLandscapeLeft</string>  
42 - <string>UIInterfaceOrientationLandscapeRight</string>  
43 - </array>  
44 - <key>UIViewControllerBasedStatusBarAppearance</key>  
45 - <false/>  
46 - <key>CADisableMinimumFrameDurationOnPhone</key>  
47 - <true/>  
48 - <key>UIApplicationSupportsIndirectInputEvents</key>  
49 - <true/>  
50 -</dict>  
51 -</plist>  
1 -import 'package:calendar_date_picker2/calendar_date_picker2.dart';  
2 -import 'package:flutter/material.dart';  
3 -import 'package:flutter_localizations/flutter_localizations.dart';  
4 -  
5 -final today = DateUtils.dateOnly(DateTime.now());  
6 -  
7 -void main() {  
8 - runApp(const MyApp());  
9 -}  
10 -  
11 -class MyApp extends StatelessWidget {  
12 - const MyApp({Key? key}) : super(key: key);  
13 -  
14 - @override  
15 - Widget build(BuildContext context) {  
16 - return MaterialApp(  
17 - title: 'CalendarDatePicker2 Demo',  
18 - theme: ThemeData(  
19 - primarySwatch: Colors.blue,  
20 - ),  
21 - localizationsDelegates: GlobalMaterialLocalizations.delegates,  
22 - supportedLocales: const [  
23 - Locale('en', ''),  
24 - Locale('zh', ''),  
25 - Locale('he', ''),  
26 - Locale('es', ''),  
27 - Locale('ru', ''),  
28 - Locale('ko', ''),  
29 - Locale('hi', ''),  
30 - ],  
31 - home: const MyHomePage(title: 'CalendarDatePicker2 Demo'),  
32 - );  
33 - }  
34 -}  
35 -  
36 -class MyHomePage extends StatefulWidget {  
37 - const MyHomePage({Key? key, required this.title}) : super(key: key);  
38 -  
39 - final String title;  
40 -  
41 - @override  
42 - State<MyHomePage> createState() => _MyHomePageState();  
43 -}  
44 -  
45 -class _MyHomePageState extends State<MyHomePage> {  
46 - final _scrollController = ScrollController();  
47 - List<DateTime?> _dialogCalendarPickerValue = [  
48 - DateTime(2021, 8, 10),  
49 - DateTime(2021, 8, 13),  
50 - ];  
51 - List<DateTime?> _singleDatePickerValueWithDefaultValue = [  
52 - DateTime.now().add(const Duration(days: 1)),  
53 - ];  
54 - List<DateTime?> _multiDatePickerValueWithDefaultValue = [  
55 - DateTime(today.year, today.month, 1),  
56 - DateTime(today.year, today.month, 5),  
57 - DateTime(today.year, today.month, 14),  
58 - DateTime(today.year, today.month, 17),  
59 - DateTime(today.year, today.month, 25),  
60 - ];  
61 - List<DateTime?> _rangeDatePickerValueWithDefaultValue = [  
62 - DateTime(1999, 5, 6),  
63 - DateTime(1999, 5, 21),  
64 - ];  
65 -  
66 - List<DateTime?> _rangeDatePickerWithActionButtonsWithValue = [  
67 - DateTime.now(),  
68 - DateTime.now().add(const Duration(days: 5)),  
69 - ];  
70 -  
71 - @override  
72 - void initState() {  
73 - _scrollController.addListener(() {  
74 - if (_scrollController.offset > 1000) {  
75 - // ignore: avoid_print  
76 - print('scrolling distance: ${_scrollController.offset}');  
77 - }  
78 - });  
79 - super.initState();  
80 - }  
81 -  
82 - @override  
83 - Widget build(BuildContext context) {  
84 - return Scaffold(  
85 - appBar: AppBar(  
86 - title: Text(widget.title),  
87 - ),  
88 - body: SingleChildScrollView(  
89 - child: Column(  
90 - crossAxisAlignment: CrossAxisAlignment.stretch,  
91 - children: [  
92 - Wrap(  
93 - alignment: WrapAlignment.center,  
94 - children: <Widget>[  
95 - _buildCalendarDialogButton(),  
96 - _buildSingleDatePickerWithValue(),  
97 - _buildMultiDatePickerWithValue(),  
98 - _buildRangeDatePickerWithValue(),  
99 - _buildCalendarWithActionButtons(),  
100 - ],  
101 - ),  
102 - Wrap(  
103 - alignment: WrapAlignment.center,  
104 - children: <Widget>[  
105 - _buildScrollCalendarDialogButton(),  
106 - _buildScrollSingleDatePickerWithValue(),  
107 - _buildScrollMultiDatePickerWithValue(),  
108 - _buildScrollRangeDatePickerWithValue(),  
109 - _buildScrollCalendarWithActionButtons(),  
110 - ],  
111 - ),  
112 - ],  
113 - ),  
114 - ),  
115 - );  
116 - }  
117 -  
118 - String _getValueText(  
119 - CalendarDatePicker2Type datePickerType,  
120 - List<DateTime?> values,  
121 - ) {  
122 - values =  
123 - values.map((e) => e != null ? DateUtils.dateOnly(e) : null).toList();  
124 - var valueText = (values.isNotEmpty ? values[0] : null)  
125 - .toString()  
126 - .replaceAll('00:00:00.000', '');  
127 -  
128 - if (datePickerType == CalendarDatePicker2Type.multi) {  
129 - valueText = values.isNotEmpty  
130 - ? values  
131 - .map((v) => v.toString().replaceAll('00:00:00.000', ''))  
132 - .join(', ')  
133 - : 'null';  
134 - } else if (datePickerType == CalendarDatePicker2Type.range) {  
135 - if (values.isNotEmpty) {  
136 - final startDate = values[0].toString().replaceAll('00:00:00.000', '');  
137 - final endDate = values.length > 1  
138 - ? values[1].toString().replaceAll('00:00:00.000', '')  
139 - : 'null';  
140 - valueText = '$startDate to $endDate';  
141 - } else {  
142 - return 'null';  
143 - }  
144 - }  
145 -  
146 - return valueText;  
147 - }  
148 -  
149 - _buildCalendarDialogButton() {  
150 - const dayTextStyle =  
151 - TextStyle(color: Colors.black, fontWeight: FontWeight.w700);  
152 - final weekendTextStyle =  
153 - TextStyle(color: Colors.grey[500], fontWeight: FontWeight.w600);  
154 - final anniversaryTextStyle = TextStyle(  
155 - color: Colors.red[400],  
156 - fontWeight: FontWeight.w700,  
157 - decoration: TextDecoration.underline,  
158 - );  
159 - final config = CalendarDatePicker2WithActionButtonsConfig(  
160 - calendarViewScrollPhysics: const NeverScrollableScrollPhysics(),  
161 - dayTextStyle: dayTextStyle,  
162 - calendarType: CalendarDatePicker2Type.range,  
163 - selectedDayHighlightColor: Colors.purple[800],  
164 - closeDialogOnCancelTapped: true,  
165 - firstDayOfWeek: 1,  
166 - weekdayLabelTextStyle: const TextStyle(  
167 - color: Colors.black87,  
168 - fontWeight: FontWeight.bold,  
169 - ),  
170 - controlsTextStyle: const TextStyle(  
171 - color: Colors.black,  
172 - fontSize: 15,  
173 - fontWeight: FontWeight.bold,  
174 - ),  
175 - centerAlignModePicker: true,  
176 - customModePickerIcon: const SizedBox(),  
177 - selectedDayTextStyle: dayTextStyle.copyWith(color: Colors.white),  
178 - dayTextStylePredicate: ({required date}) {  
179 - TextStyle? textStyle;  
180 - if (date.weekday == DateTime.saturday ||  
181 - date.weekday == DateTime.sunday) {  
182 - textStyle = weekendTextStyle;  
183 - }  
184 - if (DateUtils.isSameDay(date, DateTime(2021, 1, 25))) {  
185 - textStyle = anniversaryTextStyle;  
186 - }  
187 - return textStyle;  
188 - },  
189 - dayBuilder: ({  
190 - required date,  
191 - textStyle,  
192 - decoration,  
193 - isSelected,  
194 - isDisabled,  
195 - isToday,  
196 - }) {  
197 - Widget? dayWidget;  
198 - if (date.day % 3 == 0 && date.day % 9 != 0) {  
199 - dayWidget = Container(  
200 - decoration: decoration,  
201 - child: Center(  
202 - child: Stack(  
203 - alignment: AlignmentDirectional.center,  
204 - children: [  
205 - Text(  
206 - MaterialLocalizations.of(context).formatDecimal(date.day),  
207 - style: textStyle,  
208 - ),  
209 - Padding(  
210 - padding: const EdgeInsets.only(top: 27.5),  
211 - child: Container(  
212 - height: 4,  
213 - width: 4,  
214 - decoration: BoxDecoration(  
215 - borderRadius: BorderRadius.circular(5),  
216 - color: isSelected == true  
217 - ? Colors.white  
218 - : Colors.grey[500],  
219 - ),  
220 - ),  
221 - ),  
222 - ],  
223 - ),  
224 - ),  
225 - );  
226 - }  
227 - return dayWidget;  
228 - },  
229 - yearBuilder: ({  
230 - required year,  
231 - decoration,  
232 - isCurrentYear,  
233 - isDisabled,  
234 - isSelected,  
235 - textStyle,  
236 - }) {  
237 - return Center(  
238 - child: Container(  
239 - decoration: decoration,  
240 - height: 36,  
241 - width: 72,  
242 - child: Center(  
243 - child: Semantics(  
244 - selected: isSelected,  
245 - button: true,  
246 - child: Row(  
247 - mainAxisAlignment: MainAxisAlignment.center,  
248 - children: [  
249 - Text(  
250 - year.toString(),  
251 - style: textStyle,  
252 - ),  
253 - if (isCurrentYear == true)  
254 - Container(  
255 - padding: const EdgeInsets.all(5),  
256 - margin: const EdgeInsets.only(left: 5),  
257 - decoration: const BoxDecoration(  
258 - shape: BoxShape.circle,  
259 - color: Colors.redAccent,  
260 - ),  
261 - ),  
262 - ],  
263 - ),  
264 - ),  
265 - ),  
266 - ),  
267 - );  
268 - },  
269 - );  
270 - return SizedBox(  
271 - width: 375,  
272 - child: Padding(  
273 - padding: const EdgeInsets.all(15),  
274 - child: Row(  
275 - mainAxisAlignment: MainAxisAlignment.center,  
276 - children: [  
277 - ElevatedButton(  
278 - onPressed: () async {  
279 - final values = await showCalendarDatePicker2Dialog(  
280 - context: context,  
281 - config: config,  
282 - dialogSize: const Size(325, 370),  
283 - borderRadius: BorderRadius.circular(15),  
284 - value: _dialogCalendarPickerValue,  
285 - dialogBackgroundColor: Colors.white,  
286 - );  
287 - if (values != null) {  
288 - // ignore: avoid_print  
289 - print(_getValueText(  
290 - config.calendarType,  
291 - values,  
292 - ));  
293 - setState(() {  
294 - _dialogCalendarPickerValue = values;  
295 - });  
296 - }  
297 - },  
298 - child: const Text('Open Calendar Dialog'),  
299 - ),  
300 - ],  
301 - ),  
302 - ),  
303 - );  
304 - }  
305 -  
306 - _buildScrollCalendarDialogButton() {  
307 - const dayTextStyle =  
308 - TextStyle(color: Colors.black, fontWeight: FontWeight.w700);  
309 - final weekendTextStyle =  
310 - TextStyle(color: Colors.grey[500], fontWeight: FontWeight.w600);  
311 - final anniversaryTextStyle = TextStyle(  
312 - color: Colors.red[400],  
313 - fontWeight: FontWeight.w700,  
314 - decoration: TextDecoration.underline,  
315 - );  
316 - final config = CalendarDatePicker2WithActionButtonsConfig(  
317 - calendarViewScrollPhysics: const NeverScrollableScrollPhysics(),  
318 - dayTextStyle: dayTextStyle,  
319 - calendarType: CalendarDatePicker2Type.range,  
320 - calendarViewMode: CalendarDatePicker2Mode.scroll,  
321 - hideScrollViewMonthWeekHeader: true,  
322 - selectedDayHighlightColor: Colors.purple[800],  
323 - closeDialogOnCancelTapped: true,  
324 - firstDayOfWeek: 1,  
325 - weekdayLabelTextStyle: const TextStyle(  
326 - color: Colors.black87,  
327 - fontWeight: FontWeight.bold,  
328 - ),  
329 - controlsTextStyle: const TextStyle(  
330 - color: Colors.black,  
331 - fontSize: 15,  
332 - fontWeight: FontWeight.bold,  
333 - ),  
334 - centerAlignModePicker: true,  
335 - customModePickerIcon: const SizedBox(),  
336 - selectedDayTextStyle: dayTextStyle.copyWith(color: Colors.white),  
337 - dayTextStylePredicate: ({required date}) {  
338 - TextStyle? textStyle;  
339 - if (date.weekday == DateTime.saturday ||  
340 - date.weekday == DateTime.sunday) {  
341 - textStyle = weekendTextStyle;  
342 - }  
343 - if (DateUtils.isSameDay(date, DateTime(2021, 1, 25))) {  
344 - textStyle = anniversaryTextStyle;  
345 - }  
346 - return textStyle;  
347 - },  
348 - dayBuilder: ({  
349 - required date,  
350 - textStyle,  
351 - decoration,  
352 - isSelected,  
353 - isDisabled,  
354 - isToday,  
355 - }) {  
356 - Widget? dayWidget;  
357 - if (date.day % 3 == 0 && date.day % 9 != 0) {  
358 - dayWidget = Container(  
359 - decoration: decoration,  
360 - child: Center(  
361 - child: Stack(  
362 - alignment: AlignmentDirectional.center,  
363 - children: [  
364 - Text(  
365 - MaterialLocalizations.of(context).formatDecimal(date.day),  
366 - style: textStyle,  
367 - ),  
368 - Padding(  
369 - padding: const EdgeInsets.only(top: 27.5),  
370 - child: Container(  
371 - height: 4,  
372 - width: 4,  
373 - decoration: BoxDecoration(  
374 - borderRadius: BorderRadius.circular(5),  
375 - color: isSelected == true  
376 - ? Colors.white  
377 - : Colors.grey[500],  
378 - ),  
379 - ),  
380 - ),  
381 - ],  
382 - ),  
383 - ),  
384 - );  
385 - }  
386 - return dayWidget;  
387 - },  
388 - yearBuilder: ({  
389 - required year,  
390 - decoration,  
391 - isCurrentYear,  
392 - isDisabled,  
393 - isSelected,  
394 - textStyle,  
395 - }) {  
396 - return Center(  
397 - child: Container(  
398 - decoration: decoration,  
399 - height: 36,  
400 - width: 72,  
401 - child: Center(  
402 - child: Semantics(  
403 - selected: isSelected,  
404 - button: true,  
405 - child: Row(  
406 - mainAxisAlignment: MainAxisAlignment.center,  
407 - children: [  
408 - Text(  
409 - year.toString(),  
410 - style: textStyle,  
411 - ),  
412 - if (isCurrentYear == true)  
413 - Container(  
414 - padding: const EdgeInsets.all(5),  
415 - margin: const EdgeInsets.only(left: 5),  
416 - decoration: const BoxDecoration(  
417 - shape: BoxShape.circle,  
418 - color: Colors.redAccent,  
419 - ),  
420 - ),  
421 - ],  
422 - ),  
423 - ),  
424 - ),  
425 - ),  
426 - );  
427 - },  
428 - );  
429 - return SizedBox(  
430 - width: 375,  
431 - child: Padding(  
432 - padding: const EdgeInsets.all(15),  
433 - child: Row(  
434 - mainAxisAlignment: MainAxisAlignment.center,  
435 - children: [  
436 - ElevatedButton(  
437 - onPressed: () async {  
438 - final values = await showCalendarDatePicker2Dialog(  
439 - context: context,  
440 - config: config,  
441 - dialogSize: const Size(325, 860),  
442 - borderRadius: BorderRadius.circular(15),  
443 - value: _dialogCalendarPickerValue,  
444 - dialogBackgroundColor: Colors.white,  
445 - );  
446 - if (values != null) {  
447 - // ignore: avoid_print  
448 - print(_getValueText(  
449 - config.calendarType,  
450 - values,  
451 - ));  
452 - setState(() {  
453 - _dialogCalendarPickerValue = values;  
454 - });  
455 - }  
456 - },  
457 - child: const Text('Open Scroll Calendar Dialog'),  
458 - ),  
459 - ],  
460 - ),  
461 - ),  
462 - );  
463 - }  
464 -  
465 - Widget _buildSingleDatePickerWithValue() {  
466 - final config = CalendarDatePicker2Config(  
467 - selectedDayHighlightColor: Colors.amber[900],  
468 - weekdayLabels: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],  
469 - weekdayLabelTextStyle: const TextStyle(  
470 - color: Colors.black87,  
471 - fontWeight: FontWeight.bold,  
472 - ),  
473 - firstDayOfWeek: 1,  
474 - controlsHeight: 50,  
475 - dayMaxWidth: 25,  
476 - animateToDisplayedMonthDate: true,  
477 - controlsTextStyle: const TextStyle(  
478 - color: Colors.black,  
479 - fontSize: 15,  
480 - fontWeight: FontWeight.bold,  
481 - ),  
482 - dayTextStyle: const TextStyle(  
483 - color: Colors.amber,  
484 - fontWeight: FontWeight.bold,  
485 - ),  
486 - disabledDayTextStyle: const TextStyle(  
487 - color: Colors.grey,  
488 - ),  
489 - centerAlignModePicker: true,  
490 - useAbbrLabelForMonthModePicker: true,  
491 - modePickerTextHandler: ({required monthDate, isMonthPicker}) {  
492 - if (isMonthPicker ?? false) {  
493 - // Custom month picker text  
494 - return '${getLocaleShortMonthFormat(const Locale('en')).format(monthDate)} C';  
495 - }  
496 -  
497 - return null;  
498 - },  
499 - firstDate: DateTime(DateTime.now().year - 2, DateTime.now().month - 1,  
500 - DateTime.now().day - 5),  
501 - lastDate: DateTime(DateTime.now().year + 3, DateTime.now().month + 2,  
502 - DateTime.now().day + 10),  
503 - selectableDayPredicate: (day) =>  
504 - !day  
505 - .difference(DateTime.now().add(const Duration(days: 3)))  
506 - .isNegative &&  
507 - day.isBefore(DateTime.now().add(const Duration(days: 30))),  
508 - );  
509 - return SizedBox(  
510 - width: 375,  
511 - child: Column(  
512 - mainAxisSize: MainAxisSize.min,  
513 - children: [  
514 - const SizedBox(height: 10),  
515 - const Text('Single Date Picker'),  
516 - SizedBox(  
517 - width: 270,  
518 - child: CalendarDatePicker2(  
519 - displayedMonthDate: _singleDatePickerValueWithDefaultValue.first,  
520 - config: config,  
521 - value: _singleDatePickerValueWithDefaultValue,  
522 - onValueChanged: (dates) => setState(  
523 - () => _singleDatePickerValueWithDefaultValue = dates),  
524 - ),  
525 - ),  
526 - const SizedBox(height: 10),  
527 - Row(  
528 - mainAxisSize: MainAxisSize.min,  
529 - children: [  
530 - const Text('Selection(s): '),  
531 - const SizedBox(width: 10),  
532 - Text(  
533 - _getValueText(  
534 - config.calendarType,  
535 - _singleDatePickerValueWithDefaultValue,  
536 - ),  
537 - ),  
538 - ],  
539 - ),  
540 - const SizedBox(height: 25),  
541 - ],  
542 - ),  
543 - );  
544 - }  
545 -  
546 - Widget _buildScrollSingleDatePickerWithValue() {  
547 - final config = CalendarDatePicker2Config(  
548 - calendarViewMode: CalendarDatePicker2Mode.scroll,  
549 - selectedDayHighlightColor: Colors.amber[900],  
550 - weekdayLabels: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],  
551 - weekdayLabelTextStyle: const TextStyle(  
552 - color: Colors.black87,  
553 - fontWeight: FontWeight.bold,  
554 - ),  
555 - firstDayOfWeek: 1,  
556 - controlsHeight: 50,  
557 - controlsTextStyle: const TextStyle(  
558 - color: Colors.black,  
559 - fontSize: 15,  
560 - fontWeight: FontWeight.bold,  
561 - ),  
562 - dayTextStyle: const TextStyle(  
563 - color: Colors.amber,  
564 - fontWeight: FontWeight.bold,  
565 - ),  
566 - disabledDayTextStyle: const TextStyle(  
567 - color: Colors.grey,  
568 - ),  
569 - centerAlignModePicker: true,  
570 - useAbbrLabelForMonthModePicker: true,  
571 - firstDate: DateTime(DateTime.now().year - 2, DateTime.now().month - 1,  
572 - DateTime.now().day - 5),  
573 - lastDate: DateTime(DateTime.now().year + 3, DateTime.now().month + 2,  
574 - DateTime.now().day + 10),  
575 - selectableDayPredicate: (day) => !day  
576 - .difference(DateTime.now().subtract(const Duration(days: 3)))  
577 - .isNegative,  
578 - );  
579 - return SizedBox(  
580 - width: 375,  
581 - child: Column(  
582 - mainAxisSize: MainAxisSize.min,  
583 - children: [  
584 - const SizedBox(height: 10),  
585 - const Text('Scroll Single Date Picker'),  
586 - SizedBox(  
587 - width: 270,  
588 - height: 800,  
589 - child: CalendarDatePicker2(  
590 - config: config.copyWith(  
591 - scrollViewController: _scrollController,  
592 - dayMaxWidth: 32,  
593 - controlsHeight: 40,  
594 - hideScrollViewTopHeader: true,  
595 - ),  
596 - value: _singleDatePickerValueWithDefaultValue,  
597 - onValueChanged: (dates) => setState(  
598 - () => _singleDatePickerValueWithDefaultValue = dates),  
599 - ),  
600 - ),  
601 - const SizedBox(height: 10),  
602 - Row(  
603 - mainAxisSize: MainAxisSize.min,  
604 - children: [  
605 - const Text('Selection(s): '),  
606 - const SizedBox(width: 10),  
607 - Text(  
608 - _getValueText(  
609 - config.calendarType,  
610 - _singleDatePickerValueWithDefaultValue,  
611 - ),  
612 - ),  
613 - ],  
614 - ),  
615 - const SizedBox(height: 25),  
616 - ],  
617 - ),  
618 - );  
619 - }  
620 -  
621 - Widget _buildMultiDatePickerWithValue() {  
622 - final config = CalendarDatePicker2Config(  
623 - disableMonthPicker: true,  
624 - calendarType: CalendarDatePicker2Type.multi,  
625 - selectedDayHighlightColor: Colors.indigo,  
626 - );  
627 - return SizedBox(  
628 - width: 375,  
629 - child: Column(  
630 - mainAxisSize: MainAxisSize.min,  
631 - children: [  
632 - const SizedBox(height: 10),  
633 - const Text('Multi Date Picker'),  
634 - CalendarDatePicker2(  
635 - config: config,  
636 - value: _multiDatePickerValueWithDefaultValue,  
637 - onValueChanged: (dates) =>  
638 - setState(() => _multiDatePickerValueWithDefaultValue = dates),  
639 - ),  
640 - const SizedBox(height: 10),  
641 - Wrap(  
642 - children: [  
643 - const Text('Selection(s): '),  
644 - const SizedBox(width: 10),  
645 - Text(  
646 - _getValueText(  
647 - config.calendarType,  
648 - _multiDatePickerValueWithDefaultValue,  
649 - ),  
650 - overflow: TextOverflow.ellipsis,  
651 - maxLines: 1,  
652 - softWrap: false,  
653 - ),  
654 - ],  
655 - ),  
656 - const SizedBox(height: 25),  
657 - ],  
658 - ),  
659 - );  
660 - }  
661 -  
662 - Widget _buildScrollMultiDatePickerWithValue() {  
663 - final config = CalendarDatePicker2Config(  
664 - disableMonthPicker: true,  
665 - calendarType: CalendarDatePicker2Type.multi,  
666 - calendarViewMode: CalendarDatePicker2Mode.scroll,  
667 - selectedDayHighlightColor: Colors.indigo,  
668 - scrollViewTopHeaderTextStyle: const TextStyle(  
669 - color: Colors.black87,  
670 - fontWeight: FontWeight.bold,  
671 - ),  
672 - );  
673 - return SizedBox(  
674 - width: 375,  
675 - child: Column(  
676 - mainAxisSize: MainAxisSize.min,  
677 - children: [  
678 - const SizedBox(height: 10),  
679 - const Text('Scroll Multi Date Picker'),  
680 - SizedBox(  
681 - height: 800,  
682 - child: CalendarDatePicker2(  
683 - config: config,  
684 - value: _multiDatePickerValueWithDefaultValue,  
685 - onValueChanged: (dates) =>  
686 - setState(() => _multiDatePickerValueWithDefaultValue = dates),  
687 - ),  
688 - ),  
689 - const SizedBox(height: 10),  
690 - Wrap(  
691 - children: [  
692 - const Text('Selection(s): '),  
693 - const SizedBox(width: 10),  
694 - Text(  
695 - _getValueText(  
696 - config.calendarType,  
697 - _multiDatePickerValueWithDefaultValue,  
698 - ),  
699 - overflow: TextOverflow.ellipsis,  
700 - maxLines: 1,  
701 - softWrap: false,  
702 - ),  
703 - ],  
704 - ),  
705 - const SizedBox(height: 25),  
706 - ],  
707 - ),  
708 - );  
709 - }  
710 -  
711 - Widget _buildRangeDatePickerWithValue() {  
712 - final config = CalendarDatePicker2Config(  
713 - centerAlignModePicker: true,  
714 - calendarType: CalendarDatePicker2Type.range,  
715 - selectedDayHighlightColor: Colors.teal[800],  
716 - weekdayLabelTextStyle: const TextStyle(  
717 - color: Colors.black87,  
718 - fontWeight: FontWeight.bold,  
719 - ),  
720 - controlsTextStyle: const TextStyle(  
721 - color: Colors.black,  
722 - fontSize: 15,  
723 - fontWeight: FontWeight.bold,  
724 - ),  
725 - dynamicCalendarRows: true,  
726 - modePickerBuilder: ({required monthDate, isMonthPicker}) {  
727 - return Center(  
728 - child: Container(  
729 - padding: const EdgeInsets.all(5),  
730 - margin: const EdgeInsets.symmetric(horizontal: 5),  
731 - decoration: BoxDecoration(  
732 - color: isMonthPicker == true ? Colors.red : Colors.teal[800],  
733 - borderRadius: BorderRadius.circular(5),  
734 - ),  
735 - child: Text(  
736 - isMonthPicker == true  
737 - ? getLocaleShortMonthFormat(const Locale('en'))  
738 - .format(monthDate)  
739 - : monthDate.year.toString(),  
740 - style: const TextStyle(  
741 - color: Colors.white,  
742 - fontWeight: FontWeight.bold,  
743 - ),  
744 - ),  
745 - ),  
746 - );  
747 - },  
748 - weekdayLabelBuilder: ({required weekday, isScrollViewTopHeader}) {  
749 - if (weekday == DateTime.wednesday) {  
750 - return const Center(  
751 - child: Text(  
752 - 'W',  
753 - style: TextStyle(  
754 - color: Colors.red,  
755 - fontWeight: FontWeight.bold,  
756 - ),  
757 - ),  
758 - );  
759 - }  
760 - return null;  
761 - },  
762 - disabledDayTextStyle:  
763 - const TextStyle(color: Colors.grey, fontWeight: FontWeight.w400),  
764 - selectableDayPredicate: (day) {  
765 - if (_rangeDatePickerValueWithDefaultValue.isEmpty ||  
766 - _rangeDatePickerValueWithDefaultValue.length == 2) {  
767 - // exclude Wednesday  
768 - return day.weekday != DateTime.wednesday;  
769 - } else {  
770 - // Make sure range does not contain any Wednesday  
771 - final firstDate = _rangeDatePickerValueWithDefaultValue.first;  
772 - final range = [firstDate!, day]..sort();  
773 - for (var date = range.first;  
774 - date.compareTo(range.last) <= 0;  
775 - date = date.add(const Duration(days: 1))) {  
776 - if (date.weekday == DateTime.wednesday) {  
777 - return false;  
778 - }  
779 - }  
780 - }  
781 - return true;  
782 - },  
783 - );  
784 - return SizedBox(  
785 - width: 375,  
786 - child: Column(  
787 - mainAxisSize: MainAxisSize.min,  
788 - children: [  
789 - const SizedBox(height: 10),  
790 - const Text('Range Date Picker'),  
791 - CalendarDatePicker2(  
792 - config: config,  
793 - value: _rangeDatePickerValueWithDefaultValue,  
794 - onValueChanged: (dates) =>  
795 - setState(() => _rangeDatePickerValueWithDefaultValue = dates),  
796 - ),  
797 - const SizedBox(height: 10),  
798 - Row(  
799 - mainAxisSize: MainAxisSize.min,  
800 - children: [  
801 - const Text('Selection(s): '),  
802 - const SizedBox(width: 10),  
803 - Text(  
804 - _getValueText(  
805 - config.calendarType,  
806 - _rangeDatePickerValueWithDefaultValue,  
807 - ),  
808 - ),  
809 - ],  
810 - ),  
811 - const SizedBox(height: 25),  
812 - ],  
813 - ),  
814 - );  
815 - }  
816 -  
817 - Widget _buildScrollRangeDatePickerWithValue() {  
818 - final config = CalendarDatePicker2Config(  
819 - centerAlignModePicker: true,  
820 - calendarType: CalendarDatePicker2Type.range,  
821 - calendarViewMode: CalendarDatePicker2Mode.scroll,  
822 - rangeBidirectional: true,  
823 - selectedDayHighlightColor: Colors.teal[800],  
824 - weekdayLabelTextStyle: const TextStyle(  
825 - color: Colors.black87,  
826 - fontWeight: FontWeight.bold,  
827 - ),  
828 - controlsTextStyle: const TextStyle(  
829 - color: Colors.black,  
830 - fontSize: 15,  
831 - fontWeight: FontWeight.bold,  
832 - ),  
833 - dynamicCalendarRows: true,  
834 - weekdayLabelBuilder: ({required weekday, isScrollViewTopHeader}) {  
835 - if (weekday == DateTime.wednesday && isScrollViewTopHeader != true) {  
836 - return const Center(  
837 - child: Text(  
838 - 'W',  
839 - style: TextStyle(  
840 - color: Colors.red,  
841 - fontWeight: FontWeight.bold,  
842 - ),  
843 - ),  
844 - );  
845 - }  
846 - return null;  
847 - },  
848 - modePickerTextHandler: ({required monthDate, isMonthPicker}) {  
849 - if (isMonthPicker ?? false) {  
850 - return '${getLocaleShortMonthFormat(const Locale('en')).format(monthDate)} New';  
851 - }  
852 -  
853 - return null;  
854 - },  
855 - disabledDayTextStyle:  
856 - const TextStyle(color: Colors.grey, fontWeight: FontWeight.w400),  
857 - selectableDayPredicate: (day) {  
858 - if (_rangeDatePickerValueWithDefaultValue.isEmpty ||  
859 - _rangeDatePickerValueWithDefaultValue.length == 2) {  
860 - // exclude Wednesday  
861 - return day.weekday != DateTime.wednesday;  
862 - } else {  
863 - // Make sure range does not contain any Wednesday  
864 - final firstDate = _rangeDatePickerValueWithDefaultValue.first;  
865 - final range = [firstDate!, day]..sort();  
866 - for (var date = range.first;  
867 - date.compareTo(range.last) <= 0;  
868 - date = date.add(const Duration(days: 1))) {  
869 - if (date.weekday == DateTime.wednesday) {  
870 - return false;  
871 - }  
872 - }  
873 - }  
874 - return true;  
875 - },  
876 - );  
877 - return SizedBox(  
878 - width: 375,  
879 - child: Column(  
880 - mainAxisSize: MainAxisSize.min,  
881 - children: [  
882 - const SizedBox(height: 10),  
883 - const Text('Scroll Range Date Picker'),  
884 - SizedBox(  
885 - height: 800,  
886 - child: CalendarDatePicker2(  
887 - config: config,  
888 - value: _rangeDatePickerValueWithDefaultValue,  
889 - onValueChanged: (dates) =>  
890 - setState(() => _rangeDatePickerValueWithDefaultValue = dates),  
891 - ),  
892 - ),  
893 - const SizedBox(height: 10),  
894 - Row(  
895 - mainAxisSize: MainAxisSize.min,  
896 - children: [  
897 - const Text('Selection(s): '),  
898 - const SizedBox(width: 10),  
899 - Text(  
900 - _getValueText(  
901 - config.calendarType,  
902 - _rangeDatePickerValueWithDefaultValue,  
903 - ),  
904 - ),  
905 - ],  
906 - ),  
907 - const SizedBox(height: 25),  
908 - ],  
909 - ),  
910 - );  
911 - }  
912 -  
913 - Widget _buildCalendarWithActionButtons() {  
914 - final config = CalendarDatePicker2WithActionButtonsConfig(  
915 - calendarType: CalendarDatePicker2Type.range,  
916 - disableModePicker: true,  
917 - );  
918 - return SizedBox(  
919 - width: 375,  
920 - child: Column(  
921 - mainAxisSize: MainAxisSize.min,  
922 - children: [  
923 - const SizedBox(height: 10),  
924 - const Text('Date Picker With Action Buttons'),  
925 - CalendarDatePicker2WithActionButtons(  
926 - config: config,  
927 - value: _rangeDatePickerWithActionButtonsWithValue,  
928 - onValueChanged: (dates) => setState(  
929 - () => _rangeDatePickerWithActionButtonsWithValue = dates),  
930 - ),  
931 - const SizedBox(height: 10),  
932 - Row(  
933 - mainAxisSize: MainAxisSize.min,  
934 - children: [  
935 - const Text('Selection(s): '),  
936 - const SizedBox(width: 10),  
937 - Flexible(  
938 - child: Text(  
939 - _getValueText(  
940 - config.calendarType,  
941 - _rangeDatePickerWithActionButtonsWithValue,  
942 - ),  
943 - ),  
944 - ),  
945 - ],  
946 - ),  
947 - const SizedBox(height: 25),  
948 - ],  
949 - ),  
950 - );  
951 - }  
952 -  
953 - Widget _buildScrollCalendarWithActionButtons() {  
954 - final config = CalendarDatePicker2WithActionButtonsConfig(  
955 - calendarType: CalendarDatePicker2Type.range,  
956 - calendarViewMode: CalendarDatePicker2Mode.scroll,  
957 - rangeBidirectional: true,  
958 - scrollViewConstraints: const BoxConstraints(maxHeight: 800),  
959 - scrollViewMonthYearBuilder: (monthDate) {  
960 - return Row(  
961 - mainAxisAlignment: MainAxisAlignment.center,  
962 - children: [  
963 - Container(  
964 - margin: const EdgeInsets.only(bottom: 5),  
965 - padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5),  
966 - decoration: BoxDecoration(  
967 - color: const Color.fromARGB(255, 11, 69, 117),  
968 - borderRadius: BorderRadius.circular(5),  
969 - ),  
970 - child: Row(  
971 - children: [  
972 - Text(  
973 - getLocaleShortMonthFormat(const Locale('en'))  
974 - .format(monthDate),  
975 - style: const TextStyle(  
976 - color: Colors.white,  
977 - fontSize: 15,  
978 - fontWeight: FontWeight.w600,  
979 - ),  
980 - ),  
981 - const SizedBox(width: 5),  
982 - Text(  
983 - monthDate.year.toString(),  
984 - style: const TextStyle(  
985 - color: Colors.white,  
986 - fontSize: 15,  
987 - fontWeight: FontWeight.w600,  
988 - ),  
989 - ),  
990 - ],  
991 - ),  
992 - ),  
993 - ],  
994 - );  
995 - },  
996 - hideScrollViewMonthWeekHeader: true,  
997 - disableModePicker: true,  
998 - );  
999 - return SizedBox(  
1000 - width: 375,  
1001 - child: Column(  
1002 - mainAxisSize: MainAxisSize.min,  
1003 - children: [  
1004 - const SizedBox(height: 10),  
1005 - const Text('Date Picker With Action Buttons'),  
1006 - CalendarDatePicker2WithActionButtons(  
1007 - config: config,  
1008 - value: _rangeDatePickerWithActionButtonsWithValue,  
1009 - onValueChanged: (dates) => setState(  
1010 - () => _rangeDatePickerWithActionButtonsWithValue = dates),  
1011 - ),  
1012 - const SizedBox(height: 10),  
1013 - Row(  
1014 - mainAxisSize: MainAxisSize.min,  
1015 - children: [  
1016 - const Text('Selection(s): '),  
1017 - const SizedBox(width: 10),  
1018 - Flexible(  
1019 - child: Text(  
1020 - _getValueText(  
1021 - config.calendarType,  
1022 - _rangeDatePickerWithActionButtonsWithValue,  
1023 - ),  
1024 - ),  
1025 - ),  
1026 - ],  
1027 - ),  
1028 - const SizedBox(height: 25),  
1029 - ],  
1030 - ),  
1031 - );  
1032 - }  
1033 -}  
1 -# Generated by pub  
2 -# See https://dart.dev/tools/pub/glossary#lockfile  
3 -packages:  
4 - async:  
5 - dependency: transitive  
6 - description:  
7 - name: async  
8 - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63  
9 - url: "https://pub.flutter-io.cn"  
10 - source: hosted  
11 - version: "2.12.0"  
12 - boolean_selector:  
13 - dependency: transitive  
14 - description:  
15 - name: boolean_selector  
16 - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"  
17 - url: "https://pub.flutter-io.cn"  
18 - source: hosted  
19 - version: "2.1.2"  
20 - calendar_date_picker2:  
21 - dependency: "direct main"  
22 - description:  
23 - path: ".."  
24 - relative: true  
25 - source: path  
26 - version: "1.1.5"  
27 - characters:  
28 - dependency: transitive  
29 - description:  
30 - name: characters  
31 - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803  
32 - url: "https://pub.flutter-io.cn"  
33 - source: hosted  
34 - version: "1.4.0"  
35 - clock:  
36 - dependency: transitive  
37 - description:  
38 - name: clock  
39 - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b  
40 - url: "https://pub.flutter-io.cn"  
41 - source: hosted  
42 - version: "1.1.2"  
43 - collection:  
44 - dependency: transitive  
45 - description:  
46 - name: collection  
47 - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"  
48 - url: "https://pub.flutter-io.cn"  
49 - source: hosted  
50 - version: "1.19.1"  
51 - cupertino_icons:  
52 - dependency: "direct main"  
53 - description:  
54 - name: cupertino_icons  
55 - sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be  
56 - url: "https://pub.flutter-io.cn"  
57 - source: hosted  
58 - version: "1.0.5"  
59 - fake_async:  
60 - dependency: transitive  
61 - description:  
62 - name: fake_async  
63 - sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"  
64 - url: "https://pub.flutter-io.cn"  
65 - source: hosted  
66 - version: "1.3.2"  
67 - flutter:  
68 - dependency: "direct main"  
69 - description: flutter  
70 - source: sdk  
71 - version: "0.0.0"  
72 - flutter_lints:  
73 - dependency: "direct dev"  
74 - description:  
75 - name: flutter_lints  
76 - sha256: "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4"  
77 - url: "https://pub.flutter-io.cn"  
78 - source: hosted  
79 - version: "2.0.2"  
80 - flutter_localizations:  
81 - dependency: "direct main"  
82 - description: flutter  
83 - source: sdk  
84 - version: "0.0.0"  
85 - flutter_test:  
86 - dependency: "direct dev"  
87 - description: flutter  
88 - source: sdk  
89 - version: "0.0.0"  
90 - intl:  
91 - dependency: transitive  
92 - description:  
93 - name: intl  
94 - sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf  
95 - url: "https://pub.flutter-io.cn"  
96 - source: hosted  
97 - version: "0.19.0"  
98 - leak_tracker:  
99 - dependency: transitive  
100 - description:  
101 - name: leak_tracker  
102 - sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec  
103 - url: "https://pub.flutter-io.cn"  
104 - source: hosted  
105 - version: "10.0.8"  
106 - leak_tracker_flutter_testing:  
107 - dependency: transitive  
108 - description:  
109 - name: leak_tracker_flutter_testing  
110 - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573  
111 - url: "https://pub.flutter-io.cn"  
112 - source: hosted  
113 - version: "3.0.9"  
114 - leak_tracker_testing:  
115 - dependency: transitive  
116 - description:  
117 - name: leak_tracker_testing  
118 - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"  
119 - url: "https://pub.flutter-io.cn"  
120 - source: hosted  
121 - version: "3.0.1"  
122 - lints:  
123 - dependency: transitive  
124 - description:  
125 - name: lints  
126 - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"  
127 - url: "https://pub.flutter-io.cn"  
128 - source: hosted  
129 - version: "2.0.1"  
130 - matcher:  
131 - dependency: transitive  
132 - description:  
133 - name: matcher  
134 - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2  
135 - url: "https://pub.flutter-io.cn"  
136 - source: hosted  
137 - version: "0.12.17"  
138 - material_color_utilities:  
139 - dependency: transitive  
140 - description:  
141 - name: material_color_utilities  
142 - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec  
143 - url: "https://pub.flutter-io.cn"  
144 - source: hosted  
145 - version: "0.11.1"  
146 - meta:  
147 - dependency: transitive  
148 - description:  
149 - name: meta  
150 - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c  
151 - url: "https://pub.flutter-io.cn"  
152 - source: hosted  
153 - version: "1.16.0"  
154 - path:  
155 - dependency: transitive  
156 - description:  
157 - name: path  
158 - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"  
159 - url: "https://pub.flutter-io.cn"  
160 - source: hosted  
161 - version: "1.9.1"  
162 - sky_engine:  
163 - dependency: transitive  
164 - description: flutter  
165 - source: sdk  
166 - version: "0.0.0"  
167 - source_span:  
168 - dependency: transitive  
169 - description:  
170 - name: source_span  
171 - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"  
172 - url: "https://pub.flutter-io.cn"  
173 - source: hosted  
174 - version: "1.10.1"  
175 - stack_trace:  
176 - dependency: transitive  
177 - description:  
178 - name: stack_trace  
179 - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"  
180 - url: "https://pub.flutter-io.cn"  
181 - source: hosted  
182 - version: "1.12.1"  
183 - stream_channel:  
184 - dependency: transitive  
185 - description:  
186 - name: stream_channel  
187 - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"  
188 - url: "https://pub.flutter-io.cn"  
189 - source: hosted  
190 - version: "2.1.4"  
191 - string_scanner:  
192 - dependency: transitive  
193 - description:  
194 - name: string_scanner  
195 - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"  
196 - url: "https://pub.flutter-io.cn"  
197 - source: hosted  
198 - version: "1.4.1"  
199 - term_glyph:  
200 - dependency: transitive  
201 - description:  
202 - name: term_glyph  
203 - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"  
204 - url: "https://pub.flutter-io.cn"  
205 - source: hosted  
206 - version: "1.2.2"  
207 - test_api:  
208 - dependency: transitive  
209 - description:  
210 - name: test_api  
211 - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd  
212 - url: "https://pub.flutter-io.cn"  
213 - source: hosted  
214 - version: "0.7.4"  
215 - vector_math:  
216 - dependency: transitive  
217 - description:  
218 - name: vector_math  
219 - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"  
220 - url: "https://pub.flutter-io.cn"  
221 - source: hosted  
222 - version: "2.1.4"  
223 - vm_service:  
224 - dependency: transitive  
225 - description:  
226 - name: vm_service  
227 - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"  
228 - url: "https://pub.flutter-io.cn"  
229 - source: hosted  
230 - version: "14.3.1"  
231 -sdks:  
232 - dart: ">=3.7.0-0 <4.0.0"  
233 - flutter: ">=3.18.0-18.0.pre.54"  
1 -name: example  
2 -description: A new Flutter project.  
3 -  
4 -# The following line prevents the package from being accidentally published to  
5 -# pub.dev using `flutter pub publish`. This is preferred for private packages.  
6 -publish_to: 'none' # Remove this line if you wish to publish to pub.dev  
7 -  
8 -# The following defines the version and build number for your application.  
9 -# A version number is three numbers separated by dots, like 1.2.43  
10 -# followed by an optional build number separated by a +.  
11 -# Both the version and the builder number may be overridden in flutter  
12 -# build by specifying --build-name and --build-number, respectively.  
13 -# In Android, build-name is used as versionName while build-number used as versionCode.  
14 -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning  
15 -# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.  
16 -# Read more about iOS versioning at  
17 -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html  
18 -version: 1.0.0+1  
19 -  
20 -environment:  
21 - sdk: ">=2.16.2 <4.0.0"  
22 -  
23 -# Dependencies specify other packages that your package needs in order to work.  
24 -# To automatically upgrade your package dependencies to the latest versions  
25 -# consider running `flutter pub upgrade --major-versions`. Alternatively,  
26 -# dependencies can be manually updated by changing the version numbers below to  
27 -# the latest version available on pub.dev. To see which dependencies have newer  
28 -# versions available, run `flutter pub outdated`.  
29 -dependencies:  
30 - flutter:  
31 - sdk: flutter  
32 - flutter_localizations:  
33 - sdk: flutter  
34 -  
35 - # The following adds the Cupertino Icons font to your application.  
36 - # Use with the CupertinoIcons class for iOS style icons.  
37 - cupertino_icons: ^1.0.2  
38 -  
39 - calendar_date_picker2:  
40 - path: ../  
41 -  
42 -dev_dependencies:  
43 - flutter_test:  
44 - sdk: flutter  
45 -  
46 - # The "flutter_lints" package below contains a set of recommended lints to  
47 - # encourage good coding practices. The lint set provided by the package is  
48 - # activated in the `analysis_options.yaml` file located at the root of your  
49 - # package. See that file for information about deactivating specific lint  
50 - # rules and activating additional ones.  
51 - flutter_lints: ^2.0.1  
52 -  
53 -# For information on the generic Dart part of this file, see the  
54 -# following page: https://dart.dev/tools/pub/pubspec  
55 -  
56 -# The following section is specific to Flutter.  
57 -flutter:  
58 -  
59 - # The following line ensures that the Material Icons font is  
60 - # included with your application, so that you can use the icons in  
61 - # the material Icons class.  
62 - uses-material-design: true  
63 -  
64 - # To add assets to your application, add an assets section, like this:  
65 - # assets:  
66 - # - images/a_dot_burr.jpeg  
67 - # - images/a_dot_ham.jpeg  
68 -  
69 - # An image asset can refer to one or more resolution-specific "variants", see  
70 - # https://flutter.dev/assets-and-images/#resolution-aware.  
71 -  
72 - # For details regarding adding assets from package dependencies, see  
73 - # https://flutter.dev/assets-and-images/#from-packages  
74 -  
75 - # To add custom fonts to your application, add a fonts section here,  
76 - # in this "flutter" section. Each entry in this list should have a  
77 - # "family" key with the font family name, and a "fonts" key with a  
78 - # list giving the asset and other descriptors for the font. For  
79 - # example:  
80 - # fonts:  
81 - # - family: Schyler  
82 - # fonts:  
83 - # - asset: fonts/Schyler-Regular.ttf  
84 - # - asset: fonts/Schyler-Italic.ttf  
85 - # style: italic  
86 - # - family: Trajan Pro  
87 - # fonts:  
88 - # - asset: fonts/TrajanPro.ttf  
89 - # - asset: fonts/TrajanPro_Bold.ttf  
90 - # weight: 700  
91 - #  
92 - # For details regarding fonts from package dependencies,  
93 - # see https://flutter.dev/custom-fonts/#from-packages  
1 -<!DOCTYPE html>  
2 -<html>  
3 -<head>  
4 - <!--  
5 - If you are serving your web app in a path other than the root, change the  
6 - href value below to reflect the base path you are serving from.  
7 -  
8 - The path provided below has to start and end with a slash "/" in order for  
9 - it to work correctly.  
10 -  
11 - For more details:  
12 - * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base  
13 -  
14 - This is a placeholder for base href that will be replaced by the value of  
15 - the `--base-href` argument provided to `flutter build`.  
16 - -->  
17 - <base href="$FLUTTER_BASE_HREF">  
18 -  
19 - <meta charset="UTF-8">  
20 - <meta content="IE=Edge" http-equiv="X-UA-Compatible">  
21 - <meta name="description" content="A new Flutter project.">  
22 -  
23 - <!-- iOS meta tags & icons -->  
24 - <meta name="apple-mobile-web-app-capable" content="yes">  
25 - <meta name="apple-mobile-web-app-status-bar-style" content="black">  
26 - <meta name="apple-mobile-web-app-title" content="example">  
27 - <link rel="apple-touch-icon" href="icons/Icon-192.png">  
28 -  
29 - <!-- Favicon -->  
30 - <link rel="icon" type="image/png" href="favicon.png"/>  
31 -  
32 - <title>example</title>  
33 - <link rel="manifest" href="manifest.json">  
34 -</head>  
35 -<body>  
36 - <!-- This script installs service_worker.js to provide PWA functionality to  
37 - application. For more information, see:  
38 - https://developers.google.com/web/fundamentals/primers/service-workers -->  
39 - <script>  
40 - var serviceWorkerVersion = null;  
41 - var scriptLoaded = false;  
42 - function loadMainDartJs() {  
43 - if (scriptLoaded) {  
44 - return;  
45 - }  
46 - scriptLoaded = true;  
47 - var scriptTag = document.createElement('script');  
48 - scriptTag.src = 'main.dart.js';  
49 - scriptTag.type = 'application/javascript';  
50 - document.body.append(scriptTag);  
51 - }  
52 -  
53 - if ('serviceWorker' in navigator) {  
54 - // Service workers are supported. Use them.  
55 - window.addEventListener('load', function () {  
56 - // Wait for registration to finish before dropping the <script> tag.  
57 - // Otherwise, the browser will load the script multiple times,  
58 - // potentially different versions.  
59 - var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion;  
60 - navigator.serviceWorker.register(serviceWorkerUrl)  
61 - .then((reg) => {  
62 - function waitForActivation(serviceWorker) {  
63 - serviceWorker.addEventListener('statechange', () => {  
64 - if (serviceWorker.state == 'activated') {  
65 - console.log('Installed new service worker.');  
66 - loadMainDartJs();  
67 - }  
68 - });  
69 - }  
70 - if (!reg.active && (reg.installing || reg.waiting)) {  
71 - // No active web worker and we have installed or are installing  
72 - // one for the first time. Simply wait for it to activate.  
73 - waitForActivation(reg.installing || reg.waiting);  
74 - } else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) {  
75 - // When the app updates the serviceWorkerVersion changes, so we  
76 - // need to ask the service worker to update.  
77 - console.log('New service worker available.');  
78 - reg.update();  
79 - waitForActivation(reg.installing);  
80 - } else {  
81 - // Existing service worker is still good.  
82 - console.log('Loading app from service worker.');  
83 - loadMainDartJs();  
84 - }  
85 - });  
86 -  
87 - // If service worker doesn't succeed in a reasonable amount of time,  
88 - // fallback to plaint <script> tag.  
89 - setTimeout(() => {  
90 - if (!scriptLoaded) {  
91 - console.warn(  
92 - 'Failed to load app from service worker. Falling back to plain <script> tag.',  
93 - );  
94 - loadMainDartJs();  
95 - }  
96 - }, 4000);  
97 - });  
98 - } else {  
99 - // Service workers not supported. Just drop the <script> tag.  
100 - loadMainDartJs();  
101 - }  
102 - </script>  
103 -</body>  
104 -</html>  
1 -{  
2 - "name": "example",  
3 - "short_name": "example",  
4 - "start_url": ".",  
5 - "display": "standalone",  
6 - "background_color": "#0175C2",  
7 - "theme_color": "#0175C2",  
8 - "description": "A new Flutter project.",  
9 - "orientation": "portrait-primary",  
10 - "prefer_related_applications": false,  
11 - "icons": [  
12 - {  
13 - "src": "icons/Icon-192.png",  
14 - "sizes": "192x192",  
15 - "type": "image/png"  
16 - },  
17 - {  
18 - "src": "icons/Icon-512.png",  
19 - "sizes": "512x512",  
20 - "type": "image/png"  
21 - },  
22 - {  
23 - "src": "icons/Icon-maskable-192.png",  
24 - "sizes": "192x192",  
25 - "type": "image/png",  
26 - "purpose": "maskable"  
27 - },  
28 - {  
29 - "src": "icons/Icon-maskable-512.png",  
30 - "sizes": "512x512",  
31 - "type": "image/png",  
32 - "purpose": "maskable"  
33 - }  
34 - ]  
35 -}  
1 -cmake_minimum_required(VERSION 3.14)  
2 -project(example LANGUAGES CXX)  
3 -  
4 -set(BINARY_NAME "example")  
5 -  
6 -cmake_policy(SET CMP0063 NEW)  
7 -  
8 -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")  
9 -  
10 -# Configure build options.  
11 -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)  
12 -if(IS_MULTICONFIG)  
13 - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release"  
14 - CACHE STRING "" FORCE)  
15 -else()  
16 - if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)  
17 - set(CMAKE_BUILD_TYPE "Debug" CACHE  
18 - STRING "Flutter build mode" FORCE)  
19 - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS  
20 - "Debug" "Profile" "Release")  
21 - endif()  
22 -endif()  
23 -  
24 -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")  
25 -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")  
26 -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}")  
27 -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}")  
28 -  
29 -# Use Unicode for all projects.  
30 -add_definitions(-DUNICODE -D_UNICODE)  
31 -  
32 -# Compilation settings that should be applied to most targets.  
33 -function(APPLY_STANDARD_SETTINGS TARGET)  
34 - target_compile_features(${TARGET} PUBLIC cxx_std_17)  
35 - target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")  
36 - target_compile_options(${TARGET} PRIVATE /EHsc)  
37 - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0")  
38 - target_compile_definitions(${TARGET} PRIVATE "$<$<CONFIG:Debug>:_DEBUG>")  
39 -endfunction()  
40 -  
41 -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")  
42 -  
43 -# Flutter library and tool build rules.  
44 -add_subdirectory(${FLUTTER_MANAGED_DIR})  
45 -  
46 -# Application build  
47 -add_subdirectory("runner")  
48 -  
49 -# Generated plugin build rules, which manage building the plugins and adding  
50 -# them to the application.  
51 -include(flutter/generated_plugins.cmake)  
52 -  
53 -  
54 -# === Installation ===  
55 -# Support files are copied into place next to the executable, so that it can  
56 -# run in place. This is done instead of making a separate bundle (as on Linux)  
57 -# so that building and running from within Visual Studio will work.  
58 -set(BUILD_BUNDLE_DIR "$<TARGET_FILE_DIR:${BINARY_NAME}>")  
59 -# Make the "install" step default, as it's required to run.  
60 -set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)  
61 -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)  
62 - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)  
63 -endif()  
64 -  
65 -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")  
66 -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}")  
67 -  
68 -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"  
69 - COMPONENT Runtime)  
70 -  
71 -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"  
72 - COMPONENT Runtime)  
73 -  
74 -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"  
75 - COMPONENT Runtime)  
76 -  
77 -if(PLUGIN_BUNDLED_LIBRARIES)  
78 - install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"  
79 - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"  
80 - COMPONENT Runtime)  
81 -endif()  
82 -  
83 -# Fully re-copy the assets directory on each build to avoid having stale files  
84 -# from a previous install.  
85 -set(FLUTTER_ASSET_DIR_NAME "flutter_assets")  
86 -install(CODE "  
87 - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")  
88 - " COMPONENT Runtime)  
89 -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"  
90 - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)  
91 -  
92 -# Install the AOT library on non-Debug builds only.  
93 -install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"  
94 - CONFIGURATIONS Profile;Release  
95 - COMPONENT Runtime)  
1 -cmake_minimum_required(VERSION 3.14)  
2 -  
3 -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")  
4 -  
5 -# Configuration provided via flutter tool.  
6 -include(${EPHEMERAL_DIR}/generated_config.cmake)  
7 -  
8 -# TODO: Move the rest of this into files in ephemeral. See  
9 -# https://github.com/flutter/flutter/issues/57146.  
10 -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")  
11 -  
12 -# === Flutter Library ===  
13 -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")  
14 -  
15 -# Published to parent scope for install step.  
16 -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)  
17 -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)  
18 -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)  
19 -set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE)  
20 -  
21 -list(APPEND FLUTTER_LIBRARY_HEADERS  
22 - "flutter_export.h"  
23 - "flutter_windows.h"  
24 - "flutter_messenger.h"  
25 - "flutter_plugin_registrar.h"  
26 - "flutter_texture_registrar.h"  
27 -)  
28 -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/")  
29 -add_library(flutter INTERFACE)  
30 -target_include_directories(flutter INTERFACE  
31 - "${EPHEMERAL_DIR}"  
32 -)  
33 -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib")  
34 -add_dependencies(flutter flutter_assemble)  
35 -  
36 -# === Wrapper ===  
37 -list(APPEND CPP_WRAPPER_SOURCES_CORE  
38 - "core_implementations.cc"  
39 - "standard_codec.cc"  
40 -)  
41 -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/")  
42 -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN  
43 - "plugin_registrar.cc"  
44 -)  
45 -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/")  
46 -list(APPEND CPP_WRAPPER_SOURCES_APP  
47 - "flutter_engine.cc"  
48 - "flutter_view_controller.cc"  
49 -)  
50 -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/")  
51 -  
52 -# Wrapper sources needed for a plugin.  
53 -add_library(flutter_wrapper_plugin STATIC  
54 - ${CPP_WRAPPER_SOURCES_CORE}  
55 - ${CPP_WRAPPER_SOURCES_PLUGIN}  
56 -)  
57 -apply_standard_settings(flutter_wrapper_plugin)  
58 -set_target_properties(flutter_wrapper_plugin PROPERTIES  
59 - POSITION_INDEPENDENT_CODE ON)  
60 -set_target_properties(flutter_wrapper_plugin PROPERTIES  
61 - CXX_VISIBILITY_PRESET hidden)  
62 -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter)  
63 -target_include_directories(flutter_wrapper_plugin PUBLIC  
64 - "${WRAPPER_ROOT}/include"  
65 -)  
66 -add_dependencies(flutter_wrapper_plugin flutter_assemble)  
67 -  
68 -# Wrapper sources needed for the runner.  
69 -add_library(flutter_wrapper_app STATIC  
70 - ${CPP_WRAPPER_SOURCES_CORE}  
71 - ${CPP_WRAPPER_SOURCES_APP}  
72 -)  
73 -apply_standard_settings(flutter_wrapper_app)  
74 -target_link_libraries(flutter_wrapper_app PUBLIC flutter)  
75 -target_include_directories(flutter_wrapper_app PUBLIC  
76 - "${WRAPPER_ROOT}/include"  
77 -)  
78 -add_dependencies(flutter_wrapper_app flutter_assemble)  
79 -  
80 -# === Flutter tool backend ===  
81 -# _phony_ is a non-existent file to force this command to run every time,  
82 -# since currently there's no way to get a full input/output list from the  
83 -# flutter tool.  
84 -set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_")  
85 -set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE)  
86 -add_custom_command(  
87 - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}  
88 - ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN}  
89 - ${CPP_WRAPPER_SOURCES_APP}  
90 - ${PHONY_OUTPUT}  
91 - COMMAND ${CMAKE_COMMAND} -E env  
92 - ${FLUTTER_TOOL_ENVIRONMENT}  
93 - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"  
94 - windows-x64 $<CONFIG>  
95 - VERBATIM  
96 -)  
97 -add_custom_target(flutter_assemble DEPENDS  
98 - "${FLUTTER_LIBRARY}"  
99 - ${FLUTTER_LIBRARY_HEADERS}  
100 - ${CPP_WRAPPER_SOURCES_CORE}  
101 - ${CPP_WRAPPER_SOURCES_PLUGIN}  
102 - ${CPP_WRAPPER_SOURCES_APP}  
103 -)  
1 -//  
2 -// Generated file. Do not edit.  
3 -//  
4 -  
5 -// clang-format off  
6 -  
7 -#include "generated_plugin_registrant.h"  
8 -  
9 -  
10 -void RegisterPlugins(flutter::PluginRegistry* registry) {  
11 -}  
1 -//  
2 -// Generated file. Do not edit.  
3 -//  
4 -  
5 -// clang-format off  
6 -  
7 -#ifndef GENERATED_PLUGIN_REGISTRANT_  
8 -#define GENERATED_PLUGIN_REGISTRANT_  
9 -  
10 -#include <flutter/plugin_registry.h>  
11 -  
12 -// Registers Flutter plugins.  
13 -void RegisterPlugins(flutter::PluginRegistry* registry);  
14 -  
15 -#endif // GENERATED_PLUGIN_REGISTRANT_  
1 -#  
2 -# Generated file, do not edit.  
3 -#  
4 -  
5 -list(APPEND FLUTTER_PLUGIN_LIST  
6 -)  
7 -  
8 -list(APPEND FLUTTER_FFI_PLUGIN_LIST  
9 -)  
10 -  
11 -set(PLUGIN_BUNDLED_LIBRARIES)  
12 -  
13 -foreach(plugin ${FLUTTER_PLUGIN_LIST})  
14 - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})  
15 - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)  
16 - list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)  
17 - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})  
18 -endforeach(plugin)  
19 -  
20 -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})  
21 - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})  
22 - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})  
23 -endforeach(ffi_plugin)