Merge remote-tracking branch 'origin/sikander-development' into zaid_development_new

main_design2.0
zaid_daoud 2 years ago
commit 6d6fc30806

@ -614,6 +614,20 @@ class ServiceRequestsProvider extends ChangeNotifier {
}
}
Future<ServiceRequest> getServiceRequestObjectById({@required String requestId}) async {
try {
Response response = await ApiManager.instance.get(URLs.getServiceRequestById + "?callRequestId=$requestId");
if (response.statusCode >= 200 && response.statusCode < 300) {
return ServiceRequest.fromJson(json.decode(response.body)["data"]);
} else {
return null;
}
} catch (error) {
print(error);
return null;
}
}
Future<Map<String, dynamic>> getServiceRequestById({@required String requestId}) async {
Response response;
try {

@ -84,9 +84,11 @@ class ServiceRequest {
factory ServiceRequest.fromJson(Map<String, dynamic> parsedJson) {
List<String> images = [];
print(parsedJson["attachmentsCallRequest"]);
if (parsedJson["attachmentsCallRequest"] != null) if (parsedJson["attachmentsCallRequest"] is List) {
List list = parsedJson["attachmentsCallRequest"];
images = list.map((e) => URLs.getFileUrl(e["attachmentsCallRequest"])).toList();
images = list.map((e) => URLs.getFileUrl(e["name"])).toList();
print(images);
}
return ServiceRequest(
id: parsedJson["id"].toString(),
@ -123,7 +125,7 @@ class ServiceRequest {
reviewComment: parsedJson["reviewComment"],
type: Lookup.fromJson(parsedJson['typeofRequest']),
defectType: Lookup.fromJson(parsedJson['defectType']),
loanAvailability: Lookup.fromJson(parsedJson['loanAvailability']),
loanAvailability: Lookup.fromJson(parsedJson['loanAvailablity']),
firstAction: Lookup.fromJson(parsedJson['firstAction']),
requestedThrough: Lookup.fromJson(parsedJson['requestedThrough']),
priority: Lookup.fromJson(parsedJson['priority']),

@ -74,14 +74,33 @@ class CreateRequestPageState extends State<CreateRequestPage> {
_device = _serviceRequest.device;
_deviceImages.addAll(_serviceRequest.devicePhotos.map((e) => File(e)).toList());
_showDatePicker = _serviceRequest.firstAction != null && _serviceRequest.firstAction.name == "Need a visit";
if (_showDatePicker && _serviceRequest.visitDate != null) {
_dateTime = DateTime.tryParse(_serviceRequest.visitDate);
}
} else {
_serviceRequest = ServiceRequest();
}
_isLoading = true;
super.initState();
}
getServiceRequestById(String id) async {
await _serviceRequestsProvider.getServiceRequestById(requestId: id) ?? "";
try {
ServiceRequest request = await _serviceRequestsProvider.getServiceRequestObjectById(requestId: id) ?? "";
_serviceRequest = request;
_device = _serviceRequest.device;
_deviceImages.addAll(_serviceRequest.devicePhotos.map((e) {
return File(e);
}).toList());
_showDatePicker = _serviceRequest.firstAction != null && _serviceRequest.firstAction.name == "Need a visit";
if (_showDatePicker && _serviceRequest.visitDate != null) {
_dateTime = DateTime.tryParse(_serviceRequest.visitDate);
}
_isLoading = false;
} catch (ex) {
_isLoading = false;
}
setState(() {});
}
@override
@ -101,8 +120,11 @@ class CreateRequestPageState extends State<CreateRequestPage> {
_height = MediaQuery.of(context).size.height;
_userProvider = Provider.of<UserProvider>(context);
_settingProvider = Provider.of<SettingProvider>(context);
_serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
_subtitle = AppLocalization.of(context).subtitle;
if (_serviceRequestsProvider == null) {
_serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
getServiceRequestById(widget.serviceRequest.id);
}
return Scaffold(
key: _scaffoldKey,

@ -130,6 +130,9 @@ class _MultiFilesPickerState extends State<MultiFilesPicker> with TickerProvider
return MultiFilesPickerItem(
file: _image,
onRemoveTap: (image) {
if (!widget.enabled) {
return;
}
widget.files.remove(image);
setState(() {});
},

@ -23,7 +23,7 @@ class MultiFilesPickerItem extends StatelessWidget {
boxShadow: [BoxShadow(color: isImage ? Colors.black38 : AColors.cyan.withOpacity(0.5), blurRadius: 2)],
image: DecorationImage(
image: isImage
? FileImage(file)
? (_isLocalUrl(file.path) ? FileImage(file) : NetworkImage(file.path))
: AssetImage("assets/images/${isPdf ? "pdf" : isExcel ? "excel" : "doc"}.png"),
fit: BoxFit.cover,
),
@ -39,7 +39,7 @@ class MultiFilesPickerItem extends StatelessWidget {
body: SafeArea(
child: Stack(
children: [
Center(child: isImage ? InteractiveViewer(child: Image(image: FileImage(file))) : const SizedBox.shrink()),
Center(child: isImage ? InteractiveViewer(child: Image(image: (_isLocalUrl(file.path) ? FileImage(file) : NetworkImage(file.path)))) : const SizedBox.shrink()),
const ABackButton(),
],
),
@ -69,4 +69,9 @@ class MultiFilesPickerItem extends StatelessWidget {
),
);
}
bool _isLocalUrl(String url) {
if (url?.isEmpty != false) return false;
return url.startsWith("/") || url.startsWith("file://") || url.substring(1).startsWith(':\\');
}
}

Loading…
Cancel
Save