From 651d306cb4bb64ca64a8e779e465177774da7fe0 Mon Sep 17 00:00:00 2001 From: sunxiao Date: Fri, 29 May 2026 00:21:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(community):=20=E5=8A=A0=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E4=BA=A4=E6=B5=81=E7=BE=A4=E5=85=A5=E5=8F=A3=20+=20RE?= =?UTF-8?q?ADME=20=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/community/{README_ZH.md, README_EN.md, wechat-group.png}:群二维码 + 群内话题 + 备选联系方式(GitHub Issues / Telegram / 小红书抖音)+ 隐私提示 - README.md / README_EN.md 顶部链接栏加「👥 微信群 / WeChat Group」 - App「关于」页所有语言都显示「微信交流群」入口,落地页按 locale 选 ZH/EN 版;原有「小红书 / 抖音」继续 zh 限定(国内向短视频渠道) 群码 7 天有效,过期换图不用发版。 --- README.md | 2 +- README_EN.md | 2 +- docs/community/README_EN.md | 22 ++++++++++++++++++++++ docs/community/README_ZH.md | 28 ++++++++++++++++++++++++++++ docs/community/wechat-group.png | Bin 0 -> 183479 bytes lib/l10n/app_en.arb | 2 ++ lib/l10n/app_localizations.dart | 12 ++++++++++++ lib/l10n/app_localizations_en.dart | 6 ++++++ lib/l10n/app_localizations_zh.dart | 12 ++++++++++++ lib/l10n/app_zh.arb | 2 ++ lib/l10n/app_zh_TW.arb | 2 ++ lib/pages/settings/about_page.dart | 20 +++++++++++++++++++- 12 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 docs/community/README_EN.md create mode 100644 docs/community/README_ZH.md create mode 100644 docs/community/wechat-group.png diff --git a/README.md b/README.md index 4a862070..60604346 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@

