Compare commits

...

37 Commits

Author SHA1 Message Date
5b594b471f feat:新增防抖工具类 2026-01-23 15:49:55 +08:00
c6a42fa9bb feat:新增防抖工具类 2026-01-23 15:41:31 +08:00
d19a49da0d fix:时间组件底部显示异常 2026-01-23 15:27:24 +08:00
1ea9a8bf11 no message 2026-01-20 18:05:38 +08:00
019850148f fix:图片使用图片缓存组件 2026-01-20 18:01:43 +08:00
740af2a459 fix:时间组件底部显示异常 2026-01-07 14:35:51 +08:00
0c07b6ba37 fix:时间组件底部显示异常 2026-01-07 14:11:19 +08:00
d8e4cfdaf9 fix:时间组件底部显示异常 2026-01-07 14:09:00 +08:00
d2e7d8f0af fix:播放插件切换名字 2026-01-06 15:34:32 +08:00
378303a8ef fix:播放插件切换名字 2026-01-06 15:27:05 +08:00
24dc8c5778 fix:视频播放组件rename 2026-01-05 17:49:02 +08:00
922be46a26 feat:新增视频播放组件 2026-01-05 17:43:34 +08:00
14c081c0e3 fix:优化上传图片组件数量限制 2025-12-26 17:37:01 +08:00
d4644e00e6 no message 2025-12-26 17:33:57 +08:00
96313fa03d Merge remote-tracking branch 'origin/main' 2025-12-26 17:33:43 +08:00
b329b3394d fix:优化上传图片组件数量限制 2025-12-26 17:33:21 +08:00
3e2f011463 feat(http):http webview top 2025-12-22 11:26:28 +08:00
ff3c7402a9 feat(http):http webview top 2025-12-19 18:06:05 +08:00
70e7fe99af feat(http):http webview 2025-12-19 17:43:20 +08:00
1b3d25ef39 feat(http):http webview 2025-12-19 17:36:03 +08:00
1aa3eb38f1 Merge remote-tracking branch 'origin/main' 2025-12-08 14:04:19 +08:00
6beb008489 feat(http):http webview 2025-12-08 14:04:04 +08:00
76e45db37d feat:优化加载提示文案 2025-12-03 10:16:27 +08:00
5befd4d1c8 feat(http):http webview 2025-11-21 16:26:08 +08:00
eadf95609d Merge remote-tracking branch 'origin/main' 2025-11-20 14:38:37 +08:00
682308d93c feat(http):http 取消转圈 2025-11-20 14:38:25 +08:00
11d2bd02ff no message 2025-11-17 17:47:26 +08:00
aaae40ae02 feat:增加图片编辑显示参数 2025-11-17 16:01:13 +08:00
4ab9a5ad18 feat:暴露出编辑图片功能是否显示 2025-11-17 15:54:21 +08:00
b086c5c5c9 fix:增加非空调试 2025-11-14 14:12:47 +08:00
f2ab06e4bb no message 2025-11-14 13:55:55 +08:00
13d5a31197 feat:调整上传逻辑 2025-11-14 13:43:24 +08:00
f0f8d9ef69 feat:增加参数 2025-11-14 11:35:45 +08:00
74f412886c Merge branch 'main' of code.keplerjai.com:wangliankun/flutter_common 2025-11-14 09:51:23 +08:00
94a356994e feat:预览图片组件新增编辑按钮及事件 2025-11-14 09:51:16 +08:00
7716bba906 Merge remote-tracking branch 'origin/main' 2025-11-11 14:56:27 +08:00
b70e73542c feat(create):exif 2025-11-11 14:56:13 +08:00
28 changed files with 3939 additions and 509 deletions

View File

