From 06c581cd80ecd3e84725782d49e23926ddad80d3 Mon Sep 17 00:00:00 2001 From: xkeyC <3334969096@qq.com> Date: Tue, 28 Nov 2023 19:28:50 +0800 Subject: [PATCH] =?UTF-8?q?dps=20=E5=9B=BE=E6=A0=87=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=20home=20=E7=BB=93=E6=9E=84=E5=BE=AE?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/dps.png | Bin 0 -> 23959 bytes lib/ui/home/home_ui.dart | 276 +++++++++++++++++++-------------------- 2 files changed, 134 insertions(+), 142 deletions(-) create mode 100644 assets/dps.png diff --git a/assets/dps.png b/assets/dps.png new file mode 100644 index 0000000000000000000000000000000000000000..b77b0e45a133340eb804d7093823fb3a5c4d7277 GIT binary patch literal 23959 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 { makeWebViewButton(model, icon: Row( children: [ - ExtendedImage.network( - "https://www.erkul.games/assets/icons/icon-512x512.png", + Image.asset( + "assets/dps.png", height: 20, ), const SizedBox(width: 12), @@ -205,79 +205,7 @@ class HomeUI extends BaseUI { ), ), const SizedBox(height: 12), - Tilt( - borderRadius: BorderRadius.circular(12), - shadowConfig: const ShadowConfig(disable: true), - child: GestureDetector( - onTap: () => model.onTapFestival(), - child: Container( - width: width + 24, - decoration: BoxDecoration( - color: FluentTheme.of(context).cardColor), - child: Padding( - padding: const EdgeInsets.only( - left: 12, right: 12, top: 6, bottom: 6), - child: (model.countdownFestivalListData == null) - ? SizedBox( - width: width, - height: 62, - child: const Center( - child: ProgressRing(), - ), - ) - : SizedBox( - width: width, - height: 62, - child: Swiper( - itemCount: model - .countdownFestivalListData!.length, - autoplay: true, - autoplayDelay: 5000, - itemBuilder: (context, index) { - final item = - model.countdownFestivalListData![ - index]; - return Row( - mainAxisAlignment: - MainAxisAlignment.spaceEvenly, - children: [ - if (item.icon != null && - item.icon != "") ...[ - ClipRRect( - borderRadius: - BorderRadius.circular( - 1000), - child: Image.asset( - "assets/countdown/${item.icon}", - width: 48, - height: 48, - fit: BoxFit.cover, - ), - ), - ], - Column( - children: [ - Text( - item.name ?? "", - style: const TextStyle( - fontSize: 15), - ), - const SizedBox(height: 3), - CountdownTimeText( - targetTime: DateTime - .fromMillisecondsSinceEpoch( - item.time ?? 0), - ), - ], - ), - ], - ); - }, - ), - ), - )), - ), - ), + makeActivityBanner(context, model, width), ], ), if (model.appWebLocalizationVersionsData == null) @@ -313,73 +241,7 @@ class HomeUI extends BaseUI { subtitle: "探索宇宙的好伙伴", jumpUrl: "https://citizenwiki.cn"), const SizedBox(height: 12), - Tilt( - shadowConfig: const ShadowConfig(maxIntensity: .2), - borderRadius: BorderRadius.circular(12), - child: GestureDetector( - onTap: () { - model.goWebView("RSI 服务器状态", - "https://status.robertsspaceindustries.com/", - useLocalization: true); - }, - child: Container( - width: width, - decoration: BoxDecoration( - color: FluentTheme.of(context).cardColor, - ), - child: Padding( - padding: const EdgeInsets.all(12), - child: Column(children: [ - const Row( - children: [ - Text("星际公民服务器状态:"), - ], - ), - const SizedBox(height: 12), - if (model.scServerStatus == null) - makeLoading(context, width: 20) - else - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - for (final item in model.scServerStatus ?? []) - Row( - children: [ - SizedBox( - height: 14, - child: Center( - child: Icon( - FontAwesomeIcons.solidCircle, - color: model - .isRSIServerStatusOK(item) - ? Colors.green - : Colors.red, - size: 12, - ), - ), - ), - const SizedBox(width: 3), - Text( - "${model.statusCnName[item["name"]] ?? item["name"]}", - style: const TextStyle(fontSize: 13), - ), - ], - ) - ], - ) - ]), - ), - // child: IconButton( - // icon: , - // onPressed: () { - // launchUrlString( - // "https://status.robertsspaceindustries.com/"); - // }, - // ), - ), - ), - ), + makeGameStatusCard(context, model, width), ], )) ], @@ -745,6 +607,136 @@ class HomeUI extends BaseUI { ), ); } + + Widget makeGameStatusCard( + BuildContext context, HomeUIModel model, double width) { + return Tilt( + shadowConfig: const ShadowConfig(maxIntensity: .2), + borderRadius: BorderRadius.circular(12), + child: GestureDetector( + onTap: () { + model.goWebView( + "RSI 服务器状态", "https://status.robertsspaceindustries.com/", + useLocalization: true); + }, + child: Container( + width: width, + decoration: BoxDecoration( + color: FluentTheme.of(context).cardColor, + ), + child: Padding( + padding: const EdgeInsets.all(12), + child: Column(children: [ + const Row( + children: [ + Text("星际公民服务器状态:"), + ], + ), + const SizedBox(height: 12), + if (model.scServerStatus == null) + makeLoading(context, width: 20) + else + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + for (final item in model.scServerStatus ?? []) + Row( + children: [ + SizedBox( + height: 14, + child: Center( + child: Icon( + FontAwesomeIcons.solidCircle, + color: model.isRSIServerStatusOK(item) + ? Colors.green + : Colors.red, + size: 12, + ), + ), + ), + const SizedBox(width: 3), + Text( + "${model.statusCnName[item["name"]] ?? item["name"]}", + style: const TextStyle(fontSize: 13), + ), + ], + ) + ], + ) + ]), + ), + ), + ), + ); + } + + Widget makeActivityBanner( + BuildContext context, HomeUIModel model, double width) { + return Tilt( + borderRadius: BorderRadius.circular(12), + shadowConfig: const ShadowConfig(disable: true), + child: GestureDetector( + onTap: () => model.onTapFestival(), + child: Container( + width: width + 24, + decoration: BoxDecoration(color: FluentTheme.of(context).cardColor), + child: Padding( + padding: + const EdgeInsets.only(left: 12, right: 12, top: 6, bottom: 6), + child: (model.countdownFestivalListData == null) + ? SizedBox( + width: width, + height: 62, + child: const Center( + child: ProgressRing(), + ), + ) + : SizedBox( + width: width, + height: 62, + child: Swiper( + itemCount: model.countdownFestivalListData!.length, + autoplay: true, + autoplayDelay: 5000, + itemBuilder: (context, index) { + final item = model.countdownFestivalListData![index]; + return Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + if (item.icon != null && item.icon != "") ...[ + ClipRRect( + borderRadius: BorderRadius.circular(1000), + child: Image.asset( + "assets/countdown/${item.icon}", + width: 48, + height: 48, + fit: BoxFit.cover, + ), + ), + ], + Column( + children: [ + Text( + item.name ?? "", + style: const TextStyle(fontSize: 15), + ), + const SizedBox(height: 3), + CountdownTimeText( + targetTime: + DateTime.fromMillisecondsSinceEpoch( + item.time ?? 0), + ), + ], + ), + ], + ); + }, + ), + ), + )), + ), + ); + } } class _HomeItemData {