diff --git a/lib/common/widgets/image_save.dart b/lib/common/widgets/image_save.dart index 75c0836de..ab8360978 100644 --- a/lib/common/widgets/image_save.dart +++ b/lib/common/widgets/image_save.dart @@ -72,36 +72,36 @@ void imageSaveDialog({ style: Theme.of(context).textTheme.titleSmall, ), ), - const SizedBox(width: 4), - iconButton( - context: context, - tooltip: '分享', - onPressed: () { - DownloadUtils.onShareImg(cover ?? ''); - }, - iconSize: 20, - icon: Icons.share, - bgColor: Colors.transparent, - iconColor: Theme.of(context).colorScheme.onSurfaceVariant, - ), - iconButton( - context: context, - tooltip: '保存封面图', - onPressed: () async { - bool saveStatus = await DownloadUtils.downloadImg( - context, - [cover ?? ''], - ); - // 保存成功,自动关闭弹窗 - if (saveStatus) { + if (cover?.isNotEmpty == true) ...[ + const SizedBox(width: 4), + iconButton( + context: context, + tooltip: '分享', + onPressed: () { SmartDialog.dismiss(); - } - }, - iconSize: 20, - icon: Icons.download, - bgColor: Colors.transparent, - iconColor: Theme.of(context).colorScheme.onSurfaceVariant, - ), + DownloadUtils.onShareImg(cover!); + }, + iconSize: 20, + icon: Icons.share, + bgColor: Colors.transparent, + iconColor: Theme.of(context).colorScheme.onSurfaceVariant, + ), + iconButton( + context: context, + tooltip: '保存封面图', + onPressed: () async { + bool saveStatus = + await DownloadUtils.downloadImg(context, [cover!]); + if (saveStatus) { + SmartDialog.dismiss(); + } + }, + iconSize: 20, + icon: Icons.download, + bgColor: Colors.transparent, + iconColor: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ], ], ), ), diff --git a/lib/pages/dynamics/widgets/author_panel.dart b/lib/pages/dynamics/widgets/author_panel.dart index 66a3bb784..371db7b84 100644 --- a/lib/pages/dynamics/widgets/author_panel.dart +++ b/lib/pages/dynamics/widgets/author_panel.dart @@ -245,6 +245,15 @@ class AuthorPanel extends StatelessWidget { ); Widget morePanel(context) { + String? bvid; + try { + bvid = switch (item.type) { + 'DYNAMIC_TYPE_AV' => item.modules.moduleDynamic.major.archive.bvid, + 'DYNAMIC_TYPE_UGC_SEASON' => + item.modules.moduleDynamic.major.ugcSeason.bvid, + _ => null, + }; + } catch (_) {} return Padding( padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom), child: Column( @@ -270,14 +279,13 @@ class AuthorPanel extends StatelessWidget { ), ), ), - if (item.type == 'DYNAMIC_TYPE_AV') + if (bvid != null) ListTile( onTap: () async { + Get.back(); try { - String bvid = item.modules.moduleDynamic.major.archive.bvid; var res = await UserHttp.toViewLater(bvid: bvid); SmartDialog.showToast(res['msg']); - Get.back(); } catch (err) { SmartDialog.showToast('出错了:${err.toString()}'); } @@ -303,6 +311,15 @@ class AuthorPanel extends StatelessWidget { }, minLeadingWidth: 0, ), + ListTile( + onTap: () { + Get.back(); + SavePanel.toSavePanel(item: item); + }, + minLeadingWidth: 0, + leading: const Icon(Icons.save_alt, size: 19), + title: Text('保存动态', style: Theme.of(context).textTheme.titleSmall!), + ), ListTile( title: Text( '临时屏蔽:${item.modules.moduleAuthor.name}', @@ -320,15 +337,6 @@ class AuthorPanel extends StatelessWidget { }, minLeadingWidth: 0, ), - ListTile( - onTap: () { - Get.back(); - SavePanel.toSavePanel(item: item); - }, - minLeadingWidth: 0, - leading: const Icon(Icons.save_alt, size: 19), - title: Text('保存动态', style: Theme.of(context).textTheme.titleSmall!), - ), if (item.modules.moduleAuthor.mid == Accounts.main.mid) ...[ ListTile( onTap: () {