@@ -1,6 +1,12 @@
{
"configVersion": 2,
"packages": [
{
"name": "archive",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/archive-4.0.7",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "args",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/args-2.7.0",
@@ -9,34 +15,64 @@
},
{
"name": "async",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/async-2.11.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/async-2.13.0",
"packageUri": "lib/",
"languageVersion": "2.18"
"languageVersion": "3.4"
},
{
"name": "boolean_selector",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/boolean_selector-2.1.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/boolean_selector-2.1.2",
"packageUri": "lib/",
"languageVersion": "2.17"
"languageVersion": "3.1"
},
{
"name": "cached_network_image",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/cached_network_image-3.4.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "cached_network_image_platform_interface",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/cached_network_image_platform_interface-4.1.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "cached_network_image_web",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/cached_network_image_web-1.3.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "characters",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/characters-1.3.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/characters-1.4.0",
"packageUri": "lib/",
"languageVersion": "2.12"
"languageVersion": "3.4"
},
{
"name": "clock",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/clock-1.1.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/clock-1.1.2",
"packageUri": "lib/",
"languageVersion": "2.12"
"languageVersion": "3.4"
},
{
"name": "code_assets",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/code_assets-1.0.0",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "collection",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/collection-1.19.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/collection-1.19.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "colorfilter_generator",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/colorfilter_generator-0.0.8",
"packageUri": "lib/",
"languageVersion": "2.15"
},
{
"name": "common_utils",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/common_utils-2.1.0",
@@ -51,13 +87,13 @@
},
{
"name": "cross_file",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/cross_file-0.3.4+2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/cross_file-0.3.5+1",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "3.8"
},
{
"name": "crypto",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/crypto-3.0.6",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/crypto-3.0.7",
"packageUri": "lib/",
"languageVersion": "3.4"
},
@@ -81,15 +117,15 @@
},
{
"name": "device_info_plus",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.3.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.7"
},
{
"name": "device_info_plus_platform_interface",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus_platform_interface-7.0.2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus_platform_interface-7.0.3",
"packageUri": "lib/",
"languageVersion": "2.18"
"languageVersion": "3.7"
},
{
"name": "dio",
@@ -104,17 +140,35 @@
"languageVersion": "3.3"
},
{
"name": "fake_async",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/fake_async-1.3.1",
"name": "easy_debounce",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/easy_debounce-2.0.3",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "ffi",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/ffi-2.1.3",
"name": "extended_image",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/extended_image-8.3.1",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "extended_image_library",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/extended_image_library-4.0.6",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "fake_async",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/fake_async-1.3.3",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "ffi",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/ffi-2.1.5",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "file",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file-7.0.1",
@@ -123,27 +177,45 @@
},
{
"name": "file_selector_linux",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.3+2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.4",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "3.8"
},
{
"name": "file_selector_macos",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.4+3",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.5",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "file_selector_platform_interface",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_platform_interface-2.7.0",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "file_selector_windows",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+5",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "fixnum",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/fixnum-1.1.1",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "flex_color_picker",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flex_color_picker-3.8.0",
"packageUri": "lib/",
"languageVersion": "3.6"
},
{
"name": "file_selector_platform_interface",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_platform_interface-2.6.2",
"name": "flex_seed_scheme",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flex_seed_scheme-4.0.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "file_selector_windows",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+4",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.6"
},
{
"name": "flustars_flutter3",
@@ -155,7 +227,13 @@
"name": "flutter",
"rootUri": "file:///Users/wxl/Desktop/flutter/packages/flutter",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "3.8"
},
{
"name": "flutter_cache_manager",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_cache_manager-3.4.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "flutter_easyloading",
@@ -219,9 +297,9 @@
},
{
"name": "flutter_plugin_android_lifecycle",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.29",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.33",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "flutter_screenutil",
@@ -245,13 +323,13 @@
"name": "flutter_test",
"rootUri": "file:///Users/wxl/Desktop/flutter/packages/flutter_test",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "3.8"
},
{
"name": "flutter_web_plugins",
"rootUri": "file:///Users/wxl/Desktop/flutter/packages/flutter_web_plugins",
"packageUri": "lib/",
"languageVersion": "3.2"
"languageVersion": "3.8"
},
{
"name": "flutter_widget_from_html_core",
@@ -259,12 +337,42 @@
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "font_awesome_flutter",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/font_awesome_flutter-10.12.0",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "freezed_annotation",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/freezed_annotation-3.1.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "get",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/get-4.7.2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/get-4.7.3",
"packageUri": "lib/",
"languageVersion": "2.15"
},
{
"name": "glob",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/glob-2.1.3",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "hand_signature",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/hand_signature-3.1.0+2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "hooks",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/hooks-1.0.0",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "html",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/html-0.15.6",
@@ -273,16 +381,34 @@
},
{
"name": "http",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http-1.5.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http-1.6.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "http_client_helper",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http_client_helper-3.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "http_parser",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http_parser-4.1.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "image",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image-4.7.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "image_editor_plus",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_editor_plus-1.0.6",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "image_gallery_saver_plus",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1",
@@ -291,27 +417,27 @@
},
{
"name": "image_picker",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker-1.2.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker-1.2.1",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.7"
},
{
"name": "image_picker_android",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.13",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.13+12",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "image_picker_for_web",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.1.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.1.1",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.8"
},
{
"name": "image_picker_ios",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.13",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.13+3",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "image_picker_linux",
@@ -321,15 +447,15 @@
},
{
"name": "image_picker_macos",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.2+1",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "image_picker_platform_interface",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_platform_interface-2.11.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_platform_interface-2.11.1",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.7"
},
{
"name": "image_picker_windows",
@@ -343,21 +469,33 @@
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "js",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/js-0.7.2",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "json_annotation",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/json_annotation-4.9.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "leak_tracker",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker-10.0.7",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker-11.0.2",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "leak_tracker_flutter_testing",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker_flutter_testing-3.0.8",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker_flutter_testing-3.0.10",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "leak_tracker_testing",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker_testing-3.0.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker_testing-3.0.2",
"packageUri": "lib/",
"languageVersion": "3.2"
},
@@ -375,9 +513,9 @@
},
{
"name": "matcher",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/matcher-0.12.16+1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/matcher-0.12.17",
"packageUri": "lib/",
"languageVersion": "3.0"
"languageVersion": "3.4"
},
{
"name": "material_color_utilities",
@@ -386,23 +524,53 @@
"languageVersion": "2.17"
},
{
"name": "meta",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/meta-1.15.0",
"name": "matrix2d",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/matrix2d-1.0.4",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "meta",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/meta-1.17.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "mime",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/mime-2.0.0",
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "native_toolchain_c",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/native_toolchain_c-0.17.4",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "nested",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/nested-1.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "objective_c",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/objective_c-9.2.4",
"packageUri": "lib/",
"languageVersion": "3.10"
},
{
"name": "octo_image",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/octo_image-2.1.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "omni_video_player",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/omni_video_player-3.7.2",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "package_info_plus",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0",
@@ -417,9 +585,9 @@
},
{
"name": "path",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path-1.9.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path-1.9.1",
"packageUri": "lib/",
"languageVersion": "3.0"
"languageVersion": "3.4"
},
{
"name": "path_provider",
@@ -429,15 +597,15 @@
},
{
"name": "path_provider_android",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.17",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.22",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "path_provider_foundation",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.4.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.6.0",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "3.10"
},
{
"name": "path_provider_linux",
@@ -495,9 +663,9 @@
},
{
"name": "petitparser",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/petitparser-6.0.2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/petitparser-7.0.1",
"packageUri": "lib/",
"languageVersion": "3.2"
"languageVersion": "3.8"
},
{
"name": "photo_view",
@@ -517,12 +685,24 @@
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "posix",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/posix-6.0.3",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "provider",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/provider-6.1.5+1",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "pub_semver",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/pub_semver-2.2.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "pull_to_refresh",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/pull_to_refresh-2.0.0",
@@ -535,6 +715,18 @@
"packageUri": "lib/",
"languageVersion": "2.14"
},
{
"name": "reorderables",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/reorderables-0.6.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "rxdart",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/rxdart-0.28.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "screen_brightness",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness-2.1.7",
@@ -578,22 +770,28 @@
"languageVersion": "3.0"
},
{
"name": "shared_preferences",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences-2.5.3",
"name": "screenshot",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screenshot-3.0.0",
"packageUri": "lib/",
"languageVersion": "3.5"
"languageVersion": "2.12"
},
{
"name": "shared_preferences",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences-2.5.4",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "shared_preferences_android",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.4.11",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.4.18",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "shared_preferences_foundation",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.4",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.6",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.9"
},
{
"name": "shared_preferences_linux",
@@ -619,17 +817,23 @@
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "simple_sparse_list",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/simple_sparse_list-0.1.4",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "sky_engine",
"rootUri": "file:///Users/wxl/Desktop/flutter/bin/cache/pkg/sky_engine",
"packageUri": "lib/",
"languageVersion": "3.2"
"languageVersion": "3.8"
},
{
"name": "source_span",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/source_span-1.10.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/source_span-1.10.1",
"packageUri": "lib/",
"languageVersion": "2.18"
"languageVersion": "3.1"
},
{
"name": "sp_util",
@@ -637,9 +841,39 @@
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "sqflite",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.4.2",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "sqflite_android",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_android-2.4.2+2",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "sqflite_common",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_common-2.5.6",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "sqflite_darwin",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_darwin-2.4.2",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "sqflite_platform_interface",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_platform_interface-2.4.0",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "stack_trace",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/stack_trace-1.12.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/stack_trace-1.12.1",
"packageUri": "lib/",
"languageVersion": "3.4"
},
@@ -651,33 +885,33 @@
},
{
"name": "stream_channel",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/stream_channel-2.1.2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/stream_channel-2.1.4",
"packageUri": "lib/",
"languageVersion": "2.19"
"languageVersion": "3.3"
},
{
"name": "string_scanner",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/string_scanner-1.3.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/string_scanner-1.4.1",
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "synchronized",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/synchronized-3.3.0+3",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/synchronized-3.4.0",
"packageUri": "lib/",
"languageVersion": "3.5"
"languageVersion": "3.8"
},
{
"name": "term_glyph",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/term_glyph-1.2.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/term_glyph-1.2.2",
"packageUri": "lib/",
"languageVersion": "2.12"
"languageVersion": "3.1"
},
{
"name": "test_api",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/test_api-0.7.3",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/test_api-0.7.7",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.5"
},
{
"name": "transparent_image",
@@ -691,6 +925,12 @@
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "unicode",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/unicode-1.1.9",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher-6.3.2",
@@ -699,27 +939,27 @@
},
{
"name": "url_launcher_android",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.3.17",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.3.28",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "url_launcher_ios",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.3.3",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.3.6",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.9"
},
{
"name": "url_launcher_linux",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.2.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.2.2",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "3.8"
},
{
"name": "url_launcher_macos",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.2.2",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.2.5",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "3.9"
},
{
"name": "url_launcher_platform_interface",
@@ -729,45 +969,51 @@
},
{
"name": "url_launcher_web",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.4.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.4.2",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.10"
},
{
"name": "url_launcher_windows",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.1.4",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.1.5",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.8"
},
{
"name": "uuid",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/uuid-4.5.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "vector_math",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/vector_math-2.1.4",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/vector_math-2.2.0",
"packageUri": "lib/",
"languageVersion": "2.14"
"languageVersion": "3.1"
},
{
"name": "video_player",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player-2.10.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player-2.10.1",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.7"
},
{
"name": "video_player_android",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.8.4",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.9.1",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.9"
},
{
"name": "video_player_avfoundation",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.8.4",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.9.0",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.10"
},
{
"name": "video_player_platform_interface",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_platform_interface-6.4.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_platform_interface-6.6.0",
"packageUri": "lib/",
"languageVersion": "3.6"
"languageVersion": "3.7"
},
{
"name": "video_player_web",
@@ -776,10 +1022,22 @@
"languageVersion": "3.6"
},
{
"name": "vm_service",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/vm_service-14.3.0",
"name": "visibility_detector",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/visibility_detector-0.4.0+2",
"packageUri": "lib/",
"languageVersion": "3.3"
"languageVersion": "2.12"
},
{
"name": "vm_service",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/vm_service-15.0.2",
"packageUri": "lib/",
"languageVersion": "3.5"
},
{
"name": "volume_controller",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/volume_controller-3.4.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "wakelock_plus",
@@ -801,15 +1059,15 @@
},
{
"name": "win32",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/win32-5.10.1",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/win32-5.15.0",
"packageUri": "lib/",
"languageVersion": "3.5"
"languageVersion": "3.8"
},
{
"name": "win32_registry",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/win32_registry-1.1.5",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/win32_registry-2.1.0",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.7"
},
{
"name": "xdg_directories",
@@ -819,9 +1077,21 @@
},
{
"name": "xml",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/xml-6.5.0",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/xml-6.6.1",
"packageUri": "lib/",
"languageVersion": "3.2"
"languageVersion": "3.8"
},
{
"name": "yaml",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/yaml-3.1.3",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "youtube_explode_dart",
"rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/youtube_explode_dart-3.0.5",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "flutter_common",
@@ -830,10 +1100,9 @@
"languageVersion": "3.6"
}
],
"generated": "2025-11-10T09:10:29.853637Z",
"generator": "pub",
"generatorVersion": "3.6.2",
"generatorVersion": "3.10.4",
"flutterRoot": "file:///Users/wxl/Desktop/flutter",
"flutterVersion": "3.27.4",
"flutterVersion": "3.38.5",
"pubCache": "file:///Users/wxl/.pub-cache"
}

View File

@@ -1,3 +1,7 @@
archive
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/archive-4.0.7/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/archive-4.0.7/lib/
args
3.3
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/args-2.7.0/
@@ -22,6 +26,10 @@ collection
3.4
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/collection-1.19.0/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/collection-1.19.0/lib/
colorfilter_generator
2.15
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/colorfilter_generator-0.0.8/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/colorfilter_generator-0.0.8/lib/
common_utils
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/common_utils-2.1.0/
@@ -66,6 +74,14 @@ dio_web_adapter
3.3
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/dio_web_adapter-2.1.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/dio_web_adapter-2.1.1/lib/
extended_image
2.18
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/extended_image-8.3.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/extended_image-8.3.1/lib/
extended_image_library
3.2
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/extended_image_library-4.0.6/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/extended_image_library-4.0.6/lib/
fake_async
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/fake_async-1.3.1/
@@ -94,6 +110,14 @@ file_selector_windows
3.4
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+4/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+4/lib/
flex_color_picker
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flex_color_picker-3.7.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flex_color_picker-3.7.1/lib/
flex_seed_scheme
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flex_seed_scheme-3.5.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flex_seed_scheme-3.5.1/lib/
flustars_flutter3
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flustars_flutter3-3.0.0/
@@ -158,10 +182,18 @@ flutter_widget_from_html_core
3.4
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_widget_from_html_core-0.16.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_widget_from_html_core-0.16.1/lib/
font_awesome_flutter
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/font_awesome_flutter-10.9.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/font_awesome_flutter-10.9.1/lib/
get
2.15
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/get-4.7.2/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/get-4.7.2/lib/
hand_signature
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/hand_signature-3.1.0+2/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/hand_signature-3.1.0+2/lib/
html
3.2
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/html-0.15.6/
@@ -170,10 +202,22 @@ http
3.4
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http-1.5.0/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http-1.5.0/lib/
http_client_helper
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http_client_helper-3.0.0/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http_client_helper-3.0.0/lib/
http_parser
3.4
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http_parser-4.1.2/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/http_parser-4.1.2/lib/
image
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image-4.5.4/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image-4.5.4/lib/
image_editor_plus
2.17
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_editor_plus-1.0.6/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_editor_plus-1.0.6/lib/
image_gallery_saver_plus
3.5
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1/
@@ -214,6 +258,10 @@ intl
3.3
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/intl-0.20.2/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/intl-0.20.2/lib/
js
3.1
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/js-0.7.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/js-0.7.1/lib/
leak_tracker
3.2
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker-10.0.7/
@@ -242,6 +290,10 @@ material_color_utilities
2.17
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/material_color_utilities-0.11.1/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/material_color_utilities-0.11.1/lib/
matrix2d
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/matrix2d-1.0.4/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/matrix2d-1.0.4/lib/
meta
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/meta-1.15.0/
@@ -330,6 +382,10 @@ plugin_platform_interface
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/plugin_platform_interface-2.1.8/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/plugin_platform_interface-2.1.8/lib/
posix
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/posix-6.0.3/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/posix-6.0.3/lib/
provider
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/provider-6.1.5+1/
@@ -342,6 +398,10 @@ rational
2.14
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/rational-2.2.3/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/rational-2.2.3/lib/
reorderables
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/reorderables-0.6.0/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/reorderables-0.6.0/lib/
screen_brightness
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness-2.1.7/
@@ -370,6 +430,10 @@ screen_brightness_windows
3.0
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_windows-2.1.0/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_windows-2.1.0/lib/
screenshot
2.12
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screenshot-3.0.0/
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screenshot-3.0.0/lib/
shared_preferences
3.5
file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences-2.5.3/

View File

@@ -1 +1 @@
3.27.4
3.38.5

55
.flutter-plugins Normal file
View File

@@ -0,0 +1,55 @@
# This is a generated file; do not edit or check into version control.
device_info_plus=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.3.0/
file_selector_linux=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.3+2/
file_selector_macos=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.4+3/
file_selector_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+4/
flutter_inappwebview=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview-6.1.5/
flutter_inappwebview_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_android-1.1.3/
flutter_inappwebview_ios=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_ios-1.1.2/
flutter_inappwebview_macos=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_macos-1.1.2/
flutter_inappwebview_web=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_web-1.1.2/
flutter_inappwebview_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_windows-0.6.0/
flutter_plugin_android_lifecycle=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.29/
image_gallery_saver_plus=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1/
image_picker=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker-1.2.0/
image_picker_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.13/
image_picker_for_web=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.1.0/
image_picker_ios=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.13/
image_picker_linux=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_linux-0.2.2/
image_picker_macos=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.2/
image_picker_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_windows-0.2.2/
package_info_plus=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/
path_provider=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider-2.1.5/
path_provider_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.17/
path_provider_foundation=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.4.1/
path_provider_linux=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-2.2.1/
path_provider_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-2.3.0/
permission_handler=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler-11.4.0/
permission_handler_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_android-12.1.0/
permission_handler_apple=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_apple-9.4.7/
permission_handler_html=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_html-0.1.3+5/
permission_handler_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_windows-0.2.1/
screen_brightness=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness-2.1.7/
screen_brightness_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_android-2.1.3/
screen_brightness_ios=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_ios-2.1.2/
screen_brightness_macos=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_macos-2.1.1/
screen_brightness_ohos=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_ohos-2.1.2/
screen_brightness_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_windows-2.1.0/
shared_preferences=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences-2.5.3/
shared_preferences_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.4.11/
shared_preferences_foundation=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.4/
shared_preferences_linux=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_linux-2.4.1/
shared_preferences_web=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_web-2.4.3/
shared_preferences_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_windows-2.4.1/
url_launcher=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher-6.3.2/
url_launcher_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.3.17/
url_launcher_ios=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.3.3/
url_launcher_linux=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.2.1/
url_launcher_macos=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.2.2/
url_launcher_web=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.4.1/
url_launcher_windows=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.1.4/
video_player=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player-2.10.0/
video_player_android=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.8.4/
video_player_avfoundation=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.8.4/
video_player_web=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_web-2.4.0/
wakelock_plus=/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/

File diff suppressed because one or more lines are too long

6
.idea/MarsCodeWorkspaceAppSettings.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="com.codeverse.userSettings.MarscodeWorkspaceAppSettingsState">
<option name="progress" value="1.0" />
</component>
</project>

View File

@@ -6,6 +6,63 @@
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/.pub" />
<excludeFolder url="file://$MODULE_DIR$/build" />
<excludeFolder url="file://$MODULE_DIR$/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/device_info_plus/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/file_selector_linux/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/image_picker_linux/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/package_info_plus/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/shared_preferences_linux/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/shared_preferences_linux/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/shared_preferences_linux/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/shared_preferences_linux/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/shared_preferences_linux/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/shared_preferences_linux/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/wakelock_plus/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/volume_controller/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/volume_controller/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/volume_controller/build" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/volume_controller/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/volume_controller/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/linux/flutter/ephemeral/.plugin_symlinks/volume_controller/example/build" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

1476
.idea/libraries/Dart_Packages.xml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -3,49 +3,53 @@
<CLASSES>
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/path_provider-2.1.5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_windows-0.2.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.4.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness-2.1.7" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.2.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/video_player_web-2.4.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.13" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.3.17" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_html-0.1.3+5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview-6.1.5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_ios-1.1.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.1.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.4+3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher-6.3.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.4.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_windows-2.4.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.1.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.17" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.13" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_web-2.4.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.2.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.4.11" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.3+2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/video_player-2.10.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_linux-2.4.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-2.2.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.3.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences-2.5.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_linux-0.2.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker-1.2.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.3.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.8.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/permission_handler-11.4.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_windows-0.6.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-2.3.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_macos-1.1.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_android-1.1.3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_web-1.1.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.8.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/permission_handler-11.4.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/video_player-2.10.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/volume_controller-3.4.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.9.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.2.5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.1.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.4.18" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.1.5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.2.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.2+1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+5" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.3.6" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker-1.2.1" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences-2.5.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.13+3" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.3.28" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.4" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.6" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.22" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/sqflite-2.4.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/sqflite_android-2.4.2+2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/sqflite_darwin-2.4.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.13+12" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.4.2" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.6.0" />
<root url="file://$USER_HOME$/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.9.0" />
</CLASSES>
<JAVADOC />
<SOURCES />

View File

@@ -19,7 +19,7 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
id "org.jetbrains.kotlin.android" version "2.2.21" apply false
}
include ":app"

View File

@@ -0,0 +1,62 @@
import 'package:dio/dio.dart';
// import 'package:exif/exif.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
class CustomerExifPage extends StatefulWidget {
const CustomerExifPage({super.key});
@override
State<CustomerExifPage> createState() => _CustomerExifPageState();
}
class _CustomerExifPageState extends State<CustomerExifPage> {
XFile? pickedFile;
Map<String, Object>? attributes;
DateTime? shootingDate;
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text('图片信息'),
), //
body: Center(
child: TextButton(
onPressed: () async {
var response = await Dio().get('https://static.cop.jingheyijia.com/wxapp-map2/upload/moment/2025625/app-yctgxYDwcPkh.jpg');
print('response========= $response');
if (response.statusCode == 200) {
// final data = await readExifFromBytes(response.data);
// print('照片信息========= $data');
// setState(() {
// exifData = data;
// });
}
// pickedFile =
// await ImagePicker().pickImage(source: ImageSource.gallery);
// if (pickedFile == null) {
// return;
// }
// print('照片信息========= ${pickedFile?.path}/');
// exif = await Exif.fromPath(pickedFile!.path);
// coordinates = await exif!.getLatLong();
// print('地位信息========= $coordinates');
// attributes = await exif!.getAttributes();
// print('attributes========= $attributes');
// shootingDate = await exif!.getOriginalDate();
// print('shootingDate========= $shootingDate');
},
child: Text('IMAGES')),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}

View File