-[🌐 官网](https://count.beejz.com) · [📖 文档](https://count.beejz.com/docs/intro) · [💝 捐赠](#-捐赠支持) · [💬 Telegram](https://t.me/beecount) · [📦 APK](https://github.com/TNT-Likely/BeeCount/releases/latest) · [🚀 TestFlight](https://testflight.apple.com/join/Eaw2rWxa) +[🌐 官网](https://count.beejz.com) · [📖 文档](https://count.beejz.com/docs/intro) · [💝 捐赠](#-捐赠支持) · [👥 微信群](docs/community/README_ZH.md) · [💬 Telegram](https://t.me/beecount) · [📦 APK](https://github.com/TNT-Likely/BeeCount/releases/latest) · [🚀 TestFlight](https://testflight.apple.com/join/Eaw2rWxa) diff --git a/README_EN.md b/README_EN.md index 58c8dd8c..315a9f3d 100644 --- a/README_EN.md +++ b/README_EN.md @@ -28,7 +28,7 @@ Sync via BeeCount Cloud (self-hosted) / iCloud / Supabase / WebDAV / S3

-[🌐 Website](https://count.beejz.com/en/) · [📖 Docs](https://count.beejz.com/en/docs/intro) · [💝 Donate](#-donate) · [💬 Telegram](https://t.me/beecount) · [📦 APK](https://github.com/TNT-Likely/BeeCount/releases/latest) · [🚀 TestFlight](https://testflight.apple.com/join/Eaw2rWxa) +[🌐 Website](https://count.beejz.com/en/) · [📖 Docs](https://count.beejz.com/en/docs/intro) · [💝 Donate](#-donate) · [👥 WeChat Group](docs/community/README_EN.md) · [💬 Telegram](https://t.me/beecount) · [📦 APK](https://github.com/TNT-Likely/BeeCount/releases/latest) · [🚀 TestFlight](https://testflight.apple.com/join/Eaw2rWxa) diff --git a/docs/community/README_EN.md b/docs/community/README_EN.md new file mode 100644 index 00000000..95365cc9 --- /dev/null +++ b/docs/community/README_EN.md @@ -0,0 +1,22 @@ +# WeChat Group + +The BeeCount user community lives on **WeChat** (most users are based in mainland China). Scan the QR code below to join — the developer hangs out in the group daily. + +## QR code + +BeeCount WeChat user group QR + +> ⚠️ The WeChat QR code is **valid for 7 days**. This page is refreshed before each expiry. If the code says expired or the group is full, leave a comment on [GitHub Issues](https://github.com/TNT-Likely/BeeCount/issues) and we'll add you manually. + +## Prefer not using WeChat? + +The same questions can be asked through: + +- [GitHub Issues](https://github.com/TNT-Likely/BeeCount/issues) — bug reports & feature requests with structured templates +- [Telegram](https://t.me/beecount) — community channel for users outside China + +The group is Chinese-speaking; for English-language support, GitHub Issues or Telegram are usually a smoother fit. + +--- + +> **Privacy note**: when discussing issues, please avoid posting **full sync credentials / API keys / server URLs**. For sensitive debugging, DM the admin directly. diff --git a/docs/community/README_ZH.md b/docs/community/README_ZH.md new file mode 100644 index 00000000..3f7fc2e8 --- /dev/null +++ b/docs/community/README_ZH.md @@ -0,0 +1,28 @@ +# 微信交流群 + +欢迎扫码加入 **BeeCount 蜜蜂记账交流群** —— 反馈使用问题、提建议、跟其他用户交流记账方法,作者也常在群里。 + +## 入群二维码 + +蜜蜂记账微信交流群 + +> ⚠️ 微信群二维码 **7 天有效**,过期后本页会重新更新。如果扫码提示已过期 / 满员,请到 [GitHub Issues](https://github.com/TNT-Likely/BeeCount/issues) 留言或加管理员个人微信,我们会拉你进群。 + +## 群里聊什么 + +- 🐛 **使用问题反馈**:同步异常、AI 识别不准、界面 bug 等 +- 💡 **功能建议**:有想要的新功能直接说,采纳率挺高 +- 💬 **使用心得**:多账本怎么用、分类怎么搭、AI 提示词调参等 +- 📢 **版本更新**:新版本发布会在群里通知,可以第一时间体验 + +## 其他联系方式 + +如果你不用微信,也可以走这些渠道: + +- [GitHub Issues](https://github.com/TNT-Likely/BeeCount/issues) —— 报 bug / 提需求的首选,有结构化模板 +- [Telegram](https://t.me/beecount) —— 海外用户社群 +- 小红书 / 抖音 —— 视频教程 + 评论区互动(在 App「关于」页有入口) + +--- + +> **隐私提示**:群里讨论问题时,请避免贴**完整的同步配置 / API Key / 服务器地址**等敏感信息。需要私下排查时单独私聊管理员。 diff --git a/docs/community/wechat-group.png b/docs/community/wechat-group.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9fd5e4db2681b97738a56c721cfa84e2dbca37 GIT binary patch literal 183479 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ÒYKE=#jt-LDN9}lSK>bVXO;SP2@LNo$8Mvgo^vWJbsS@LwO%&TXxlWw=hd>4S6}(B9=f|S&~br$ zVB=T6jb4!((oUuMfB*YtWrKodS|5fi~ywl{%!LK&|b_McbZKH!#PT%ufvn_PP|NZw_HRXZ-;R3*O)f=_6 zqKS5!-L`>_rXMdo+(Z<%lF|1u&*kfD^7YL}5B&Ci_vEE66Hec%`?{;Pq)Y4-yWti_ z_U#4?GW(zt^m4PZeE@A%u!UHFv&~+q?bfZ^b6RnFg=4^1@89j9M4(XIxUI#u=xE7s zuX?u&7y!c^{lsVhM}YUns2yzh?mjrZONjtG z!xC^2P(tE;n)s_YLL_}Sj>IsA`qujNj~}&*#BYlUK#&KlgLH5hJH|5dHEw5%aWmsF zwpAy0C~rgIJ1I#)4~R629fcBUPS(C)=+})zyGd1FKg=?t9+Oa4ApzNWS&bPp9Aatt z!;`IK_GSj8euKyYWBqo!5-(mf;e&3Zrw6@G+)mDzjN55gC%W5OTZ17smj1{w!9M8q z&mVMleHa*Q4xQ=xnp-2L2UPUq;eN%N@t8+4w>;hOD+)7GkAFw-Up70B_G1m1VR4^1 zIAy#_F3Wl(zz#O3+=lu1_?+&2mJ?2q8cakV0}s(bi1)r#1>3$*96@WvbV~gt�-A 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 'Douyin'; + @override + String get aboutWechatGroup => 'WeChat Group'; + + @override + String get aboutWechatGroupSubtitle => 'Scan to join, developer hangs out here'; + @override String get aboutSupportDevelopment => 'Support Development'; diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index 9de78daf..e85aeace 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -4201,6 +4201,12 @@ class AppLocalizationsZh extends AppLocalizations { @override String get aboutDouyin => '抖音'; + @override + String get aboutWechatGroup => '微信交流群'; + + @override + String get aboutWechatGroupSubtitle => '扫码加群,作者常在'; + @override String get aboutSupportDevelopment => '支持开发'; @@ -10698,6 +10704,12 @@ class AppLocalizationsZhTw extends AppLocalizationsZh { @override String get aboutDouyin => '抖音'; + @override + String get aboutWechatGroup => '微信交流群'; + + @override + String get aboutWechatGroupSubtitle => '掃碼加群,作者常在'; + @override String get aboutSupportDevelopment => '支持開發'; diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 812d7ce3..28e1896a 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -1679,6 +1679,8 @@ "aboutGitHubRepo": "GitHub 仓库", "aboutXiaohongshu": "小红书", "aboutDouyin": "抖音", + "aboutWechatGroup": "微信交流群", + "aboutWechatGroupSubtitle": "扫码加群,作者常在", "aboutSupportDevelopment": "支持开发", "aboutSupportDevelopmentSubtitle": "请开发者喝杯咖啡", "aboutDeveloperStoryTitle": "开发者的话", diff --git a/lib/l10n/app_zh_TW.arb b/lib/l10n/app_zh_TW.arb index b616941c..880dab98 100644 --- a/lib/l10n/app_zh_TW.arb +++ b/lib/l10n/app_zh_TW.arb @@ -40,6 +40,8 @@ "aboutSupportDevelopment": "支持開發", "aboutSupportDevelopmentSubtitle": "請開發者喝杯咖啡", "aboutWebsite": "官方網站", + "aboutWechatGroup": "微信交流群", + "aboutWechatGroupSubtitle": "掃碼加群,作者常在", "aboutWidget": "關于小組件", "aboutXiaohongshu": "小紅書", "accountAddButton": "添加帳戶", diff --git a/lib/pages/settings/about_page.dart b/lib/pages/settings/about_page.dart index 08434d60..34d54f52 100644 --- a/lib/pages/settings/about_page.dart +++ b/lib/pages/settings/about_page.dart @@ -159,7 +159,25 @@ class _AboutPageState extends ConsumerState { await _tryOpenUrl(url); }, ), - // 小红书号(仅简体中文显示) + // 微信群入口:所有语言都显示(群本身中文社区,但海外用户 + // 也允许加,落地页按 locale 选 ZH / EN 版)。 + const Divider(height: 1, thickness: 0.5), + AppListTile( + leading: Icons.groups_outlined, + title: AppLocalizations.of(context).aboutWechatGroup, + subtitle: AppLocalizations.of(context).aboutWechatGroupSubtitle, + onTap: () async { + // 群二维码 7 天有效,挂在 docs/community/ 下,每次过期前 + // 仓库里替换 wechat-group.png 就行,app 不用发版。 + final isZh = Localizations.localeOf(context).languageCode == 'zh'; + final docUrl = isZh + ? 'https://github.com/TNT-Likely/BeeCount/blob/main/docs/community/README_ZH.md' + : 'https://github.com/TNT-Likely/BeeCount/blob/main/docs/community/README_EN.md'; + final url = Uri.parse(docUrl); + await _tryOpenUrl(url); + }, + ), + // 小红书号 / 抖音(仅简体中文显示 —— 国内向短视频渠道) if (Localizations.localeOf(context).languageCode == 'zh') ...[ const Divider(height: 1, thickness: 0.5), AppListTile( From 5f1f9330f0db12619d97d5fd1337ded36ebbc171 Mon Sep 17 00:00:00 2001 From: wait-more Date: Fri, 29 May 2026 15:46:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(category):=20=E8=B4=A6=E5=8D=95?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E9=A1=B9=E6=96=B0=E5=A2=9E=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=EF=BC=8C=E5=B1=95=E7=A4=BA=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=B1=82=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 第二行信息条新增一级 > 二级分类标签,消费归属更直观 - 窄屏自适应:LayoutBuilder 预测量度,空间不足时自动折行 - 搜索页/日历页/标签详情页:按 parentId 降级获取一级分类名称 - 日历页:无备注时始终保留分类标签信息行 - WebDAV:OPTIONS 不兼容时降级直连 GET - l10n:补全模板字符串占位符定义 --- l10n.yaml | 2 +- lib/l10n/app_en.arb | 129 +++++++ lib/pages/calendar/calendar_page.dart | 126 ++----- lib/pages/tag/tag_detail_page.dart | 8 +- lib/pages/transaction/search_page.dart | 16 +- lib/utils/category_utils.dart | 11 + lib/widgets/biz/transaction_list.dart | 22 +- lib/widgets/biz/transaction_list_item.dart | 336 ++++++++++++++---- .../lib/src/webdav_storage_service.dart | 54 ++- .../flutter_cloud_sync_webdav/pubspec.lock | 64 +++- .../flutter_cloud_sync_webdav/pubspec.yaml | 1 + 11 files changed, 581 insertions(+), 188 deletions(-) diff --git a/l10n.yaml b/l10n.yaml index b8bf72e1..fa1a9703 100644 --- a/l10n.yaml +++ b/l10n.yaml @@ -1,6 +1,6 @@ arb-dir: lib/l10n template-arb-file: app_en.arb output-localization-file: app_localizations.dart +output-dir: lib/l10n nullable-getter: false -synthetic-package: false preferred-supported-locales: ["en"] \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 62b7129a..a13cfcf6 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -150,24 +150,104 @@ "searchNoResults": "No matching results found", "searchBatchMode": "Batch Operations", "searchBatchModeWithCount": "Batch Operations ({selected}/{total})", + "@searchBatchModeWithCount": { + "placeholders": { + "selected": { + "type": "int" + }, + "total": { + "type": "int" + } + } + }, "searchExitBatchMode": "Exit Batch Mode", "searchSelectAll": "Select All", "searchDeselectAll": "Deselect All", "searchSelectedCount": "{count} selected", + "@searchSelectedCount": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "searchBatchSetNote": "Set Note", "searchBatchChangeCategory": "Change Category", "searchBatchDeleteConfirmTitle": "Confirm Delete", "searchBatchDeleteConfirmMessage": "Are you sure you want to delete the selected {count} transactions?\nThis action cannot be undone.", + "@searchBatchDeleteConfirmMessage": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "searchBatchSetNoteTitle": "Batch Set Note", "searchBatchSetNoteMessage": "Set the same note for the selected {count} transactions", + "@searchBatchSetNoteMessage": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "searchBatchSetNoteHint": "Enter note content (leave empty to clear notes)", "searchBatchDeleteSuccess": "Successfully deleted {count} transactions", + "@searchBatchDeleteSuccess": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "searchBatchDeleteFailed": "Delete failed: {error}", + "@searchBatchDeleteFailed": { + "placeholders": { + "error": { + "type": "String" + } + } + }, "searchBatchSetNoteSuccess": "Successfully set note for {count} transactions", + "@searchBatchSetNoteSuccess": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "searchBatchSetNoteFailed": "Set note failed: {error}", + "@searchBatchSetNoteFailed": { + "placeholders": { + "error": { + "type": "String" + } + } + }, "searchBatchChangeCategorySuccess": "Successfully changed category for {count} transactions", + "@searchBatchChangeCategorySuccess": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "searchBatchChangeCategoryFailed": "Change category failed: {error}", + "@searchBatchChangeCategoryFailed": { + "placeholders": { + "error": { + "type": "String" + } + } + }, "searchResultsCount": "{count} results", + "@searchResultsCount": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "searchFilterTitle": "Filter", "searchAmountFilter": "Amount Filter", "searchDateFilter": "Date Filter", @@ -209,6 +289,13 @@ "ledgersNew": "New Ledger", "ledgersClear": "Clear Ledger", "ledgersClearMessage": "Are you sure to clear all transactions in ledger \"{name}\"? This action cannot be undone.\\nThe ledger will be kept, only transaction data will be deleted.", + "@ledgersClearMessage": { + "placeholders": { + "name": { + "type": "String" + } + } + }, "ledgerDefaultName": "Default Ledger", "ledgersEdit": "Edit Ledger", "ledgersDelete": "Delete Ledger", @@ -221,6 +308,13 @@ "ledgersDeleteLocal": "Delete Local Ledger Only", "ledgersDeleteLocalTitle": "Delete Local Ledger", "ledgersDeleteLocalMessage": "Are you sure to delete local ledger \"{name}\"?\\nCloud backup will be kept and you can restore it anytime.", + "@ledgersDeleteLocalMessage": { + "placeholders": { + "name": { + "type": "String" + } + } + }, "ledgersDeleteLocalSuccess": "Local ledger deleted", "ledgersName": "Name", "ledgersDefaultLedgerName": "Default Ledger", @@ -379,6 +473,13 @@ "importCompleted": "Import Completed{cancelled}, success {ok}, failed {fail}", "importSkippedNonTransactionTypes": "Skipped {count} non-transaction records (debts, etc.)", "importTransactionFailed": "Import failed, all changes have been rolled back: {error}", + "@importTransactionFailed": { + "placeholders": { + "error": { + "type": "String" + } + } + }, "importFileOpenError": "Unable to open file picker: {error}", "@importFileOpenError": { "placeholders": { @@ -686,15 +787,36 @@ "categoryClearUnused": "Clear Unused Categories", "categoryClearUnusedTitle": "Clear Unused Categories", "categoryClearUnusedMessage": "Are you sure you want to delete {count} unused categories? This action cannot be undone.", + "@categoryClearUnusedMessage": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "categoryClearUnusedListTitle": "Categories to be deleted:", "categoryClearUnusedEmpty": "No unused categories", "categoryClearUnusedSuccess": "Deleted {count} categories", + "@categoryClearUnusedSuccess": { + "placeholders": { + "count": { + "type": "int" + } + } + }, "categoryClearUnusedFailed": "Clear failed", "categoryShareScopeTitle": "Select Scope", "categoryShareScopeExpense": "Expense categories only", "categoryShareScopeIncome": "Income categories only", "categoryShareScopeAll": "All categories", "categoryShareSuccess": "Saved to {path}", + "@categoryShareSuccess": { + "placeholders": { + "path": { + "type": "String" + } + } + }, "categoryShareSubject": "BeeCount Category Configuration", "categoryShareFailed": "Share failed", "categoryImportInvalidFile": "Please select a category package file (.zip)", @@ -895,6 +1017,13 @@ "categoryMigrationCompleteMessage": "Successfully migrated {count} transactions from \"{fromName}\" to \"{toName}\".", "categoryMigrationFailedTitle": "Migration Failed", "categoryMigrationFailedMessage": "Migration error: {error}", + "@categoryMigrationFailedMessage": { + "placeholders": { + "error": { + "type": "String" + } + } + }, "categoryMigrationTransactionLabel": "{count} records", "@categoryMigrationTransactionLabel": { "placeholders": { diff --git a/lib/pages/calendar/calendar_page.dart b/lib/pages/calendar/calendar_page.dart index d603104d..a52d31f6 100644 --- a/lib/pages/calendar/calendar_page.dart +++ b/lib/pages/calendar/calendar_page.dart @@ -11,6 +11,7 @@ import '../../widgets/category_icon.dart'; import '../../styles/tokens.dart'; import '../../utils/ui_scale_extensions.dart'; import '../../utils/transaction_edit_utils.dart'; +import '../../utils/category_utils.dart'; import '../../utils/currencies.dart'; import '../../providers.dart'; import '../../providers/calendar_providers.dart'; @@ -433,6 +434,12 @@ class _CalendarPageState extends ConsumerState { transactionsByDateProvider((ledgerId: ledgerId, date: date)), ); + final allCategories = ref.watch(categoriesProvider).valueOrNull ?? []; + final Map categoryNameById = { + for (var c in allCategories) + c.id: CategoryUtils.getDisplayName(c.name, context, kind: c.kind), + }; + final header = Padding( padding: const EdgeInsets.fromLTRB(4, 0, 4, 10), child: Row( @@ -536,104 +543,15 @@ class _CalendarPageState extends ConsumerState { final isTransfer = item.t.type == 'transfer'; // 分类名称 - final categoryName = category?.name ?? l10n.commonUncategorized; - - // 备注作为副标题 - final subtitle = item.t.note ?? ''; - - // 标签列表 - final tagsList = item.tags - .map((tag) => (id: tag.id, name: tag.name, color: tag.color)) - .toList(); - - return TransactionListItem( - icon: getCategoryIconData(category: category, categoryName: categoryName), - category: category, - title: isTransfer - ? (subtitle.isNotEmpty ? subtitle : l10n.transferTitle) - : (subtitle.isNotEmpty ? subtitle : categoryName), - categoryName: isTransfer - ? null - : (subtitle.isNotEmpty ? categoryName : null), - amount: item.t.amount, - isExpense: isExpense, - isTransfer: isTransfer, - happenedAt: item.t.happenedAt, - accountName: item.account?.name, - tags: tagsList.isNotEmpty ? tagsList : null, - attachmentCount: item.attachments.length, - onTap: () async { - await TransactionEditUtils.editTransaction( - context, - ref, - item.t, - item.category, - ); - }, - ); - }, - ); - }, - loading: () => _buildTransactionsSkeleton(context), - error: (err, stack) => Padding( - padding: const EdgeInsets.all(24), - child: Center(child: Text('Error: $err')), - ), - ), - ); - - return Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [header, card], - ); - } - - // 构建当月交易列表(不显示日期和统计) - Widget _buildMonthTransactionsList( - BuildContext context, int ledgerId, DateTime month) { - final l10n = AppLocalizations.of(context); + final displayName = category != null + ? CategoryUtils.getDisplayName(category.name, context) + : l10n.commonUncategorized; - // 使用 Provider 查询当月交易 - final startDate = DateTime(month.year, month.month, 1); - final endDate = DateTime(month.year, month.month + 1, 0, 23, 59, 59); - - final transactionsAsync = ref.watch( - monthTransactionsProvider( - (ledgerId: ledgerId, startDate: startDate, endDate: endDate)), - ); - - return SectionCard( - margin: EdgeInsets.zero, - child: transactionsAsync.when( - data: (transactions) { - if (transactions.isEmpty) { - return Padding( - padding: EdgeInsets.all(24.0.scaled(context, ref)), - child: Center( - child: Text( - l10n.calendarNoTransactions, - style: TextStyle( - color: BeeTokens.textTertiary(context), - ), - ), - ), - ); - } - - // 直接显示交易列表 - return ListView.builder( - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), - padding: EdgeInsets.zero, - itemCount: transactions.length, - itemBuilder: (context, index) { - final item = transactions[index]; - final category = item.category; - final isExpense = item.t.type == 'expense'; - final isTransfer = item.t.type == 'transfer'; - - // 分类名称 - final categoryName = category?.name ?? l10n.commonUncategorized; + // 父级分类名称(二级分类时显示) + final parentCategoryName = (!isTransfer && category != null) + ? (CategoryUtils.getParentDisplayName(category.name, category.kind, context) + ?? categoryNameById[category.parentId]) + : null; // 备注作为副标题 final subtitle = item.t.note ?? ''; @@ -644,14 +562,13 @@ class _CalendarPageState extends ConsumerState { .toList(); return TransactionListItem( - icon: getCategoryIconData(category: category, categoryName: categoryName), + icon: getCategoryIconData(category: category, categoryName: displayName), category: category, title: isTransfer ? (subtitle.isNotEmpty ? subtitle : l10n.transferTitle) - : (subtitle.isNotEmpty ? subtitle : categoryName), - categoryName: isTransfer - ? null - : (subtitle.isNotEmpty ? categoryName : null), + : (subtitle.isNotEmpty ? subtitle : displayName), + categoryName: isTransfer ? null : displayName, + parentCategoryName: isTransfer ? null : parentCategoryName, amount: item.t.amount, isExpense: isExpense, isTransfer: isTransfer, @@ -681,6 +598,11 @@ class _CalendarPageState extends ConsumerState { ), ), ); + + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [header, card], + ); } String _formatDate(DateTime date) { diff --git a/lib/pages/tag/tag_detail_page.dart b/lib/pages/tag/tag_detail_page.dart index 1ced2116..dbf23c06 100644 --- a/lib/pages/tag/tag_detail_page.dart +++ b/lib/pages/tag/tag_detail_page.dart @@ -303,13 +303,19 @@ class _TagDetailPageState extends ConsumerState { final categoryName = CategoryUtils.getDisplayName(category?.name, context); final isTransfer = transaction.type == 'transfer'; + // 获取父级分类名称(二级分类时显示) + final parentCategoryName = (!isTransfer && category != null) + ? CategoryUtils.getParentDisplayName(category.name, category.kind, context) + : null; + // 和首页保持一致:有备注显示备注,无备注显示分类名称 final hasNote = transaction.note?.isNotEmpty == true; return TransactionListItem( icon: getCategoryIconData(category: category, categoryName: categoryName), category: category, title: hasNote ? transaction.note! : categoryName, - categoryName: hasNote ? null : categoryName, + categoryName: isTransfer ? null : categoryName, + parentCategoryName: isTransfer ? null : parentCategoryName, amount: transaction.amount, isExpense: transaction.type == 'expense', happenedAt: transaction.happenedAt, diff --git a/lib/pages/transaction/search_page.dart b/lib/pages/transaction/search_page.dart index be44baa1..fddedde9 100644 --- a/lib/pages/transaction/search_page.dart +++ b/lib/pages/transaction/search_page.dart @@ -9,6 +9,7 @@ import '../../widgets/ui/ui.dart'; import '../../styles/tokens.dart'; import '../../utils/category_utils.dart'; import '../../l10n/app_localizations.dart'; +import '../../providers/database_providers.dart'; import '../../utils/transaction_edit_utils.dart'; import '../../widgets/category_icon.dart'; import 'category_detail_page.dart'; @@ -593,6 +594,11 @@ class _SearchPageState extends ConsumerState { final ledgerId = ref.watch(currentLedgerIdProvider); final hide = ref.watch(hideAmountsProvider); final l10n = AppLocalizations.of(context); + final allCategories = ref.watch(categoriesProvider).valueOrNull ?? []; + final Map categoryNameById = { + for (var c in allCategories) + c.id: CategoryUtils.getDisplayName(c.name, context, kind: c.kind), + }; return Scaffold( backgroundColor: BeeTokens.scaffoldBackground(context), @@ -954,6 +960,12 @@ class _SearchPageState extends ConsumerState { // 获取分类显示名称 final categoryName = CategoryUtils.getDisplayName(item.category?.name, context); + // 获取父级分类名称(二级分类时显示) + final parentCategoryName = (!isTransfer && item.category != null) + ? (CategoryUtils.getParentDisplayName(item.category!.name, item.category!.kind, context) + ?? categoryNameById[item.category!.parentId]) + : null; + final subtitle = item.t.note ?? ''; final isSelected = _selectedIds.contains(item.t.id); @@ -969,8 +981,8 @@ class _SearchPageState extends ConsumerState { title: subtitle.isNotEmpty ? subtitle : categoryName, - categoryName: - subtitle.isNotEmpty ? null : categoryName, + categoryName: isTransfer ? null : categoryName, + parentCategoryName: isTransfer ? null : parentCategoryName, amount: item.t.amount, isExpense: isExpense, hide: hide, diff --git a/lib/utils/category_utils.dart b/lib/utils/category_utils.dart index ad20b2c6..730d22c5 100644 --- a/lib/utils/category_utils.dart +++ b/lib/utils/category_utils.dart @@ -196,4 +196,15 @@ class CategoryUtils { return translationString.split(separator).map((e) => e.trim()).toList(); } + + /// 获取父级分类的显示名称 + /// + /// 对于二级分类的key格式(如 "dining_breakfast"),提取父级key("dining") + /// 并返回其翻译后的显示名称("餐饮")。 + /// 如果是一级分类,返回null。 + static String? getParentDisplayName(String? categoryName, String kind, BuildContext context) { + if (categoryName == null || !categoryName.contains('_')) return null; + final parentKey = categoryName.split('_').first; + return getDisplayName(parentKey, context, kind: kind); + } } diff --git a/lib/widgets/biz/transaction_list.dart b/lib/widgets/biz/transaction_list.dart index 4bd8e9e7..b69c79f2 100644 --- a/lib/widgets/biz/transaction_list.dart +++ b/lib/widgets/biz/transaction_list.dart @@ -339,6 +339,13 @@ class TransactionListState extends ConsumerState { // —— account / toAccount 由 Drift JOIN + SharedLedger* table-watch 自动 // 推送,UI 直接读 it.account?.name。 + // 加载全部分类,构建分类名称查找表,用于通过 parentId 查找父级分类名称 + final allCategories = ref.watch(categoriesProvider).valueOrNull ?? []; + final Map categoryNameById = { + for (final c in allCategories) + c.id: CategoryUtils.getDisplayName(c.name, context, kind: c.kind), + }; + _buildFlatItems(); // 无数据时展示空状态 @@ -423,6 +430,16 @@ class TransactionListState extends ConsumerState { ? AppLocalizations.of(context).adjustmentTransaction : CategoryUtils.getDisplayName(it.category?.name, context); + // 获取父级分类名称(二级分类时显示) + // 优先通过名称中的下划线格式解析(内置分类如 "dining_breakfast" → "dining") + // 如果解析失败且有 parentId,从全部分类表中查询 + final parentCategoryName = (!isTransfer && !isAdjustment && it.category != null) + ? (CategoryUtils.getParentDisplayName(it.category!.name, it.category!.kind, context) + ?? (it.category!.parentId != null + ? categoryNameById[it.category!.parentId] + : null)) + : null; + final subtitle = it.t.note ?? ''; // 检查是否是当天最后一项 @@ -502,9 +519,8 @@ class TransactionListState extends ConsumerState { : isAdjustment ? categoryName : (subtitle.isNotEmpty ? subtitle : categoryName), - categoryName: (isTransfer || isAdjustment) - ? null - : (subtitle.isNotEmpty ? null : categoryName), + categoryName: (isTransfer || isAdjustment) ? null : categoryName, + parentCategoryName: isTransfer || isAdjustment ? null : parentCategoryName, amount: it.t.amount, isExpense: isExpense, isTransfer: isTransfer, diff --git a/lib/widgets/biz/transaction_list_item.dart b/lib/widgets/biz/transaction_list_item.dart index a5971dc8..60d1f00f 100644 --- a/lib/widgets/biz/transaction_list_item.dart +++ b/lib/widgets/biz/transaction_list_item.dart @@ -20,6 +20,7 @@ class TransactionListItem extends ConsumerWidget { final VoidCallback? onTap; final VoidCallback? onCategoryTap; // 点击分类图标/名称的回调 final String? categoryName; // 分类名称,用于显示 + final String? parentCategoryName; // 父级分类名称(二级分类时显示) final VoidCallback? onDelete; // 删除回调 final String? accountName; // 账户名称,用于显示 final DateTime? happenedAt; // 交易时间,用于显示时分 @@ -39,46 +40,51 @@ class TransactionListItem extends ConsumerWidget { final VoidCallback? onAttachmentTap; // 点击附件图标回调 const TransactionListItem({ - super.key, - required this.icon, - this.category, - required this.title, - required this.amount, - required this.isExpense, - this.isTransfer = false, - this.isAdjustment = false, - this.hide, - this.onTap, - this.onCategoryTap, - this.categoryName, - this.onDelete, - this.accountName, - this.happenedAt, - this.isSelectionMode = false, - this.isSelected = false, - this.onSelectionChanged, - this.showFullDate = false, - this.tags, - this.onTagTap, - this.attachmentCount = 0, - this.onAttachmentTap, + super.key, + required this.icon, + this.category, + required this.title, + required this.amount, + required this.isExpense, + this.isTransfer = false, + this.isAdjustment = false, + this.hide, + this.onTap, + this.onCategoryTap, + this.categoryName, + this.parentCategoryName, + this.onDelete, + this.accountName, + this.happenedAt, + this.isSelectionMode = false, + this.isSelected = false, + this.onSelectionChanged, + this.showFullDate = false, + this.tags, + this.onTagTap, + this.attachmentCount = 0, + this.onAttachmentTap, }); - - /// 检查是否有次要信息需要显示(时间、账户或附件) + /// 检查是否有次要信息需要显示(分类标签、时间、账户或附件) bool _hasSecondaryInfo(WidgetRef ref) { + // 有分类名时始终显示标签,保持风格一致性 + if (categoryName != null) return true; + // 显示完整日期模式 if (showFullDate && happenedAt != null) return true; // 显示时间(设置开启 + 有数据 + 不是00:00:00) final showTime = ref.watch(showTransactionTimeProvider) && happenedAt != null && - (happenedAt!.hour != 0 || happenedAt!.minute != 0 || happenedAt!.second != 0); + (happenedAt!.hour != 0 || + happenedAt!.minute != 0 || + happenedAt!.second != 0); return showTime || accountName != null || attachmentCount > 0; } - /// 构建次要信息小部件(时间 · 账户 + 附件图标) + /// 构建次要信息小部件(分类标签 · 时间 · 账户 + 附件图标) Widget _buildSecondaryInfo(BuildContext context, WidgetRef ref) { final parts = []; @@ -91,7 +97,9 @@ class TransactionListItem extends ConsumerWidget { '${happenedAt!.hour.toString().padLeft(2, '0')}:${happenedAt!.minute.toString().padLeft(2, '0')}', ); } else if (ref.watch(showTransactionTimeProvider) && - (happenedAt!.hour != 0 || happenedAt!.minute != 0 || happenedAt!.second != 0)) { + (happenedAt!.hour != 0 || + happenedAt!.minute != 0 || + happenedAt!.second != 0)) { // 完整时间模式(HH:mm:ss) parts.add( '${happenedAt!.hour.toString().padLeft(2, '0')}:${happenedAt!.minute.toString().padLeft(2, '0')}:${happenedAt!.second.toString().padLeft(2, '0')}', @@ -105,9 +113,9 @@ class TransactionListItem extends ConsumerWidget { } final textStyle = Theme.of(context).textTheme.bodySmall?.copyWith( - color: BeeTokens.textTertiary(context), - fontSize: 11, - ); + color: BeeTokens.textTertiary(context), + fontSize: 11, + ); // 构建附件图标部件(可点击) Widget buildAttachmentWidget() { @@ -136,21 +144,208 @@ class TransactionListItem extends ConsumerWidget { return widget; } - // 如果只有附件,没有其他信息 - if (parts.isEmpty && attachmentCount > 0) { - return buildAttachmentWidget(); + // 组装行内容 + final rowChildren = []; + + // 前置:分类标签 + if (categoryName != null) { + rowChildren.add(_buildCategoryLabels(context)); } - // 有其他信息时 - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text(parts.join(' · '), style: textStyle), - if (attachmentCount > 0) ...[ - Text(' · ', style: textStyle), - buildAttachmentWidget(), - ], - ], + // 中间:时间 · 账户 + if (parts.isNotEmpty) { + if (rowChildren.isNotEmpty) { + rowChildren.add(Padding( + padding: const EdgeInsets.symmetric(horizontal: 2), + child: Text('·', style: textStyle), + )); + } + rowChildren.add(Text(parts.join(' · '), style: textStyle)); + } + + // 尾部:附件图标 + if (attachmentCount > 0) { + if (rowChildren.isNotEmpty) { + rowChildren.add(Padding( + padding: const EdgeInsets.symmetric(horizontal: 2), + child: Text('·', style: textStyle), + )); + } + rowChildren.add(buildAttachmentWidget()); + } + + if (rowChildren.isEmpty) return const SizedBox.shrink(); + + final hasCategory = categoryName != null; + final hasTimeOrAccount = parts.isNotEmpty; + final hasAttach = attachmentCount > 0; + + // 用于宽度预估的分类标签样式(与 _buildCategoryLabels 保持一致) + final colorScheme = Theme.of(context).colorScheme; + final primaryColor = colorScheme.primary; + final labelTextStyle = Theme.of(context).textTheme.bodySmall?.copyWith( + fontSize: 10, + color: primaryColor, + height: 1.2, + fontWeight: FontWeight.w500, + ); + final parentTextStyle = parentCategoryName != null + ? labelTextStyle?.copyWith(color: primaryColor.withValues(alpha: 0.8)) + : null; + + return LayoutBuilder( + builder: (ctx, constraints) { + final availableWidth = constraints.maxWidth; + + // 预估一行总宽度 + double totalWidth = 0; + + // 分类标签宽度(Container padding 6+6=12 + 文字 + 间距) + if (hasCategory) { + totalWidth += 12; + if (parentCategoryName != null) { + totalWidth += _textWidth(parentCategoryName!, parentTextStyle, ctx); + totalWidth += _textWidth('>', labelTextStyle, ctx) + 2; + } + totalWidth += _textWidth(categoryName!, labelTextStyle, ctx); + totalWidth += 12; + } + + // 分隔符 · 和 时间·账户 + if (hasCategory && hasTimeOrAccount) { + totalWidth += _textWidth('·', textStyle, ctx) + 4; + } + if (hasTimeOrAccount) { + totalWidth += _textWidth(parts.join(' · '), textStyle, ctx); + } + + // 分隔符 · 和附件图标 + if (hasAttach) { + if (hasTimeOrAccount || hasCategory) { + totalWidth += _textWidth('·', textStyle, ctx) + 4; + } + totalWidth += 12 + 2 + _textWidth('$attachmentCount', textStyle, ctx); + } + + // 留 8px 余量 + if (totalWidth <= availableWidth + 8) { + // 一行放得下 + return Row( + mainAxisSize: MainAxisSize.min, + children: rowChildren, + ); + } + + // 放不下 → 拆两行:分类标签一行,时间·账户·附件一行 + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + if (hasCategory) _buildCategoryLabels(context), + if (hasTimeOrAccount || hasAttach) + Padding( + padding: EdgeInsets.only(top: hasCategory ? 2 : 0), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (hasTimeOrAccount) + Text(parts.join(' · '), style: textStyle), + if (hasAttach) ...[ + if (hasTimeOrAccount) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 2), + child: Text('·', style: textStyle), + ), + buildAttachmentWidget(), + ], + ], + ), + ), + ], + ); + }, + ); + } + + /// 测量文本宽度(TextPainter) + double _textWidth(String text, TextStyle? style, BuildContext context) { + if (text.isEmpty || style == null) return 0; + final tp = TextPainter( + text: TextSpan(text: text, style: style), + maxLines: 1, + textDirection: Directionality.of(context), + )..layout(); + return tp.width; + } + + /// 构建分类标签小部件(用于内嵌在次要信息行中) + /// 风格:单一标签 + 统一样式,二级分类用「 > 」分隔 + Widget _buildCategoryLabels(BuildContext context) { + final colorScheme = Theme.of(context).colorScheme; + final primaryColor = colorScheme.primary; + + // 统一样式:浅底色 + 主色文字 + final labelTextStyle = Theme.of(context).textTheme.bodySmall?.copyWith( + fontSize: 10, + color: primaryColor, + height: 1.2, + fontWeight: FontWeight.w500, + ); + + // 有二级分类时,父类文字稍淡 + final parentTextStyle = parentCategoryName != null + ? labelTextStyle?.copyWith(color: primaryColor.withValues(alpha: 0.8)) + : null; + + // 构建标签文字样式 + final TextStyle? labelStyle = labelTextStyle; + + return Container( + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), + decoration: BoxDecoration( + color: primaryColor.withValues(alpha: 0.08), + borderRadius: BorderRadius.circular(4), + border: Border.all( + color: primaryColor.withValues(alpha: 0.22), + width: 0.8, + ), + ), + child: parentCategoryName != null + ? Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + parentCategoryName!, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: parentTextStyle, + ), + Padding( + padding: const EdgeInsets.only(left: 1, right: 1), + child: Text( + '>', + style: labelStyle?.copyWith( + color: primaryColor.withValues(alpha: 0.45), + ), + ), + ), + Text( + categoryName!, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: labelStyle, + ), + ], + ) + : ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 72), + child: Text( + categoryName!, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: labelStyle, + ), + ), ); } @@ -191,7 +386,7 @@ class TransactionListItem extends ConsumerWidget { ), ), const SizedBox(width: 12), - // 左侧:分类名称 + 备注 + 时间·账户 + // 左侧:分类名称 + 备注 + 分类标签 + 时间·账户 Expanded( child: Padding( padding: const EdgeInsets.only(right: 12), @@ -200,27 +395,25 @@ class TransactionListItem extends ConsumerWidget { mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.min, children: [ - // 第一行:分类名称(始终显示) - Text( - categoryName ?? title, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: BeeTextTokens.title(context), - ), - // 第二行:备注(当title与categoryName不同时显示) - if (categoryName != null && categoryName != title) - Padding( - padding: const EdgeInsets.only(top: 2), - child: Text( - title, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: Theme.of(context).textTheme.bodySmall?.copyWith( - color: BeeTokens.textSecondary(context), - ), - ), + if (categoryName != null && + categoryName != title && + title.isNotEmpty) + // 有备注时:第一行显示备注,分类名作为标签显示在下面 + Text( + title, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: BeeTextTokens.title(context), + ) + else + // 无备注时:显示分类名称(或transfer等标题) + Text( + categoryName ?? title, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: BeeTextTokens.title(context), ), - // 第三行:时间 · 账户 · 附件 + // 时间 · 账户 · 附件 · 分类标签 if (_hasSecondaryInfo(ref)) Padding( padding: const EdgeInsets.only(top: 2), @@ -240,7 +433,9 @@ class TransactionListItem extends ConsumerWidget { AmountText( value: isAdjustment ? amount // adjustment 直接显示原始值(含正负) - : isExpense ? -amount : amount, + : isExpense + ? -amount + : amount, hide: hide, signed: !isTransfer, // 转账不显示正负号 decimals: 2, @@ -292,10 +487,11 @@ class TransactionListItem extends ConsumerWidget { confirmDismiss: (direction) async { // 显示确认对话框 return await AppDialog.confirm( - context, - title: '确认删除', - message: '确定要删除这笔交易吗?此操作无法撤销。', - ) ?? false; + context, + title: '确认删除', + message: '确定要删除这笔交易吗?此操作无法撤销。', + ) ?? + false; }, onDismissed: (direction) { onDelete!(); diff --git a/packages/flutter_cloud_sync_webdav/lib/src/webdav_storage_service.dart b/packages/flutter_cloud_sync_webdav/lib/src/webdav_storage_service.dart index 5125c91c..d69a2ddf 100644 --- a/packages/flutter_cloud_sync_webdav/lib/src/webdav_storage_service.dart +++ b/packages/flutter_cloud_sync_webdav/lib/src/webdav_storage_service.dart @@ -2,6 +2,7 @@ library; import 'dart:convert'; +import 'package:dio/dio.dart'; import 'package:flutter_cloud_sync/flutter_cloud_sync.dart'; import 'package:webdav_client/webdav_client.dart' as webdav; @@ -43,20 +44,57 @@ class WebDAVStorageService implements CloudStorageService { @override Future download({required String path}) async { try { - // Build full path final fullPath = _buildPath(path); - // Download file - final bytes = await _client.read(fullPath); + try { + // Try standard read (OPTIONS + GET). Some WebDAV servers + // (e.g. Synology NAS) return 404 for OPTIONS on individual files, + // so fall back to direct GET if that happens. + final bytes = await _client.read(fullPath); + return utf8.decode(bytes); + } catch (e) { + final msg = e.toString().toLowerCase(); + final isNotFound = msg.contains('404') || msg.contains('not found'); - // Convert bytes to string - return utf8.decode(bytes); + if (!isNotFound) rethrow; + + // OPTIONS pre-check failed — fall back to direct GET. + return _directGet(fullPath); + } } catch (e) { - // Return null if file not found - if (e.toString().contains('404') || e.toString().contains('not found')) { + throw CloudStorageException('Download failed: $e', e); + } + } + + /// Bypass OPTIONS pre-check and download file directly via GET. + Future _directGet(String fullPath) async { + try { + final response = await _client.c.req>( + _client, + 'GET', + fullPath, + optionsHandler: (options) { + options.responseType = ResponseType.bytes; + options.headers?['accept'] = '*/*'; + }, + ); + + if (response.statusCode == 404) return null; + if (response.statusCode != 200) { + throw CloudStorageException( + 'Download failed: HTTP ${response.statusCode}'); + } + + final data = response.data; + if (data == null || data.isEmpty) return ''; + + return utf8.decode(data); + } catch (e) { + final msg = e.toString().toLowerCase(); + if (msg.contains('404') || msg.contains('not found')) { return null; } - throw CloudStorageException('Download failed: $e', e); + rethrow; } } diff --git a/packages/flutter_cloud_sync_webdav/pubspec.lock b/packages/flutter_cloud_sync_webdav/pubspec.lock index cb95eeb2..c0907d97 100644 --- a/packages/flutter_cloud_sync_webdav/pubspec.lock +++ b/packages/flutter_cloud_sync_webdav/pubspec.lock @@ -89,8 +89,24 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.7" - dio: + device_info_plus: + dependency: transitive + description: + name: device_info_plus + sha256: "72d146c6d7098689ff5c5f66bcf593ac11efc530095385356e131070333e64da" + url: "https://pub.dev" + source: hosted + version: "11.3.0" + device_info_plus_platform_interface: dependency: transitive + description: + name: device_info_plus_platform_interface + sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" + url: "https://pub.dev" + source: hosted + version: "7.0.2" + dio: + dependency: "direct main" description: name: dio sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9 @@ -141,6 +157,20 @@ packages: relative: true source: path version: "0.1.0" + flutter_cloud_sync_icloud: + dependency: transitive + description: + path: "../flutter_cloud_sync_icloud" + relative: true + source: path + version: "0.1.0" + flutter_cloud_sync_s3: + dependency: transitive + description: + path: "../flutter_cloud_sync_s3" + relative: true + source: path + version: "0.1.0" flutter_cloud_sync_supabase: dependency: transitive description: @@ -286,6 +316,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + package_info_plus: + dependency: transitive + description: + name: package_info_plus + sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" + url: "https://pub.dev" + source: hosted + version: "8.3.1" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" + url: "https://pub.dev" + source: hosted + version: "3.2.1" path: dependency: transitive description: @@ -651,6 +697,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.2" + win32: + dependency: transitive + description: + name: win32 + sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e + url: "https://pub.dev" + source: hosted + version: "5.10.1" + win32_registry: + dependency: transitive + description: + name: win32_registry + sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" + url: "https://pub.dev" + source: hosted + version: "1.1.5" xdg_directories: dependency: transitive description: diff --git a/packages/flutter_cloud_sync_webdav/pubspec.yaml b/packages/flutter_cloud_sync_webdav/pubspec.yaml index 51920f28..b1596c38 100644 --- a/packages/flutter_cloud_sync_webdav/pubspec.yaml +++ b/packages/flutter_cloud_sync_webdav/pubspec.yaml @@ -16,6 +16,7 @@ dependencies: path: ../flutter_cloud_sync webdav_client: ^1.2.2 http: ^1.1.0 + dio: ^5.0.0 dev_dependencies: flutter_test: