From 2200c07b7543d2c21c5593eef9873bd862d382c4 Mon Sep 17 00:00:00 2001 From: WaseemAbbasi22 <50428976+WaseemAbbasi22@users.noreply.github.com> Date: Mon, 14 Sep 2026 17:49:57 +0300 Subject: [PATCH] device predication implemented --- lib/controllers/api_routes/api_manager.dart | 4 ++-- lib/controllers/providers/api/devices_provider.dart | 2 ++ .../models/medical_gas_form_model.dart | 2 +- lib/views/widgets/equipment/my_assets_page.dart | 2 ++ lib/views/widgets/equipment/predict_device_list.dart | 7 ++++--- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/controllers/api_routes/api_manager.dart b/lib/controllers/api_routes/api_manager.dart index a230c2e5..4d5ac9bc 100644 --- a/lib/controllers/api_routes/api_manager.dart +++ b/lib/controllers/api_routes/api_manager.dart @@ -415,7 +415,7 @@ class ApiManager { return response; } - Future multiPart(String url, {Map? headers, required Map body, required List> files}) async { + Future multiPart(String url, {Map? headers, required Map body, bool showToast=true, required List> files}) async { Map headers0 = _headers; headers0["Content-Type"] = 'multipart/form-data'; @@ -449,7 +449,7 @@ class ApiManager { final responseBody = jsonDecode(response.body); if (responseBody is Map) { final message = responseBody["message"]; // Reuse parsed body - if (message != null && message.toString().isNotEmpty) { + if (message != null && message.toString().isNotEmpty&&showToast) { Fluttertoast.showToast(msg: message, toastLength: Toast.LENGTH_LONG); } } diff --git a/lib/controllers/providers/api/devices_provider.dart b/lib/controllers/providers/api/devices_provider.dart index 77b75e5f..5ff68d3d 100644 --- a/lib/controllers/providers/api/devices_provider.dart +++ b/lib/controllers/providers/api/devices_provider.dart @@ -272,7 +272,9 @@ class AssetProvider extends ChangeNotifier { final response = await ApiManager.instance.multiPart( URLs.predictDevice, body: {}, + showToast: false, files: files, + ); if (response.statusCode >= 200 && response.statusCode < 300) { diff --git a/lib/modules/medical_gas_inspection/models/medical_gas_form_model.dart b/lib/modules/medical_gas_inspection/models/medical_gas_form_model.dart index a3f08ac1..ae0f43a0 100644 --- a/lib/modules/medical_gas_inspection/models/medical_gas_form_model.dart +++ b/lib/modules/medical_gas_inspection/models/medical_gas_form_model.dart @@ -55,7 +55,7 @@ class MedicalGasFormModel { 'siteId': site?.id, 'supplierId': supplier?.id, 'isSubmitted': isSubmitted, - 'gasRequestDetailDtos': gasRequestDetail?.map((e) => e.toJson()).toList(), + 'gasRequestDetailDtos':gasRequestDetail != null? gasRequestDetail?.map((e) => e.toJson()).toList():[], }; } } diff --git a/lib/views/widgets/equipment/my_assets_page.dart b/lib/views/widgets/equipment/my_assets_page.dart index e60e87be..974fd563 100644 --- a/lib/views/widgets/equipment/my_assets_page.dart +++ b/lib/views/widgets/equipment/my_assets_page.dart @@ -2,6 +2,7 @@ import 'dart:developer'; import 'dart:io'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:image_picker/image_picker.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; @@ -696,6 +697,7 @@ class _MyAssetsPageState extends State with SingleTickerProviderSt if (predictedAssetList.isNotEmpty) { Navigator.push(context, MaterialPageRoute(builder: (context) => PredictDeviceView(predictedAsset: predictedAssetList))); } else { + Fluttertoast.showToast(msg: 'No Predicted asset found', toastLength: Toast.LENGTH_LONG); debugPrint('No Predicted asset found in the response.'); } } diff --git a/lib/views/widgets/equipment/predict_device_list.dart b/lib/views/widgets/equipment/predict_device_list.dart index 67a9d570..cf1dc48b 100644 --- a/lib/views/widgets/equipment/predict_device_list.dart +++ b/lib/views/widgets/equipment/predict_device_list.dart @@ -108,8 +108,8 @@ class _PredictDeviceViewState extends State with SingleTicker child: PredictDeviceItemView( device: widget.predictedAsset[itemIndex], onPressed: (device) { - //We are not getting asset id in response only have serial number - // Navigator.of(context).pushNamed(AssetDetailPage.id, arguments: device.assetId); + int? assetId = int.tryParse(device.assetId??''); + Navigator.of(context).pushNamed(AssetDetailPage.id, arguments:assetId ); }, ), ), @@ -161,7 +161,8 @@ class _PredictDeviceViewState extends State with SingleTicker device: widget.predictedAsset[index], onPressed: (device) { //We are not getting asset id in response only have serial number - // Navigator.of(context).pushNamed(AssetDetailPage.id, arguments: device.assetId); + int? assetId = int.tryParse(device.assetId??''); + Navigator.of(context).pushNamed(AssetDetailPage.id, arguments:assetId ); }, ), ),