From 1aa7cf34778ac1ca8bb2773625386e505abc1636 Mon Sep 17 00:00:00 2001 From: peima Date: Sun, 26 Jul 2026 10:47:55 +0800 Subject: [PATCH] phase3: targeted local-var nullable (strict type) + nullfix cascade. 379->309 --- .../desktop/create_online_store_1.dart | 6 +-- lib/widgets/desktop/desktop_orders.dart | 42 +++++++++---------- lib/widgets/general/download_item.dart | 6 +-- lib/widgets/mobile/create_online_store_1.dart | 6 +-- lib/widgets/mobile/mobile_me.dart | 2 +- lib/widgets/mobile/mobile_orders.dart | 16 +++---- 6 files changed, 39 insertions(+), 39 deletions(-) diff --git a/lib/widgets/desktop/create_online_store_1.dart b/lib/widgets/desktop/create_online_store_1.dart index 26c5580..6a21476 100644 --- a/lib/widgets/desktop/create_online_store_1.dart +++ b/lib/widgets/desktop/create_online_store_1.dart @@ -189,7 +189,7 @@ class CreateOnlineStore1State extends State { ), ), ); - Map existing_web_svc; + Map? existing_web_svc; if (selectedStore != null && (selectedStore['services'] as List).length > 0) { for (Mapsvc in (selectedStore['services'] as List)) { if (svc['code'] == Constants.WEB_MINISTORE_SERVICE) { @@ -241,8 +241,8 @@ class CreateOnlineStore1State extends State { Navigator.pushReplacement(context, MaterialPageRoute( builder: (BuildContext context) => BuyService(group.id!, Constants.WEB_MINISTORE_SERVICE, - domain: existing_web_svc['domain'], - sid: existing_web_svc['store']['id'], + domain: existing_web_svc!['domain'], + sid: existing_web_svc!['store']['id'], ), )); }, diff --git a/lib/widgets/desktop/desktop_orders.dart b/lib/widgets/desktop/desktop_orders.dart index 1d1c56d..a7301e8 100644 --- a/lib/widgets/desktop/desktop_orders.dart +++ b/lib/widgets/desktop/desktop_orders.dart @@ -134,7 +134,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS controller: scrollController, itemCount: orders != null && orders.length > 0 ? orders.length + 1 : 1, itemBuilder: (BuildContext context, int position) { - Order order; + Order? order; if (orders != null && orders.length > 0 && position < orders.length) { order = orders[position]; } @@ -181,7 +181,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS row.children.add(Expanded( child: Container( child: Text( - order.cartInfo!.productList![0].name, + order!.cartInfo!.productList![0].name, style: TextStyle( fontSize: 14.0, ), @@ -190,10 +190,10 @@ class DesktopOrdersState extends State with SingleTickerProviderS ), ), )); - if (order.cartInfo!.productList!.length > 1) { + if (order!.cartInfo!.productList!.length > 1) { row.children.add(Container( child: Text( - S.of(context).and_more_item_token(Utils.getProductLineInOrder(order.cartInfo!)), + S.of(context).and_more_item_token(Utils.getProductLineInOrder(order!.cartInfo!)), style: TextStyle( fontSize: 12.0, color: Colors.black26, @@ -205,7 +205,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS width: 80.0, alignment: Alignment.centerRight, child: Text( - '\$${order.totalPrice!.toStringAsFixed(2)}', + '\$${order!.totalPrice!.toStringAsFixed(2)}', style: TextStyle( fontSize: 16.0, fontWeight: FontWeight.bold, @@ -222,13 +222,13 @@ class DesktopOrdersState extends State with SingleTickerProviderS ), onPressed: () { Navigator.push(context, MaterialPageRoute( - builder: (BuildContext context) => OrderDetail(order.id!, fromOrders: true,), + builder: (BuildContext context) => OrderDetail(order!.id!, fromOrders: true,), )); }, ), ], ); - if (order.status == Constants.STATUS_COMPLETE && !order.hasComment) { + if (order!.status == Constants.STATUS_COMPLETE && !order!.hasComment) { row3.children.add( Padding( padding: EdgeInsets.only(left: 10.0), @@ -237,7 +237,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS S.of(context).comment, ), onPressed: () { - Routes.router.navigateTo(context, '/new-comment/${order.id}'); + Routes.router.navigateTo(context, '/new-comment/${order!.id}'); }, ), ), @@ -249,11 +249,11 @@ class DesktopOrdersState extends State with SingleTickerProviderS crossAxisAlignment: CrossAxisAlignment.start, children: [], ); - if (order.paymentStatus != Constants.PAYMENT_STATUS_PAID) { + if (order!.paymentStatus != Constants.PAYMENT_STATUS_PAID) { row2.children.add(row3); - if (order.paymentStatus != Constants.PAYMENT_STATUS_PAID - && order.status != Constants.STATUS_CANCELLED - && order.status != Constants.STATUS_COMPLETE) { + if (order!.paymentStatus != Constants.PAYMENT_STATUS_PAID + && order!.status != Constants.STATUS_CANCELLED + && order!.status != Constants.STATUS_COMPLETE) { row2.children.add(ElevatedButton( child: Text( S.of(context) @@ -266,7 +266,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS backgroundColor: Colors.redAccent, ), onPressed: () { - Routes.router.navigateTo(context, '/paynow/${order.id}'); + Routes.router.navigateTo(context, '/paynow/${order!.id}'); }, )); } else { @@ -281,7 +281,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS backgroundColor: Theme.of(context).primaryColor, ), onPressed: () { - Utils.orderAgain(context, order.cartInfo!); + Utils.orderAgain(context, order!.cartInfo!); }, )); } @@ -298,7 +298,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS backgroundColor: Theme.of(context).primaryColor, ), onPressed: () { - Utils.orderAgain(context, order.cartInfo!); + Utils.orderAgain(context, order!.cartInfo!); }, )); } @@ -320,7 +320,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS mainAxisAlignment: MainAxisAlignment.start, children: [ Container( - child: Util.showImage('${order.cartInfo!.businessInfo!.picUrl}', + child: Util.showImage('${order!.cartInfo!.businessInfo!.picUrl}', width: 32.0, height: 32.0, fit: BoxFit.fill, @@ -336,7 +336,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS children: [ Container( child: Text( - '${order.cartInfo!.businessInfo!.name}', + '${order!.cartInfo!.businessInfo!.name}', style: TextStyle( fontSize: 20.0, ), @@ -346,7 +346,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS ), Container( child: Text( - '#${order.orderNum} ${Utils.timestampToString(context, order.createdAt!, withTime: true)}', + '#${order!.orderNum} ${Utils.timestampToString(context, order!.createdAt!, withTime: true)}', style: TextStyle( fontSize: 12.0, color: Colors.black26, @@ -358,7 +358,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS ), onTap: () { Navigator.push(context, MaterialPageRoute( - builder: (BuildContext context) => OrderDetail(order.id!, fromOrders: true,), + builder: (BuildContext context) => OrderDetail(order!.id!, fromOrders: true,), )); }, ), @@ -369,7 +369,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS children: [ Container( child: Text( - '${Utils.getOrderStatus(context, order.status!)}', + '${Utils.getOrderStatus(context, order!.status!)}', style: TextStyle( fontSize: 15.0, fontWeight: FontWeight.bold, @@ -404,7 +404,7 @@ class DesktopOrdersState extends State with SingleTickerProviderS ), onTap: () { Navigator.push(context, MaterialPageRoute( - builder: (BuildContext context) => OrderDetail(order.id!, fromOrders: true,), + builder: (BuildContext context) => OrderDetail(order!.id!, fromOrders: true,), )); }, ), diff --git a/lib/widgets/general/download_item.dart b/lib/widgets/general/download_item.dart index 5d09b87..3cce3bd 100644 --- a/lib/widgets/general/download_item.dart +++ b/lib/widgets/general/download_item.dart @@ -186,9 +186,9 @@ class DownloadItemState extends State { } Widget getDownloadButton() { - String downloadUrl; + String? downloadUrl; String os = Utils.getOs(); - String selectedOs; + String? selectedOs; List supportedOss = []; for (int i = 0; i < (widget.desc['urls'] as List).length; i++) { supportedOss.add((widget.desc['urls'] as List)[i]['os']); @@ -255,7 +255,7 @@ class DownloadItemState extends State { padding: EdgeInsets.only(right: 0.0, left: 6.0, top: 6.0, bottom: 6.0), child: Icon( IconData( - Utils.getOsFontHex(selectedOs), + Utils.getOsFontHex(selectedOs!), fontFamily: 'wisetronic', fontPackage: null ), diff --git a/lib/widgets/mobile/create_online_store_1.dart b/lib/widgets/mobile/create_online_store_1.dart index 6c455c0..0550bb1 100644 --- a/lib/widgets/mobile/create_online_store_1.dart +++ b/lib/widgets/mobile/create_online_store_1.dart @@ -136,7 +136,7 @@ class CreateOnlineStore1State extends State { ), ), ); - Map existing_web_svc; + Map? existing_web_svc; if (selectedStore != null && (selectedStore['services'] as List).length > 0) { for (Mapsvc in (selectedStore['services'] as List)) { if (svc['code'] == Constants.WEB_MINISTORE_SERVICE) { @@ -188,8 +188,8 @@ class CreateOnlineStore1State extends State { Navigator.pushReplacement(context, MaterialPageRoute( builder: (BuildContext context) => BuyService(group.id!, Constants.WEB_MINISTORE_SERVICE, - domain: existing_web_svc['domain'], - sid: existing_web_svc['store']['id'], + domain: existing_web_svc!['domain'], + sid: existing_web_svc!['store']['id'], ), )); }, diff --git a/lib/widgets/mobile/mobile_me.dart b/lib/widgets/mobile/mobile_me.dart index 8d32b94..b09be19 100644 --- a/lib/widgets/mobile/mobile_me.dart +++ b/lib/widgets/mobile/mobile_me.dart @@ -350,7 +350,7 @@ class MobileMeState extends State { controller: _listScrollController1, itemCount: 7, itemBuilder: (BuildContext context, int i) { - Widget item; + Widget? item; switch (i) { case 0: item = GestureDetector( diff --git a/lib/widgets/mobile/mobile_orders.dart b/lib/widgets/mobile/mobile_orders.dart index dd1e0b0..c74b2d6 100644 --- a/lib/widgets/mobile/mobile_orders.dart +++ b/lib/widgets/mobile/mobile_orders.dart @@ -129,7 +129,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta return ListView.builder( itemCount: orders != null && orders.length > 0 ? orders.length : 1, itemBuilder: (BuildContext context, int position) { - Order order; + Order? order; if (orders != null && orders.length > 0) { order = orders[position]; } @@ -193,7 +193,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta ), onPressed: () { Navigator.push(context, MaterialPageRoute( - builder: (BuildContext context) => OrderDetail(order.id!, fromOrders: true,), + builder: (BuildContext context) => OrderDetail(order!.id!, fromOrders: true,), )); }, ), @@ -208,7 +208,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta S.of(context).comment, ), onPressed: () { - Routes.router.navigateTo(context, '/new-comment/${order.id}'); + Routes.router.navigateTo(context, '/new-comment/${order!.id}'); }, ), ), @@ -237,7 +237,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta backgroundColor: Colors.redAccent, ), onPressed: () { - Routes.router.navigateTo(context, '/paynow/${order.id}'); + Routes.router.navigateTo(context, '/paynow/${order!.id}'); }, )); } else { @@ -252,7 +252,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta backgroundColor: Theme.of(context).primaryColor, ), onPressed: () { - Utils.orderAgain(context, order.cartInfo!); + Utils.orderAgain(context, order!.cartInfo!); }, )); } @@ -269,7 +269,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta backgroundColor: Theme.of(context).primaryColor, ), onPressed: () { - Utils.orderAgain(context, order.cartInfo!); + Utils.orderAgain(context, order!.cartInfo!); }, )); } @@ -329,7 +329,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta ), onTap: () { Navigator.push(context, MaterialPageRoute( - builder: (BuildContext context) => OrderDetail(order.id!, fromOrders: true,), + builder: (BuildContext context) => OrderDetail(order!.id!, fromOrders: true,), )); }, ), @@ -375,7 +375,7 @@ class MobileOrdersState extends State with SingleTickerProviderSta ), onTap: () { Navigator.push(context, MaterialPageRoute( - builder: (BuildContext context) => OrderDetail(order.id!, fromOrders: true,), + builder: (BuildContext context) => OrderDetail(order!.id!, fromOrders: true,), )); }, ),