@@ -1,6 +1,10 @@
import 'package:dio/dio.dart';
import 'package:example/exif/customer_exif_Page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_common/upload_image/look_images_widget.dart';
import 'package:flutter_common/upload_image/upload_images_tool.dart';
import 'package:get/get.dart';
import 'package:image_editor_plus/image_editor_plus.dart';
void main() {
@@ -13,33 +17,21 @@ class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
return GetMaterialApp(
title: '熊猫文旅通',
debugShowCheckedModeBanner: false,
theme: ThemeData(
// This is the theme of your application.
//
// TRY THIS: Try running your application with "flutter run". You'll see
// the application has a purple toolbar. Then, without quitting the app,
// try changing the seedColor in the colorScheme below to Colors.green
// and then invoke "hot reload" (save your changes or press the "hot
// reload" button in a Flutter-supported IDE, or press "r" if you used
// the command line to start the app).
//
// Notice that the counter didn't reset back to zero; the application
// state is not lost during the reload. To reset the state, use hot
// restart instead.
//
// This works for code too, not just values: Most code changes can be
// tested with just a hot reload.
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
appBarTheme: AppBarTheme(surfaceTintColor: Colors.transparent),
scaffoldBackgroundColor: const Color(0xffF5F5F5),
// useMaterial3: true,
// colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple)
// .copyWith(background: const Color(0xffF5F5F5)),
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
home: const MyHomePage(title: '编辑图片'),
);
}
}
/// Dio 最简版:网络图片转 Uint8List
Future<Uint8List?> networkImageToUint8ListWithDio(String imageUrl) async {
final dio = Dio(); // 初始化 Dio 实例
@@ -50,16 +42,13 @@ Future<Uint8List?> networkImageToUint8ListWithDio(String imageUrl) async {
options: Options(responseType: ResponseType.bytes),
);
// 响应成功且数据非空时,直接转为 Uint8List
return response.statusCode == 200 && response.data != null
? Uint8List.fromList(response.data!)
: null;
return response.statusCode == 200 && response.data != null ? Uint8List.fromList(response.data!) : null;
} catch (e) {
print('图片转换失败:$e'); // 捕获网络错误、URL 非法等异常
return null;
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
@@ -81,16 +70,15 @@ class MyHomePage extends StatefulWidget {
class _MyHomePageState extends State<MyHomePage> {
final int _counter = 0;
Future<void> _incrementCounter()async {
String imageUrl = 'https://static.cop.jingheyijia.com/wxapp-map2/upload/moment/20251029/app-bpItvFOQufCL.jpg';
Uint8List? imageBytes = await networkImageToUint8ListWithDio(imageUrl);
Future<Uint8List?> editImage({required String url})async{
Uint8List? imageBytes = await networkImageToUint8ListWithDio(url);
ImageEditor.setI18n({
'crop': '裁剪',
'rotate left': '左旋转',
'rotate right': '右旋转',
'flip': '水平翻转',
'brush': '涂抹',
'link':'链接',
'link': '链接',
'save': '保存',
'text': '文本',
'blur': '模糊',
@@ -107,8 +95,8 @@ class _MyHomePageState extends State<MyHomePage> {
'color opacity': '透明度',
'blur radius': '模糊半径',
});
if(mounted){
final editedImage = await Navigator.push(
if (mounted) {
Uint8List? editedImage = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ImageEditor(
@@ -121,11 +109,16 @@ class _MyHomePageState extends State<MyHomePage> {
),
),
);
print(editedImage);
return editedImage;
}
return null;
}
Future<void> _incrementCounter() async {
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done

View File

@@ -7,9 +7,17 @@
#include "generated_plugin_registrant.h"
#include <file_selector_linux/file_selector_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
#include <volume_controller/volume_controller_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
g_autoptr(FlPluginRegistrar) volume_controller_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "VolumeControllerPlugin");
volume_controller_plugin_register_with_registrar(volume_controller_registrar);
}

View File

@@ -4,6 +4,8 @@
list(APPEND FLUTTER_PLUGIN_LIST
file_selector_linux
url_launcher_linux
volume_controller
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST

File diff suppressed because it is too large Load Diff

View File

@@ -28,6 +28,8 @@ environment:
# the latest version available on pub.dev. To see which dependencies have newer
# versions available, run `flutter pub outdated`.
dependencies:
flutter_common:
path: ../
flutter:
sdk: flutter
@@ -35,7 +37,11 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.8
image_editor_plus: ^1.0.6
get: ^4.6.5
dio: ^5.9.0
image_picker: ^1.1.0 #相册单选
# native_exif: ^0.6.2
# exif: ^3.3.0
dev_dependencies:
flutter_test:

View File

@@ -9,7 +9,7 @@ import 'package:flutter/services.dart';
///日期弹窗显示
class CustomDatePicker extends StatefulWidget {
CustomDatePicker(
{Key? key,
{super.key,
required DateTime initialDate,
required DateTime firstDate,
required DateTime lastDate,
@@ -31,8 +31,7 @@ class CustomDatePicker extends StatefulWidget {
lastDate = DateUtils.dateOnly(lastDate),
currentDate = DateUtils.dateOnly(currentDate ?? DateTime.now()),
assert(onDateChanged != null),
assert(initialCalendarMode != null),
super(key: key) {
assert(initialCalendarMode != null) {
assert(
!this.lastDate.isBefore(this.firstDate),
'lastDate ${this.lastDate} must be on or after firstDate ${this.firstDate}.',

View File

@@ -216,6 +216,7 @@ class HttpUtils {
* Dio库error统一处理
*/
static void _formatError(DioException error) {
EasyLoading.dismiss();
switch (error.type) {
case DioExceptionType.cancel:
break;

View File

@@ -1,21 +1,43 @@
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_common/upload_image/ossUtil.dart';
import 'package:get/get.dart';
import 'package:photo_view/photo_view.dart';
import 'package:image_editor_plus/image_editor_plus.dart';
import 'package:path_provider/path_provider.dart';
import 'package:photo_view/photo_view_gallery.dart';
class LookImagesTool {
static lookImages({
required List<String> listData,
int? currentPage,
void Function(String)? onCallBack,
String? oSSAccessKeyId,
Function? callBack,
bool? isShowEdit,
String? policy,
String? callback,
String? signature,
String? ossDirectory,
String? ossHost,
}) async {
showDialog(
context: Get.context!,
useSafeArea: false,
builder: (_) {
return LookImagesWidget(
listData: listData,
currentPage: currentPage,
);
listData: listData,
currentPage: currentPage,
onCallBack: onCallBack,
oSSAccessKeyId: oSSAccessKeyId,
policy: policy,
callback: callback,
isShowEdit: isShowEdit,
signature: signature,
ossDirectory: ossDirectory,
ossHost: ossHost);
});
}
}
@@ -23,11 +45,27 @@ class LookImagesTool {
class LookImagesWidget extends StatefulWidget {
final List<String> listData;
final int? currentPage;
final String? oSSAccessKeyId;
final String? policy;
final String? callback;
final String? signature;
final String? ossDirectory;
final String? ossHost;
final void Function(String)? onCallBack;
final bool? isShowEdit;
const LookImagesWidget({
super.key,
required this.listData,
this.currentPage,
this.oSSAccessKeyId,
this.policy,
this.callback,
this.signature,
this.ossDirectory,
this.ossHost,
this.onCallBack,
this.isShowEdit,
});
@override
@@ -39,6 +77,132 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
late int currentPage;
late int initialPage = 0;
/// Dio 最简版:网络图片转 Uint8List
Future<Uint8List?> networkImageToUint8ListWithDio(String imageUrl) async {
final dio = Dio(); // 初始化 Dio 实例
try {
// 发起 GET 请求,响应类型设为字节数组(关键)
final response = await dio.get<List<int>>(
imageUrl,
options: Options(responseType: ResponseType.bytes),
);
// 响应成功且数据非空时,直接转为 Uint8List
return response.statusCode == 200 && response.data != null ? Uint8List.fromList(response.data!) : null;
} catch (e) {
print('图片转换失败:$e'); // 捕获网络错误、URL 非法等异常
return null;
}
}
Future<Uint8List?> editImage({required String url}) async {
Uint8List? imageBytes = await networkImageToUint8ListWithDio(url);
ImageEditor.setI18n({
'crop': '裁剪',
'rotate left': '左旋转',
'rotate right': '右旋转',
'flip': '水平翻转',
'brush': '涂抹',
'link': '链接',
'save': '保存',
'text': '文本',
'blur': '模糊',
'filter': '滤镜',
'size': '大小',
'color': '颜色',
'background color': '背景颜色',
'background opacity': '背景透明度',
'reset': '重置',
'freeform': '自由裁剪',
'remove': '移除',
'emoji': '表情',
'slider color': '滑块颜色',
'color opacity': '透明度',
'blur radius': '模糊半径',
});
if (mounted) {
Uint8List? editedImage = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ImageEditor(
image: imageBytes,
blurOption: null,
filtersOption: null,
brushOption: null,
textOption: null,
emojiOption: null,
),
),
);
return editedImage;
}
return null;
}
/// 可选:根据字节头自动识别文件后缀(如图片、视频)
String getExtension(Uint8List uint8List) {
if (uint8List.length < 4) return "bin"; // 无法识别时返回二进制后缀
// PNG 头89 50 4E 47
if (uint8List[0] == 0x89 && uint8List[1] == 0x50 && uint8List[2] == 0x4E && uint8List[3] == 0x47) {
return "png";
}
// JPG 头FF D8 FF
else if (uint8List[0] == 0xFF && uint8List[1] == 0xD8 && uint8List[2] == 0xFF) {
return "jpg";
}
// MP4 头00 00 00 18 66 74 79 70
else if (uint8List.length >= 8 &&
uint8List[0] == 0x00 &&
uint8List[1] == 0x00 &&
uint8List[2] == 0x00 &&
uint8List[3] == 0x18 &&
uint8List[4] == 0x66 &&
uint8List[5] == 0x74 &&
uint8List[6] == 0x79 &&
uint8List[7] == 0x70) {
return "mp4";
}
// 其他格式可自行扩展(如 GIF、PDF 等)
else {
return "bin";
}
}
/// Uint8List 转临时 File 并且上传到oss并返回访问路径
Future<String?> uint8ListToTempFile(Uint8List uint8List, {String fileName = "temp_file"}) async {
if (uint8List.isEmpty) return null;
try {
// 1. 获取临时存储目录(跨平台兼容)
Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;
// 2. 拼接文件路径(可自定义后缀,如 .png、.mp4 等)
File tempFile = File("$tempPath/$fileName.${getExtension(uint8List)}"); // 自动识别后缀(可选)
// 3. 将 Uint8List 写入文件
await tempFile.writeAsBytes(uint8List);
// print("临时文件路径:${tempFile.path}");
String imageUrl = await UploadOss.upload(
tempFile.path,
fileType: getExtension(uint8List),
oSSAccessKeyId: widget.oSSAccessKeyId ?? '',
ossHost: widget.ossHost ?? '',
ossDirectory: widget.ossDirectory ?? '',
policy: widget.policy ?? '',
callback: widget.callback ?? '',
signature: widget.signature ?? '',
);
// print("上传后的访问路径:$imageUrl");
return imageUrl;
} catch (e) {
print("转换临时文件失败:$e");
return null;
}
}
@override
void initState() {
listData = widget.listData;
@@ -46,7 +210,6 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
initialPage = 0;
currentPage = 0;
} else {
// initialPage = 0;
currentPage = widget.currentPage ?? 0;
}
super.initState();
@@ -77,6 +240,20 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
left: 15,
top: 50,
child: GestureDetector(onTap: () => Get.back(), child: Icon(Icons.arrow_back_ios, color: Colors.white))),
Positioned(
right: 15,
top: 50,
child: GestureDetector(
onTap: () async {
Uint8List? imageFile = await editImage(url: listData[currentPage]);
String? url = await uint8ListToTempFile(imageFile ?? Uint8List(0));
if(widget.onCallBack != null){
widget.onCallBack!(url??'');
}
},
child: Visibility(
visible: widget.isShowEdit??false,
child: Icon(Icons.edit, color: Colors.white)))),
//图片张数指示器
Positioned(
left: 0,

View File

@@ -26,7 +26,7 @@ class UploadImagesTool {
}) async {
await chooseCamera(
context: context,
max: max ?? 9,
max: max??9,
oSSAccessKeyId: oSSAccessKeyId ?? '',
ossHost: ossHost ?? '',
ossDirectory: ossDirectory ?? '',

View File

@@ -1,12 +1,11 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:easy_debounce/easy_debounce.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
// import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
import 'package:transparent_image/transparent_image.dart';
///字体样式
class CustomerTextStyle extends TextStyle {
final Color? customerColor;
@@ -97,13 +96,12 @@ class CustomerImagesNetworking extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Image.network(
key: Key(imageUrl),
imageUrl,
return CachedNetworkImage(
imageUrl: imageUrl,
width: width,
height: height,
fit: fit,
errorBuilder: (_, object, s) {
errorWidget: (_, object, s) {
return Container(
width: width,
height: height,
@@ -119,22 +117,44 @@ class CustomerImagesNetworking extends StatelessWidget {
);
},
);
return imageUrl.contains('http') == true
? FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
width: width,
height: height,
image: imageUrl,
fit: fit,
placeholderErrorBuilder:
(_, Object object, StackTrace? stackTrace) {
return errorWidget ?? const SizedBox();
},
imageErrorBuilder: (_, Object object, StackTrace? stackTrace) {
return errorWidget ?? const SizedBox();
},
)
: errorWidget ?? const SizedBox();
// return Image.network(
// key: Key(imageUrl),
// imageUrl,
// width: width,
// height: height,
// fit: fit,
// errorBuilder: (_, object, s) {
// return Container(
// width: width,
// height: height,
// padding: EdgeInsets.all((width ?? 0) / 2),
// child: Center(
// child: Image.asset(
// 'assets/images/noContainer.png',
// // width: width /2,
// // height: width /2,
// fit: fit ?? BoxFit.contain,
// ),
// ),
// );
// },
// );
// return imageUrl.contains('http') == true
// ? FadeInImage.memoryNetwork(
// placeholder: kTransparentImage,
// width: width,
// height: height,
// image: imageUrl,
// fit: fit,
// placeholderErrorBuilder:
// (_, Object object, StackTrace? stackTrace) {
// return errorWidget ?? const SizedBox();
// },
// imageErrorBuilder: (_, Object object, StackTrace? stackTrace) {
// return errorWidget ?? const SizedBox();
// },
// )
// : errorWidget ?? const SizedBox();
}
}

View File

@@ -1,10 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_common/utils/file/video/lib/chewie.dart';
import 'package:video_player/video_player.dart';
class VideoPlayPage extends StatefulWidget {
final String? videoUrl;
const VideoPlayPage({super.key, this.videoUrl});

View File

@@ -40,96 +40,99 @@ class _CustomerWebViewState extends State<CustomerWebView> {
@override
Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
overlays: [SystemUiOverlay.bottom]);
// SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
// overlays: [SystemUiOverlay.bottom]);
return Stack(
alignment: Alignment.topLeft,
children: [
InAppWebView(
key: webViewKey,
// webViewEnvironment: webViewEnvironment,
initialUrlRequest: URLRequest(url: WebUri(widget.url)),
// initialUrlRequest:
// URLRequest(url: WebUri(Uri.base.toString().replaceFirst("/#/", "/") + 'page.html')),
// initialFile: "assets/index.html",
initialUserScripts: UnmodifiableListView<UserScript>([]),
initialSettings: settings,
// contextMenu: contextMenu,
// pullToRefreshController: pullToRefreshController,
onWebViewCreated: (controller) async {
webViewController = controller;
},
onLoadStart: (controller, url) {
setState(() {
// this.url = url.toString();
// urlController.text = this.url;
});
},
// onPermissionRequest: (controller, request) {
// return PermissionResponse(
// resources: request.resources,
// action: PermissionResponseAction.GRANT);
// },
// shouldOverrideUrlLoading:
// (controller, navigationAction) async {
// var uri = navigationAction.request.url!;
//
// if (![
// "http",
// "https",
// "file",
// "chrome",
// "data",
// "javascript",
// "about"
// ].contains(uri.scheme)) {
// if (await canLaunchUrl(uri)) {
// // Launch the App
// await launchUrl(
// uri,
// );
// // and cancel the request
// return NavigationActionPolicy.CANCEL;
// }
// }
//
// return NavigationActionPolicy.ALLOW;
// },
// onLoadStop: (controller, url) {
// pullToRefreshController?.endRefreshing();
// setState(() {
// this.url = url.toString();
// urlController.text = this.url;
// });
// },
// onReceivedError: (controller, request, error) {
// pullToRefreshController?.endRefreshing();
// },
// onProgressChanged: (controller, progress) {
// if (progress == 100) {
// pullToRefreshController?.endRefreshing();
// }
// setState(() {
// this.progress = progress / 100;
// urlController.text = this.url;
// });
// },
// onUpdateVisitedHistory: (controller, url, isReload) {
// setState(() {
// this.url = url.toString();
// urlController.text = this.url;
// });
// },
onConsoleMessage: (controller, consoleMessage) {
print(consoleMessage);
},
Padding(
padding: const EdgeInsets.only(top: 16,bottom: 16),
child: InAppWebView(
key: webViewKey,
// webViewEnvironment: webViewEnvironment,
initialUrlRequest: URLRequest(url: WebUri(widget.url)),
// initialUrlRequest:
// URLRequest(url: WebUri(Uri.base.toString().replaceFirst("/#/", "/") + 'page.html')),
// initialFile: "assets/index.html",
initialUserScripts: UnmodifiableListView<UserScript>([]),
initialSettings: settings,
// contextMenu: contextMenu,
// pullToRefreshController: pullToRefreshController,
onWebViewCreated: (controller) async {
webViewController = controller;
},
onLoadStart: (controller, url) {
setState(() {
// this.url = url.toString();
// urlController.text = this.url;
});
},
// onPermissionRequest: (controller, request) {
// return PermissionResponse(
// resources: request.resources,
// action: PermissionResponseAction.GRANT);
// },
// shouldOverrideUrlLoading:
// (controller, navigationAction) async {
// var uri = navigationAction.request.url!;
//
// if (![
// "http",
// "https",
// "file",
// "chrome",
// "data",
// "javascript",
// "about"
// ].contains(uri.scheme)) {
// if (await canLaunchUrl(uri)) {
// // Launch the App
// await launchUrl(
// uri,
// );
// // and cancel the request
// return NavigationActionPolicy.CANCEL;
// }
// }
//
// return NavigationActionPolicy.ALLOW;
// },
// onLoadStop: (controller, url) {
// pullToRefreshController?.endRefreshing();
// setState(() {
// this.url = url.toString();
// urlController.text = this.url;
// });
// },
// onReceivedError: (controller, request, error) {
// pullToRefreshController?.endRefreshing();
// },
// onProgressChanged: (controller, progress) {
// if (progress == 100) {
// pullToRefreshController?.endRefreshing();
// }
// setState(() {
// this.progress = progress / 100;
// urlController.text = this.url;
// });
// },
// onUpdateVisitedHistory: (controller, url, isReload) {
// setState(() {
// this.url = url.toString();
// urlController.text = this.url;
// });
// },
onConsoleMessage: (controller, consoleMessage) {
print(consoleMessage);
},
),
),
Visibility(
visible: widget.hideBack != true,
child: GestureDetector(
onTap: () => Navigator.pop(context),
child: Container(
margin: const EdgeInsets.only(left: 16, top: 16),
margin: const EdgeInsets.only(left: 16, top: 28),
width: 44,
height: 44,
decoration: BoxDecoration(

65
lib/utils/play_video.dart Normal file
View File

@@ -0,0 +1,65 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:omni_video_player/omni_video_player.dart';
class PlayVideoPage extends StatefulWidget {
final String videoUrl;
const PlayVideoPage({super.key, required this.videoUrl});
@override
State<PlayVideoPage> createState() => _PlayVideoPageState();
}
class _PlayVideoPageState extends State<PlayVideoPage> {
OmniPlaybackController? _controller;
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_controller?.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
Container(
padding: EdgeInsets.only(bottom: 50.h,top: 150.h),
color: Colors.black,
child: OmniVideoPlayer(
configuration: VideoPlayerConfiguration(
videoSourceConfiguration: VideoSourceConfiguration.network(
videoUrl: Uri.parse(widget.videoUrl),
preferredQualities: [OmniVideoQuality.high1080],
),
), callbacks: VideoPlayerCallbacks(
onControllerCreated: (controller) {
setState(() {
controller.play();
});
},
),
),
),
Positioned(
top: 60.h,
left: 20.w,
child: IconButton(
icon: Icon(Icons.arrow_back_ios, color: Colors.white,),
onPressed: () => Navigator.of(context).pop(),
),
),
],
),
);
}
}

View File

@@ -65,7 +65,7 @@ class PullRefreshListWidget extends StatelessWidget {
footer: footer ??
ClassicFooter(
loadingText: '正在加载...',
noDataText: '没有更多数据',
noDataText: '暂无更多数据~',
idleText: '加载更多',
failedText: '加载失败',
canLoadingText: '松开加载更多',

View File

@@ -59,9 +59,11 @@ class ToastUtils {
bool isShowConfirm = false,
Color? barrierColor,
EdgeInsetsGeometry? padding,
bool useSafeArea = true,
}) {
cancelToast();
return showDialog(
useSafeArea: useSafeArea,
context: context,
builder: (BuildContext ctx) {
return Container(

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,7 @@ dependencies:
flutter_easyloading: ^3.0.0
sticky_headers: ^0.3.0+2 #日历需要
get: ^4.6.5
easy_debounce: ^2.0.3
flutter_screenutil: ^5.9.0
flustars_flutter3: ^3.0.0 #工具类 SpUtilScreenUtil, DirectoryUtil等等。
pull_to_refresh: ^2.0.0
@@ -29,7 +30,7 @@ dependencies:
transparent_image: ^2.0.1 #图片懒加载
# flutter_cached_pdfview: ^0.4.3 #pdf文件
# webview_flutter: ^4.8.0
video_player: ^2.6.1 #视频
video_player: ^2.10.0 #视频
# perfect_volume_control: ^1.0.5 #声音
screen_brightness: ^2.1.7 #亮度
provider: ^6.0.3
@@ -38,6 +39,10 @@ dependencies:
url_launcher: ^6.1.10
flutter_inappwebview: ^6.1.5
device_info_plus: ^11.3.0
image_editor_plus: ^1.0.6
path_provider: ^2.1.5
omni_video_player: ^3.5.3
cached_network_image: ^3.4.1
dev_dependencies:
flutter_test: