import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:get/get.dart' as getx; class Utils { static Future networkImageToMultipartFile( String imageUrl) async { Dio dio = Dio(); Response response = await dio.get(imageUrl, options: Options(responseType: ResponseType.bytes)); MultipartFile multipartFile = MultipartFile.fromBytes( response.data!, filename: imageUrl.substring(imageUrl.lastIndexOf("/") + 1), ); return multipartFile; } static Future assetImageToMultipartFile( String assetImagePath, String fileName) async { ByteData assetByteData = await rootBundle.load(assetImagePath); List assetBytes = assetByteData.buffer.asUint8List(); MultipartFile file = MultipartFile.fromBytes( assetBytes, filename: fileName, ); return file; } static showToast(String? msg) { if (msg != null && msg != "null" && msg.isNotEmpty) { Fluttertoast.showToast( msg: msg, toastLength: Toast.LENGTH_LONG, ); } } static loader() { getx.Get.dialog( Dialog( elevation: 0, backgroundColor: Colors.transparent, child: WillPopScope( child: const Column( mainAxisAlignment: MainAxisAlignment.center, children: [ CircularProgressIndicator( color: Color(0xFF9A0000), ), ], ), onWillPop: () async => false), ), barrierDismissible: false, ); } }