65 lines
1.7 KiB
Dart
65 lines
1.7 KiB
Dart
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<MultipartFile> networkImageToMultipartFile(
|
|
String imageUrl) async {
|
|
Dio dio = Dio();
|
|
|
|
Response<Uint8List> response = await dio.get<Uint8List>(imageUrl,
|
|
options: Options(responseType: ResponseType.bytes));
|
|
|
|
MultipartFile multipartFile = MultipartFile.fromBytes(
|
|
response.data!,
|
|
filename: imageUrl.substring(imageUrl.lastIndexOf("/") + 1),
|
|
);
|
|
|
|
return multipartFile;
|
|
}
|
|
|
|
static Future<MultipartFile> assetImageToMultipartFile(
|
|
String assetImagePath, String fileName) async {
|
|
ByteData assetByteData = await rootBundle.load(assetImagePath);
|
|
List<int> 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,
|
|
);
|
|
}
|
|
}
|